Initial Checking with all 820 MLMs
This commit is contained in:
208
MLMStripper/bin/Debug/SCH/SCH_CREATE_MEDICARE44.mlm
Normal file
208
MLMStripper/bin/Debug/SCH/SCH_CREATE_MEDICARE44.mlm
Normal file
@@ -0,0 +1,208 @@
|
||||
maintenance:
|
||||
|
||||
title: SCH_CREATE_MEDICARE44;;
|
||||
mlmname: SCH_CREATE_MEDICARE44;;
|
||||
arden: version 2.5;;
|
||||
version: 0.00;;
|
||||
institution: St. Clair Hospital ;;
|
||||
author: Shawn Head, Allscripts/St. Clair Hospital x7468;;
|
||||
specialist: Peggy Karish, Allscripts/St. Clair Hospital ;;
|
||||
date: 2017-05-26;;
|
||||
validation: testing;;
|
||||
|
||||
library:
|
||||
purpose: Automatically create a duplicate Code 44 order to be sent to Physician Advison
|
||||
;;
|
||||
explanation: When patients are being changed to a Medicare Code status of 44 Medidare requires 2 signoff{{{SINGLE-QUOTE}}}s (Physician advisor and attending physician).
|
||||
|
||||
***********************CHANGE HISTORY************************
|
||||
05-27-2017 - STH - CSR#: 32795 - created
|
||||
|
||||
*************************************************************
|
||||
|
||||
;;
|
||||
keywords: Create Order, Medicare, Status 44
|
||||
;;
|
||||
citations:
|
||||
;;
|
||||
knowledge:
|
||||
type: data-driven;;
|
||||
data:
|
||||
|
||||
/*------------------------------BEGIN USER EDIT SECTION------------------------------*/
|
||||
|
||||
|
||||
(UpdateStringFields) := ("NUR_GenAdditionalTxt","CM_Rationale");
|
||||
(UpdateDateFields) := ("CM_ Communcation Date");
|
||||
(UpdateCheckBoxFields) := ("CM_Observation CB");
|
||||
|
||||
|
||||
/*------------------------------END USER EDIT SECTION------------------------------*/
|
||||
|
||||
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";
|
||||
|
||||
on_order_enter := event {OrderWorksheetSubmit User } ;
|
||||
from_order_name := "Code 44 - Attending";
|
||||
CreateCode44Order := false;
|
||||
UnSub_Code44_Attending_order := read last { UNSUBMITTED Order: Name where name = "Code 44 - Physician Advisor" };
|
||||
if(UnSub_Code44_Attending_order is null) then
|
||||
userguid,user_id :=read last {UserInfo: guid,idcode};
|
||||
(ReadUnSub_Code44_AdvisorUD, CP_GUID, OrderName, sessiontype, requesteddate, requestedtime) := read last { UNSUBMITTED Order: OrderUserData , careproviderguid , name , InitialSessionTypeCode, RequestedDate, RequestedTime where name = "Code 44 - Attending"};
|
||||
if(count(ReadUnSub_Code44_AdvisorUD) > 0) then
|
||||
(clientGUID, chartGUID, ClientVisitGUID, LocationGUID) := read last { ClientVisit: ClientGUID, ChartGUID, GUID, CurrentLocationGUID };
|
||||
(Code44_Advisor) := read last { " select guid from cv3order o with (nolock)
|
||||
where o.ClientGUID = " || sql(ClientGUID)
|
||||
|| " and o.chartguid = " || sql(chartGUID)
|
||||
|| " and o.clientvisitguid = " || sql(ClientVisitGUID)
|
||||
|| " and o.name = ({{{SINGLE-QUOTE}}}Code 44 - Physician Advisor{{{SINGLE-QUOTE}}})
|
||||
and o.orderstatuscode not in ({{{SINGLE-QUOTE}}}CANC{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}CAND{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}CANP{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}CANT{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}DISC{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}DISCD{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}DISCR{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}DISCT{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}HISDP{{{SINGLE-QUOTE}}}) " };
|
||||
if(Code44_Advisor is null) then
|
||||
(userdatacode, value ) := read { OrderUserData: UserDataCode, Value REFERENCING ReadUnSub_Code44_AdvisorUD } ;
|
||||
CreateCode44Order := true;
|
||||
endif;
|
||||
endif;
|
||||
endif;
|
||||
|
||||
if(CreateCode44Order) then
|
||||
|
||||
try
|
||||
CV_Obj := call {{{SINGLE-QUOTE}}}ClientVisit{{{SINGLE-QUOTE}}}.FindByPrimaryKey
|
||||
with ((ClientVisitGuid as number) as {{{SINGLE-QUOTE}}}Int64{{{SINGLE-QUOTE}}}) ;
|
||||
|
||||
WSSessionType := trim(sessiontype[1]);
|
||||
if(sessiontype[1] = "Hold") then
|
||||
WSSessionReason := "Hold Orders";
|
||||
else
|
||||
WSSessionReason := "";
|
||||
endif;
|
||||
|
||||
|
||||
//This will find the care provider GUID for the "Physician Advisor" user to be used for the auto creatd order.
|
||||
CP_GUID := read last { " select cp.GUID from CV3CareProvider cp with (nolock)
|
||||
inner join cv3user u with (nolock)
|
||||
on cp.guid = u.GUID
|
||||
and u.IDCode = {{{SINGLE-QUOTE}}}zzzpacm{{{SINGLE-QUOTE}}} " };
|
||||
|
||||
RequestedBy_obj := call {{{SINGLE-QUOTE}}}CareProvider{{{SINGLE-QUOTE}}}.FindByPrimaryKey
|
||||
with ((CP_GUID as number) as {{{SINGLE-QUOTE}}}Int64{{{SINGLE-QUOTE}}});
|
||||
|
||||
location_obj := call {{{SINGLE-QUOTE}}}Location{{{SINGLE-QUOTE}}}.FindByPrimaryKey
|
||||
with ((LocationGUID as number) as {{{SINGLE-QUOTE}}}Int64{{{SINGLE-QUOTE}}});
|
||||
|
||||
endtry;
|
||||
catch Exception ex
|
||||
error_occurred := true;
|
||||
error_message := "{{+R}}Common Data:{{-R}}\n" ||
|
||||
ex.Message || "\n\n";
|
||||
|
||||
if ( CV_Obj is NOT NULL ) then
|
||||
void:= call CV_Obj.Dispose;
|
||||
CV_Obj:= null;
|
||||
endif;
|
||||
|
||||
if ( RequestedBy_obj is NOT NULL ) then
|
||||
void:= call RequestedBy_obj.Dispose;
|
||||
RequestedBy_obj:= null;
|
||||
endif;
|
||||
|
||||
if ( location_obj is NOT NULL ) then
|
||||
void:= call location_obj.Dispose;
|
||||
location_obj:= null;
|
||||
endif;
|
||||
|
||||
endcatch;
|
||||
|
||||
|
||||
try
|
||||
|
||||
Catalog_Item_Name := "Code 44 - Physician Advisor";
|
||||
order_type := "other";
|
||||
modifier := "";
|
||||
modversion := "";
|
||||
WSRequestedBySource := "Protocol Order";
|
||||
order_Creation_Reason := from_order_name || " order.";
|
||||
|
||||
|
||||
order_catalog_item := call {{{SINGLE-QUOTE}}}OrderCatalogMasterItem{{{SINGLE-QUOTE}}}.FindByName
|
||||
with Catalog_Item_Name;
|
||||
|
||||
GeneralOrder_Obj := call {{{SINGLE-QUOTE}}}GeneralOrder{{{SINGLE-QUOTE}}}.CreateGeneralOrder
|
||||
with CV_Obj,
|
||||
order_catalog_item,
|
||||
order_Creation_Reason,
|
||||
RequestedBy_obj,
|
||||
WSRequestedBySource,
|
||||
WSSessionType,
|
||||
WSSessionReason,
|
||||
location_obj,
|
||||
"Always" as {{{SINGLE-QUOTE}}}AvailabilityOverride{{{SINGLE-QUOTE}}};
|
||||
test2 := (extract year requesteddate) formatted with "%04d" || "-" ||
|
||||
(extract month requesteddate) formatted with "%02d" || "-" ||
|
||||
(extract day requesteddate) formatted with "%02d";
|
||||
|
||||
GeneralOrder_obj.RequestedTime := requestedtime;
|
||||
|
||||
RequestedDate := (RequestedDate as time);
|
||||
ModReqDate := (extract year RequestedDate) formatted with "%04d" || "-" ||
|
||||
(extract month RequestedDate) formatted with "%02d" || "-" ||
|
||||
(extract day RequestedDate) formatted with "%02d";
|
||||
ModReqDate := ModReqDate as string;
|
||||
|
||||
|
||||
GeneralOrder_obj.RequestedDate := ModReqDate;
|
||||
|
||||
|
||||
for x in (1 seqto(count(userdatacode))) do
|
||||
ud1 := userdatacode[x];
|
||||
v1 := value[x];
|
||||
if(userdatacode[x] in (UpdateStringFields)) then
|
||||
retval := call GeneralOrder_obj.{{{SINGLE-QUOTE}}}SetEnterpriseDefinedDataItemValue<String>{{{SINGLE-QUOTE}}} with
|
||||
userdatacode[x], value[x] ;
|
||||
endif;
|
||||
if(userdatacode[x] in (UpdateDateFields)) then
|
||||
PatientCommunicationDate := ((value[x] as time) as {{{SINGLE-QUOTE}}}System.DateTime{{{SINGLE-QUOTE}}});
|
||||
val6 := call GeneralOrder_obj.{{{SINGLE-QUOTE}}}SetEnterpriseDefinedDataItemValue<Nullable<DateTime>>{{{SINGLE-QUOTE}}} with
|
||||
userdatacode[x],PatientCommunicationDate ;
|
||||
endif;
|
||||
if(userdatacode[x] in (UpdateCheckBoxFields)) then
|
||||
AttendingOrdObsCB := (value[x] as {{{SINGLE-QUOTE}}}Boolean{{{SINGLE-QUOTE}}});
|
||||
retval := call GeneralOrder_obj.{{{SINGLE-QUOTE}}}SetEnterpriseDefinedDataItemValue<Boolean>{{{SINGLE-QUOTE}}} with
|
||||
userdatacode[x], AttendingOrdObsCB;
|
||||
endif;
|
||||
enddo;
|
||||
|
||||
if( GeneralOrder_obj is NOT NULL ) then
|
||||
void := call GeneralOrder_Obj.Save;
|
||||
void := call GeneralOrder_Obj.Dispose;
|
||||
endif;
|
||||
endtry;
|
||||
catch Exception ex
|
||||
error_occurred := true;
|
||||
error_message := "{{+R}}New General order:{{-R}}\n" ||
|
||||
ex.Message || "\n\n";
|
||||
endcatch;
|
||||
|
||||
if ( Order_catalog_item is NOT NULL ) then
|
||||
void:= call Order_catalog_item.Dispose;
|
||||
Order_catalog_item:= null;
|
||||
endif;
|
||||
|
||||
endif;
|
||||
;;
|
||||
priority: 50
|
||||
;;
|
||||
evoke:
|
||||
on_order_enter;
|
||||
;;
|
||||
logic:
|
||||
;;
|
||||
action:
|
||||
;;
|
||||
Urgency: 50;;
|
||||
end:
|
||||
Reference in New Issue
Block a user