3

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

MSH
Z
EVN
...

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

我试过了:

  • 没什么,只用开箱即用的 HAPI 解析消息,忽略这一段
  • 通过创建我自己的 ADT 消息类(扩展默认类)来扩展 HAPI,在 Z 段中连接:
    • addNonstandardSegment()
    • add() 与 AbstractSegment 的自定义实现

我目前的解决方法是在 HAPI 获取消息之前预先解析消息并删除该段,但这绝对是错误的方法。有人对我应该做什么有想法吗?

4

1 回答 1

2

知道了。事实证明,由于不合适的 Z 段(下面将详细介绍),EVN 对象在内部被编目为“EVN2”,并且正在添加第二个空白 EVN。我不太确定为什么代码会这样,但我会在 HAPI 项目的问题报告中讨论这个问题。

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

顺便说一句,我之前提到的解决方法可以使用子类解析器来完成,这对于修复损坏的消息是有效的——只是不是这个,因为它本身并没有“损坏”。

于 2010-01-20T19:59:50.653 回答