如何将 HL7 v2.x 消息转换为 FHIR JSON?

ani*_*mal 7 json hl7 hl7-fhir hl7-v2

我正在尝试使用 java 或 python 将 HL7 v2.x 消息转换为 FHIR JSON。但我找不到任何解决方案。有没有办法实现这一目标?

我发现 FHIR 能够转换为 JSON,但我不知道该怎么做。

Bry*_*yan 6

这是一个建议:

  1. 下载并安装 Mirth Connect
  2. 创建一个新频道
  3. 在“脚本”选项卡下,选择“预处理器”
  4. 使用以下命令将 HL7 消息转换为 XML:

// Modify the message variable below to pre process data
message = SerializerFactory.getSerializer('HL7V2').toXML(message);
    
return message;
Run Code Online (Sandbox Code Playgroud)

  1. 现在您在变量message 中有了 XML 文件,因此您可以编写内联代码将其转换为 JSON,而无需从这里获取库:https : //davidwalsh.name/convert-xml-json

  • 有趣的概念,但资源过于密集。Mirth 不仅默认安装了 20+G 的磁盘空间,转换为 xml->json 的行为,至少在我的系统上,比在 java 中手动编写直接转换需要 750ms 到 3s 的时间来处理,并且可以使用超过演出的额外 ram。确保你有一个非常强大的服务器来处理它,或者更好的是,一个完全专用的服务器来进行这些转换。 (4认同)

Ami*_*shi 6

关于 HL7 2.x

HL7 2.x 版本既不支持 XML 也不支持 JSON作为标准的一部分

HL7 2.5 版及更早版本的第 2 版 v2.xml XML 模式由 Sun Microsystems 提供。提供这些表示是为了方便,因为 XML 模式是一种描述 XML 表示的紧凑且特定的方式。然而,模式本身并不是本规范的规范部分
hl7.org

正如您在上面看到的,“v2.xml XML Schemas”不是规范的一部分。它们是额外的贡献。

本规范的目标是为基于可扩展标记语言 XML 的 HL7 版本 2.3.1、2.4、2.5 和未来的 2.x 消息提供编码规则,可在发送方和接收方都理解 XML 的环境中使用。所述v2.xml说明书旨在充当第二规范编码为V2.3.1,2.4版和V2.5(HL7的版本2.x标准的和将来的版本)。
hl7.org

以下是维基百科的引述:

HL7 v2.x 消息使用基于段(行)和单字符分隔符维基百科的非 XML 编码语法

关于 HL7 v3.x

HL7 v3.x 版本支持将 XML 作为标准的一部分。

几种 XML 编码方法可以用作 HL7 V3 消息的消息传递语法。本文档代表了 HL7 推荐的方法,描述了基本规则和原则。本规范所需的相应数据类型描述在数据类型 XML ITS 中进行了描述。
hl7.org

以下引用自《HL7 V3 指南》:

HL7 在抽象级别定义其消息。HL7 中的“7”代表 ISO 通信模型的应用级别——ISO 级别 7。该级别强调消息的语义内容,而不是它们的表示方式,也不是这些表示如何编码以进行传输。

HL7 在抽象级别定义其消息。HL7 中的“7”代表 ISO 通信模型的应用级别——ISO 级别 7。该级别强调消息的语义内容,而不是它们的表示方式,也不是这些表示如何编码以进行传输。

HL7 版本 2 抽象消息模型具有段和字段的概念。它定义了一种特殊的编码方案来表示抽象消息的实例——所谓的“垂直条编码”。来自 Health 域(语义级别 7)的信息在版本 2 中表示为段和字段,并表示为带有大量竖线的 ASCII 字符。与这种方法一致,V2 的新 XML 编码大多是对竖线编码的直接替代

第 3 版抽象消息模型基于 RIM。HL7 版本 3 消息可以被认为是从发送方到接收方的 RIM 对象图的通信。ITS 可以通过对对象、属性和数据类型进行适当的表示来最好地处理这些消息的表示。
hl7.ihelse.net

以下是维基百科的引述:

HL7 v3 消息基于 XML 编码语
法维基百科

您可以在此处阅读有关兼容性的更多信息。

它们都不支持 JSON 作为标准的一部分。
因此,从 HL7 到 XML 或 HL7 到 JSON 的转换是不合标准的;一个需要自己处理。


关于 FHIR(快速医疗互操作性资源)

FHIR 是由 HL7 发布的医疗保健数据交换标准。
此处查看 HL7 和 FHIR 之间的关系。

所述FHIR同时支持XMLJSON格式为标准的一部分。请参阅这些链接了解更多详情。


将 v2 转换为 FHIR:

总的来说,这种转换有两种方法:

  • 创建反映 v2 消息内容的 FHIR 消息包,旨在作为等效表示,其行为方式与 v2 消息相同
  • 使用 v2 消息的内容来更新 FHIR 服务器 - 可能是提取 Encounter 资源或创建一个 Bundle,该 Bundle 旨在充当针对 FHIR 服务器的“交易”包。我认为这将是一个更常见的用例。

FHIR博客

请阅读该博客以了解有关转换的详细信息。社区正在致力于转换;希望开箱即用的解决方案很快可用。

v2 和 FHIR 之间的转换是社区正在做的事情——这里有一个聊天流:https : //chat.fhir.org/#narrow/stream/179188-v2-to.20FHIR,你可以在那里参与进来。两个标准之间的映射需要一些工作来定义,并且在实现上会有差异,但该项目的目标是定义一个“基础”映射作为起点。v2 和 FHIR 之间的关系相当密切,但还有很多问题需要解决……

没有单一的方法可以实际执行转换 - 这将取决于您必须掌握的技术。例如,在这篇文章中,我在 NodeRED 中使用了简单的 javascript——尽管只是作为概念证明。我想大多数集成引擎供应商都会在这个领域提供产品。
评论

HL7 站点上解释了映射详细信息。


以下是一些工具:

https://github.com/rimiti/hl7-object-parser#hl7-object-parser(HL7 v2.x 到 JSON)
https://github.com/nezt/hl72xml#hl72xml(HL7 V2.x 到 XML)
https://github.com/KevinMayfield/ITKHL7v2-FHIR

Mirth 提供了将 HL7 转换为 XML/JSON 的功能。
请参阅@Bryan 的其他答案。
很少有样本可以在这里这里找到。