繁体   English   中英

解析HL7 v2并转换为JSON / XML

[英]Parsing HL7 v2 and converting to JSON/XML

我需要使用python处理HL7 v2.5(OUL_R22)消息的内容 (比例:10个单条消息以及更多)。 为此,我正在解析HL7消息。 最初,我使用python包HL7apy转换为JSON(请参阅Stack:从HL7到JSON转换 )。 输出看起来不错,但是在处理过程中发生了一些错误/错误,而且确实很慢。 因此,我尝试了将Java库HAPI转换为XML(请参见堆栈:将HL7 v2转换为JSON )。 使用包xmltodict可以将XML文件作为dict读取。 与HL7apy相比,转换速度快了50倍。 但是输出的结构不一致/异质。 HAPI以某种方式将段包装到新的组中,例如OUL_R22.SPECIMEN / .ORDER / .RESULT 问题是:

HAPI是否可以产生平面输出或长度等于输入段唯一出现长度的数组? 还是可以在某个地方添加“保留原始结构”?


为了使事情更清楚:我需要处理OBX段的内容。

输入如下所示:

MSH|...
PID|...
PV1|...
SPM|...
OBR|...
ORC|...
NTE|...
NTE|...
TQ1|...
OBX|...
OBX|...
...

输出的结构如下所示(当然是XML):

OUL_R22
    MSH
    OUL_R22.PATIENT
    OUL_R22.VISIT
    OUL_R22.SPECIMEN
        OUL_R22.ORDER
            OUL_R22.TIMING_QTY
                ...
            OUL_R22.RESULT
                OBX
            OUL_R22.RESULT
                OBX

有时是这样的:

OUL_R22
    ...
    OBX

或像这样:

OUL_R22
    ...
    OUL_R22.SPECIMEN
        OBX

这确实是不一致的。


我想要的是这样的:

OUL_R22
    MSH
    PID
    ...
    OBX

或像这样:

[
    {
        "MSH": [],
        "PID": [],
        ...
        "OBX": [],
        ...

到目前为止的解决方案:

设置Mirth Connect服务器以接收和转换HL7 v2.x消息。

这些组是HL7语法的基本组成部分-我一直对Mirth和其他接口引擎感到困惑,他们在使用HL7v2的语法中忽略了它们。

OBR / OBX组合具有很多组,因为两者之间存在很多嵌套关系。 例如,OBR之后的NTE整体适用于OBR,但每个OBX之后的NTE分别适用于该OBX。

这就是HL7规范中的外观。 这就是HL7规格中的OBR / OBX外观

因此,引用诸如OBSERVATION [0] .NTE [0]之类的东西可以为您提供所需的确切信息。 据我所知, Mirth强迫您编写代码以解决这一问题

归根结底,解决您认为合适的问题,但是背离标准可能会背对背咬您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM