你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
FHIR 服务中的 $convert-data
注意
2024 年 5 月,我们发布了与 FHIR 服务分离的独立 FHIR 转换器 API,并将其打包为容器 (Docker) 映像以供预览。 除了使你能够将数据从记录源转换为 FHIR R4 捆绑包之外,FHIR 转换器还提供许多净新功能,例如:
- 从记录源到 FHIR R4 捆绑包的双向数据转换。 例如,FHIR 转换器可以将数据从 FHIR R4 格式转换回 HL7v2 格式。
- 改进了自定义默认 Liquid 模板的体验。
- 演示如何使用 Azure 数据工厂 (ADF) 创建 ETL(提取、转换、加载)管道的示例。
若要实现 FHIR 转换器容器映像,请参阅 FHIR 转换器 GitHub 项目。
使用 FHIR® 服务中的 $convert-data
操作可将运行状况数据从各种格式转换为 FHIR R4 数据。 $convert-data
操作使用 FHIR 转换器项目中的 Liquid 模板进行 FHIR 数据转换。 可根据需要自定义这些转换模板。
$convert-data
操作支持四种类型的数据转换:
- HL7v2 转 FHIR R4
- C-CDA 转 FHIR R4
- JSON 转 FHIR R4(适用于自定义转换映射)
- FHIR STU3 转 FHIR R4
使用 $convert-data 终结点
将 $convert-data
终结点用作 ETL(提取、转换和加载)管道中的组件,以将运行状况数据从各种格式(例如:HL7v2、CCDA、JSON 和 FHIR STU3)转换为 FHIR 格式。 在转换运行状况数据时,为完整的工作流创建 ETL 管道。 建议使用基于 Azure 逻辑应用或 Azure 数据工厂的 ETL 引擎。 例如,工作流可能包括数据引入、执行 $convert-data
操作、验证、数据预处理和后期处理、数据扩充、重复数据删除以及加载数据以在 FHIR 服务中暂留。
$convert-data
操作集成到 FHIR 服务中作为 REST API 操作。 可以按如下所示调用 $convert-data
终结点:
POST {{fhirurl}}/$convert-data
转换的运行状况数据将传送到 $convert-data
请求正文中的 FHIR 服务。 如果请求成功,FHIR 服务将返回 FHIR 捆绑包响应,并将数据转换为 FHIR R4。
参数
$convert-data
操作调用会打包运行状况数据,以便在请求正文中 JSON 格式化的参数内进行转换。 下表介绍了这些参数:
参数名称 | 说明 | 接受的值 |
---|---|---|
inputData | 要转换为 FHIR 的数据有效负载。 | 对于 Hl7v2 :字符串 对于 Ccda :XML 对于 Json :JSON 对于 FHIR STU3 :JSON |
inputDataType | 数据输入的类型。 | Hl7v2 、Ccda 、Json 、Fhir |
templateCollectionReference | 对 Azure 容器注册表中的 OCI 映像模板集合的引用。 引用的是包含要用于转换的 Liquid 模板的映像。 它可以引用默认模板或 FHIR 服务中注册的自定义模板映像。 以下部分介绍如何自定义模板、在 Azure 容器注册表上托管模板以及注册到 FHIR 服务。 | 对于默认/示例模板: HL7v2 模板: microsofthealth/fhirconverter:default microsofthealth/hl7v2templates:default C-CDA 模板: microsofthealth/ccdatemplates:default JSON 模板: microsofthealth/jsontemplates:default FHIR STU3 模板: microsofthealth/stu3tor4templates:default 对于自定义模板: <RegistryServer>/<imageName>@<imageDigest> 、<RegistryServer>/<imageName>:<imageTag> |
rootTemplate | 转换数据时要使用的根模板。 | 对于 HL7v2: ADT_A01、ADT_A02、ADT_A03、ADT_A04、ADT_A05、ADT_A08、 ADT_A11、ADT_A13、ADT_A14、ADT_A15、ADT_A16、ADT_A25、ADT_A26、ADT_A27、ADT_A28、ADT_A29、ADT_A31、ADT_A47、ADT_A60、OML_O21、ORU_R01、ORM_O01、VXU_V04、SIU_S12、SIU_S13、SIU_S14、SIU_S15、SIU_S16、 SIU_S17、SIU_S26、MDM_T01、MDM_T02 对于 C-CDA: CCD、ConsultationNote、DischargeSummary、HistoryandPhysical、OperativeNote、ProcedureNote、ProgressNote、ReferralNote、TransferSummary 对于 JSON: ExamplePatient、Stu3ChargeItem 对于 FHIR STU3: FHIR STU3 资源名称(例如:患者、观察、组织) |
注意事项
FHIR STU3 转 FHIR R4 模板是 Liquid 模板,该模板仅提供 FHIR R4 规范中 FHIR STU3 资源与其等效资源之间的字段差异映射。 部分 FHIR STU3 资源已重命名或已从 FHIR R4 中删除。 有关 FHIR STU3 转 FHIR R4 的资源差异和约束的详细信息,请参阅 FHIR STU3 转 FHIR R4 的资源差异和约束。
JSON 模板是用于生成自己的转换映射的示例模板。 它们不是遵循任何预定义运行状况数据消息类型的默认模板。 与 HL7v2 或 C-CDA 不同,JSON 本身未指定为运行状况数据格式。 因此,我们不是提供默认 JSON 模板,而是提供一些示例 JSON 模板作为你自己的自定义映射的起点。
警告
默认模板是在 MIT 许可证下发布的,不受 Microsoft 的支持。
仅提供默认模板来帮助你开始使用数据转换工作流。 这些默认模板不适用于生产环境,在 Microsoft 发布 FHIR 服务的更新时可能会更改。 若要在不同版本的 FHIR 服务中具有一致的数据转换行为,必须执行以下操作:
- 在 Azure 容器注册表实例中托管自己的模板副本。
- 将模板注册到 FHIR 服务。
- 在 API 调用中使用已注册的模板。
- 验证转换行为是否符合要求。
有关托管自己的模板的详细信息,请参阅托管自己的模板
示例请求
{
"resourceType": "Parameters",
"parameter": [
{
"name": "inputData",
"valueString": "MSH|^~\\&|SIMHOSP|SFAC|RAPP|RFAC|20200508131015||ADT^A01|517|T|2.3|||AL||44|ASCII\nEVN|A01|20200508131015|||C005^Whittingham^Sylvia^^^Dr^^^DRNBR^D^^^ORGDR|\nPID|1|3735064194^^^SIMULATOR MRN^MRN|3735064194^^^SIMULATOR MRN^MRN~2021051528^^^NHSNBR^NHSNMBR||Kinmonth^Joanna^Chelsea^^Ms^^D||19870624000000|F|||89 Transaction House^Handmaiden Street^Wembley^^FV75 4GJ^GBR^HOME||020 3614 5541^PRN|||||||||C^White - Other^^^||||||||\nPD1|||FAMILY PRACTICE^^12345|\nPV1|1|I|OtherWard^MainRoom^Bed 183^Simulated Hospital^^BED^Main Building^4|28b|||C005^Whittingham^Sylvia^^^Dr^^^DRNBR^D^^^ORGDR|||CAR|||||||||16094728916771313876^^^^visitid||||||||||||||||||||||ARRIVED|||20200508131015||"
},
{
"name": "inputDataType",
"valueString": "Hl7v2"
},
{
"name": "templateCollectionReference",
"valueString": "microsofthealth/fhirconverter:default"
},
{
"name": "rootTemplate",
"valueString": "ADT_A01"
}
]
}
示例响应
{
"resourceType": "Bundle",
"type": "batch",
"entry": [
{
"fullUrl": "urn:uuid:9d697ec3-48c3-3e17-db6a-29a1765e22c6",
"resource": {
"resourceType": "Patient",
"id": "9d697ec3-48c3-3e17-db6a-29a1765e22c6",
...
...
},
"request": {
"method": "PUT",
"url": "Location/50becdb5-ff56-56c6-40a1-6d554dca80f0"
}
}
]
}
FHIR 转换的结果是一个批次的 FHIR 捆绑包。
- FHIR 捆绑包应符合 FHIR R4 规范的预期 - 捆绑包 - FHIR v4.0.1。
- 如果尝试根据特定配置文件进行验证,则需要利用 FHIR $validate 操作执行一些后期处理。
后续步骤
注意
FHIR® 是 HL7 的注册商标,经 HL7 许可使用。