【问题标题】:Add a line break in HL7 message generated from Mirth connect在 Mirth connect 生成的 HL7 消息中添加换行符
【发布时间】:2013-07-18 17:08:50
【问题描述】:

在 HL7 中添加换行符非常重要,因为没有它,Mirth connect 无法解析消息。

我向 Mirth connect 发送一条 XML 消息以转换为 HL7。该消息有一个根节点和多个子节点。需要在 HL7 中的每个子节点后添加一个新行。

首先我不知道添加新行的设置是否必须在发送的 XML 或 Mirth 连接中完成?

我尝试了多个 XML 代码来包含如下换行符:

  • 和/或
  • /r/n 和/或 /n
  • /br 或 br 标记
  • CDATA 标记
  • 和/或

来自 Mirth 文档: http://www.mirthcorp.com/community/wiki/display/resultsHL7mapping/Separators+and+Escape+Sequences

尝试了其他选项,但无法获得换行符。

请提出在生成的 HL7 文件中添加新行的解决方案。

发送到 Mirth Connect 的 XML:

<?xml
version='1.0'
encoding='utf-8'
?>
    <HL7Message>
        <MSH>
            <MSH.1>|</MSH.1>
            <MSH.2>^~\&amp;</MSH.2>
            <MSH.3>
                <MSH.3.1>SNAP
                    EHR</MSH.3.1>
            </MSH.3>
            <MSH.4>
                <MSH.4.1>Kreetti
                    Clinic</MSH.4.1>
            </MSH.4>
            <MSH.5>
                <MSH.5.1>Receiving
                    Application</MSH.5.1>
            </MSH.5>
            <MSH.6>
                <MSH.6.1>Receiving
                    Facility</MSH.6.1>
            </MSH.6>
            <MSH.7>
                <MSH.7.1>20130719</MSH.7.1>
            </MSH.7>
            <MSH.8/>
            <MSH.9>
                <MSH.9.1>VXU</MSH.9.1>
                <MSH.9.2>V04</MSH.9.2>
            </MSH.9>
            <MSH.10>
                <MSH.10.1>634158415302812500</MSH.10.1>
            </MSH.10>
            <MSH.11>
                <MSH.11.1></MSH.11.1>
            </MSH.11>
            <MSH.12>
                <MSH.12.1>2.3.1</MSH.12.1>
            </MSH.12>
        </MSH>


        <PID>
            <PID.1>
                <PID.1.1>0123</PID.1.1>
            </PID.1>
            <PID.2/>
            <PID.3>
                <PID.3.1>0123</PID.3.1>
                <PID.3.2/>
                <PID.3.3/>
                <PID.3.4/>
                <PID.3.5>Mr</PID.3.5>
            </PID.3>
            <PID.4/>
            <PID.5>
                <PID.5.1>Jacob</PID.5.1>
                <PID.5.2>Oram</PID.5.2>
            </PID.5>
            <PID.6/>
            <PID.7>
                <PID.7.1>19930904</PID.7.1>
            </PID.7>
            <PID.8>
                <PID.8.1>M</PID.8.1>
            </PID.8>
            <PID.9/>
            <PID.10/>
            <PID.11>
                <PID.11.1>1111</PID.11.1>
                <PID.11.2/>
                <PID.11.3>Updated</PID.11.3>
                <PID.11.4>Dyer</PID.11.4>
                <PID.11.5>23323-2342</PID.11.5>
            </PID.11>
            <PID.12/>
            <PID.13>
                <PID.13.1/>
                <PID.13.2/>
                <PID.13.3/>
                <PID.13.4/>
                <PID.13.5/>
                <PID.13.6/>
                <PID.13.7>1111111111 </PID.13.7>
            </PID.13>
        </PID>



        <RXA>
            <RXA.1>
                <RXA.1.1>0</RXA.1.1>
            </RXA.1>
            <RXA.2>
                <RXA.2.1>999</RXA.2.1>
            </RXA.2>
            <RXA.3>
                <RXA.3.1>20091202</RXA.3.1>
            </RXA.3>
            <RXA.4>
                <RXA.4.1>20091202</RXA.4.1>
            </RXA.4>
            <RXA.5>
                <RXA.5.1>88</RXA.5.1>
                <RXA.5.2>Influenza</RXA.5.2>
                <RXA.5.3>CVX</RXA.5.3>
            </RXA.5>
            <RXA.6>
                <RXA.6.1>1</RXA.6.1>
            </RXA.6>
            <RXA.7>
                <RXA.7.1>1</RXA.7.1>
                <RXA.7.2>1</RXA.7.2>
                <RXA.7.3>1</RXA.7.3>
            </RXA.7>
            <RXA.8/>
            <RXA.9>
                <RXA.9.1>00</RXA.9.1>
            </RXA.9>
            <RXA.10>
                <RXA.10.1/>
                <RXA.10.2>Butler</RXA.10.2>
                <RXA.10.3>Internist</RXA.10.3>
                <RXA.10.4/>
                <RXA.10.5/>
                <RXA.10.6>Dr.</RXA.10.6>
            </RXA.10>
            <RXA.11>
                <RXA.11.1>Kreetti
                    Clinic</RXA.11.1>
            </RXA.11>
            <RXA.12/>
            <RXA.13/>
            <RXA.14/>
            <RXA.15>
                <RXA.15.1>42142314</RXA.15.1>
            </RXA.15>
            <RXA.16>
                <RXA.16.1>20100827000000</RXA.16.1>
            </RXA.16>
            <RXA.17>
                <RXA.17.1/>
                <RXA.17.2></RXA.17.2>
            </RXA.17>
        </RXA>


        <RXR>
            <RXR.1>
                <RXR.1.1/>
                <RXR.1.2>Injection</RXR.1.2>
            </RXR.1>
            <RXR.2>
                <RXR.2.1/>
                <RXR.2.2>Hand</RXR.2.2>
            </RXR.2>
        </RXR>
    </HL7Message>

【问题讨论】:

  • 只是提醒一下,转义序列带有“\”而不是“/”。所以行尾是“\n”而不是“/n”
  • 看你对这个问题的回答,这个问题已经不能复现了。

标签: xml newline hl7 mirth


【解决方案1】:

该设置确实存在于 Mirth connect 中,位于源选项卡下,您可以在其中定义消息分隔符和段分隔符,格式为 HEX0x0D 是十六进制的回车-消息分隔符。

您显示的 xml 是编码消息。它不是基于 ascii/text 的原始 hl7 消息。 Mirth 将消息转换为基于 XML 的处理。

获取 HL7 消息,在 Notepad++ 中打开它,如果您在消息中每个段的末尾看到 CR LF 块代码,这意味着您的消息格式正确,否则您必须使用好消息。 ****

【讨论】:

  • 嗨,抱歉耽搁了,但我怀疑我是否必须修改我发送给 Mirth connect 的 XML?如果是这样呢? Mirth connect 有一个段分隔符的默认值,但这没有帮助。并且生成的 HL7 中没有 CR LF 块。
  • 好的,首先...您的源 HL7 消息是 XML 格式还是基于 Ascii 文本的格式?如果是 XML……那么当您在 Mirth 中创建频道时,它应该能够接受 xml 格式的消息。您在创建通道并指定消息格式时定义它。如果该部分完成,并且上面是输入 xml 消息,那么我看不到消息本身有任何问题。
  • 我只是将这个 XML 发送到一个通道,我在 hl7 中获得了 o/p,但没有换行符。通道源中“段字符结束”的尝试值 - 0x0D , 0x13。但没有帮助。
  • HL7 有管道和 xml 实现,你知道的。这只是一个 xml hl7 消息。
【解决方案2】:

当我在 Mirth connect 的仪表板中检查编码消息时,新行来了。 所以我认为这可能是目标文件编写器的问题。

然后发现,只是windows的默认记事本不显示换行。在任何其他编辑器中打开生成的文件包括新行。 :)

【讨论】:

  • 我知道基于管道的 hl7 的标准仅使用 \r 作为换行符,这在记事本中确实无法正确显示,因此您的换行符可能会被转换回那个。尝试改用写字板;它也存在于任何 Windows 系统上,并且确实正确显示部分换行符(如果您在其中重新保存文档,甚至可以修复它们)。
猜你喜欢
  • 2011-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-26
  • 2012-07-26
  • 2018-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多