SciELO - Scientific Electronic Library Online

 
vol.41 issue2FPGA design of a Time-Variant Coefficient FilterAutomatic control of water distribution in irrigation systems: review and challenges author indexsubject indexarticles search
Home Pagealphabetic serial listing  

My SciELO

Services on Demand

Journal

Article

Indicators

  • Have no cited articlesCited by SciELO

Related links

  • Have no similar articlesSimilars in SciELO

Share


Ingeniería Electrónica, Automática y Comunicaciones

On-line version ISSN 1815-5928

EAC vol.41 no.2 La Habana May.-Aug. 2020  Epub Aug 01, 2020

 

Artículos

Diseño de un sistema inalámbrico de monitorización electrocardiográfica para dispositivos Android

Design of a wireless electrocardiographic monitoring system for Android devices

Rafael E. Smith Colás1 
http://orcid.org/0000-0001-8594-258X

Rubén Cobo Alea1 
http://orcid.org/0000-0003-0149-4156

Carlos R. Vázquez Seisdedos2 
http://orcid.org/0000-0002-3167-2585

1Departamento de Telecomunicaciones, Facultad de Ingeniería en Telecomunicaciones, Informática y Biomédica, Universidad de Oriente, Santiago de Cuba, Cuba.

2Centro de Estudios de Neurociencias, Procesamiento de Imágenes y Señales, Facultad de Ingeniería en Telecomunicaciones, Informática y Biomédica, Universidad de Oriente, Santiago de Cuba, Cuba.

RESUMEN

En este trabajo se describe el diseño e implementación de un sistema inalámbrico de monitorización electrocardiográfica para dispositivos Android. El sistema está formado por un dispositivo que actuará como servidor ubicado en el paciente y otro dispositivo que actuará como cliente. El servidor incorpora las etapas de protección contra desfibriladores externos, adquisición y transmisión de la señal mediante un módulo Wi-Fi (ESP8266 NodeMCU), y el cliente recibe, procesa y visualiza en tiempo real la señal de electrocardiograma (ECG) en un teléfono inteligente o en una tableta electrónica, con el sistema operativo Android. Además, calcula y visualiza la serie RR del ECG y dos indicadores diagnósticos con una demora menor de dos segundos. Las pruebas experimentales del prototipo con siete voluntarios evidenciaron el excelente desempeño del protocolo propuesto para la capa de aplicación del sistema y el cumplimiento de los requisitos y criterios de diseño establecidos. El sistema permite registrar el ECG de forma ambulatoria con un alcance de hasta 15 m y constituye una excelente alternativa para aumentar la calidad de vida de las personas de la tercera edad, o que presentan problemas para la locomoción (temporal o permanente).

Palabras claves: ECG; monitorización; Wi-Fi; Android

ABSTRACT

This paper describes the design and implementation of a wireless electrocardiographic monitoring system for Android devices. The system consists of a device that will act as a server located in the patient and another device that will act as a client. The server incorporates the stages of protection against external defibrillators, acquisition and transmission of the signal through a Wi-Fi module (ESP8266 NodeMCU), and the client receives, processes and displays in real time the electrocardiogram (ECG) signal in a smartphone or an electronic tablet, with Android operating system. In addition, it calculates and displays the RR series from ECG and two diagnostic indicators with a delay of less than two seconds. The experimental tests of the prototype with seven volunteers showed the excellent performance of the proposed protocol for the application layer of the system and the fulfillment of the established design requirements and criteria. The system allows registering the ambulatory ECG within a range of up to 15 m and is an excellent alternative to increase the quality of life of the elderly or other people who present problems for locomotion (temporary or permanent).

Key words: ECG; monitoring; Wi-Fi; Android

1.-INTRODUCCIÓN

Las enfermedades cardiovasculares representan una de las tres primeras causas de muerte en la mayoría de los países, según los reportes de la Organización Mundial de la Salud. En Cuba, el Sistema Nacional de Salud reporta a las enfermedades cardíacas como la primera causa de muerte con un 30% de los fallecimientos anuales. Los avances en la electrónica, las telecomunicaciones y las tecnologías de la información, específicamente la de los dispositivos móviles, han permitido el desarrollo de innumerables dispositivos y aplicaciones en el área de la medicina, logrando una mayor cobertura y por tanto una mejora en la prestación de servicios de salud. La monitorización inalámbrica de la señal de electrocardiograma (ECG), es una de las aplicaciones de gran interés en la medicina [1] y abarca la adquisición, el procesamiento y análisis para emitir un diagnóstico final. El interés principal es proveer, de forma oportuna, servicios a pacientes dentro y fuera de los centros de salud. Existen varias razones para justificar el aumento del monitoreo inalámbrico del ECG: (a) muchas personas tienen que viajar largas distancias para recibir atención médica porque sus áreas de salud no tienen centros de atención médica, o sólo tienen centros con instalaciones básicas, (b) los pacientes con enfermedades cardíacas crónicas necesitan un seguimiento continuo para realizar su vida cotidiana sin necesidad de permanecer en el hospital, (c) los servicios hospitalarios, si bien en Cuba son gratuitos, son costosos, (d) el envejecimiento de la población o su imposibilidad de desplazarse a instituciones de salud y (e) la insuficiente o no existente disponibilidad de los tradicionales equipos Holter para la monitorización ambulatoria del ECG, entre otros.

El uso de dispositivos portables es especialmente interesante en el seguimiento de eventos (arritmias, sincopes y otros) que no pueden detectarse en un electrocardiograma en reposo ya que, debido a su carácter transitorio, pueden no aparecer durante un período corto de grabación. Este tipo de dispositivos cómodos, simples, eficientes y cada vez más al alcance de las personas, están reemplazando poco a poco a la monitorización Holter tradicional, en la que el paciente debía cargar con un sistema de grabación para el registro de la actividad eléctrica del corazón. Existen múltiples escenarios que justifican el uso de dispositivos móviles en la medicina: (a) en una sala hospitalaria puede ser de interés que el especialista necesite visualizar las señales de ECG de los pacientes ubicados en camas diferentes sin necesidad de tener que desplazar un monitor de ECG más voluminoso e incomodo, (b) cuando el médico de familia visita al paciente (fuera del entorno hospitalario) no le es posible llevar un electrocardiógrafo consigo y (c) en zonas rurales de difícil acceso, entre otros.

