Java HL7解析以获取ORC-2

Java HL7解析以获取ORC-2,java,hl7,hapi,Java,Hl7,Hapi,从ORM^O01订单消息中读取ORC-2字段时遇到问题。我正在使用HapiStructures-v23-1.2.jar进行读取,但此方法(getFillerOrdersNumber())返回空值 MSH|^~\\&|recAPP|20010|BIBB|HCL|20110923192607||ORM^O01|11D900220|D|2.3|1\r PID|1|11D900220|11D900220||TEST^FOURTYONE||19980808|M|||\r Z

从ORM^O01订单消息中读取ORC-2字段时遇到问题。我正在使用HapiStructures-v23-1.2.jar进行读取,但此方法(getFillerOrdersNumber())返回空值

    MSH|^~\\&|recAPP|20010|BIBB|HCL|20110923192607||ORM^O01|11D900220|D|2.3|1\r
    PID|1|11D900220|11D900220||TEST^FOURTYONE||19980808|M|||\r
    ZRQ|1|11D900220||CHARTMAXX TESTING ACCOUNT 2|||||||||||||||||Y\r

    ORC|NW|11D900220||||||||||66662^NOT INDICATED^X^^^^^^^^^^U|||||||||CHARTMAXX   
    TESTING ACCOUNT 2|^695 S.BROADWAY^DENVER^CO^80209\r

    OBR|1|11D900220||66^BHL, 9P21 GENOTYPE^L|NORMAL||20110920001800|
    ||NOTAVAILABLE|N||Y|||66662^NOT INDICATED^X^^^^^^^^^^U\r
我想解析此消息并读取ORC-2字段并将其保存在数据库中

    public static string getOrderNumber(){
         Message hapiMsg = null;
         Parser p = new GenericParser();
         p.setValidationContext(null);
         try {
            hapiMsg = p.parse(hl7Message);
         } catch (Exception e) {
            Logger.error(e);
         }

             Terser terser = new Terser(hapiMsg);
         try {
            ORM_O01 getOrc = (ORM_O01)hapiMsg;
            ORC orc = new ORC(getOrc, null);
            String fn= orc.getFillerOrderNumber().toString();
         }catch(Exception e){
            logger.error(e);
         }
         return fn;
    }
我在一些帖子中读到,我必须通过阶梯才能到达ORC OBR和NTE部分。有人能帮我用一段代码做这个吗。提前感谢

基于此代码:

ORM_O01 getOrc = (ORM_O01)hapiMsg;
ORC orc = new ORC(getOrc, null);
String fn= orc.getFillerOrderNumber().toString();
看起来您正在创建一个新的
ORC
,而不是从消息中取出现有的。不幸的是,我不能提供确切的代码,因为我只熟悉HL7,不熟悉HAPI


编辑:看起来您可以执行
ORC-ORC=getOrc.getORDER().getOrc()

首先,我必须指出ORC-2是Placer订单号,ORC-3是Filler订单号,而不是相反。所以,您可能想做的是:

ORM_O01 msg = ... 
ORC orc = msg.getORDER().getORC();
String placerOrderNumber =
    orc.getPlacerOrderNumber().getEntityIdentifier().getValue();
String fillerOrderNumber =
    orc.getFillerOrderNumber().getEntityIdentifier().getValue();

我建议您自己阅读Hapi文档:

您可以发布HL7消息示例吗?此外,为了便于人们提供帮助,您应该尝试发布一段完整的代码(例如,带有main的类),请注意代码不能粗体。希望这现在没有什么意义。谢谢:)我继续添加了一个标签,显然直到现在才存在。嘿,汗,看起来我差不多完成了。但最后一件事。它正在返回数据类型EI。你能帮我把EI转换成字符串吗。我尝试了EI.toString()没有返回正确的内容在这里我尝试了orc.getOrc2\u placeordernumber(0)。toString()返回了[Lca.uhn.hl7v2.model.Type;@ffeef1.如何从中获得价值。恐怕你只能靠自己了-我不与HAPI合作,所以我对数据类型一无所知。如果你还没有,我只能说查看网站上的文档。祝你好运。