Initial Checking with all 820 MLMs
This commit is contained in:
250
MLMStripper/bin/Debug/DOC/DOC_DIET_KBC_ADULT_ASSESSMENT.mlm
Normal file
250
MLMStripper/bin/Debug/DOC/DOC_DIET_KBC_ADULT_ASSESSMENT.mlm
Normal file
@@ -0,0 +1,250 @@
|
||||
maintenance:
|
||||
|
||||
title: DOC_DIET_KBC_ADULT_ASSESSMENT ;;
|
||||
mlmname: DOC_DIET_KBC_ADULT_ASSESSMENT;;
|
||||
arden: version 6.1;;
|
||||
version: 2.50;;
|
||||
institution: St.Clair Hospital;;
|
||||
author: Shivprasad Jadhav ;;
|
||||
specialist: Shivprasad Jadhav, Allscripts Corporation;;
|
||||
date: 2015-09-01;;
|
||||
validation: testing;;
|
||||
|
||||
library:
|
||||
purpose:
|
||||
1st senario-When user select criteria i.e {1-Patient consuming <50% of meals x 3days or 2-NPO or clear liquids >3days}
|
||||
from [2."Adult Assessment/Intervention"flowsheet when selecting [Risk assessment/Screenings] observation in "Nutrition Risk Screen" then MLM should creat
|
||||
a Dietitian Consult for the charted observation which has mention.
|
||||
|
||||
2nd Senario- If there is an active "Dietitian consult order with this indication i.e{1-Patient consuming <50% of meals x3 days} or {2- NPO or clear liquids >3 days}
|
||||
has present or charted previously and "Dietitian Consult order was created previously then MLM should not create a 2nd order for Dietitian consult .
|
||||
|
||||
3rd Senario- If user select othere criteria except given criteria i.e {1-Patient consuming <50% of meals x3 days} or {2- NPO or clear liquids >3 days} then MLM should not creat
|
||||
any "Dietitian Consult Order.
|
||||
|
||||
;;
|
||||
explanation:
|
||||
|
||||
Change history
|
||||
|
||||
10-01-2015 SJ CSR 32400 : Created date.
|
||||
09-28-2016 DJW HD#2113751 - Provide a message box to confirm the choice before automatically creating a Dietitian Consult Order
|
||||
|
||||
|
||||
;;
|
||||
keywords:
|
||||
;;
|
||||
knowledge:
|
||||
type: data-driven;;
|
||||
data:
|
||||
|
||||
|
||||
standard_libs := MLM {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
|
||||
include standard_libs;
|
||||
// Receive arguments from the structured note
|
||||
(this_documentCommunication) := argument;
|
||||
|
||||
//Get The Flowsheet Name
|
||||
(this_FS_doc) := this_documentCommunication.DocumentConfigurationObj;
|
||||
(this_parms) := this_FS_doc.ParametersList;
|
||||
(this_curr_col) := this_FS_doc.Currentcolumn;
|
||||
|
||||
(this_currentObs) := this_documentCommunication.CurrentObservationObj;
|
||||
this_observations := this_curr_col.chartedobservationslist;
|
||||
(ClientGuid) := this_documentCommunication.ClientGUID;
|
||||
(ChartGuid) := this_documentCommunication.ChartGUID;
|
||||
(ClientVisitGuid) := this_documentCommunication.ClientVisitGUID;
|
||||
(UserGuid) := this_DocumentCommunication.UserGUID ;
|
||||
LocationGuid := read last {"SELECT CurrentLocationGUID FROM CV3ClientVisit where ClientGUID = " || ClientGuid};
|
||||
// read First {" Select cv.CurrentLocationGUID from Cv3ClientVisit cv With (nolock) Where cv.guid= "||SQL(ClientVisitGuid) ||" "} ;
|
||||
CatalogItemName := "Dietitian Consult";
|
||||
|
||||
prm_med := First of (this_parms where this_parms.Name = "AS nut risk screen");
|
||||
Obs_med := first of (this_observations where this_observations.ParameterGUID = prm_med.ParameterGUID );
|
||||
val_med := Obs_med.ValueObj.listitemslist where Obs_med.ValueObj.listitemslist.isselected = true ;
|
||||
|
||||
|
||||
/*a:=val_med[1].Value;
|
||||
b:=val_med[2].Value;
|
||||
DataItem1:=val_med[3].Value;
|
||||
DataItem2:=val_med[4].Value;
|
||||
e:=val_med[5].Value; */
|
||||
|
||||
|
||||
indexList := 1 seqto count (val_med);
|
||||
|
||||
for i in indexList do
|
||||
If val_med[i].Value="patient consuming <50% of meals x 3 days" Then
|
||||
DataItem1 := "patient consuming <50% of meals x 3 days";
|
||||
Elseif val_med[i].Value="NPO or clear liquids > 3 days" Then
|
||||
DataItem2 := "NPO or clear liquids > 3 days";
|
||||
Else DataItem1 := Null ; DataItem2 := Null ;
|
||||
Endif;
|
||||
enddo;
|
||||
|
||||
UserData := Read first { "Select Top 1 o.name "
|
||||
|| " from cv3ClientVisit cv (nolock) Join cv3Order o (nolock) "
|
||||
|| " On cv.guid =o.ClientVisitGUID And cv.ClientGUID=o.ClientGUID "
|
||||
|| " Join cv3OrderUserData ud On ud.OrderGUID=o.GUID And ud.ClientGUID=cv.ClientGUID "
|
||||
|| " And ud.UserDataCode in ({{{SINGLE-QUOTE}}}NUTR_Consult Reasons{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}NUTR_Consult Reason 2{{{SINGLE-QUOTE}}}) "
|
||||
|| " And o.Name = {{{SINGLE-QUOTE}}}Dietitian Consult{{{SINGLE-QUOTE}}} And o.orderstatuslevelnum < 55 "
|
||||
|| " and o.OrderStatusCode = {{{SINGLE-QUOTE}}}AUA1{{{SINGLE-QUOTE}}} And o.ClientVisitGUID = " || ClientVisitGuid
|
||||
|| " Where ud.Value in ({{{SINGLE-QUOTE}}}Patient consuming <50% of meals x 3 days{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}NPO or Clear Liquids > 3 days{{{SINGLE-QUOTE}}}) "};
|
||||
|
||||
|
||||
If UserData is Null Then
|
||||
|
||||
If (DataItem1 is Not Null) or ( DataItem2 is Not Null ) Then
|
||||
|
||||
dlg_result := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with
|
||||
"\n This choice will create a Dietitian Consult {{{SINGLE-QUOTE}}}" ||
|
||||
"\n\n Click {{{SINGLE-QUOTE}}}Yes{{{SINGLE-QUOTE}}} to confirm your choice " ||
|
||||
"\n\n Click {{{SINGLE-QUOTE}}}No{{{SINGLE-QUOTE}}} if you wish to change your choice " ||
|
||||
"\n "
|
||||
,"Create a Dietitian Consult Order ? ", "YesNo" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}},"Question" as {{{SINGLE-QUOTE}}}MessageBoxIcon{{{SINGLE-QUOTE}}};
|
||||
|
||||
|
||||
|
||||
If (dlg_result as string) = "Yes" then
|
||||
|
||||
|
||||
|
||||
error_destination := destination { IntermediateMessage } with [
|
||||
alert_type := "Warning",
|
||||
short_message := "Auto Order MLM",
|
||||
priority := "low",
|
||||
scope := "chart",
|
||||
Rule_group := "Auto Order MLM",
|
||||
Rule_number := 1001,
|
||||
Rule_subgroup := "",
|
||||
Send_alert_with_order := "",
|
||||
Alert_dialog_settings := "",
|
||||
Display_alert := true ];
|
||||
|
||||
|
||||
user_IDType := "Edstan Number (physician)";
|
||||
user_IDCode := read last {"SELECT IDCode FROM CV3CAREPROVIDERID " || " where ProviderGUID = " || UserGUID
|
||||
|| " and ProviderIDTypeCode = {{{SINGLE-QUOTE}}}Edstan Number (physician){{{SINGLE-QUOTE}}}"};
|
||||
order_Creation_Reason := "Order Created Form MLM";
|
||||
|
||||
try
|
||||
client_visit_obj := call {{{SINGLE-QUOTE}}}ClientVisit{{{SINGLE-QUOTE}}}.FindByPrimaryKey with ((ClientVisitGuid as number) as {{{SINGLE-QUOTE}}}Int64{{{SINGLE-QUOTE}}}) ;
|
||||
WSSessionType := "Standard";
|
||||
WSSessionReason := "";
|
||||
WSRequestedBySource := "";
|
||||
WSRequestedBy_obj := call {{{SINGLE-QUOTE}}}CareProvider{{{SINGLE-QUOTE}}}.FindById with ( user_IDType, (user_IDCode as STRING) );
|
||||
WSlocation_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 ( client_visit_obj is NOT NULL ) then
|
||||
void:= call client_visit_obj.Dispose;
|
||||
client_visit_obj:= null;
|
||||
endif;
|
||||
|
||||
if ( WSRequestedBy_obj is NOT NULL ) then
|
||||
void:= call WSRequestedBy_obj.Dispose;
|
||||
WSRequestedBy_obj:= null;
|
||||
endif;
|
||||
|
||||
if ( WSlocation_obj is NOT NULL ) then
|
||||
void:= call WSlocation_obj.Dispose;
|
||||
WSlocation_obj:= null;
|
||||
endif;
|
||||
endcatch;
|
||||
|
||||
|
||||
try
|
||||
// get OrderCatalogMasterItem ObjectsPlus object
|
||||
general_catalog_item := call {{{SINGLE-QUOTE}}}OrderCatalogMasterItem{{{SINGLE-QUOTE}}}.FindByName with CatalogItemName;
|
||||
|
||||
// Create the prefilled General order
|
||||
GeneralOrder2_obj := call {{{SINGLE-QUOTE}}}GeneralOrder{{{SINGLE-QUOTE}}}.CreateGeneralOrder
|
||||
with
|
||||
client_visit_obj, // ClientVisit ObjectsPlus object
|
||||
general_catalog_item, // OrderCatalogMasterItem ObjectsPlus object
|
||||
order_Creation_Reason, // CreateReason
|
||||
wsRequestedBy_obj, // RequestedBy ObjectsPlus object
|
||||
wsRequestedBySource, // string RequestedBySource (must be in dictionary)
|
||||
wsSessionType, // string SessionType
|
||||
wsSessionReason, // string SessionReason
|
||||
wslocation_obj, // Location ReleaseLocGrpID
|
||||
"Always" as {{{SINGLE-QUOTE}}}AvailabilityOverride{{{SINGLE-QUOTE}}}; // AvailabilityOverride
|
||||
|
||||
|
||||
IF (EXISTS DataItem1 AND DataItem1 IS NOT NULL ) or (EXISTS DataItem2 AND DataItem2 IS NOT NULL ) THEN
|
||||
If DataItem1 is not Null Then Val := DataItem1 ; Else Val := DataItem2; Endif;
|
||||
Value := call GeneralOrder2_obj.{{{SINGLE-QUOTE}}}SetEnterpriseDefinedDataItemValue<String>{{{SINGLE-QUOTE}}} with
|
||||
"NUTR_Consult Reasons" , Val ;
|
||||
ENDIF;
|
||||
|
||||
IF (EXISTS DataItem1 AND DataItem1 IS NOT NULL ) And (EXISTS DataItem2 AND DataItem2 IS NOT NULL ) THEN
|
||||
Value := call GeneralOrder2_obj.{{{SINGLE-QUOTE}}}SetEnterpriseDefinedDataItemValue<String>{{{SINGLE-QUOTE}}} with
|
||||
"NUTR_Consult Reason 2" , DataItem2 ;
|
||||
ENDIF;
|
||||
|
||||
|
||||
if ( general_catalog_item is NOT NULL ) then
|
||||
void:= call general_catalog_item.Dispose;
|
||||
general_catalog_item:= null;
|
||||
endif;
|
||||
|
||||
//GeneralOrder2_dest.ObjectsPlus := GeneralOrder2_obj;
|
||||
empty := Call GeneralOrder2_obj.save;
|
||||
|
||||
endtry;
|
||||
catch Exception ex
|
||||
error_occurred := true;
|
||||
error_message := error_message || "{{+R}}New general order:{{-R}}\n" ||
|
||||
ex.Message || "\n\n";
|
||||
|
||||
if ( general_catalog_item is NOT NULL ) then
|
||||
void:= call general_catalog_item.Dispose;
|
||||
general_catalog_item:= null;
|
||||
endif;
|
||||
|
||||
if ( GeneralOrder2_obj is NOT NULL ) then
|
||||
void:= call GeneralOrder2_obj.Dispose;
|
||||
GeneralOrder2_obj:= null;
|
||||
endif;
|
||||
|
||||
endcatch;
|
||||
|
||||
if ( client_visit_obj is NOT NULL ) then
|
||||
void:= call client_visit_obj.Dispose;
|
||||
client_visit_obj:= null;
|
||||
endif;
|
||||
if ( WSRequestedBy_obj is NOT NULL ) then
|
||||
void:= call WSRequestedBy_obj.Dispose;
|
||||
WSRequestedBy_obj:= null;
|
||||
endif;
|
||||
if ( WSlocation_obj is NOT NULL ) then
|
||||
void:= call WSlocation_obj.Dispose;
|
||||
WSlocation_obj:= null;
|
||||
endif;
|
||||
|
||||
|
||||
endif; // Proceed with the consult order?
|
||||
|
||||
|
||||
Endif;
|
||||
|
||||
Endif;
|
||||
|
||||
|
||||
|
||||
|
||||
;;
|
||||
evoke:
|
||||
;;
|
||||
logic: conclude true;
|
||||
;;
|
||||
action: return this_documentCommunication;
|
||||
;;
|
||||
Urgency: 50;;
|
||||
end:
|
||||
Reference in New Issue
Block a user