Initial Checking with all 820 MLMs

This commit is contained in:
2020-02-02 00:54:01 -05:00
parent c59dc6de2e
commit 840d0432f4
828 changed files with 239162 additions and 0 deletions

View File

@@ -0,0 +1,625 @@
maintenance:
title: Configure NonFormulary Meds OEF;;
mlmname: FORM_NonFormulary_Meds;;
arden: version 2;;
version: 4.50;;
institution: St. Clair Hospital ;;
author: ;;
specialist: Josue Lopez, Eclipsys Corporation;;
date: 2007-01-16;;
validation: testing;;
library:
purpose: to set visible and mandatory characteristics on the Non-Formulary
Order Entry Form.
;;
explanation:
On the FormOpen event, this MLM will
1. Set order entry fields to hidden and non-mandatory
2. Display an advisory message about the usage of the form.
On the FieldChange event, the three checkboxes designating the type of order
will be used to set the visibility and mandatory settings for the rest of the
Order Entry Form.
The field characteristics will be set as listed below for each of the checkboxes:
Form
Field Open Field Change -------
PRX_Checkbox1 (Med/Inj) v x
PRX_Checkbox3 (IV Addv) v x
PRX_Checkbox2 (IV Fluid) v x
PRX_NOTECOMMENT0 h v,m v,m v,m
PRX_BRANDNAME h v,m v,m v,m
AdminInstructions h v v v
BaseSolution h v v h
IVAdditive h h v v
DosageLow h v,m h h
DosageHigh h v h h
OrderIVRate h h v,m v,m
Uom h v,m h v,m
OrderRouteCode h v,m v,m v,m
FrequencyCode h v,m h h
IsPRN h v h h
PRX_PRNCONDITION h ? h h
StopAfter h v v v
RequestedDate h v v v
RequestedTime h v v v
StopDate h v v v
StopTime h v v v
(No change to fields below: )
PRX_DRUGIDCODE h h h h
PRX_WORx_Route h h h h
FormCode h h h h
IsScheduleFromWorklist h h h h
01/22/07 change status of base solution field to be visible on IV additive choice.
MLM Assigned to:
Order Entry Form: PRX_NonFormulary
Calling Event: FormOpen
Calling Event: FieldChange
Calling Field: PRX_Checkbox1
PRX_Checkbox3
PRX_Checkbox2
;;
keywords: Form-Called MLM, Form fields,;
;;
knowledge:
type: data-driven;;
data:
/*-------------------------------------------------------------------------*/
/* This MLM receives three arguments from the system, of types shown below */
/*-------------------------------------------------------------------------*/
(this_comm, // Communication type object
this_form, // Form type object
client_obj // Arden ClientInfo type object
) := argument;
/************* Make Changes To Spelling And Flags In This Section *************/
/*------------------------------------*/
/* Set to true if a CDS log is needed */
/*------------------------------------*/
log_execution_info := false;
/*-------------------------*/
/* set flags and variables */
/*-------------------------*/
opening_msg := "Use only for Medications or IV Fluids not found through "
|| "manual entry or Non Formulary order set.\n\n"
|| "Verify Medication availability with Pharmacy before "
|| "continuing with order.";
/******************************************************************************/
/*--------------------------*/
/* set up testing variables */
/*--------------------------*/
if called_by_editor then
visit_obj := read last {ClientVisit: THIS};
// client_obj := read last {ClientInfo: THIS};
endif;
/*----------------------------------------------------*/
/* declare other MLMs that will be called by this one */
/*----------------------------------------------------*/
func_set_haz_med_warning := MLM {{{SINGLE-QUOTE}}}FORM_VALUE_IVF_IDCODE{{{SINGLE-QUOTE}}};
/*--------------------------*/
/* Initialize error message */
/*--------------------------*/
error_message:="";
/*----------------------------------------------------*/
/* get information from Communication object argument */
/*----------------------------------------------------*/
called_by := this_comm.CallingEvent;
call_field := this_comm.CallingFieldName;
if called_by_editor then
client_guid := visit_obj.ClientGUID;
visit_guid := visit_obj.GUID;
else
client_guid := this_comm.ClientGUID;
visit_guid := this_comm.ClientVisitGUID;
endif;
/*-------------------------------------------------*/
/* Assign pointers to the Field list (a sub-object */
/* in the Form object) and to individual fields */
/*-------------------------------------------------*/
field_list := this_form.fields;
NonFormMedInj_fld := first of
(field_list where field_list.DataItemName = "PRX_Checkbox1");
if exist NonFormMedInj_fld then
MedOrInj_val := NonFormMedInj_fld.Value;
MedOrInj_lbl := NonFormMedInj_fld.Label;
endif;
NonFormIVAddv_fld := first of
(field_list where field_list.DataItemName = "PRX_Checkbox3");
if exist NonFormIVAddv_fld then
IVAddv_val := NonFormIVAddv_fld.Value;
IVAddv_lbl := NonFormIVAddv_fld.Label;
endif;
NonFormIVFld_fld := first of
(field_list where field_list.DataItemName = "PRX_Checkbox2");
if exist NonFormIVFld_fld then
IVFld_val := NonFormIVFld_fld.Value;
IVFld_lbl := NonFormIVFld_fld.Label;
endif;
chkbox_flds := ("PRX_Checkbox1", "PRX_Checkbox3", "PRX_Checkbox2");
chkbox_vals := (MedOrInj_val, IVAddv_val, IVFld_val);
chkbox_lbls := (MedOrInj_lbl, IVAddv_lbl, IVFld_lbl);
selected_nf_item := first of (chkbox_lbls where chkbox_vals);
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
/* assign pointers to subobjects as needed */
PRX_Note_fld := first of
(field_list where field_list.DataItemName = "PRX_NOTECOMMENT0");
Medication_fld := first of
(field_list where field_list.DataItemName = "PRX_BRANDNAME");
AddlInfo_fld := first of
(field_list where field_list.DataItemName = "AdminInstructions");
Fluid_fld := first of
(field_list where field_list.DataItemName = "BaseSolution");
if exist Fluid_fld then
Fluid_dtls := Fluid_fld.Value;
// Fluid detail fields:
// NAME=null,
// ITEMID=null,
// DOSE=null,
// UOM=null,
// ORDERCATALOGMASTERITEMGUID=null
endif;
IVAdditive_fld := first of
(field_list where field_list.DataItemName = "IVAdditive");
if exist IVAdditive_fld then
IVAdditive_dtls := IVAdditive_fld.Value;
// IVAdditive detail fields: note empty defaults to ()
// NAME=Abciximab-,
// DOSE=500,
// UOM=mg,
// ORDERCATALOGMASTERITEMGUID=1000001805073001
endif;
DoseLow_fld := first of
(field_list where field_list.DataItemName = "DosageLow");
DoseMax_fld := first of
(field_list where field_list.DataItemName = "DosageHigh");
IVRate_fld := first of
(field_list where field_list.DataItemName = "OrderIVRate");
if exist IVRate_fld then
IVRate_dtls := IVRate_fld.Value;
// IVRate details fields:
// AMOUNT=0,
// UOM=null,
// DISABLEUOM=false,
// KVODISPLAYED=false,
// ISKVO=false,
// ALLOWKVORATE=false,
// DEFAULTKVORATE=0,
// MAXKVORATE=9999.900390625
endif;
Units_fld := first of
(field_list where field_list.DataItemName = "Uom");
Route_fld := first of
(field_list where field_list.DataItemName = "OrderRouteCode");
Frequency_fld := first of
(field_list where field_list.DataItemName = "FrequencyCode");
if exist Frequency_fld then
Frequency_dtls := Frequency_fld.Value;
// Frequency detail fields:
// FREQUENCYSUMMARY=null,
// FREQFROMTIME=0,
// FREQTOTIME=0,
// FREQUOM=null,
// FREQEVENTMODIFIER=null,
// FREQEVENTCODE=null,
// FREQTIMES=null,
// FREQWEEKLYDAYS=null,
// FREQIRREGULARDTM=null
endif;
PRN_fld := first of
(field_list where field_list.DataItemName = "IsPRN");
Reason_fld := first of
(field_list where field_list.DataItemName = "PRX_PRNCONDITION");
StopAfter_fld := first of
(field_list where field_list.DataItemName = "StopAfter");
if exist StopAfter_fld then
StopAfter_dtls := StopAfter_fld.Value;
// StopAfter detail fields:
// NUMBER=0,
// OPTION=null
endif;
StartDate_fld := first of
(field_list where field_list.DataItemName = "RequestedDate");
StartTime_fld := first of
(field_list where field_list.DataItemName = "RequestedTime");
if exist StartTime_fld then
StartTime_dtls := StartTime_fld.Value;
// StartTime detail fields:
// REQTIMECODE=null,
// REQTIMEVALUE=null,
// REQTIMEUOM=null,
// REQTIMEEVENTMODIFIER=null,
// REQTIMEEVENTCODE=null
endif;
StopDate_fld := first of
(field_list where field_list.DataItemName = "StopDate");
StopTime_fld := first of
(field_list where field_list.DataItemName = "StopTime");
//01-25-07 RS Added for Interface Needs
Worx_Route_fld := first of
(field_list where field_list.DataItemName = "PRX_WORx_Route");
Omit_From_fld := first of
(field_list where field_list.DataItemName = "PRX_OmitMessage");
WORx_Code_fld:= first of
(field_list where field_list.DataItemName = "PRX_DRUGIDCODE");
/*----------------------------------------------*/
/* process form fields and settings on FormOpen */
/*----------------------------------------------*/
if called_by = "FormOpen" then
/*---------------------------------------------*/
/* hide ALL data fields and make non-mandatory */
/*---------------------------------------------*/
PRX_Note_fld.Control_Visible := false;
PRX_Note_fld.Control_Mandatory := false;
Medication_fld.Control_Visible := false;
Medication_fld.Control_Mandatory := false;
AddlInfo_fld.Control_Visible := false;
AddlInfo_fld.Control_Mandatory := false;
Fluid_fld.Control_Visible := false;
Fluid_fld.Control_Mandatory := false;
IVAdditive_fld.Control_Visible := false;
IVAdditive_fld.Control_Mandatory := false;
DoseLow_fld.Control_Visible := false;
DoseLow_fld.Control_Mandatory := false;
DoseMax_fld.Control_Visible := false;
DoseMax_fld.Control_Mandatory := false;
IVRate_fld.Control_Visible := false;
IVRate_fld.Control_Mandatory := false;
Units_fld.Control_Visible := false;
Units_fld.Control_Mandatory := false;
Route_fld.Control_Visible := false;
Route_fld.Control_Mandatory := false;
Frequency_fld.Control_Visible := false;
Frequency_fld.Control_Mandatory := false;
PRN_fld.Control_Visible := false;
Reason_fld.Control_Mandatory := false;
StopAfter_fld.Control_Visible := false;
StopAfter_fld.Control_Mandatory := false;
StartDate_fld.Control_Visible := false;
StartDate_fld.Control_Mandatory := false;
StartTime_fld.Control_Visible := false;
StartTime_fld.Control_Mandatory := false;
StopDate_fld.Control_Visible := false;
StopDate_fld.Control_Mandatory := false;
StopTime_fld.Control_Visible := false;
StopTime_fld.Control_Mandatory := false;
this_comm.Message := opening_msg;
this_comm.MessageType := "Informational";
/*-------------------------------------------------*/
/* process form fields and settings on FieldChange */
/*-------------------------------------------------*/
elseif called_by = "FieldChange" then
if call_field is in chkbox_flds then
/*--------------------------------*/
/* blank out and hide data fields */
/* if all checkboxes are blank */
/*--------------------------------*/
if not any chkbox_vals then
/* make all checkboxes available */
NonFormMedInj_fld.Control_Read_Only := false;
NonFormIVAddv_fld.Control_Read_Only := false;
NonFormIVFld_fld.Control_Read_Only := false;
/* change banner message */
this_comm.Message := "Please mark one of the checkboxes";
this_comm.MessageType := "Banner";
/* blank out and hide all data fields and make non-mandatory */
PRX_Note_fld.Control_Visible := false;
PRX_Note_fld.Control_Mandatory := false;
Medication_fld.Control_Visible := false;
Medication_fld.Control_Mandatory := false;
Medication_fld.Value := null;
AddlInfo_fld.Control_Visible := false;
AddlInfo_fld.Control_Mandatory := false;
AddlInfo_fld.Value := null;
Fluid_fld.Control_Visible := false;
Fluid_fld.Control_Mandatory := false;
if exist Fluid_dtls then
Fluid_dtls.NAME := null;
Fluid_dtls.ITEMID := null;
Fluid_dtls.DOSE := null;
Fluid_dtls.UOM := null;
Fluid_dtls.ORDERCATALOGMASTERITEMGUID := null;
endif;
IVAdditive_fld.Control_Visible := false;
IVAdditive_fld.Control_Mandatory := false;
if exist IVAdditive_dtls then
for ea_addv in IVAdditive_dtls do
ea_addv.NAME := null;
ea_addv.DOSE := 0;
ea_addv.UOM := null;
ea_addv.ORDERCATALOGMASTERITEMGUID := null;
enddo;
endif;
(this_comm, this_form) := CALL func_set_haz_med_warning
with this_comm, this_form, client_obj;
DoseLow_fld.Control_Visible := false;
DoseLow_fld.Control_Mandatory := false;
DoseLow_fld.Value := "";
DoseMax_fld.Control_Visible := false;
DoseMax_fld.Control_Mandatory := false;
DoseMax_fld.Value := null;
IVRate_fld.Control_Visible := false;
IVRate_fld.Control_Mandatory := false;
if exist IVRate_dtls then
IVRate_dtls.AMOUNT := 0;
IVRate_dtls.UOM := null;
IVRate_dtls.DISABLEUOM := false;
IVRate_dtls.KVODISPLAYED := false;
IVRate_dtls.ISKVO := false;
IVRate_dtls.ALLOWKVORATE := false;
IVRate_dtls.DEFAULTKVORATE := 0;
IVRate_dtls.MAXKVORATE := 9999.900390625;
endif;
Units_fld.Control_Visible := false;
Units_fld.Control_Mandatory := false;
Units_fld.Value := null;
Route_fld.Control_Visible := false;
Route_fld.Control_Mandatory := false;
Route_fld.Value := null;
Frequency_fld.Control_Visible := false;
Frequency_fld.Control_Mandatory := false;
if exist Frequency_dtls then
Frequency_dtls.FREQUENCYSUMMARY := null;
Frequency_dtls.FREQFROMTIME := 0;
Frequency_dtls.FREQTOTIME := 0;
Frequency_dtls.FREQUOM := null;
Frequency_dtls.FREQEVENTMODIFIER := null;
Frequency_dtls.FREQEVENTCODE := null;
Frequency_dtls.FREQTIMES := null;
Frequency_dtls.FREQWEEKLYDAYS := null;
Frequency_dtls.FREQIRREGULARDTM := null;
endif;
PRN_fld.Control_Visible := false;
if PRN_fld.Value then
PRN_fld.Value := false;
endif;
Reason_fld.Control_Visible := false;
Reason_fld.Control_Mandatory := false;
Reason_fld.Value := null;
StopAfter_fld.Control_Visible := false;
StopAfter_fld.Control_Mandatory := false;
if exist StopAfter_dtls then
StopAfter_dtls.NUMBER := 0;
StopAfter_dtls.OPTION := null;
endif;
StartDate_fld.Control_Visible := false;
StartDate_fld.Control_Mandatory := false;
StartDate_fld.Value := null;
StartTime_fld.Control_Visible := false;
StartTime_fld.Control_Mandatory := false;
if exist StartTime_dtls then
StartTime_dtls.REQTIMECODE := null;
StartTime_dtls.REQTIMEVALUE := null;
StartTime_dtls.REQTIMEUOM := null;
StartTime_dtls.REQTIMEEVENTMODIFIER := null;
StartTime_dtls.REQTIMEEVENTCODE := null;
endif;
StopDate_fld.Control_Visible := false;
StopDate_fld.Control_Mandatory := false;
StopDate_fld.Value := null;
StopTime_fld.Control_Visible := false;
StopTime_fld.Control_Mandatory := false;
StopTime_fld.Value := null;
//01-25-07 RS Added for Interface Needs
WORx_Code_fld.value :="06292";
/*-----------------------------*/
/* choice made, process fields */
/*-----------------------------*/
else
/*--------------------------------------*/
/* settings common to all three choices */
/*--------------------------------------*/
/* format and show banner message */
this_comm.Message := "Processing " || selected_nf_item ;
this_comm.MessageType := "Banner";
/* field visibility and mandatory settings */
PRX_Note_fld.Control_Visible := true;
PRX_Note_fld.Control_Mandatory := true;
Medication_fld.Control_Visible := true;
Medication_fld.Control_Mandatory := true;
AddlInfo_fld.Control_Visible := true;
Route_fld.Control_Visible := true;
Route_fld.Control_Mandatory := true;
StopAfter_fld.Control_Visible := true;
StartDate_fld.Control_Visible := true;
StartTime_fld.Control_Visible := true;
StopDate_fld.Control_Visible := true;
StopTime_fld.Control_Visible := true;
/*---------------------------------------*/
/* visibility and mandatory settings for */
/* "Non Formulary Med/Inj" choice */
/*---------------------------------------*/
if MedOrInj_val then
NonFormMedInj_fld.Control_Read_Only := false;
NonFormIVAddv_fld.Control_Read_Only := true;
NonFormIVFld_fld.Control_Read_Only := true;
//01-25-07 RS Added for Interface Needs
Worx_Route_fld.Value := "PO";
WORx_Code_fld.value :="06292";
Omit_From_fld.Value := "";
Fluid_fld.Control_Visible := true;
DoseLow_fld.Control_Visible := true;
DoseLow_fld.Control_Mandatory := true;
DoseMax_fld.Control_Visible := true;
Units_fld.Control_Visible := true;
Units_fld.Control_Mandatory := true;
Frequency_fld.Control_Visible := true;
Frequency_fld.Control_Mandatory := true;
PRN_fld.Control_Visible := true;
/* Reason visibility and mandatory settings set by other MLM */
// Reason_fld.Control_Visible := false;
// Reason_fld.Control_Mandatory := false;
/*---------------------------------------*/
/* visibility and mandatory settings for */
/* "Non Formulary IV Additive" choice */
/*---------------------------------------*/
elseif IVAddv_val then
NonFormMedInj_fld.Control_Read_Only := true;
NonFormIVAddv_fld.Control_Read_Only := false;
NonFormIVFld_fld.Control_Read_Only := true;
IVAdditive_fld.Control_Visible := true;
//01-25-07 RS Added for Interface Needs
Worx_Route_fld.Value := "IV";
WORx_Code_fld.value :="06292";
Omit_From_fld.Value := "VERISCAN";
Fluid_fld.Control_Visible := true;
IVRate_fld.Control_Visible := true;
IVRate_fld.Control_Mandatory := true;
Route_fld.Control_Visible := true;
Route_fld.Control_Mandatory := true;
/*---------------------------------------*/
/* visibility and mandatory settings for */
/* "Non Formulary IV Fluid" choice */
/*---------------------------------------*/
elseif IVFld_val then
NonFormMedInj_fld.Control_Read_Only := true;
NonFormIVAddv_fld.Control_Read_Only := true;
NonFormIVFld_fld.Control_Read_Only := false;
IVAdditive_fld.Control_Visible := true;
//01-25-07 RS Added for Interface Needs
Worx_Route_fld.Value := "IV";
WORx_Code_fld.value :="06292";
Omit_From_fld.Value := "VERISCAN";
IVRate_fld.Control_Visible := true;
IVRate_fld.Control_Mandatory := true;
Units_fld.Control_Visible := true;
Units_fld.Control_Mandatory := true;
endif; // checkbox values ...
endif; // not any chkbox_vals
endif; // call_field is in chkbox_flds
//01-25-07 RS Added on close call
elseif called_by = "FormClose" then
If (NonFormMedInj_fld.Value = False) and
(NonFormIVAddv_fld.value=False) and
(NonFormIVFld_fld.value=False) then
this_comm.DisplayForm := "Yes";
this_comm.Message := "You must select one of the three checkboxes to proceed ";
this_comm.MessageType := "Error";
endif; // checkbox values
endif; // called_by = ...
;;
evoke: // No evoke statement
;;
logic:
conclude true; // always, to return modified objects
;;
action:
/*--------------------------------------------------------------*/
/* return communication_type and form_type parameters to system */
/*--------------------------------------------------------------*/
return this_comm, this_form;
;;
end: