如何在Hapi中将自定义段添加到现有消息组?

时间:2018-10-17 18:33:05

标签: java hl7 hapi hl7-v2

当前,我创建如下的PipeParser:

 private PipeParser createPipeParser() {
    final CanonicalModelClassFactory factory = new CanonicalModelClassFactory("2.5");
    HapiContext context = new DefaultHapiContext(factory);
    Parser parser = context.getPipeParser();
    return (PipeParser) parser;
}

如果我正在处理类似ADT_A01之类的东西以获取段,则可以这样做(并切出一些异常检查代码):

final MSH msh = (MSH) ((Group) message).get("MSH");

这很好,并且已经工作了很长时间了。但是,现在我希望能够解析我创建的自定义细分。我的细分与Hapi网站上的本示例中引用的ZPI细分非常相似:https://hapifhir.github.io/hapi-hl7v2/xref/ca/uhn/hl7v2/examples/CustomModelClasses.html

但是,当我尝试对没有ZZZ段的消息执行message.get("ZZZ")时,会收到以下错误消息:

ca.uhn.hl7v2.HL7Exception: ZZZ does not exist in the group ca.uhn.hl7v2.model.v25.message.ADT_A01

如果消息确实具有ZZZ段,并且我尝试将其强制转换为ZZZ,则会收到如下错误:

java.lang.ClassCastException: ca.uhn.hl7v2.model.GenericSegment cannot be cast to ca.uhn.hl7v2.custom.ZZZ

我在做什么错?如何将自定义细分与现有群组相关联?

编辑:由于我使用的是工厂,因此我意识到我的代码与示例稍有不同。我不想将GenericSegment用于预先存在的段(如MSH,PID等),因为那样我就不得不重写很多代码。

0 个答案:

没有答案