Es indiscutible la popularidad que dispositivos como teléfonos celulares y tabletas electrónicas, basados en el Sistema Operativo (SO) Android han alcanzado en todo el mundo, cuyo crecimiento exponencial ha posibilitado su aplicación en el monitoreo de la actividad cardíaca durante la ejecución de actividades físicas intensas aportando comodidad y movilidad a las mismas, sin dejar de obtener información certera y confiable del paciente.

En Cuba se han desarrollado aplicaciones para este SO de código abierto. En [2] se presenta el desarrollo de un sistema inalámbrico usando dispositivos Android para asistir a personas discapacitadas motoras y débiles visuales, usando los sensores de un Smartphone, el protocolo de transmisión Bluetooth v4.0, y un Arduino controlado por una aplicación (APK, del inglés Android Aplication Package) para accionar remotamente, equipos y sistemas de una vivienda: luces, aire acondicionado, apertura de puertas y equipos electrodomésticos. La implementación de una mini-lengua electrónica portátil controlada por un teléfono inteligente para el reconocimiento de muestras de leche fue propuesta en [3]. La aplicación se realizó en el entorno de desarrollo Android Studio.

En [4] se proponen dos aplicaciones que emplean las posibilidades internas del hardware de dispositivos móviles: acelerómetro y micrófono para desarrollar un podómetro y un analizador de voz, respectivamente. Las aplicaciones anteriores usan los sensores disponibles en los dispositivos móviles, tales como micrófonos, acelerómetros y cámaras, pero no se han reportado en nuestro país herramientas hardware ni software, soportadas en dispositivos inalámbricos con el SO Android para monitorización ambulatoria de la señal de ECG en múltiples escenarios de diagnóstico. De esta forma, el objetivo de este trabajo es desarrollar y evaluar un sistema inalámbrico portátil para monitorizar la señal de ECG usando dispositivos con este SO.

El trabajo se organiza como sigue. En el apartado 2, se presenta la arquitectura del sistema desde los puntos de vista electrónico y por capas según el modelo TCP/IP. Se explica, en detalles, el protocolo de la capa de aplicación propuesto en este trabajo y la aplicación realizada para el dispositivo Android. Finalmente se describe el algoritmo de detección de puntos R utilizado, la obtención de la serie RR y el cálculo de algunos indicadores que de esta se derivan. En el apartado 3 se mostrará la implementación hardware y software del sistema desarrollado, presentando la forma de utilizar la aplicación "Cardioplus 3.0" que reside en el cliente. Luego se explica la metodología experimental utilizada para la puesta a punto de la comunicación entre el servidor y el cliente. Finalmente se presentan los resultados obtenidos para cada una de las metodologías utilizadas y la forma de comprobar los algoritmos de procesamiento, utilizando el Matlab 2013.

2.- ARQUITECTURA DEL SISTEMA PROPUESTO

La arquitectura general del sistema desarrollado (figura 1) está compuesta por dos partes: dispositivo que actuará como servidor ubicado en el paciente y el dispositivo que actuará como cliente.

El servidor tiene las funciones siguientes: (a) medir y acondicionar la señal de ECG del sujeto, y (b) transmitirla hacia el cliente a través del módulo de comunicaciones inalámbricas (MCI) ESP8266, el cual contiene un microcontrolador que gestiona todo el proceso de adquisición y transmisión. El cliente tiene la función de recibir, a través del módulo Wi-Fi integrado en el dispositivo móvil (con SO Android) la señal de ECG transmitida, visualizarla (en tiempo real), realizar un procesamiento de esta (off-line) y finalmente mostrar al usuario los resultados obtenidos.

Figura 1 Arquitectura del sistema propuesto para la monitorización ambulatoria de la señal electrocardiográfica mediante Wi-Fi. AI es el amplificador de instrumentación, FPB es el filtro pasabanda insertado en la propia estructura del AI. 

La arquitectura por capas, siguiendo el modelo TCP/IP embebido en el MCI se muestra en la figura 2. En la capa de aplicación se propuso un protocolo de comunicación entre el cliente y el servidor, así como el formato de los mensajes intercambiados entre estos. A este protocolo se le denominó por las siglas RCG incluidas en la frase: "Recepción de eleCtrocardioGrama". La unidad de dato de protocolo (PDU) de esta capa se le denominó "PDU Aplicación". En la capa de transporte el protocolo empleado fue el protocolo UDP cuya PDU es "Datagrama UDP". En la capa Internet fue empleado el protocolo IP, cuya PDU es "Paquete IP" y, por último, se escogió el estándar 802.11n en la capa de Acceso a la Red siendo finalmente la "Trama 802.11n" la que se transmite o recibe.

Figura 2 Arquitectura por capas del modelo TCP/IP para el sistema propuesto de monitorización ambulatoria de la señal electrocardiográfica mediante Wi-Fi

2.1.- SERVIDOR: DISEÑO HARDWARE

2.1.1.- PROTECCIÓN CONTRA DESFIBRILADORES

Los desfibriladores son dispositivos médicos que aplican descargas eléctricas al paciente para intentar revertir posibles arritmias cardíacas que son potencialmente malignas. Estas descargas de tensión son tan elevadas que pueden dañar el sistema de medida conectado al paciente. Para evitar esto en el sistema desarrollado, el primer bloque lo forma el circuito de protección contras sobretensiones que está compuesto por 4 elementos no lineales del tipo SP724 cuyo encapsulado se muestra en la figura 3. Estos elementos soportan tensiones inversas pico de hasta 8 kV y corrientes pico de 2 A.

Figura 3 Circuitos integrados SP724 para protección contra desfibriladores. 

2.1.2.- ACONDICIONAMIENTO DE LA SEÑAL DE ECG AMBULATORIA

La etapa de acondicionamiento de la señal de ECG constituye el segundo bloque del sistema (figura 4). Los electrodos se colocan en la piel del paciente, en localizaciones predeterminadas de manera universal. En este trabajo se emplea una derivación 2 modificada en la que se colocó un primer electrodo en el hombro derecho (polo negativo) en lugar del brazo derecho, un segundo electrodo en el cuarto espacio intercostal izquierdo (polo positivo) en lugar de la pierna izquierda y el electrodo de referencia (VR) en el abdomen inferior derecho formando un triángulo isósceles con los electrodos anteriores.

La utilización de electrodos para poder medir esta señal implica la aparición de un potencial de contacto del electrodo del orden de 100 mV, que es mucho mayor que la amplitud de la señal de ECG (≈ 5 mV). En situaciones de reposo del paciente, este potencial de contacto es una tensión casi continua. No obstante, siempre existen variaciones de baja frecuencia, debidas a la respiración y a otras variaciones de la interfaz electrodo-piel, que se suman a la señal de ECG medida. La forma habitual de eliminarlas es filtrar paso-alto a la señal adquirida. En este bloque es donde se amplifica y se realiza dicho filtrado, usando la estructura propuesta en [5] la cual consta de un filtro pasa-alto diferencial pasivo a la entrada del amplificador de instrumentación integrado AD627 al cual, al mismo tiempo se le sustrae, por su terminal de referencia, la integral de la propia tensión de salida (A1) del AD627, lo cual equivale a un acoplamiento entrada-salida pasa-alto.

Figura 4 Circuito Acondicionador de la señal de ECG. 

La salida del AD627, cuya ganancia es de 1005, se acopla a un filtro pasa-bajo de segundo orden con realimentación múltiple (A2) y ganancia unitaria. Los voltajes de referencia VR y Vref son obtenidos a partir de un divisor de tensión con el amplificador A3. La respuesta en frecuencia del conjunto es de 0,67 Hz a 40 Hz. El esquema mostrado en la figura 1 se adaptó de uno previamente usado para transmitir el ECG de forma analógica mediante FM de banda estrecha [6].

2.1.3.- MÓDULO Wi-Fi

El tercer bloque corresponde al MCI (ESP8266 NodeMCU) que contiene a un chip Wi-Fi que funciona mediante el modelo TCP/IP y que incluye un microcontrolador (Tensilica L106) para gobernar dicho modelo y el software necesario para la conexión 802.11. Dispone de entradas/salidas digitales de propósito general (GPIO), así como un conversor analógico digital de 10 bits. Además, se puede programar directamente con el entorno de desarrollo de Arduino. En la figura 5(a) se puede observar un ejemplar de este módulo y en la figura 5(b), su distribución de terminales.

Figura 5 Módulo Wi-Fi ESP8266 NodeMCU: (a) placa electrónica, (b) distribución de terminales. 

En este diseño, los terminales de interés son: ADC0 (entrada analógica), GND (referencia) y Vin (alimentación). Con el fin de lograr una mayor eficiencia de la batería se analizó el consumo de corriente del módulo en transmisión y recepción en cada uno de los estándares 802.11 que este soporta. La Tabla 1 resume este comportamiento.

Tabla 1 Consumo de corriente del MCI en transmisión y recepción para cada estándar [7]. 

Estándar Modo Consumo (mA)
802.11b Transmisión Recepción 170 50
802.11g Transmisión Recepción 140 56
802.11n Transmisión Recepción 120 56

2.1.4.- DIAGRAMA ELÉCTRICO

En la figura 6 se muestra el diagrama eléctrico propuesto para el servidor, donde se puede observar cada uno de los elementos descritos anteriormente. Para alimentar el circuito, se utilizó una batería con un valor nominal de 5 V (VCC) y una capacidad de corriente de 1720 mAh.

Figura 6 Diagrama eléctrico del servidor. Los electrodos se conectan a los terminales 1, 3 y 5 del conector UR1. 

El MCI puede ser programado utilizando los tradicionales comandos AT o mediante funciones en el lenguaje de la plataforma Arduino usando el entorno de desarrollo integrado (IDE) de Arduino. En este trabajo se optó por este último por ser más simple de usar que los comandos AT.

2.2.- SERVIDOR: DISEÑO SOFTWARE

2.2.1.- PROTOCOLO PROPUESTO

El protocolo RCG propuesto para la capa de aplicación está basado en la arquitectura cliente-servidor. Su objetivo es establecer la forma en que interactuarán el servidor y el cliente así como definir el contenido y formato de las solicitudes y respuestas entre estos. El cliente se conecta al servidor desde el socket conformado por el puerto: 8080 y dirección IP: 192.168.4.2 (asignada por código) y hace la solicitud a este, que siempre está escuchando las peticiones, por el socket conformado por el puerto 2390 y dirección IP: 192.168.4.1 (asignada por defecto). Una vez establecida la conexión y cuando el cliente lo solicite, el servidor comienza la transmisión de los mensajes o la detiene. Tanto el cliente como el servidor interactúan entre sí a través de sus correspondientes buffers de transmisión y de recepción, de 512 bytes cada uno.

Cuando el cliente envía el comando: "Cmnzr" (Comenzar transmisión de datos) el servidor realiza las siguientes operaciones: (a) Habilita la interrupción del Timer para garantizar una frecuencia de muestreo del ECG de 100 Hz, (b) Conforma, cada 1 s (100 muestras de la señal de ECG), la unidad de datos "PDU Aplicación" mostrada en la figura 7 y la transmite, (c) Repite esta operación hasta que reciba una solicitud de detención por parte del cliente. Cuando el comando enviado por el cliente es "Dtnr" (Detener medición) el servidor deshabilita la interrupción del Timer.

Figura 7 Unidad de dato de protocolo (PDU) conformada por el servidor para lograr mayor robustez en la comunicación. 

