你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:通过 Azure IoT 中心接收设备消息

医疗技术服务可以从通过Azure IoT 中心内的 IoT 中心创建和管理的设备接收消息。 本教程使用 Azure 资源管理器模板(ARM 模板)和 部署到 Azure按钮以部署医疗技术服务。 该模板还部署 IoT 中心以创建和管理设备,并将设备消息路由到事件中心供医疗技术服务读取和处理。 设备数据处理后,FHIR® 资源会保存在 FHIR 服务中,该服务也包含在模板中。

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

提示

要了解医疗技术服务如何将设备数据作为 FHIR 资源转换并保存到 FHIR 服务中,请参阅医疗技术服务设备数据处理阶段的概述

本教程介绍如何执行下列操作:

  • 在 Azure 门户中打开 ARM 模板。
  • 为部署配置模板。
  • 创建设备。
  • 发送测试消息。
  • 查看测试消息的指标。

提示

要了解 ARM 模板,请参阅什么是 ARM 模板?

先决条件

要开始部署并完成本教程,必须满足以下先决条件:

  • 有效的 Azure 订阅帐户。 如果没有 Azure 订阅,请参阅订阅决策指南

  • 在 Azure 订阅中分配所有者参与者和用户访问管理员角色。 有关详细信息,请参阅什么是 Azure 基于角色的访问控制 (Azure RBAC)

  • 已在 Azure 订阅中注册 Microsoft.HealthcareApis、Microsoft.EventHub 和 Microsoft.Devices 资源提供程序。 要了解详细信息,请参阅Azure 资源提供程序和类型

  • 本地安装的 Visual Studio Code

  • 在 Visual Studio Code 中安装的Azure IoT Tools。 Azure IoT Tools 是一系列扩展,可用于轻松连接到 IoT 中心、创建设备和发送消息。 在本教程中,你会使用 Visual Studio Code 中的 Azure IoT 中心扩展连接到部署的 IoT 中心、创建设备并将测试消息从设备发送到 IoT 中心。

满足这些先决条件后,可以使用“部署到 Azure”按钮配置 ARM 模板。

查看 ARM 模板

本教程中用于部署资源的 ARM 模板在Azure 快速入门模板中提供,获取方法是使用GitHub上的azuredeploy.json文件。

使用“部署到 Azure”按钮

要在 Azure 门户中开始部署,请选择“部署到 Azure”按钮:

Deploy to Azure

配置部署

  1. 在 Azure 门户中,在 Azure 快速入门模板的“基本信息”选项卡上,为部署选择或输入以下信息:

    • 订阅:要用于部署的 Azure 订阅。

    • 资源组:现有资源组,也可以新建资源组。

    • 区域:用于部署的资源组所在的 Azure 区域区域使用资源组区域自动填充。

    • 基名称:追加到部署的 Azure 资源和服务的名称的值。 本教程中的示例使用 basename azuredocsdemo。 可以选择自己的 basename 值。

    • 位置:Azure Health Data Services 支持的 Azure 区域(该值可以与资源组所在的区域相同或不同)。 有关提供 Health Data Services 的 Azure 区域的列表,请参阅按区域提供的产品

    • Fhir 参与者主体 ID(可选):提供 FHIR 服务读/写权限的 Microsoft Entra 用户对象 ID。

      可以使用此帐户授予对 FHIR 服务的访问权限,以查看本教程中生成的 FHIR 观察值。 建议使用自己的 Microsoft Entra 用户对象 ID,以便访问 FHIR 服务中的消息。 如果选择不使用Fhir 参与者主体 ID选项,请清除文本框。

      要了解如何获取 Microsoft Entra 用户对象 ID,请参阅查找用户对象 ID。 本教程中使用的用户对象 ID 只是一个示例。 如果使用此选项,请使用自己的用户对象 ID 或另一个人的对象 ID(你希望其能够访问 FHIR 服务)。

    • 设备映射:保留本教程的默认值。

    • 目标映射:保留本教程的默认值。

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

  2. 要验证配置,请选择“查看 + 创建”。

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

  3. 在“查看 + 创建”中,检查模板验证状态。 如果验证成功,模板会显示验证通过。 如果验证失败,请修复错误消息中指示的问题,然后再次选择“查看 + 创建”。

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

  4. 成功验证后,要开始部署,请选择“创建”。

    Screenshot that shows the highlighted Create button.

  5. 几分钟后,Azure 门户会显示部署已完成的消息。

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

    重要

    如果要支持从多个服务访问事件中心,则每个服务需要具有自己的事件中心使用者组。

    通过使用者组,多个消耗应用程序可以具有单独的事件流视图,并按自身节奏和偏移量独立读取流。 有关详细信息,请参阅《使用者组》。

    示例:

    • 访问同一事件中心的两个医疗技术服务。

    • 医疗技术服务和存储编写器应用程序访问同一事件中心。

查看已部署的资源和访问权限

部署完成后,会创建以下资源和访问角色:

  • 事件中心命名空间和事件中心。 在此部署中,事件中心命名为devicedata

    • 事件中心使用者组。 在此部署中,使用者组命名为$Default

    • Azure 事件中心数据发送方角色。 在此部署中,发送方角色命名为devicedatasender,可用于使用共享访问签名 (SAS) 提供对事件中心的访问权限。 若要详细了解如何使用 SAS 进行授权,请参阅使用共享访问签名授权访问事件中心资源。 本教程未使用Azure 事件中心数据发送方角色。

  • 消息路由配置为将设备消息路由到事件中心的 IoT 中心。

  • 用户分配的托管标识,提供从 IoT 中心到事件中心的发送访问权限。 托管标识在事件中心的访问控制部分 (IAM)中具有Azure 事件中心数据发送方角色。

  • Health Data Services 工作区。

  • Health Data Services FHIR 服务。

  • 已启用系统分配的托管标识并授予以下访问角色的 Health Data Services 医疗技术服务:

  • 符合要求且有效的医疗技术服务设备FHIR 目标映射解决类型设置为创建

重要

在本教程中,ARM 模板将医疗技术服务配置为在“创建”模式下运行。 将为向 FHIR 服务发送数据的每个设备创建患者资源和设备资源。

要了解医疗技术服务解决类型创建查找,请参阅配置目标选项卡

创建设备并发送测试消息

成功部署资源后,接下来连接到 IoT 中心,创建设备,并将测试消息发送到 IoT 中心。 完成这些步骤后,医疗技术服务可以:

  • 从事件中心读取 IoT 中心路由的测试消息。
  • 将测试消息转换为五个 FHIR 观察值。
  • 将 FHIR 观察值保存到 FHIR 服务中。

将 Visual Studio Code 与 Azure IoT 中心扩展结合使用,以完成这些步骤:

  1. 打开已安装 Azure IoT Tools 的 Visual Studio Code。

  2. 在资源管理器中,在“Azure IoT 中心”下,依次选择“...”、“选择 IoT 中心“。

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

  3. 选择预配 IoT 中心的 Azure 订阅。

  4. 选择 IoT 中心。 IoT 中心的名称是在预配前缀为ih-的资源时提供的basename。 示例中心名称是ih-azuredocsdemo

  5. 在资源管理器中,在“Azure IoT 中心”中,依次选择“...”、“创建设备”。 示例设备名称是iot-001

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

  6. 要将测试消息从设备发送到 IoT 中心,请右击设备,然后选择“将 D2C 消息发送到 IoT 中心”。

    注意

    在此设备到云 (D2C) 示例中,是 Azure IoT 中心内接收设备消息的 IoT 中心。 Azure IoT 中心支持双向通信。 要设置云到设备 (C2D) 方案,请选择“将 C2D 消息发送到设备云”。

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

  7. 在“发送 D2C 消息”中,选择或输入以下值:

    • 发送消息的设备:创建的设备的名称。

    • 每台设备的消息数1

    • 两条消息之间的间隔1 秒

    • 消息纯文本

    • 编辑:清除任何现有文本,然后复制/粘贴以下测试消息 JSON。

      提示

      可以使用以下测试消息右下角的“复制”选项,然后将其粘贴到“编辑”窗口中。

      {
          "PatientId": "patient1",
          "HeartRate": 78,
          "RespiratoryRate": 12,
          "HeartRateVariability": 30,
          "BodyTemperature": 98.6,
          "BloodPressure": {
             "Systolic": 120,
             "Diastolic": 80
          }
      }  
      
  8. 要开始向 IoT 中心发送测试消息的过程,请选择“发送”。

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

    选择“发送”后,FHIR 服务中最多可能需要五分钟才能使用 FHIR 资源。

    重要

    为了避免设备到云 (D2C) 消息中的设备欺骗,Azure IoT 中心使用其他属性扩充所有设备消息,然后再将它们路由到事件中心。 例如:SystemPropertiesiothub-connection-device-id属性iothub-creation-time-utc。 有关详细信息,请参阅反欺骗属性如何将 IotJsonPathContent 模板与医疗技术服务设备映射结合使用

    你不希望将此示例设备消息发送到 IoT 中心,因为 IoT 中心将复制扩充,并导致医疗技术服务出错。 这只是 IoT 中心如何扩充设备消息的示例。

    示例:

    Screenshot of an Azure IoT Hub enriched device message.

    只有创建模式下的医疗技术服务才需要patientIdExpression,但是,如果正在使用查找,FHIR 服务中必须存在具有匹配设备标识符的设备资源。 此示例假定医疗技术服务处于创建模式。 本教程的解决类型设置为创建。 有关目标属性创建查找的详细信息,请参阅配置目标选项卡

查看测试消息中的指标

成功将测试消息发送到 IoT 中心后,现在可以查看医疗技术服务指标。 查看指标以验证医疗技术服务是否已收到、分组、转换消息并将其保存到 FHIR 服务中。 要了解详细信息,请参阅如何使用医疗技术服务监视和运行状况检查选项卡

对于医疗技术服务指标,可以看到医疗技术服务已完成测试消息的以下步骤:

  • 传入消息数:已从事件中心收到传入测试消息。
  • 规范化消息数:已创建五条规范化消息。
  • 度量值数:已创建五个度量值。
  • FHIR 资源数:已创建保存到 FHIR 服务的五项 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.

在 FHIR 服务中查看测试数据

如果在部署模板中提供了自己的 Microsoft Entra 用户对象 ID 作为“Fhir 参与者主体 ID”选项的可选值,则可以在 FHIR 服务中查询 FHIR 资源。 根据发送到 IoT 中心并由医疗技术服务处理的测试消息,应该可以在 FHIR 服务中看到以下 FHIR 观察资源:

  • HeartRate
  • RespiratoryRate
  • HeartRateVariability
  • BodyTemperature
  • BloodPressure

要了解如何获取 Microsoft Entra 访问令牌并在 FHIR 服务中查看 FHIR 资源,请参阅使用 Postman 进行访问。 你需要在 Postman GET 请求中使用以下值来查看测试消息创建的 FHIR 观察资源:{{fhirurl}}/Observation

后续步骤

为医疗技术服务选择部署方法

医疗技术服务设备数据处理阶段概述

有关医疗技术服务的常见问题解答

注意

FHIR® 是 HL7 的注册商标,经 HL7 许可使用。