[英]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。
因此,引用诸如OBSERVATION [0] .NTE [0]之类的东西可以为您提供所需的确切信息。 据我所知, Mirth强迫您编写代码以解决这一问题 。
归根结底,解决您认为合适的问题,但是背离标准可能会背对背咬您。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.