112 lines
4.2 KiB
Plaintext
112 lines
4.2 KiB
Plaintext
maintenance:
|
|
|
|
title: FORM_SET_FBC_POSTPARTUM_ORDERS;;
|
|
mlmname: FORM_SET_FBC_POSTPARTUM_ORDERS;;
|
|
arden: version 2.5;;
|
|
version: 6.10;;
|
|
institution: St. Clair Hospital;;
|
|
author: Juliet M Law, Allscripts x7461;;
|
|
specialist: Peggy Karish, Allscripts ext 7441;;
|
|
date: 2014-10-09;;
|
|
validation: testing;;
|
|
|
|
library:
|
|
purpose: Automatically select nursing instruction order based on prescence of lab result on mother.
|
|
|
|
;;
|
|
|
|
explanation: This MLM is called from the FBC Postpartum Order Set. On Form open, based on the existence and result of
|
|
the Type and Screen lab RH Negative result on the mother, the appropriate nursing isntruction will be selected.
|
|
;;
|
|
keywords: Called MLMs, FBC, Postpartum, RH Negative
|
|
;;
|
|
knowledge:
|
|
type: data-driven;;
|
|
data:
|
|
|
|
// This MLM is passed three arguments, of types
|
|
// communication_type, form_type and client info object respectively.
|
|
|
|
(this_communication, // Communication object
|
|
this_form, // Form object
|
|
client_info_obj //Arden ClientInfo object
|
|
) := argument;
|
|
|
|
|
|
/*******************Make Changes To Spelling And Flags In This Section*******************/
|
|
|
|
/* Set to true if a decision.log is needed.*/
|
|
log_execution_info := FALSE;
|
|
|
|
/***************************************************************************************/
|
|
|
|
// Initialize error message
|
|
error_message:="";
|
|
|
|
// Assigns fields passed in the Form object to the Field object
|
|
field_list:= this_form.fields;
|
|
client_guid := this_communication.ClientGUID;
|
|
visit_guid := this_communication.ClientVisitGUID;
|
|
chart_guid := this_communication.ChartGUID;
|
|
|
|
pObj := this_communication.PrimaryObj;
|
|
|
|
CallingEvent := this_communication.CallingEvent;
|
|
CallingField := this_communication.CallingFieldName;
|
|
|
|
//Retrieve relevant form fields
|
|
Nurse_Instr := last of ( field_list WHERE field_list.DataItemName = "MultiOrderGrid"
|
|
AND field_list.Control_MultiFieldOccNum = 15 );
|
|
Nurse_Instr_Val := Nurse_Instr.Value;
|
|
|
|
RH_Nurse_Instr := Nurse_Instr_Val[3];
|
|
|
|
//Fire on Form Open event
|
|
if ( CallingEvent = "FormOpen" ) then
|
|
|
|
//Retrieve RH Negative result from Type and Screen lab
|
|
rh_result := read last {"SELECT IsNull(tol.Text,{{{SINGLE-QUOTE}}}{{{SINGLE-QUOTE}}})"
|
|
|| " FROM CV3ClientVisit cv WITH (NOLOCK) JOIN CV3Order o WITH (NOLOCK)"
|
|
|| " ON cv.ClientGUID = o.ClientGUID"
|
|
|| " AND cv.GUID = o.ClientVisitGUID"
|
|
|| " AND cv.ChartGUID = o.ChartGUID"
|
|
|| " JOIN CV3BasicObservation bo WITH (NOLOCK) ON o.GUID = bo.OrderGUID"
|
|
|| " and o.ClientGUID = bo.ClientGUID "
|
|
|| " and o.ClientVisitGUID = bo.ClientVisitGUID"
|
|
|| " and o.ChartGUID = bo.ChartGUID"
|
|
|| " LEFT JOIN CV3TextualObservationLine tol WITH (NOLOCK) ON bo.GUID = tol.ObservationGUID"
|
|
|| " AND bo.ClientGUID = tol.ClientGUID"
|
|
|| " JOIN CV3OrderCatalogMasterItem om WITH (NOLOCK) ON o.OrderCatalogMasterItemGUID = om.GUID"
|
|
|| " JOIN CV3OrganizationalUnit org WITH (NOLOCK) ON om.OrgUnitGUID = org.GUID"
|
|
|| " AND org.Name = {{{SINGLE-QUOTE}}}Blood Bank{{{SINGLE-QUOTE}}}"
|
|
|| " JOIN CV3OrderStatusHistory oshentr WITH (NOLOCK) ON o.GUID = oshentr.OrderGUID"
|
|
|| " AND o.ClientGUID = oshentr.ClientGUID"
|
|
|| " AND oshentr.OrderStatusCode = {{{SINGLE-QUOTE}}}RESF{{{SINGLE-QUOTE}}}"
|
|
|| " WHERE cv.ClientGUID = " || Sql(client_guid)
|
|
|| " AND cv.GUID = " || Sql(visit_guid)
|
|
|| " AND cv.ChartGUID = " || Sql(chart_guid)
|
|
|| " AND ( o.name = {{{SINGLE-QUOTE}}}Type and Screen{{{SINGLE-QUOTE}}} OR o.Name = {{{SINGLE-QUOTE}}}Blood Type{{{SINGLE-QUOTE}}} )"
|
|
|| " AND bo.ItemName = {{{SINGLE-QUOTE}}}Blood Type (ABO/RH){{{SINGLE-QUOTE}}}"};
|
|
|
|
//If Blood Type is NEGATIVE, then automatically check nursing instruction
|
|
if ( rh_result matches pattern "%NEGATIVE" ) then
|
|
RH_Nurse_Instr.IsSelected := true;
|
|
else
|
|
RH_Nurse_Instr.IsSelected := false;
|
|
endif;
|
|
|
|
endif;
|
|
|
|
;;
|
|
evoke: // No evoke statement
|
|
;;
|
|
logic:
|
|
|
|
conclude true;
|
|
;;
|
|
action:
|
|
// This MLM returns two parameters, of types communication_type and form_type respectively.
|
|
return this_communication, this_form;
|
|
;;
|
|
end:
|