184 lines
5.7 KiB
Plaintext
184 lines
5.7 KiB
Plaintext
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:
|