首页 > 解决方案 > Hapi HL7如何计算一个段或字段重复的次数

问题描述

我正在使用 HAPI HL7 库,并且试图找出如何计算原始消息中段或字段重复的次数。

如果字段/段重复并且没有给出索引,则 terser 路径假定为 0,但我看不到任何方法可以简单地询问消息或 terser,以获得重复次数的计数。

有没有办法使用 Hapi 库找出字段/段重复的次数?

标签: fieldhl7segmentrepeathapi

解决方案


是的,每种类型都有明确的 getXXXReps 方法,但我正在处理各种消息,我不知道它们可能是什么,也可能不是......为事物编写一个通用计数,不管它是什么类型的消息.

我最终通过以下方式获得了我需要的东西,其中 S 是消息:

try {
  AbstractGroup m2 = (AbstractGroup) s;
  result = m2.currentReps(part);

} catch (HL7Exception | ClassCastException e) {
  if (s.getClass().getSuperclass().getName().matches("ca.uhn.hl7v2.model.AbstractSegment")) {
    AbstractSegment m3 = (AbstractSegment) s;
    Type[] t = m3.getField(Integer.parseInt(part));
    result = t.length;
  } else {
    result = 1;  // Should NEVER be able to be reached, BUT, adding it just to be safe
  }

推荐阅读