Initial Checking with all 820 MLMs
This commit is contained in:
229
MLMStripper/bin/Debug/FORM/FORM_SET_SUBCUTANEOUS_INSULIN.mlm
Normal file
229
MLMStripper/bin/Debug/FORM/FORM_SET_SUBCUTANEOUS_INSULIN.mlm
Normal file
@@ -0,0 +1,229 @@
|
||||
maintenance:
|
||||
|
||||
title: Subcutaneous Insulin;;
|
||||
mlmname: FORM_Set_Subcutaneous_Insulin;;
|
||||
arden: version 2;;
|
||||
version: 4.50;;
|
||||
institution: St Clairs;;
|
||||
author: Juliet M. Law, Allscripts Corp ext 7461;;
|
||||
specialist: Shawn Head, Allscripts Corp Ext 7468;;
|
||||
date: 2011-07-25;;
|
||||
validation: testing;;
|
||||
|
||||
library:
|
||||
purpose: Used for medication grids to disable dosing instruction checkbox in Subcutaneous Insulin order set
|
||||
;;
|
||||
|
||||
explanation: This MLM is called from the Subcutaneous Insulin order set
|
||||
|
||||
|
||||
Change history
|
||||
|
||||
07.25.2011 JML Copied from FORM_Set_VTE_Prophylaxis
|
||||
07.01-2013 STH Updated to handle the Diabetes and Nutritional Education orders only allowing it to be order if
|
||||
there is not already an active order on the patients chart.
|
||||
11.18.2013 JML CSR 31945: If patient does not a recent NPO or Carb-Controlled Diet order, automatically
|
||||
select the diet order on Form Close.
|
||||
03.22.2014 STH CSR 32245: Update outpatient diabetes education order names to be unique for Diabetes and Nutritional education required.
|
||||
05.13.2014 JML WO# 164724: Remove Subcutaneous Insulin automatic checking of Carb Controlled Diet order.
|
||||
;;
|
||||
keywords: Called MLMs, Subcutaneous Insulin
|
||||
;;
|
||||
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*******************/
|
||||
|
||||
/* Set to true if a decision.log is needed.*/
|
||||
log_execution_info := FALSE;
|
||||
|
||||
|
||||
standard_libs := mlm {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
|
||||
include standard_libs;
|
||||
|
||||
using "ObjectsPlusXA.SCM.Forms";
|
||||
using namespace "ObjectsPlusXA.SunriseClinicalManager.Forms";
|
||||
|
||||
//local_session := cds_session.local;
|
||||
|
||||
/***************************************************************************************/
|
||||
|
||||
// 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;
|
||||
|
||||
Dosing_Guidelines := last of (field_list where field_list.DataItemName = "MultiOrderInline" and field_List.Control_MultiFieldOccNum = 5);
|
||||
Dosing_Guidelines_List := Dosing_Guidelines.Value;
|
||||
|
||||
//CSR 31945: JML Change
|
||||
Diet_Order := last of (field_list WHERE field_list.DataItemName = "MultiOrderGrid"
|
||||
and field_list.Control_MultiFieldOccNum = 6);
|
||||
Diet_Order_List := Diet_Order.Value;
|
||||
|
||||
/*
|
||||
Nutritional_Text := last of ( field_list WHERE field_list.DataItemName = "OS_ Free Text IF order"
|
||||
and field_list.Control_MultiFieldOccNum = 1);
|
||||
*/
|
||||
//--------BEGIN DIABETES AND NUTRITIONAL SERVICE EDUCATION SECTION ADDED 7-1-2013 STH
|
||||
diabetes_education := null;
|
||||
nutritional_education := null;
|
||||
clientGuid := this_communication.ClientGUID;
|
||||
clientvisitGuid := this_communication.ClientVisitGUID;
|
||||
|
||||
check_for_diabetes_order := read last {"select top 1 {{{SINGLE-QUOTE}}}YES{{{SINGLE-QUOTE}}} as {{{SINGLE-QUOTE}}}diabetes_order{{{SINGLE-QUOTE}}} "
|
||||
|| " from CV3Order o with (Nolock) "
|
||||
|| " where o.ClientGUID = " || SQL(clientGuid) //{{{SINGLE-QUOTE}}}9000063678500200{{{SINGLE-QUOTE}}}
|
||||
|| " and o.ClientVisitGUID = " || SQL(clientvisitGuid) //{{{SINGLE-QUOTE}}}9000368574700270{{{SINGLE-QUOTE}}}
|
||||
|| " and o.name = {{{SINGLE-QUOTE}}}Diabetes Education, Outpatient{{{SINGLE-QUOTE}}} "
|
||||
|| " and (o.OrderStatusCode like {{{SINGLE-QUOTE}}}au%{{{SINGLE-QUOTE}}} or o.OrderStatusCode = {{{SINGLE-QUOTE}}}discd{{{SINGLE-QUOTE}}}) "};
|
||||
|
||||
check_for_nutritional_order := read last {"select top 1 {{{SINGLE-QUOTE}}}YES{{{SINGLE-QUOTE}}} as {{{SINGLE-QUOTE}}}diabetes_order{{{SINGLE-QUOTE}}} "
|
||||
|| " from CV3Order o with (Nolock) "
|
||||
|| " where o.ClientGUID = " || SQL(clientGuid) //{{{SINGLE-QUOTE}}}9000063678500200{{{SINGLE-QUOTE}}}
|
||||
|| " and o.ClientVisitGUID = " || SQL(clientvisitGuid) //{{{SINGLE-QUOTE}}}9000368574700270{{{SINGLE-QUOTE}}}
|
||||
|| " and o.name = {{{SINGLE-QUOTE}}}Diabetes Nutritional Counseling, Outpatient{{{SINGLE-QUOTE}}} "
|
||||
|| " and (o.OrderStatusCode like {{{SINGLE-QUOTE}}}au%{{{SINGLE-QUOTE}}} or o.OrderStatusCode = {{{SINGLE-QUOTE}}}discd{{{SINGLE-QUOTE}}}) "};
|
||||
|
||||
update_itemlist := ();
|
||||
update_itemcheck := ();
|
||||
update_itemname := ();
|
||||
update_itemRO := ();
|
||||
|
||||
update_itemflds := last of (field_list where field_list.DataItemName = "MultiOrderGrid"
|
||||
and field_List.Control_MultiFieldOccNum = 4);
|
||||
update_itemlist := update_itemflds.Value;
|
||||
update_itemcheck := update_itemlist.IsSelected;
|
||||
update_itemname := update_itemlist.name;
|
||||
update_itemRO := update_itemlist.IsReadOnly;
|
||||
//--------END DIABETES AND NUTRITIONAL SERVICE EDUCATION SECTION ADDED 7-1-2013 STH
|
||||
|
||||
if CallingEvent = "FormOpen" then
|
||||
Dosing_Guidelines_List.IsReadOnly := (True);
|
||||
|
||||
//BEGIN DIABETES AND NUTRIONAL SERVICE EDUCATION UPDATE SECTION ADDED 7-1-2013 STH
|
||||
if check_for_nutritional_order = "YES" then
|
||||
update_itemcheck[3] := false;
|
||||
update_itemRO[3] := true;
|
||||
else
|
||||
update_itemcheck[3] := true;
|
||||
update_itemRO[3] := false;
|
||||
endif;
|
||||
|
||||
if check_for_diabetes_order = "YES" then
|
||||
update_itemcheck[2] := false;
|
||||
update_itemRO[2] := true;
|
||||
else
|
||||
update_itemcheck[2] := true;
|
||||
update_itemRO[2] := false;
|
||||
endif;
|
||||
|
||||
update_itemlist.IsSelected := update_itemcheck;
|
||||
update_itemlist.IsReadOnly := update_itemRO;
|
||||
|
||||
//END DIABETES AND NUTRIONAL SERVICE EDUCATION UPDATE SECTION ADDED 7-1-2013 STH
|
||||
|
||||
//BEGIN WO# 164724 Changes JML
|
||||
/*
|
||||
elseif (CallingEvent = "FormClose") then
|
||||
//********** Begin CSR 31945: JML Changes *************************
|
||||
|
||||
|
||||
if ( NOT ( Nutritional_Text.Value IS NULL ) ) then
|
||||
oName := Nutritional_Text.Value;
|
||||
elseif ( NOT ( local_session.SessionUnsubmittedOrdersSubcutInsulinDiets = "" ) ) then
|
||||
oName := local_session.SessionUnsubmittedOrdersSubcutInsulinDiets;
|
||||
else
|
||||
|
||||
//Retrieve most recent active diet order for patient
|
||||
(oGuid, oName) := read last {"SELECT o.GUID, o.Name"
|
||||
|| " FROM CV3Order o"
|
||||
|| " WHERE o.ClientGUID = " || Sql(ClientGuid)
|
||||
|| " AND o.ClientVisitGUID = " || Sql(ClientVisitGuid)
|
||||
|| " AND (o.Name = {{{SINGLE-QUOTE}}}Diet{{{SINGLE-QUOTE}}}"
|
||||
|| " OR o.Name = {{{SINGLE-QUOTE}}}NPO{{{SINGLE-QUOTE}}}"
|
||||
|| " OR o.Name = {{{SINGLE-QUOTE}}}Tube Feeding{{{SINGLE-QUOTE}}}"
|
||||
|| " OR o.Name = {{{SINGLE-QUOTE}}}NPO for Testing/Procedure{{{SINGLE-QUOTE}}})"
|
||||
|| " AND ((o.OrderStatusLevelNum > 15"
|
||||
|| " AND o.OrderStatusLevelNum NOT IN ({{{SINGLE-QUOTE}}}69{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}70{{{SINGLE-QUOTE}}}))"
|
||||
|| " OR o.OrderStatusCode = {{{SINGLE-QUOTE}}}HOLD{{{SINGLE-QUOTE}}})"
|
||||
|| " ORDER BY o.CreatedWhen ASC"};
|
||||
endif;
|
||||
|
||||
if ( not ( exists oName ) ) then
|
||||
//Autocheck diet order
|
||||
autoCheckDiet := true;
|
||||
|
||||
elseif ( ( oName = "NPO" ) OR ( oName = "Tube Feeding" ) OR ( oName = "NPO for Testing/Procedure" ) ) then
|
||||
//if NPO order, don{{{SINGLE-QUOTE}}}t autcheck diet order
|
||||
autoCheckDiet := false;
|
||||
else
|
||||
|
||||
if ( oName = "Diet" ) then
|
||||
|
||||
//Check if diet is for carb controlled
|
||||
(oCarbCode, oCarbValue) := read {"SELECT oud.UserDataCode, oud.Value"
|
||||
|| " FROM CV3OrderUserData oud"
|
||||
|| " WHERE oud.OrderGUID = " || Sql(oGuid)
|
||||
|| " AND (oud.UserDataCode = {{{SINGLE-QUOTE}}}DIET_DSD_Liquid{{{SINGLE-QUOTE}}}"
|
||||
|| " OR oud.UserDataCode = {{{SINGLE-QUOTE}}}DIET_DSD_ADA or Calorie{{{SINGLE-QUOTE}}})"};
|
||||
|
||||
if ( not ( exists oCarbCode ) ) then
|
||||
autoCheckDiet := true;
|
||||
else
|
||||
stopCheck := false;
|
||||
for i IN 1 seqto ( count oCarbValue ) do
|
||||
if ( oCarbValue[i] matches pattern "%Controlled Carbohydrate%" ) then
|
||||
autoCheckDiet := false;
|
||||
stopCheck := true;
|
||||
elseif ( oCarbValue[i] matches pattern "%Consistent Carbohydrate%" ) then
|
||||
autoCheckDiet := false;
|
||||
stopCheck := true;
|
||||
else
|
||||
if (not stopCheck) then
|
||||
autoCheckDiet := true;
|
||||
else
|
||||
autoCheckDiet := false;
|
||||
endif;
|
||||
endif;
|
||||
enddo;
|
||||
endif;
|
||||
elseif ( oName matches pattern "Diet%Carb%" ) then
|
||||
autoCheckDiet := false;
|
||||
endif;
|
||||
endif;
|
||||
|
||||
if (autoCheckDiet) then
|
||||
Diet_Order_List.IsSelected := true;
|
||||
endif;
|
||||
|
||||
//***************** End CSR 31945: JML Changes **********************
|
||||
*/
|
||||
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