E.2 Instalación Del Sistema De Monitoreo Web De Signos Vitales 168 E.2.1 Instalación De Noisette 168
Total Page:16
File Type:pdf, Size:1020Kb
INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERÍA Y TECNOLOGÍAS AVANZADAS UPIITA Trabajo Terminal Desarrollo de un Sistema de Monitoreo Web de Signos Vitales Que para obtener el título de “Ingeniero en Telemática” Presenta Mario Alberto García Torrea Asesores Ing. Francisco Antonio Polanco Montelongo M. en C. Noé Sierra Romero Dr. en F. Fernando Martínez Piñón México D. F. a 29 de mayo del 2008 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERÍA Y TECNOLOGÍAS AVANZADAS UPIITA Trabajo Terminal Desarrollo de un Sistema de Monitoreo Web de Signos Vitales Que para obtener el título de “Ingeniero en Telemática” Presenta Mario Alberto García Torrea Asesores Ing. Francisco Antonio M. en C. Noé Sierra Dr. en F. Fernando Polanco Montelongo Romero Martínez Piñón Presidente del Jurado Profesor Titular M. en C. Miguel Félix Mata M. en C. Susana Araceli Sánchez Rivera Nájera Agradecimientos A mi familia Por enseñarme a creer y ayudarme a crecer; porque siempre han estado ahí cuando los he necesitado; por enseñarme que las mejores cosas de la vida no son más que aquellas que hacemos con el corazón, en las que podemos soñar y alcanzar, y por las que debemos de luchar. Gracias papá por tu sabiduría y por todos los consejos que me has brindado. Gracias mamá por procurarnos sencillez y por enseñarnos a amar. Gracias hermano porque – aunque siempre buscas la forma de molestarme – estás ahí creyendo en mí. A mis amigos Porque han creido en mí y me han apoyado con su compañía, su alegría y consejos. Gracias por ayudarme a crecer y a creer que todo es posible si realmente queremos que así lo sea; y sobre todo si creemos en nosotros mismos. Gracias por su confianza, honestidad y por depositar también en mí una parte de sus vidas. A mis profesores Porque siempre procuraron crear personas capaces, por obligarnos a crecer no sólo en lo académico sino como personas. Gracias por sus consejos y experiencias. Gracias por creer en que es posible un mejor futuro y hacernos parte de él. Al Instituto Politécnico Nacional Porque a pesar de las limitantes, sigue procurando formar jóvenes con nuevas ideas y más sueños. Porque nos ha dado las herramientas técnicas y las experiencias de su gente para formarnos y hacernos crecer. A México Porque aún creo en su gente y eso genera esperanzas en que se puede lograr un mejor país si su gente, dentro de un marco responsable y honesto, comprende que somos una nación y no un cúmulo de individualidades. A Dios Por permitirme conocer grandes personas y concederme tiempo para disfrutarlos; por darnos salud, alegría, esperanza y confianza en nosotros mismos para aprender del pasado, crear un nuevo presente y confiar en un mejor futuro. Lista de Contenidos Capítulo 1 Introducción 1.1 Antecedentes 1 1.2 Planteamiento del problema 1 1.2.1 Solución propuesta 1 1.3 Objetivos 2 1.3.1 Objetivo General 2 1.3.2 Objetivos Específicos 2 1.4 Justificación 3 1.5 Beneficios Esperados 4 1.6 Alcances y Límites 4 1.7 Organización de la Tesis 4 Capítulo 2 Marco Teórico 2.1 Introducción 7 2.2 Estado del arte 9 2.2.1 Antecedentes 9 2.2.2 Monitoreo de signos vitales 11 Variables biológicas consideradas 11 2.2.3 Comunicación entre procesos 12 Interfaces de Programación de Aplicaciones 14 CORBA XML-RPC Sockets DCOP DBUS Daemons: Procesos ejecutándose en segundo plano 16 2.2.4 Sistemas distribuidos y modelo Cliente-Servidor 17 2.2.5 Sistemas de Tiempo Real 18 Tolerancia a Fallos 18 Técnicas de tolerancia a fallos 19 2.2.6 Aplicaciones Web 20 2.2.7 Tecnologías de Internet 21 Javascript 21 XML 21 XSLT 22 I Ajax 23 Nuevas Tendencias 24 2.2.8 Frameworks para el desarrollo de aplicaciones Web 25 Frameworks para desarrollo de aplicaciones Web orientadas al modelo MVC 26 Ruby on Rails Apache Struts Spring Framework Grails Cake PHP Frameworks del lado del cliente 30 Prototype.js MooTools jQuery HL7 30 Conformación del expediente médico 2.3 Resumen 31 Capítulo 3 Análisis y Diseño de la Aplicación 3.1 Introducción 33 3.2 Arquitectura de la Aplicación 36 3.2.1 Escenarios 36 3.2.2 Actores 37 Administrador 37 Staff 37 Cliente Web 37 Sistema de Adquisición 38 3.3 Consideraciones del diseño 38 3.4 Casos de uso Generales 39 3.4.1 Nivel Cero 39 3.4.2 VSM Server 40 Autenticar 40 Administrar personas 41 Ver monitores 43 Ver detalle de monitor 45 Administrar monitores 46 Recibir información 48 3.4.3 Monitor de Signos Vitales 49 Nivel Cero 49 Transmitir 49 3.5 Diagramas de Secuencia 51 II Autenticación de usuarios 51 Visualización de monitores 52 Recepción de información 53 Administración de monitores 53 Secuencia registro Secuencia emparejamiento Secuencia establecer frecuencia Streaming 55 Procesar alerta 55 3.6 Diagrama de Clases 56 Clases persistentes 56 Diagrama General 57 Paquete Communications 58 Paquete WebApp 58 3.7 Diagramas de Actividades 59 Transmisión 59 Recepción de Información 60 Procesamiento de Información 60 Almacenamiento de Información 61 3.8 Diagramas de Paquetes 62 Diagrama general de paquetes 62 3.9 Diagramas de Despliegue 63 3.10 Diseño de la base de datos 64 3.11 Puntos clave del diseño 66 3.11.1 Caracterización de la información a transmitir 66 Formación del mensaje 66 Encabezado del mensaje 66 Mensaje de control 66 Mensaje de información simple 67 Información del sensor 68 Mensaje de alerta 69 3.11.2 Diseño de las interfaces gráficas 71 Inicio de sesión 71 Registro 72 Búsqueda 73 Central de enfermeras 74 Monitor global 75 Monitor extendido 76 Otros elementos de la interfaz 76 Región de alarmas Mapa de navegación 77 III 3.12 Resumen 78 Capítulo 4 Desarrollo 4.1 Introducción 79 4.2 Amande 80 4.2.1 Transmisión de información de los monitores de signos vitales al módulo Amande 80 4.2.2 Châtaigne: API de propósito específico para el Sistema de Monitoreo Web de Signos Vitales 81 Estructura de la información de los sensores 81 Estructura de los módulos del servidor 82 Conversión de estructura binaria a representación en texto 82 Uso del API 83 Procesamiento de los paquetes 84 Libpqxx: Librería de conexión a base de datos PostgreSQL Almacenamiento de alarmas 84 4.2.3 Simulador 85 4.2.4 Consideraciones de desempeño 86 4.2.5 Transmisión de información a clientes Web 87 Streaming 88 Conexión persistente FastCGI 91 Formato 92 JAULA: API para manejo de objetos JSON en C++ Manejo de la información en el cliente 94 4.2.6 Posibles mejoras 96 4.3 Noix: Sistema Web 98 4.3.1 Pistache 98 Aplicaciones en Grails 99 Seguridad: Control de Accesos Internacionalización (i18N) 4.3.2 Noisette 108 Manejo de elementos de la Interfaz Gráfica 108 Estilo Visual Obtención y procesamiento de información del servidor Amande 110 Dibujado en el objeto Canvas 110 4.3.3 Mapa de sitio 112 Capítulo 5 Conclusiones y Trabajos Futuros Apéndice A Modelos de Caso de uso IV A.1 Administración de pacientes 117 A.1.1 Secuencias de Administración de Pacientes 123 A.2 Administración de médicos 126 A.3 Administración de enfermeras 132 Apéndice B Diccionario de Datos Apéndice C Análisis de las alternativas para el desarrollo Web C.1 Streaming de datos y dibujado dinámico de gráficas 143 C.1.1 Streaming: Manejo de flujos de información 143 El objeto XMLHttpRequest 143 C.1.2 Prueba de streaming de datos 144 Límites de Javascript 147 C.1.3 Dibujado dinámico de gráficas en el navegador 148 Apéndice D Protocolos del Sistema D.1 Notas sobre la implementación 153 D.1.1 Sobre el manejo de memoria y cadenas 153 D.1.2 Sobre la compilación en Linux 153 D.1.3 Sobre la compilación en Windows 153 D.2 Protocolo de transmisión de información al Servidor Amande 154 D.2.1 Contenedores 155 D.2.2 Protocolo del Ventilador 156 Paquete de Información 156 Paquete de Alarma del Ventilador 158 Uso de las rutinas para formación de paquetes 158 D.2.3 Notas sobre los demás protocolos 160 D.3 Protocolo de transmisión a clientes Web 160 D.3.1 Formato del paquete JSON 161 Paquete de información 161 Apéndice E Instalación del Sistema E.1 Establecimiento del entorno de producción 163 E.1.1 Instalación de Linux en el servidor 163 E.1.2 Configuración de las aplicaciones necesarias 163 Sistema Gestor de Bases de Datos PostgreSQL 164 Servidor lighttpd 164 Entorno de ejecución de Java 166 Instalación del servidor de aplicaciones Jetty 167 E.2 Instalación del Sistema de Monitoreo Web de Signos Vitales 168 E.2.1 Instalación de Noisette 168 V E.2.2 Instalación de Pistache 168 E.2.3 Instalación de Amande 168 Apéndice F Escenarios y casos de prueba Personajes 171 Marco Domínguez. Médico Elisa López. Enfermera Pedro Gómez. Paciente Pablo Mendoza. Paciente Escenarios 173 Antecedentes Primer escenario: Pablo Mendoza llega al hospital, pues siente una pequeña molestia en el pecho. Segundo escenario: A Pablo Mendoza le es necesario realizar una operación en uno de sus pulmones. Tercer escenario: Llega Pedro Gómez tras sufrir un accidente en automóvil Cuarto escenario: Marco quiere visualizar el monitor de Pedro y Pablo desde su computadora de escritorio. Quinto escenario: Pablo es dado de alta. Sexto escenario: El monitor de Pedro arroja una alarma. Elisa lo atiende y su estado regresa a normal. VI Índice de Tablas Tabla 2.1: Variables biológicas consideradas 12 Tabla 2.2: Soporte de IPC en distintas implementaciones 13 Tabla 2.3: Lista de Frameworks para desarrollo de Aplicaciones Web 25 Tabla 3.1: Especificación de Requerimientos del Sistema 35 Tabla 3.2: Caso de uso Autenticación 40 Tabla 3.3: Caso de uso Administrar personas 41 Tabla 3.4: Tipos de mensaje 66 Tabla 3.5: Dispositivos de adquisición 67 Tabla 3.6: Caracterización de los dispositivos 68 Tabla 3.7: Tipos de