maintenance: title: Set Heparin NurseOrders;; mlmname: FORM_Set_Heparin_Orders;; arden: version 2;; version: 4.50;; institution: St Clair Admissions;; author: Robert Spence, Eclipsys Corp Ext 7461;; specialist: Lisa Hancher, Eclipsys Corp ext SHOT;; date: 2008-05-20;; validation: testing;; library: purpose: Used for medication grids that holds heparin Scope 3 Heparin orderables in the Medication order grid Inj 1000 units / hr 1200 units / hr 2 ‘dud’ check boxes (A+B) added to order set form, set to false, displayed for testing, not displayed when activating Check box A will hold previous value of 1000 units / hr selected value Check box B will hold previous value of 1200 units / hr selected value 4 nursing instruction orderables in the Heparin Protocol Instrucitons, set to false On open: MLM will disable 4 nursing instructions. On Medication Grid change, MLM: Will check to see if A matches 1000 units, If it does, this field has not changed If it does not match, begin If it is true begin 1200 units gets disabled 4 nursing orders listed get checked. end If it is false begin 1200 units gets enabled 4 nursing orders get unchecked end Set A to 1000 units value after change end Else if B matches 1200 units, it does has not changed, do nothing If it does not match, begin If it is true begin 1000 units gets disabled 4 nursing orders listed get checked. end If it is false begin 1000 units gets enabled 4 nursing orders get unchecked end Set B to 1200 unit value after change end Allowed grouping of 3 fields Heparin inj 1000 units 12000 units False False False False False True False True False True False False True False True True True False ;; explanation: This MLM is called from the Patient Profile- Adult Admission Orders ;; keywords: Called MLMs, Respiratory ORder Set, Adult Admission ;; knowledge: type: data-driven;; data: // This MLM is passed three arguments, of types // communication_type, form_type and client info object respectively. (this_communication, // Communication object this_form, // Form object client_info_obj //Arden ClientInfo object ) := argument; /*******************Make Changes To Spelling And Flags In This Section*******************/ /* Set to true if a decision.log is needed.*/ log_execution_info := FALSE; /***************************************************************************************/ // Initialize error message error_message:=""; // Assigns fields passed in the Form object to the Field object field_list:= this_form.fields; CallingEvent := this_communication.CallingEvent; CallingField := this_communication.CallingFieldName; Mlt_Order_Line:= first of (field_list where field_list.DataItemName = "MultiOrderInline" and field_List.Control_MultiFieldOccNum = 1); Mlt_List := Mlt_Order_Line.Value; // Mlt_List.IsReadOnly := (True,True,True,True); // Mlt_SelList := Mlt_List.IsSelected; If CallingEvent = "FormOpen" then Mlt_List.IsReadOnly := (True,True,True,True); else PrevHep1000_Fld := last of (field_list where field_list.DataItemName = "MLM_CM 1"); PrevHep1000_Value := PrevHep1000_Fld.Value; PrevHep1200_Fld := last of (field_list where field_list.DataItemName = "MLM_CM 2"); PrevHep1200_Value := PrevHep1200_Fld.Value; Meds_fld := last of (field_list where field_list.DataItemName = "MultiOrderGrid" and field_List.Control_MultiFieldOccNum = 6); Meds_list :=Meds_fld.Value; Meds_Sel :=Meds_list.IsSelected; ListMembs:= count Meds_Sel; Meds_Read_1000 := (); Meds_Read_1200 := (); Meds_Read_None := (); for k in (1 seqto (ListMembs -2)) do Meds_Read_1000 := Meds_Read_1000 ,False; Meds_Read_1200 := Meds_Read_1200 ,False; Meds_Read_None := Meds_Read_None , False; enddo; Meds_Read_1000 := Meds_Read_1000 ,False,True; Meds_Read_1200 := Meds_Read_1200 ,True,False; Meds_Read_None := Meds_Read_None,False,False; Cur1000 := Last(First (ListMembs-1) from Meds_Sel); Cur1200 := Last(First (ListMembs) from Meds_Sel); If Cur1000 = PrevHep1000_Value then NoHarmNoFoul := True; Else If Cur1000 = True Then Meds_List.IsReadOnly := Meds_Read_1000; Mlt_List.IsSelected := (True,True,True,True); Else Meds_List.IsReadOnly := Meds_Read_None; Mlt_List.IsSelected := (False,False,False,False); endif; PrevHep1000_Fld.Value := Cur1000; endif; If Cur1200 = PrevHep1200_Value then NoHarmNoFoul := True; Else If Cur1200 = True Then Meds_List.ISReadOnly := Meds_Read_1200; Mlt_List.IsSelected := (True,True,True,True); Else Meds_List.IsReadOnly := Meds_Read_None; Mlt_List.IsSelected := (False,False,False,False); endif; PrevHep1200_Fld.Value := Cur1200; endif; endif; ;; evoke: // No evoke statement ;; logic: conclude true; ;; action: // This MLM returns two parameters, of types communication_type and form_type respectively. return this_communication, this_form; ;; end: