HAPI在HL7 Z段上窒息

时间:2010-01-20 16:45:06

标签: java hl7 hapi

我正在尝试使用HAPI来解析外部系统生成的HL7(v2.3)消息。这些消息包括自定义Z段,包括消息的第二段(在MSH和EVN之间)。

MSH
Z
EVN
...

问题是,对于在遇到第一个Z段后解析的任何段,HAPI将生成消息结构,但该结构中的所有数据都为空。所以,我仍然会有一个EVN段对象,但它不会有任何数据。

我试过了:

  • 没什么,只需用开箱即用的HAPI解析邮件,然后忽略此段
  • 通过创建我自己的连接Z段的ADT消息类(扩展默认类)来扩展HAPI:
    • addNonstandardSegment()
    • 使用AbstractSegment的自定义实现添加()

我目前的解决方法是在HAPI获取之前预先解析消息并删除此段,但这绝对是错误的方法。有没有人对我应该做的事情有所了解?

1 个答案:

答案 0 :(得分:2)

知道了。事实证明,由于不合适的Z段(下面有更多内容),EVN对象在内部编目为“EVN2”,并且正在添加第二个空白EVN。我不太确定为什么代码以这种方式表现,但我会在HAPI项目的问题报告中把它拿出来。

解决方法是更改​​ADT消息的扩展名。我不得不在我的子类构造函数中扩展它并使用this.add()添加Z段,而是必须复制原始的ADT_A *类并修改其init()方法,以正确的顺序添加Z段类作为预期消息。

顺便说一句,我之前提到的解决方法可以使用subclassed parser来完成,这对于修复损坏的邮件是有效的 - 不是这个,因为它本身并没有“破坏”。