我正在尝试使用HAPI来解析外部系统生成的HL7(v2.3)消息。这些消息包括自定义Z段,包括消息的第二段(在MSH和EVN之间)。
MSH
Z
EVN
...
问题是,对于在遇到第一个Z段后解析的任何段,HAPI将生成消息结构,但该结构中的所有数据都为空。所以,我仍然会有一个EVN段对象,但它不会有任何数据。
我试过了:
我目前的解决方法是在HAPI获取之前预先解析消息并删除此段,但这绝对是错误的方法。有没有人对我应该做的事情有所了解?
答案 0 :(得分:2)
知道了。事实证明,由于不合适的Z段(下面有更多内容),EVN对象在内部编目为“EVN2”,并且正在添加第二个空白EVN。我不太确定为什么代码以这种方式表现,但我会在HAPI项目的问题报告中把它拿出来。
解决方法是更改ADT消息的扩展名。我不得不在我的子类构造函数中扩展它并使用this.add()添加Z段,而是必须复制原始的ADT_A *类并修改其init()方法,以正确的顺序添加Z段类作为预期消息。
顺便说一句,我之前提到的解决方法可以使用subclassed parser来完成,这对于修复损坏的邮件是有效的 - 不是这个,因为它本身并没有“破坏”。