Sistemas móviles e inteligentes para el control de la ...

25
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

Transcript of Sistemas móviles e inteligentes para el control de la ...

Page 1: Sistemas móviles e inteligentes para el control de la ...

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

Page 2: Sistemas móviles e inteligentes para el control de la ...

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

Page 3: Sistemas móviles e inteligentes para el control de la ...

Í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

Page 4: Sistemas móviles e inteligentes para el control de la ...

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.

Page 5: Sistemas móviles e inteligentes para el control de la ...

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.

Page 6: Sistemas móviles e inteligentes para el control de la ...

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

Page 7: Sistemas móviles e inteligentes para el control de la ...

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

Page 8: Sistemas móviles e inteligentes para el control de la ...

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

Page 9: Sistemas móviles e inteligentes para el control de la ...

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.

Page 10: Sistemas móviles e inteligentes para el control de la ...

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

Page 11: Sistemas móviles e inteligentes para el control de la ...

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.

Page 12: Sistemas móviles e inteligentes para el control de la ...

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.

Page 13: Sistemas móviles e inteligentes para el control de la ...

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.

Page 14: Sistemas móviles e inteligentes para el control de la ...

Contexto de la aplicación móvil para cada una de las iteraciones Iteración 1

Iteración 2

Page 15: Sistemas móviles e inteligentes para el control de la ...

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:

Page 16: Sistemas móviles e inteligentes para el control de la ...

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

Page 17: Sistemas móviles e inteligentes para el control de la ...

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.

Page 18: Sistemas móviles e inteligentes para el control de la ...

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.

Page 19: Sistemas móviles e inteligentes para el control de la ...

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

Page 20: Sistemas móviles e inteligentes para el control de la ...

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.

Page 21: Sistemas móviles e inteligentes para el control de la ...

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.

Page 22: Sistemas móviles e inteligentes para el control de la ...

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.

Page 23: Sistemas móviles e inteligentes para el control de la ...

- 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 [email protected] bower

Maven java 8 y MongoDB:

Page 24: Sistemas móviles e inteligentes para el control de la ...

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

Page 25: Sistemas móviles e inteligentes para el control de la ...

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