202 lines
7.0 KiB
Plaintext
202 lines
7.0 KiB
Plaintext
maintenance:
|
|
|
|
title: FORM_Set_Open_Heart_Anesthesia;;
|
|
mlmname: FORM_Set_Open_Heart_Anesthesia;;
|
|
arden: version 2.5;;
|
|
version: 16.3;;
|
|
institution: St Clair Hospital;;
|
|
author: Teresa Spicuzza;;
|
|
specialist: Michele Palmer;;
|
|
date: 2018-11-02;;
|
|
validation: testing;;
|
|
|
|
library:
|
|
purpose: Used for Post Open Heart anesthesia Order Set
|
|
;;
|
|
|
|
explanation: This MLM is called from the Post Open Heart Anesthesia Order Set to calculate the Standard Dose Sugammadex (Bridion) at 2mg/kg, rounded to the nearest whole number.
|
|
Also only allows for either the standard dosing of a drug or the non standard dosing of a drug to be selected, but not both.
|
|
|
|
Change History
|
|
11.02.2018 TMS CSR 37529 Created to calculate Sugammadex for Standard Dosing Grid at 2mg/kg. Added logic to only allow a drug to be selected in either the Standard dosing grid
|
|
or the non standard dosing grid, but not both. This was previously handled by the Generic MLM.
|
|
|
|
;;
|
|
keywords: Called MLMs, Post Open Heart Anesthesia
|
|
;;
|
|
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;
|
|
|
|
|
|
/***************************************************************************************/
|
|
|
|
// Use String parse
|
|
str_parse := mlm {{{SINGLE-QUOTE}}}UTIL_STRING_PARSE{{{SINGLE-QUOTE}}};
|
|
|
|
// Initialize error message
|
|
error_message:="";
|
|
|
|
// Assigns fields passed in the Form object to the Field object
|
|
field_list:= this_form.fields;
|
|
standard_libs := MLM {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
|
|
include standard_libs;
|
|
|
|
|
|
client_guid := this_communication.ClientGUID;
|
|
visit_guid := this_communication.ClientVisitGUID;
|
|
chart_guid := this_communication.ChartGuid;
|
|
|
|
CallingEvent := this_communication.CallingEvent;
|
|
CallingField := this_communication.CallingFieldName;
|
|
|
|
Standard_Dose_Grid := last of (field_list where field_list.DataItemName = "MultiOrderGrid"
|
|
and field_List.Control_MultiFieldOccNum = 11);
|
|
Standard_Dose_List :=Standard_Dose_Grid.Value;
|
|
NonStandard_Dose_Grid := last of (field_list where field_list.DataItemName = "MultiOrderGrid"
|
|
and field_List.Control_MultiFieldOccNum = 12);
|
|
NonStandard_Dose_List :=NonStandard_Dose_Grid.Value;
|
|
|
|
Sugammadex := first of (Standard_Dose_List where Standard_Dose_List.Name = "Sugammadex Inj");
|
|
Neostigmine := first of (Standard_Dose_List where Standard_Dose_List.Name = "Neostigmine Inj");
|
|
Physostigmine := first of (Standard_Dose_List where Standard_Dose_List.Name = "Physostigmine Inj");
|
|
Glycopyrrolate := first of (Standard_Dose_List where Standard_Dose_List.Name = "Glycopyrrolate Inj");
|
|
|
|
Sugammadex_NonStd:= first of (NonStandard_Dose_List where NonStandard_Dose_List.Name = "Sugammadex Inj");
|
|
Neostigmine_NonStd := first of (NonStandard_Dose_List where NonStandard_Dose_List.Name = "Neostigmine Inj");
|
|
Physostigmine_NonStd := first of (NonStandard_Dose_List where NonStandard_Dose_List.Name = "Physostigmine Inj");
|
|
Glycopyrrolate_NonStd := first of (NonStandard_Dose_List where NonStandard_Dose_List.Name = "Glycopyrrolate Inj");
|
|
Calc_Dose := first of (field_list where field_list.DataItemName = "DosageLow"
|
|
and field_List.Control_MultiFieldOccNum = 1);
|
|
Calc_Dose_Value := Calc_Dose.value;
|
|
comb_ht_wt_fld := first of (field_list
|
|
where field_list.DataItemName = "CombinedMeasurements" and field_List.Control_MultiFieldOccNum = 2);
|
|
|
|
|
|
|
|
if exists comb_ht_wt_fld then
|
|
comb_ht_wt_val := comb_ht_wt_fld.Value;
|
|
wt := comb_ht_wt_val.weight;
|
|
ht := comb_ht_wt_val.height;
|
|
wt_type := comb_ht_wt_val.weighttype;
|
|
bsa := comb_ht_wt_val.bsa;
|
|
bmi := comb_ht_wt_val.bmi;
|
|
endif;
|
|
|
|
If CallingEvent = "FormOpen" Then
|
|
Calc_Raw_Dose := wt * 2;
|
|
round_dose := int((Calc_Raw_Dose + 0.5)/1) * 1;
|
|
Calc_Dose.value := round_dose;
|
|
endif;
|
|
|
|
If CallingEvent = "FieldChange" then
|
|
If CallingField = "MultiOrderGrid|11" then
|
|
|
|
If Sugammadex.IsSelected = True then
|
|
If wt is null or wt = 0 then
|
|
msg1 := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "\n Sugammadex (Bridion) is calculated at 2mg/kg. \n\n Please enter a weight for this patient." ,"Sunrise Clinical Manager", "OK" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}},"Warning" as {{{SINGLE-QUOTE}}}MessageBoxIcon{{{SINGLE-QUOTE}}};
|
|
Calc_Dose.value := null;
|
|
else
|
|
Calc_Raw_Dose := wt * 2;
|
|
round_dose := int((Calc_Raw_Dose + 0.5)/1) * 1;
|
|
Calc_Dose.value := round_dose;
|
|
endif;
|
|
Sugammadex_NonStd.IsReadOnly := True;
|
|
|
|
elseif Sugammadex.IsSelected = False then
|
|
Sugammadex_NonStd.IsReadOnly := False;
|
|
endif;
|
|
|
|
If Neostigmine.IsSelected = True then
|
|
Neostigmine_NonStd.IsReadOnly := True;
|
|
Neostigmine.IsReadOnly := False;
|
|
elseif Neostigmine.IsSelected = False then
|
|
Neostigmine_NonStd.IsReadOnly := False;
|
|
endif;
|
|
|
|
If Physostigmine.IsSelected = True then
|
|
Physostigmine_NonStd.IsReadOnly := True;
|
|
elseif Physostigmine.IsSelected = False then
|
|
Physostigmine_NonStd.IsReadOnly := False;
|
|
endif;
|
|
|
|
If Glycopyrrolate.IsSelected = True then
|
|
Glycopyrrolate_NonStd.IsReadOnly := True;
|
|
elseif Glycopyrrolate.IsSelected = False then
|
|
Glycopyrrolate_NonStd.IsReadOnly := False;
|
|
endif;
|
|
|
|
endif; //If CallingField = "MultiOrderGrid|11"
|
|
|
|
If CallingField = "MultiOrderGrid|12" then
|
|
|
|
If Sugammadex_NonStd.IsSelected = True then
|
|
Sugammadex.IsReadOnly := True;
|
|
elseif Sugammadex_NonStd.IsSelected = False then
|
|
Sugammadex.IsReadOnly := False;
|
|
endif;
|
|
|
|
If Neostigmine_NonStd.IsSelected = True then
|
|
Neostigmine.IsReadOnly := True;
|
|
elseif Neostigmine_NonStd.IsSelected = False then
|
|
Neostigmine.IsReadOnly := False;
|
|
endif;
|
|
|
|
If Physostigmine_NonStd.IsSelected = True then
|
|
Physostigmine.IsReadOnly := True;
|
|
elseif Physostigmine_NonStd.IsSelected = False then
|
|
Physostigmine.IsReadOnly := False;
|
|
endif;
|
|
|
|
If Glycopyrrolate_NonStd.IsSelected = True then
|
|
Glycopyrrolate.IsReadOnly := True;
|
|
elseif Glycopyrrolate_NonStd.IsSelected = False then
|
|
Glycopyrrolate.IsReadOnly := False;
|
|
endif;
|
|
|
|
endif; //If CallingField = "MultiOrderGrid|12"
|
|
|
|
|
|
If CallingField = "CombinedMeasurements|2" then
|
|
|
|
If wt is null or wt = 0 then
|
|
Calc_Dose.value := null;
|
|
else
|
|
Calc_Raw_Dose := wt * 2;
|
|
round_dose := int((Calc_Raw_Dose + 0.5)/1) * 1;
|
|
Calc_Dose.value := round_dose;
|
|
|
|
endif;
|
|
endif; //If CallingField = "CombinedMeasurements|2"
|
|
endif; //If CallingEvent = "FieldChange"
|
|
|
|
|
|
|
|
|
|
;;
|
|
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:
|