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,487 @@
maintenance:
title: FORM_Set_FBC_Epidural_Order ;;
mlmname: FORM_Set_FBC_Epidural_Order;;
arden: version 2.5;;
version: 6.10;;
institution: St. Clair Hospital;;
author: Shivprasad Jadhav;;
specialist: Shivprasad jadhav, Allscripts Corporation;;
date: 2015-05-14;;
validation: testing;;
library:
purpose: MLM to check IUFD [Intra uterine fetal death] health issue and PT and APTT result within last 8 hours , if not present then autocheck PT, APTT Lab STAT order
MLM which will check for last 2 hours Platelet count result when patient has pre ecmplasia and if not present then will order respective lab stat ,
if patient has IUFD as health issue then MLM will check within last 8 hours PT,APTT result and if not present then it will autocheck the respective lab orders.
if patient doesn{{{SINGLE-QUOTE}}}t have any of these two health issue then MLM will check CBC and platelet count last 8 hours result ,
if not present then will autocheck Lab stat cbc order.
Note : 1. MLM will only autocheck the respective lab order
2. MLM will allow user to deselect /select the lab order as when required
3. MLM will consider both , the battery lab item and its components
;;
explanation:
Change History
-----------------
11.05.2015 JML CSR# 33390: Created
06/28/2018 DW CSR# 36956 FBC Order Set Review - do not pre-check the CBC
01/11/2019 TMS CSR# 37271 and 37375 Updated for changes to FBC Epidural orders
and to accommodate new patient controlled epidural analgesia.
PT :="Prothrombin/INR" ;
;;
keywords: Called MLMs
;;
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:="";
standard_libs := mlm {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
include standard_libs;
// Assigns fields passed in the Form object to the Field object
field_list:= this_form.fields;
clientGuid := this_communication.ClientGUID;
visitGuid := this_communication.ClientVisitGUID;
chartGuid := this_communication.ChartGUID;
//pObj := this_communication.PrimaryObj;
CallingEvent := this_communication.CallingEvent;
CallingField := this_communication.CallingFieldName;
item_event := this_communication.itemevent;
form_type := this_communication.formtype;
Labs_Stat := last of ( field_list WHERE field_list.DataItemName = "MultiOrderCheckBox"
and field_list.Control_MultiFieldOccNum = 4);
Labs_Stat_Val := Labs_Stat.Value;
Preeclampsia := last of ( field_list WHERE field_list.DataItemName = "MultiOrderCheckBox"
and field_list.Control_MultiFieldOccNum = 5);
Preeclampsia_Val := Preeclampsia.Value;
EpiduralOrders:= last of ( field_list WHERE field_list.DataItemName = "MultiOrderCheckBox"
and field_list.Control_MultiFieldOccNum = 7);
EpiduralOrders_Val := EpiduralOrders.value;
Fentanyl_Bupiv := first of (EpiduralOrders_Val where EpiduralOrders_Val.Name matches pattern "Fentanyl 200 mcg + BUPIv%");
Fentanyl_Ropiv := first of (EpiduralOrders_Val where EpiduralOrders_Val.Name matches pattern "Fentanyl 200 mcg + ROPIv%");
pcacontinuous:= last of (field_list where field_list.DataItemName = "PRX_PcaContinuous"
and field_list.Control_MultiFieldOccNum = 1);
pcacontinuous_val := pcacontinuous.value;
pcaplus := last of (field_list where field_list.DataItemName = "PRX_PcaPlus"
and field_list.Control_MultiFieldOccNum = 1);
pcaplus_val := pcaplus.value;
CRNAAdminDose := last of (field_list where field_list.DataItemName = "PRX_ZXO01"
and field_list.Control_MultiFieldOccNum = 1);
CRNADoseUnits := last of (field_list where field_list.DataItemName = "PRX_ZXO02"
and field_list.Control_MultiFieldOccNum = 1);
PtAdminDose := last of (field_list where field_list.DataItemName = "PRX_ZXO05"
and field_list.Control_MultiFieldOccNum = 1);
PtAdminUnits := last of (field_list where field_list.DataItemName = "PRX_ZXO06"
and field_list.Control_MultiFieldOccNum = 1);
PtAdminFreq := last of (field_list where field_list.DataItemName = "PRX_ZXO07"
and field_list.Control_MultiFieldOccNum = 1);
PtAdminFreqUnits := last of (field_list where field_list.DataItemName = "PRX_ZXO08"
and field_list.Control_MultiFieldOccNum = 1);
basalrate := last of (field_list where field_list.DataItemName = "PRX_ZXO09"
and field_list.Control_MultiFieldOccNum = 1);
BasalRateUom := last of (field_list where field_list.DataItemName = "PRX_ZXO10"
and field_list.Control_MultiFieldOccNum = 1);
// remove this form open logic when ropivacaine product becomes available.
If CallingEvent = "FormOpen" then
Fentanyl_Ropiv.IsReadOnly:= true;
Endif;
If callingfield = "MultiOrderCheckBox|7" then
// Add this commented out code back when ropivacaine product becomes available.
/*
If Fentanyl_Bupiv.isSelected = true then
EpiduralOrders_val.isReadOnly := (false, true);
Elseif Fentanyl_Ropiv.isSelected = true then
EpiduralOrders_val.isReadOnly := (true, false);
Elseif (Fentanyl_Ropiv.isSelected = false and Fentanyl_Ropiv.isSelected = false) then
EpiduralOrders_val.isReadOnly := (false, false);
endif;
*/
If (Fentanyl_Bupiv.IsSelected = true or Fentanyl_Ropiv.IsSelected = true) then
If (pcacontinuous.value = false and pcaplus.value = false) then
dialogResult := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "Please select mode of Delivery for Epidural Infusion."
||" \n\n Continuous Epidural Infusion or PCEA and Continuous Epidural Infusion"
,"Alert","OK" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
endif;
endif;
endif;
If (CallingField = "Prx_PcaPlus|1" and pcaplus.value = True) then
PtAdminDose.control_mandatory := True;
PtAdminDose.control_read_only := False;
PtAdminUnits.value := "mL";
PtAdminUnits.control_mandatory := True;
PtAdminUnits.control_read_only := True;
PtAdminFreq.control_mandatory := True;
PtAdminFreq.control_read_only := False;
PtAdminFreqUnits.value := "minutes";
PtAdminFreqUnits.control_mandatory := True;
PtAdminFreqUnits.control_read_only := True;
basalrate.control_mandatory := True;
basalrate.control_read_only := False;
BasalRateUom.value := "mL/hr";
pcacontinuous.value := False;
elseif (CallingField = "PRX_PcaContinuous|1" and pcacontinuous.value = True) then
pcaplus.value := False;
PtAdminDose.value := "";
PtAdminDose.control_mandatory := False;
PtAdminDose.control_read_only := True;
PtAdminUnits.value := "";
PtAdminUnits.control_mandatory := False;
PtAdminUnits.control_read_only := True;
PtAdminFreq.value := "";
PtAdminFreq.control_mandatory := False;
PtAdminFreq.control_read_only := True;
PtAdminFreqUnits.value := "";
PtAdminFreqUnits.control_mandatory := False;
PtAdminFreqUnits.control_read_only := True;
basalrate.control_mandatory := True;
basalrate.control_read_only := False;
BasalRateUom.value := "mL/hr";
pcaplus.value := false;
endif;
If (CallingField = "PRX_ZXO01|1" and CRNAAdminDose.value is not null) then
CRNADoseUnits.value := "mL";
elseif (CallingField = "PRX_ZXO01|1" and CRNAAdminDose.value is null) then
CRNADoseUnits.value := "";
endif;
If (CallingField = "PRX_ZXO09|1" and (BasalRate.value as number) >14) then
dialogResult := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "Maximum Rate for Continuous Infusion is 14 mL/hr."
||" \n\n Please adjust rate." ,"Alert","OK" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
BasalRate.value := null;
endif;
If (CallingField = "PRX_ZXO05|1" and (PtAdminDose.value as number) >8) then
dialogResult := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "Maximum Rate for Patient Administered Dose is 8 mL every 15 minutes."
||" \n\n Please adjust dose." ,"Alert","OK" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
PtAdminDose.value := null;
endif;
If (CallingField = "PRX_ZXO01|1" and (CRNAAdminDose.value as number) >10) then
dialogResult := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "Loading Dose Administered from Epidural Bag should not exceed 10 mL."
||" \n\n Please adjust dose." ,"Alert","OK" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
CRNAAdminDose.value := null;
endif;
If (CallingField = "PRX_ZXO07|1" and (PtAdminFreq.value as number) <15) then
dialogResult := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "Frequency of Patient Administered Dose must be a minimum of 15 minutes apart."
||" \n\n Please adjust frequency." ,"Alert","OK" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
PtAdminFreq.value := null;
endif;
PreeclampsiaHI := read First {" select distinct hi.shortname "
|| "from cv3healthissuedeclaration hi with (nolock) "
|| "join CV3CodedHealthIssue chi with (nolock) on chi.GUID = hi.CodedHealthIssueGUID "
|| "where hi.clientguid = " || clientGuid || " and hi.active = 1 and hi.status = {{{SINGLE-QUOTE}}}Active{{{SINGLE-QUOTE}}} "
|| "and hi.typecode not in ({{{SINGLE-QUOTE}}}admitting dx{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}chronic dx{{{SINGLE-QUOTE}}} ,{{{SINGLE-QUOTE}}}dx comments{{{SINGLE-QUOTE}}}) "
|| "and ( "
|| "hi.text like {{{SINGLE-QUOTE}}}%Preeclampsia%{{{SINGLE-QUOTE}}} or hi.shortname like {{{SINGLE-QUOTE}}}%Preeclampsia%{{{SINGLE-QUOTE}}} or "
|| " "
|| "(Case when chi.TypeCode = {{{SINGLE-QUOTE}}}ICD9{{{SINGLE-QUOTE}}} then chi.code end) in ({{{SINGLE-QUOTE}}}642.40{{{SINGLE-QUOTE}}}) "
|| " ) "
|| " AND ({{{SINGLE-QUOTE}}}1{{{SINGLE-QUOTE}}} = {{{SINGLE-QUOTE}}}1{{{SINGLE-QUOTE}}} AND ( hi.ScopeLevel = {{{SINGLE-QUOTE}}}2{{{SINGLE-QUOTE}}} OR ( hi.ScopeLevel = {{{SINGLE-QUOTE}}}2{{{SINGLE-QUOTE}}} "
|| " AND hi.ChartGUID = " || SQL(chartGuid) || " ) OR hi.ClientVisitGUID = " || SQL(visitGuid) || " ) ) "
};
IUFDHI := read First {" select distinct hi.shortname "
|| "from cv3healthissuedeclaration hi with (nolock) "
|| "join CV3CodedHealthIssue chi with (nolock) on chi.GUID = hi.CodedHealthIssueGUID "
|| "where hi.clientguid = " || clientGuid || " and hi.active = 1 and hi.status = {{{SINGLE-QUOTE}}}Active{{{SINGLE-QUOTE}}} "
|| "and hi.typecode not in ({{{SINGLE-QUOTE}}}admitting dx{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}chronic dx{{{SINGLE-QUOTE}}} ,{{{SINGLE-QUOTE}}}dx comments{{{SINGLE-QUOTE}}}) "
|| "and ( "
|| "hi.text like {{{SINGLE-QUOTE}}}%IUFD%{{{SINGLE-QUOTE}}} or hi.shortname like {{{SINGLE-QUOTE}}}%IUFD%{{{SINGLE-QUOTE}}} or "
|| " "
|| "(Case when chi.TypeCode = {{{SINGLE-QUOTE}}}ICD9{{{SINGLE-QUOTE}}} then chi.code end) in ({{{SINGLE-QUOTE}}}779.9{{{SINGLE-QUOTE}}}) "
|| " ) "
|| " AND ({{{SINGLE-QUOTE}}}1{{{SINGLE-QUOTE}}} = {{{SINGLE-QUOTE}}}1{{{SINGLE-QUOTE}}} AND ( hi.ScopeLevel = {{{SINGLE-QUOTE}}}2{{{SINGLE-QUOTE}}} OR ( hi.ScopeLevel = {{{SINGLE-QUOTE}}}2{{{SINGLE-QUOTE}}} "
|| " AND hi.ChartGUID = " || SQL(chartGuid) || " ) OR hi.ClientVisitGUID = " || SQL(visitGuid) || " ) ) "
};
Ord_CBC := OBJECT [Obs_Name, Obs_EnteredDtm] ;
Ord_CBC_Vals := read as Ord_CBC{" SELECT o.Name, osh.CreatedWhen "
|| " FROM CV3ClientVisit cv WITH (NOLOCK) JOIN CV3Order o WITH (NOLOCK)"
|| " ON cv.GUID = o.ClientVisitGUID"
|| " AND cv.ClientGUID = o.ClientGUID"
|| " Inner Join CV3OrderStatusHistory osh With (nolock) on o.guid =osh.OrderGUID And osh.ClientGUID=o.ClientGUID "
|| " WHERE cv.ClientGUID = " || Sql(clientGuid)
|| " And cv.guid = " || Sql(visitGuid)
|| " AND o.NAME in ({{{SINGLE-QUOTE}}}CBC (Includes Diff){{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}CBC No Diff (Hemogram Only){{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}CBC with Manual Diff{{{SINGLE-QUOTE}}} ) "
|| " AND osh.OrderStatusCode IN ({{{SINGLE-QUOTE}}}SPRV{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}RESF{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}RESI{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}RESC{{{SINGLE-QUOTE}}}) Order by osh.CreatedWhen Desc "};
Ord_Platelet := OBJECT [Obs_Name, Obs_EnteredDtm] ;
Ord_Platelet_Vals := read as Ord_Platelet{"SELECT o.Name, osh.CreatedWhen "
|| " FROM CV3ClientVisit cv WITH (NOLOCK) JOIN CV3Order o WITH (NOLOCK)"
|| " ON cv.GUID = o.ClientVisitGUID"
|| " AND cv.ClientGUID = o.ClientGUID"
|| " Inner Join CV3OrderStatusHistory osh With (nolock) on o.guid =osh.OrderGUID And osh.ClientGUID=o.ClientGUID "
|| " WHERE cv.ClientGUID = " || Sql(clientGuid)
|| " And cv.guid = " || Sql(visitGuid)
|| " AND o.NAME in ( {{{SINGLE-QUOTE}}}CBC No Diff (Hemogram Only){{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}Platelet Count{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}CBC (Includes Diff){{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}CBC with Manual Diff{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}Platelet Cnt{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}Platelet Count.{{{SINGLE-QUOTE}}}) "
|| " AND osh.OrderStatusCode IN ({{{SINGLE-QUOTE}}}SPRV{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}RESF{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}RESI{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}RESC{{{SINGLE-QUOTE}}}) Order by osh.CreatedWhen Desc "};
Ord_APTT := OBJECT [Obs_Name, Obs_EnteredDtm] ;
Ord_APTT_Vals := read as Ord_APTT{"SELECT o.Name, osh.CreatedWhen "
|| " FROM CV3ClientVisit cv WITH (NOLOCK) JOIN CV3Order o WITH (NOLOCK)"
|| " ON cv.GUID = o.ClientVisitGUID"
|| " AND cv.ClientGUID = o.ClientGUID"
|| " Inner Join CV3OrderStatusHistory osh With (nolock) on o.guid =osh.OrderGUID And osh.ClientGUID=o.ClientGUID "
|| " WHERE cv.ClientGUID = " || Sql(clientGuid)
|| " And cv.guid = " || Sql(visitGuid)
|| " AND o.NAME in ({{{SINGLE-QUOTE}}}APTT{{{SINGLE-QUOTE}}}) "
|| " AND osh.OrderStatusCode IN ({{{SINGLE-QUOTE}}}SPRV{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}RESF{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}RESI{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}RESC{{{SINGLE-QUOTE}}}) Order by osh.CreatedWhen Desc "};
Ord_INR := OBJECT [Obs_Name, Obs_EnteredDtm] ;
Ord_INR_Vals := read as Ord_INR{"SELECT o.Name, osh.CreatedWhen "
|| " FROM CV3ClientVisit cv WITH (NOLOCK) JOIN CV3Order o WITH (NOLOCK)"
|| " ON cv.GUID = o.ClientVisitGUID"
|| " AND cv.ClientGUID = o.ClientGUID"
|| " Inner Join CV3OrderStatusHistory osh With (nolock) on o.guid =osh.OrderGUID And osh.ClientGUID=o.ClientGUID "
|| " WHERE cv.ClientGUID = " || Sql(clientGuid)
|| " And cv.guid = " || Sql(visitGuid)
|| " AND o.NAME in ({{{SINGLE-QUOTE}}}Prothrombin/INR{{{SINGLE-QUOTE}}} ) "
|| " AND osh.OrderStatusCode IN ({{{SINGLE-QUOTE}}}SPRV{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}RESF{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}RESI{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}RESC{{{SINGLE-QUOTE}}}) Order by osh.CreatedWhen Desc "};
Time_2hr_Before := Read First {" Select Dateadd(Minute, -120, Getdate()) "};
Time_8hr_Before := Read First {" Select Dateadd(Minute, -480, Getdate()) "};
//Time_2hr_Before := Read First {" Select Dateadd(Hour, -262, Getdate()) "};
//Time_8hr_Before := Read First {" Select Dateadd(Minute, -1140, Getdate()) "};
C_Plate_Dt := First of(Ord_Platelet_Vals.Obs_EnteredDtm where Ord_Platelet_Vals.Obs_Name in ( "CBC No Diff (Hemogram Only)","Platelet Count","CBC (Includes Diff)","CBC with Manual Diff","Platelet Cnt","Platelet Count.") );
If C_Plate_Dt is Null Then C_Plate_Dt := Read First {" Select Dateadd(Minute, -500, Getdate()) "}; Endif;
//If C_Plate_Dt is Null Then C_Plate_Dt := ("01-07-2019 11:37:55" as time) ; Endif;
O_CBC_Dt := First of(Ord_CBC_Vals.Obs_EnteredDtm where Ord_CBC_Vals.Obs_Name in ( "CBC (Includes Diff)" ,"CBC No Diff (Hemogram Only)","CBC with Manual Diff" ) );
If O_CBC_Dt is Null Then O_CBC_Dt := Read First {" Select Dateadd(Minute, -500, Getdate()) "}; Endif;
// If O_CBC_Dt is Null Then O_CBC_Dt := ("01-07-2019 11:37:55" as time) ; Endif;
C_PT_Dt := First of(Ord_INR_Vals.Obs_EnteredDtm where Ord_INR_Vals.Obs_Name= "Prothrombin/INR" And Ord_INR_Vals.Obs_EnteredDtm Is Not Null );
If C_PT_Dt is Null Then C_PT_Dt := Read First {" Select Dateadd(Minute, -500, Getdate()) "}; Endif;
C_PTT_Dt := First of(Ord_APTT_Vals.Obs_EnteredDtm where Ord_APTT_Vals.Obs_Name= "APTT" And Ord_APTT_Vals.Obs_EnteredDtm Is Not Null );
If C_PTT_Dt is Null Then C_PTT_Dt := Read First {" Select Dateadd(Minute, -500, Getdate()) "}; Endif;
FinalStr :="" ;
// CBC := "CBC No Diff (Hemogram Only)" ; //"CBC (Includes Diff)"; changes as per new specs // 06/28/2018 DW CSR# 36956 FBC Order Set Review - do not pre-check the CBC
PT :="Prothrombin/INR" ;
APTT:="APTT";
Platelet := "Platelet Count" ;
If PreeclampsiaHI Is Not Null Then
If IUFDHI Is Not Null Then
// For CBC
If C_Plate_Dt > Time_2hr_Before And O_CBC_Dt > Time_8hr_Before Then
FinalStr := FinalStr ;
ElseIf (C_Plate_Dt < Time_2hr_Before And O_CBC_Dt < Time_8hr_Before) or (C_Plate_Dt > Time_2hr_Before And O_CBC_Dt < Time_8hr_Before) Then
FinalStr := FinalStr, CBC;
ElseIf C_Plate_Dt < Time_2hr_Before And O_CBC_Dt > Time_8hr_Before Then
FinalStr := FinalStr, Platelet ;
EndIf;
// For PT
If C_PT_Dt > Time_8hr_Before Then
FinalStr := FinalStr ;
Else
FinalStr := FinalStr, PT ;
EndIf;
// For APTT
If C_PTT_Dt > Time_8hr_Before Then
FinalStr := FinalStr ;
Else
FinalStr := FinalStr, APTT ;
EndIf;
EndIf;
If IUFDHI Is Null Then
// For CBC
If C_Plate_Dt > Time_2hr_Before And O_CBC_Dt > Time_8hr_Before Then
FinalStr := FinalStr ;
ElseIf (C_Plate_Dt < Time_2hr_Before And O_CBC_Dt < Time_8hr_Before) or (C_Plate_Dt > Time_2hr_Before And O_CBC_Dt < Time_8hr_Before) Then
FinalStr := FinalStr, CBC;
ElseIf C_Plate_Dt < Time_2hr_Before And O_CBC_Dt > Time_8hr_Before Then
FinalStr := FinalStr, Platelet ;
EndIf;
// For PT
/*If C_PT_Dt > Time_8hr_Before Then
FinalStr := FinalStr ;
Else
FinalStr := FinalStr, PT;
EndIf;
// For APTT
If C_PTT_Dt > Time_8hr_Before Then
FinalStr := FinalStr ;
Else
FinalStr := FinalStr, APTT ;
EndIf; */
//FinalStr := FinalStr, PT, APTT ;
EndIf;
ElseIf PreeclampsiaHI Is Null Then
If IUFDHI Is Not Null Then
// For CBC
If C_Plate_Dt > Time_8hr_Before And O_CBC_Dt > Time_8hr_Before Then
FinalStr := FinalStr ;
Else
FinalStr := FinalStr, CBC ;
EndIf;
// For PT
If C_PT_Dt > Time_8hr_Before Then
FinalStr := FinalStr ;
Else
FinalStr := FinalStr, PT ;
EndIf;
// For APTT
If C_PTT_Dt > Time_8hr_Before Then
FinalStr := FinalStr ;
Else
FinalStr := FinalStr, APTT ;
EndIf;
EndIf;
If IUFDHI Is Null Then
// For CBC
If C_Plate_Dt > Time_8hr_Before And O_CBC_Dt > Time_8hr_Before Then
//If O_CBC_Dt > Time_8hr_Before Then
FinalStr := FinalStr ;
Else
FinalStr := FinalStr, CBC ;
EndIf;
// For PT
/*If C_PT_Dt > Time_8hr_Before Then
FinalStr := FinalStr ;
Else
FinalStr := FinalStr, PT;
EndIf;
// For APTT
If C_PTT_Dt > Time_8hr_Before Then
FinalStr := FinalStr ;
Else
FinalStr := FinalStr, APTT ;
EndIf; */
//FinalStr := FinalStr, PT, APTT ;
EndIf;
Endif;
if ( exists FinalStr ) then
// for First Checkbox
for lab in 1 seqto ( count Labs_Stat_Val ) do
if ( Labs_Stat_Val[lab].Name IN FinalStr ) then
Labs_Stat_Val[lab].IsSelected := true;
else
Labs_Stat_Val[lab].IsSelected := false;
endif;
enddo;
// for Second Checkbox
for a in 1 seqto ( count Preeclampsia_Val ) do
if ( Preeclampsia_Val[a].Name IN FinalStr ) then
Preeclampsia_Val[a].IsSelected := true;
else
Preeclampsia_Val[a].IsSelected := false;
endif;
enddo;
else
//No labs exist for this patient, select all labs
Labs_Stat_Val.IsSelected := ( False, False, False);
Preeclampsia_Val.IsSelected := ( False);
endif;
If (pcaplus.value = true or pcacontinuous.value = true) and (Fentanyl_Bupiv.IsSelected = false and Fentanyl_Ropiv.IsSelected = false) then
hardstop := "yes";
else hardstop := "no";
endif;
ReasonMessage := "You have selected parameters for an Epicural Infusion, please select either Fentanyl and BUPIvacaine or Fentanyl and ROPIvacaine to continue.";
If CallingEvent = "FormClose" then
If hardstop = "yes" then //Present user with message box and stop order set from being submitted.
this_communication.DisplayForm := "yes";
this_communication.Message := ReasonMessage;
this_communication.MessageType := "Error";
else
Med_Order_Mgt := mlm {{{SINGLE-QUOTE}}}FORM_SET_Rx_Medication_Order_Mgt{{{SINGLE-QUOTE}}};
(this_communication, this_form) := call Med_Order_Mgt with this_communication, this_form, client_info_obj;
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: