Tutorial: Recepción de mensajes de dispositivo mediante Azure IoT Hub

El servicio de tecnologías médicas puede recibir mensajes de los dispositivos que cree y administre a través de un centro de IoT en Azure IoT Hub. En este tutorial se usa una plantilla de Azure Resource Manager (plantilla de ARM) y el botón Implementar en Azure para implementar un servicio de tecnologías médicas. La plantilla también implementa un centro de IoT para crear y administrar dispositivos, y el mensaje enruta los mensajes de dispositivo a un centro de eventos para que el servicio de tecnologías médicas lea y procese. Después del procesamiento de datos del dispositivo, los recursos de FHIR® se conservan en el servicio FHIR, que también se incluye en la plantilla.

Diagram of the IoT device message flow through an IoT hub and event hub, and then into the MedTech service.

Sugerencia

Para obtener información sobre cómo el servicio de tecnologías médicas transforma y conserva los datos del dispositivo en el servicio FHIR como recursos de FHIR, consulte Introducción a las fases de procesamiento de datos de dispositivos del servicio de tecnologías médicas.

En este tutorial, aprenderá a:

  • Abra una plantilla de ARM en Azure Portal.
  • Configure la plantilla para la implementación.
  • Cree un dispositivo.
  • Enviar un mensaje de prueba.
  • Revise las métricas del mensaje de prueba.

Sugerencia

Para más información sobre las plantillas de ARM, consulte ¿Qué son las plantillas de Resource Manager?.

Requisitos previos

Para comenzar la implementación y completar el tutorial, debe cumplir los siguientes requisitos previos:

  • Una cuenta de suscripción a Azure activa. Si no tiene una suscripción de Azure, consulte la guía de decisión de la suscripción.

  • Asignaciones de roles de propietario o colaborador y administrador de acceso de usuario en la suscripción de Azure. Para obtener más información, consulte ¿Qué es el control de acceso basado en roles (RBAC) de Azure?

  • Proveedores de recursos Microsoft.HealthcareApis, Microsoft.EventHub y Microsoft.Devices registrados en la suscripción de Azure. Más información sobre Tipos y proveedores de recursos de Azure.

  • Visual Studio Code instalado localmente.

  • Azure IoT Tools instalado en Visual Studio Code. Azure IoT Tools es una colección de extensiones que facilita la conexión a centros de IoT, la creación de dispositivos y el envío de mensajes. En este tutorial, va a usar la extensión de Azure IoT Hub en Visual Studio Code para conectarse al centro de IoT implementado, crear un dispositivo y enviar un mensaje de prueba desde el dispositivo al centro de IoT.

Cuando tenga estos requisitos previos, estará listo para configurar la plantilla de ARM mediante el botón Implementar en Azure.

Revisión de la plantilla de ARM

La plantilla de ARM que se usa para implementar los recursos de este tutorial está disponible en Plantillas de inicio rápido de Azure mediante el archivo azuredeploy.json en GitHub.

Uso del botón Implementar en Azure

Para comenzar la implementación en Azure Portal, seleccione el botón Implementar en Azure.

Deploy to Azure

