[英]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.