631 lines
30 KiB
Plaintext
631 lines
30 KiB
Plaintext
maintenance:
|
|
|
|
title: SCIP Surgical Antibiotic Prophylaxis Orders;;
|
|
mlmname: FORM_Set_SCIP;;
|
|
arden: version 2.5;;
|
|
version: 5.50;;
|
|
institution: St Clair Hospital;;
|
|
author: Teresa Spicuzza, Allscripts ;;
|
|
specialist: Teresa Spicuzza, Allscripts;;
|
|
date: 2011-04-01;;
|
|
validation: testing;;
|
|
|
|
library:
|
|
purpose: Used for Surgical Antibiotic Prophylaxis Weight Based Dosing
|
|
;;
|
|
|
|
explanation: This MLM is called from Surgical Antibiotic Prophylaxis Order Set
|
|
|
|
Change history
|
|
03.12.2013 TMS Created for SCIP Antibiotic Orders in order sets
|
|
04.08.2013 TMS Moved to production as part of the Mini-Syringe to Mini-Bag project to reduce item changes
|
|
needing completed in order sets and to standarize the look of SCIP orders in the post op order
|
|
sets. CSR 31359
|
|
06.02.2013 TMS Added SCIP Antibiotics: Pre-op Open Heart Surgery to same MRSA routine used by
|
|
SCIP Antibiotics: Open Heart Surgery CSR 32467
|
|
08.17.2016 TMS Added Penicillin/Cephalosporin allergy guidelines to all SCIP Order Sets CSR 34749
|
|
07.06.2017 TMS Updated to reflect changes to SCIP Antibiotics for heart procedures to use the
|
|
higher dose of Cefazolin 2 gm < 120 kg and 3 gm for 120 kg or greater. CSR 35793
|
|
09.28.2017 TMS CSR #35222 Upadated MLM for allergy info message for Cefoxitin.
|
|
09.05.2018 TMS CSR #37176, 37177, 37178, 37062 Added query for Updated Ortho to populate info box
|
|
with new Cefazolin Dosing for Ortho order sets updated for review.
|
|
11.20.2018 TMS CSR{{{SINGLE-QUOTE}}}s 37583 (Abdominoplasty Post Op), 37556 (Post Op Lap Chole) and
|
|
37557 (Wound Debridement Post Op Orders): Changed to use new cefazolin dosing.
|
|
12.03.2018 TMS CSR{{{SINGLE-QUOTE}}}s 37585 (Gastric Bypass Post Op)and 37533 (Post Op Vascular Surgery):
|
|
Changed to use new cefazolin dosing.
|
|
12.17.2018 TMS CSR 37346 (Fractured Hip Post Op Orders), 37345 (Total Hip Replacement Post Op Orders),
|
|
37344 (Total Knee Replacement Post Op Orders)
|
|
02.20.2019 TMS 37530 (Post Op Open Chole) Changed to use new cefazolin dosing.
|
|
01.15.2020 TMS 38595 (Post Op Foot and Ankle) Changed to use new cefazolin dosing.
|
|
01.15.2020 TMS 37873 (Free Flap Post Op) Added to use static dosing for Cefazolin and Clindamycin.
|
|
|
|
|
|
|
|
;;
|
|
keywords: Called MLMs, Antibiotic Prophylaxis, Weight Based Dosing
|
|
;;
|
|
knowledge:
|
|
type: data-driven;;
|
|
data:
|
|
|
|
|
|
standard_libs := mlm {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
|
|
include standard_libs;
|
|
|
|
using "ObjectsPlusXA.SCM.Forms";
|
|
using namespace "ObjectsPlusXA.SunriseClinicalManager.Forms";
|
|
|
|
// 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;
|
|
|
|
ClientGuid := this_communication.ClientGUID;
|
|
ChartGuid := this_communication.ChartGUID;
|
|
ClientVisitGuid := this_communication.ClientVisitGUID;
|
|
PrimaryObjdetail:=this_communication.PrimaryObj;
|
|
OrderSetName := PrimaryObjdetail.OrderSetName;
|
|
/*******************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;
|
|
CallingEvent := this_communication.CallingEvent;
|
|
CallingField := this_communication.CallingFieldName;
|
|
|
|
// Identify order sets with old cefazolin dosing
|
|
(AltSCIPSets) := read {"select GUID from CV3OrderCatalogSet where name in ({{{SINGLE-QUOTE}}}Free Flap Post Op Orders{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}SCIP Antibiotics: Free Flap Surgery{{{SINGLE-QUOTE}}})"};
|
|
|
|
|
|
// Get patient weight
|
|
comb_ht_wt_field := first of (field_list where field_list.DataItemName = "CombinedMeasurements");
|
|
if exists comb_ht_wt_field then comb_ht_wt_val := comb_ht_wt_field.value;
|
|
wt := comb_ht_wt_val.weight;
|
|
weightvalue := (wt as number);
|
|
endif;
|
|
|
|
// Get patient age
|
|
(patientage) := read last
|
|
{
|
|
" select "
|
|
||" case when "
|
|
||" right({{{SINGLE-QUOTE}}}00{{{SINGLE-QUOTE}}} + cast (datepart (MM,getdate()) as varchar),2) + right({{{SINGLE-QUOTE}}}00{{{SINGLE-QUOTE}}} + cast (datepart (DD,getdate()) as varchar),2) < "
|
|
||" right({{{SINGLE-QUOTE}}}00{{{SINGLE-QUOTE}}} + cast (birthmonthnum as varchar),2) + right({{{SINGLE-QUOTE}}}00{{{SINGLE-QUOTE}}} + cast (birthdaynum as varchar),2) "
|
|
||" then datediff (yy, cast (birthyearnum as varchar) ,getdate()) -1 "
|
|
||" else datediff (yy, cast (birthyearnum as varchar) ,getdate()) "
|
|
||" end "
|
|
||" from cv3client with (nolock) where guid = " || ClientGuid || " "
|
|
};
|
|
//
|
|
If patientage < 12 and CallingEvent = "FormOpen" then;
|
|
dialogResult := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "Patient under 12 years of age." ||"\n Please call physician for dosing. " ,"Alert","OK" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
|
|
endif;
|
|
//
|
|
|
|
// Define other fields
|
|
StartNow := last of (field_list where field_list.DataItemName = "PRX_Dosing Start Now" );
|
|
Dose := first of (field_list where field_list.DataItemName = "DosageLow");
|
|
SP := " ";
|
|
CR := 13 formatted with "%c";
|
|
LF := 10 formatted with "%c";
|
|
CRLF:= CR||LF;
|
|
TAB := 9 formatted with "%c";
|
|
|
|
Cefazolin := last of (field_list where field_list.DataItemName = "DosageLow" and field_List.Control_MultiFieldOccNum = 1);
|
|
Cefoxitin := last of (field_list where field_list.DataItemName = "DosageLow" and field_List.Control_MultiFieldOccNum = 2);
|
|
Clindamycin := last of (field_list where field_list.DataItemName = "DosageLow" and field_List.Control_MultiFieldOccNum = 3);
|
|
Vancomycin := last of (field_list where field_list.DataItemName = "DosageLow" and field_List.Control_MultiFieldOccNum = 4);
|
|
Gentamicin := last of (field_list where field_list.DataItemName = "DosageLow" and field_List.Control_MultiFieldOccNum = 5);
|
|
|
|
CefazolinDose := Cefazolin.Value;
|
|
CefoxitinDose := Cefoxitin.Value;
|
|
ClindamycinDose := Clindamycin.Value;
|
|
VancomycinDose := Vancomycin.Value;
|
|
GentamicinDose := Gentamicin.Value;
|
|
|
|
CefazolinID := last of (field_list where field_list.DataItemName = "PRX_DrugIDCode" and field_List.Control_MultiFieldOccNum = 1);
|
|
CefoxitinID := last of (field_list where field_list.DataItemName = "PRX_DrugIDCode" and field_List.Control_MultiFieldOccNum = 3);
|
|
ClindamycinID := last of (field_list where field_list.DataItemName = "PRX_DrugIDCode" and field_List.Control_MultiFieldOccNum = 2);
|
|
VancomycinID := last of (field_list where field_list.DataItemName = "PRX_DrugIDCode" and field_List.Control_MultiFieldOccNum = 4);
|
|
GentamicinID := last of (field_list where field_list.DataItemName = "PRX_DrugIDCode" and field_List.Control_MultiFieldOccNum = 5);
|
|
|
|
CefazolinCode := CefazolinID.Value;
|
|
CefoxitinCode := CefoxitinID.Value;
|
|
ClindamycinCode := ClindamycinID.Value;
|
|
VancomycinCode := VancomycinID.Value;
|
|
GentamicinCode := GentamicinID.Value;
|
|
|
|
|
|
RequestedTime1 := last of (field_list where field_list.DataItemName = "RequestedTime" and field_List.Control_MultiFieldOccNum = 1);
|
|
RequestedTime2 := last of (field_list where field_list.DataItemName = "RequestedTime" and field_List.Control_MultiFieldOccNum = 2);
|
|
RequestedTime3 := last of (field_list where field_list.DataItemName = "RequestedTime" and field_List.Control_MultiFieldOccNum = 3);
|
|
RequestedTime4 := last of (field_list where field_list.DataItemName = "RequestedTime" and field_List.Control_MultiFieldOccNum = 4);
|
|
RequestedTime5 := last of (field_list where field_list.DataItemName = "RequestedTime" and field_List.Control_MultiFieldOccNum = 5);
|
|
|
|
RequestedDate1 := last of (field_list where field_list.DataItemName = "RequestedDate" and field_List.Control_MultiFieldOccNum = 1);
|
|
RequestedDate2 := last of (field_list where field_list.DataItemName = "RequestedDate" and field_List.Control_MultiFieldOccNum = 2);
|
|
RequestedDate3 := last of (field_list where field_list.DataItemName = "RequestedDate" and field_List.Control_MultiFieldOccNum = 3);
|
|
RequestedDate4 := last of (field_list where field_list.DataItemName = "RequestedDate" and field_List.Control_MultiFieldOccNum = 4);
|
|
RequestedDate5 := last of (field_list where field_list.DataItemName = "RequestedDate" and field_List.Control_MultiFieldOccNum = 5);
|
|
|
|
Grid1Orders := last of (field_list where field_list.DataItemName = "MultiOrderGrid" and field_List.Control_MultiFieldOccNum = 1);
|
|
Grid1Orders_List := Grid1Orders.Value;
|
|
Grid2Orders := last of (field_list where field_list.DataItemName = "MultiOrderGrid" and field_List.Control_MultiFieldOccNum = 2);
|
|
Grid2Orders_List := Grid2Orders.Value;
|
|
|
|
SCIPMedInfo := last of (field_list where field_list.DataItemName = "NUR_GenAdditionalTxt" and field_List.Control_MultiFieldOccNum = 1);
|
|
SCIPPCNMedInfo := last of (field_list where field_list.DataItemName = "NUR_GenAdditionalTxt" and field_List.Control_MultiFieldOccNum = 2);
|
|
SCIPSetInfo := last of (field_list where field_list.DataItemName = "NUR_GenAdditionalTxt" and field_List.Control_MultiFieldOccNum = 3);
|
|
AltCefazolinInfo := CRLF || TAB ||"Cefazolin 1 gm" ;
|
|
CefazolinInfo := CRLF || TAB ||"Cefazolin 2 gm" ||TAB || "(Weight less than 120 kg)" || CRLF || TAB || "Cefazolin 3 gm"|| TAB || "( Weight 120 kg or greater)" ;
|
|
CefoxitinInfo := CRLF || TAB ||"Cefoxitin 1 gm" || TAB || "(Weight less than 80 kg)" || CRLF || TAB || "Cefoxitin 2 gm" || TAB || "(Weight 80 kg or greater)";
|
|
|
|
ClindamycinInfo := CRLF || TAB || "Clindamycin 600mg" || TAB || TAB || "(Weight less than 80 kg)" || CRLF || TAB || "Clindamycin 900mg" || TAB || TAB || "(Weight 80 kg or greater)";
|
|
AltClindamycinInfo := CRLF || TAB || "Clindamycin 600mg" ;
|
|
|
|
VancomycinInfo := CRLF || TAB || "Vancomycin 1 gm" || TAB || TAB || "(Weight between 50kg and less than 80 kg)" || CRLF || TAB || "Vancomycin 15mg/kg" || TAB || "(Weight less than 50kg or 80kg and greater)";
|
|
|
|
ClindaGentInfo := CRLF || TAB || TAB || TAB || " AND"|| CRLF || TAB || "Gentamicin" || TAB || TAB || "(1.5mg/kg)" ;
|
|
|
|
OpenHeartInfo := "Cefazolin" || TAB || TAB || TAB || "- Patient MRSA negative and NOT allergic to cephalosporins or penicillins" || CRLF ||
|
|
"Vancomycin or Clindamycin"|| TAB || "- Patient MRSA negative AND allergic to cephalosporins or penicillins" || CRLF ||
|
|
"Cefazolin and Vancomycin"|| TAB || "- Patient MRSA positive and NOT allergic to cephalosporins or penicillins" || CRLF ||
|
|
"Vancomycin" || TAB || TAB || "- Patient MRSA positive AND allergic to cephalosporins or penicillins" || CRLF ||
|
|
"Note: " ||TAB || "Simple rash, nausea, or vomiting does not exclude the use of Cephalosporins. Avoid cephalosporins " ||
|
|
"only if immediate hypersensitivity (i.e., hives, anaphylaxis, pharyngeal edema, neutropenia, fever)" ;
|
|
|
|
OrthoInfo := "Cefazolin" || TAB || TAB || TAB || "- Patient MRSA negative and NOT allergic to cephalosporins or penicillins" || CRLF ||
|
|
"Clindamycin or Vancomycin"|| TAB || "- Patient MRSA negative AND allergic to cephalosporins or penicillins" || CRLF ||
|
|
"Cefazolin and Vancomycin"|| TAB || "- Patient MRSA positive and NOT allergic to cephalosporins or penicillins" || CRLF ||
|
|
"Vancomycin" || TAB || TAB || "- Patient MRSA positive AND allergic to cephalosporins or penicillins" || CRLF ||
|
|
"Note: " ||TAB || "For Penicillin allergy, simple rash, nausea, or vomiting does not exclude the use of Cephalosporins. Avoid cephalosporins " ||
|
|
"only if immediate " || TAB || TAB || "hypersensitivity (i.e., hives, anaphylaxis, pharyngeal edema, neutropenia, fever)" ;
|
|
|
|
AllergyInfo := CRLF || TAB || "Note: " ||TAB || "Simple rash, nausea, or vomiting does not exclude the use of Cephalosporins. Avoid cephalosporins" ||CRLF || TAB || TAB ||
|
|
"only if immediate hypersensitivity (i.e., hives, anaphylaxis, pharyngeal edema, neutropenia, fever)" ;
|
|
|
|
AllergyInfoCefoxitin := CRLF || TAB || "Note: " ||TAB || "Simple rash, nausea, or vomiting does not exclude the use of (cefoxitin) Cephalosporins. Avoid cephalosporins" ||CRLF || TAB || TAB ||
|
|
"only if immediate hypersensitivity (i.e., hives, anaphylaxis, pharyngeal edema, neutropenia, fever)" ;
|
|
|
|
Found_Cefazolin := first of (Grid1Orders_List where Grid1Orders_List.Name = "Cefazolin:");
|
|
Found_Cefoxitin := first of (Grid1Orders_List where Grid1Orders_List.Name = "Cefoxitin:");
|
|
Found_Vancomycin := first of (Grid2Orders_List where Grid2Orders_List.Name = "Vancomycin:");
|
|
Found_Clindamycin := first of (Grid2Orders_List where Grid2Orders_List.Name = "Clindamycin:");
|
|
Found_Gentamicin := first of (Grid2Orders_List where Grid2Orders_List.Name = "Gentamicin:");
|
|
|
|
CefazolinBox := last of (field_list where field_list.DataItemName = "PRX_Checkbox1" and field_List.Control_MultiFieldOccNum = 1);
|
|
CefazolinBoxValue := CefazolinBox.Value;
|
|
|
|
VancomycinBox := last of (field_list where field_list.DataItemName = "PRX_Checkbox1" and field_List.Control_MultiFieldOccNum = 4);
|
|
VancomycinBoxValue := VancomycinBox.Value;
|
|
|
|
ClindamycinBox := last of (field_list where field_list.DataItemName = "PRX_Checkbox1" and field_List.Control_MultiFieldOccNum = 3);
|
|
ClindamycinBoxValue := ClindamycinBox.Value;
|
|
|
|
ClindaGentBox := last of (field_list where field_list.DataItemName = "PRX_Checkbox1" and field_List.Control_MultiFieldOccNum = 5);
|
|
ClindaGentBoxValue := ClindaGentBox.Value;
|
|
|
|
CefoxitinBox := last of (field_list where field_list.DataItemName = "PRX_Checkbox1" and field_List.Control_MultiFieldOccNum = 2);
|
|
CefoxitinBoxValue := CefoxitinBox.Value;
|
|
|
|
|
|
|
|
If OrderSetName = "SCIP Antibiotics: Open Heart Surgery" or OrderSetName = "SCIP Antibiotics: Pre-op Open Heart Surgery" then
|
|
SCIPSetInfo.value := OpenHeartInfo;
|
|
OS_with_MRSA := "True";
|
|
elseif OrderSetName = "SCIP Antibiotics: Cefazolin-Clindamycin-Vancomycin" then
|
|
SCIPSetInfo.value := OrthoInfo;
|
|
OS_with_MRSA := "True";
|
|
elseif OrderSetName = "SCIP Antibiotics: Cefoxitin-Clindamycin w/ Gentamicin" then
|
|
SCIPSetInfo.value := AllergyInfoCefoxitin;
|
|
else
|
|
SCIPSetInfo.value := AllergyInfo;
|
|
endif;
|
|
|
|
// Obtain Coded Allergen Guids
|
|
(AllergenGuids) := read
|
|
{ " select guid from cv3allergen where code like {{{SINGLE-QUOTE}}}Penicill%{{{SINGLE-QUOTE}}}or code like {{{SINGLE-QUOTE}}}Cef%{{{SINGLE-QUOTE}}} or code like {{{SINGLE-QUOTE}}}%cillin{{{SINGLE-QUOTE}}} or code like {{{SINGLE-QUOTE}}}Cephalex%{{{SINGLE-QUOTE}}}"};
|
|
|
|
// Retrieve coded and possible typed in allergies to penicillin
|
|
(PCNAllergy) := read last
|
|
{ " Select Status from CV3AllergyDeclaration "
|
|
|| " where ClientGUID = " || SQL(clientguid) || " and "
|
|
|| " ((Text like {{{SINGLE-QUOTE}}}penicil%{{{SINGLE-QUOTE}}} or text like {{{SINGLE-QUOTE}}}%pcn%{{{SINGLE-QUOTE}}} or text like {{{SINGLE-QUOTE}}}%cephalexin%{{{SINGLE-QUOTE}}} or "
|
|
|| " text like {{{SINGLE-QUOTE}}}%cillin%{{{SINGLE-QUOTE}}} or text like {{{SINGLE-QUOTE}}}cef%{{{SINGLE-QUOTE}}}) and Status = {{{SINGLE-QUOTE}}}active{{{SINGLE-QUOTE}}} and TypeCodeForOther = {{{SINGLE-QUOTE}}}drug{{{SINGLE-QUOTE}}}) "
|
|
|| " or (ClientGUID = " || SQL(clientguid) || " and AllergenGUID in (" || SQL(allergenguids) || ") and Status = {{{SINGLE-QUOTE}}}active{{{SINGLE-QUOTE}}} ) "
|
|
};
|
|
|
|
|
|
|
|
// Check for MRSA Result
|
|
|
|
(ResultValue) := read last
|
|
{"SELECT tol.text "
|
|
|| " from cv3ordercatalogmasteritem ocmi with (nolock) "
|
|
|| " join cv3order o with (nolock) on o.ordercatalogmasteritemguid = ocmi.guid and o.clientguid = " || SQL(clientguid) || " and o.chartguid = " || SQL(chartguid) || " and o.clientvisitguid = " || SQL(clientvisitguid)
|
|
|| " and o.orderstatuscode In ({{{SINGLE-QUOTE}}}RESF{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}RESC{{{SINGLE-QUOTE}}}{{{SINGLE-QUOTE}}}RESI{{{SINGLE-QUOTE}}}) "
|
|
|| " and o.name = {{{SINGLE-QUOTE}}}Nasal Screen for MRSA (Infection Control){{{SINGLE-QUOTE}}} "
|
|
|| " left join cv3BasicObservation bo with (nolock) on bo.OrderGuid = o.guid and bo.clientguid = " || SQL(clientguid) || " and bo.chartguid = " || SQL(chartguid) || " and bo.clientvisitguid = " || SQL(clientvisitguid)
|
|
|| " and bo.itemname = {{{SINGLE-QUOTE}}}culture{{{SINGLE-QUOTE}}} "
|
|
|| " left join cv3textualobservationline tol with (nolock) on tol.observationguid = bo.guid and tol.clientguid = " || SQL(clientguid)
|
|
|| " order by o.significantdtm " };
|
|
|
|
if ResultValue = "METHICILLIN RESISTANT STAPHYLOCOCCUS AUREUS" then MRSAPositive := "Yes"; else MRSAPositive := "No"; endif;
|
|
|
|
// Check for MRSA Flag
|
|
|
|
(MRSAHist) := read last
|
|
{ " select case when EnterpriseClientcol8 in ({{{SINGLE-QUOTE}}}MRSA{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}Both{{{SINGLE-QUOTE}}}) then {{{SINGLE-QUOTE}}}Yes{{{SINGLE-QUOTE}}} else {{{SINGLE-QUOTE}}}{{{SINGLE-QUOTE}}} end "
|
|
|| " from cv3enterpriseclientdata where clientguid = " || SQL(clientguid) || " " };
|
|
if exist MRSAHist then MRSAHistory := "Yes"; else MRSAHistory := "No"; endif;
|
|
|
|
If (VancomycinBoxValue = True or CefazolinBoxValue = True or ClindamycinBoxValue = True or ClindaGentBoxValue = True
|
|
or CefoxitinBoxValue = True) and weightvalue = 0 then
|
|
dialogResult := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "\n Please enter a weight to calculate dosing.","Alert","OK" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
|
|
endif;
|
|
|
|
CurrentLocation := read last
|
|
{"Select CurrentLocation "
|
|
||" From cv3Clientvisit "
|
|
||" Where Guid = " || SQL(ClientVisitGuid)
|
|
||" and VisitStatus = {{{SINGLE-QUOTE}}}ADM{{{SINGLE-QUOTE}}}" };
|
|
|
|
If CallingEvent = "FormOpen" then
|
|
sciporders := ""; grid1true := (); grid1false := ();
|
|
index_list := 1 seqto (count Grid1Orders_List ) ;
|
|
for J in index_list do
|
|
sciporders := sciporders || Grid1Orders_List.Name ;
|
|
enddo;
|
|
|
|
index_list2 := 1 seqto (count Grid2Orders_List ) ;grid2true := (); grid2false := ();
|
|
for K in index_list2 do
|
|
sciporders := sciporders || Grid2Orders_List.Name ;
|
|
enddo;
|
|
|
|
if sciporders matches pattern "%cefazolin%" then
|
|
RequestedTime1.control_visible := true;
|
|
RequestedDate1.control_visible := true;
|
|
CefazolinBox.control_visible := true;
|
|
|
|
If this_communication.CatalogParentOrderSetGUID in AltSCIPSets or this_communication.CatalogOrderSetGUID in AltSCIPSets then
|
|
SCIPMedInfo.value := AltCefazolinInfo;
|
|
ClindamycinInfo := AltClindamycinInfo;
|
|
else
|
|
SCIPMedInfo.value := CefazolinInfo;
|
|
endif;
|
|
|
|
endif;
|
|
|
|
|
|
if sciporders matches pattern "%cefoxitin%" then
|
|
RequestedTime2.control_visible := true;
|
|
RequestedDate2.control_visible := true;
|
|
CefoxitinBox.control_visible := true;
|
|
SCIPMedInfo.value := CefoxitinInfo;
|
|
endif;
|
|
|
|
if sciporders matches pattern "%clindamycin%" then
|
|
if sciporders matches pattern "%Gentamicin%" then
|
|
RequestedTime5.control_visible := true;
|
|
RequestedDate5.control_visible := true;
|
|
RequestedTime3.control_visible := true;
|
|
RequestedDate3.control_visible := true;
|
|
ClindaGentBox.control_visible := true;
|
|
SCIPPcnMedInfo.value := ClindamycinInfo ||ClindaGentInfo;
|
|
elseif sciporders matches pattern "%vancomycin%" then
|
|
SCIPPcnMedInfo.value := CLINDAMYCInInfo || VancomycinInfo;
|
|
RequestedTime3.control_visible := true;
|
|
RequestedDate3.control_visible := true;
|
|
ClindamycinBox.control_visible := true;
|
|
RequestedTime4.control_visible := true;
|
|
RequestedDate4.control_visible := true;
|
|
VancomycinBox.control_visible := true;
|
|
else
|
|
RequestedTime3.control_visible := true;
|
|
RequestedDate3.control_visible := true;
|
|
ClindamycinBox.control_visible := true;
|
|
SCIPPcnMedInfo.value := CLINDAMYCInInfo;
|
|
endif;
|
|
endif;
|
|
if sciporders matches pattern "%vancomycin%" then
|
|
if sciporders matches pattern "%Clindamycin%" then
|
|
SCIPPcnMedInfo.value := CLINDAMYCInInfo || VancomycinInfo;
|
|
RequestedTime3.control_visible := true;
|
|
RequestedDate3.control_visible := true;
|
|
ClindamycinBox.control_visible := true;
|
|
RequestedTime4.control_visible := true;
|
|
RequestedDate4.control_visible := true;
|
|
VancomycinBox.control_visible := true;
|
|
else
|
|
RequestedTime4.control_visible := true;
|
|
RequestedDate4.control_visible := true;
|
|
VancomycinBox.control_visible := true;
|
|
SCIPPcnMedInfo.value := VancomycinInfo;
|
|
endif;
|
|
endif;
|
|
/*
|
|
grid1control := ();
|
|
grid2control := ();
|
|
index1_list := 1 seqto (count Grid1Orders_List ) ;
|
|
index2_list := 1 seqto (count Grid2Orders_List ) ;
|
|
for a in index1_list do
|
|
grid1control := grid1control , "true";
|
|
enddo;
|
|
for b in index2_list do
|
|
grid2control := grid2control , "true";
|
|
enddo;
|
|
|
|
Grid1Orders_List.IsReadOnly := grid1control;
|
|
Grid2Orders_List.IsReadOnly := grid2control;
|
|
*/
|
|
endif;
|
|
|
|
|
|
If CallingEvent = "FieldChange" then
|
|
grid1control := (); grid1default := ();
|
|
grid2control := (); grid2default := ();
|
|
index1_list := 1 seqto (count Grid1Orders_List ) ;
|
|
index2_list := 1 seqto (count Grid2Orders_List ) ;
|
|
|
|
// Cefazolin
|
|
If CallingField = "PRX_Checkbox1|1" then
|
|
If CefazolinBoxValue = True then
|
|
Found_Cefazolin.IsSelected := True;
|
|
CefoxitinBox.control_read_only := True;
|
|
ClindamycinBox.control_read_only := True;
|
|
ClindaGentBox.control_read_only := True;
|
|
|
|
for a in index1_list do
|
|
grid1select := grid1select , grid1orders_list.isselected [a];
|
|
if grid1orders_list.isselected [a] = true then
|
|
grid1default := grid1default , "true";
|
|
grid1control := grid1control , "false"; else
|
|
grid1control := grid1control , "true";
|
|
grid1default := grid1default , "true";
|
|
endif;
|
|
enddo;
|
|
|
|
for b in index2_list do
|
|
grid2select := grid2select , grid2orders_list.isselected [b];
|
|
if grid2orders_list.isselected [b] = true then
|
|
grid2default := grid2default , "true";
|
|
grid2control := grid2control , "false"; else
|
|
grid2default := grid2default , "true";
|
|
grid2control := grid2control , "true"; endif;
|
|
enddo;
|
|
Grid1Orders_List.IsReadOnly := grid1control;
|
|
Grid2Orders_List.IsReadOnly := grid2control;
|
|
|
|
If (MRSAPositive = "Yes" or MRSAHistory = "Yes") and (PCNAllergy <> "Active" or PCNAllergy is null) and OS_with_MRSA = "True" then
|
|
dialogResult := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "\n Your patient may be flagged as MRSA Positive, consider ordering Vancomycin in addition to Cefazolin.","Alert","OK" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
|
|
endif;
|
|
|
|
If PCNAllergy = "Active" and MRSAPositive = "No" and MRSAHistory = "No" then
|
|
dialogResult := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "\n Your patient may have a documented allergy to Penicillin or Cephalosporins, please review Allergies before continuing. ","Alert","OK" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
|
|
endif;
|
|
|
|
If (MRSAPositive = "Yes" or MRSAHistory = "Yes") and PCNAllergy = "Active" and OS_with_MRSA = "True" then
|
|
dialogResult := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "\n Your patient may be flagged as MRSA Positive and may have a documented allergy to Penicillin or Cephalosporins. " || "\n\n Please review before ordering.","Alert","OK" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
|
|
endif;
|
|
|
|
elseif
|
|
CefazolinBoxValue = FALSE then
|
|
Found_Cefazolin.IsSelected := False;
|
|
ClindamycinBox.control_read_only := False;
|
|
ClindaGentBox.control_read_only := False;
|
|
VancomycinBox.control_read_only := False;
|
|
CefoxitinBox.control_read_only := False;
|
|
Grid1Orders_List.IsReadOnly := grid1default;
|
|
Grid2Orders_List.IsReadOnly := grid2default;
|
|
endif;
|
|
endif;
|
|
|
|
// Cefoxitin
|
|
If CallingField = "PRX_Checkbox1|2" then
|
|
If CefoxitinBoxValue = True then
|
|
|
|
Found_Cefoxitin.IsSelected := True;
|
|
CefazolinBox.control_read_only := True;
|
|
ClindamycinBox.control_read_only := True;
|
|
VancomycinBox.control_read_only := True;
|
|
ClindaGentBox.control_read_only := True;
|
|
|
|
|
|
for a in index1_list do
|
|
grid1select := grid1select , grid1orders_list.isselected [a];
|
|
if grid1orders_list.isselected [a] = true then
|
|
grid1default := grid1default , "true";
|
|
grid1control := grid1control , "false"; else
|
|
grid1control := grid1control , "true";
|
|
grid1default := grid1default , "true";
|
|
endif;
|
|
enddo;
|
|
|
|
for b in index2_list do
|
|
grid2select := grid2select , grid2orders_list.isselected [b];
|
|
if grid2orders_list.isselected [b] = true then
|
|
grid2default := grid2default , "true";
|
|
grid2control := grid2control , "false"; else
|
|
grid2default := grid2default , "true";
|
|
grid2control := grid2control , "true"; endif;
|
|
enddo;
|
|
Grid1Orders_List.IsReadOnly := grid1control;
|
|
Grid2Orders_List.IsReadOnly := grid2control;
|
|
elseif
|
|
CefoxitinBoxValue = FALSE then
|
|
Found_Cefoxitin.IsSelected := False;
|
|
ClindamycinBox.control_read_only := False;
|
|
ClindaGentBox.control_read_only := False;
|
|
VancomycinBox.control_read_only := False;
|
|
CefazolinBox.control_read_only := False;
|
|
|
|
Grid1Orders_List.IsReadOnly := grid1default;
|
|
Grid2Orders_List.IsReadOnly := grid2default;
|
|
endif;
|
|
endif;
|
|
|
|
|
|
|
|
// Clindamycin
|
|
If CallingField = "PRX_Checkbox1|3" then
|
|
If ClindamycinBoxValue = True then
|
|
|
|
|
|
Found_Clindamycin.IsSelected := True;
|
|
CefazolinBox.control_read_only := True;
|
|
CefoxitinBox.control_read_only := True;
|
|
VancomycinBox.control_read_only := True;
|
|
ClindaGentBox.control_read_only := True;
|
|
|
|
|
|
for a in index1_list do
|
|
grid1select := grid1select , grid1orders_list.isselected [a];
|
|
if grid1orders_list.isselected [a] = true then
|
|
grid1default := grid1default , "true";
|
|
grid1control := grid1control , "false"; else
|
|
grid1control := grid1control , "true";
|
|
grid1default := grid1default , "true";
|
|
endif;
|
|
enddo;
|
|
|
|
for b in index2_list do
|
|
grid2select := grid2select , grid2orders_list.isselected [b];
|
|
if grid2orders_list.isselected [b] = true then
|
|
grid2default := grid2default , "true";
|
|
grid2control := grid2control , "false"; else
|
|
grid2default := grid2default , "true";
|
|
grid2control := grid2control , "true"; endif;
|
|
enddo;
|
|
Grid1Orders_List.IsReadOnly := grid1control;
|
|
Grid2Orders_List.IsReadOnly := grid2control;
|
|
elseif
|
|
ClindamycinBoxValue = FALSE then
|
|
Found_Clindamycin.IsSelected := False;
|
|
CefazolinBox.control_read_only := False;
|
|
ClindaGentBox.control_read_only := False;
|
|
VancomycinBox.control_read_only := False;
|
|
CefoxitinBox.control_read_only := False;
|
|
|
|
Grid1Orders_List.IsReadOnly := grid1default;
|
|
Grid2Orders_List.IsReadOnly := grid2default;
|
|
endif;
|
|
endif;
|
|
|
|
|
|
|
|
|
|
//
|
|
If CallingField = "PRX_Checkbox1|4" then
|
|
If VancomycinBoxValue = True then
|
|
Found_Vancomycin.IsSelected := True;
|
|
CefoxitinBox.control_read_only := True;
|
|
ClindamycinBox.control_read_only := True;
|
|
ClindaGentBox.control_read_only := True;
|
|
|
|
|
|
for a in index1_list do
|
|
grid1select := grid1select , grid1orders_list.isselected [a];
|
|
if grid1orders_list.isselected [a] = true then
|
|
grid1default := grid1default , "true";
|
|
grid1control := grid1control , "false"; else
|
|
grid1control := grid1control , "true";
|
|
grid1default := grid1default , "true";
|
|
endif;
|
|
enddo;
|
|
|
|
for b in index2_list do
|
|
grid2select := grid2select , grid2orders_list.isselected [b];
|
|
if grid2orders_list.isselected [b] = true then
|
|
grid2default := grid2default , "true";
|
|
grid2control := grid2control , "false"; else
|
|
grid2default := grid2default , "true";
|
|
grid2control := grid2control , "true"; endif;
|
|
enddo;
|
|
Grid1Orders_List.IsReadOnly := grid1control;
|
|
Grid2Orders_List.IsReadOnly := grid2control;
|
|
elseif
|
|
VancomycinBoxValue = FALSE then
|
|
Found_Vancomycin.IsSelected := False;
|
|
CefazolinBox.control_read_only := False;
|
|
ClindaGentBox.control_read_only := False;
|
|
ClindamycinBox.control_read_only := False;
|
|
CefoxitinBox.control_read_only := False;
|
|
|
|
Grid1Orders_List.IsReadOnly := grid1default;
|
|
Grid2Orders_List.IsReadOnly := grid2default;
|
|
endif;
|
|
endif;
|
|
|
|
//
|
|
If CallingField = "PRX_Checkbox1|5" then
|
|
If ClindaGentBoxValue = True then
|
|
Found_Clindamycin.IsSelected := True;
|
|
Found_Gentamicin.IsSelected := True;
|
|
VancomycinBox.control_read_only := True;
|
|
ClindamycinBox.control_read_only := True;
|
|
CefazolinBox.control_read_only := True;
|
|
CefoxitinBox.control_read_only := True;
|
|
for a in index1_list do
|
|
grid1select := grid1select , grid1orders_list.isselected [a];
|
|
if grid1orders_list.isselected [a] = true then
|
|
grid1default := grid1default , "true";
|
|
grid1control := grid1control , "false"; else
|
|
grid1control := grid1control , "true";
|
|
grid1default := grid1default , "true";
|
|
endif;
|
|
enddo;
|
|
|
|
for b in index2_list do
|
|
grid2select := grid2select , grid2orders_list.isselected [b];
|
|
if grid2orders_list.isselected [b] = true then
|
|
grid2default := grid2default , "true";
|
|
grid2control := grid2control , "false"; else
|
|
grid2default := grid2default , "true";
|
|
grid2control := grid2control , "true"; endif;
|
|
enddo;
|
|
Grid1Orders_List.IsReadOnly := grid1control;
|
|
Grid2Orders_List.IsReadOnly := grid2control;
|
|
elseif
|
|
ClindaGentBoxValue = FALSE then
|
|
|
|
|
|
|
|
Found_Clindamycin.IsSelected := False;
|
|
Found_Gentamicin.IsSelected := False;
|
|
CefazolinBox.control_read_only := False;
|
|
VancomycinBox.control_read_only := False;
|
|
ClindamycinBox.control_read_only := False;
|
|
CefoxitinBox.control_read_only := False;
|
|
|
|
Grid1Orders_List.IsReadOnly := grid1default;
|
|
Grid2Orders_List.IsReadOnly := grid2default;
|
|
endif;
|
|
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:
|