首页 文章

将Hl7消息转换为Json

提问于
浏览
1

我需要将HL7消息转换为JSON,所以我使用Hapi将消息转换为xml然后使用JSON库将xml转换为JSON,xml的输出是

<?xml version="1.0" encoding="UTF-8"?>
<ADT_A01 xmlns="urn:hl7-org:v2xml">
    <MSH>
        <MSH.1>|</MSH.1>
        <MSH.2>^~\&amp;</MSH.2>
        <MSH.3>
            <HD.1>7EDIT</HD.1>
        </MSH.3>
        <MSH.4>
            <HD.1>7EDIT.COM</HD.1>
        </MSH.4>
        <MSH.5>
            <HD.1>IS</HD.1>
        </MSH.5>
        <MSH.6>
            <HD.1>FACILITY</HD.1>
        </MSH.6>
        <MSH.7>20150721160705</MSH.7>
        <MSH.8>S</MSH.8>
        <MSH.9>
            <MSG.1>ADT</MSG.1>
            <MSG.2>A01</MSG.2>
        </MSH.9>
        <MSH.10>MSG00001</MSH.10>
        <MSH.11>
            <PT.1>P</PT.1>
        </MSH.11>
        <MSH.12>
            <VID.1>2.6</VID.1>
        </MSH.12>
        <MSH.13>1</MSH.13>
        <MSH.14>ST</MSH.14>
        <MSH.15>AL</MSH.15>
        <MSH.16>AL</MSH.16>
        <MSH.17>972</MSH.17>
        <MSH.18>WINDOWS-1252</MSH.18>
    </MSH>
    <EVN>
        <EVN.1>A01</EVN.1>
        <EVN.2>20150721160852</EVN.2>
        <EVN.3>20150721160854</EVN.3>
        <EVN.4>01</EVN.4>
        <EVN.5>
            <XCN.1>st</XCN.1>
        </EVN.5>
        <EVN.6>20150721160917</EVN.6>
        <EVN.7>
            <HD.1>IS</HD.1>
        </EVN.7>
    </EVN>
    <PID>
        <PID.1>1</PID.1>
        <PID.2>
            <CX.1>ST</CX.1>
            <CX.4>
                <HD.1>IS</HD.1>
            </CX.4>
        </PID.2>
        <PID.3>
            <CX.1>12345</CX.1>
        </PID.3>
        <PID.5>
            <XPN.1>
                <FN.1>JOSEPH</FN.1>
            </XPN.1>
        </PID.5>
    </PID>
    <PV1>
        <PV1.2>B</PV1.2>
        <PV1.3>
            <PL.1>IS</PL.1>
        </PV1.3>
        <PV1.4>A</PV1.4>
        <PV1.5>
            <CX.1>S</CX.1>
        </PV1.5>
        <PV1.6>
            <PL.1>S2</PL.1>
        </PV1.6>
        <PV1.7>
            <XCN.1>REALM</XCN.1>
        </PV1.7>
        <PV1.8>
            <XCN.1>HANNAH</XCN.1>
        </PV1.8>
        <PV1.9>
            <XCN.1>DOCTOR</XCN.1>
        </PV1.9>
        <PV1.10>SUR</PV1.10>
        <PV1.11>
            <PL.1>PC</PL.1>
        </PV1.11>
        <PV1.12>S</PV1.12>
        <PV1.13>R</PV1.13>
        <PV1.14>7</PV1.14>
        <PV1.15>A0</PV1.15>
        <PV1.16>IN</PV1.16>
        <PV1.17>
            <XCN.1>NUMBER</XCN.1>
        </PV1.17>
        <PV1.18>AM</PV1.18>
        <PV1.19>
            <CX.1>NUM</CX.1>
        </PV1.19>
        <PV1.20>
            <FC.1>FC</FC.1>
        </PV1.20>
        <PV1.21>PR</PV1.21>
        <PV1.22>S</PV1.22>
        <PV1.23>SS</PV1.23>
        <PV1.24>S</PV1.24>
    </PV1>
</ADT_A01>

这里的输出就像segmenName.FieldName(MSH.1),所以Json也是一样的,而不是segmenName.FieldName,我需要给每个字段一个有意义的名字,我无法弄清楚如何做到这一点

我需要将Xml中的元素映射到JSON中的不同键

1 回答

  • 0

    执行此操作的一种方法是使用字段/名称的映射,并遍历所有JSON以查找映射上的字段,找到字段时,将其名称更改为映射中的对应名称 .

    您可能无法更改正在遍历的JSON,在这种情况下,遍历应该克隆结构,创建具有相应名称的JSON节点 .

    您的JSON工具可能有一种解析和递归遍历整个JSON对象的方法 .

    另一种方法是实现XML-JSON转换(这很简单),并在该转换中包含“名称映射”步骤 .

相关问题