Logotipo de Zephyrnet

Tecnología de la nube de AWS para la detección de anomalías cardíacas casi en tiempo real utilizando datos de dispositivos portátiles

Fecha:

Las enfermedades cardiovasculares (ECV) son la principal causa de muerte en todo el mundo: cada año mueren más personas por ECV que por cualquier otro porque.

La pandemia de COVID-19 hizo que las organizaciones cambiar la prestación de servicios de salud para reducir el contacto del personal con las personas enfermas y la presión general sobre el sistema de salud. Esta tecnología permite a las organizaciones ofrecer soluciones de telesalud, que monitorean y detectan condiciones que pueden poner en riesgo la salud del paciente.

En esta publicación, presentamos una arquitectura de AWS que procesa fuentes de electrocardiograma (ECG) en vivo desde dispositivos portátiles comunes, analiza los datos y proporciona información casi en tiempo real a través de un panel web. Si se detecta una posible condición crítica, envía alertas en tiempo real a las personas suscritas.

Resumen de la solución

La arquitectura se divide en seis capas diferentes:

  • Ingestión de datos
  • Almacenamiento de flujo de ECG en vivo
  • Procesamiento de datos de ECG
  • Archivo histórico de patologías de ECG
  • alertas en vivo
  • Tablero de visualización

El siguiente diagrama muestra la arquitectura de alto nivel.

En las siguientes secciones, analizamos cada capa con más detalle.

Ingestión de datos

La capa de ingesta de datos utiliza Núcleo de AWS IoT como el punto de conexión entre los sensores remotos externos y la arquitectura de la nube de AWS, que es capaz de almacenar, transformar, analizar y mostrar información de las fuentes en vivo adquiridas desde dispositivos portátiles remotos.

Cuando los datos de los dispositivos portátiles remotos llegan a AWS IoT Core, se pueden enviar mediante una regla de AWS IoT y las acciones asociadas.

En la arquitectura propuesta, usamos una regla y una acción. La regla extrae datos del flujo sin procesar mediante una instrucción SQL simple, como se describe en el siguiente código SQL de definición de regla de AWS IoT Core.

SELECT device_id, ecg, ppg, bpm, timestamp() as timestamp FROM ‘dt/sensor/#’

La acción escribe los datos extraídos de la regla en un flujo de tiempo de Amazon base de datos.

Para obtener más información sobre cómo implementar cargas de trabajo con AWS IoT Core, consulte Implementación de patrones de mensajes de IoT de tiempo crítico de la nube al dispositivo en AWS IoT Core.

Almacenamiento de flujo de ECG en vivo

Los datos en vivo que llegan de los sensores de ECG conectados se almacenan inmediatamente en Timestream, que está diseñado específicamente para almacenar datos de series temporales.

Desde Timestream, los datos se extraen periódicamente en fragmentos y posteriormente se procesan por AWS Lambda para generar espectrogramas y por Reconocimiento de amazonas para realizar la clasificación del espectrograma de ECG.

Puede crear y administrar una base de datos Timestream a través de la Consola de administración de AWS, A partir de la Interfaz de línea de comandos de AWS (AWS CLI) o mediante llamadas a la API.

En la consola de Timestream, puede observar y monitorear varias métricas de la base de datos, como se muestra en la siguiente captura de pantalla.

Además, puede ejecutar varias consultas en una base de datos determinada.

Procesamiento de datos de ECG

La capa de procesamiento está compuesta por Puente de eventos de Amazon, Lambda y Amazon Rekognition.

El núcleo de la detección se centra en la capacidad de crear espectrogramas a partir de una serie de tiempo y usar Etiquetas personalizadas de Amazon Rekognition, entrenado con un archivo de espectrogramas generados a partir de series temporales de datos de ECG de pacientes afectados por diversas patologías, para realizar una clasificación de la transmisión en vivo de datos de ECG entrante transformada en espectrogramas por Lambda.

Detalles del evento EventBridge

Con EventBridge, es posible crear aplicaciones basadas en eventos a escala en AWS.

En el caso del análisis de ECG casi en tiempo real, se utiliza EventBridge para crear un evento (SpectrogramPeriodicGeneration) que activa periódicamente una función Lambda para generar espectrogramas a partir de los datos de ECG sin procesar y envía una solicitud a Amazon Rekognition para analizar los espectrogramas y detectar signos de anomalías.

La siguiente captura de pantalla muestra los detalles de configuración del SpectrogramPeriodicGeneration evento.

Detalles de la función lambda

La función Lambda GenerateSpectrogramsFromTimeSeries, escrito íntegramente en Python, funciona como orquestador entre los diferentes pasos necesarios para realizar una clasificación de un espectrograma de ECG. Es una pieza crucial de la capa de procesamiento que detecta si una señal de ECG entrante presenta signos de posibles anomalías.

La función Lambda tiene tres propósitos principales:

  • Obtenga un paso de 1 minuto de la transmisión de ECG en vivo
  • Generar espectrogramas a partir de él.
  • Inicie un trabajo de Amazon Rekognition para realizar la clasificación de los espectrogramas generados.

Detalles de Amazon Rekognition

El análisis de ECG para detectar si hay anomalías se basa en la clasificación de espectrogramas generados a partir de pasos de trazo de ECG de 1 minuto de duración.

Para realizar este trabajo de clasificación, utilizamos etiquetas personalizadas de Rekognition para entrenar un modelo capaz de identificar diferentes patologías cardíacas que se encuentran en espectrogramas generados a partir de trazas de ECG de personas con diversas afecciones cardíacas.