Configurar la implementación

  1. En Azure Portal, en la pestaña Aspectos básicos de la plantilla de inicio rápido de Azure, seleccione o escriba la siguiente información para la implementación:

    • Suscripción: la suscripción de Azure que se va a usar para la implementación.

    • Grupo de recursos: seleccione un grupo de recursos existente o cree uno nuevo.

    • Región: región de Azure del grupo de recursos que se usa para la implementación. Región se autorrellena con la región del grupo de recursos.

    • Nombre base: valor que se anexa al nombre de los recursos y servicios de Azure que se implementan. En los ejemplos de este tutorial se usa el nombre base azuredocsdemo. Puede elegir su propio valor de nombre base.

    • Ubicación: una región de Azure compatible para Azure Health Data Services (el valor puede ser el mismo que o diferente de la región en la que se encuentra el grupo de recursos). Para obtener una lista de las regiones de Azure en las que Health Data Services está disponible, consulte Productos disponibles por regiones.

    • Identificador de entidad de seguridad de colaborador de Fhir (opcional): identificador de objeto de usuario de Microsoft Entra para proporcionar permisos de lectura y escritura del servicio FHIR.

      Puede usar esta cuenta para conceder acceso al servicio FHIR para ver las observaciones de FHIR que se generan en este tutorial. Se recomienda usar su propio identificador de objeto de usuario de Microsoft Entra para que pueda acceder a los mensajes en el servicio FHIR. Si decide no usar la opción Identificador de entidad de seguridad de colaborador de Fhir, desactive el cuadro de texto.

      Para más información sobre cómo obtener un identificador de objeto de usuario de Microsoft Entra, consulte Buscar el identificador de objeto de usuario. El identificador de objeto de usuario que se usa en este tutorial es solo un ejemplo. Si usa esta opción, use su propio identificador de objeto de usuario o el identificador de objeto de otra persona a la que desee acceder al servicio FHIR.

    • Asignación de dispositivo: deje los valores predeterminados para este tutorial.

    • Asignación de destino: deje los valores predeterminados para este tutorial.

    Screenshot that shows deployment options for the MedTech service for Health Data Services in the Azure portal.

  2. Para validar la configuración, seleccione Revisar y crear.

    Screenshot that shows the Review + create button selected in the Azure portal.

  3. En Revisar y crear. Si la validación se realiza correctamente, la plantilla muestra Validación superada. Si se produce un error en la validación, corrija el problema indicado en el mensaje de error y, a continuación, seleccione Revisar y crear de nuevo.

    Screenshot that shows the Review + create pane displaying the Validation Passed message.

  4. Después de una validación correcta, para comenzar la implementación, seleccione Crear.

    Screenshot that shows the highlighted Create button.

  5. En unos minutos, Azure Portal muestra el mensaje de que se ha completado la implementación.

    Screenshot that shows a green checkmark and the message Your deployment is complete.

    Importante

    Si va a permitir el acceso desde varios servicios al centro de eventos, es necesario que cada servicio tenga su propio grupo de consumidores del centro de eventos.

    Los grupos de consumidores habilitan varias aplicaciones consumidoras para que cada una tenga una vista separada del flujo de eventos y para que lean el flujo de forma independiente a su propio ritmo y con sus propios desplazamientos. Para más información, consulte los grupos de consumidores.

    Ejemplos:

    • Dos servicios de tecnologías médicas que acceden al mismo centro de eventos.

    • Un servicio de tecnologías médicas y una aplicación de escritura de almacenamiento que acceden al mismo centro de eventos.

Revisión de los recursos implementados y los permisos de acceso

Cuando se complete la implementación, se crean los siguientes recursos y roles de acceso:

  • un espacio de nombres de Event Hubs y un centro de eventos. En esta implementación, el centro de eventos se denomina devicedata.

    • Grupo de consumidores del centro de eventos En esta implementación, el grupo de consumidores se denomina $Default.

    • Emisor de datos de Azure Event Hubs En esta implementación, el rol de emisor se denomina devicedatasender y se puede usar para proporcionar acceso al centro de eventos mediante una firma de acceso compartido (SAS). Para más información sobre la autorización mediante SAS, consulte Autorización del acceso a recursos de Event Hubs mediante firmas de acceso compartido. El rol Emisor de datos de Azure Event Hubs no se usa en este tutorial.

  • IoT Hub con enrutamiento de mensajes configurado para enrutar mensajes de dispositivo al centro de eventos.

  • Identidad administrada asignada por el usuario, que proporciona acceso de envío desde el centro de IoT al centro de eventos. La identidad administrada tiene el rol Remitente de datos de Azure Event Hubs en la sección Control de acceso (IAM) del centro de eventos.

  • Área de trabajo de Health Data Services.

  • Servicio FHIR de Health Data Services.

  • Servicio de tecnologías médicas de Health Data Services con la identidad administrada asignada por el sistema habilitada y con la concesión de los siguientes roles de acceso:

  • Conformidad y servicio de tecnologías médicas válido del dispositivo y asignaciones de destino de FHIR. El tipo de resolución se establece en Crear.

Importante

En este tutorial, la plantilla de ARM configura el servicio de tecnologías médicas para que funcione en el modo de creación. Se crea un recurso del paciente y un recurso del dispositivo para cada dispositivo que envía datos al servicio FHIR.

Para más información sobre los tipos de resolución de los servicio de tecnologías médicas Crear y Buscar, consulte Configuración de la pestaña Destino.

Creación de un dispositivo y envío de un mensaje de prueba

Con los recursos implementados correctamente, ahora tiene que conectarse al centro de IoT, crear un dispositivo y enviar un mensaje de prueba al centro de IoT. Después de completar estos pasos, el servicio de tecnologías médicas puede hacer lo siguiente:

  • Leer el mensaje de prueba enrutado de IoT Hub desde el centro de eventos.
  • Transformar el mensaje de prueba en cinco observaciones de FHIR.
  • Conservar las observaciones de FHIR en el servicio FHIR.

Complete los pasos mediante Visual Studio Code con la extensión de Azure IoT Hub:

  1. Abra Visual Studio Code instalado con Azure IoT Tools.

  2. En el Explorador, en Azure IoT Hub, seleccione ... y elija Seleccionar IoT Hub.

    Screenshot of Visual Studio Code with the Azure IoT Hub extension with the deployed IoT hub selected.

  3. Seleccione la suscripción de Azure donde se aprovisionó el centro de IoT.

  4. Seleccione IoT Hub. El nombre del centro de IoT es el nombre base que proporcionó al aprovisionar los recursos con el prefijo ih-. Un nombre de centro de ejemplo es ih-azuredocsdemo.

  5. En el Explorador, en Azure IoT Hub, seleccione ... y elija Crear dispositivo. Un nombre de dispositivo de ejemplo es iot-001.

    Screenshot that shows Visual Studio Code with the Azure IoT Hub extension with Create device selected.

  6. Para enviar un mensaje de prueba desde el dispositivo a IoT Hub, haga clic con el botón derecho en el dispositivo y seleccione Enviar mensaje D2C a IoT Hub.

    Nota:

    En este ejemplo de dispositivo a nube (D2C), la nube es el centro de IoT de Azure IoT Hub que recibe el mensaje del dispositivo. Azure IoT Hub admite comunicaciones bidireccionales. Para configurar un escenario de nube a dispositivo (C2D), seleccione Enviar mensaje C2D a la nube del dispositivo.

    Screenshot that shows Visual Studio Code with the Azure IoT Hub extension and the Send D2C Message to IoT Hub option selected.

  7. En Enviar mensajes D2C, seleccione o escriba los valores siguientes:

    • Dispositivos desde los que enviar mensajes: el nombre del dispositivo que creó.

    • Mensajes por dispositivo: 1.

    • Intervalo entre dos mensajes: 1 segundo(s)..

    • Mensaje: texto sin formato.

    • Editar: borre cualquier texto existente y, a continuación, copie o pegue el siguiente mensaje de prueba JSON.

      Sugerencia

      Puede usar la opción Copiar en la esquina derecha del mensaje de prueba siguiente y, a continuación, pegarla en la ventana Editar.

      {
          "PatientId": "patient1",
          "HeartRate": 78,
          "RespiratoryRate": 12,
          "HeartRateVariability": 30,
          "BodyTemperature": 98.6,
          "BloodPressure": {
             "Systolic": 120,
             "Diastolic": 80
          }
      }  
      
  8. Para comenzar el proceso de envío de un mensaje de prueba a IoT Hub, seleccione Enviar.

    Screenshot that shows Visual Studio Code with the Azure IoT Hub extension with the device message options selected.

    Después de seleccionar Enviar, los recursos de FHIR pueden tardar hasta cinco minutos en estar disponibles en el servicio FHIR.

    Importante

    Para evitar la suplantación de identidad de dispositivos en mensajes de dispositivo a nube (D2C), Azure IoT Hub enriquece todos los mensajes de dispositivo con propiedades adicionales antes de enrutarlos al centro de eventos. Por ejemplo: SystemProperties: iothub-connection-device-id y Properties: iothub-creation-time-utc. Para más información, consulte Propiedades contra la suplantación de identidad y Uso de plantillas de IotJsonPathContent con la asignación de dispositivos del servicio de tecnologías médicas.

    No quiere enviar este mensaje de dispositivo de ejemplo a IoT Hub, ya que el centro de IoT duplicará los enriquecimientos y provocará un error con el servicio de tecnologías médicas. Este es solo un ejemplo de cómo el centro de IoT enriquece los mensajes del dispositivo.

    Ejemplo:

    Screenshot of an Azure IoT Hub enriched device message.

    patientIdExpression solo es necesario para los servicios de tecnologías médicas en el modo Crear; sin embargo, si se usa Buscar, debe existir un recurso de dispositivo con un identificador de dispositivo coincidente en el servicio FHIR. En este ejemplo se supone que el servicio de tecnologías médicas está en modo Crear. El tipo de resolución de este tutorial se establece en Crear. Para más información sobre las propiedades de destino: Crear y Buscar, consulte Configuración de la pestaña Destino.

Revisión de las métricas del mensaje de prueba

Tras enviar correctamente un mensaje de prueba al centro IoT, ahora puede revisar las métricas de su servicio de tecnologías médicas. Revise las métricas para comprobar que el servicio de tecnologías médicas ha recibido, agrupado, transformado y conservado el mensaje de prueba en el servicio FHIR. Para más información, consulte Uso de las pestañas Supervisión y comprobación de estado del servicio de tecnologías médicas.

Para las métricas del servicio de tecnologías médicas, puede ver que este servicio completó los pasos siguientes para el mensaje de prueba:

  • Número de mensajes entrantes: recibió el mensaje de prueba entrante del centro de eventos.
  • Número de mensajes normalizados: se crearon cinco mensajes normalizados.
  • Número de medidas: se crearon cinco medidas.
  • Número de recursos de FHIR: se crearon cinco recursos de FHIR que se conservan en el servicio FHIR.

Screenshot that shows a MedTech service metrics tile and test data metrics.

Screenshot that shows a second MedTech service metrics tile and test data metrics.

Visualización de datos de prueba en el servicio FHIR

Si proporcionó su propio identificador de objeto de usuario de Microsoft Entra como valor opcional para la opción Identificador de entidad de seguridad de colaborador de FHIR en la plantilla de implementación, puede consultar los recursos de FHIR en el servicio FHIR. Puede esperar ver los siguientes recursos de observación de FHIR en el servicio FHIR en función del mensaje de prueba enviado al centro de IoT y procesado por el servicio de tecnologías médicas:

  • HeartRate
  • RespiratoryRate
  • HeartRateVariability
  • BodyTemperature
  • BloodPressure

Para más información sobre cómo obtener un token de acceso de Microsoft Entra y ver los recursos de FHIR en el servicio FHIR, consulte Acceso mediante Postman. Debe usar los siguientes valores en la solicitud de Postman GET para ver los recursos de observación de FHIR creados por el mensaje de prueba: {{fhirurl}}/Observation.

Pasos siguientes

Elección de un método de implementación para el servicio de tecnologías médicas

Introducción a las fases de procesamiento de datos de dispositivos del servicio de tecnologías médicas

Preguntas más frecuentes sobre el servicio de tecnologías médicas

Nota:

FHIR® es una marca registrada de HL7 y se usa con su permiso.