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,331 @@
maintenance:
title: FORM_SET_SHOULDER_POST_OP;;
mlmname: FORM_SET_SHOULDER_POST_OP;;
arden: version 2;;
version: 5.50;;
institution: St Clair Admissions;;
author: Juliet Law, Eclipsys Corp Ext 7461;;
specialist: Michele Carter-Payne, Eclipsys Corp Ext 7445;;
date: 2011-09-02;;
validation: testing;;
library:
purpose: Used for Post Op Shoulder Order Set
;;
explanation: Used for Post Op Shoulder Order Set
Change history
09.02.2011 JMLaw Created.
09.07.2018 JMLaw CSR 37062: Logic added to support annual Order Set Revisions project. Concurrently implementing
anticoagulant check (previously documented in service ticket# 3260474)
;;
keywords: Called MLMs, Shoulder, Post Op
;;
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*******************/
// Initialize error message
error_message:="";
// Assigns fields passed in the Form object to the Field object
field_list:= this_form.fields;
client_guid := this_communication.ClientGUID;
visit_guid := this_communication.ClientVisitGUID;
chart_guid := this_communication.ChartGuid;
CallingEvent := this_communication.CallingEvent;
CallingField := this_communication.CallingFieldName;
standard_libs := MLM {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
include standard_libs;
using "ObjectsPlusXA.SCM.Forms";
using namespace "ObjectsPlusXA.SunriseClinicalManager.Forms";
//Need to implicitly call the generic MLM ONLY for the Anticoagulant Grids
anticoagulant_conflict := MLM {{{SINGLE-QUOTE}}}FORM_FUNC_ANTICOAGULANT_CONFLICT_CHECK{{{SINGLE-QUOTE}}};
// Retrieve field list of Nursing Assessment Grid
NursingAssessments := last of (field_list where field_list.DataItemName = "MultiOrderGrid"
AND field_list.Control_MultiFieldOccNum = 12);
NursingAssessments_List := NursingAssessments.Value;
//Retrieve field list of Conditional Order Grid
ConditionalOrders := last of (field_list where field_list.DataItemName = "MultiOrderGrid"
AND field_list.Control_MultiFieldOccNum = 31);
ConditionalOrders_List := ConditionalOrders.Value;
// Retrieve field list of Bowel Regimen Order Grid
BowelOrders := last of (field_list where field_list.DataItemName = "MultiOrderGrid"
AND field_list.Control_MultiFieldOccNum = 7);
BowelOrders_List := BowelOrders.Value;
// Retrieve field list of Anti-Emetic Order Grid
AntiEmeticOrders := last of (field_list where field_list.DataItemName = "MultiOrderGrid"
AND field_list.Control_MultiFieldOccNum = 6);
AntiEmeticOrders_List := AntiEmeticOrders.Value;
//Retrieve field list of Moderate Pain Order Grid
ModPainOrders := last of (field_list where field_list.DataItemName = "MultiOrderGrid"
AND field_list.Control_MultiFieldOccNum = 5);
ModPainOrders_List := ModPainOrders.Value;
//Retrieve field list of Severe Pain Order Grid
SeverePainOrders := last of (field_list where field_list.DataItemname = "MultiOrderGrid"
AND field_list.Control_MultiFieldOccNum = 4);
SeverePainOrders_List := SeverePainOrders.Value;
Lovenox_AntiCoag_Orders := last of ( field_list WHERE field_list.DataItemName = "MultiOrderGrid"
AND field_list.Control_MultiFieldOccNum = 9 );
Lovenox_AntiCoag_List := Lovenox_AntiCoag_Orders.Value;
Aspirin_AntiCoag_Orders := last of ( field_list WHERE field_list.DataItemName = "MultiOrderGrid"
AND field_list.Control_MultiFieldOccNum = 41 );
Aspirin_AntiCoag_List := Aspirin_AntiCoag_Orders.Value;
if (CallingField = "MultiOrderGrid|12") then
InstrFld := first of (NursingAssessments_List where NursingAssessments_List.Name = "Nurse Instruction:");
if (InstrFld.IsSelected = true) then
ConditionalOrders_List.IsSelected := (true,true);
else
ConditionalOrders_List.IsSelected := (false,false);
endif;
endif;
if (CallingField = "MultiOrderGrid|7") then
Found_MofM := first of (BowelOrders_List where BowelOrders_List.Name = "Magnesium Hydroxide Susp");
Found_Senna := first of (BowelOrders_List where BowelOrders_List.Name = "Senna Tab");
if (Found_MofM.IsSelected = true) then
Found_Senna.IsSelected := false;
Found_Senna.IsReadOnly := true;
elseif (Found_Senna.IsSelected = true) then
Found_MofM.IsSelected := false;
Found_MofM.IsReadOnly := true;
else
Found_Senna.IsSelected := false;
Found_MofM.IsSelected := false;
Found_Senna.IsReadOnly := false;
Found_MofM.IsReadOnly := false;
endif;
endif;
if (CallingField = "MultiOrderGrid|6") then
FirstThree := (AntiEmeticOrders_List.IsSelected[1],
AntiEmeticOrders_List.IsSelected[2],
AntiEmeticOrders_List.IsSelected[3]);
if true in Firstthree then
NewReadOnly := ();
NewSelected := ();
for k in (1 seqto (count AntiEmeticOrders_List.IsSelected)) do
if k <= 3 then
if AntiEmeticOrders_List.IsSelected[k] = true then
NewReadOnly := NewReadOnly, false;
NewSelected := NewSelected,true;
else
NewReadOnly := NewReadOnly, true;
NewSelected := NewSelected, false;
endif;
elseif k = 4 then
NewReadOnly := NewReadOnly, false;
NewSelected := NewSelected,AntiEmeticOrders_List.IsSelected[k];
elseif (k <= 8) then
NewReadOnly := NewReadOnly, true;
NewSelected:= NewSelected, AntiEmeticOrders_List.IsSelected[4];
else
NewReadOnly := NewReadOnly, AntiEmeticOrders_List.IsReadOnly[k];
NewSelected := NewSelected, AntiEmeticOrders_List.IsSelected[k];
endif;
enddo;
AntiEmeticOrders_List.IsReadOnly := NewReadOnly;
AntiEmeticOrders_List.IsSelected := NewSelected;
else
NewReadOnly := ();
DeselectAll := ();
for k in (1 seqto (count AntiEmeticOrders_List.IsSelected)) do
if k <= 3 then
NewReadOnly := NewReadOnly, false;
DeselectAll := DeselectAll ,false;
elseif k>8 then
NewReadOnly := NewReadOnly, AntiEmeticOrders_List.IsReadOnly[k];
DeselectAll := DeselectAll, AntiEmeticOrders_List.IsSelected[k];
else
NewReadOnly := NewReadOnly, true;
DeselectAll := DeselectAll, false;
endif;
enddo;
AntiEmeticOrders_List.IsReadOnly := NewReadOnly;
AntiEmeticOrders_List.IsSelected := DeselectAll;
endif;
endif;
if (CallingField = "MultiOrderGrid|5") then
LastThree := (ModPainOrders_List.IsSelected[2],
ModPainOrders_List.IsSelected[3],
ModPainOrders_List.IsSelected[4]);
if true IN LastThree then
NewReadOnly := ();
NewSelected := ();
for k in (1 seqto (count ModPainOrders_List.IsSelected)) do
if (k = 1) then
NewReadOnly := NewReadOnly, false;
NewSelected := NewSelected, ModPainOrders_List.IsSelected[k];
elseif (k > 1) then
if (ModPainOrders_List.IsSelected[k] = true) then
NewReadOnly := NewReadOnly, false;
NewSelected := NewSelected, true;
else
NewReadOnly := NewReadOnly, true;
NewSelected := NewSelected, false;
endif;
else
NewReadOnly := NewReadOnly, ModPainOrders_List.IsReadOnly[k];
NewSelected := NewSelected, ModPainOrders_List.IsSelected[k];
endif;
enddo;
ModPainOrders_List.IsSelected := NewSelected;
ModPainOrders_List.IsReadOnly := NewReadOnly;
else
NewReadOnly := ();
DeSelectAll := ();
for k in (1 seqto (count ModPainOrders_List.IsSelected)) do
if (k=1) then
NewReadOnly := NewReadOnly, false;
DeSelectAll := DeSelectAll, ModPainOrders_List.IsSelected[k];
elseif (k > 1) then
NewReadOnly := NewReadOnly, false;
DeSelectAll := DeSelectAll, false;
else
NewReadOnly := NewReadOnly, ModPainOrders_List.IsReadOnly[k];
DeSelectAll := DeSelectAll, ModPainOrders_List.IsSelected[k];
endif;
enddo;
ModPainOrders_List.IsSelected := DeSelectAll;
ModPainOrders_List.IsReadOnly := NewReadOnly;
endif;
endif;
if (CallingField = "MultiOrderGrid|4") then
severe_pain_meds := ("Oxycodone 5mg Tab",
"Acetaminophen 500mg/Hydrocodon 7.5mg Tab",
"PCA - Hydromorphone Order Set",
"PCA - Morphine Order Set");
if (true IN SeverePainOrders_List.IsSelected) then
NewReadOnly := ();
NewSelected := ();
for k IN (1 seqto (count SeverePainOrders_List.IsSelected)) do
if (SeverePainOrders_List.Name[k] IN severe_pain_meds) then
if (SeverePainOrders_List.IsSelected[k] = true) then
NewReadOnly := NewReadOnly, false;
NewSelected := NewSelected, true;
else
NewReadOnly := NewReadOnly, true;
NewSelected := NewSelected, false;
endif;
else
NewReadOnly := NewReadOnly, SeverePainOrders_List.IsReadOnly[k];
NewSelected := NewSelected, SeverePainOrders_List.IsSelected[k];
endif;
enddo;
SeverePainOrders_List.IsSelected := NewSelected;
SeverePainOrders_List.IsReadOnly := NewReadOnly;
else
NewReadOnly := ();
DeSelectAll := ();
for k in (1 seqto (count SeverePainOrders_List.IsSelected)) do
if (SeverePainOrders_List.Name[k] IN severe_pain_meds) then
NewReadOnly := NewReadOnly, false;
DeSelectAll := DeSelectAll, false;
else
NewReadOnly := NewReadOnly, SeverePainOrders_List.IsReadOnly[k];
DeSelectAll := DeSelectAll, SeverePainOrders_List.IsSelected[k];
endif;
enddo;
SeverePainOrders_List.IsSelected := DeSelectAll;
SeverePainOrders_List.IsReadOnly := NewReadOnly;
endif;
endif;
//CSR 37062: Begin Change
if ( CallingField = "MultiOrderGrid|9" OR CallingField = "MultiOrderGrid|41" ) then
Enoxaparin_Select := first of ( Lovenox_AntiCoag_List WHERE Lovenox_AntiCoag_List.Name matches pattern "Enoxaparin%" );
Aspirin_Select := first of ( Aspirin_AntiCoag_List WHERE Aspirin_AntiCoag_List.Name matches pattern "Aspirin%" );
if ( Enoxaparin_Select.IsSelected = true )then
Aspirin_Select.IsSelected := false;
Aspirin_Select.IsReadonly := true;
(stop, stop_message, severity) := call anticoagulant_conflict WITH (this_communication, this_form, client_info_obj, Enoxaparin_Select.Name);
if ( stop = true ) then
if ( severity = "high" ) then
dialogRes := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with stop_message, "Anticoagulant Order Conflict", "OK" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}}, "Exclamation" as {{{SINGLE-QUOTE}}}MessageBoxIcon{{{SINGLE-QUOTE}}};
Enoxaparin_Select.IsSelected := false;
Aspirin_Select.IsReadonly := false;
else
dialogRes := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with stop_message, "Anticoagulant Order Conflict", "YesNo" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}}, "Question" as {{{SINGLE-QUOTE}}}MessageBoxIcon{{{SINGLE-QUOTE}}};
if ( ( dialogRes as String ) = "No" ) then
Enoxaparin_Select.IsSelected := false;
Aspirin_Select.IsReadonly := false;
endif;
endif;
endif;
elseif ( Aspirin_Select.IsSelected = true ) then
Enoxaparin_Select.IsSelected := false;
Enoxaparin_Select.IsReadonly := true;
else
Enoxaparin_Select.IsSelected := false;
Enoxaparin_Select.IsReadonly := false;
Aspirin_Select.IsSelected := false;
Aspirin_Select.IsReadonly := false;
endif;
endif;
//CSR 37062: End Change
;;
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: