используйте hapi parser 2.6 для более старых версий

Я получаю сообщения ORM_O01 от разных поставщиков. Ранее мы работали только с версией 2.3 и 2.6. Теперь мы получаем заказ с версией 2.5. И я не могу поддерживать 3 копируемых кода одновременно.

Можно ли обрабатывать все сообщения с пакетом ca.uhn.hl7v2.model.v26.? Все версии HL7 обратно совместимы, поэтому по логике я могу использовать v26 для разбора заказов со старыми версиями. В настоящее время мне удалось разобрать его как общее сообщение, но я понятия не имею, как с этим бороться. На первый взгляд будет проще написать собственный синтаксический анализатор, чем использовать общий API сообщений.


person degr    schedule 13.12.2018    source источник


Ответы (1)


Я нашел решение на веб-сайте HAPI - https://hapifhir.github.io/hapi-hl7v2/xref/ca/uhn/hl7v2/examples/HandlingMultipleVersions.html

         String v23Message = "hl7 message with version 2.3";
         HapiContext context = new DefaultHapiContext();
         CanonicalModelClassFactory mcf = new CanonicalModelClassFactory("2.5");
         context.setModelClassFactory(mcf);
         PipeParser parser = context.getPipeParser();

         ca.uhn.hl7v2.model.v25.message.ORU_R01 msg = (ca.uhn.hl7v2.model.v25.message.ORU_R01) parser.parse(v23message);
person degr    schedule 13.12.2018