3

我需要将 HL7、管道分隔的消息读入表示消息结构的自定义 Java 结构中。我需要在不使用任何消息类型、事件类型或版本特定方法或类的情况下完成所有这些,因为无论读取哪种 HL7 消息,我都需要此代码工作。我不想为每种不同的消息和事件类型编写一个阅读器。我需要获取所有细分和子字段。我已经查看了很多 HAPI 以查看它是否有针对此问题的预构建解决方案,但我什么也没找到。

是否有扩展 HAPI 类或迭代 HAPI 从解析器创建的底层消息结构来解决这个问题?

此外,任何关于 HAPI 的好资源都将不胜感激。

4

2 回答 2

2

查看用于 Java 的 HL7X 库。这个库让您可以将任何 HL7 转换为 XML。它不依赖于 MessageType、EventType 或版本(与 HAPI 有很大不同)。

例子:

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>^~\&amp;</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>

然后,您可以从基于字符串的 XML 中获取信息,或者使用任何 XMLDocument 构建器对其进行解析。

于 2015-02-17T13:45:01.127 回答
0

可以使用 HAPI 以通用方式解析消息,尽管您可能会发现自己编写了一些额外的代码并转换了一些输出,因为它不是为这种方式使用而设计的。

我的意思是它实际上是受支持的,只是你不会享受到 HAPI 的许多更高级功能的好处。

通过使用TerserVariesGenericCompositeGenericPrimitives类,我能够立即启动并运行一个简单的通用解析器。这很基本,但它可以满足我的需要。

接下来我想看看MessageVisitor看看我是否不能以一种不那么骇人听闻的方式完成一些工作(通过不依赖于强制转换来阅读)。

祝你好运,希望这会有帮助

于 2015-11-17T15:53:53.350 回答