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,259 @@
maintenance:
title: FORM_SET_TUBE_FEEDING_ORDERS;;
mlmname: FORM_SET_TUBE_FEEDING_ORDERS;;
arden: version 2.5;;
version: 5.50;;
institution: St. Clair Hospital;;
author: Juliet Law, Allscripts Ext. 7461;;
specialist: Maria Pest, Allscripts Ext. 7443;;
date: 2012-01-20;;
validation: testing;;
library:
purpose: Determines if a tube feeding order should be submitted as a supplement based on existence
of active diet order.
;;
explanation: If an active diet order exists, then the user will be alerted that the tube feeding will be submitted
as a supplement to the active diet; otherwise the tube feeding order will be ordered as the active diet.
Change History
01.20.2012 JMLaw CSR 25867: Created MLM
09.02.2014 DW CSR# 32365 - Auto select orders when one is not present
01.28.2015 JML WO# 1620448: modified the query that retrieves active diet orders to not include Completed (level num 100)
as an active diet order.
;;
keywords: tube feeding, diet
;;
knowledge:
type: data-driven;;
data:
//This MLM is passed three arguments of type
// communication_type, form_type, and client_info_obj respectively
(this_communication,
this_form,
client_info_obj) := argument;
//Obtain fields passed in from Form object
field_list := this_form.fields;
//Obtain attribute values from Communication Object
client_guid := this_communication.ClientGUID;
visit_guid := this_communication.ClientVisitGUID;
chart_guid := this_communication.ChartGUID;
CallingEvent := this_communication.CallingEvent;
CallingField := this_communication.CallingFieldName;
//Include .Net libraries
standard_libs := MLM {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
include standard_libs;
//Initialize local session object
local_session := cds_session.local;
//Declare and initialize boolean local variables
tubeFeedSelected := false;
sessionObjectExists := false;
dietOrderExists := false;
//Retrieve field list of Tube Feeding Nursing Order Grid
TubeFeedingOrder := last of (field_list where field_list.DataItemName = "MultiOrderGrid" and field_list.Control_MultiFieldOccNum = 2);
TubeFeedingOrder_List := TubeFeedingOrder.Value;
//Retrieve mapped field on Tube Feeding Order
DietOrderFld := first of (field_list where field_list.DataItemName = "DIET_DSD_Tube Feed Order" and field_list.Control_MultiFieldOccNum = 1);
DietSupplementFld := first of (field_list where field_list.DataItemName = "DIET_Tube Feed Diet or Supplement" and field_list.Control_MultiFieldOccNum = 1);
//Retrieve field list of NPO with Tube Feed Diet Grid
NPOTubeFeedOrder := last of (field_list where field_list.DataItemName = "MultiOrderGrid" and field_list.Control_MultiFieldOccNum = 4);
NPOTubeFeedOrder_List := NPOTubeFeedOrder.Value;
TubeFeedingFlush := last of (field_list where field_list.DataItemName = "MultiOrderGrid" and field_list.Control_MultiFieldOccNum = 3);
TubeFeedingFlush_List := TubeFeedingFlush.Value;
DietitianConsult := last of (field_list where field_list.DataItemName = "MultiOrderGrid" and field_list.Control_MultiFieldOccNum = 6);
DietitianConsult_List := DietitianConsult.Value;
Residuals := last of (field_list where field_list.DataItemName = "MultiOrderGrid" and field_list.Control_MultiFieldOccNum = 5);
Residuals_List := Residuals.Value;
NursingInstruct := last of (field_list where field_list.DataItemName = "MultiOrderInline" and field_list.Control_MultiFieldOccNum = 1);
NursingInstruct_List := NursingInstruct.Value;
// FIELD CHANGE
//Only perform logic if a field change event has occurred on the Order Set
if (CallingEvent = "FieldChange") then
if (CallingField = "MultiOrderGrid|2") then
//Retrieve Nutritional Order Tube Feeding field; set boolean if selected or not
TubeFeedFld := first of (TubeFeedingOrder_List where TubeFeedingOrder_List.Name = "Tube Feeding");
if (TubeFeedFld.IsSelected = true) then
tubeFeedSelected := true;
else
tubeFeedSelected := false;
endif;
endif;
if (tubeFeedSelected = true) then
//If Nutritional Diet Tube Feeding was selected, check for unsubmitted or submitted active Diet order
if (local_session.SessionUnsubDietExists = true) then
//Unsubmitted Active Diet order determined by local session variable
//set in MLM SCH_ALERT_ON_NPO_TUBE_FEEDING_ORDERS
dietOrderExists := true;
sessionObjectExists := true;
else
//No unsubmitted, check database for Diet order
(orderName) := read {"SELECT o.Name, o.TouchedWhen"
|| " FROM CV3Order as o with (nolock) JOIN"
|| " (CV3OrderCatalogMasterItem AS ocmi with (nolock)"
|| " JOIN CV3OrderReviewCategory AS orc with (nolock)"
|| " ON ocmi.OrderReviewCategoryGUID = orc.GUID)"
|| " ON o.OrderCatalogMasterItemGUID = ocmi.GUID"
|| " WHERE o.ClientGUID = " || SQL(client_guid)
|| " AND o.ClientVisitGUID = " || SQL(visit_guid)
|| " AND o.ChartGUID = " || SQL(chart_guid)
|| " AND ("
|| " (o.Name = {{{SINGLE-QUOTE}}}Diet{{{SINGLE-QUOTE}}}"
|| " OR o.Name = {{{SINGLE-QUOTE}}}Liquids Only for Test{{{SINGLE-QUOTE}}}))"
|| " AND"
|| " ((o.OrderStatusLevelNum > 15"
|| " AND o.OrderStatusLevelNum NOT IN ({{{SINGLE-QUOTE}}}69{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}70{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}100{{{SINGLE-QUOTE}}}))"
|| " OR o.OrderStatusCode = {{{SINGLE-QUOTE}}}HOLD{{{SINGLE-QUOTE}}})"
, primaryTime = touchedWhen};
orderCount := count(orderName) as number;
if (orderCount > 0) then
dietOrderExists := true;
endif;
endif;
endif;
//If Nutritional Diet Tube Feeding was selected and an active Diet order exists
//then alert that tube feed will be entered as supplement
//If user selects {{{SINGLE-QUOTE}}}No{{{SINGLE-QUOTE}}}, tube feed will be entered as only diet
if (tubeFeedSelected = true AND dietOrderExists = true) then
msg := "Patient has Active diet order."
|| "\n\nThis tube feed order will be entered as a supplement to the existing tray diet."
|| "\n\nIf this is correct, choose {{{SINGLE-QUOTE}}}Yes{{{SINGLE-QUOTE}}}."
|| "\n\nIf this is not correct, choose {{{SINGLE-QUOTE}}}No{{{SINGLE-QUOTE}}} and remember to discontinue the Active diet order.";
dialogRes := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with msg, "Active Diet Found", "YesNo" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}}, "Question" as {{{SINGLE-QUOTE}}}MessageBoxIcon{{{SINGLE-QUOTE}}};
//If user selects YES, tube feed will be entered as a supplement
if ((dialogRes as string) = "Yes") then
DietOrderFld.Value := "";
DietSupplementFld.Value := "Supplement";
if (true IN NPOTubeFeedOrder_List.IsSelected) then
NPOTubeFeedOrder_List.IsSelected := false;
endif;
NPOTubeFeedOrder_List.IsReadOnly := true;
elseif ((dialogRes as string) = "No") then
DietOrderFld.Value := "Tube Feeding";
DietSupplementFld.Value := "Diet";
endif;
//If Nutritional Diet Tube Feeding was selected and an active Diet order does not exists
//then alert that tube feed will be entered as only diet
//If user selects {{{SINGLE-QUOTE}}}No{{{SINGLE-QUOTE}}}, tube feed will be automatically unselected and alert
//will display to enter an active diet order first
elseif (tubeFeedSelected = true AND dietOrderExists = false) then
msg := "Patient DOES NOT have an Active diet.\n\nThis order will be entered as a tube feed only diet."
|| " Patient will not receive a tray diet."
|| "\n\nIf this is correct, choose {{{SINGLE-QUOTE}}}Yes{{{SINGLE-QUOTE}}}."
|| "\n\nIf this is not correct and the patient is to receive this tube feed as a supplement, choose {{{SINGLE-QUOTE}}}No{{{SINGLE-QUOTE}}}.\n\n";
dialogRes := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with msg, "No Active Diet Found", "YesNo" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}}, "Question" as {{{SINGLE-QUOTE}}}MessageBoxIcon{{{SINGLE-QUOTE}}};
if ((dialogRes as string) = "Yes") then
DietOrderFld.Value := "Tube Feeding";
DietSupplementFld.Value := "Diet";
elseif ((dialogRes as string) = "No") then
DietOrderFld.Value := "Tube Feeding";
DietSupplementFld.Value := "Supplement";
//Display additional messagebox to user
msg2 := "You MUST enter the tray diet order first, then enter the Tube Feeding order.";
dialogRes2 := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with msg2, "Information", "Ok" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}}, "Exclamation" as {{{SINGLE-QUOTE}}}MessageBoxIcon{{{SINGLE-QUOTE}}};
TubeFeedingOrder_List.IsSelected := "false";
endif;
else
NPOTubeFeedOrder_List.IsReadOnly := "false";
endif;
endif; // Field Change
// FORM OPEN
if (CallingEvent = "FormOpen")
then
(DietOrders) := read {"Select o.Name, o.TouchedWhen, ocmi.name "
|| " From CV3OrderCatalogMasterItem AS ocmi with (nolock) "
|| " Join CV3Order o with (nolock) ON o.OrderCatalogMasterItemGUID = ocmi.GUID "
|| " Where o.ClientGUID = " || SQL(client_guid) || " AND o.ClientVisitGUID = " || SQL(visit_guid) || " AND o.ChartGUID = " || SQL(chart_guid)
|| " and o.name in ({{{SINGLE-QUOTE}}}Tube Feed Flush{{{SINGLE-QUOTE}}} , {{{SINGLE-QUOTE}}}NPO with Tube Feed Diet (nursing instruction only){{{SINGLE-QUOTE}}} , {{{SINGLE-QUOTE}}}Dietitian Consult for Tube Feed{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}Tube Feed Residuals{{{SINGLE-QUOTE}}} , {{{SINGLE-QUOTE}}}Tube Feed Nursing Instructions{{{SINGLE-QUOTE}}})"
|| " and ((o.OrderStatusLevelNum > 15 AND o.OrderStatusLevelNum NOT IN ({{{SINGLE-QUOTE}}}69{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}70{{{SINGLE-QUOTE}}} , {{{SINGLE-QUOTE}}}100{{{SINGLE-QUOTE}}}))) "
};
// Initialize all orders to selected
TubeFeedingFlush_List.IsSelected := "true";
NPOTubeFeedOrder_List.IsSelected := "true";
DietitianConsult_List.IsSelected := "true";
Residuals_List.IsSelected:= "true";
NursingInstruct_List.IsSelected := "true";
// Parse out the current orders and deselect the order if it is already on file.
for i in 1 seqto count DietOrders do
DietOrder := DietOrders [i] ;
if DietOrder = "Tube Feed Flush" then TubeFeedingFlush_List.IsSelected := "false";
elseif DietOrder = "NPO with Tube Feed Diet (nursing instruction only)" then NPOTubeFeedOrder_List.IsSelected := "false";
elseif DietOrder = "Dietitian Consult for Tube Feed" then DietitianConsult_List.IsSelected := "false";
elseif DietOrder = "Tube Feed Residuals" then Residuals_List.IsSelected:= "false";
elseif DietOrder = "Tube Feed Nursing Instructions" then NursingInstruct_List.IsSelected := "false";
endif;
enddo;
endif; // Form Open
;;
priority: 50
;;
evoke:
;;
logic:
conclude true;
;;
action:
//This MLM returns two parameters of type this_communication and this_form, respectively.
return this_communication, this_form;
;;
Urgency: 50;;
end: