Хапи включает в себя функцию синтаксического анализатора, который может анализировать конкретную версию HL7 на альтернативные версии:Hapi Переход от HL7 2.31 до HL7 2.5
HapiContext context = new DefaultHapiContext();
CanonicalModelClassFactory mcf = new CanonicalModelClassFactory("2.5");
context.setModelClassFactory(mcf);
PipeParser parser = context.getPipeParser();
parser.getParserConfiguration().setIdGenerator(new InMemoryIDGenerator());
context.getParserConfiguration().setValidating(false);
ADT_AXX axx = null;
try {
axx = (ADT_AXX) parser.parse(message.toString());
}
catch (HL7Exception e) {
log.warn("Exception parsing to AXX");
e.printStackTrace();
}
В версии 2.31 Участвуют врачи обменивались сообщениями в PV1.7-9. В 2.5 есть сегмент ROL, который содержит эту информацию. Моя проблема заключается в том, что анализатор Hapi, похоже, не анализирует PV1.7.9 в ROL. Я не думаю, что это правильное поведение? Любые рекомендации по поддержке оценены?
Какое сообщение вы разбираете и какое сообщение об ошибке вы получаете? Я не слишком много знаю о «hapi», но я бы попытался найти ответ в исходном коде, отвечающем за сопоставление сообщений, и я ожидаю, что там будут какие-то настраиваемые карты. Поскольку дольше существует протокол «hl7», он становится более динамичным и управляемым сообщением. BTW: Я не думаю, что на этом низком уровне библиотека должна притворяться, что видит что-то еще, а что там на самом деле. Обычно это бизнес некоторых слоев верхней абстракции. – xmojmr
Спасибо за ваш комментарий, однако я думаю, что ответ был более прямым, чем я предполагал. – skyman