maintenance: title: FORM_HYPOGLYCEMIA_PROTOCOL_ADULTS;; mlmname: FORM_HYPOGLYCEMIA_PROTOCOL_ADULTS;; arden: version 2.5;; version: 6.10;; institution: St. Clair Hospital ;; author: Shivprasad Jadhav;; specialist: Shivprasad Jadhav, Allscripts;; date: 2015-02-23;; validation: testing;; library: purpose: Change History ============================================ 20-04-2015 CSR-33068 : Created Scenario 1 : When user selects/deselects Nursing instruction of patients with gastric bypass then IV of D5W and nursing to physician notification of " after administration of IV of D5W at 80ml/hours , call physician for furthur orders." gets automatically selected/deselected. Scenario 2 : User should also be able to select /deselect manually IV of D5W and when done so nursing to physician notification of " after administration of IV of D5W at 80ml/hours , call physician for furthur orders." should be pre selected/deselected as that is needed for blood sugar <=39mg/dl. Scenario 3 : When scernario 2 is done , i.e. IV d5w is selected/deselected ,then nursing instruction of patient with gastric bypass should not get pre selected/ deselected.;; explanation: ;; keywords: ;; citations: ;; knowledge: type: data-driven;; data: ( this_communication, // Communication object this_form, // Form object client_info_obj //Arden ClientInfo object ) := argument; field_list:= this_form.Fields; CallingEvent := this_communication.CallingEvent; CallingField := this_communication.CallingFieldName; Nursing_Instruction := last of ( field_list WHERE field_list.DataItemName = "MultiOrderInline" and field_list.Control_MultiFieldOccNum = 5 ); Nurs_Instr_WotGBypass := last of ( field_list WHERE field_list.DataItemName = "MultiOrderInline" and field_list.Control_MultiFieldOccNum = 2 ); Nursing_Instruction4 := last of ( field_list WHERE field_list.DataItemName = "MultiOrderInline" and field_list.Control_MultiFieldOccNum = 4 ); Nursing_Instruction6 := last of ( field_list WHERE field_list.DataItemName = "MultiOrderInline" and field_list.Control_MultiFieldOccNum = 6 ); IV_Fluid := last of ( field_list WHERE field_list.DataItemName = "MultiOrderGrid" and field_list.Control_MultiFieldOccNum = 50 ); Nursing_Phy_Notification := last of ( field_list WHERE field_list.DataItemName = "MultiOrderGrid" and field_list.Control_MultiFieldOccNum = 55 ); Medication := last of ( field_list WHERE field_list.DataItemName = "MultiOrderGrid" and field_list.Control_MultiFieldOccNum = 56 ); Nursing_Instruction_CHK :=Nursing_Instruction.Value; IV_Fluid_Value := IV_Fluid.Value ; Nursing_Phy_Notification_Val := Nursing_Phy_Notification.Value; Medication_Val := Medication.Value; Nursing_Instr2_CHK := Nurs_Instr_WotGBypass.Value ; // *********** Objects for first flow ************* CHKBOX_Nursing := first of (Nursing_Instruction_CHK where Nursing_Instruction_CHK.Name = "Nursing Instructions"); GR_D5W_1000 := first of (IV_Fluid_Value where IV_Fluid_Value.Name = "D5W 1000ml"); // D5W 1000ml GR_Nursing_To_Phy := Nursing_Phy_Notification_Val[2]; // "Nursing To Physician Notification" GR_Dextrose_50 := Medication_Val[3]; // "Dextrose 50 %" //========================================================================================================= if ( CallingEvent = "FieldChange" ) then if ( CallingField = "MultiOrderInline|5" or CallingField = "MultiOrderInline|2" ) then Inline1 :=1; Inline2 :=1; if ( CallingEvent = "FieldChange" ) then if ( CallingField = "MultiOrderInline|5") then if ( true IN CHKBOX_Nursing.IsSelected ) then GR_D5W_1000.IsSelected := true; GR_Nursing_To_Phy.IsSelected := true ; GR_D5W_1000.IsReadonly := true; GR_Nursing_To_Phy.IsReadonly := true ; Inline1 := 100 ; endif; endif; endif; if ( CallingEvent = "FieldChange" ) then if ( CallingField = "MultiOrderInline|5") then if ( False IN CHKBOX_Nursing.IsSelected ) then //If CHKBOX_Nursing.IsSelected = False And GR_D5W_1000.IsReadonly = true And GR_Nursing_To_Phy.IsReadonly = true And CHKBOX_Nursing.IsSelected = False Then /* GR_D5W_1000.IsSelected := False; GR_Nursing_To_Phy.IsSelected := False ; GR_D5W_1000.IsReadonly := False; GR_Nursing_To_Phy.IsReadonly := False ; */ Inline1 := 111 ; //Endif; endif; endif; endif; // Third flow ****************************************************************************** //CHKBOX_Nursing := Nursing_Instruction_CHK.Records__; //first of (Nursing_Instruction_CHK Where Nursing_Instruction_CHK.value =""); CHKBOX_Nursing1 := first of (Nursing_Instr2_CHK where Nursing_Instr2_CHK.Name = "Nursing Instructions"); if ( CallingEvent = "FieldChange" ) then if ( CallingField = "MultiOrderInline|2") then if ( true IN CHKBOX_Nursing1.IsSelected ) then GR_D5W_1000.IsSelected := true; GR_Dextrose_50.IsSelected := true ; GR_Nursing_To_Phy.IsSelected := true ; GR_D5W_1000.IsReadonly := true; GR_Dextrose_50.IsReadonly := true ; GR_Nursing_To_Phy.IsReadonly := true ; Inline2 := 100 ; endif; endif; endif; if ( CallingEvent = "FieldChange" ) then if ( CallingField = "MultiOrderInline|2") then if ( False IN CHKBOX_Nursing1.IsSelected ) then //If CHKBOX_Nursing1.IsSelected = False And GR_D5W_1000.IsReadonly = true And GR_Nursing_To_Phy.IsReadonly = true And GR_Dextrose_50.IsReadonly = False And CHKBOX_Nursing.IsSelected = False Then /* GR_D5W_1000.IsSelected := False; GR_Dextrose_50.IsSelected := False ; GR_Nursing_To_Phy.IsSelected := False ; GR_D5W_1000.IsReadonly := False; GR_Dextrose_50.IsReadonly := False ; GR_Nursing_To_Phy.IsReadonly := False ; */ Inline2 := 111 ; //endif; endif; endif; endif; If ( Inline1 =111 And Inline2 =111 ) or ( CHKBOX_Nursing.IsSelected = False And Inline2 =111 ) Then GR_D5W_1000.IsSelected := False; GR_Dextrose_50.IsSelected := False ; GR_Nursing_To_Phy.IsSelected := False ; GR_D5W_1000.IsReadonly := False; GR_Dextrose_50.IsReadonly := False ; GR_Nursing_To_Phy.IsReadonly := False ; Inline1 :=1 ; Inline2 :=1 ; ElseIf ( CHKBOX_Nursing.IsSelected = True And Inline2 = 111 ) Then GR_Dextrose_50.IsSelected := False ; GR_Dextrose_50.IsReadonly := False; Inline2 := 1; ElseIf ( CHKBOX_Nursing.IsSelected = False And CHKBOX_Nursing1.IsSelected = False )or ( Inline1 =111 And CHKBOX_Nursing1.IsSelected = False ) Then GR_D5W_1000.IsSelected := False; GR_Nursing_To_Phy.IsSelected := False ; GR_D5W_1000.IsReadonly := False; GR_Nursing_To_Phy.IsReadonly := False ; Inline1 := 1 ; //ElseIf Endif; Endif; Endif; // Second flow ****************************************************************************** If GR_D5W_1000.IsSelected = true Then GR_Nursing_To_Phy.IsSelected := true ; GR_Nursing_To_Phy.IsReadonly := true ; Endif; If GR_D5W_1000.IsSelected = False And GR_Nursing_To_Phy.IsReadonly = true Then GR_Nursing_To_Phy.IsSelected := False ; GR_Nursing_To_Phy.IsReadonly := False ; Endif; // fourth Flow ************************************************************************ GR2_Dextrose_50 := Medication_Val[2]; // "Dextrose 50 %" Nursing_Instruction4_CHK :=Nursing_Instruction4.Value; B := Nursing_Instruction4_CHK[2]; CHKBOX_Nursing4 := Last of (Nursing_Instruction4_CHK where Nursing_Instruction4_CHK.Name = "Nursing Instructions"); if ( CallingEvent = "FieldChange" ) then if ( CallingField = "MultiOrderInline|4") then if ( true IN CHKBOX_Nursing4.IsSelected ) then GR2_Dextrose_50.IsSelected := True ; GR2_Dextrose_50.IsReadonly := True ; endif; endif; endif; if ( CallingEvent = "FieldChange" ) then if ( CallingField = "MultiOrderInline|4") then if ( False IN CHKBOX_Nursing4.IsSelected ) then GR2_Dextrose_50.IsSelected := False ; GR2_Dextrose_50.IsReadonly:= False ; endif; endif; endif; // Fifth Flow ************************************************************************************** GR1_Dextrose_50 := Medication_Val[1]; // "Dextrose 50 %" Nursing_Instruction6_CHK :=Nursing_Instruction6.Value; C := Nursing_Instruction6_CHK[2]; CHKBOX_Nursing6 := Last of (Nursing_Instruction6_CHK where Nursing_Instruction6_CHK.Name = "Nursing Instructions"); if ( CallingEvent = "FieldChange" ) then if ( CallingField = "MultiOrderInline|6") then if ( true IN CHKBOX_Nursing6.IsSelected ) then GR1_Dextrose_50.IsSelected := True ; GR1_Dextrose_50.IsReadonly := True ; endif; endif; endif; if ( CallingEvent = "FieldChange" ) then if ( CallingField = "MultiOrderInline|6") then if ( False IN CHKBOX_Nursing6.IsSelected ) then GR1_Dextrose_50.IsSelected := False ; GR1_Dextrose_50.IsReadonly:= False ; endif; endif; endif; ;; priority: 50 ;; evoke: ;; logic: conclude true; ;; action: return this_communication, this_form; ;; Urgency: 50;; end: