234 lines
8.7 KiB
Plaintext
234 lines
8.7 KiB
Plaintext
maintenance:
|
|
|
|
title: SCH_Auto_Generate_Orders ;;
|
|
mlmname: SCH_Auto_Generate_Orders ;;
|
|
arden: version 16.3;;
|
|
version: 16.3;;
|
|
institution: SCH;;
|
|
author: Shubhang Acharya;;
|
|
specialist: ;;
|
|
date: 2017-08-01;;
|
|
validation: testing;;
|
|
|
|
library:
|
|
purpose: Create order through MLM.
|
|
|
|
Argument Required ::
|
|
1) Client visit GUID
|
|
2) client_guid
|
|
3) user_GUID
|
|
4) location_guid
|
|
5) Order_Type ( Pass anyone from below three value based on performing operation )
|
|
A. GeneralOrder
|
|
B. MedicationOrder
|
|
C. DiagnosticOrder
|
|
6) orderItemName ( Pass Name of Order )
|
|
7) order_Creation_Reason ( Pass reason for order creation. )
|
|
8) RequestingSource ( Pass RequestedBySource (must be in dictionary) )
|
|
9) SessionType ( Pass SessionType )
|
|
10) SessionReason ( Pass SessionReason )
|
|
|
|
NOTE: There is commented code in MLM in case developer wants to set custom form field values.
|
|
|
|
Sample Argument ::
|
|
|
|
MLM_Name := MLM {{{SINGLE-QUOTE}}}SCH_Auto_Generate_Orders{{{SINGLE-QUOTE}}}; // MLM name
|
|
|
|
orderItemName := orderItemName; //"CBC W/O Differential"; // "Activity" // Gen_Order ;// "Dietician Consult";
|
|
//orderItemModifier := ".";
|
|
//orderItemVersion := "";
|
|
order_Creation_Reason := "From MLM";
|
|
RequestingSource := "";
|
|
SessionType := "Standard";
|
|
SessionReason := ""; //SessionReason should be blank for Session Type "Standard Orders"
|
|
|
|
//user_GUID := 9000010934301190;
|
|
|
|
|
|
location_guid := read last {"SELECT CurrentLocationGUID FROM CV3ClientVisit " ||
|
|
" where ClientGUID = " || ClientGUID};
|
|
//Filed_1 := "NUR_PatientStatus"; // set Consult Call field on order
|
|
//Val_1 := "Inpatient";
|
|
|
|
Order_Type := "DiagnosticOrder";
|
|
|
|
Status := call MLM_Name with ClientVisitGUID,ClientGUID,user_GUID,location_guid,Order_Type,orderItemName
|
|
,order_Creation_Reason,RequestingSource,SessionType,SessionReason;//,Filed_1,Val_1;
|
|
|
|
|
|
Return Type ::
|
|
MLM will return Success if Order created Successfully.
|
|
MLM will return error_message if any error generate while creating Orders.
|
|
|
|
|
|
Modification History:
|
|
--------------------------------------------------
|
|
08.01.2017 SAcharya - CSR# 35187: MLM Created.
|
|
;;
|
|
explanation:
|
|
|
|
;;
|
|
keywords: Physician Documenation, Default date
|
|
;;
|
|
knowledge:
|
|
type: data-driven;;
|
|
data:
|
|
|
|
//(this_documentcommunication) := argument;
|
|
|
|
(client_visit_guid,client_guid,user_GUID,location_guid,Order_Type,orderItemName,Catalog_Item_Modifier
|
|
,order_Creation_Reason,RequestingSource,SessionType,SessionReason
|
|
) := argument;
|
|
|
|
log_execution_info := FALSE;
|
|
|
|
standard_libs := MLM {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
|
|
include standard_libs;
|
|
|
|
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 := 1001,
|
|
Rule_subgroup := "",
|
|
Send_with_order := "",
|
|
Alert_dialog_settings := "",
|
|
Display_alert := true ];
|
|
|
|
mlm_name := "SCH_Auto_Generate_Orders";
|
|
|
|
;;
|
|
priority: 50
|
|
;;
|
|
evoke:
|
|
;;
|
|
logic:
|
|
|
|
If Not Called_By_Editor Then
|
|
try
|
|
// Get the Client Visit object.
|
|
client_visit_obj := call {{{SINGLE-QUOTE}}}ClientVisit{{{SINGLE-QUOTE}}}.FindByPrimaryKey
|
|
with ((client_visit_guid as number) as {{{SINGLE-QUOTE}}}Int64{{{SINGLE-QUOTE}}}) ; //OK
|
|
|
|
// get CatalogMasterItem ObjectsPlus object
|
|
catalog_item := call {{{SINGLE-QUOTE}}}OrderCatalogMasterItem{{{SINGLE-QUOTE}}}.FindByName //OK
|
|
with orderItemName;
|
|
|
|
RequestingCareProvider_obj := call {{{SINGLE-QUOTE}}}CareProvider{{{SINGLE-QUOTE}}}.FindByPrimaryKey
|
|
with ( (user_GUID as Number) as {{{SINGLE-QUOTE}}}Int64{{{SINGLE-QUOTE}}} );
|
|
|
|
// get the location object
|
|
location_obj := call {{{SINGLE-QUOTE}}}Location{{{SINGLE-QUOTE}}}.FindByPrimaryKey
|
|
with ((location_guid as number) as {{{SINGLE-QUOTE}}}Int64{{{SINGLE-QUOTE}}});
|
|
|
|
if Order_Type = "GeneralOrder" then
|
|
// Create the prefilled General order
|
|
Catalog_Item_Version := "";
|
|
Order_obj := call {{{SINGLE-QUOTE}}}GeneralOrder{{{SINGLE-QUOTE}}}.CreateGeneralOrder
|
|
with
|
|
client_visit_obj, // ClientVisit ObjectsPlus object
|
|
catalog_item, // CatalogMasterItem ObjectsPlus
|
|
//object
|
|
//Catalog_Item_Modifier, // string ItemNameModifier
|
|
//Catalog_Item_Version, // string ItemNameModifierVersion
|
|
order_Creation_Reason, // CreateReason
|
|
RequestingCareProvider_obj, // RequestingProvider
|
|
//ObjectsPlus object
|
|
RequestingSource, // string requestingSource
|
|
//(must be in dictionary)
|
|
SessionType, // string SessionType
|
|
SessionReason, // string SessionReason
|
|
location_obj, // Location ReleaseLocGrpID
|
|
"Always" as {{{SINGLE-QUOTE}}}AvailabilityOverride{{{SINGLE-QUOTE}}}; // AvailabilityOverride
|
|
|
|
void := call Order_obj.Save; // Create the order
|
|
void := call Order_obj.Dispose;
|
|
|
|
endif;
|
|
|
|
if Order_Type = "MedicationOrder" then
|
|
|
|
Order_obj := call {{{SINGLE-QUOTE}}}MedicationOrder{{{SINGLE-QUOTE}}}.CreateMedicationOrder
|
|
with
|
|
client_visit_obj, // ClientVisit ObjectsPlus object
|
|
catalog_item, // CatalogMasterItem ObjectsPlus object
|
|
//Catalog_Item_Modifier, // string ItemNameModifier
|
|
//Catalog_Item_Version, // string ItemNameModifierVersion
|
|
order_Creation_Reason, // string CreateReason
|
|
RequestingCareProvider_obj, // RequestedBy ObjectsPlus object
|
|
RequestingSource, // string RequestedBySource (must be in dictionary)
|
|
SessionType, // string SessionType
|
|
SessionReason, // string SessionReason
|
|
location_obj,
|
|
"Always" as {{{SINGLE-QUOTE}}}AvailabilityOverride{{{SINGLE-QUOTE}}}; // AvailabilityOverride eAvailabilityOverride
|
|
//"SignOnSubmit" as {{{SINGLE-QUOTE}}}SuppressNotificationOptions{{{SINGLE-QUOTE}}} ;
|
|
|
|
void := call Order_obj.Save; // Create the order
|
|
void := call Order_obj.Dispose;
|
|
|
|
endif;
|
|
|
|
if Order_Type = "DiagnosticOrder" then
|
|
|
|
Order_obj := call {{{SINGLE-QUOTE}}} DiagnosticOrder{{{SINGLE-QUOTE}}}.CreateDiagnosticOrder
|
|
with
|
|
client_visit_obj, // ClientVisit ObjectsPlus object
|
|
catalog_item, // CatalogMasterItem ObjectsPlus object
|
|
//Catalog_Item_Modifier, // string ItemNameModifier
|
|
//Catalog_Item_Version, // string ItemNameModifierVersion
|
|
order_Creation_Reason, // string CreateReason
|
|
RequestingCareProvider_obj, // RequestedBy ObjectsPlus object
|
|
RequestingSource, // string RequestedBySource (must be in dictionary)
|
|
SessionType, // string SessionType
|
|
SessionReason, // string SessionReason
|
|
location_obj,
|
|
"Always" as {{{SINGLE-QUOTE}}}AvailabilityOverride{{{SINGLE-QUOTE}}}; // AvailabilityOverride eAvailabilityOverride
|
|
//"SignOnSubmit" as {{{SINGLE-QUOTE}}}SuppressNotificationOptions{{{SINGLE-QUOTE}}} ;
|
|
|
|
|
|
void := call Order_obj.Save; // Create the order
|
|
void := call Order_obj.Dispose;
|
|
|
|
endif;
|
|
|
|
endtry;
|
|
catch Exception ex
|
|
|
|
error_occurred := true;
|
|
error_message := error_message ||
|
|
"{{+R}} Order {{-R}}\n" ||
|
|
ex.Message || "\n\n";
|
|
if ex.InnerException is not null net_object then
|
|
error_message := error_message ||
|
|
"Inner Exception: " || ex.InnerException.Message || "\n\n";
|
|
endif;
|
|
if ( Order_obj is NOT NULL ) then
|
|
void:= call Order_obj.Dispose;
|
|
Order_obj:= null;
|
|
endif;
|
|
endcatch;
|
|
endif;
|
|
|
|
conclude true;
|
|
;;
|
|
action:
|
|
if Error_occurred then
|
|
write "An error has occured in the MLM "
|
|
|| "{{+B}}" || mlm_name || "{{-B}} "
|
|
||"Please notify your System Administrators that an error message has "
|
|
||"occurred for this patient. They will review the following error "
|
|
||"message: \n" at error_destination;
|
|
write error_message at error_destination;
|
|
endif;
|
|
|
|
if Error_occurred then
|
|
return error_message;
|
|
else
|
|
return "Success";
|
|
endif;
|
|
;;
|
|
Urgency: 50;;
|
|
end:
|