Para comenzar a utilizar las etiquetas personalizadas de Rekognition, debemos especificar las ubicaciones de los conjuntos de datos, que contienen los datos que utiliza Amazon Rekognition para el etiquetado, la capacitación y la validación.

Mirando dentro de los conjuntos de datos definidos, es posible ver más detalles que Amazon Rekognition ha extraído de los datos dados. Servicio de almacenamiento simple de Amazon (Amazon S3) cubo.

Desde esta página, podemos ver las etiquetas que Amazon Rekognition ha generado automáticamente al hacer coincidir los nombres de las carpetas presentes en el depósito S3.

Además, Amazon Rekognition proporciona una vista previa de las imágenes etiquetadas.

La siguiente captura de pantalla muestra los detalles del depósito S3 que utiliza Amazon Rekognition.

Una vez que haya definido un conjunto de datos, puede usar las etiquetas personalizadas de Rekognition para entrenar sus datos e implementar el modelo para la inferencia después.

Las páginas de proyectos de etiquetas personalizadas de Rekognition proporcionan detalles sobre cada proyecto disponible y una representación en árbol de todos los modelos que se han creado.

Además, las páginas del proyecto muestran el estado de los modelos disponibles y sus prestaciones.

Puede elegir los modelos en la consola de etiquetas personalizadas de Rekognition para ver más detalles de cada modelo, como se muestra en la siguiente captura de pantalla.

Más detalles sobre el modelo están disponibles en el Detalles del modelo .

Para una evaluación más detallada del rendimiento del modelo, elija Ver los resultados de la prueba. La siguiente captura de pantalla muestra un ejemplo de los resultados de las pruebas de nuestro modelo.

Archivo histórico de patologías de ECG

La capa de archivo de patología recibe datos de ECG de series temporales sin procesar, genera espectrogramas y los almacena en un depósito separado que puede usar para entrenar aún más su modelo de etiquetas personalizadas de Rekognition.

Tablero de visualización

El tablero de visualización en vivo, responsable de mostrar ECG en tiempo real, trazos de PPG y BPM en vivo, se implementa a través de Grafana gestionado por Amazon.

Amazon Managed Grafana es un servicio completamente administrado que se desarrolla junto con Grafana Labs y se basa en Grafana de código abierto. Mejorado con capacidades empresariales, Amazon Managed Grafana le facilita la visualización y el análisis de sus datos operativos a escala.

En la consola de Amazon Managed Grafana, puede crear espacios de trabajo, que son servidores de Grafana lógicamente aislados donde puede crear paneles de Grafana. La siguiente captura de pantalla muestra una lista de nuestros espacios de trabajo disponibles.

También puede configurar lo siguiente en el Espacios de trabajo página:

  • Usuarios
  • Grupos de Usuarios
  • Fuentes de datos
  • Canales de notificación

La siguiente captura de pantalla muestra los detalles de nuestro espacio de trabajo y sus usuarios.

En Fuentes de datos sección, podemos revisar y configurar todas las fuentes de origen que pueblan el tablero de Grafana.

En la siguiente captura de pantalla, tenemos tres fuentes configuradas:

Tu puedes elegir Configurar en Grafana para una fuente de datos dada para configurarla directamente en Amazon Managed Grafana.

Se le pide que se autentique dentro de Grafana. Para esta publicación, usamos AWS IAM Identity Center (sucesor del inicio de sesión único de AWS)

Después de iniciar sesión, será redirigido a la página de inicio de Grafana. Desde aquí, puede ver sus paneles guardados. Como se muestra en la siguiente captura de pantalla, podemos acceder a nuestro panel de Monitoreo de la Salud del Corazón.

También puede elegir el ícono de ajustes en el panel de navegación y realizar varias tareas de configuración en lo siguiente:

  • Fuentes de datos
  • Usuarios
  • Grupos de Usuarios
  • Estadística
  • Plugins
  • Preferencias

Por ejemplo, si elegimos Fuentes de datos, podemos agregar fuentes que alimentarán los tableros de Grafana.

La siguiente captura de pantalla muestra el panel de configuración de Timestream.

Si navegamos al panel de Monitoreo de la salud del corazón desde la página de inicio de Grafana, podemos revisar los widgets y la información incluidos en el panel.

Conclusión

Con servicios como AWS IoT Core, Lambda, Amazon SNS y Grafana, puede crear una solución sin servidor con una arquitectura basada en eventos capaz de ingerir, procesar y monitorear flujos de datos casi en tiempo real desde una variedad de dispositivos, incluidos los comunes. dispositivos portátiles.

En esta publicación, exploramos una forma de ingerir, procesar y monitorear datos de ECG en vivo generados desde un dispositivo portátil sintético para proporcionar información que ayude a determinar si pueden existir anomalías en el flujo de datos de ECG.

Para obtener más información sobre cómo AWS está acelerando la innovación en el cuidado de la salud, visite AWS para la salud.


Sobre la autora

Carlos Benedetto es arquitecto sénior de soluciones para imágenes médicas y atención médica en Amazon Web Services en Europa, Medio Oriente y África. Su trabajo se centra en ayudar a los clientes de imágenes médicas y atención médica a resolver problemas comerciales mediante el aprovechamiento de la tecnología. Benedetto tiene más de 15 años de experiencia en tecnología e imágenes médicas y ha trabajado para empresas como Canon Medical Research y Vital Images. Benedetto recibió su maestría summa cum laude en Ingeniería de Software de la Universidad de Palermo, Italia.

punto_img

Información más reciente

punto_img