La PDU tiene una longitud total de 302 bytes y está compuesta por los siguientes campos:

  • Valor leído: campo de longitud fija (dos bytes) que contiene cada muestra de la señal de ECG digitalizada por el conversor A/D (ADC0).

  • Separador: campo de longitud fija (un byte) que contiene el carácter ":" que actúa como separador para indicarle al cliente donde comienza y termina una muestra de la señal.

  • Mdr (Marcador): campo de longitud fija (dos bytes) que representa el orden en el que el servidor va transmitiendo las PDUs y por tanto el orden en el que se deberían recibir, procesar y graficar por el cliente. Por ejemplo, si el tiempo de monitoreo es de 1 min, entonces este campo contendrá valores desde 1 a 60.

2.2.2.- DIAGRAMA DE FLUJO

En la figura 8 se presenta el diagrama de flujo del software del servidor.

El primer paso consiste en inicializar las variables que serán utilizadas en todo el programa. Luego, se configura la red creada por el MCI, es decir: (a) se declara el nombre de la red, la contraseña y el canal, (b) se declara el módulo como un punto de acceso, (c) se definen los sockets, y (d) se declaran el protocolo de la capa de transporte utilizado y el estándar 802.11 escogido.

En el siguiente bloque del diagrama de flujo es resaltada la variable "flag" porque es la encargada de indicarle al compilador del IDE de Arduino los segmentos de código que debe ejecutar. Una vez inicializadas todas las variables y configurado el MCI se invoca al método: "Cnctd( )" que se encarga de verificar si existe algún cliente conectado a la red creada. Mientras esto no ocurra el programa principal se mantiene en un bucle, en cuanto se conecta el cliente, sale del bucle y se espera alguna solicitud. El método: "Solicitud ( )" lee el buffer de recepción del MCI e interpreta la petición del cliente, en caso de que esta sea la de transmisión: "Cmnzr" se verifica el valor de "flag" y si este es cero se procede a habilitar la interrupción "INT" del Timer del MCI y luego se cambia el valor de "flag" a uno. Análogamente si la petición es de detener la transmisión: "Dtnr", se verifica el valor de flag, de ser igual a uno, se deshabilita la interrupción del Timer y se cambia el valor de "flag" a cero. Lo anterior es para evitar que las interrupciones del Timer se habiliten o deshabiliten más de una vez, con cada solicitud, debido a las características del método loop ( ) del IDE de Arduino, que por defecto, es un bucle infinito.

Figura 8 Diagrama de flujo del software del servidor. 

La interrupción del Timer del MCI es utilizada con el fin de garantizar la frecuencia de muestreo de la señal de ECG (100 Hz), interrumpiendo la ejecución del programa principal cada 10 ms. En la rutina de interrupción "INT" se muestrea el valor a la entrada del ADC, y su versión digitalizada se agrega secuencialmente al campo: "Valor leído" y el separador correspondiente en la posición de la PDU según se explicó en la figura 7. Luego, se verifica si el número de muestras es igual a 99, la variable encargada de esta función es: "contM", si esta verificación da como resultado false (No), se incrementa en uno "contM" y se retorna al programa principal. De lo contrario se agrega el marcador (que inicialmente es cero) en el campo: "Mdr" de la PDU y se transmite al cliente. Esto último se realiza con el fin de que el cliente pueda verificar el orden en que debe procesar y graficar los datos recibidos. Hecho esto, se reinicia a cero la variable: "contM", se incrementa la variable: "Mdr" en uno y se retorna al programa principal. Estas últimas acciones dejan preparadas las condiciones para conformar la próxima PDU.

A continuación, se explicarán los aspectos más relevantes del código que se corresponde con el bloque: "Configuración del MCI" del programa principal.

Para declarar el nombre de la red (ssid, en inglés: service set identifier), la contraseña (password) y el canal (channel) se usa la instrucción: "Wifi.softAP(ssid password,channel);", donde ssid es: "ESP8266_Wifi", password es "Cardioplus" y channel es: "1". Se usó el canal 1 porque es, de los posibles 14 canales a seleccionar entre 2,4 GHz y 2,5 GHz, el que menos solapamiento espectral puede sufrir del resto de canales. El fabricante recomienda también, usar los canales 6 y 11.

Para configurar el MCI como punto de acceso se usa la instrucción: "Wifi.mode(WIFI_AP);". Para configurar los sockets se usa la función: "begin(localPort)" que toma como parámetro el puerto definido para el servidor (2390) y en conjunto con la dirección IP: 192.168.4.1 (asignada por defecto) conforman el socket a través del cual escuchará las peticiones del cliente, la forma de implementar esto es mediante la sentencia: "Udp. begin(localPort);". La función "beginPacket(ip,8080)" especifica el socket al cual el MCI debe enviar las respuestas, la sentencia que permite implementar este socket es: "Udp.beginPacket(ip,8080);".

La forma de definir el protocolo UDP de la capa de transporte es incluyendo la librería: "WiFiUdp.ℎ" e instanciarla usando la sentencia: "WiFiUDP Udp;". Asimismo, para definir el estándar 802.11 se utilizó el método: "WiFi.setPhyMode( PHY_MODE_11N );". El software desarrollado para el cliente tiene sus bases en el concepto de "Actividad" y fue implementado en el entorno de desarrollo integrado (IDE) Android Studio, buscando ante todo la comodidad del usuario mediante un esquema de funcionamiento simple e intuitivo.

2.3.- CLIENTE: DISEÑO SOFTWARE

2.3.1.- ESQUEMA GENERAL DE LA APLICACIÓN CARDIOPLUS 3.0

Una actividad está compuesta por una interfaz de usuario (layout) que tiene asociada una clase con varios métodos que pueden ser utilizados o no por el desarrollador. En los layouts, mediante el lenguaje de programación HTML, es donde se colocan los diferentes componentes que brinda el entorno de desarrollo (botones, listas, imágenes, gráficas, textos etc.) y la clase basada en el lenguaje de programación Java garantiza la funcionalidad de cada componente.

