Initial Checking with all 820 MLMs
This commit is contained in:
221
MLMStripper/bin/Debug/FORM/FORM_SET_RX_SEDATIVE_ORDERS.mlm
Normal file
221
MLMStripper/bin/Debug/FORM/FORM_SET_RX_SEDATIVE_ORDERS.mlm
Normal file
@@ -0,0 +1,221 @@
|
||||
maintenance:
|
||||
|
||||
title: Sedative Orders with Dose Reduction;;
|
||||
mlmname: FORM_Set_Rx_Sedative_Orders;;
|
||||
arden: version 2.5;;
|
||||
version: 5.50;;
|
||||
institution: St Clair Hospital;;
|
||||
author: Teresa Spicuzza, Allscripts ;;
|
||||
specialist: Teresa Spicuzza, Allscripts;;
|
||||
date: 2011-07-22;;
|
||||
validation: testing;;
|
||||
|
||||
library:
|
||||
purpose: Used for Dose Reduction of Sedative Orders in patients over 65 years of age (Changed to 18 years of age)
|
||||
;;
|
||||
|
||||
explanation: This MLM is called from ...
|
||||
|
||||
Change history
|
||||
05.07.2013 TMS Change made to reduce age from 65 to 18 per Med Exec for Leapfrog project. Added yes/no
|
||||
decision box for "if physician has order for do not substitute" CSR 31334
|
||||
06.11.2015 BB Change made to Lunesta, to reduce the 2mg selection to 1mg. So now when 3mg or 2mg Lunesta
|
||||
is selected, the 1mg is automatically selected. CSR#33494
|
||||
03.29.2016 TMS Changes made to remove logic for Eszopiclone 3mg Tab and Zolpidem CR 12.5mg Tab which are
|
||||
being removed from the formulary. CSR 34225
|
||||
|
||||
|
||||
;;
|
||||
keywords: Called MLMs, Sedatives
|
||||
;;
|
||||
knowledge:
|
||||
type: data-driven;;
|
||||
data:
|
||||
|
||||
|
||||
standard_libs := mlm {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
|
||||
include standard_libs;
|
||||
|
||||
using "ObjectsPlusXA.SCM.Forms";
|
||||
using namespace "ObjectsPlusXA.SunriseClinicalManager.Forms";
|
||||
|
||||
// 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;
|
||||
|
||||
comm_obj := this_communication.primaryobj;
|
||||
/*******************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;
|
||||
ClientGuid := this_communication.ClientGUID;
|
||||
CallingSet := comm_obj.OrderSetName;
|
||||
|
||||
Info_fld := last of (field_list where field_list.DataItemName = "PRX_NoteComment0"
|
||||
and field_List.Control_MultiFieldOccNum = 1);
|
||||
Override_fld := last of (field_list where field_list.DataItemName = "PRX_DosageOverride"
|
||||
and field_list.Control_MultiFieldOccNum = 2);
|
||||
Substitute_fld := last of (field_list where field_list.DataItemName = "PRX_NoteComment2"
|
||||
and field_list.Control_MultiFieldOccNum = 1);
|
||||
|
||||
message18 := "Lower dose substituted by approval of Medical Executive Committee.";
|
||||
message65 := "Lower dose substituted by approval of Medical Executive Committee; patient is 65 years or older";
|
||||
nomessage := " ";
|
||||
messageDoNotSub := Override_fld.Label;
|
||||
|
||||
SedativeOrders := last of (field_list where field_list.DataItemName = "MultiOrderGrid"
|
||||
and field_List.Control_MultiFieldOccNum = 1);
|
||||
SedativeOrders_List := SedativeOrders.Value;
|
||||
|
||||
|
||||
Found_Zolpidem5Prn := first of (SedativeOrders_List where SedativeOrders_List.Name = "Zolpidem 5mg Tab");
|
||||
Found_Zolpidem10Prn := first of (SedativeOrders_List where SedativeOrders_List.Name = "Zolpidem 10mg Tab");
|
||||
Found_Zolpidem5Sch := last of (SedativeOrders_List where SedativeOrders_List.Name = "Zolpidem 5mg Tab");
|
||||
Found_Zolpidem10Sch := last of (SedativeOrders_List where SedativeOrders_List.Name = "Zolpidem 10mg Tab");
|
||||
Found_Zolpidem6CRPrn := first of (SedativeOrders_List where SedativeOrders_List.Name = "Zolpidem CR 6.25mg Tab");
|
||||
Found_Zolpidem12CRPrn := first of (SedativeOrders_List where SedativeOrders_List.Name = "Zolpidem CR 12.5mg Tab");
|
||||
Found_Zolpidem6CRSch := last of (SedativeOrders_List where SedativeOrders_List.Name = "Zolpidem CR 6.25mg Tab");
|
||||
Found_Zolpidem12CRSch := last of (SedativeOrders_List where SedativeOrders_List.Name = "Zolpidem CR 12.5mg Tab");
|
||||
Found_Temazepam7Prn := first of (SedativeOrders_List where SedativeOrders_List.Name = "Temazepam 7.5mg Cap");
|
||||
Found_Temazepam15Prn := first of (SedativeOrders_List where SedativeOrders_List.Name = "Temazepam 15mg Cap");
|
||||
Found_Temazepam30Prn := first of (SedativeOrders_List where SedativeOrders_List.Name = "Temazepam 30mg Cap");
|
||||
Found_Temazepam7Sch := last of (SedativeOrders_List where SedativeOrders_List.Name = "Temazepam 7.5mg Cap");
|
||||
Found_Temazepam15Sch := last of (SedativeOrders_List where SedativeOrders_List.Name = "Temazepam 15mg Cap");
|
||||
Found_Temazepam30Sch := last of (SedativeOrders_List where SedativeOrders_List.Name = "Temazepam 30mg Cap");
|
||||
Found_Eszopiclone1Prn := first of (SedativeOrders_List where SedativeOrders_List.Name = "Eszopiclone 1mg Tab");
|
||||
Found_Eszopiclone2Prn := first of (SedativeOrders_List where SedativeOrders_List.Name = "Eszopiclone 2mg Tab");
|
||||
// Found_Eszopiclone3Prn := first of (SedativeOrders_List where SedativeOrders_List.Name = "Eszopiclone 3mg Tab");
|
||||
Found_Eszopiclone1Sch := last of (SedativeOrders_List where SedativeOrders_List.Name = "Eszopiclone 1mg Tab");
|
||||
Found_Eszopiclone2Sch := last of (SedativeOrders_List where SedativeOrders_List.Name = "Eszopiclone 2mg Tab");
|
||||
// Found_Eszopiclone3Sch := last of (SedativeOrders_List where SedativeOrders_List.Name = "Eszopiclone 3mg Tab");
|
||||
|
||||
if exists (client_info_obj) then
|
||||
(birthdate,dobM,dobD,dobY) := read last {ClientInfo: BirthDate, BirthMonthNum, BirthDayNum, BirthYearNum
|
||||
REFERENCING client_info_obj};
|
||||
endif;
|
||||
|
||||
patientAge := (NOW - birthdate) / (1 year);
|
||||
|
||||
if (patientAge > 17.99) then
|
||||
if (CallingField = "MultiOrderGrid|1") then
|
||||
if (Override_fld.value = false) then
|
||||
if (Found_Zolpidem10Prn.IsSelected = true) then
|
||||
SedativeOrders_List.IsSelected := (true, false, false, false);
|
||||
Info_fld.Value := message18;
|
||||
Substitute_fld.Value := message18;
|
||||
elseif (Found_Zolpidem10Sch.IsSelected = true) then
|
||||
SedativeOrders_List.IsSelected := (false, false, true, false);
|
||||
Info_fld.Value := message18;
|
||||
Substitute_fld.Value := message18;
|
||||
elseif (Found_Zolpidem12CRPrn.IsSelected = true) then
|
||||
SedativeOrders_List.IsSelected := (true, false, false, false);
|
||||
Info_fld.Value := message18;
|
||||
Substitute_fld.Value := message18;
|
||||
elseif (Found_Zolpidem12CRSch.IsSelected = true) then
|
||||
SedativeOrders_List.IsSelected := (false, false, true, false);
|
||||
Info_fld.Value := message18;
|
||||
Substitute_fld.Value := message18;
|
||||
elseif (Found_Temazepam30Prn.IsSelected = true) then
|
||||
SedativeOrders_List.IsSelected := (false, true, false, false, false, false);
|
||||
Info_fld.Value := message18;
|
||||
Substitute_fld.Value := message18;
|
||||
elseif (Found_Temazepam30Sch.IsSelected = true) then
|
||||
SedativeOrders_List.IsSelected := (false, false, false, false, true, false);
|
||||
Info_fld.Value := message18;
|
||||
Substitute_fld.Value := message18;
|
||||
//[BB CSR33494]
|
||||
elseif (Found_Eszopiclone2Prn.IsSelected = true) then
|
||||
SedativeOrders_List.IsSelected := (true, false, false, false); //(true, false, false, false, false, false);
|
||||
Info_fld.Value := message18;
|
||||
Substitute_fld.Value := message18;
|
||||
elseif (Found_Eszopiclone2Sch.IsSelected = true) then
|
||||
SedativeOrders_List.IsSelected := (false, false, true, false); //(false, false, false, true, false, false);
|
||||
Info_fld.Value := message18;
|
||||
Substitute_fld.Value := message18;
|
||||
//[BB CSR33494 END]
|
||||
/*
|
||||
elseif (Found_Eszopiclone3Prn.IsSelected = true) then
|
||||
SedativeOrders_List.IsSelected := (true, false, false, false, false, false); //(false, true, false, false, false, false); //[BB mod]
|
||||
Info_fld.Value := message18;
|
||||
Substitute_fld.Value := message18;
|
||||
elseif (Found_Eszopiclone3Sch.IsSelected = true) then
|
||||
SedativeOrders_List.IsSelected := (false, false, false, true, false, false); //(false, false, false, false, true, false); //[BB mod]
|
||||
Info_fld.Value := message18;
|
||||
Substitute_fld.Value := message18;
|
||||
*/
|
||||
else
|
||||
Info_fld.Value := nomessage;
|
||||
Substitute_fld.Value := nomessage;
|
||||
endif;
|
||||
endif; //Override_fld.value = false
|
||||
endif; //CallingField = "MultiOrderGrid|1"
|
||||
|
||||
if (CallingField = "PRX_DosageOverride|2") then
|
||||
|
||||
If Override_fld.value = True then
|
||||
messagetext:="You have chosen to override the Medical Executive Committee "
|
||||
|| "approved protocol to lower sedative/hypnotic doses in ALL patients over 18 years "
|
||||
|| "old. \n\n Do you have a physician order to override the automatic "
|
||||
|| "substitution that states Do Not Substitute the Lower Dose? \n\n If you have an "
|
||||
|| "order, click YES below.";
|
||||
|
||||
dialogResult := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with Messagetext ,"Alert","YesNo" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
|
||||
|
||||
if((dialogResult as string) = "Yes") then
|
||||
|
||||
Info_fld.Value := nomessage;
|
||||
Substitute_fld.Value := messageDoNotSub;
|
||||
if (count(SedativeOrders_List) = 4) then
|
||||
SedativeOrders_List.IsSelected := (false, false, false, false);
|
||||
else
|
||||
SedativeOrders_List.IsSelected := (false, false, false, false, false, false);
|
||||
endif;
|
||||
endif;
|
||||
|
||||
if((dialogResult as string) = "No") then
|
||||
Override_fld.Value := false;
|
||||
|
||||
endif;
|
||||
|
||||
else
|
||||
|
||||
Substitute_fld.Value := nomessage;
|
||||
|
||||
if (count(SedativeOrders_List) = 4) then
|
||||
SedativeOrders_List.IsSelected := (false, false, false, false);
|
||||
else
|
||||
SedativeOrders_List.IsSelected := (false, false, false, false, false, false);
|
||||
endif;
|
||||
|
||||
endif; //CallingField = "PRX_DosageOverride|2"
|
||||
endif; //patientAge > 17.99
|
||||
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:
|
||||
Reference in New Issue
Block a user