Вопрос

Я пытаюсь использовать Хапи Для анализа сообщений HL7 (v2.3), сгенерированных внешней системой. Эти сообщения включают пользовательские сегменты Z, включая второй сегмент сообщения (между MSH и EVN).

MSH
Z
EVN
...

Проблема заключается в том, что для любых сегментов проанализировано после встречи с этим первым сегментом Z, HAPI будет генерировать структуру сообщения, но все данные в этой структуре являются нулевыми. Итак, у меня все еще будет объект сегмента EVN, но в нем не будет никаких данных.

Я пытался:

  • Ничего, просто проанализируйте сообщение с необоснованным HAPI и игнорируйте этот сегмент
  • Расширение HAPI, создав мои собственные классы сообщений ADT (расширение классов по умолчанию), подключаясь в сегменте Z с:
    • addnonstandardsegment ()
    • add () с помощью пользовательской реализации абстрактного разбора

Мой текущий обходной путь состоит в том, чтобы предварительно перенаправить сообщение до того, как HAPI получит его и вырезает этот сегмент, но это определенно неправильный подход. У кого -нибудь есть идеи о том, что я должен делать?

Это было полезно?

Решение

Понятно. Оказывается, что из-за внеклассного Z-сегмента (подробнее об этом ниже), объект EVN был каталогизирован внутренне как «evn2», и был добавлен второй пустой EVN. Я не совсем уверен Почему код вел себя таким образом, но я воспользуюсь этим в отчете о выпуске в проекте HAPI.

Обходной путь состоит в том, чтобы изменить расширение сообщения ADT. Вместо того, чтобы расширить его и добавлять Z-сегмент с этим. ADD () в моем конструкторе подкласса, мне пришлось скопировать исходный класс ADT_A* и изменить его метод init (), чтобы добавить класс сегмента Z в соответствующий заказ в качестве ожидаемого сообщение.

Кстати, предыдущий обходной путь, который я упомянул, можно сделать с помощью Подклассный анализатор, который действителен для исправления сломанных сообщений - только не этот, так как он не «сломан» как таковой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top