1

Java で HL7 メッセージを作成し、結果のメッセージを出力しようとしています。患者の基本情報を偽造し、処方箋情報を追加しています。次に、完全なメッセージを出力したいのですが、API を正しく使用できませんでした。私は 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|^~\&|||||20160331101349.8+0100||ADT^A08|110001|PDE-00001E6FADAD3F57|2.3 PID|||||CMSファミリーネーム100~^CMSネーム100|||女性

しかし、RXO セグメントも見られると思っていました。どうすればそれを達成できますか?

4

1 に答える 1

1

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

        HapiContext context = new DefaultHapiContext();
        Parser parser = context.getPipeParser();
        String encodedMessage =  parser.encode(msg);
        logger.debug("Printing EREncoded Message:");
        logger.debug(encodedMessage);
于 2016-03-31T12:14:59.623 に答える