Хапи HL7, как получить количество повторений сегмента или поля - PullRequest
0 голосов
/ 26 апреля 2019

Я работаю с библиотеками HAPI HL7 и пытаюсь выяснить, как узнать, сколько раз сегмент или поле повторяется в исходном сообщении.

Более краткий путь предполагает 0, если поле / сегмент повторяется и индекс не указывается, но я не вижу способа простого запроса по сообщению или более краткому, чтобы получить счетчик того, сколько раз что-то повторяется.

Есть ли способ узнать, сколько раз поле / сегмент повторяется с использованием библиотек хапи?

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

Да, у каждого из типов есть явные методы 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
  }
0 голосов
/ 15 мая 2019

Я думаю, что эта функция делает то, что вы просите:

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

...