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,236 @@
maintenance:
title: Toradol with Ibuprofen on Order Set;;
mlmname: FORM_Set_Toradol_with_Ibuprofen;;
arden: version 2.5;;
version: 5.50;;
institution: St Clair Hospital;;
author: Debbie Eiler, Allscripts ;;
specialist: Shawn Head, Allscripts;;
date: 2013-10-14;;
validation: testing;;
library:
purpose: schedule Ibuprofen for 6 hours after last dose of Toradol
;;
explanation: This MLM is called from the FBC C Section Order Set
Change history
10.14.2013 STH Created as a break/fix solution for FBC C Setion Order set.
02.03.2014 STH Trackit Ticket #: 163421 correct issue with Hold session
04.26.2016 TMS CSR 33465: Add call on Form Close to Medication Order Management MLM
;;
keywords: Called MLMs, FBC C section, Toradol, Ibuprofen
;;
knowledge:
type: data-driven;;
data:
// Communication object Form object Arden ClientInfo object
(this_communication, this_form, client_info_obj) := argument;
standard_libs := mlm {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
include standard_libs;
using "ObjectsPlusXA.SCM.Forms";
using namespace "ObjectsPlusXA.SunriseClinicalManager.Forms";
log_execution_info := FALSE;
error_message:="";
field_list := this_form.fields;
CallingEvent := this_communication.CallingEvent;
itemnames := field_list.value.name;
ketorolac_selected := false;
IBU_selected := false;
freqOccNum := ();
RequestedDateOccNum := ();
RequestedTimeOccNum := ();
for x in (1 seqto count(field_list)) do
fielditem_values := field_list[x].value;
itemnames := fielditem_values.name;
selected := fielditem_values.isselected;
if ("Ketorolac Inj" in itemnames) or ("Ibuprofen 800mg Tab" in itemnames) then
for j in (1 seqto count(itemnames)) do
if itemnames[j] = "Ketorolac Inj" and selected[j] = true then
ketorolac_selected := true;
endif;
if itemnames[j] = "Ibuprofen 800mg Tab" and selected[j] = true then
IBU_selected := true;
endif;
enddo;
endif;
if trim(field_list[x].DataItemName) = "FrequencyCode" then
freqOccNum := freqOccNum, field_list[x].Control_MultiFieldOccNum;
endif;
if trim(field_list[x].DataItemName) = "RequestedDate" then
RequestedDateOccNum := RequestedDateOccNum, field_list[x].Control_MultiFieldOccNum;
endif;
if trim(field_list[x].DataItemName) = "RequestedTime" then
RequestedTimeOccNum := RequestedTimeOccNum, field_list[x].Control_MultiFieldOccNum;
endif;
enddo;
// FORM CLOSE EVENT SECTION
If CallingEvent = "FormClose" and ketorolac_selected = true and IBU_selected = true Then
freqOccNum := sort Data freqOccNum;
RequestedDateOccNum := sort data RequestedDateOccNum;
RequestedTimeOccNum := sort data RequestedTimeOccNum;
FrequencyCode_Toradol := first of (field_list where field_list.DataItemName = "FrequencyCode" and field_List.Control_MultiFieldOccNum = freqOccNum[1]);
StartDate_Toradol := first of (field_list where field_list.DataItemName = "RequestedDate" and field_List.Control_MultiFieldOccNum = RequestedDateOccNum[1]);
StartTime_Toradol := first of (field_list where field_list.DataItemName = "RequestedTime" and field_List.Control_MultiFieldOccNum = RequestedTimeOccNum[1]);
StartDate_IBU := first of (field_list where field_list.DataItemName = "RequestedDate" and field_List.Control_MultiFieldOccNum = RequestedDateOccNum[2]);
StartTime_IBU := first of (field_list where field_list.DataItemName = "RequestedTime" and field_List.Control_MultiFieldOccNum = RequestedTimeOccNum[2]);
FreqCodeValue_Toradol := FrequencyCode_Toradol.value.FrequencySummary;
StDateValue_Toradol := StartDate_Toradol.value;
StTimeValue_Tordol := StartTime_Toradol.value;
StTimeValue_IBU := StartTime_IBU.value;
THR := Extract Hour NOW;
TMN := Extract Minute NOW;
if THR < 10 then
THR := "0" || THR;
endif;
if TMN < 10 then
TMN := "0" || TMN;
endif;
PlusLocation := FIND "+" IN STRING StDateValue_Toradol ;
TLocation := FIND "T" IN STRING StDateValue_Toradol ;
If TLocation = 1 and PlusLocation = 0 then
StDateValue_Toradol := (now as time);
StTimeValue_Tordol.ReqTimeCode := "Scheduled/Start Time";
StTimeValue_Tordol.ReqTimeValue := THR || ":" || TMN;
endif;
If PlusLocation > 0 then
PlusDays := SUBSTRING 1 CHARACTERS STARTING AT LENGTH OF StDateValue_Toradol FROM StDateValue_Toradol ;
StDateValue_Toradol := (now as time) + (PlusDays as number) day;
StTimeValue_Tordol.ReqTimeCode := "Scheduled/Start Time";
StTimeValue_Tordol.ReqTimeValue := THR || ":" || TMN;
endif;
ReqTimeCode_Tordol := StTimeValue_Tordol.ReqTimeCode;
SchHour_Tordol:= substring 2 characters from StTimeValue_Tordol.ReqTimeValue as number;
SchMin_Tordol := substring 2 characters starting at 4 from StTimeValue_Tordol.ReqTimeValue;
if (ReqTimeCode_Tordol = "Scheduled/Start Time") then
HR := SchHour_Tordol;
MN := SchMin_Tordol;
else
HR := Extract Hour NOW;
MN := Extract Minute Now;
endif;
if HR < 10 then
HR := "0" || HR;
endif;
if MN < 10 then
MN := "0" || MN;
endif;
HR_seconds := (60 * (HR as number)) * 60;
MN_Seconds := (MN as number) * 60;
Calc_starttime_toradol := ((StDateValue_Toradol + (HR_seconds seconds)) + (MN_Seconds seconds));
Freq_length := length of FreqCodeValue_Toradol as number;
freq_endposition := freq_length;
begin_freq := substring 1 characters from FreqCodeValue_Toradol as string;
end_freq := substring 1 characters starting at freq_endposition from FreqCodeValue_Toradol as string;
if begin_freq = "Q" then
Freqnum_Toradol := Freq_length - 2;
Schnum_Toradol := substring Freqnum_Toradol characters starting at 2 from FreqCodeValue_Toradol;
endif;
schnum_toradol := schnum_Toradol as number;
if (end_freq = "M") then
calc_schnum_seconds := (((86400 / (60 * schnum_toradol)) - 1) * (60 * schnum_toradol)); //take the minutes times 60 to get the seconds, divide that
elseif (end_freq = "H") then
calc_schnum_seconds := ((((24 / schnum_Toradol)-1) * schnum_toradol) * 60) * 60;
endif;
sched_time := read { "select ScheduledTime from CV3FixedScheduleDefinition fs "
|| " inner join CV3CodedFreqTranslation ft on fs.ParentGUID = ft.GUID "
|| " where ft.FrequencyCode = " || sql(FreqCodeValue_Toradol)
|| " and ft.FrequencyClass = {{{SINGLE-QUOTE}}}<Default>{{{SINGLE-QUOTE}}} "};
sched_time := sort data sched_time;
sched_starttime := "";
sched_endtime := "";
if (count(sched_time) = 0) or (ReqTimeCode_Tordol = "Scheduled/Start Time") then
calc_startDTTM_IBU := (Calc_starttime_toradol + calc_schnum_seconds seconds) + 21600 seconds;
else
tmp_starthhmn := HR || MN;
for s in (1 seqto count(sched_time)) do
if ((sched_time[s] as number) > (tmp_starthhmn as number)) and sched_starttime = "" then
sched_starttime := sched_time[s];
endif;
if ((sched_time[s] as number) < (tmp_starthhmn as number)) then
sched_endtime := sched_time[s];
endif;
enddo;
length_sched_endtime := length (sched_endtime as string);
sched_minPOS := ((length_sched_endtime as number) - 2) as number;
calc_schMIN := (substring 2 characters starting at (sched_minPOS + 1) from (sched_endtime as string)) as number;
calc_schHR := (substring (sched_minPOS as number) characters from (sched_endtime as string)) as number;
calc_schMIN_Seconds := calc_schMIN * 60;
calc_schHR_Seconds := (calc_schHR * 60) * 60;
calc_startDTTM_IBU := (((StDateValue_Toradol + 86400 seconds) + calc_schMIN_Seconds seconds) + calc_schHR_seconds seconds) + 21600 seconds;
endif;
format_hr := extract hour calc_startDTTM_IBU;
if format_hr < 10 then
format_hr := "0" || format_hr;
endif;
format_min := extract minute calc_startDTTM_IBU;
if format_min < 10 then
format_min := "0" || format_min;
endif;
IBU_date_extract := (extract month calc_startDTTM_IBU) || "-" || (extract day calc_startDTTM_IBU) || "-" || (extract year calc_startDTTM_IBU);
IBU_time_extract := format_hr || ":" || format_min;
StTimeValue_IBU.ReqTimeCode := "Scheduled/Start Time";
StTimeValue_IBU.ReqTimeValue := IBU_time_extract;
StartDate_IBU.Value := calc_startDTTM_IBU;
endif; // Close Section
If CallingEvent = "FormClose" then
Med_Order_Mgt := mlm {{{SINGLE-QUOTE}}}FORM_SET_Rx_Medication_Order_Mgt{{{SINGLE-QUOTE}}};
(this_communication, this_form) := call Med_Order_Mgt with this_communication, this_form, client_info_obj;
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: