Initial Checking with all 820 MLMs

This commit is contained in:
2020-02-02 00:54:01 -05:00
parent c59dc6de2e
commit 840d0432f4
828 changed files with 239162 additions and 0 deletions

View 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: