sistemas móviles e inteligentes para el control de la
Post on 01-Oct-2021
3 Views
Preview:
TRANSCRIPT
Sistemas móviles e inteligentes para el
control de la salud utilizando aplicaciones
M2M e IoT
Carlos Felipe Restrepo Russi
Christian Augusto Rodríguez De Castro
Juan José Rodríguez Gómez
Universidad de los Andes
Facultad de de Ingeniería
Departamento de Ingeniería de Sistemas y Computación
Bogotá, Colombia
Diciembre del 2016
Sistemas móviles e inteligentes para el
control de la salud utilizando aplicaciones
M2M e IoT
Proyecto de Grado presentado al
Departamento de Ingeniería de Sistemas y Computación por
Carlos Felipe Restrepo Russi
Christian Augusto Rodríguez De Castro
Juan José Rodríguez Gómez
Asesor: Yezid Enrique Donoso Meisel
Para optar al título de
Ingeniero de Sistemas y Computación
Universidad de los Andes
Facultad de de Ingeniería
Departamento de Ingeniería de Sistemas y Computación
Bogotá, Colombia
Diciembre del 2016
Índice general
Resumen ............................................................................................................................................... 4
1. Introducción .................................................................................................................................. 4
2. Descripción General ....................................................................................................................... 6
2.1. Objetivos ............................................................................................................................... 6
2.1.1. Objetivo principal .......................................................................................................... 6
2.1.2. Objetivos específicos ...................................................................................................... 6
2.2. Antecedentes ......................................................................................................................... 6
2.3. Identificación del problema y de su importancia ....................................................................... 7
3. Diseño y especificaciones ................................................................................................................ 8
3.1. Definición del problema ......................................................................................................... 8
3.2. Especificaciones .................................................................................................................... 8
4. Desarrollo del diseño y sus restricciones ......................................................................................... 11
4.1. Fuentes ............................................................................................................................... 12
4.2. Alternativas de diseño .......................................................................................................... 12
5. Implementación ............................................................................................................................ 13
5.1. Descripción de la implementación ......................................................................................... 13
Contexto de la aplicación móvil para cada una de las iteraciones .............................................................. 14
5.2. Resultados esperados ............................................................................................................ 18
6. Validación.................................................................................................................................... 18
6.1. Métodos .............................................................................................................................. 18
6.2. Validación de resultados ....................................................................................................... 19
7. Conclusiones ................................................................................................................................ 21
7.1. Discusión ............................................................................................................................ 21
7.2 Trabajo futuro ...................................................................................................................... 21
8. Bibliografía .................................................................................................................................. 22
Apéndices ........................................................................................................................................... 22
Resumen
Este proyecto busca crear un método práctico, portable y fácil de usar, que permita el
seguimiento del estado actual de salud de las personas ya que, a pesar de los avances
tecnológicos, aún se tienen limitaciones en el monitoreo recurrente de los signos vitales.
Resulta importante, entonces, que la persona realice controles de salud rutinariamente para
la detección temprana de enfermedades. Así mismo, se busca que todos los datos estén
centralizados y almacenados en un mismo sistema de tal manera que un experto en el tema
pueda acceder a ellos y brindar un diagnóstico.
Para la centralización, control y monitoreo de los datos se utilizará un sistema centralizado
conocido como MTC. Éste es un sistema que permite la convergencia de múltiples
aplicaciones lo cual facilita la interconexión de los tres sensores utilizados:
electrocardiograma, electro miógrafo y tensiómetro. Además de esto, la MTC permite tener
una respuesta para el usuario en manera de alerta y el envío de información a una central de
operaciones que cuenta con el personal calificado para que proceda a tomar acciones
preventivas que amerite el caso.
1. Introducción
En la actualidad, a pesar de los avances tecnológicos en el campo de la medicina aún se
tienen limitaciones en el monitoreo de los signos vitales de las personas. Esto se debe,
principalmente, a factores tales como la baja continuidad a la que se asiste a una cita médica,
el alto costo de los equipos que permiten realizar autocontroles o a la poca portabilidad de
estos equipos y su alto consumo de energía.
No obstante, es importante que la persona realice controles de salud rutinariamente para
la detección temprana de enfermedades potencialmente mortales. La oportuna detección de
síntomas permitirá tratar oportunamente las enfermedades y salvar vidas. Por esto,
consideramos necesario la existencia de un método, práctico, portable y fácil de usar, que
permita el seguimiento del estado actual de salud de las personas, la centralización y el
almacenamiento de los datos de tal manera que un experto en el tema pueda acceder a ellos
y brindar un diagnóstico certero y procedente.
Para cumplir este objetivo, se planteó un sistema con diferentes tecnologías. Primero que
todo, la medición de los diferentes signos vitales se va a realizar por medio de sensores. Para
este caso específico se van usar tres dispositivos sensores capaces de medir: la actividad
eléctrica del corazón (electrocardiograma), la presión sanguínea (tensiómetro) y la actividad
eléctrica de los músculos (electromiógrafo). Estos sensores van conectados a una tarjeta E-
Health, ya que ésta cuenta con los conectores especiales para poder conectar los sensores al
resto del sistema.
El control y monitoreo de los datos se realizó mediante un sistema centralizado conocido
como MTC. Este sistema permite la convergencia de múltiples aplicaciones lo cual facilita
la interconexión de todos los sensores y asimismo tener una respuesta para el usuario en
manera de alerta y el envío de información a una central de operaciones que cuenta con el
personal calificado para que se proceda a tomar las acciones preventivas o reactivas que
amerite el caso. Para generar la compatibilidad entre todas las tecnologías y el
funcionamiento del sistema se utilizaron lenguajes tales como Python, C++, Ionic y Java.
Por último, se desarrolló una plataforma interactiva que le permitiera al usuario una rápida
y fácil visualización de los datos y de las diferentes alertas generadas por el sistema. Para
esto se implementó un sistema en Ionic (web), que muestra los datos de manera completa a
través de gráficas.
El documento cuenta con siete secciones, en las que se hace una descripción general del
proyecto, sus antecedentes y objetivos; el diseño, sus especificaciones y restricciones; el
desarrollo, la implementación y la validación del proyecto, y por último las conclusiones.
El presente documento y el prototipo Baymax-Pi es el resultado del trabajo realizado por
el equipo que, con la guía y el apoyo del Profesor Yezid Donoso y Juan Felipe García,
lograron la culminación exitosa del proyecto.
2. Descripción General
2.1. Objetivos
A continuación se explicarán los objetivos que se quieren alcanzar con este proyecto de
grado.
2.1.1. Objetivo principal
Generar un sistema, fácil de usar, dinámico, capaz de medir varios parámetros de la
salud y que de manera inteligente sea capaz de tomar una acción para evitar, por falta de
una asistencia oportuna, complicaciones de salud o en el peor de los casos fallecimiento
del paciente.
2.1.2. Objetivos específicos
Integrar los sensores de salud a una MTC para permitir la comunicación M2M
guiada por estándares para IoT.
Desarrollar un sistema a nivel de software que permita un seguimiento de los
datos capturados por los sensores a través de tableros de control.
Permitir de manera efectiva el seguimiento de un usuario por parte de personal
médico.
Desarrollar un prototipo completamente funcional que permita mostrar el
funcionamiento y los posibles beneficios de la masificación de IoT.
2.2. Antecedentes
Actualmente vivimos en la era de la tecnología y de la información, los avances
tecnológicos han sido, sin duda alguna, un suceso que ha facilitado la vida de las
personas y ha mejorado su calidad de vida. Cada día que pasa se crean nuevos inventos
que impactan en mayor medida la vida de las personas y esta dinámica, lejos de terminar,
se va acentuando con el paso de los años
En el campo de la salud existen varias propuestas encaminadas a resolver las diversas
problemáticas que supone monitorear el estado de salud. El Internet de las cosas (IoT,
Internet of Things) es una de estas nuevas tecnologías. Ésta hace referencia a la conexión
de aparatos electrónicos por internet, lo que permite una interconexión con el mundo que
puede ser de gran utilidad para la toma de decisiones.
Lo monitorización inteligente de la salud o e-Health, a través del IoT, ha estudiado
los patrones de la salud en la población y fue determinante para concluir que, dada la
importancia del internet en la vida cotidiana, la incorporación del monitoreo de la salud
en este medio hace que las personas sean más conscientes sobre su estado y las impulsa
a recurrir a consultas médicas para determinar las causas de las anomalías encontradas
(Andreassen, y otros, 2007). Esto permite, entonces, el diagnóstico oportuno de
enfermedades que pueden llegar a ser letales al no diagnosticarse tempranamente.
Así mismo, la utilización del IoT en el e-Health permite, entre otras cosas, dar un
diagnóstico instantáneo y certero en diversos sitios donde no hay personal calificado
para atender una persona (Kwankam, 2004) ya que el uso del internet permite que un
médico analice el estado de salud de una persona que esté en cualquier lugar del mundo.
No obstante, no sólo las personas o las industrias se beneficiarán de los avances en
automatización y de interconexión entre M2M, las ciudades también tomarán partido en
esto lo que generará mayores beneficios al lograr conectar, por ejemplo, el monitoreo
del estado de salud con el sistema de ambulancia, éste con el tráfico y así sucesivamente.
2.3. Identificación del problema y de su importancia
En un mundo donde el trabajo excesivo y el uso efectivo del tiempo marcan la pauta,
las personas son menos conscientes de su estado de salud. El uso de recursos
tecnológicos puede ser gran utilidad para el control de enfermedades y el monitoreo
constante y efectivo de pacientes por parte de unidades prestadoras de servicio.
Según estudios, aproximadamente la mitad de los pacientes que sufren un infarto
presentan síntomas antes del incidente. Detectar cualquiera de ellos a tiempo es esencial
para evitar que el infarto provoque la muerte. Los primeros minutos a partir del momento
en que se suceden los síntomas son vitales ya que el 75% de las fatalidades suceden en
la primera hora y si se percatan de los síntomas y llegamos al hospital se tiene un 95%
de probabilidad de sobrevivir (Ayuso, 2014). Por lo tanto el uso de mecanismos
adecuados para la temprana detección de los síntomas con el monitoreo constante de una
persona aumenta la posibilidad de que esta persona sobreviva ante un episodio de alerta.
Hoy en día existe poca efectividad en la monitorización de los pacientes dada la baja
tasa de visitas al médico al igual que la poca supervisión que se puede tener de una
persona por parte de personal especializado. No obstante, aunque los sistemas
tecnológicos no son cien por ciento infalibles y no pueden medir en algunos casos la
gravedad de la situación de un paciente, se busca que el sistema a través de la
centralización y el monitoreo constante de una persona, pueda prevenir enfermedades
crónicas o muertes tempranas a causa de condiciones especiales.
3. Diseño y especificaciones
3.1. Definición del problema
Debido a la dificultad del monitoreo constante del estado de salud de las personas, en
especial las que tienen enfermedades particulares, es necesario crear un mecanismo que
permita la monitorización de sus signos vitales de manera constante, cómoda, que sea
capaz de prevenir y alertar de manera adecuada a personal especializado de manera
automática y eficaz para así prevenir daños irreparables en su salud o hasta la muerte.
3.2. Especificaciones
Para la realización del proyecto se tendrán en cuenta los siguientes atributos de calidad
los cuales son imprescindibles para el uso de la plataforma.
Seguridad de la información: el tipo de información que se va a recolectar es
personal y vital para cada uno de los usuarios. Por ello es necesario que sea protegida
de manera adecuada ante las amenazas que se puedan presentar, entre las cuales se
encuentran, los riesgos lógicos como el espionaje, daños por malware o ataques de
intrusión y los riesgos físicos, que causarían la pérdida de información . Dado lo
anterior, se establecen un conjunto de medidas preventivas para evaluar los riesgos
asociados a las intrusiones. Para este caso es deseable que el sistema tenga esta
seguridad en todo momento.
Requerimiento R1 Tipo Funcional Prioridad Media-alta
Atributo de Calidad Seguridad de la información
Justificación El sistema debe tener una seguridad mínima para el transporte de los
datos
Fuente Baymax Pi
Estímulo El sistema realiza el envío de datos a la MTC
Artefacto Sistema
Ambiente Ejecución estándar del sistema
Respuesta El sistema ofrece un intercambio de datos de manera segura, sin
intrusiones de ningún tipo
Medida de la Respuesta Los datos son vistos únicamente por las entidades competentes y el
usuario.
Integridad de los datos: La información, dado que puede ser vital para el usuario,
debe ser íntegra, consistente, precisa y confiable. La información no puede ser de
ninguna manera alterada ni modificada sin autorización, tanto en el proceso de
transferencia de los datos como en la recolección. Para ello se toman medidas para
que la información no pueda ser alterada y sea leída directamente de los dispositivos
sensores.
Requerimiento R2 Tipo Funcional Prioridad Alta
Atributo de Calidad Integridad de los datos
Justificación Los datos deben ser consistentes, precisos y confiables.
Fuente Baymax Pi
Estímulo El sistema realiza el envío de datos a la MTC
Artefacto Sistema
Ambiente Ejecución estándar del sistema
Respuesta El sistema ofrece un intercambio de datos precisos y confiables según los
estándares de los sensores.
Medida de la Respuesta Los datos son consistentes con los signos de salud de un paciente.
Disponibilidad del sistema: Este atributo es muy importante ya que permite el
acceso y oportuna respuesta de la información de cada uno de los sensores. Todos los
componentes del sistema deben estar siempre en funcionamiento al igual que la
plataforma contenida en la Raspberry Pi para cuando el cliente requiera utilizarlo.
Requerimiento R3 Tipo Funcional Prioridad Alta
Atributo de Calidad Disponibilidad del sistema
Justificación Los datos deben ser tomados en el momento en el que se requiera
Fuente Baymax Pi
Estímulo El sistema realiza la toma de datos.
Artefacto Sistema
Ambiente Ejecución estándar del sistema
Respuesta El sistema toma los datos en el momento que se le pide toma de datos.
Medida de la Respuesta Los datos son tomados el 98% de las veces que son requeridos.
Disponibilidad de los datos: Los datos deben estar disponibles para consultarse cada
vez que se necesite. La disponibilidad de éstos tiene una gran importancia tanto para
el usuario como para el que monitorea el sistema.
Requerimiento R4 Tipo Funcional Prioridad Alta
Atributo de Calidad Disponibilidad de los datos
Justificación Los datos deben estar disponibles en el momento que se requieran.
Fuente Baymax Pi
Estímulo El sistema realiza la consulta de los datos.
Artefacto Sistema
Ambiente Ejecución estándar del sistema
Respuesta El sistema muestra los datos y gráficas correspondientes a un usuario.
Medida de la Respuesta Los datos están disponibles para la consulta un 99% del tiempo.
4. Desarrollo del diseño y sus restricciones En el proceso de diseño se tuvo en cuenta los escenarios de calidad, anteriormente
planteados, para escoger el modelo y las plataformas que se quieren para la aplicación y para
el desarrollo del sistema.
Primero que todo, para la centralización de los datos y como planteamiento inicial del
asesor, se tomó la plataforma MTC. El uso de esta plataforma presentó diversos retos debido
a que para su programación permite únicamente el uso de Java o Python. A pesar del poco
conocimiento adquirido sobre Python, se decidió usar para la programación debido a que es
un lenguaje open source y no requiere de una licencia, lo cual hace que el costo sea menor.
Si bien el costo de implementación es menor, Python es un lenguaje no compilado,
implicando un costo en la eficiencia y la escalabilidad de la solución, pero que se compensará
al tener una centralización del componente en la Raspberry Pi. Esto conlleva a que el
mantenimiento de la plataforma, su adecuación y la definición de parámetros deba hacerse
de forma personalizada a cada caso, ya sea de control o de monitoreo.
Dado a que es una tecnología IoT es necesario que ésta tenga compatibilidad móvil, sin
embargo, debido a la existencia de diferentes sistemas operativos y el poco tiempo de
implementación, se utilizó Ionic ya que permite el uso de la plataforma de manera web y por
lo tanto es compatible con todos los sistemas operativos.
En cuanto al uso de los dispositivos de monitoreo (sensores), se eligieron el
esfigmomanómetro, el electrocardiograma y el electromiógrafo. Al principio, se pensaba
utilizar más sensores, sin embargo, el proyecto se vio restringido a estos tres sectores debido
a que Cooking Hacks empezó a descontinuar los sensores en el momento de la compra.
Para la utilización del esfigmomanómetro es necesario un paso adicional, primero se debe
hacer la toma del dato y luego se debe conectar el dispositivo para hacer el respectivo
análisis y carga de datos. Por otro lado, para los otros dos sensores, el electrocardiograma y
el electromiógrafo, la toma de datos se puede hacer en tiempo real, pero es necesario usar
uno por uno ya que van conectados bajo la misma entrada. A pesar de esto, la operabilidad
del dispositivo es bastante fácil ya que solo debe utilizar los sensores para que el dispositivo
recopile, envíe y genere alertas sobre los datos.
4.1. Fuentes
Para la realización del diseño se tuvieron en cuenta diferentes fuentes:
Open MTC: esta Plataforma tiene una librería para java y una librería sobre Python,
por su novedad en java los métodos no son totalmente claros en el ambiente de
programación JAVA al igual que los métodos parecen tener problemas, en cuanto a
la librería en Python es completa e intuitiva.
Dispositivos en los cuales se utilizara la aplicación: la aplicación requiere el uso de
diferentes plataformas, por lo que el uso de un lenguaje multiplataforma es importante
para la aplicación. Para lograr acceder a los datos de los sensores es necesario utilizar
ArduPi, una librería que permite realizar un puente entre Arduino y Raspberry Pi.
Ademas de esto se utiliza la librería propia de la tarjeta eHealth, que esta basada en
C++.
4.2. Alternativas de diseño
Como se mencionó anteriormente se tenían dos posibilidades de desarrollo de la
plataforma OpenMTC, debido a que uno de los objetivos del proyecto era hacer uso de
las multiples herramientas que OpenMTC ofrece, fue elegido el SDK de Python, puesto
que el equivalente en Java es una versión inicial, donde muchas de las funcionalidades
principales no funcionan de manera correcta o no están desarrolladas.
El desarrollo necesario para la lectura de los sensores se basa en lectura de seriales
por los pines de la Raspberry Pi. Esta tarea se puede realizar en múltiples lenguajes de
programación como Python y C++, debido a que la disponibilidad fisica de los sensores
solo fue posible en una etapa avanzada del proyecto, fue elegida la librería de los
sensores, que fue desarrollada en C++.
Para la selección de los dispositivos se tuvo en cuenta las personas a las cuales sería
dirigido el producto y el tipo de dispositivos que se quieren para que la solución sea
móvil, para tener compatibilidad y velocidad de desarrollo los indicados fueron Apache
Cordova y el framework Ionic.
5. Implementación
La implementación fue un proceso iterativo. Segmentado en tres ciclos en los cuales en cada
ciclo se realizaba el diseño, la implementación y las pruebas. A continuación se describe
detalladamente la implementación:
5.1. Descripción de la implementación
Iteración 1
Para ésta primera etapa del proyecto se consideró importante la implementación de
una interfaz que nos permita ver la información médica registrada, teniendo en cuenta
las restricciones de almacenamiento, memoria y potencia. De igual manera, se pretende
en primera instancia simular datos médicos con el fin de poder demostrar el
funcionamiento de la aplicación.
Iteración 2
Para esta iteración se aseguró la conectividad entre los dispositivos vía Internet. Para
ello se implementó el envío de la información directamente por vía WiFi, almacenando
dicha información en una base de datos mongoDB que se encuentra en un servidor
REST. Al acceder a la base de datos podemos encontrar los perfiles de usuarios
necesarios para el registro y el login de los pacientes y médicos, la información de los
datos médicos y el registro de alertas.
Iteración 3
Para esta última iteración fue utilizado un desarrollo multiplataforma con el cual se
despliega la aplicación en cualquier dispositivo móvil incluyendo tabletas. Fue realizada
la implementación de un servidor que maneja los datos médicos obtenidos por los
sensores y que son consultados por la aplicación constantemente. Se realizó la
integración del sensor GPS del celular para mostrar la ubicación de una alerta generada
por el paciente y enviada a su médico. Se hizo seguimiento manejando el servidor de
autenticación de usuarios mediante mongoDB y fue creada una funcionalidad para dar
de alta a los usuarios médicos, ya que éstos deben de autorizarse antes de poder acceder
a la aplicación.
Contexto de la aplicación móvil para cada una de las iteraciones Iteración 1
Iteración 2
Iteración 3
Puntos de vista
Arquitectura del sistema
Para la implementación de la solución se tuvieron en cuenta la dificultad y la curva de
aprendizaje así como los productos disponibles durante el desarrollo de la solución.
Para el desarrollo de la aplicación se tuvo en cuenta el siguiente diagrama:
Figura 1. Diagrama
Como se puede observar en la figura 1 las principales fases para la implementación es el
sistema de la MTC y el sistema móvil que es el encargado de desplegar toda la funcionalidad.
En la parte de la MTC se tendrá toda la centralización de la información y será la encargada
de toda la monitorización de los datos tomados por los sensores.
El servidor, que se encarga de hospedar los servicios principales de la MTC se encarga de:
- Proveer servicio de almacenaje utilizando una capa de abstracción, que permite
utilizar múltiples manejadores de bases de datos, al no modificar la configuración,
OpenMTC utiliza su manejador por defecto.
- Prestar un API de comunicación REST con el que se puede acceder a los principales
servicios de comunicación M2M, dentro de estos métodos se incluye la creación de
aplicaciones, contenedores, subscripciones y todo el consumo de dichos objetos.
- Para el caso específico de BaymaxPi, el servidor central se encarga de verificar los
datos que se envían a los contenedores y verificar casos que tengan valores inusuales
para generar alertas, este proceso se realiza de manera sencilla utilizando
subscripciones, que permiten enviar notificaciones una vez hay un dato nuevo en un
contenedor.
La Raspberry Pi utiliza funcionalidades de OpenMTC para comunicarse con el servidor
central y guardar los datos de los sensores, esta comunicación se hace utilizando el SDK de
Python de OpenMTC, que hace la ejecución de todo el API REST sencilla. Además de esto,
en este dispositivo se utilizan las librerías ArduPi y eHealth for Pi, que permiten (1) traducir
información desde una board para Arduino a Raspberry Pi y (2) consumir dichos valores de
la comunicación.
Este diagrama presenta la comunicación entre los sensores y el servidor central, a
continuación, se presentan los pasos de envío de datos de un sensor hasta el momento en que
se crea una alarma:
1. Mediante una aplicación desarrollada en Java, se presenta un servicio REST que envía
las medidas de los sensores a la entidad que los solicite.
2. El script principal de este dispositivo, realizado en Python, incluye métodos de
consumo al servicio REST de los sensores y luego, utilizando el SDK de OpenMTC,
realiza el envío a los contenedores adecuados dependiendo de las lecturas.
3. Una vez se tienen los datos en alguno de los tres contenedores de datos, la entidad
principal de MTC (en el servidor central), se suscribe a dichos contenedores y verifica
que los valores estén en los rangos definidos como adecuados para un individuo
promedio. En caso de que los valores estén fuera de estos rangos, se genera una alerta,
que luego es enviada al contenedor de alarmas.
4. Después de este punto, el dispositivo móvil es capaz de consumir los datos en el
contenedor de alarmas, y enviar notificaciones en caso de que se encuentre alguna
alarma, además de ésto, puede consumir los tres contenedores de datos para presentar
gráficos al usuario.
5.2. Resultados esperados
Se espera que el proyecto ayude a las personas en el monitoreo de su salud, de manera
inteligente, por medio de un sistema controlado que sea capaz de salvar vidas. Además
se buscan soluciones de manera reactiva por parte del personal especializado gracias a
las alertas generadas en un contexto médico específico.
Específicamente, se quiere que el sistema sea capaz de alertar a la persona que lo está
usando si existe algún dato relacionado con amenazas a su salud. También, uno de los
propósitos es que los datos sean mostrados y desplegados en forma de gráfica, facilitando
la visualización de la información de manera intuitiva y consistente, permitiendo así
tener un mejor control sobre los datos.
En cuanto a los errores que se pueden presentar en las mediciones, es necesario tener
en cuenta la precisión de los sensores y su posibilidad de fallar en la toma de las medidas.
No obstante, se espera, como se mencionó en los escenarios de calidad, que el sistema
en su mayoría cumpla con una alta disponibilidad, calidad e integridad operativa.
Por último, se espera que con el uso de la MTC, dadas sus características en la
centralización de datos, dé soluciones inteligentes a los problemas, ya que convierte la
tarea de monitorización en una tarea semiautomática, la cual sólo será vigilada de manera
remota por personal específico.
6. Validación
6.1. Métodos
Para la validación del sistema se realizaron pruebas en distintas personas para la
corroboración de que las medidas tomadas fueran adecuadas a la monitorización que
debería realizar el sistema. Dado a que el sistema solo reaccionará ante una anomalía de
los signos vitales de una persona, se validó el funcionamiento de las alertas suavizando
los límites, así se puede corroborar de manera precisa si se generaban las alertas en
contextos específicos. Esta prueba fue realizada porque el sistema requiere tener una
precisión casi milimétrica para detectar y dar respuesta ante una emergencia.
Para la validación de la integridad de la información se comprobó que la información
tomada en primer caso por los sensores fuera la más certera posible, así mismo, que la
información tomada por los sensores y la desplegada por la aplicación, estuviera
completa y fuera la misma. Para ello se verificó la información contenida en la MTC, la
tomada por algunos sensores y las gráficas proporcionadas por la aplicación, y se hizo
la comparación de los datos.
6.2. Validación de resultados
Para la validación de resultados se tomaron los escenarios propuestos y en una toma de
datos para el sensor de presión se obtuvieron que en el 100% de los casos el sistema generó
la alerta correspondiente.
En el primer escenario se suaviza la alerta para generarse con la presión mayor a 120.
No. Valores
tomados Generó alerta Es congruente
1 130 si si
2 125 si si
3 140 si si
4 110 no si
5 123 si si
6 133 si si
7 122 si si
8 119 no si
9 124 si si
10 97 no si
Validando está toma de datos se pudo ver que aunque las alertas fueron generadas de
manera correcta, es necesario tener precaución en la correcta utilización de los sensores.
Como podemos observar, en la muestra 10, el paciente presenta una presión muy abajo de
lo normal lo que implica que el monitoreo no fue hecho de manera correcta. Estas fallas
pueden deberse tanto a fallas humanas, errores en la forma de medición, en fallas técnicas,
en calibración de los dispositivos o fallas en el sensor utilizado.
Otro rasgo de suma importancia es la validación de la integridad de los datos. Es
imperante comprobar la confiabilidad de los datos ya que esto hace que el sistema sea
realmente de utilidad para el usuario. Para está validación se tomaron las medidas con los
sensores del sistema y sensores externos para corroborar la consistencia de los datos y se
obtuvieron los siguientes resultados.
Prueba
No.
Valores de Frecuencia cardiaca
tomados por el sistema
Valores tomados por
sensor externo Variación
1 81 80 1
2 65 65 0
3 88 67 21
4 94 95 1
5 68 67 1
6 56 55 1
7 81 81 0
8 57 56 1
9 55 54 1
10 78 78 0
En los resultados presentados se encontró que la precisión del sistema es realmente
buena, dado a que la variación entre un dispositivo u otro, generalmente, es de uno o cero.
Sin embargo como se puede observar en el dato 3 la variación fue alta, esto muestra, otra
vez, el mismo tipo de problemas que en la anterior validación. No obstante, para nuestro
proyecto dado que se tiene un seguimiento rutinario y constante de las medidas por parte,
no sólo de la MTC si no de personal especializado, un dato fuera de los parámetros
normales que no es recurrente en nuestro sistema es fácilmente corregible y puede
descartarse sin ningún problema.
Para la disponibilidad de los datos al ser consultada por algún usuario de la plataforma
se tienen las gráficas correspondientes a la medición de alguno de los sensores.
7. Conclusiones
7.1. Discusión
Para la problemática propuesta se logró implementar una solución acorde a lo
esperado, que aunque solo tienen el uso de 3 sensores, tiene en cuenta todos los aspectos
necesarios para la monitorización y control de la salud de una persona. Así mismo fue
posible corroborar los requerimientos funcionales que está solución plantea.
No obstante, las limitaciones de la tarjeta en el uso de dispositivos hacen que el
sistema no sea tan completo como se quisiera. Como parte de los problemas encontrados
en el sistemas se tuvieron en cuenta problemas con la toma de datos, sin embargo, como
se mencionó el hecho de que sea monitoreable y recurrente hace que si en algunos de las
tomas los datos hay errores, no afecte significativamente el monitoreo del paciente.
Así mismo, la validación de los resultados arrojó datos que comprueban la efectividad
y certeza del sistema en cuanto a la reactividad del sistema. Este sistema tiene la
capacidad de generar alertas de manera correcta e inmediata, que a pesar de contar con
algunos errores, la toma recurrente de datos hace que estos datos espurios fuera del rango
sean descartados del sistema.
A pesar de la restricciones que presenta el uso de la MTC, en términos del tiempo que
tiene en desarrollo y en el mercado, su uso fue importante dada su práctica manera de
centralizar los datos y darles una verificación correspondiente.
7.2 Trabajo futuro
Para la implementación de sistemas que apoyen la salud de un usuario se está utilizando
el estándar HL7, el cual en contextos médicos le da más confiabilidad a la hora de utilizar
dispositivos para la salud. Teniendo en cuenta esto y la confiabilidad del personal médico en
estos estándares, la inclusión de HL7 en trabajos futuros haría esta plataforma más atractiva
para el mercado y con un valor mucho mayor al propuesto en este proyecto.
En cuanto al uso de otros sensores, es aconsejable el uso de otra tarjeta diferente a la e-
Health que pueda tener un poco más de compatibilidad con más sensores y el uso de
Raspberry Pi 3.
La selección de estándares para la implementación, tales como Open MTC, son patentes
de este proyecto debido a que es la que da la accesibilidad y el valor agregado al sistema, sin
embargo puede adaptarse a otras propuestas con uso de otras plataformas.
El uso específico del sistema abre miras no solo a la monitorización de signos de la salud,
sino al tratamiento, monitorización y gestión de enfermedades, un caso concreto, por
ejemplo, es el manejo de la diabetes a través del seguimiento de los niveles de azúcar en la
sangre y el control de ésta con insulina. Por otra parte, abre las puertas al seguimiento de un
envejecimiento autónomo que permite a los adultos mayores tener una vida independiente
con vigilancia médica constante.
8. Bibliografía
Andreassen, H. K., MBujnowska-Fedak, M., Chronaki, C., Dumitru, R., Pudule, I., Santana, S., . . . Wynn, R. (2007). European citizens' use of E-health services: A study of seven countries. BMC Public Health.
Ayuso, M. (2014). Síntomas de infarto: señales que te avisan de que estás a punto de sufrir un ataque. El confidencial.
Kwankam, S. Y. (2004). What e-Health can offer. Bulletin of the World Health Organization. Obtenido de http://www.scielosp.org/scielo.php?pid=S0042-96862004001000021&script=sci_arttext
phyton. (Agosto de 2016). Gettin started . Obtenido de Phyton: https://www.python.org/about/gettingstarted/
RaspberryPi. (Agosto de 2016). RaspberryPi. Obtenido de https://www.raspberrypi.org/help/
Apéndices
1. Requisitos de hardware
A continuación, se presentan los dispositivos necesarios para desplegar el proyecto.
- Raspberry Pi: Este dispositivo será el encargado de recolectar los valores que los
múltiples sensores envían a través de la tarjeta de eHealth v2 utilizando el SDK de
OpenMTC.
- Plataforma eHealth v2 por Cooking Hacks: Esta tarjeta permite conectar múltiples
sensores médicos a dispositivos como Arduino y Raspberry Pi.
- Dispositivo móvil: La aplicación móvil que Baymax Pi utiliza fue desarrollada
utilizando Cordova y el Framework Ionic, por esto es posible compilarla para Android
e iOS, tenga en cuenta que para compilar la aplicación en iOS es necesario tener una
licencia valida.
- Otro computador a manera de servidor para la MTC (Linux): Este dispositivo
será el servidor de OpenMTC, que se encargará de almacenar todos los datos de los
sensores y generar las diferentes alertas. La aplicación móvil consume servicios de
este servidor.
Nota: Es posible hacer despliegue de la aplicación sin tener el último requisito, en este
caso, la Raspberry se encarga de transmitir datos de los sensores y de actuar como
servidor.
2. Requisitos de software
Aun cumpliendo los requisitos de hardware, es necesario tener en cuenta que no será posible
ejecutar el proyecto sin tener permisos o licencias adecuadas para utilizar la plataforma de
OpenMTC, Baymax Pi no entrega ningún tipo de licencia de este producto ya que la licencia
utilizada para desarrollar el proyecto pertenece a la Universidad de los Andes.
La Raspberry Pi y el servidor necesitaran tener OpenMTC y Python instalado. Además de
esto es necesario tener ArduPi y la librería ‘eHealth for Raspberry’, estas dos librerías se
pueden descargar desde el sitio de Cooking Hacks.
Para instalar las dependencias nombradas, se debe utiliza los siguientes comandos:
Python y OpenMTC:
apt-get install python-pip python-dev build-essential file
pip install openmtc-all-3.0.tar.gz
ArduPi y eHealth for Pi:
wget http://www.cooking-hacks.com/media/cooking/images/documentation/raspberry_arduino_shield/raspberrypi2.zip && unzip raspberrypi2.zip && cd cooking/arduPi && chmod +x install_arduPi && ./install_arduPi && rm install_arduPi && cd ../..
Una vez se tiene ArduPi, es necesario descargar la librería eHealth for Pi, esta se incluida en
los archivos del proyecto para evitar tener que compilar todos los archivos de lectura de los
sensores. data catcher/eHealth_raspberrypi_v2.4/
Para compilar la aplicación de Ionic, es necesario tener instalado Node.js, Cordova y la
versión 1.3 del framework:
brew install node
npm install -g cordova ionic@1.3 bower
Maven java 8 y MongoDB:
Es necesario tener Maven, Java 8 y mongoDB con el fin de poder compilar el servidor del
manejo de los usuarios.
3. Despliegue
Una vez se tiene cumple con todos los requisitos de instalación y de hardware, es posible
desplegar los múltiples servicios y aplicaciones que hacen parte de Baymax Pi.
3.1Aplicación Móvil Ionic
Esta aplicación puede ser descargada desde el repositorio, en el directorio /Ionic App
https://github.com/cis321/BaymaxPi/
Una vez tenga el proyecto, es posible realizar la compilación del proyecto en su dispositivo
conectado, en un emulador o en su navegador.
- Para compilar en su dispositivo:
ionic run android
- Para probarlo en su navegador:
ionic serve
Notas:
Es necesario cambiar las direcciones IP del servidor dependiendo de su caso específico,
dichas direcciones están en /Ionic App/www/templates/componets/statistics/
y en /Ionic App/www/templates/componets/login/login.service.js
En caso de que encuentre errores compilando en su dispositivo Android, puede remover y
volver a agregar la plataforma en Ionic:
ionic hooks add
ionic platform rm android
ionic platform add android
ionic run android
Para poder acceder a la aplicación desde Chrome, es necesario ignorar ciertas restricciones
de Chrome, para esto deberá dirigirse al directorio de instalación de Chrome y ejecutarlo con
los siguientes parámetros:
chrome.exe --disable-web-security --user-data-dir
En caso de que desee compilar y ejecutar la aplicación móvil en un dispositivo con iOS:
ionic hooks add
ionic platform add ios
ionic platform build ios
Después de haber realizado la compilación, es necesario ejecutar directamente desde XCode,
para esto, puede abrir el proyecto que se acaba de crear en /platforms/ios/
3.2 Servidor central y Raspberry Pi
Antes de ejecutar todo, es necesario que usted copie las aplicaciones de MTC en su respectivo
dispositivo, específicamente en el directorio /openmtc-ula/apps
Para ejecutar todos los componentes necesarios, se incluye un script que inicia todas las
aplicaciones.
sudo ./tesisRun.sh
3.3 Servidor Usuarios
Como primera instancia se debe crear una base de datos en mongo llamada SWD_DB. Un
usuario swd_db y contraseña swd_db. Luego ir al path del proyecto server sensor en el
ejecutar el siguiente comando:
mvn package
Este comando crea una carpeta llamada target, en ella se encuentra el archivo compilado.
Debe tener la extensión .Jar.
java –jar server-baymaxPi-0.0.1-SNAPSHOT.jar server server-baymaxPi-develop.yml
top related