UNIVERSIDAD DE OVIEDO ESCUELA DE INGENIERÍA INFORMÁTICA TRABAJO FIN DE MÁSTER “DISPENSADOR INTELIGENTE DE MEDICAMENTOS CONECTADO Y SISTEMA DE GESTIÓN” DIRECTOR: Jordán Pascual Espada CODIRECTOR: Martín González Rodríguez Vº Bº del Director del AUTOR: Jose Antonio Cabañeros Blanco Proyecto Dispensador Inteligente de Medicamentos Conectado y Sistema de Gestión Agradecimientos El primer lugar agradecer a mis padres la oportunidad que me han concedido de continuar mi formación y animarme incondicionalmente desde el minuto uno de esta nueva etapa. Estas líneas nunca hubieran sido escritas sin su transmisión del valor del esfuerzo que me han inculcado desde niño. En segundo lugar, a mi hermano David por haberme ayudado en todo aquello que he necesitado y por haber sido un gran compañero de este viaje. Gracias por ser el primero en aparecer en el momento que me surge un contratiempo y recuerda, algún día llegaremos más alto que los hermanos Chopin ;) A mis directores del proyecto y en especial a Jordán por sus consejos, conocimientos y entusiasmo que han servido para evolucionar el proyecto hasta lo que es hoy. A mi cuñada Melodie por aguantarme todo este tiempo y echarme una mano en todo lo que he necesitado. A partir de ahora los lunes serán menos lunes y por supuesto, los viernes empezaré a hacer yo la cena. A mis abuelos por animarme constantemente a continuar con mi formación y animarme en el día a día. En especial quiero agradecer a mi abuelo Nano la preocupación transmitida por la evolución del proyecto y del máster en general. A todos mis amigos de Laguna y del máster quienes de uno u otro modo me han ayudado a seguir evolucionando como persona. También agradecer al resto de familiares y amigos que no he nombrado y que han aportado su granito de arena. Muchísimas gracias a todos. Always looking for creative ways to answer questions before they’re asked Oviedo, junio de 2018 Escuela de Ingeniería Informática - Universidad de Oviedo | Memoria del Proyecto 3 Dispensador Inteligente de Medicamentos Conectado y Sistema de Gestión Resumen El proyecto tiene como objetivo crear un sistema conectado desde un enfoque innovador que facilite en la toma de medicación diaria a los pacientes que requieren de tratamientos rutinarios, permitiendo delegar la responsabilidad del control y gestión de estos tratamientos al sistema. Para ello, se trata de buscar una alternativa más completa y precisa a los pastilleros convencionales usados en la toma de medicamentos. A través del sistema se podrán programar horarios de toma de medicamentos, que serán notificados al paciente para su toma por medio de un dispensador creado específicamente para el sistema y controlar remotamente las tomas. Uno de los componentes fundamentales del sistema será el dispensador inteligente de medicamentos conectado. Este será el elemento hardware del sistema encargado de dispensar los medicamentos y de controlar su toma. Dispondrá de dos contenedores independientes que almacenarán las pastillas de dos tipos diferentes de medicamentos. También servirá como centro de monitorización del entorno y de control de las acciones del usuario para la toma de la medicación. Por la parte software, la aplicación web de gestión y control será el centro de monitorización del dispensador. A través de esta aplicación se podrán programar horarios de toma de medicación y controlar el estado del dispensador. También permitirá controlar de forma remota la toma de la medicación, el estado de la misma y el entorno del dispensador, mostrando datos ambientales en tiempo real. Además se podrán configurar diversos parámetros, tales como el número de medicamentos del pastillero, como se avisa al paciente o la forma en la que se debe confirmar la toma de la medicación en el dispensador. La aplicación también dispondrá de un apartado de administración para la gestión de los identificadores de los dispositivos, así como de los usuarios registrados en el sistema. El sistema habilitará un completo centro de notificaciones que permitirá mantener informados a los usuarios de posibles anomalías en el dispensador, desconexiones y monitorizar las tomas de las medicaciones. Estas notificaciones serán realizadas a través de los correos electrónicos especificados para el dispensador y por medio de mensajes a través de la aplicación Telegram publicados en un canal creado expresamente para el sistema. Por último, el sistema está orientado en primera instancia a pacientes de avanzada edad que usarían el dispensador y familiares o cuidadores que gestionarían y monitorizarían el dispensador a través de la aplicación. Por ello, el sistema permite no solo programar horarios de medicación y monitorizar su toma, si no que también será capaz de monitorizar el entorno donde vive el paciente, manteniendo informados a los usuarios de anomalías y situaciones de emergencia que el paciente comunique a través del dispensador. Escuela de Ingeniería Informática - Universidad de Oviedo | Memoria del Proyecto 5 Dispensador Inteligente de Medicamentos Conectado y Sistema de Gestión Palabras Clave IoT, Sistema Conectado, Dispensador de Medicamentos, Programación de Horarios, Gestión, Monitorización Remota, Aplicación Web, Microcontrolador, Notificaciones de Alarmas, Control, Telegram Escuela de Ingeniería Informática - Universidad de Oviedo | Memoria del Proyecto 7 Dispensador Inteligente de Medicamentos Conectado y Sistema de Gestión Índice General CAPÍTULO 1. MEMORIA DEL PROYECTO ...................................................................................... 15 1.1 RESUMEN DE LA MOTIVACIÓN, OBJETIVOS Y ALCANCE DEL PROYECTO ..................................................... 16 1.2 RESUMEN DE TODOS LOS ASPECTOS .................................................................................................. 18 CAPÍTULO 2. INTRODUCCIÓN ...................................................................................................... 19 2.1 JUSTIFICACIÓN DEL PROYECTO........................................................................................................... 19 2.2 OBJETIVOS DEL PROYECTO ............................................................................................................... 20 2.3 ESTUDIO DE LA SITUACIÓN ACTUAL .................................................................................................... 21 2.3.1 Sistemas de programación de horarios y alarmas................................................................ 21 2.3.2 Aplicaciones móviles de programación de horarios ............................................................. 24 2.3.3 Conclusiones .......................................................................................................................... 28 CAPÍTULO 3. ANÁLISIS ................................................................................................................ 30 3.1 DEFINICIÓN DEL SISTEMA ................................................................................................................. 30 3.1.1 Determinación del Alcance del Sistema ................................................................................ 30 3.1.2 Especificación textual de los requisitos del sistema.............................................................. 30 3.1.3 Requisitos del Sistema........................................................................................................... 32 3.1.4 Identificación de Actores del Sistema ................................................................................... 37 3.1.5 Especificación de Casos de Uso ............................................................................................. 37 3.2 IDENTIFICACIÓN DE LOS SUBSISTEMAS EN LA FASE DE ANÁLISIS ............................................................... 48 3.2.1 Descripción de los Subsistemas ............................................................................................. 48 3.2.2 Descripción de los Interfaces entre Subsistemas .................................................................. 49 3.3 ANÁLISIS DEL DISPOSITIVO DISPENSADOR DE MEDICAMENTOS ................................................................. 51 3.4 ANÁLISIS Y ESTUDIO DE ALTERNATIVAS ............................................................................................... 53 3.4.1 Sistema Distribuido y Base de Datos - Backend .................................................................... 53 3.4.2 Dispensador, Microcontrolador y Componentes Electrónicos .............................................. 56 3.4.3 Aplicación Web - Frontend .................................................................................................... 65 3.5 DIAGRAMA DE CLASES PRELIMINAR DEL SISTEMA DISTRIBUIDO ............................................................... 71 3.6 DIAGRAMA PRELIMINAR DE LAS FUNCIONES DEL MICROCONTROLADOR .................................................... 72 3.7 ANÁLISIS DE INTERFACES DE USUARIO DE LA APLICACIÓN WEB ................................................................ 73 3.7.1 Descripción de la Interfaz de la Aplicación web .................................................................... 73 3.7.2 Descripción del Comportamiento de la Interfaz de la aplicación ......................................... 78 3.7.3 Diagrama de Navegabilidad ................................................................................................. 79 3.8 ANÁLISIS DEL INTERFAZ FÍSICO DEL DISPENSADOR DE PASTILLAS CONECTADO ............................................. 81 3.9 HIPÓTESIS Y RESTRICCIONES ............................................................................................................. 83 3.10 PRESUPUESTO PARA EL CLIENTE ........................................................................................................ 85 3.11 ESPECIFICACIÓN DEL PLAN DE PRUEBAS .............................................................................................. 86 CAPÍTULO 4. DISEÑO DEL SISTEMA ............................................................................................. 87 4.1 ARQUITECTURA DEL SISTEMA ............................................................................................................ 87 4.2 DISEÑO DE CASOS DE USO ............................................................................................................... 90 4.2.1 Diagramas de secuencia de los casos de uso del actor Usuario Anónimo............................ 91 4.2.2 Diagramas de secuencia de los casos de uso del actor Usuario Cliente ............................... 93 4.2.3 Diagramas de secuencia de los casos de uso del actor Usuario Administrador ................. 101 4.2.4 Diagramas de secuencia de los casos de uso del actor Usuario del Dispensador .............. 103 8 Memoria del Proyecto | Escuela de Ingeniería Informática - Universidad de Oviedo Dispensador Inteligente de Medicamentos Conectado y Sistema de Gestión 4.2.5 Diagramas de secuencia de casos de uso del actor Dispensador ....................................... 104 4.2.6 Diagramas de secuencia de casos de uso de los actores Servidor de correo y Telegram ... 106 4.3 ELECCIÓN DE ALTERNATIVAS ........................................................................................................... 107 4.3.1 Sistema Distribuido y Base de Datos - Backend .................................................................. 107 4.3.2 Dispensador, Microcontrolador y Componentes Electrónicos ............................................ 108 4.3.3 Aplicación Web – Frontend ................................................................................................. 111 4.3.4 Conclusiones ........................................................................................................................ 112 4.4 DISEÑO DE CLASES DEL SISTEMA DISTRIBUIDO ................................................................................... 114 4.5 DISEÑO DE LAS FUNCIONES DEL MICROCONTROLADOR ........................................................................ 115 4.6 DISEÑO DEL SISTEMA DISTRIBUIDO – BACKEND .................................................................................. 117 4.6.1 Aplicación web en el servidor .............................................................................................. 118 4.6.2 Microcontrolador del dispensador en el servidor ............................................................... 118 4.6.3 Proceso de comprobación de conexión del dispensador .................................................... 119 4.6.4 Sistema de Alertas y Notificaciones .................................................................................... 120 4.7 DISEÑO DE LA BASE DE DATOS – BACKEND ........................................................................................ 122 4.8 DISEÑO DEL DISPENSADOR DE MEDICAMENTOS CONECTADO – HARDWARE ............................................. 127 4.8.1 Sistema de control del Dispensador .................................................................................... 129 4.9 DISEÑO DE LA INTERFAZ DE LA APLICACIÓN WEB – FRONTEND .............................................................. 131 4.9.1 Diseño y componentes de la interfaz de usuario ................................................................ 131 4.9.2 Diseño responsive................................................................................................................ 140 4.10 PROTOCOLO DE COMUNICACIÓN ENTRE EL DISPENSADOR Y EL SERVIDOR – API ....................................... 142 4.10.1 Peticiones GET – Solicitud de horarios ............................................................................ 142 4.10.2 Peticiones POST – Evento en el dispensador .................................................................. 144 4.11 ESPECIFICACIÓN TÉCNICA DEL PLAN DE PRUEBAS ................................................................................ 146 4.11.1 Pruebas Unitarias y de Integración ................................................................................ 146 4.11.2 Pruebas de Usabilidad .................................................................................................... 151 CAPÍTULO 5. IMPLEMENTACIÓN DEL SISTEMA........................................................................... 153 5.1 ESTÁNDARES Y NORMAS SEGUIDOS ................................................................................................. 153 5.2 LENGUAJES DE PROGRAMACIÓN ...................................................................................................... 154 5.3 HERRAMIENTAS Y PROGRAMAS USADOS PARA EL DESARROLLO ............................................................. 155 5.3.1 Eclipse junto al plugin NodeEclipse ..................................................................................... 155 5.3.2 Arduino Software IDE .......................................................................................................... 155 5.3.3 Control de versiones Git ...................................................................................................... 156 5.3.4 GitHub ................................................................................................................................. 156 5.3.5 MongoDB en local ............................................................................................................... 156 5.3.6 RoboMongo......................................................................................................................... 157 5.3.7 Postman .............................................................................................................................. 157 5.3.8 Heroku ................................................................................................................................. 158 5.3.9 mLab.................................................................................................................................... 158 5.3.10 Tinkercad ........................................................................................................................ 158 5.3.11 Cura................................................................................................................................. 159 5.4 CREACIÓN DEL SISTEMA ................................................................................................................. 160 5.4.1 Dificultades Superadas ........................................................................................................ 160 5.4.2 Paquetes externos utilizados en la implementación del sistema distribuido Node.js ........ 161 5.4.3 Implementación del Microcontrolador ............................................................................... 162 5.4.4 Detalles de construcción del dispensador de medicamentos ............................................. 164 CAPÍTULO 6. DESARROLLO DE LAS PRUEBAS ............................................................................. 167 6.1 PRUEBAS UNITARIAS ..................................................................................................................... 167 Escuela de Ingeniería Informática - Universidad de Oviedo | Memoria del Proyecto 9
Description: