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

医疗技术服务设备映射概述

本文概述医疗技术服务设备映射。

医疗技术服务需要两种类型的 JSON 映射,这些映射通过 Azure 门户或 Azure 资源管理器 (ARM) API 添加到医疗技术服务。 设备映射是第一种类型,控制将发送到医疗技术服务的设备数据中的值映射到内部规范化数据对象的操作。 设备映射包含医疗技术服务用于提取类型、设备标识符、度量日期时间和度量值的表达式。 FHIR® 目标映射是第二种类型,控制 FHIR 观察的映射。

注意

每次处理设备消息时,都会重新评估设备和 FHIR 目标映射。 对任一映射的任何更新都将立即生效。

设备映射基础知识

设备映射包含表达式模板的集合,用于将设备消息数据提取为内部规范化格式以进行进一步的评估。 每条收到的设备消息都会根据集合中的所有表达式模板进行评估。 此评估意味着单个设备消息可以分为多个出站消息,这些消息可以映射到 FHIR 服务中的多个 FHIR 观察。

提示

若要详细了解医疗技术服务如何将设备消息数据处理为 FHIR 观察以在 FHIR 服务中持久保存,请参阅医疗技术服务设备数据处理阶段概述

下图说明了医疗技术服务规范化阶段发生的情况。

Diagram example of the MedTech service device message normalization stage.

设备映射验证

规范化过程会在允许保存设备映射以供使用之前对其进行验证。 设备映射模板中需要以下元素。

设备映射

元素 CalculatedContent 中所需 IotJsonPathContent 中所需
typeName True True
typeMatchExpression True True
deviceIdExpression True False,完全被忽略。
timestampExpression True False,完全被忽略。
patientIdExpression 当医疗技术服务的“解决方案类型”设置为“创建”时为 true;当医疗技术服务的“解决方案类型”设置为“查找”时为 False。 当医疗技术服务的“解决方案类型”设置为“创建”时为 true;当医疗技术服务的“解决方案类型”设置为“查找”时为 False。
encounterIdExpression False False
correlationIdExpression False False
values[].valueName True True
values[].valueExpression True True
values[].required True True

重要

“解决方案类型”指定医疗技术服务如何将设备数据与设备资源和患者资源相关联。 医疗技术服务使用设备标识符患者标识符从 FHIR 服务读取设备和患者资源。 如果指定了 encounter 标识符并从设备数据有效负载中提取它,则在 FHIR 服务上存在具有该标识符的 encounter 的情况下,该标识符会链接到观察。 如果 encounter 标识符已成功规范化,但不存在具有该 encounter 标识符的 FHIR Encounter,则会引发 FhirResourceNotFound 异常。 若要详细了解如何配置医疗技术服务解决方案类型,请参阅配置“目标”选项卡

注意

仅当数组中有值项时,才需要 values[].valueName, values[].valueExpressionvalues[].required 元素。 不映射任何值也是有效的。 当发送的遥测数据是一个事件时,将使用这些元素。

例如,某些方案可能需要在 FHIR 服务中创建不包含值的 FHIR 观察。

CollectionContent

CollectionContent 是医疗技术服务设备映射使用的根模板类型。 CollectionContent 是规范化阶段使用的所有模板的列表。 可以在 CollectionContent 中定义一个或多个模板,并根据所有模板对医疗技术服务收到的每条设备消息进行评估。

可以根据用例在 CollectionContent 中使用这些模板类型:

和/或

Diagram showing MedTech service device mapping templates architecture.

示例

提示

可以使用医疗技术服务映射调试程序帮助创建、更新和排查医疗技术服务设备和 FHIR 目标映射问题。 利用映射调试程序,可以轻松实时查看和进行内联调整,而无需离开 Azure 门户。 映射调试程序还可用于上传测试设备消息,以查看在处理成规范化消息并转换为 FHIR 观察后的外观。

在此示例中,我们使用捕获 heartRate 数据的设备消息:

{
  "heartRate": "78",
  "endDate": "2023-03-13T22:46:01.8750000",
  "deviceId": "device01"
}

我们将此设备映射用于规范化阶段:

{
  "templateType": "CollectionContent",
  "template": [
    {
      "templateType": "CalculatedContent",
      "template": {
        "typeName": "heartrate",
        "typeMatchExpression": "$..[?(@heartRate)]",
        "deviceIdExpression": "$.matchedToken.deviceId",
        "timestampExpression": "$.matchedToken.endDate",
        "values": [
          {
            "required": true,
            "valueExpression": "$.matchedToken.heartRate",
            "valueName": "hr"
          }
        ]
      }
    }
  ]
}

在规范化阶段之后,生成的规范化消息将如下所示:

[
  {
    "type": "heartrate",
    "occurrenceTimeUtc": "2023-03-13T22:46:01.875Z",
    "deviceId": "device01",
    "properties": [
      {
        "name": "hr",
        "value": "78"
      }
    ]
  }
]

当医疗技术服务处理设备消息时,CollectionContent 中的模板用于评估消息。 typeMatchExpression 用于确定是否应使用模板从设备消息创建规范化消息。 如果 typeMatchExpression 的计算结果为 true,则使用 deviceIdExpressiontimestampExpressionvalueExpression 值从设备消息中查找和提取 JSON 值并创建规范化消息。 在此示例中,所有表达式都写入 JSONPath,但是,将所有表达式写入 JMESPath 也是有效的。 由模板作者决定哪种表达语言最合适。

提示

如需修复常见医疗技术服务部署错误方面的帮助,请参阅排查医疗技术服务部署错误

如需修复医疗技术服务错误方面的帮助,请参阅使用医疗技术服务日志排查错误

后续步骤

如何将 CalculatedContent 模板与医疗技术服务设备映射配合使用

如何将 IotJsonPathContent 模板与医疗技术服务设备映射配合使用

如何将自定义函数与医疗技术服务设备映射配合使用

医疗技术服务 FHIR 目标映射概述

基于医疗技术服务方案的映射示例概述

注意

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