Разбор HL7 для получения ORC-2 - PullRequest
       24

Разбор HL7 для получения ORC-2

1 голос
/ 25 сентября 2011

У меня проблемы с чтением поля ORC-2 из сообщения заказа ORM ^ O01. Я использую 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. Может ли кто-нибудь помочь мне, как сделать это с помощью кода. Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 01 октября 2011

Сначала я должен указать, что ORC-2 - это номер заказа на размещение, а ORC-3 - это номер заказа на заполнение, а не наоборот. Итак, что вы можете сделать, это:

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

Я бы предложил вам самостоятельно прочитать документацию по хапи: http://hl7api.sourceforge.net/v23/apidocs/index.html

1 голос
/ 26 сентября 2011

На основе этого кода:

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

...