1

我无法从 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 细分市场的帖子。有人可以帮助我如何用一段代码来做到这一点。提前致谢

4

2 回答 2

2

首先,我必须指出 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 文档:http: //hl7api.sourceforge.net/v23/apidocs/index.html

于 2011-10-01T17:10:02.290 回答
1

基于此代码:

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();

于 2011-09-26T00:17:52.820 回答