对旧版本使用hapi parser 2.6

时间:2018-12-13 12:53:59

标签: java hapi

我从各个供应商处收到ORM_O01消息。以前,我们仅使用2.3和2.6版本。现在,我们收到版本2.5的订单。而且我不能同时支持3个复制粘贴的代码。

是否可以使用ca.uhn.hl7v2.model.v26.包来处理所有消息?所有HL7版本都向后兼容,因此按逻辑,我可以使用v26解析旧版本的订单。目前,我能够将其解析为通用消息,但是我不知道如何处理它。乍一看,编写自己的解析器比使用通用消息API更容易。

1 个答案:

答案 0 :(得分:0)

我在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);