sample 15 prescription - mbot-dev/1000_builder GitHub Wiki

5-15. 処方箋

データ形式 エンドポイント
simplePrescription /mml/api/v1/prescription
// 処方せん
var postPrescription = function (callback) {

    // simplePrescription
    var simplePrescription = {
        medication: []                                  // 処方の配列
    };

    // 服薬開始日(デモなので現在時刻)
    var startDate = dateAsString(new Date());           // YYYY-MM-DD形式

    // 処方1
    var med1 = {
        issuedTo: 'external',                           // 院外処方の場合はexternal、院内処方の場合はinternalを指定する(オプション)
        medicine: 'マーズレン S 顆粒',                    // 処方薬名称
        medicineCode: '612320261',                      // 処方薬のコード
        medicineCodeSystem: 'YJ',                       // コード体系
        dose: 1,                                        // 数量
        doseUnit: 'g',                                  // 単位
        frequencyPerDay: 2,                             // 1日の内服回 数総量のみが記載される外用剤などの場合には省略可(オプション)
        startDate: startDate,                           // 服薬開始日 YYYY-MM-DD(オプション)
        duration: daysAsDuration(30),                   // 30日分 P数値D で記述する(オプション)
        instruction: '内服2回 朝夜食後に',                 // 用法(オプション)
        PRN: false,                                     // 頓用の時 true(オプション)
        brandSubstitutionPermitted: true,               // ジェネリック医薬品への代替可 可の時true、省略時は可とみなす(オプション)
        longTerm: false                                 // 長期処方の時true、短期であればfalse(オプション)
    };

    // 処方2
    var med2 = {
        issuedTo: 'external',                           // 院外処方の場合はexternal、院内処方の場合はinternalを指定する(オプション)
        medicine: 'メトリジン錠 2 mg',                    // 処方薬名称
        medicineCode: '612160027',                      // 処方薬のコード
        medicineCodeSystem: 'YJ',                       // コード体系
        dose: 2,                                        // 数量
        doseUnit: '錠',                                 // 単位
        frequencyPerDay: 2,                             // 1日の内服回数 数総量のみが記載される外用剤などの場合には省略可(オプション)
        startDate: startDate,                           // 服薬開始日 YYYY-MM-DD(オプション)
        duration: daysAsDuration(30),                   // 30日分 P数値D で記述する(オプション)
        instruction: '内服2回 朝夜食後に',                 // 用法(オプション)
        PRN: false,                                     // 頓用の時 true(オプション)
        brandSubstitutionPermitted: false,              // ジェネリック医薬品への代替可 可の時true、省略時は可とみなす(オプション)
        longTerm: true                                  // 長期処方の時true、短期であればfalse(オプション)
    };
    // 処方3
    var med3 = {
        issuedTo: 'external',                           // 院外処方の場合はexternal、院内処方の場合はinternalを指定する(オプション)
        medicine: 'ジクロフェナクnaゲル',                  // 処方薬名称
        medicineCode: '612320261',                      // 処方薬のコード
        medicineCodeSystem: 'YJ',                       // コード体系
        dose: 50,                                        // 数量
        doseUnit: 'g',                                  // 単位
        startDate: startDate,                           // 服薬開始日 YYYY-MM-DD(オプション)
        instruction: '左膝に塗布',                        // 用法(オプション)
        PRN: true,                                     // 頓用の時 true(オプション)
        repetitions: 10,
        brandSubstitutionPermitted: true              // ジェネリック医薬品への代替可 可の時true、省略時は可とみなす(オプション)
    };
    // 配列へ追加
    simplePrescription.medication.push(med1);
    simplePrescription.medication.push(med2);
    simplePrescription.medication.push(med3);

    // コンポジションを生成
    var simpleComposition = {                   // POSTする simpleComposition
        context: {                              // context: 処方された時の文脈
            uuid: generateUUID(),               // UUID
            confirmDate: confirmDate(),         // 確定日時 YYYY-MM-DDTHH:mm:ss
            patient: simplePatient,             // 対象患者
            creator: simpleCreator,             // 担当医師
            accessRight: simpleRight            // アクセス権
        },
        content: [simplePrescription]           // content: 臨床データ=処方せん
    };

    //------------------------------------------------------------------
    // 処方箋のタイトルと生成目的を設定する
    //------------------------------------------------------------------
    simpleComposition.context.title = '処方箋';
    simpleComposition.context.generationPurpose = 'prescription';  // MML007

    //------------------------------------------------------------------
    // 共通設定 患者とcreatorに自施設の情報を設定する
    //------------------------------------------------------------------
    simpleComposition.context.patient.facilityId = simpleFacility.id;
    simpleComposition.context.creator.facility = simpleFacility;
    //------------------------------------------------------------------

    // POST
    post('prescription', simpleComposition, function (err, mml) {
        // コールバック
        callback(err, simpleComposition, mml);
    });

    /***********************************************************
    リモートプロシジャーコール(JSON-RPC2.0)を使用する場合

    contextに contentType = 'prescription' の属性を設定する
    simpleComposition.context.contentType = 'prescription';

    rpc(simpleComposition, function (err, mml) {
        callback(err, simpleComposition, mml);
    });
    ***********************************************************/

};