Hapi HL7 如何统计段或字段重复的次数

Hapi HL7 how to get a count of how many times a segment or field repeats

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

如果 field/segment 重复并且没有给出索引,则简明路径假定为 0,但我看不到任何简单询问消息或简明的方法来计算有多少重复某事的次数。

有没有什么方法可以使用 Hapi 库找出 field/segement 重复了多少次?

我认为这个函数可以满足您的要求:

ca.uhn.hl7v2.model.v25.group.ORU_R01_ORDER_OBSERVATION public int getOBSERVATIONReps()

是的,每种类型都有显式的 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
  }