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

184 lines
5.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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: