Я правильно смоделировал с использованием класса OML_O33, и для одной группы OML_O33_SPECIMEN было добавлено несколько групп OML_O33_ORDER.
Код: Выделить всё
OML_O33 omlO33;
...
omlO33.getSPECIMENAll().size() // displays 1
omlO33.getSPECIMEN(0).getORDERAll().size() // displays 2
Код: Выделить всё
MSH|^~\&|System Test|System Test|LIS Test|LIS Test|20190911105010.527+0200||OML^O33^OML_O33|2787136c-8885-4f7c-a0bb-8190b5c73ff1|D|2.5
PID|||patientIdFoo123^^^N/A||surnameFoo123^nameFoo123||20190911|M||||||||||accountNumberFoo123^^^N/A
SPM|1|barcodeFoo0||specimenFoo123|||||||||||||20190911105010.555+0200||||||||||0^REF1230
ORC|SC|bbc4bdaa-25bc-426f-830c-0737af9ecdb8||pgnFoo123||||||||doctorIdFoo^doctorSurnameFoo^doctorNameFoo
OBR||bbc4bdaa-25bc-426f-830c-0737af9ecdb8||orderIdFoo0^orderDescriptionFoo0||||||phlebotomistFoo123||||||doctorIdFoo^doctorSurnameFoo^doctorNameFoo|||||||||S
ORC|SC|8fa86d07-4f8d-4cda-ac64-3f58a5ab6acf||pgnFoo123||||||||doctorIdFoo^doctorSurnameFoo^doctorNameFoo
OBR||8fa86d07-4f8d-4cda-ac64-3f58a5ab6acf||orderIdFoo1^orderDescriptionFoo1||||||phlebotomistFoo123||||||doctorIdFoo^doctorSurnameFoo^doctorNameFoo|||||||||S
Код: Выделить всё
OML_O33 omlO33;
...
omlO33.getSPECIMENAll().size() // displays 1
omlO33.getSPECIMEN(0).getORDERAll().size() // displays 1
omlO33.getSPECIMEN(0).getORDER(0).getOBSERVATION_REQUEST().getPRIOR_RESULTAll().size() . // displays 1
Если я добавляю пустой сегмент FT1, чтобы «разрушить» двусмысленность, сообщение анализируется правильно (2 группы ORDER вместо 1), но это решение неприемлемо в моей системе.
Я бы предпочел избегать использования Terser для доступа к экземплярам сегментов ORC/OBR и полагаться на представление модели.>
Мобильная версия