Обработка нескольких повторений ORC OBR в сообщении OML_O33 как экземпляров OML_O33_ORDER.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Обработка нескольких повторений ORC OBR в сообщении OML_O33 как экземпляров OML_O33_ORDER.

Сообщение Anonymous »

Я генерирую сообщение OML_O33 (для профиля IHE LAB-63) HL7 v25, используя Java HAPI v2.3. Сообщение должно поддерживать несколько групп ORDER (профиль сообщения), но из-за неоднозначного определения последовательностей ORC/OBR в группах ORDER и ORDER_PRIOR при анализе простой строки HL7 синтаксический анализатор не может распознать несколько экземпляров групп ORDER, идентифицируя их как группы ORDER_PRIOR.

Я правильно смоделировал с использованием класса OML_O33, и для одной группы OML_O33_SPECIMEN было добавлено несколько групп OML_O33_ORDER.

Код: Выделить всё

OML_O33 omlO33;

...

omlO33.getSPECIMENAll().size()  // displays 1
omlO33.getSPECIMEN(0).getORDERAll().size()  // displays 2
Сообщение корректно сериализуется как строка HL7, как и ожидалось, например:

Код: Выделить всё

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
Сообщение проходит валидатор Gazelle IHE, но при преобразовании в строку и анализе «обратно» (с использованием стандартного PipeParser с DefaultHapiContext, предоставленным библиотекой) оно повторно интерпретируется с помощью одной группы ORDER и группы ORDER_PRIOR.

Код: Выделить всё

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
Я ожидал увидеть две группы ORDER и вообще не видеть группы ORDER_PRIOR.

Если я добавляю пустой сегмент FT1, чтобы «разрушить» двусмысленность, сообщение анализируется правильно (2 группы ORDER вместо 1), но это решение неприемлемо в моей системе.

Я бы предпочел избегать использования Terser для доступа к экземплярам сегментов ORC/OBR и полагаться на представление модели.>
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»