La figura 9 muestra la secuencia lógica seguida por las actividades y las funciones que realizan dentro de la aplicación.

  • Actividad_1 ("Presentacion"): Es la primera actividad con la que interactúa el usuario. Se encarga de identificar la aplicación y garantizar el acceso a los servicios Wi-Fi del cliente. Si la Wi-Fi del dispositivo está activada luego de tres segundos se lanza la próxima actividad, de lo contrario se le informa al usuario que será activada y una vez recibida la confirmación de este, se activa y lanza la próxima actividad.

  • Actividad_2 ("WiFiList"): En esta actividad se escanean las redes Wi-Fi alrededor del cliente y el resultado es mostrado en una lista en la cual el usuario debe elegir la red "ESP8266_Wifi", la clase Java asociada a la interfaz gráfica de esta actividad garantiza la conexión entre el cliente y el servidor y una vez hecho esto se arranca la próxima actividad.

  • Actividad_3 ("Graficar"): En esta actividad se le brinda al usuario la posibilidad de definir el tiempo de monitorización. Los botones: "Comenzar" (C) y "Detener" (D) regulan la interacción con el servidor mediante el envío de las solicitudes: "Cmnzr" y "Dtnr". Por otro lado el boton: "Analizar" (A) se encarga de lanzar la próxima actividad. Además cuenta con dos graficas una para graficar la señal recibida en tiempo real y otra para mostrar la detección de los puntos R una vez culminado el tiempo de monitorización seleccionado por el usuario.

  • Actividad_4 ("Resultados"): Es la última actividad de la aplicación y se encarga de visualizar la serie RR de la señal ECG y de esta la diferencia entre el máximo y mínimo tiempo entre latidos.

Figura 9 Esquema general de la aplicación Cardioplus 3.0. 

2.3.2.- PROCESAMIENTO DIGITAL DE LA SEÑAL DE ECG

La figura 10 muestra la secuencia en la que se realizan las operaciones de procesamiento digital en el cliente (dispositivo Android). Como primer paso se detectan los puntos R (off-line) de la señal recibida, luego se obtiene la serie RR y por último se calculan los indicadores: "Frecuencia cardíaca media" y "Desviación RR máxima".

Figura 10 Secuencia en la que se realizan las operaciones de procesamiento digital en el cliente. 

Detección de la onda R

La detección de la onda R es la base para el proceso de segmentación de señales ECG, ya que, generalmente, es la componente de mayor amplitud y pendiente, lo que la convierte en la más distintiva del ECG. Existen diversos métodos que persiguen este fin [8] para su aplicación en diferentes escenarios de monitorización. Entre los métodos más usados para su uso en dispositivos portables e inalámbricos alimentados a batería [9] se encuentran los algoritmos basados en filtrado y cálculo de la primera y segunda derivada de la señal ECG [10], debido a su bajo costo computacional y alta velocidad. El detector empleado en este trabajo se basa en el uso de filtrado y cálculo de la segunda derivada [10], al cual se le han incorporado pequeños detalles de implementación. A continuación, se explicarán los pasos de este detector, ilustrando su funcionamiento con una de las señales adquiridas con el sistema desarrollado (figura 11(a)). Debido a que en la distribución espectral de la señal de ECG, la onda R se encuentra alrededor de los 10 Hz [11], el primer paso del algoritmo realiza un filtrado pasa banda entre 5 y 15 Hz (Butterworth, orden 2, unidireccional) con el objetivo de realzar la onda R y atenuar las restantes ondas como muestra la figura 11(b). La señal obtenida en el paso anterior se deriva y se filtra pasa alto (Butterworth, orden 2, unidireccional) a una frecuencia de corte de 0,3 Hz para realzar aún más la información de la onda R. A continuación, se normaliza la señal dividiéndola entre su máximo valor, obteniéndose una señal entre +1 y -1. El resultado se muestra en la figura 11(c). La señal anterior se vuelve a derivar, obteniéndose la señal mostrada en la figura 11(d). Los picos positivos de la señal anterior corresponden a los candidatos a puntos R (picos de la onda R) en la señal original. Los puntos R definitivos (figura 11(e)) se buscarán, en la señal original, como los máximos locales existentes en las ventanas delimitadas por los instantes de tiempo que indican los picos negativos de la señal de la figura 11(d).

Figura 11 Diagrama de flujo del software del servidor. 

Análisis de la serie RR

Una vez realizada la detección de los puntos R (figura 12(a)) se obtiene mediante la expresión 1, la serie temporal RR (figura 12 (b)) para cada latido "n", que da cuenta de las diferencias temporales entre latidos consecutivos.

Figura 12 Obtención de la serie RR: (a) detección de puntos R, (b) serie RR resultante. 

RRn=Rn+1-R(n) (1)

Para analizar la serie RR obtenida se calcularon los indicadores: (a) intervalo RR medio, (b) frecuencia cardíaca media (FC media) y (c) Desviación RR máxima, mediante las expresiones (2), (3) y (4), respectivamente, donde N es el número total de latidos que componen la serie RR obtenida, que dependerá del tiempo de adquisición definido por el usuario. La Desviación RR máxima da una medida de la variabilidad de la frecuencia cardiaca.

RR medio=n=1NRR(n)N       n=1,2N (2)

FC media=1RR medio (3)

DesvRRmax=RRmax-RRmin (4)

3.- RESULTADOS EXPERIMENTALES

En este apartado se muestra la implementación hardware y software del sistema desarrollado, presentando la forma de usar la aplicación "Cardioplus 3.0" que reside en el cliente. Luego se explica la metodología experimental utilizada para la puesta a punto de la comunicación entre el servidor y el cliente. Finalmente se presentan los resultados obtenidos para cada una de las metodologías utilizadas y la forma de comprobar los algoritmos de procesamiento, utilizando el Matlab 2013.

3.1.- HARDWARE

