Initial Checking with all 820 MLMs
This commit is contained in:
@@ -0,0 +1,274 @@
|
||||
maintenance:
|
||||
|
||||
title: SCH_Place_Infection_Prevention_ORDER;;
|
||||
mlmname: SCH_Place_Infection_Prevention_ORDER;;
|
||||
arden: version 2.5;;
|
||||
version: 1.00;;
|
||||
institution: ;;
|
||||
author: SHAMI SHARMA;;
|
||||
specialist: ;;
|
||||
date: 2017-12-19;;
|
||||
validation: testing;;
|
||||
|
||||
library:
|
||||
purpose: Create
|
||||
|
||||
;;
|
||||
explanation:
|
||||
|
||||
Change history
|
||||
07/10/2019 JML CSR# 38386: Modified logic to auto-check lab test based on ED vs. Inpatient location.
|
||||
|
||||
|
||||
;;
|
||||
keywords: ;;
|
||||
knowledge:
|
||||
type: data-driven;;
|
||||
data:
|
||||
/* Set to true if logging is needed.*/
|
||||
log_execution_info:= FALSE;
|
||||
|
||||
standard_libs := mlm {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
|
||||
include standard_libs;
|
||||
SessionType := "Standard";
|
||||
SessionReason := "";
|
||||
RequestingSource := "";
|
||||
user_IDType := "Primary";
|
||||
order_creation_reason := "From MLM";
|
||||
|
||||
using "ObjectsPlusXA.SCM.Common";
|
||||
using namespace "ObjectsPlusXA.SunriseClinicalManager.Common";
|
||||
display_order_form := true;
|
||||
|
||||
PhysicianOrderSet:= event {OrderSetEnter User OrderSet : where OrderSetName = "Physician Clostridium Difficile Order Set"};
|
||||
//InfectionPrevention:= event {OrderEnter User Order : where Name = "Infection Prevention Consult"};
|
||||
//OrderEnter := event{OrderEnter User Order : where Name IN ("Urine Culture","Urine Culture (reflex)","Urinalysis with Reflex Culture","Routine/Microscopic Urinalysis") };
|
||||
(clientGUID, chartGUID, ClientVisitGUID, LocationGUID,CName,IDcode,VisitIDcode) := read last { ClientVisit: ClientGUID, ChartGUID, GUID,
|
||||
CurrentLocationGUID,ClientDisplayName, IDCode,VisitIDCode,AdmitDtm,CurrentLocation };
|
||||
(userguid,user_id ,Username):=read last {UserInfo: guid,idcode,DisplayName};
|
||||
(UNIT) := read last { "select Top 1 case when cc.typecode = {{{SINGLE-QUOTE}}}unit{{{SINGLE-QUOTE}}} then cc.levelcode when b.typecode={{{SINGLE-QUOTE}}}unit{{{SINGLE-QUOTE}}} then b.levelcode when a.typecode={{{SINGLE-QUOTE}}}unit{{{SINGLE-QUOTE}}} then a.levelcode "
|
||||
|| " when cv3l.typecode={{{SINGLE-QUOTE}}}unit{{{SINGLE-QUOTE}}} then cv3l.levelcode else null end as Unit From CV3ClientVisit CV With (nolock) "
|
||||
|| " Inner Join Cv3Location L With (nolock) On L.Guid=CV.CurrentLocationGUID AND CV.Active=1 AND CV.VisitStatus={{{SINGLE-QUOTE}}}ADM{{{SINGLE-QUOTE}}} "
|
||||
|| " Left Join Cv3ClientVisitLocation CVL With (nolock) ON CVL.ClientVisitGUID=CV.GUID Left Join CV3Location CV3L On CV3L.GUID=CVL.LocationGUID "
|
||||
|| " Left Join CV3Location a With (nolock) on CV3L.parentguid= a.guid Left Join CV3Location b With (nolock) on a.parentguid = b.guid "
|
||||
|| " left join cv3location cc With (nolock) on b.parentguid = cc.guid "
|
||||
|| " WHERE CVL.Status={{{SINGLE-QUOTE}}}CUR{{{SINGLE-QUOTE}}} and CV.GUID = " || ClientVisitGUID || " " };
|
||||
|
||||
(ReadUnSub_PatchUD, CP_GUID, OrderName, Startdate, Starttime, sessiontype1) := read { UNSUBMITTED Order: OrderUserData , careproviderguid , name, requesteddate, requestedtime,
|
||||
InitialSessionTypeCode where name IN ("Clostridium Difficile Toxin Gene Testing by PCR","Clostridium Difficile Screening") };
|
||||
(unsub_mlm_name_list,ConReason1_List ):= read { UNSUBMITTED Alert: MLMName,AlertComments Where MLMName = "SCH_CDiff_Alert" };
|
||||
|
||||
|
||||
for j in 1 seqto count ConReason1_List do
|
||||
If EXISTS ConReason1_List[j] then
|
||||
IndicationConsult := ConReason1_List[j];
|
||||
|
||||
Endif;
|
||||
Enddo;
|
||||
|
||||
|
||||
IF(EvokingEventType = "OrderSetEnter") THEN
|
||||
|
||||
|
||||
if(count(ConReason1_List)>0) THEN
|
||||
if(count(Ordername) > 0) then
|
||||
|
||||
orderItemName:="Infection Prevention Consult";
|
||||
// Create a GENERAL order from a catalog item
|
||||
try
|
||||
|
||||
|
||||
// ClientVisit object
|
||||
client_visit_obj := call {{{SINGLE-QUOTE}}}ClientVisit{{{SINGLE-QUOTE}}}.FindByPrimaryKey
|
||||
with ((ClientVisitGUID as number) as {{{SINGLE-QUOTE}}}Int64{{{SINGLE-QUOTE}}});
|
||||
|
||||
// GENERAL catalog item object
|
||||
general_catalog_item := call {{{SINGLE-QUOTE}}}OrderCatalogMasterItem{{{SINGLE-QUOTE}}}.FindByName
|
||||
with orderItemName;
|
||||
|
||||
// CareProvider Object
|
||||
requesting_care_provider_obj := call {{{SINGLE-QUOTE}}}CareProvider{{{SINGLE-QUOTE}}}.FindByPrimaryKey
|
||||
with ((userguid as number) as {{{SINGLE-QUOTE}}}Int64{{{SINGLE-QUOTE}}});
|
||||
|
||||
// Location Object
|
||||
location_guid := read last {"SELECT CurrentLocationGuid FROM CV3ClientVisit "
|
||||
|| " WHERE ClientGuid = " || clientGUID};
|
||||
location_obj := call {{{SINGLE-QUOTE}}}Location{{{SINGLE-QUOTE}}}.FindByPrimaryKey
|
||||
with ((location_guid as number) as {{{SINGLE-QUOTE}}}Int64{{{SINGLE-QUOTE}}});
|
||||
|
||||
// Create GENERAL order
|
||||
GeneralOrder_Obj := call {{{SINGLE-QUOTE}}}GeneralOrder{{{SINGLE-QUOTE}}}.CreateGeneralOrder
|
||||
with client_visit_obj,
|
||||
general_catalog_item,
|
||||
order_creation_reason,
|
||||
requesting_care_provider_obj,
|
||||
RequestingSource,
|
||||
SessionType,
|
||||
SessionReason,
|
||||
location_obj,
|
||||
"Always" as {{{SINGLE-QUOTE}}}AvailabilityOverride{{{SINGLE-QUOTE}}};
|
||||
|
||||
GeneralOrder_Obj.RequestedDate := "T";
|
||||
void := call GeneralOrder_Obj.{{{SINGLE-QUOTE}}}SetEnterpriseDefinedDataItemValue<String>{{{SINGLE-QUOTE}}} with "C Diff Indication",( IndicationConsult AS {{{SINGLE-QUOTE}}}System.String{{{SINGLE-QUOTE}}});
|
||||
|
||||
void := call GeneralOrder_Obj.Save;
|
||||
void := call GeneralOrder_Obj.Dispose;
|
||||
|
||||
|
||||
endtry;
|
||||
|
||||
catch Exception ex
|
||||
error_occurred := true;
|
||||
error_message := "{{+R}}Error in saving prefilled auto order :{{-R}}\n" ||
|
||||
ex.Message || "\n\n";
|
||||
|
||||
endcatch;
|
||||
|
||||
// Clean UP
|
||||
if (location_obj IS NOT NULL) then
|
||||
void := call location_obj.Dispose;
|
||||
location_obj := NULL;
|
||||
endif;
|
||||
|
||||
if (requesting_care_provider_obj IS NOT NULL) then
|
||||
void := call requesting_care_provider_obj.Dispose;
|
||||
requesting_care_provider_obj := NULL;
|
||||
endif;
|
||||
|
||||
if (general_catalog_item IS NOT NULL) then
|
||||
void := call general_catalog_item.Dispose;
|
||||
general_catalog_item := NULL;
|
||||
endif;
|
||||
|
||||
if (client_visit_obj IS NOT NULL) then
|
||||
void := call client_visit_obj.Dispose;
|
||||
client_visit_obj := NULL;
|
||||
endif;
|
||||
|
||||
//email_add:= "sharma.shami@stclair.org";
|
||||
email_add:= "Julie.Fitzpatrick@stclair.org;Emily.Magee@stclair.org";
|
||||
if exist email_add
|
||||
then
|
||||
primary_alert := destination { Email: reminder, "Email Alert - Infection Prevention Consult - C Diff", low, chart, email_add };
|
||||
primary_alert_message := "Consult Infection Prevention Order is Placed. \n"
|
||||
|| "Date Ordered " ||Now||"\n"
|
||||
|| "MRN: " || IDcode ||"\n"
|
||||
|| "Visit ID No: " || VisitIDcode ||"\n"
|
||||
|| "Unit: " || Unit ||"\n"
|
||||
|| "Order Placed By: " || Username ||"\n"
|
||||
|| "Indication for Consult: " || IndicationConsult ||"\n"
|
||||
|| "Order Placed From: CDiff Orderset. \n";
|
||||
else
|
||||
primary_alert_dest := destination { Alert: Warning,"Provider/Email not found", high, chart, 7500 };
|
||||
endif;
|
||||
ENDIF; // Count>0
|
||||
//email_add:= "#InfectionPreventionChampions@stclair.org";
|
||||
ENDIF;
|
||||
|
||||
|
||||
ENDIF; // IF ordersetenter
|
||||
/*
|
||||
IF(EvokingEventType = "OrderEnter") THEN
|
||||
|
||||
/*Result := read last { " SELECT TOP 1 O.Name "
|
||||
||" FROM Cv3Order (NOLOCK) O "
|
||||
||" INNER JOIN CV3OrderTaskOccurrence ot on ot.ClientGUID=O.ClientGUID and ot.OrderGUID=O.GUID and ot.TaskStatusCode={{{SINGLE-QUOTE}}}Performed{{{SINGLE-QUOTE}}} "
|
||||
|
||||
||" WHERE ot.PerformedFromDtm >= DATEADD(HOUR, -48, GETDATE())"
|
||||
||" AND O.Status= {{{SINGLE-QUOTE}}}ACTIVE{{{SINGLE-QUOTE}}} AND O.ActivateStatus={{{SINGLE-QUOTE}}}AUA1{{{SINGLE-QUOTE}}} "
|
||||
||" AND (NAME LIKE {{{SINGLE-QUOTE}}}%BISACODYL%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%CALCIUM POLYCARBOPHIL%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%DOCUSATE CALCIUM%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%DOCUSATE SODIUM%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%GLYCERIN SUPPOSITORY%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%MAGNESIUM CITRATE%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%MAGNESIUM HYDROXIDE%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%MINERAL OIL%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%POLYETHYLENE GLYCOL%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%PSYLLIUM%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%SENNA%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%SENNA/DOCUSATE SODIUM%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%SODIUM BIPHOSPHATE/SODIUM PHOSPHATE%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%Dulcolax%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%Fibercon%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%Surfak%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%Colace%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%Milk of Magnesia%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%CoLyte%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%GoLYTELY%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%NuLytely%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%OCL Solution%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%MiraLax%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%MoviPrep%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%Hydrocil Instant%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%Senokot%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%Peri-Colace%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%Senokot S%{{{SINGLE-QUOTE}}} OR "
|
||||
||" NAME LIKE {{{SINGLE-QUOTE}}}%Fleets Enema%{{{SINGLE-QUOTE}}} ) "
|
||||
||" AND O.ClientGUID = " || SQL(ClientGuid)
|
||||
||" AND O.ChartGUID = " || SQL(ChartGuid)
|
||||
||" AND O.ClientVisitGUID = " || SQL(ClientVisitGUID)
|
||||
}; */
|
||||
|
||||
/* this_order := read last {Order : Name Referencing EvokingObject};
|
||||
(CatalogItemObj) := read last {Order: OrderCatalogMasterItem REFERENCING EvokingObject};
|
||||
order, Summary:= read last {Order: Name,Summaryline REFERENCING EvokingObject};
|
||||
//IF(EXISTS Result ) THEN
|
||||
//email_add:= "#InfectionPreventionChampions@stclair.org";
|
||||
//email_add:= "Janet.nordin@stclair.org";
|
||||
email_add:= "sharma.shami@stclair.org";
|
||||
IF(MLML = "SCH_URINE_Culture_Alert") THEN
|
||||
A:=1; Break;
|
||||
if exist email_add then
|
||||
primary_alert := destination { Email: reminder, "Email Alert - Infection Prevention Consult - URINE CULTURE", low, chart, email_add };
|
||||
primary_alert_message := "Consult Infection Prevention Order is Placed. \n"
|
||||
|| "Date Ordered " ||Now||"\n"
|
||||
|| "MRN: " || IDcode ||"\n"
|
||||
|| "Visit ID No: " || VisitIDcode ||"\n"
|
||||
|| "Unit: " || Unit ||"\n"
|
||||
|| "Order Placed By: " || Username ||"\n"
|
||||
|| "Indication for Consult: " || IndicationConsult1 ||"\n"
|
||||
|| "Order Placed From: Urine Culture. \n";
|
||||
else
|
||||
primary_alert_dest := destination { Alert: Warning,"Provider/Email not found", high, chart, 7500 };
|
||||
endif;
|
||||
|
||||
ELSE
|
||||
A:=2; Break;
|
||||
if exist email_add then
|
||||
primary_alert := destination { Email: reminder, "Email Alert for Placing Infection Prevention Order", low, chart, email_add };
|
||||
primary_alert_message := "Consult Infection Prevention Order is Placed. \n"
|
||||
|| "Date Ordered " ||Now||"\n"
|
||||
|| "MRN: " || IDcode ||"\n"
|
||||
|| "Visit ID No: " || VisitIDcode ||"\n"
|
||||
|| "Unit: " || Unit ||"\n"
|
||||
|| "Order Placed By: " || Username ||"\n"
|
||||
|| "" || Summary ||"\n" ;
|
||||
|
||||
else
|
||||
primary_alert_dest := destination { Alert: Warning,"Provider/Email not found", high, chart, 7500 };
|
||||
endif;
|
||||
|
||||
ENDIF;
|
||||
|
||||
ENDIF;
|
||||
|
||||
*/
|
||||
|
||||
;;
|
||||
evoke:
|
||||
PhysicianOrderSet;
|
||||
// InfectionPrevention;
|
||||
//OrderEnter;
|
||||
;;
|
||||
logic:
|
||||
conclude true;
|
||||
|
||||
;;
|
||||
action: IF exist email_add
|
||||
then
|
||||
write primary_alert_message at primary_alert;
|
||||
ENDIF;
|
||||
;;
|
||||
Urgency: 50;;
|
||||
end:
|
||||
Reference in New Issue
Block a user