除了HAPI,还有什么好的解析器可以使用Java解析HL7 V2.7消息吗?我的目标是将消息转换为XML文件。
我自己有一个名为HL7X的开源替代方案,它可以与任何HL7v2版本一起使用。它将HL7字符串转换为XML字符串。
的例子:
MSH|^~&|||||20121116122025||ADT^A01|5730224|P|2.5||||||UNICODE UTF-8
EVN|A01|20130120151827
PID||0|123||Name^Firstname^^^^||193106170000|w
PV1||E|
转换为
<?xml version="1.0" encoding="UTF-8"?>
<HL7X>
<HL7X>
<MSH>
<MSH.1>^~&</MSH.1>
<MSH.6>20121116122025</MSH.6>
<MSH.8>
<MSH.8.1>ADT</MSH.8.1>
<MSH.8.2>A01</MSH.8.2>
</MSH.8>
<MSH.9>5730224</MSH.9>
<MSH.10>P</MSH.10>
<MSH.11>2.5</MSH.11>
<MSH.17>UNICODE UTF-8</MSH.17>
</MSH>
<EVN>
<EVN.1>A01</EVN.1>
<EVN.2>20130120151827</EVN.2>
</EVN>
<PID>
<PID.2>0</PID.2>
<PID.3>123</PID.3>
<PID.5>
<PID.5.1>Name</PID.5.1>
<PID.5.2>Firstname</PID.5.2>
</PID.5>
<PID.7>193106170000</PID.7>
<PID.8>F</PID.8>
</PID>
<PV1>
<PV1.2>E</PV1.2>
</PV1>
</HL7X>
这个http://www.dcm4che.org/confluence/display/ee2/Home开源Java软件可以通过MLLP协议接收各种HL7消息,将它们转换为XML,通过XSLT转换器运行,然后将它们加载到数据库中,并根据需要为DICOM客户机提供服务。为了在代码库中做到这一点,有HL7->XML代码。找到它,复制/粘贴,然后使用它。
当我在排除消息字符集问题时,我知道了这段代码的确切位置。当时我发现HL7解析器相当简单,只能理解配置中提供的1个字符集。它不读取/使用消息中提供的字符集(MSH-18,表0211,Grahame Grieve的编码技巧),也不支持在消息解码期间切换字符集(参见HL7规范中的"支持多字符集的转义序列"一章)。
所以我知道解析器代码在那里。它是用Java编写的。它为特定于客户的XSLT转换脚本生成XML输入。它应该很容易被重用。
你应该能自己找到它。否则你的问题会变成一个简单的寻找工具§4是一个跑题:)