En la figura 13(a) se muestra el sistema implementado, el cual consta de las siguientes partes:

  • Computador portátil ASUS usado para la edición, compilación y programación del programa residente en el servidor así como para la visualización de la señal de ECG digitalizada en banda base.

  • Cable de conexión USB de tipo Micro-B, mostrado en la figura 13(b) entre el módulo ESP8266 NodeMCU y el computador portátil.

  • Electrodos de plata-cloruro de plata (Ag-AgCl) marca TCE usados para la medida de la señal de ECG (figura 13(c)).

  • Tableta SAMSUMG con SO Android que constituye el cliente, y cuya función es la visualización y el procesamiento/análisis de la señal de ECG.

  • Placa de pruebas o protoboard: Incluye la etapa frontal de acondicionamiento mostrada en la figura 13(d) y el módulo ESP8266 NodeMCU, ambos correspondientes al servidor.

Figura 13 (a) Implementación del sistema experimental formado por una placa de pruebas, una computadora personal laptop y una tableta SAMSUMG (al fondo se observa el paquete de electrodos), (b) Cable de conexión USB, (c) Electrodos de Ag-AgCl usados para la adquisición de la señal de ECG, (d) Montaje experimental del servidor explicado en la figura 6. El cuadro rojo incluye la etapa de acondicionamiento y filtrado analógico de la señal de ECG y el cuadro verde incluye el módulo ESP8266 NodeMCU.  

El dispositivo que usa el paciente funciona con una fuente de alimentación interna de tipo flotante, o sea, a baterías, sin contacto eléctrico directo con el corazón por lo que, de acuerdo a la norma internacional NTC-IEC 60601-1, cumple las normas de seguridad eléctrica exigidas y se clasifica como un equipo de Clase III, tipo BF.

3.2.- SOFTWARE

En este apartado se muestra la aplicación "Cardioplus 3.0" desarrollada para este trabajo, mostrando las diferentes actividades que van apareciendo desde su ejecución inicial hasta la visualización de los indicadores diagnósticos.

El icono de la aplicación se muestra en el círculo rojo de la figura 14(a). Una vez que el usuario se dispone a utilizarla, aparece durante tres segundos, la actividad denominada: "Presentacion" mostrada en la figura 14(b) y a continuación, si los servicios Wi-Fi del cliente están activados, se mostrará automáticamente la segunda actividad: "WifiList" como se muestra en la figura 14(c). En este caso (Wi-Fi activada) se escanean y muestran las redes alrededor del usuario y este debe escoger la que lleva por nombre "ESP8266_Wifi" lo que permitirá que el cliente se conecte al servidor y se muestre la tercera actividad: "Graficar". Esta actividad mostrada en la figura 14(d) se inicia presentando al usuario la posibilidad de escoger el tiempo que va a durar la medición, lo cual se valida con el botón "Confirmar" y luego muestra la interfaz gráfica de usuario mostrada en la figura 14(e). Seleccionando el botón "Comenzar" se envía la solicitud al servidor para que este empiece a transmitir, en tiempo real, la señal de ECG, la cual se irá mostrando en la gráfica superior titulada: "Señal de ECG". Una vez transcurrido el tiempo de medición, automáticamente, se detectan y se visualizan los puntos R en la gráfica inferior titulada: "Detección de puntos R". Esto último permite que el usuario pueda comprobar, de forma visual, el funcionamiento del algoritmo de detección utilizado y elegir entre repetir la medición pulsando nuevamente el botón: "Comenzar" o pasar a la siguiente actividad, pulsando el botón: "Analizar" mostrado en la figura 14(e). A partir de este punto, se ejecuta la cuarta y última actividad titulada: "Resultados", que como su nombre lo indica, muestra la serie RR, los indicadores calculados como se muestra en la figura 14(f) y almacena la señal recibida en un archivo txt en la memoria interna del cliente.

3.3.- METODOLOGÍA DE EVALUACIÓN DEL SISTEMA

La evaluación del sistema se hizo según el esquema mostrado en la figura 15. En la posición 1 se verifica: la calidad de la señal recibida en el cliente, cuando se transmite una señal de tipo sinusoidal (inyectada al MCI). En la posición 2 se verifica el sistema completo con señales de ECG a la entrada.

Figura 14 (a) Apariencia de la APK en el cliente, (b) Actividad: “Presentacion”, (c) Actividad: “WifiList”, (d) Actividad: “Graficar” (selección del tiempo de medición), (e) Actividad: “Graficar” (selección de opción), (f) Actividad: “Resultados”. 

Figura 15 Esquema para la evaluación experimental del sistema desarrollado. 

3.3.1.- CONJUNTO ESP8266 - DISPOSITIVO ANDROID

Para la puesta a punto y comprobación de la comunicación entre el módulo Wi-Fi y el cliente, se emplearon señales sinusoidales (por sus características morfológicas bien definidas) obtenidas de un generador, el cual proporciona una señal sinusoidal simétrica con respecto a cero con amplitudes dentro del rango de 30 mV a 30 V (figura 16 (a)). Como el módulo Wi-Fi solamente puede adquirir señales positivas es necesario agregar una componente de DC a la señal del generador, de forma tal que la señal sea simétrica con respecto a esa componente. Para conseguir esto, se utilizó una batería cuyo valor de tensión V0 fuese igual a la mitad de la tensión de alimentación (figura 16 (b)). Una vez conseguido esto hay que tener en cuenta que el máximo valor de tensión que soporta el módulo por su terminal ADC es de 3,6 V por lo que el máximo valor de la señal resultante no debe exceder este. Para comprobar que las señales utilizadas están dentro del rango correcto (0 V - 3,6 V) se emplea un osciloscopio que además permite ver las oscilaciones de frecuencia. Además se creó dentro de la aplicación del cliente una nueva actividad llamada: "Prueba" sustituyendo temporalmente la actividad: "Graficar", en la cual se visualizó la señal recibida. Esta actividad sigue los mismos principios de transmisión/recepción que la actividad "Graficar", diferenciándose solamente en la interfaz gráfica y obviando toda la parte de procesamiento.

Para verificar la calidad de la señal recibida versus la señal transmitida, se aplicó a la entrada del ADC del MCI una señal sinusoidal de 40 Hz y se programó el Timer del MCI para muestrear dicha señal a una frecuencia de 100 Hz. En la pantalla del cliente se comprueba visualmente la calidad de la señal recibida.

3.3.2.- SISTEMA COMPLETO

Una vez comprobado que el sistema funcionó correctamente con las señales sinusoidales, el próximo paso fue realizar las pruebas con señales de ECG obtenidas de 7 voluntarios. En este caso el interruptor de la figura 15 se encuentra en la posición número dos (figura 17). La metodología de evaluación fue la siguiente:

Figura 16 (a) Esquema de evaluación experimental del sistema desarrollado (posición uno), (b) Estación experimental para la evaluación de la comunicación entre el MCI y el dispositivo Android

  1. Verificar visualmente la similitud entre la señal transmitida y recibida: Para esto se integró al código del servidor, la posibilidad de visualizar (en tiempo real), la señal de ECG a la entrada del ADC, en la computadora que contiene al monitor serie del IDE de Arduino.

  2. Verificar que los valores de los parámetros "Frecuencia cardíaca media" y "Desviación RR máxima" mostrados en la pantalla del cliente son correctos: Para esto, la señal de ECG visualizada en el punto anterior es guardada en un archivo txt y posteriormente, este archivo se lee con el programa Matlab, se obtiene la serie RR correspondiente, se calculan los parámetros: " Frecuencia cardíaca media " y "Desviación RR máxima" de dicha serie y se comparan con los mostrados en la pantalla del cliente.

  3. Calcular (usando la función xcorr de MATLAB) el máximo coeficiente de correlación cruzada (CCM) entre dos segmentos de 300 muestras que son homólogos en las señales de ECG transmitida y recibida. Los segmentos homólogos son los que contienen a las muestras que ocupan las mismas posiciones temporales en ambas señales. Este coeficiente se obtuvo para una señal de cada voluntario.

  4. Verificar, de forma cualitativa, el funcionamiento global de la aplicación durante la monitorización de los voluntarios: Para esto, se observaron las pantallas que garantizan la correcta visualización de la señal de ECG, la detección de los puntos R, la visualización de la serie RR y los indicadores obtenidos para ese sujeto.

Figura 17 Esquema de evaluación experimental del sistema desarrollado (posición dos). 

3.4.- RESULTADOS OBTENIDOS

3.4.1.- CONJUNTO ESP8266 - DISPOSITIVO ANDROID

En este apartado se muestran los resultados obtenidos siguiendo la metodología de evaluación del conjunto ESP8266 (NodeMCU) -Dispositivo Android, descrita en el apartado 3.3.1. En la figura 18(a) se muestra la señal sinusoidal de 40 Hz en banda base inyectada al MCI y en la figura 18(b) se muestra la señal recibida en el receptor para una frecuencia de muestreo de 100 Hz. Como se observa, existe una elevada similitud morfológica entre la señal transmitida y recibida.

Figura 18 (a) Señal sinusoidal de 40 Hz en banda base inyectada al MCI, (b) Señal recibida en el dispositivo móvil utilizando la actividad: “Prueba” para una frecuencia de muestreo del MCI igual a 100 Hz. 

3.4.2.- SISTEMA COMPLETO

En la Tabla 2 se muestran que los máximos coeficientes de correlación (CCM) obtenidos para cada uno de los segmentos homólogos de la señal de ECG, de los siete sujetos son elevados, lo cual evidencia la gran similitud entre las señales transmitidas y recibidas. Como ambos segmentos son prácticamente iguales, el máximo valor del CCM se obtuvo para la muestra central.

Tabla 2 Coeficiente de correlación máximo (CCM) entre dos segmentos homólogos de cada sujeto. 

No. Sujeto 1 2 3 4 5 6 7
CCM 0,98 0,97 0,97 0,99 0,98 0,98 0,97

En la figura 19(a) se observa un segmento de la señal de ECG transmitida y la figura 19(b) muestra un segmento de la señal recibida, correspondiente a uno de los voluntarios. Estos segmentos ampliados se pueden apreciar en las figuras 19(c) y (d), respectivamente.

Figura 19 Comparación morfológica de una señal de ECG obtenida en una medición realizada a un voluntario. 

Como se puede apreciar, existe total similitud entre la señal transmitida y recibida por lo que la comunicación inalámbrica se realiza satisfactoriamente. En la figura 20 se muestran la gráfica en Matlab de la serie RR obtenida del archivo txt (izquierda) y de la serie RR obtenida de la señal ECG recibida en el cliente.

Figura 20 (a) Resultados de la verificación de la serie RR y los indicadores visualizados en el cliente con respecto a los correspondientes en el servidor, (b) indicadores (zoom, FCM es la frecuencia cardiaca media). 

Se puede apreciar que la serie RR y los indicadores son similares en ambos extremos de la comunicación, con lo que se concluye que los parámetros calculados y visualizados en el cliente son correctos. En la figura 21(a) se muestra la monitorización realizada a otro voluntario durante un minuto.

Figura 21 (a) Señal recibida de un voluntario y detección de sus puntos R, (b) Obtención de la serie RR y cálculo de indicadores. 

En la figura 21(a) se puede observar la señal de ECG en color verde y la detección de sus puntos R resaltados en rojo y concatenados con el fin de facilitar la detección visual de errores por el usuario. En la figura 21 (b) se observan los resultados de la obtención de la serie RR y el cálculo de los indicadores.

4.- CONCLUSIONES

En este trabajo se diseñó, construyó y evaluó un sistema de monitorización inalámbrico de la señal de ECG que visualiza la información final en una tableta o teléfono inteligente basado en el SO Android. El diseño electrónico del dispositivo servidor fue robusto y evidenció: una correcta protección contra desfibriladores externos y una excelente calidad de la señal de ECG en banda base.

El diseño software del dispositivo cliente garantizó exitosamente la visualización y el filtrado digital de la señal de ECG en tiempo real, así como la visualización de: los puntos R (previa detección), de la serie RR (previa obtención) y de los dos indicadores para el diagnóstico (previo cálculo), esto último con una demora menor de dos segundos.

Se verificó experimentalmente el correcto funcionamiento del protocolo RCG, propuesto para la capa de aplicación del sistema. La evaluación global del sistema propuesto con 7 voluntarios evidenció, desde los puntos de vista cualitativo y cuantitativo, una mínima distorsión morfológica entre la señal transmitida por el servidor y la recibida en el cliente. Este sistema constituye una alternativa para ampliar los servicios de salud de nuestro país y aumentar la calidad de vida de las personas de la tercera edad, u otras que presentan problemas para la locomoción (temporal o permanente).

REFERENCIAS

1. Chang JR, Tai CC. A New Wireless-Type Physiological Signal Measuring System Using a PDA and the Bluetooth Technology. IEEE Department of Electrical Engineering, National Cheng Kung University, Tainan, Taiwan; 2000. [ Links ]

2. Hurtado JC, Vallejo GV. Sistema electrónico de accionamiento inalámbrico para discapacitados usando dispositivos Android. Revista Ingeniería Electrónica, Automática y Comunicaciones, RIELAC. 2019; 40(1): 46-58. [ Links ]

3. Almario AA, Amin OF, Oyola KN, Santis C. Mini-lengua electrónica portátil controlada por un teléfono inteligente (Smartphone). Revista Ingeniería Electrónica, Automática y Comunicaciones, RIELAC. 2018; 37(3): 1-9. [ Links ]

4. Ramírez OC, Cutiño WQ, Díaz MP, Crispi AT. Development of Healthcare Applications using Facilities available in modern Mobile Devices. Revista Ingeniería Electrónica, Automática y Comunicaciones, RIELAC. 2017; 37(3): 10-20. [ Links ]

5. Pallas R, Spinelli EM, Mayosky MA. AC-Coupled Front-End for Biopotencial Measurements. IEEE Transactions on Biomedical Engineering. 2003; 50: 391-395. [ Links ]

6. Vázquez-Seisdedos CR, Análisis del ECG en monitorización ambulatoria para el diagnóstico cardíaco y la predicción de muerte cardíaca súbita, PhD Thesis, Universitat Politècnica de Catalunya; 2001, DL: B.6332-209, ISBN 978-84-691-8826-2, Disponible en: http://www.tdx.cat/handle/10803/6320. [ Links ]

7. Espressif Systems. ESP8266EX Datasheet Version 4.3; 2015. Disponible en: https://www.espressif.com. [ Links ]

8. Köhler BU, Hennig C, Orglmeister R. The Principles of Software QRS Detection: Reviewing and Comparing Algorithms for Detecting this Important ECG Waveform. IEEE Engineering in Medicine ad Biology. 2002; 21(1): 42-57. [ Links ]

9. Elgendi M, Eskofier B, Dokos S, y Abbott D. Revisiting QRS detection methodologies for portable, wearable, battery-operated, and wireless ECG systems. PloS One. 2014; 9(1): e84018. [ Links ]

10. Friesen GM, et al. A comparison of the noise sensitivity of nine QRS detection algorithms. IEEE Engineering in Medicine ad Biology. 1990; 37 (1): 85-98. [ Links ]

11. Malik M, et al. Heart Rate Variability. Standards of measurement, physiological interpretation, and clinical use. Task Force of the European Society of Cardiology and The North American Society of Pacing and Electrophysiology, European Heart Journal; 1996, 17: p. 354-381. [ Links ]

Recibido: 10 de Octubre de 2019; Aprobado: 09 de Marzo de 2020

CONFLICTO DE INTERESES: No existe conflicto de intereses entre los autores, ni con la institución a la que están afiliado, ni con otra institución.

CONTRIBUCIONES DE LOS AUTORES: Rafael Esmildo Smith Colás: contribución importante: a la concepción y diseño del estudio, análisis bibliográfico, concepción del protocolo de comunicaciones propuesto para la capa de aplicación, montaje, puesta a punto y evaluación del hardware y el software del sistema y a la escritura y corrección del artículo, incluyendo la concepción de las figuras. Rubén Cobo Alea: aporte de componentes para la construcción del prototipo, contribución a la revisión y análisis bibliográfico, a la puesta a punto del hardware y software, y a la revisión final del borrador del artículo. Carlos Román Vázquez Seisdedos: contribución importante: concepción y diseño del estudio, análisis bibliográfico, análisis de los métodos de procesamiento analógico y digital de señales empleados, concepción del protocolo de comunicaciones para la capa de aplicación, metodología de evaluación del sistema, revisión crítica y corrección del artículo.

Rafael Esmildo Smith Colás, Ing. Telecomunicaciones y Electrónica. Departamento de Telecomunicaciones de la Facultad de Ingeniería en Telecomunicaciones, Informática y Biomédica de la Universidad de Oriente en Santiago de Cuba. E-mail: rafael.smith@uo.edu.cu. ORCID: 0000-0001-8594-258X. Investiga en instrumentación electrónica y sistemas a microprocesadores aplicados a las telecomunicaciones

Rubén Cobo Alea, Ing. Telecomunicaciones y Electrónica. Profesor Asistente del Departamento de Telecomunicaciones de la Facultad de Ingeniería en Telecomunicaciones, Informática y Biomédica de la Universidad de Oriente en Santiago de Cuba. E-mail: coboruben87@gmail.com. ORCID: 0000-0003-0149-4156. Investiga en instrumentación electrónica y sistemas a microprocesadores aplicados a las telecomunicaciones

Carlos Román Vázquez Seisdedos, Ing. Telecomunicaciones. Doctor en Ciencias Técnicas, Profesor Titular del Centro de Estudios de Neurociencias, Procesamiento de Imágenes y Señales de la Facultad de Ingeniería en Telecomunicaciones, Informática y Biomédica de la Universidad de Oriente en Santiago de Cuba. E-mail: cvazquez@uo.edu.cu. ORCID: 0000-0002-3167-2585. Investiga en instrumentación electrónica y biomédica, sistemas a microprocesadores, procesamiento y análisis de señales biomédicas.

Creative Commons License Este es un artículo publicado en acceso abierto bajo una licencia Creative Commons