2016-03-31 4 views
1

JavaでHL7メッセージを作成しようとしています。私は基本的な患者情報を偽って、薬物処方情報を追加しています。その後、完全なメッセージを印刷したいが、APIを正しく使用することができなかった。私はHL7を使用しているときに新しいです、私はおそらくいくつかの必要なセグメントが不足していることを知っていて、間違ったものを使用しても、あなたは助けてくださいできますか?これは私の現在のコードです:このコードでJavaでRXOセグメントを含む正しいHL7メッセージを作成します。

public RXO runDrugPrescriptionEvent(CMSGeneric cmsgen) { 

     CMSDrugPrescriptionEvent cmsic = (CMSDrugPrescriptionEvent) cmsgen; 

     ADT_A28 adt23 = new ADT_A28(); 

     try { 
      adt23.initQuickstart("ADT", "A08", cmsic.getPDE_EVENT_ID()); 

      // We set the sex identity (male or female) 
      if (cmsic.getBENE_SEX_IDENT_CD() == 1) { 
       adt23.getPID().getSex().setValue("Male"); 
      } 
      else { 
       adt23.getPID().getSex().setValue("Female"); 
      } 

      // We set a fake name and family name 
      adt23.getPID().insertPatientName(0).getGivenName().setValue("CMS Name " + MainTest.NEXT_PATIENT_ID); 
      adt23.getPID().insertPatientName(0).getFamilyName().setValue("CMS Family name " + MainTest.NEXT_PATIENT_ID); 
      MainTest.NEXT_PATIENT_ID++; 

      RXO rxo = new RXO(adt23, new DefaultModelClassFactory()); 
      rxo.getRxo1_RequestedGiveCode().getCe1_Identifier().setValue("" + cmsic.getPDE_DRUG_CD()); 
      rxo.getRxo18_RequestedGiveStrength().setValue("" + cmsic.getPDE_DRUG_STR_CD()); 
      rxo.getRxo19_RequestedGiveStrengthUnits().getCe1_Identifier().setValue("" + cmsic.getPDE_DRUG_STR_UNITS()); 
      rxo.getRxo5_RequestedDosageForm().getCe1_Identifier().setValue("" + cmsic.getPDE_DRUG_DOSE_CD()); 

      rxo.getRxo11_RequestedDispenseAmount().setValue("" + cmsic.getPDE_DRUG_QTY_DIS()); 

      HapiContext context = new DefaultHapiContext(); 
      Parser parser = context.getPipeParser(); 
      String encodedMessage = adt23.getParser().encode(rxo.getMessage()); 

      logger.debug("Printing Message:"); 
      logger.debug(encodedMessage); 

      return rxo; 
     } catch (IOException e) { 
      System.out.println("IOException creating HL7 message. " + e.getMessage()); 
      e.printStackTrace(); 
     } catch (HL7Exception e) { 
      System.out.println("HL7Exception creating HL7 message. " + e.getMessage()); 
      e.printStackTrace(); 
     } 

     return null; 
    }  

、ロガーは、次のようなメッセージ出力します

MSHを| ^〜\ & 0100 + 20160331101349.8 ||||| || ADT^A08 | 110001 | PDE-00001E6FADAD3F57 | 2.3 PID ||||| CMSファミリ名100〜^ CMS名100 |||女性

しかし、私は同様にRXOセグメントを参照してください期待していました。それをどうすれば実現できますか?

答えて

1

メッセージタイプをADT_A28からORP_O10に変更すると、ADT_A28は必要な情報の種類に適したメッセージではないため、必要なすべてのフィールドが表示されることがわかりました。このタイプのメッセージに大量のセグメントを設定する方法の完全な例があります。here次に、PipeParserを使用して完全なメッセージを印刷できました。

 HapiContext context = new DefaultHapiContext(); 
     Parser parser = context.getPipeParser(); 
     String encodedMessage = parser.encode(msg); 
     logger.debug("Printing EREncoded Message:"); 
     logger.debug(encodedMessage); 
関連する問題