Files
St.Clair/MLMStripper/bin/Debug/FORM/FORM_HYPOGLYCEMIA_PROTOCOL_ADULTS.mlm

252 lines
9.4 KiB
Plaintext

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: