Initial Checking with all 820 MLMs
This commit is contained in:
172
MLMStripper/bin/Debug/SCH/SCH_COSIGNATURE_WARNING_ALERT.mlm
Normal file
172
MLMStripper/bin/Debug/SCH/SCH_COSIGNATURE_WARNING_ALERT.mlm
Normal file
@@ -0,0 +1,172 @@
|
||||
maintenance:
|
||||
|
||||
title: SCH_CoSignature Warning Alert ;;
|
||||
FileName: SCH_CoSignature_Warning_Alert ;;
|
||||
arden: version 2.5;;
|
||||
version: 5.50;;
|
||||
institution: SCH ;;
|
||||
author: Shivprasad Jadhav;;
|
||||
specialist: ;;
|
||||
date: 2015-03-25;;
|
||||
validation: testing;;
|
||||
|
||||
library:
|
||||
purpose: 25-03-2015 CSR :33292 - PA CNRP MLM Created.
|
||||
MLM fires a warning alert if note author is PA,PA-C or CRNP .
|
||||
;;
|
||||
explanation:
|
||||
This MLM is evoked on entering a new document in an Outpatient Visit .
|
||||
This MLM checks to see if a Cosignature has been requested for the document.
|
||||
The Phsician progress, eConsult, History and Physical and Discharge Summary e Note note when done by a PA, PA-C or and ust be signed by a physician.
|
||||
If they select save and there is not a doctor selected under authored by other or co-signer then fire and alert.
|
||||
The Alert will state: “A physician must be selected to save this document: Please click the Document Info tab and select your physician.”
|
||||
|
||||
|
||||
Change history
|
||||
|
||||
DEV 02.19.2018 DW CSR# 35320 SSC - Added "IntraOp Nursing Note" to the documents list and "RN" to the occupation type list
|
||||
|
||||
;;
|
||||
keywords: ClientDocument; CoSignature; Outpatient;
|
||||
;;
|
||||
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}}};
|
||||
include standard_libs;
|
||||
|
||||
error_occurred := false;
|
||||
error_message := "";
|
||||
|
||||
log_execution_info := false;
|
||||
|
||||
/* Place the triggering event which is the entry of a new Document"Clinic Note"*/
|
||||
|
||||
Document_Enter := event { ClientDocumentEnter User ClientDocument :
|
||||
WHERE DocumentName = "Physician Progress Note"
|
||||
or DocumentName = "Consult eNote"
|
||||
or DocumentName = "History and Physical"
|
||||
or DocumentName = "Discharge Summary eNote"
|
||||
Or DocumentName = "Physician Progress Note - CCM"
|
||||
Or DocumentName = "Physician Progress Note by System-Enhanced"
|
||||
Or DocumentName = "Physician Progress Note- Cardiology"
|
||||
Or DocumentName = "Physician Progress Note- Rehab"
|
||||
Or DocumentName = "Post Procedure Note- Brief"
|
||||
Or DocumentName = "Hospitalist Intervention Note"
|
||||
or DocumentName = "IntraOp Nursing Note"
|
||||
|
||||
};
|
||||
|
||||
//Document_Enter := event {ClientDocumentEnter User ClientDocument: where documentname in ("Readmission Risk Assessment","Adult Patient Profile")};
|
||||
//Document_Modify := event {ClientDocumentModify User ClientDocument: where documentname in ("Readmission Risk Assessment","Adult Patient Profile")};
|
||||
|
||||
|
||||
|
||||
Document_Modify := event { ClientDocumentModify User ClientDocument:
|
||||
WHERE DocumentName = "Physician Progress Note"
|
||||
or DocumentName = "Consult eNote"
|
||||
or DocumentName = "History and Physical"
|
||||
or DocumentName = "Discharge Summary eNote"
|
||||
Or DocumentName = "Physician Progress Note - CCM"
|
||||
Or DocumentName = "Physician Progress Note by System-Enhanced"
|
||||
Or DocumentName = "Physician Progress Note- Cardiology"
|
||||
Or DocumentName = "Physician Progress Note- Rehab"
|
||||
Or DocumentName = "Post Procedure Note- Brief"
|
||||
Or DocumentName = "Hospitalist Intervention Note"
|
||||
or DocumentName = "IntraOp Nursing Note"
|
||||
};
|
||||
|
||||
alert_destination := destination { Alert: Warning, "Reminder: select co-signature box & enter attending MD name",
|
||||
low, chart,"CoSignature",1050,"","No Override Allowed" };
|
||||
|
||||
/* This block executes only when this MLM is called by the editor */
|
||||
if called_by_editor
|
||||
then
|
||||
client_guid:= read last{ClientInfo: GUID};
|
||||
EvokingObject := read last {ClientDocument : THIS
|
||||
WHERE ( DocumentName = "Physician Progress Note"
|
||||
or DocumentName = "Consult eNote"
|
||||
or DocumentName = "History and Physical"
|
||||
or DocumentName = "Discharge Summary eNote"
|
||||
Or DocumentName = "Physician Progress Note - CCM"
|
||||
Or DocumentName = "Physician Progress Note by System-Enhanced"
|
||||
Or DocumentName = "Physician Progress Note- Cardiology"
|
||||
Or DocumentName = "Physician Progress Note- Rehab"
|
||||
Or DocumentName = "Post Procedure Note- Brief"
|
||||
Or DocumentName ="Hospitalist Intervention Note"
|
||||
or DocumentName = "IntraOp Nursing Note"
|
||||
) AND ClientGUID = client_guid AND entrytype = 4};
|
||||
|
||||
endif;
|
||||
|
||||
ToBeSigned_Flag:= read last{ClientDocument: ToBeSigned referencing EvokingObject};
|
||||
|
||||
/* Get the received document{{{SINGLE-QUOTE}}}s name, clientGUID and clientVisitGUID from the evoking or calling object */
|
||||
|
||||
(client_visit_guid,
|
||||
client_guid,
|
||||
Cur_Doc_ToBeSigned,
|
||||
Cur_Doc_AuthoredDateTime) := read Last
|
||||
{ClientDocument : ClientVisitGUID, ClientGUID,ToBeSigned, AuthoredDtm REFERENCING EvokingObject };
|
||||
|
||||
//Get the user name from the object layer
|
||||
(User_GUID, user_name, occupation_code, orderrole_type) := read last { UserInfo: GUID, DisplayName, OccupationCode, OrderRoleType };
|
||||
|
||||
/*
|
||||
isAttending := READ last {"select count(*) from CV3CareProviderVisitRole " ||
|
||||
" where ProviderGUID = " || SQL(User_GUID) ||
|
||||
" and RoleTypeGUID in (select GUID from CV3CareProviderRoleType where TypeCode = {{{SINGLE-QUOTE}}}Physician{{{SINGLE-QUOTE}}} and RoleCode = {{{SINGLE-QUOTE}}}Attending{{{SINGLE-QUOTE}}})"
|
||||
} ;
|
||||
*/
|
||||
|
||||
OrderRole_List := ("CRNP", "PA", "PA-C" , "RN" );
|
||||
//, "Nurse Aid", "Nurse Manager", "Nursing technician", "Physician Therapy", "Physician Assistant", "Medical Assistant", "Medical Student") ;
|
||||
|
||||
|
||||
IF (occupation_code IN OrderRole_List) AND ToBeSigned_Flag = False THEN
|
||||
ReqCoSignature := TRUE;
|
||||
ELSE
|
||||
ReqCoSignature := FALSE;
|
||||
ENDIF;
|
||||
|
||||
;;
|
||||
evoke: Document_Enter ; //or Document_Modify;
|
||||
|
||||
;;
|
||||
LOGIC:
|
||||
|
||||
// IF ReqCoSignature OR ToBeSigned_Flag = False THEN
|
||||
IF ReqCoSignature = True THEN
|
||||
msg := "\n\n\n {{+B}}{{+R}} A physician must be selected to save this document: {{-B}}{{-R}}"
|
||||
|| " \n\n INSTRUCTIONS: Please click the Document Info tab and select your physician. " ;
|
||||
// || " \n\n Please click the Document Info tab and select your physician. " ;
|
||||
//|| "\n" ||
|
||||
//"isAttending: " || isAttending || "\n" ||
|
||||
//"User_GUID: " || User_GUID ;
|
||||
//|| "ToBeSigned_Flag: "|| (ToBeSigned_Flag as string) || "orderrole_type: " || orderrole_type ;
|
||||
|
||||
|
||||
conclude TRUE;
|
||||
ELSE
|
||||
conclude FALSE;
|
||||
ENDIF;
|
||||
|
||||
|
||||
;;
|
||||
|
||||
action:
|
||||
/*---------------------------------------------------*/
|
||||
/* Send messsage to user - cannot enter note as is */
|
||||
/*---------------------------------------------------*/
|
||||
|
||||
//IF ReqCoSignature OR ToBeSigned_Flag = False THEN
|
||||
IF ReqCoSignature = True THEN
|
||||
write "\n"
|
||||
|| msg
|
||||
|| "\n\n" at alert_destination;
|
||||
ENDIF;
|
||||
|
||||
;;
|
||||
end:
|
||||
Reference in New Issue
Block a user