簡體   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