192 lines
5.7 KiB
Plaintext
192 lines
5.7 KiB
Plaintext
maintenance:
|
|
|
|
title: SCH_Func_Discontinue_By_OrderGuid;;
|
|
mlmname: SCH_Func_Discontinue_By_OrderGuid;;
|
|
arden: version 2.5;;
|
|
version: 1.00;;
|
|
institution: ;;
|
|
author: Teresa Spicuzza;;
|
|
specialist: Teresa Spicuzza;;
|
|
date: 2017-10-23;;
|
|
validation: testing;;
|
|
|
|
library:
|
|
purpose: This MLM will auto discontinue an order as identified by the order guid
|
|
sent by the calling MLM
|
|
;;
|
|
explanation:
|
|
12.20.2017 TMS CSR# 35886 Created using SCH_Func_Discontinue_Order as a reference
|
|
;;
|
|
keywords:
|
|
;;
|
|
citations:
|
|
;;
|
|
knowledge:
|
|
type: data-driven;;
|
|
data:
|
|
// Specify which .NET assemblies need to be loaded for ObjectsPlus
|
|
standard_libs := MLM {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
|
|
using "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
|
|
using "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
|
|
using "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
|
|
using "ObjectsPlusXA.SCM";
|
|
using "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
|
|
using "SCMLib";
|
|
|
|
using namespace "System";
|
|
using namespace "System.Exception";
|
|
using namespace "System.Windows.Forms";
|
|
using namespace "ObjectsPlusXA.SunriseClinicalManager";
|
|
using namespace "SCMLib.PObj";
|
|
using namespace "SCMLib.PObj.OrderPObj";
|
|
include standard_libs;
|
|
|
|
local_session := CDS_SESSION.local;
|
|
error_occurred := false;
|
|
error_message := "";
|
|
|
|
|
|
log_execution_info := false;
|
|
( OrderGuid,
|
|
RequestedByGUID,
|
|
visitguid,
|
|
Reason,
|
|
Source
|
|
|
|
) := argument;
|
|
|
|
MedicationOrder_dest := destination { ObjectsPlus } with
|
|
[ alert_type := "Warning",
|
|
short_message := "Object created by MLM ",
|
|
priority := "low",
|
|
scope := "chart",
|
|
rule_group := "Order Object",
|
|
rule_number := 2017 ];
|
|
|
|
//---------------------------------------------------------------
|
|
// Error destination
|
|
//---------------------------------------------------------------
|
|
error_destination := destination { Alert } with [
|
|
alert_type := "Warning",
|
|
short_message := "ObjectsPlus Error from MLM",
|
|
priority := "low",
|
|
scope := "chart",
|
|
Rule_group := "ObjectsPlus Error from MLM",
|
|
Rule_number := 1008,
|
|
Rule_subgroup := "",
|
|
Send_with_order := "",
|
|
Alert_dialog_settings := "",
|
|
Display_alert := true ];
|
|
|
|
If exist OrderGuid Then
|
|
|
|
location_guid := Read First {" Select CurrentLocationGUID from CV3ClientVisit Where GUID = " || visitGuid || " "} ;
|
|
|
|
order_Creation_Reason := "Created by MLM";
|
|
error_destination := destination { Alert } with [
|
|
alert_type := "Warning",
|
|
short_message := "ObjectsPlus Error from MLM",
|
|
priority := "low",
|
|
scope := "chart",
|
|
Rule_group := "ObjectsPlus Error from MLM",
|
|
Rule_number := 1008,
|
|
Rule_subgroup := "",
|
|
Send_alert_with_order := "",
|
|
Alert_dialog_settings := "",
|
|
Display_alert := true ];
|
|
|
|
|
|
// Common data
|
|
Try
|
|
// .Net version of Client Visit Object
|
|
ClientVisit_obj := call {{{SINGLE-QUOTE}}}ClientVisit{{{SINGLE-QUOTE}}}.FindByPrimaryKey with ((visitGuid as number) as {{{SINGLE-QUOTE}}}Int64{{{SINGLE-QUOTE}}}) ;
|
|
RequestedBy_obj := call {{{SINGLE-QUOTE}}}CareProvider{{{SINGLE-QUOTE}}}.FindByPrimaryKey with ((RequestedByGUID as number) as {{{SINGLE-QUOTE}}}Int64{{{SINGLE-QUOTE}}});
|
|
error_occurred := false;
|
|
Endtry;
|
|
|
|
Catch Exception ex
|
|
error_occurred := true;
|
|
error_message := "{{+R}}Common Data:{{-R}}\n" || ex.Message || "\n\n";
|
|
If ClientVisit_obj IS NOT NULL then
|
|
void := call ClientVisit_obj.Dispose;
|
|
ClientVisit_obj := NULL;
|
|
Endif;
|
|
If RequestedBy_obj IS NOT NULL then
|
|
void := call RequestedBy_obj.Dispose;
|
|
RequestedBy_obj := NULL;
|
|
Endif;
|
|
|
|
Endcatch;
|
|
|
|
|
|
Try
|
|
|
|
RequestedBySource := Source;
|
|
OrderDiscontinuationReason := Reason;
|
|
order_obj := new net_object {{{SINGLE-QUOTE}}}SCMLib.PObj.OrderPObj{{{SINGLE-QUOTE}}} with OrderGuid;
|
|
|
|
order_obj.SuppressSignOnSubmit := true;
|
|
order_obj.ToBeSigned := false;
|
|
|
|
now_dtm := now + 1 minute;
|
|
date_str := ((extract year now_dtm) as string) || "-" ||
|
|
(extract month now_dtm) formatted with "%0.2d" || "-" ||
|
|
(extract day now_dtm) formatted with "%0.2d";
|
|
time_str := (extract hour now_dtm) formatted with "%0.2d" || ":" ||
|
|
(extract minute now_dtm) formatted with "%0.2d" || ":" ||
|
|
(extract second now_dtm) formatted with "%0.2d";
|
|
|
|
care_provider_guid_str :=(RequestedBy_obj.PrimaryKey as {{{SINGLE-QUOTE}}}Int64{{{SINGLE-QUOTE}}}) as string;
|
|
|
|
dc_order := call order_obj.Discontinue with OrderDiscontinuationReason,
|
|
date_str,
|
|
time_str,
|
|
RequestedBySource,
|
|
care_provider_guid_str;
|
|
|
|
|
|
Endtry;
|
|
|
|
Catch Exception ex
|
|
error_occurred := true;
|
|
error_message := "{{+R}}Discontinuing order:{{-R}}\n" || ex.Message || "\n\n";
|
|
DiscontinueOrder := True ;
|
|
EndCatch;
|
|
|
|
DiscontinueOrder := False ;
|
|
|
|
Endif;
|
|
|
|
|
|
;;
|
|
priority: 50
|
|
;;
|
|
evoke:
|
|
;;
|
|
logic:
|
|
;;
|
|
action:
|
|
|
|
if error_occurred
|
|
then
|
|
|
|
write "An error has occurred in the MLM {{+B}}SCH_Func_Discontinue_By_OrderGuid{{-B}} " ||
|
|
"Please notify your System Administrators that an error message has " ||
|
|
"occurred for this patient. They will review the following error(s) " ||
|
|
"message: \n" at error_destination;
|
|
write error_message at error_destination;
|
|
|
|
endif;
|
|
|
|
|
|
|
|
if EXISTS MedicationOrder_dest then
|
|
write true at MedicationOrder_dest;
|
|
endif;
|
|
|
|
return error_occurred;
|
|
|
|
;;
|
|
Urgency: 50;;
|
|
end:
|