Initial Checking with all 820 MLMs
This commit is contained in:
283
MLMStripper/bin/Debug/FORM/FORM_SET_DELIRIUM_ORDERS.mlm
Normal file
283
MLMStripper/bin/Debug/FORM/FORM_SET_DELIRIUM_ORDERS.mlm
Normal file
@@ -0,0 +1,283 @@
|
||||
maintenance:
|
||||
|
||||
title: FORM_SET_DELIRIUM_ORDERS;;
|
||||
mlmname: FORM_SET_DELIRIUM_ORDERS;;
|
||||
arden: version 2.5;;
|
||||
version: 6.10;;
|
||||
institution: St Clair Hospital;;
|
||||
author: Juliet M. Law, Allscripts ;;
|
||||
specialist: Robert Stewart, Allscripts;;
|
||||
date: 2015-02-04;;
|
||||
validation: testing;;
|
||||
|
||||
library:
|
||||
purpose: Require EKG ordered when Haliperidol IV is ordered based on date of last test.
|
||||
;;
|
||||
|
||||
explanation: This MLM is called from Delirium order set. If patient has not had an EKG in the last 10 days, require it be ordered
|
||||
with Haliperidol IV order.
|
||||
|
||||
Change history
|
||||
2015.02.04 JML CSR 32828: Created
|
||||
2014.04.28 JML Copied to Production
|
||||
2018.05.15 DW CSR# 36322 Delerium OS changes
|
||||
|
||||
;;
|
||||
keywords: Called MLMs, Haliperidol, EKG
|
||||
;;
|
||||
knowledge:
|
||||
type: data-driven;;
|
||||
data:
|
||||
|
||||
|
||||
//Includes and Called MLMs
|
||||
standard_libs := mlm {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
|
||||
include standard_libs;
|
||||
|
||||
generic_mlm := MLM {{{SINGLE-QUOTE}}}FORM_SET_GENERIC_ITEM_CONTROL{{{SINGLE-QUOTE}}};
|
||||
// ordrmgt_mlm := MLM {{{SINGLE-QUOTE}}}FORM_SET_RX_MEDICATION_ORDER_MGT{{{SINGLE-QUOTE}}};
|
||||
|
||||
(this_communication,this_form,client_info_obj) := argument;
|
||||
|
||||
log_execution_info := FALSE;
|
||||
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;
|
||||
ClientGuid := this_communication.ClientGUID;
|
||||
ClientVisitGuid := this_communication.ClientVisitGUID;
|
||||
ChartGuid := this_communication.ChartGUID;
|
||||
FormName := this_form.Name;
|
||||
PrimaryObjDetail := this_communication.PrimaryObj;
|
||||
OrderSetName := PrimaryObjDetail.OrderSetName;
|
||||
|
||||
// Form Fields
|
||||
|
||||
ScheduledMeds := last of (field_list WHERE field_list.DataItemName = "MultiOrderGrid" AND field_list.Control_MultiFieldOccNum = 17); // Pharmacy Scheduled Medications
|
||||
ScheduledMeds_List := ScheduledMeds.Value;
|
||||
|
||||
HaldolIVMed := last of (field_list WHERE field_list.DataItemName = "MultiOrderGrid" AND field_list.Control_MultiFieldOccNum = 11); // Pharmacy PRN IV Medication - Haloperidol
|
||||
HaldolIVMed_List := HaldolIVMed.Value;
|
||||
|
||||
HaldolPRNMed := last of (field_list WHERE field_list.DataItemName = "MultiOrderGrid" AND field_list.Control_MultiFieldOccNum = 8); // Pharmacy PRN Medication - Haloperidol
|
||||
HaldolPRNMed_List := HaldolPRNMed.Value;
|
||||
|
||||
NonHaldolPRNMed := last of (field_list WHERE field_list.DataItemName = "MultiOrderGrid" AND field_list.Control_MultiFieldOccNum = 14); // Pharmacy PRN Medication - Non-Haloperidol
|
||||
NonHaldolPRNMed_List:= NonHaldolPRNMed.Value;
|
||||
|
||||
EKGLab := last of (field_list WHERE field_list.DataItemName = "MultiOrderGrid" AND field_list.Control_MultiFieldOccNum = 4); // Cardiology
|
||||
EKGLab_List := EKGLab.Value;
|
||||
|
||||
Nur_Instr2 := last of ( field_list WHERE field_list.DataItemName = "MultiOrderInline" AND field_list.Control_MultiFieldOccNum = 1); // Nurse Instructions
|
||||
Nur_Instr2_List := Nur_Instr2.Value;
|
||||
|
||||
isHaldolIVSelected := last of (HaldolIVMed_List.IsSelected);
|
||||
isHaldolPRNSelected := last of (HaldolPRNMed_List.IsSelected);
|
||||
isNoNHaldolPRNSelected:= last of (NonHaldolPRNMed_List.IsSelected);
|
||||
isEKGSelected := last of (EKGLab_List.IsSelected);
|
||||
|
||||
|
||||
|
||||
// Field Change Event
|
||||
|
||||
|
||||
|
||||
if CallingEvent = "FieldChange"
|
||||
|
||||
then
|
||||
|
||||
// Cardiology
|
||||
|
||||
if CallingField = "MultiOrderGrid|4"
|
||||
|
||||
then
|
||||
|
||||
// If EKG Daily order has been selected, select the Daily Nursing Order
|
||||
|
||||
for i IN 1 seqto count EKGLab.Value do
|
||||
GridItem := EKGLab.Value[i];
|
||||
if i = 2
|
||||
then
|
||||
If GridItem.IsSelected = true
|
||||
then
|
||||
EKGLab.Value[3].IsSelected := true; // Daily Orders
|
||||
else
|
||||
EKGLab.Value[3].IsSelected := false; // Daily Orders
|
||||
endif;
|
||||
endif;
|
||||
enddo;
|
||||
|
||||
|
||||
// Determine if Haldol IV Push Scheduled has been selected
|
||||
|
||||
isHaldolSchMedSelected := false;
|
||||
|
||||
for i IN 1 seqto count ScheduledMeds.Value do
|
||||
SchedMedOrder := ScheduledMeds.Value[i];
|
||||
if SchedMedOrder.Name = "Haloperidol Inj" and SchedMedOrder.IsSelected = true then isHaldolSchMedSelected := true; endif;
|
||||
enddo;
|
||||
|
||||
|
||||
if isHaldolIVSelected = true or isHaldolSchMedSelected = true
|
||||
then
|
||||
EKGLab_List.IsSelected := true;
|
||||
endif;
|
||||
|
||||
|
||||
|
||||
// Pharmacy Secheduled Medication
|
||||
|
||||
|
||||
elseif CallingField = "MultiOrderGrid|17"
|
||||
|
||||
then
|
||||
|
||||
|
||||
//Call Generic MLM
|
||||
(this_communication, this_form) := CALL generic_mlm WITH this_communication, this_form, client_info_obj;
|
||||
|
||||
// Determine if the Haldol IV Scheduled Med is selected
|
||||
|
||||
isHaldolSchMedSelected := false;
|
||||
|
||||
for i IN 1 seqto count ScheduledMeds.Value do
|
||||
SchedMedOrder := ScheduledMeds.Value[i];
|
||||
if SchedMedOrder.Name = "Haloperidol Inj" and SchedMedOrder.IsSelected = true then isHaldolSchMedSelected := true; endif;
|
||||
enddo;
|
||||
|
||||
// If no Haldol IV (prn or sched) is selected de-select the Nurse Instructions order, EKG Daily Order ann Nursing Daily Orders
|
||||
|
||||
if isHaldolIVSelected = false and isHaldolSchMedSelected = false
|
||||
then
|
||||
Nur_Instr2_List.IsSelected := false; // Nursing Instructions
|
||||
EKGLab.Value[2].IsSelected := false; // EKG Daily
|
||||
EKGLab.Value[3].IsSelected := false; // Daily Orders
|
||||
else
|
||||
Nur_Instr2_List.IsSelected := true; // Nursing Instructions
|
||||
EKGLab.Value[2].IsSelected := true; // EKG Daily
|
||||
EKGLab.Value[3].IsSelected := true; // Daily Orders
|
||||
endif;
|
||||
|
||||
|
||||
// Pharmacy PRN Medication - Non-Haloperidol
|
||||
|
||||
|
||||
elseif CallingField = "MultiOrderGrid|14"
|
||||
|
||||
then
|
||||
|
||||
SomethingIsSelected := false;
|
||||
|
||||
// Determine if Something has been selected
|
||||
|
||||
for i IN 1 seqto count NonHaldolPRNMed.Value do
|
||||
GridItem := NonHaldolPRNMed.Value[i];
|
||||
if GridItem.IsSelected = true then SomethingIsSelected:= true; SelectedGridNumber := i; endif;
|
||||
enddo;
|
||||
|
||||
// Make the other orders in this grid read-only
|
||||
|
||||
for i IN 1 seqto count NonHaldolPRNMed.Value do
|
||||
if i <> SelectedGridNumber then NonHaldolPRNMed.Value[i].IsReadonly := true; endif;
|
||||
enddo;
|
||||
|
||||
if SomethingIsSelected = true
|
||||
then
|
||||
HaldolPRNMed_List.IsSelected := false;
|
||||
HaldolPRNMed_List.IsReadonly := true;
|
||||
HaldolIVMed_List.IsSelected := false;
|
||||
HaldolIVMed_List.IsReadonly := true;
|
||||
else
|
||||
HaldolPRNMed_List.IsReadonly := false;
|
||||
HaldolIVMed_List.IsReadonly := false;
|
||||
NonHaldolPRNMed_List.IsReadonly := false;
|
||||
endif;
|
||||
|
||||
|
||||
// Pharmacy PRN Medication
|
||||
|
||||
|
||||
elseif CallingField = "MultiOrderGrid|8"
|
||||
|
||||
|
||||
then
|
||||
|
||||
SomethingIsSelected := false;
|
||||
|
||||
for i IN 1 seqto count HaldolPRNMed.Value do
|
||||
GridItem := HaldolPRNMed.Value[i];
|
||||
if GridItem.IsSelected = true then SomethingIsSelected:= true; endif;
|
||||
enddo;
|
||||
|
||||
if SomethingIsSelected = false and isHaldolIVSelected = false
|
||||
then
|
||||
NonHaldolPRNMed_List.IsReadonly := false;
|
||||
else
|
||||
NonHaldolPRNMed_List.IsReadonly := true;
|
||||
endif;
|
||||
|
||||
|
||||
// Pharmacy PRN IV Medication
|
||||
|
||||
|
||||
elseif CallingField = "MultiOrderGrid|11"
|
||||
|
||||
then
|
||||
|
||||
SomethingIsSelected := false;
|
||||
|
||||
for i IN 1 seqto count HaldolIVMed.Value do
|
||||
GridItem := HaldolIVMed.Value[i];
|
||||
if GridItem.IsSelected = true then SomethingIsSelected:= true; endif;
|
||||
enddo;
|
||||
|
||||
if SomethingIsSelected = false and isHaldolPRNSelected = false
|
||||
then
|
||||
NonHaldolPRNMed_List.IsReadonly := false;
|
||||
else
|
||||
NonHaldolPRNMed_List.IsReadonly := true;
|
||||
endif;
|
||||
|
||||
|
||||
// Determine if the Haldol IV Scheduled Med is selected
|
||||
|
||||
isHaldolSchMedSelected := false;
|
||||
|
||||
for i IN 1 seqto count ScheduledMeds.Value do
|
||||
SchedMedOrder := ScheduledMeds.Value[i];
|
||||
if SchedMedOrder.Name = "Haloperidol Inj" and SchedMedOrder.IsSelected = true then isHaldolSchMedSelected := true; endif;
|
||||
enddo;
|
||||
|
||||
// If no Haldol IV (prn or sched) is selected de-select the Nurse Instructions order, EKG Daily Order ann Nursing Daily Orders
|
||||
|
||||
if isHaldolIVSelected = false and isHaldolSchMedSelected = false
|
||||
then
|
||||
Nur_Instr2_List.IsSelected := false; // Nursing Instructions
|
||||
EKGLab.Value[2].IsSelected := false; // EKG Daily
|
||||
EKGLab.Value[3].IsSelected := false; // Daily Orders
|
||||
else
|
||||
Nur_Instr2_List.IsSelected := true; // Nursing Instructions
|
||||
EKGLab.Value[2].IsSelected := true; // EKG Daily
|
||||
EKGLab.Value[3].IsSelected := true; // Daily Orders
|
||||
endif;
|
||||
|
||||
|
||||
endif;
|
||||
|
||||
|
||||
endif;
|
||||
|
||||
|
||||
;;
|
||||
evoke:
|
||||
;;
|
||||
logic:
|
||||
|
||||
conclude true;
|
||||
;;
|
||||
action:
|
||||
return this_communication, this_form;
|
||||
;;
|
||||
end:
|
||||
Reference in New Issue
Block a user