maintenance: title: Form_Rituxin;; mlmname: Form_Rituxin ;; arden: version 2.5;; version: 6.10;; institution: SCH ;; author: Shivprasad Jadhav;; specialist: Shivprasad Jadhav, Allscripts;; date: 2016-02-02;; validation: testing;; library: purpose: Ø While opening of the Order items if the weight or height is not charted on the patient then pre -populate the message that weight / height needs to entered. Calucate the Dose for the patient on the basis of the value in the calculation field* BSA And round off to multiple of 5. Instruction/Comments whould change the value of 375 as per the dose value. ;; explanation: Change history 04.11.2017 TMS Changed MLM to be called from "Form_HoldOrder_RequestedTime" to keep calls on FormOpen from one {{{SINGLE-QUOTE}}}master{{{SINGLE-QUOTE}}} MLM, being done in preparation for using hidden default dosing CSR 35364. ;; keywords: ;; citations: ;; knowledge: type: data-driven;; data: standard_libs := MLM {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}}; include standard_libs; (this_communication, // Communication object this_form, // Form object client_info_obj //Arden ClientInfo object ) := argument; field_list:= this_form.Fields; Client_GUID := this_communication.ClientGUID; ClientVisit_GUID := this_communication.ClientVisitGUID; Chart_GUID := this_communication.ChartGUID; form_name := this_form.Name; CallingEvent := this_communication.CallingEvent; CallingField := this_communication.CallingFieldName; HtWtBSA := First of ( field_list where field_list.DataItemName = "CombinedMeasurements" And field_list.Control_MultiFieldOccNum = 1 ) ; Calculation := First of ( field_list where field_list.DataItemName = "PRX_Rituximab calcuation" And field_list.Control_MultiFieldOccNum = 1 ) ; Dose := First of ( field_list where field_list.DataItemName = "DosageLow" And field_list.Control_MultiFieldOccNum = 1 ) ; Instruction := First of ( field_list where field_list.DataItemName = "AdminInstructions" and field_list.Control_MultiFieldOccNum = 1 ) ; HtWtBSA_Val := HtWtBSA.Value.BSA ; Calc_Val :=Calculation.Value ; // check weight Value for Patient and Give warning message Wt := Read first {"Select text from CV3PhysicalNoteDeclaration With (Nolock) Where Typecode= {{{SINGLE-QUOTE}}}WEIGHT{{{SINGLE-QUOTE}}} " || " And ClientVisitGUID = " ||SQL(ClientVisit_GUID) || " " }; Ht := Read first {"Select text from CV3PhysicalNoteDeclaration With (Nolock) Where Typecode= {{{SINGLE-QUOTE}}}HEIGHT{{{SINGLE-QUOTE}}} " || " And ClientVisitGUID = " ||SQL(ClientVisit_GUID) || " " }; if ( CallingEvent = "FormOpen" ) then // Generic_MLM:= MLM {{{SINGLE-QUOTE}}}FORM_HOLDORDER_REQUESTEDTIME{{{SINGLE-QUOTE}}}; // this_communication,this_form := call Generic_MLM with this_communication,this_form,client_info_obj ; // To Pass Message fir Height weight If Wt is Null or Ht is Null or HtWtBSA_Val = 0 Then Void := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "\n Please enter a current weight/height for this patient" ,"Sunrise Clinical Manager", "OK" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}},"Warning" as {{{SINGLE-QUOTE}}}MessageBoxIcon{{{SINGLE-QUOTE}}}; EndIf; // Autopopulating Value in dose If (Wt is Not Null And Ht is not Null ) And HtWtBSA_Val Is Not 0 Then DoseVal := (HtWtBSA_Val As Number ) * ( Calc_Val As Number) ; DoseVal1 := Read Last {"Select Convert( Int, Round( "|| DoseVal || ", 0)) "}; RoundedDose := Read Last {" Select Convert(Int,(( "||DoseVal1 || " + 2.5)/5)) * 5 "}; //Read Last {" Select "|| DoseVal1 ||" + (5 - ( "|| DoseVal1 ||" % 5)) "}; Dose.Value := RoundedDose ; Instruction.Value := " Dose: "|| HtWtBSA_Val || " m2 x 375 mg/m2 " ; ElseIf HtWtBSA_Val = 0 Then Instruction.Value := ""; Endif ; Endif; if ( CallingEvent = "FieldChange" ) then //if this_communication.CallingFieldName in ("PRX_Rituximab calcuation","CombinedMeasurements") Then If (HtWtBSA_Val Is Not 0 ) And (Calc_Val is Not Null ) Then If CallingField = "DosageLow" Then DoseVal := (HtWtBSA_Val As Number) * ( Calc_Val As Number); DoseVal1 := Read Last {"Select Convert( Int, Round( "|| DoseVal || ", 0)) "}; //Dose.Value := DoseVal1 ; RoundedDose := Read Last {" Select Convert(Int,(( "||DoseVal1 || " + 2.5)/5)) * 5 "}; If Dose.Value = RoundedDose Then Dose.Value := (HtWtBSA_Val As Number) * ( Calc_Val As Number) ; Dose.Value := RoundedDose; //DoseVal1 ; Instruction.Value := " Dose: "|| HtWtBSA_Val || " m2 x 375 mg/m2 " ; Else Instruction.Value := ""; Endif; Else DoseVal := (HtWtBSA_Val As Number) * ( Calc_Val As Number) ; DoseVal1 := Read Last {"Select Convert( Int, Round( "|| DoseVal || ", 0)) "}; RoundedDose := Read Last {" Select Convert(Int,(( "||DoseVal1 || " + 2.5)/5)) * 5 "}; Dose.Value := RoundedDose ; Instruction.Value := " Dose: "|| HtWtBSA_Val || " m2 x 375 mg/m2 " ; Endif; ElseIf HtWtBSA_Val = 0 or Calc_Val is Null Then Instruction.Value := ""; Endif; EndIf; /// Form Onening Event End ;; priority: 50 ;; evoke: ;; logic: conclude true; ;; action: return this_communication, this_form; ;; Urgency: 50;; end: