Я не эксперт в Терсере, но ...
Согласно документации , ниже приводится описание метода String get(String spec)
:
Получаетстроковое значение указанного поля.См. Документацию класса для синтаксиса спецификации местоположения.
Если повторение пропущено для повторяющегося сегмента или поля, используется первый повтор.Если компонент или подкомпонент не указан для составного поля, используется первый компонент (это позволяет писать код, который будет работать с более поздними версиями стандарта HL7).
, где spec - это полеспецификация.
С этим, как объяснено здесь , вы можете получить конкретный компонент в определенном сегменте с помощью следующего кода:
@Test
public void testAccessSegmentRepetitions() throws Exception{
//First Next of Kin Id
assertEquals("1", terser.get("NK1(0)-1"));
//Second Next of Kin Id
assertEquals("2", terser.get("NK1(1)-1"));
}
Входное сообщение HL7:
MSH|^~\\&|hl7Integration|hl7Integration|||||ADT^A01|||2.3|
EVN|A01|20130617154644
PID|1|465 306 5961||407623|Wood^Patrick^^^MR||19700101|1|||High Street^^Oxford^^Ox1 4DP~George St^^Oxford^^Ox1 5AP|||||||
NK1|1|Wood^John^^^MR|Father||999-9999
NK1|2|Jones^Georgie^^^MSS|MOTHER||999-9999
PV1|1||Location||||||||||||||||261938_6_201306171546|||||||||||||||||||||||||20130617134644|||||||||
Мы можем получить конкретные повторения, используя скобки.В зависимости от того, где мы поставим скобки, мы будем получать повторение сегмента, повторение поля или повторение компонента.
Аналогично, в вашем случае должен работать следующий код:
mesg.get("/ORC(0)-2-1") //This will return value from first occurrence of segment
mesg.get("/ORC(1)-2-1") //This will return value from second occurrence of segment
Обновление для вашего редактирования и вашего комментария:
Насчет материала ORDER
, похоже, что это необходимо.В этом случае используйте следующий код:
mesg.get("/ORDER(2)/ORC(0)-2-1") //This will return value from first occurrence of segment
mesg.get("/ORDER(2)/ORC(1)-2-1") //This will return value from second occurrence of segment