Files
St.Clair/MLMStripper/bin/Debug/FORM/FORM_SET_SUBCUTANEOUS_INSULIN_ORDERS.mlm

2371 lines
112 KiB
Plaintext

maintenance:
maintenance:
title: FORM_SET_Subcutaneous_Insulin_Orders;;
mlmname: FORM_SET_Subcutaneous_Insulin_Orders;;
arden: version 2.5;;
version: 18.4;;
institution: St Clair Hospital;;
author: Teresa Spicuzza, Allscripts ;;
specialist: St Clair Hospital;;
date: 2019-01-09;;
validation: testing;;
library:
purpose: Support best practice for diabetic management including standardized weight based calculation long and short acting insulin.
;;
explanation:
Change history
01.14.2020 TMS CSR 37690: Created to calculate weight based insulin orders using similar logic as is used for Diabetic Managment Protocol
01.23.2020 TMS CSR 37690: Added checkboxes for correctional scale and logic to allow user to change sliding scale by selecting new sliding scale range box or by selecting the
desired scale without unchecking anything in the order selection checkboxes. Original method was confusing to users, whereby they had to deselect
;;
keywords: Insulin, weight based, diabetic
;;
knowledge:
type: data-driven;;
data:
standard_libs := mlm {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
include standard_libs;
local_session := CDS_SESSION.local;
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;
comm_obj := this_communication.primaryobj;
/*******************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:="";
CR := 13 formatted with "%c";
LF := 10 formatted with "%c";
CRLF:= CR||LF;
TAB := 9 FORMATTED WITH "%C" ;
TAB2 := TAB || TAB ;
TAB3 := TAB || TAB || TAB;
// Assigns fields passed in the Form object to the Field object
field_list:= this_form.fields;
CallingEvent := this_communication.CallingEvent;
CallingField := this_communication.CallingFieldName;
ClientGuid := this_communication.ClientGUID;
ClientVisitGuid := this_communication.ClientVisitGUID;
ChartGuid := this_communication.ChartGUID;
UserGuid := this_communication.UserGuid;
//Form fields
DosingGuidelines := last of (field_list WHERE field_list.DataItemName = "MultiOrderInline"
AND field_list.Control_MultiFieldOccNum = 5);
DosingGuidelines_List := DosingGuidelines.value;
Nur_Instruct:= last of ( field_list WHERE field_list.DataItemName = "MultiOrderGrid"
AND field_list.Control_MultiFieldOccNum = 5 );
Nur_InstructList := Nur_Instruct.value;
Physician_Consult:= last of ( field_list WHERE field_list.DataItemName = "MultiOrderGrid"
AND field_list.Control_MultiFieldOccNum = 8 );
Physician_ConsultList := Physician_Consult.value;
InsulinLowDose := last of (field_list WHERE field_list.DataItemName = "MultiOrderInline"
AND field_list.Control_MultiFieldOccNum = 1);
InsulinLowDose_List := InsulinLowDose.value;
InsulinModDose := last of (field_list WHERE field_list.DataItemName = "MultiOrderInline"
AND field_list.Control_MultiFieldOccNum = 2);
InsulinModDose_List := InsulinModDose.value;
InsulinHighDose := last of (field_list WHERE field_list.DataItemName = "MultiOrderInline"
AND field_list.Control_MultiFieldOccNum = 3);
InsulinHighDose_List := InsulinHighDose.value;
InsulinTypeInDose := last of (field_list WHERE field_list.DataItemName = "MultiOrderInline"
AND field_list.Control_MultiFieldOccNum = 4);
InsulinTypeInDoseList := InsulinTypeInDose.value;
BasalInsulin:= last of ( field_list WHERE field_list.DataItemName = "MultiOrderGrid"
AND field_list.Control_MultiFieldOccNum = 2 );
BasalInsulinList := BasalInsulin.value;
NutrInsulin:= last of ( field_list WHERE field_list.DataItemName = "MultiOrderGrid"
AND field_list.Control_MultiFieldOccNum = 3 );
NutrInsulinList := NutrInsulin.value;
CurrWeight := last of ( field_list WHERE field_list.DataItemName = "CombinedMeasurements"
AND field_list.Control_MultiFieldOccNum = 1 );
OrderInfo := last of ( field_list WHERE field_list.DataItemName = "PRX_NOTECOMMENT0"
AND field_list.Control_MultiFieldOccNum = 1 );
BGMFrequencyCode := last of ( field_list WHERE field_list.DataItemName = "FrequencyCode"
AND field_list.Control_MultiFieldOccNum = 1 );
BGMFrequency := BGMFrequencyCode.value;
BGMOrders := last of ( field_list WHERE field_list.DataItemName = "MultiOrderGrid"
AND field_list.Control_MultiFieldOccNum = 1 );
BGMOrders_List := BGMOrders.value;
HomeMedList := last of ( field_list WHERE field_list.DataItemName = "PRX_Dosing_Info"
AND field_list.Control_MultiFieldOccNum = 1 );
CurrentMedList := last of ( field_list WHERE field_list.DataItemName = "PRX_Dosing_Info"
AND field_list.Control_MultiFieldOccNum = 2 );
SingleOral_CB := last of ( field_list WHERE field_list.DataItemName = "PRX_DM_SingleOralHomeMed"
AND field_list.Control_MultiFieldOccNum = 1 );
MultipleOralOrInsulin_CB := last of ( field_list WHERE field_list.DataItemName = "PRX_DM_MultipleOralOrInsulin"
AND field_list.Control_MultiFieldOccNum = 1 );
Diabetic_CB := last of ( field_list WHERE field_list.DataItemName = "PRX_DM_PatientIsDiabetic"
AND field_list.Control_MultiFieldOccNum = 1 );
InsulinPump_CB := last of ( field_list WHERE field_list.DataItemName = "PRX_DM_PatientOnInsulinPump"
AND field_list.Control_MultiFieldOccNum = 1 );
PumpNotFunctioning_CB := last of ( field_list WHERE field_list.DataItemName = "PRX_DM_NonFunctioningPump"
AND field_list.Control_MultiFieldOccNum = 1 );
DietControlled_CB:= last of ( field_list WHERE field_list.DataItemName = "PRX_DM_PatientDietControlled"
AND field_list.Control_MultiFieldOccNum = 1 );
GFR_CB:= last of ( field_list WHERE field_list.DataItemName = "PRX_DM_GFR_LT_30"
AND field_list.Control_MultiFieldOccNum = 1 );
IvSteroid_CB := last of ( field_list WHERE field_list.DataItemName = "PRX_DM_PtOnIvSteroids"
AND field_list.Control_MultiFieldOccNum = 1 );
Override_CB := last of ( field_list WHERE field_list.DataItemName = "PRX_Generic_CB"
AND field_list.Control_MultiFieldOccNum = 1 );
Basal_Lantus_Levemir_CB := last of ( field_list WHERE field_list.DataItemName = "PRX_Basal_Lantus-Levemir"
AND field_list.Control_MultiFieldOccNum = 1 );
Basal_NPH_CB := last of ( field_list WHERE field_list.DataItemName = "PRX_Basal_NPH-Isophane"
AND field_list.Control_MultiFieldOccNum = 1 );
Basal_Freq_Daily_CB := last of ( field_list WHERE field_list.DataItemName = "PRX_Basal_Frequency"
AND field_list.Control_MultiFieldOccNum = 1 );
Basal_Freq_BID_CB := last of ( field_list WHERE field_list.DataItemName = "PRX_Basal_Frequency"
AND field_list.Control_MultiFieldOccNum = 2 );
Nutr_Aspart_CB := last of ( field_list WHERE field_list.DataItemName = "PRX_Insulin_Aspart"
AND field_list.Control_MultiFieldOccNum = 1 );
Nutr_Regular_CB := last of ( field_list WHERE field_list.DataItemName = "PRX_Insulin_Regular"
AND field_list.Control_MultiFieldOccNum = 1 );
Nutr_Freq_Bkfst_CB:= last of ( field_list WHERE field_list.DataItemName = "PRX_Nutritional_Frequency"
AND field_list.Control_MultiFieldOccNum = 1 );
Nutr_Freq_Lunch_CB:= last of ( field_list WHERE field_list.DataItemName = "PRX_Nutritional_Frequency"
AND field_list.Control_MultiFieldOccNum = 2 );
Nutr_Freq_Dinner_CB:= last of ( field_list WHERE field_list.DataItemName = "PRX_Nutritional_Frequency"
AND field_list.Control_MultiFieldOccNum = 3 );
Nutr_Freq_TID_CB:= last of ( field_list WHERE field_list.DataItemName = "PRX_Nutritional_Frequency"
AND field_list.Control_MultiFieldOccNum = 4 );
Nutr_Freq_QHS_CB:= last of ( field_list WHERE field_list.DataItemName = "PRX_Nutritional_Frequency"
AND field_list.Control_MultiFieldOccNum = 5 );
Corr_Aspart_CB := last of ( field_list WHERE field_list.DataItemName = "PRX_Insulin_Aspart"
AND field_list.Control_MultiFieldOccNum = 2 );
Corr_Regular_CB := last of ( field_list WHERE field_list.DataItemName = "PRX_Insulin_Regular"
AND field_list.Control_MultiFieldOccNum = 2 );
Corr_Dose_Type := last of (field_list WHERE field_list.DataItemName = "PRX_Corr_Insulin_Dose"
AND field_list.Control_MultiFieldOccNum = 1 );
Corr_Low_Dose_Scale := last of (field_list WHERE field_list.DataItemName = "PRX_Corr_Insulin_Scale"
AND field_list.Control_MultiFieldOccNum = 1 );
Corr_Mod_Dose_Scale := last of (field_list WHERE field_list.DataItemName = "PRX_Corr_Insulin_Scale"
AND field_list.Control_MultiFieldOccNum = 2 );
Corr_High_Dose_Scale := last of (field_list WHERE field_list.DataItemName = "PRX_Corr_Insulin_Scale"
AND field_list.Control_MultiFieldOccNum = 3 );
Corr_Ind_Dose_Scale := last of (field_list WHERE field_list.DataItemName = "PRX_Corr_Insulin_Scale"
AND field_list.Control_MultiFieldOccNum = 4 );
CurrentLoc := read last
{" select currentlocation from cv3clientvisit "
|| " where ClientGUID = " || SQL(clientguid)
|| " and GUID = " || SQL(clientvisitguid)};
InsulinLowDoseList := InsulinLowDose.value;
InsulinModDoseList := InsulinModDose.value;
InsulinHighDoseList := InsulinHighDose.value;
BasalInsulinList := BasalInsulin.value;
NutrInsulinList := NutrInsulin.value;
Physician_ConsultList := Physician_Consult.value;
//Nur_InstructList := Endo_Consult.value;
CalcDoseBasal := last of (field_list WHERE field_list.DataItemName = "PRX_Basal_TDD"
AND field_list.Control_MultiFieldOccNum = 1);
CalcDoseNutr := last of (field_list WHERE field_list.DataItemName = "PRX_Nutritional_TDD"
AND field_list.Control_MultiFieldOccNum = 1);
BasalDoseValue := last of (field_list WHERE field_list.DataItemName = "DosageLow"
AND field_list.Control_MultiFieldOccNum = 1);
NutrDoseValue := last of (field_list WHERE field_list.DataItemName = "DosageLow"
AND field_list.Control_MultiFieldOccNum = 2);
if exists CurrWeight then
CurrWeight_val := CurrWeight.Value;
wt := CurrWeight_val.weight;
fmtwt := wt formatted with "%.1f";
else
wtgm := read last
{ " Select Text from CV3PhysicalNoteDeclaration "
|| " where ClientGUID = " || SQL(clientguid)
|| " and ClientVisitGUID = " || SQL(clientvisitguid)
|| " and TypeCode = {{{SINGLE-QUOTE}}}weight{{{SINGLE-QUOTE}}} "
|| " order by Entered asc " };
wt := (wtgm as number) / 1000;
fmtwt := wt formatted with "%.1f";
// calculate Total Daily Dose for patient weight
TDD_calc := (wt as number) * 0.2;
fmt_TDD := TDD_calc formatted with "%.0f";
TDD_half := (TDD_calc as number) * 0.5;
TDD_halfrnd := int (((TDD_half as number) + 0.5)/1)*1;
fmt_TDD_halfrnd := TDD_halfrnd formatted with "%.0f";
TDD_half_div := (TDD_half as number) ;
TDD_Half_div_rnd := int (((TDD_half_div as number) + 0.5)/1)*1;
fmt_TDD_halfdiv_rnd := TDD_half_div_rnd formatted with "%.0f";
TDD_half_div2 := (TDD_half as number) / 2;
TDD_Half_div2_rnd := int (((TDD_half_div2 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv2_rnd := TDD_half_div2_rnd formatted with "%.0f";
TDD_half_div3 := (TDD_half as number) / 3;
TDD_Half_div3_rnd := int (((TDD_half_div3 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv3_rnd := TDD_half_div3_rnd formatted with "%.0f";
TDD_half_div4 := (TDD_half as number) / 4;
TDD_Half_div4_rnd := int (((TDD_half_div4 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv4_rnd := TDD_half_div4_rnd formatted with "%.0f";
CalcDoseBasal.Value := TDD_halfrnd;
CalcDoseNutr.Value := TDD_halfrnd;
endif;
If CallingEvent = "FormOpen" then
DosingGuidelines_List.IsReadOnly := (true);
//Obtain and format Home Medication Orders for display on form
(HomeMed, HomeMedInfo) := read { "select distinct cp.DrugName, cp.instructions
from SXAAMBClientPrescription cp
inner join SXAMTDrugNameMapVW dnm on dnm.drug_synonym_id = cp.FormularyBrandKey
join SXAMTCategoryDrugXREFVW cdx on cdx.drug_id = dnm.drug_id
join SXAMTDrugCategoriesVW cat on cat.multum_category_id = cdx.multum_category_id
where cp.ClientGUID = " || SQL(clientguid) || " and cp.StatusType ={{{SINGLE-QUOTE}}}1{{{SINGLE-QUOTE}}}
and cat.category_name in ({{{SINGLE-QUOTE}}}insulin{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}dipeptidyl peptidase 4 inhibitors{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}antidiabetic combinations{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}sulfonylureas{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}biguanides{{{SINGLE-QUOTE}}})
and cp.EndDate is null " };
NumMeds:= 1 seqto (count HomeMed) ;
fmtMessage := "";
for i in NumMeds do
fmtMessage := fmtMessage || HomeMed [i] || " " || HomeMedInfo [i] || CRLF;
enddo;
HomeMedList.value := fmtMessage;
//Obtain and format Current Inpatient Medication Orders for display on form
(IpMedCode, IpMedName, IpMedSumm, IPMedDate) := read { "select distinct o.idcode, o.name, Replace (o.summaryline, CHAR(13) + CHAR(10), {{{SINGLE-QUOTE}}}{{{SINGLE-QUOTE}}})
from cv3order o
join CV3OrderCatalogMasterItem ocmi on ocmi.guid = o.OrderCatalogMasterItemGUID
join CV3DrugMapping dm on dm.CatalogItemGUID = ocmi.guid
join SXAMultumLevelsForDupMedTherapy dup on dup.DrugId = dm.DrugKey
join SXAMTCategoryDrugXREFVW cdx on cdx.drug_id = dm.drugkey
join SXAMTDrugCategoriesVW cat on cat.multum_category_id = cdx.multum_category_id
where cat.category_name in ({{{SINGLE-QUOTE}}}insulin{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}dipeptidyl peptidase 4 inhibitors{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}antidiabetic combinations{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}sulfonylureas{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}biguanides{{{SINGLE-QUOTE}}})
and o.ClientGUID = " || SQL(clientguid) || " and o.clientvisitguid = " || SQL(clientvisitguid) || "
and o.OrderStatusCode not in ({{{SINGLE-QUOTE}}}DISC{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}COMP{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}DISCD{{{SINGLE-QUOTE}}})"};
NumIPMeds:= 1 seqto (count IPMedCode) ;
fmtIPMessage := "";
for s in NumIPMeds do
fmtIPMessage := fmtIPMessage || IPMedName [s] || " " || IPMedSumm [s] || CRLF;
enddo;
CurrentMedList.value := fmtIPMessage;
endif; //If CallingEvent = "FormOpen"
If CallingEvent = "FormOpen" or (CallingEvent = "FieldChange" and CallingField = "CombinedMeasurements|1")
or (CallingEvent = "FieldChange" and CallingField = "PRX_Generic_CB|1" and Override_CB.Value = False) then
/*********************************BEGIN HEALTH ISSUE SECTION**********************************************/
HealthIssue := read last {" select distinct hi.ShortName
from cv3healthissuedeclaration hi with (nolock)
inner join cv3codedhealthissue chi with (nolock) on hi.CodedHealthIssueGUID = chi.guid and chi.TypeCode IN({{{SINGLE-QUOTE}}}I9{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}ICD10{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}ICD9{{{SINGLE-QUOTE}}})
where Clientguid = " || SQL (clientguid)
|| " and hi.active = 1
and Status in ({{{SINGLE-QUOTE}}}Active{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}Chronic{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}Retired Code{{{SINGLE-QUOTE}}})
and (((ICD10Code like {{{SINGLE-QUOTE}}}E10%{{{SINGLE-QUOTE}}}) or (ICD10Code like {{{SINGLE-QUOTE}}}E11%{{{SINGLE-QUOTE}}}) or (ICD10Code like {{{SINGLE-QUOTE}}}E09%{{{SINGLE-QUOTE}}}))
or ((ICD9Code like {{{SINGLE-QUOTE}}}250.%{{{SINGLE-QUOTE}}} and ICD10Code is null))
or ((ICD9Code like {{{SINGLE-QUOTE}}}249.%{{{SINGLE-QUOTE}}} and ICD10Code is null))
or ((chi.TypeCode IN({{{SINGLE-QUOTE}}}I9{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}ICD9{{{SINGLE-QUOTE}}})) and ((chi.Code like {{{SINGLE-QUOTE}}}250.%{{{SINGLE-QUOTE}}}) or chi.Code like {{{SINGLE-QUOTE}}}249.%{{{SINGLE-QUOTE}}}))
or ((chi.TypeCode = {{{SINGLE-QUOTE}}}ICD10{{{SINGLE-QUOTE}}}) and ((chi.Code like {{{SINGLE-QUOTE}}}E11%{{{SINGLE-QUOTE}}}) or chi.Code like {{{SINGLE-QUOTE}}}E09%{{{SINGLE-QUOTE}}})))"};
if exist HealthIssue then Patient_is_Diabetic := "Yes"; else Patient_is_Diabetic := "No"; endif;
If Patient_is_Diabetic = "Yes" then
Diabetic_CB.value := True;
Diabetic_CB.Control_Read_Only := True;
else
If Diabetic_CB.value = False then
dialogResult1 := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "\n Unable to retrieve health issues for Diabetes. \n Does this patient have Diabetes? ","Alert","YesNo" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
if((dialogResult1 as string) = "Yes") then
Diabetic_CB.value := True;
Diabetic_CB.Control_Read_Only := True;
else
Diabetic_CB.Control_Read_Only := False;
endif;
endif;
endif;
/***********************BEGIN INSULIN PUMP DOCUMENTATION SEARCH ********************************/
(InsulinPump) := read last {"select fsl.value "
|| " from CV3ClientDocument cd with (nolock) "
|| " join CV3ClientDocDetail cdd with (nolock) ON (cdd.ClientDocumentGUID = cd.GUID AND cdd.ClientGUID = " || SQL(clientguid) || " and cdd.active = 1) "
|| " left join CV3ObservationDocument od with (nolock) ON cdd.CLientDocumentGUID = od.OwnerGUID and od.active = 1 "
|| " join CV3ObsCatalogMasterItem ocmi with (nolock) on od.ObsMasterItemGUID = ocmi.GUID and ocmi.name in ({{{SINGLE-QUOTE}}}SCHCK type of insulin{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}SCHCK insulin pump type{{{SINGLE-QUOTE}}}) "
|| " left join SCMObsFSListValues fsl(nolock) ON (fsl.ParentGUID = od.ObservationDocumentGUID AND fsl.ClientGUID = " || SQL(clientguid) || ") "
|| " where cd.clientguid = " || SQL(clientguid) || " and cd.clientvisitguid = " || SQL(clientvisitguid)
|| " and cd.documentname in ({{{SINGLE-QUOTE}}}ED Triage Note{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}adult patient profile{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}OB Patient Profile{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}Pediatric Patient Profile{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}Newborn Patient Profile{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}Test{{{SINGLE-QUOTE}}}) " };
if exist insulinPump then
Patient_on_Insulin_Pump := "Yes";
else
PumpHealthIssue := read last {" select distinct hi.ShortName
from cv3healthissuedeclaration hi with (nolock)
inner join cv3codedhealthissue chi with (nolock) on hi.CodedHealthIssueGUID = chi.guid and chi.TypeCode IN({{{SINGLE-QUOTE}}}I9{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}ICD10{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}ICD9{{{SINGLE-QUOTE}}})
where Clientguid = " || SQL (clientguid)
|| " and hi.active = 1
and Status in ({{{SINGLE-QUOTE}}}Active{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}Chronic{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}Retired Code{{{SINGLE-QUOTE}}})
and ((ICD10Code = {{{SINGLE-QUOTE}}}Z96.41{{{SINGLE-QUOTE}}})
or (ICD9Code = {{{SINGLE-QUOTE}}}V45.85{{{SINGLE-QUOTE}}} and ICD10Code is null)
or ((chi.TypeCode = {{{SINGLE-QUOTE}}}ICD10{{{SINGLE-QUOTE}}}) and (chi.Code = {{{SINGLE-QUOTE}}}Z96.41{{{SINGLE-QUOTE}}})))"};
if exist pumpHealthIssue then Patient_on_Insulin_Pump := "Yes"; else Patient_on_Insulin_Pump := "No"; endif;
endif;
/***********************BEGIN HOME MEDICATION ORAL DIABETIC AGENT SEARCH********************************/
(OralHomeMed,rxid) := read { "select distinct cp.DrugName, cp.prescriptionid
from SXAAMBClientPrescription cp
inner join SXAMTDrugNameMapVW dnm on dnm.drug_synonym_id = cp.FormularyBrandKey
join SXAMTCategoryDrugXREFVW cdx on cdx.drug_id = dnm.drug_id
join SXAMTDrugCategoriesVW cat on cat.multum_category_id = cdx.multum_category_id
where cp.ClientGUID = " || SQL(ClientGuid) || " and cp.statustype = {{{SINGLE-QUOTE}}}1{{{SINGLE-QUOTE}}}
and cat.category_name in ({{{SINGLE-QUOTE}}}dipeptidyl peptidase 4 inhibitors{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}antidiabetic combinations{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}sulfonylureas{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}biguanides{{{SINGLE-QUOTE}}})"};
if exist OralHomeMed then Patient_on_Oral_Home_Agent := "Yes"; else Patient_on_Oral_Home_Agent := "No"; endif;
HomeMedCount := count (OralHomeMed);
If Patient_on_Oral_Home_Agent = "Yes" then
If HomeMedCount = 1 then
SingleOralAgent := "Yes";
MultiOralAgent := "No";
else
SingleOralAgent := "No";
MultiOralAgent := "Yes";
endif;
endif;
/*********************************BEGIN HOME INSULIN SEARCH********************************************/
InsulinHomeMed := read last { "select distinct cp.DrugName
from SXAAMBClientPrescription cp
inner join SXAMTDrugNameMapVW dnm on dnm.drug_synonym_id = cp.FormularyBrandKey
join SXAMTCategoryDrugXREFVW cdx on cdx.drug_id = dnm.drug_id
join SXAMTDrugCategoriesVW cat on cat.multum_category_id = cdx.multum_category_id
where cp.ClientGUID = " || SQL(ClientGuid) || " and cp.statustype = {{{SINGLE-QUOTE}}}1{{{SINGLE-QUOTE}}}
and cat.category_name = {{{SINGLE-QUOTE}}}insulin{{{SINGLE-QUOTE}}}
and cp.EndDate is null "};
if exist InsulinHomeMed then Patient_on_Home_Insulin := "Yes"; else Patient_on_Home_Insulin := "No"; endif;
/********************************* BEGIN DIET ORDER SEARCH********************************************/
NPO := read last { "select o.guid from cv3order o
join CV3OrderCatalogMasterItem ocmi on ocmi.guid = o.OrderCatalogMasterItemGUID
where clientvisitguid = " || SQL (clientvisitguid) || " and o.clientguid = " || SQL (clientguid) ||"
and o.typecode = {{{SINGLE-QUOTE}}}Other{{{SINGLE-QUOTE}}}
and ocmi.Name = {{{SINGLE-QUOTE}}}NPO{{{SINGLE-QUOTE}}}"};
Diet := read last { "select o.guid from cv3order o
join CV3OrderCatalogMasterItem ocmi on ocmi.guid = o.OrderCatalogMasterItemGUID
where clientvisitguid = " || SQL (clientvisitguid) || " and o.clientguid = " || SQL (clientguid) ||"
and o.typecode = {{{SINGLE-QUOTE}}}Other{{{SINGLE-QUOTE}}}
and ocmi.Name = {{{SINGLE-QUOTE}}}Diet{{{SINGLE-QUOTE}}}"};
//Unsubmitted Active NPO order determined by local session variable
if (local_session.SessionUnsubNPOOrder = true) then
UnsubNPOOrderExists := true;
endif;
//Unsubmitted Active Diet order determined by local session variable
if (local_session.SessionUnsubDietOrder = true) then
UnsubDietOrderExists := true;
endif;
/***********************BEGIN IV STEROID SEARCH ********************************/
IvAddSteroid := read last { "select o.guid from cv3order o
join CV3OrderCatalogMasterItem ocmi on ocmi.guid = o.OrderCatalogMasterItemGUID
join CV3MedicationExtension me on me.guid = o.guid
left join CV3OrderComponent oc on oc.OrderGUID = o.guid
where clientvisitguid = " || SQL (clientvisitguid) || " and o.clientguid = " || SQL (clientguid) ||"
and o.typecode = {{{SINGLE-QUOTE}}}Medication{{{SINGLE-QUOTE}}}
and ocmi.TherapeuticCategory = {{{SINGLE-QUOTE}}}hormones/hormone modifiers | adrenal cortical steroids{{{SINGLE-QUOTE}}}
and me.OrderRouteCode in ({{{SINGLE-QUOTE}}}IV{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}IV Push{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}IVPB{{{SINGLE-QUOTE}}})"};
IvSteroid := read last { " select o.guid from cv3order o
join CV3MedicationExtension me on me.guid = o.guid
left join CV3OrderComponent oc on oc.OrderGUID = o.guid
join CV3OrderCatalogMasterItem ocmi on ocmi.guid = oc.OrderCatalogMasterItemGUID
where clientvisitguid = " || SQL (clientvisitguid) || " and o.clientguid = " || SQL (clientguid) ||"
and o.typecode = {{{SINGLE-QUOTE}}}Medication{{{SINGLE-QUOTE}}}
and ocmi.TherapeuticCategory = {{{SINGLE-QUOTE}}}hormones/hormone modifiers | adrenal cortical steroids{{{SINGLE-QUOTE}}}
and me.OrderRouteCode in ({{{SINGLE-QUOTE}}}IV{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}IV Push{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}IVPB{{{SINGLE-QUOTE}}})"};
IvSteroidTask := read {" select TaskStatusCode from CV3OrderTaskOccurrence oto
join cv3order o on o.guid = oto.OrderGUID
join CV3OrderCatalogMasterItem ocmi on ocmi.GUID = o.OrderCatalogMasterItemGUID
join CV3MedicationExtension me on me.guid = o.guid
where clientvisitguid = " || SQL (clientvisitguid) || " and oto.clientguid = " || SQL (clientguid) ||"
and o.typecode = {{{SINGLE-QUOTE}}}Medication{{{SINGLE-QUOTE}}}
and oto.TaskStatusCode <> ({{{SINGLE-QUOTE}}}Canceled{{{SINGLE-QUOTE}}})
and ocmi.TherapeuticCategory = {{{SINGLE-QUOTE}}}hormones/hormone modifiers | adrenal cortical steroids{{{SINGLE-QUOTE}}}
and me.OrderRouteCode in ({{{SINGLE-QUOTE}}}IV{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}IV Push{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}IVPB{{{SINGLE-QUOTE}}})"};
IvAddSteroidTask := read {" select TaskStatusCode from CV3OrderTaskOccurrence oto
join cv3order o on o.guid = oto.OrderGUID
join CV3MedicationExtension me on me.guid = o.guid
left join CV3OrderComponent oc on oc.OrderGUID = o.guid
join CV3OrderCatalogMasterItem ocmi on ocmi.guid = oc.OrderCatalogMasterItemGUID
where clientvisitguid = " || SQL (clientvisitguid) || " and oto.clientguid = " || SQL (clientguid) ||"
and o.typecode = {{{SINGLE-QUOTE}}}Medication{{{SINGLE-QUOTE}}}
and oto.TaskStatusCode <> ({{{SINGLE-QUOTE}}}Canceled{{{SINGLE-QUOTE}}})
and ocmi.TherapeuticCategory = {{{SINGLE-QUOTE}}}hormones/hormone modifiers | adrenal cortical steroids{{{SINGLE-QUOTE}}}
and me.OrderRouteCode in ({{{SINGLE-QUOTE}}}IV{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}IV Push{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}IVPB{{{SINGLE-QUOTE}}})"};
if (local_session.SessionUnsubIVSteroidOrder = true) then
UnsubSteroidOrderExists := true;
endif;
if exist IvSteroid then
Patient_on_IV_Steroid := "Yes";
IvSteroid_CB.value := True;
IvSteroid_CB.Control_Read_only := True;
elseif exist IvSteroidTask then
Patient_on_IV_Steroid := "Yes";
IvSteroid_CB.value := True;
IvSteroid_CB.Control_Read_only := True;
elseif exist IvAddSteroid then
Patient_on_IV_Steroid := "Yes";
IvSteroid_CB.value := True;
IvSteroid_CB.Control_Read_only := True;
elseif exist IvAddSteroidTask then
Patient_on_IV_Steroid := "Yes";
IvSteroid_CB.value := True;
IvSteroid_CB.Control_Read_only := True;
elseif
UnsubSteroidOrderExists = True then
Patient_on_IV_Steroid := "Yes";
IvSteroid_CB.value := True;
IvSteroid_CB.Control_Read_only := True;
else
Patient_on_IV_Steroid := "No";
IvSteroid_CB.value := False;
IvSteroid_CB.Control_Read_only := True;
endif;
/**************************GFR LAB VALUE SEARCH ***********************************/
Race := read last
{" Select RaceCode from cv3client where RaceCode like {{{SINGLE-QUOTE}}}%African%{{{SINGLE-QUOTE}}} and Guid = " ||SQL (clientguid)};
If Race is not null then
GFR, GFRName, GFRUom, AbnCode := read last
{"Select top 1 bo.value, bo.itemname, bo.UnitofMeasure, bo.AbnormalityCode "
|| " From cv3order as o with (nolock) "
|| " join cv3basicobservation as bo with (nolock) "
|| " on o.clientguid = bo.clientguid "
|| " and o.chartguid = bo.chartguid "
|| " and o.guid = bo.orderguid "
|| " and bo.status = {{{SINGLE-QUOTE}}}F{{{SINGLE-QUOTE}}} "
|| " and bo.Active = 1 "
|| " And bo.IsHistory = 0 "
|| " join cv3ordercatalogmasteritem as ocmi with (nolock) "
|| " on ocmi.guid = o.ordercatalogmasteritemguid "
|| " and ocmi.active = 1 "
|| " where o.clientguid = " || SQL(clientguid)
|| " and o.performeddtm >= (DATEADD(hour, -240, getdate())) "
|| " and bo.itemname = {{{SINGLE-QUOTE}}}GFR (African American){{{SINGLE-QUOTE}}} "
|| " order by o.performeddtm desc "
};
else
GFR, GFRName, GFRUom, AbnCode := read last
{"Select top 1 bo.value, bo.itemname, bo.UnitofMeasure, bo.AbnormalityCode "
|| " From cv3order as o with (nolock) "
|| " join cv3basicobservation as bo with (nolock) "
|| " on o.clientguid = bo.clientguid "
|| " and o.chartguid = bo.chartguid "
|| " and o.guid = bo.orderguid "
|| " and bo.status = {{{SINGLE-QUOTE}}}F{{{SINGLE-QUOTE}}} "
|| " and bo.Active = 1 "
|| " And bo.IsHistory = 0 "
|| " join cv3ordercatalogmasteritem as ocmi with (nolock) "
|| " on ocmi.guid = o.ordercatalogmasteritemguid "
|| " and ocmi.active = 1 "
|| " where o.clientguid = " || SQL(clientguid)
|| " and o.performeddtm >= (DATEADD(hour, -240, getdate())) "
|| " and bo.itemname = {{{SINGLE-QUOTE}}}GFR (Caucasian/Other){{{SINGLE-QUOTE}}} "
|| " order by o.performeddtm desc "
};
endif;
If ABNCode = "L" and (GFR as number ) < 30 then
Low_GFR := "Yes";
GFR_CB.value := True;
GFR_CB.Control_Read_Only := True;
elseif GFR is Null then
No_GFR := "Yes";
GFR_CB.value := False;
GFR_CB.Control_Read_Only := True;
else
Low_GFR := "No";
GFR_CB.value := False;
GFR_CB.Control_Read_Only := True;
endif;
// patient on insulin pump or patient diet controlled
If Patient_is_Diabetic = "Yes" and Patient_on_Insulin_Pump = "Yes" then
EndoDoc := read last { " Select DisplayName from CV3ClientVisitProvidersJoin "
|| " where ClientVisitGUID = " || SQL(clientvisitguid)
|| " and Discipline = {{{SINGLE-QUOTE}}}Endocrinology{{{SINGLE-QUOTE}}}"
|| " and RoleCode = {{{SINGLE-QUOTE}}}Consulting{{{SINGLE-QUOTE}}}"
|| " and status = {{{SINGLE-QUOTE}}}Active{{{SINGLE-QUOTE}}}"};
If EndoDoc is not null then
ThisMsgB := "Patient on an Insulin Pump." || CRLF
|| "Patient has an existing Endocrinology Consult to " || EndoDoc ||".";
Nur_InstructList.IsSelected := (True, True);
Physician_ConsultList.IsSelected := (False);
else
Nur_InstructList.IsSelected := (True, True);
Physician_ConsultList.IsSelected := (True);
ThisMsgB := "Patient on an Insulin Pump." || CRLF
|| "Place a STAT Endocrinology Consult.";
endif;
OrderInfo.value := ThisMsgB;
InsulinPump_CB.value := True;
Diabetic_CB.value := True;
DietControlled_CB.value:= False;
MultipleOralOrInsulin_CB.value := False;
SingleOral_CB.value := False;
DietControlled_CB.control_read_only := True;
MultipleOralOrInsulin_CB.control_read_only := True;
SingleOral_CB.control_read_only := True;
dialogResult7 := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "\n Documentation states this patient has an insulin pump. \n Is the pump actively providing insulin therapy for this patient?" ,"Insulin Pump Alert","YesNo" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
if((dialogResult7 as string) = "Yes") then
Basal_Lantus_Levemir_CB.value := False;
Nutr_Aspart_CB.value := False;
Corr_Aspart_CB.value := False;
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Nutr_Freq_Bkfst_CB.value := false;
Nutr_Freq_Lunch_CB.value := false;
Nutr_Freq_Dinner_CB.value := false;
Nutr_Freq_TID_CB.value := false;
Nutr_Freq_QHS_CB.value := false;
Basal_Freq_Daily_CB.value := false;
Basal_Freq_BID_CB.value := false;
Basal_NPH_CB.value := false;
Nutr_Regular_CB.value := false;
Corr_Regular_CB.value := false;
BasalInsulinList.IsSelected := (false, false, false, false);
NutrInsulinList.IsSelected := (false, false, false, false, false, false, false, false, false, false);
InsulinLowDoseList.IsSelected := (False,False);
InsulinModDoseList.IsSelected := (False, False);
InsulinHighDoseList.IsSelected := (False, False);
PumpNotFunctioning_CB.value := False;
else
Basal_Lantus_Levemir_CB.value := True;
Nutr_Aspart_CB.value := True;
Corr_Aspart_CB.value := True;
PumpNotFunctioning_CB.value := True;
endif;
ElseIf Patient_on_Insulin_Pump = "No" and Patient_on_Oral_Home_Agent = "No" and Patient_on_Home_Insulin = "No" then
dialogResult := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "\n Unable to retrieve any home insulin or home oral diabetic agents. \n\n Please select {{{SINGLE-QUOTE}}}YES{{{SINGLE-QUOTE}}} to confirm that this patient does not take oral diabetic agents or insulin. ","Alert","YesNo" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
if((dialogResult as string) = "Yes") then
Patient_is_Diet_Controlled := "Yes";
DietControlled_CB.value := True;
MultipleOralOrInsulin_CB.value := False;
MultipleOralOrInsulin_CB.Control_Read_Only := True;
SingleOral_CB.value := False;
SingleOral_CB.Control_Read_Only := True;
InsulinPump_CB.value := False;
InsulinPump_CB.Control_Read_Only := True;
Basal_Lantus_Levemir_CB.value := false;
Nutr_Aspart_CB.value := false;
Corr_Aspart_CB.value := false;
Corr_Low_Dose_Scale := False;
Corr_Mod_Dose_Scale := False;
Corr_High_Dose_Scale := False;
Corr_Ind_Dose_Scale := False;
Nutr_Freq_Bkfst_CB.value := false;
Nutr_Freq_Lunch_CB.value := false;
Nutr_Freq_Dinner_CB.value := false;
Nutr_Freq_TID_CB.value := false;
Nutr_Freq_QHS_CB.value := false;
Basal_Freq_Daily_CB.value := false;
Basal_Freq_BID_CB.value := false;
Basal_NPH_CB.value := false;
Nutr_Regular_CB.value := false;
Corr_Regular_CB.value := false;
BasalInsulinList.IsSelected := (false, false, false, false);
NutrInsulinList.IsSelected := (false, false, false, false, false, false, false, false, false, false);
InsulinLowDoseList.IsSelected := (False,False);
InsulinModDoseList.IsSelected := (False, False);
InsulinHighDoseList.IsSelected := (False, False);
if Diet is not null or UnsubDietOrderExists then
BGMOrders_List.IsSelected := (True, False, False, False, False, False);
BGMFrequency.FrequencySummary := "QID (AC and HS)";
elseif NPO is not null or UnsubNPOOrderExists then
BGMOrders_List.IsSelected := (False, True, False, False, False, False);
BGMFrequency.FrequencySummary := "Q6H";
else
dialogResult3 := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "\n Unable to retrieve any diet orders. \n Is this patient NPO? ","Alert","YesNo" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
if((dialogResult3 as string) = "Yes") then
BGMOrders_List.IsSelected := (False, True, False, False, False, False);
else
BGMOrders_List.IsSelected := (True, False, False, False, False, False);
endif;
endif;
else
If this_communication.CatalogParentOrderSetGUID is not null then
dialogResult := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "\n You will need to re-open the Diabetic Management Protocol Order Set from the Review Screen before submitting orders to make any Parameter Selections." ,"Alert","OK" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
endif;
Patient_is_Diet_Controlled := "No";
DietControlled_CB.value := False;
Override_CB.value := True;
GFR_CB.Control_Read_Only := False;
IvSteroid_CB.Control_Read_only := False;
MultipleOralOrInsulin_CB.control_read_only := False;
SingleOral_CB.control_read_only := False;
InsulinPump_CB.control_read_only := False;
DietControlled_CB.control_read_only := False;
endif;
endif; // patient on insulin pump or patient diet controlled
// patient is diabetic and patient not on insulin pump or patient not diet controlled
if (Patient_is_Diabetic = "Yes" and Patient_on_Insulin_Pump = "No" and (Patient_is_Diet_Controlled = "No" or Patient_is_Diet_Controlled is Null))
or (Patient_is_Diabetic = "Yes" and Patient_on_Insulin_Pump = "Yes" and PumpNotFunctioning_CB.value = True) then
If Patient_on_IV_Steroid = "No" and this_communication.CatalogParentOrderSetGUID is not null and (MultiOralAgent = "Yes" or Patient_on_Home_Insulin = "Yes") then
dialogResult6 := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "\n Will you be placing this patient on IV Steroids?" ,"Alert","YesNo" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
if((dialogResult6 as string) = "Yes") then
Patient_on_IV_Steroid := "Yes";
IvSteroid_CB.value := True;
IvSteroid_CB.Control_Read_only := True;
else
Patient_on_IV_Steroid := "No";
endif;
endif;
// Get patient weight
if exists CurrWeight then
CurrWeight_val := CurrWeight.Value;
wt := CurrWeight_val.weight;
fmtwt := wt formatted with "%.1f";
else
wtgm := read last
{ " Select Text from CV3PhysicalNoteDeclaration "
|| " where ClientGUID = " || SQL(clientguid)
|| " and ClientVisitGUID = " || SQL(clientvisitguid)
|| " and TypeCode = {{{SINGLE-QUOTE}}}weight{{{SINGLE-QUOTE}}} "
|| " order by Entered asc " };
wt := (wtgm as number) / 1000;
fmtwt := wt formatted with "%.1f";
endif;
If wt = 0 or wt is null then
dialogResult := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "\n Please enter a patient weight to continue. ","Alert","OK" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
CurrWeight.Control_Mandatory := True;
endif;
If Patient_on_Oral_Home_Agent = "Yes" and SingleOralAgent = "Yes" and MultiOralAgent = "No" and Patient_on_Home_Insulin = "No" then
TDD_calc := (wt as number) * 0.2;
fmt_TDD := TDD_calc formatted with "%.0f";
TDD_half := (TDD_calc as number) * 0.5;
TDD_halfrnd := int (((TDD_half as number) + 0.5)/1)*1;
fmt_TDD_halfrnd := TDD_halfrnd formatted with "%.0f";
CalcDoseBasal.Value := TDD_halfrnd;
CalcDoseNutr.Value := TDD_halfrnd;
If (BasalInsulinList.IsSelected = (True, False, False, False) or BasalInsulinList.IsSelected = (True, True, False, False) or BasalInsulinList.IsSelected = (False, True, False, False)) then
BasalInsulinList.IsReadOnly := (False, False, True, True); endif;
Nur_InstructList.IsSelected := (True, False);
Physician_ConsultList.IsSelected := (False);
InsulinPump_CB.value:= False;
DietControlled_CB.value:= False;
SingleOral_CB.value := True;
MultipleOralOrInsulin_CB.value := False;
InsulinPump_CB.control_read_only := True;
SingleOral_CB.control_read_only := True;
DietControlled_CB.control_read_only := True;
SingleOral_CB.control_read_only := True;
MultipleOralOrInsulin_CB.control_read_only := True;
If (TDD_calc as number) > 80 then
Corr_Dose_Type.Value := "High";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := True;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose > 80 units - Use High Dose Correctional Sliding Scale";
elseif (TDD_calc as number) >= 40 and (TDD_calc as number) <= 80 then
Corr_Dose_Type.Value := "Moderate";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose 40 - 80 units - Use Moderate Dose Correctional Sliding Scale";
elseif (TDD_calc as number) < 40 then
Corr_Dose_Type.Value := "Low";
Corr_Low_Dose_Scale.Value := True;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose < 40 units - Use Low Dose Correctional Sliding Scale";
endif;
ThisMsg := "Patient on single oral agent at home." || CRLF
|| "Total Daily Dose = 0.2 units/kg || (" || fmtwt || " kg * 0.2 = " || fmt_TDD|| " units)" || CRLF
|| "Basal Insulin = 50% of Total Daily Dose || (" || fmt_TDD ||" units * 0.5 = " || fmt_TDD_halfrnd || " units)" ||CRLF || Slidescale;
OrderInfo.value := ThisMsg;
elseif ((Patient_on_Oral_Home_Agent = "Yes" and SingleOralAgent = "No" and MultiOralAgent = "Yes") or Patient_on_Home_Insulin = "Yes") and Patient_on_IV_Steroid = "Yes" and PumpNotFunctioning_CB.value = False then
TDD_calc := (wt as number) * 0.5;
fmt_TDD := TDD_calc formatted with "%.0f";
TDD_half := (TDD_calc as number) * 0.5;
TDD_halfrnd := int (((TDD_half as number) + 0.5)/1)*1;
fmt_TDD_halfrnd := TDD_halfrnd formatted with "%.0f";
CalcDoseBasal.Value := TDD_halfrnd;
CalcDoseNutr.Value := TDD_halfrnd;
Corr_Dose_Type.Value := "Moderate";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Nur_InstructList.IsSelected := (True, False);
Physician_ConsultList.IsSelected := (False);
InsulinPump_CB.value:= False;
DietControlled_CB.value:= False;
SingleOral_CB.value := False;
MultipleOralOrInsulin_CB.value := True;
InsulinPump_CB.control_read_only := True;
DietControlled_CB.control_read_only := True;
SingleOral_CB.control_read_only := True;
MultipleOralOrInsulin_CB.control_read_only := True;
Slidescale := "Use Moderate Dose Correctional Sliding Scale";
ThisMsg := "Patient on IV Steroids." || CRLF
|| "Total Daily Dose = 0.5 units/kg || (" || fmtwt || " kg * 0.5 = " || fmt_TDD || " units)" || CRLF
|| "Basal Insulin = 50% of Total Daily Dose || (" || fmt_TDD ||" units * 0.5 = " || fmt_TDD_halfrnd || " units)" ||CRLF || Slidescale;
OrderInfo.value := ThisMsg;
elseif PumpNotFunctioning_CB.value = True and Patient_on_IV_Steroid = "Yes" then
TDD_calc := (wt as number) * 0.5;
fmt_TDD := TDD_calc formatted with "%.0f";
TDD_half := (TDD_calc as number) * 0.5;
TDD_halfrnd := int (((TDD_half as number) + 0.5)/1)*1;
fmt_TDD_halfrnd := TDD_halfrnd formatted with "%.0f";
CalcDoseBasal.Value := TDD_halfrnd;
CalcDoseNutr.Value := TDD_halfrnd;
Corr_Dose_Type.Value := "Moderate";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
InsulinPump_CB.control_read_only := True;
DietControlled_CB.control_read_only := True;
SingleOral_CB.control_read_only := True;
MultipleOralOrInsulin_CB.control_read_only := True;
Slidescale := "Use Moderate Dose Correctional Sliding Scale";
ThisMsg := ThisMsgB || CRLF ||"Patient on IV Steroids." || CRLF
|| "Total Daily Dose = 0.5 units/kg || (" || fmtwt || " kg * 0.5 = " || fmt_TDD || " units)" || CRLF
|| "Basal Insulin = 50% of Total Daily Dose || (" || fmt_TDD ||" units * 0.5 = " || fmt_TDD_halfrnd || " units)" ||CRLF || Slidescale;
OrderInfo.value := ThisMsg;
elseif ((Patient_on_Oral_Home_Agent = "Yes" and SingleOralAgent = "No" and MultiOralAgent = "Yes") or Patient_on_Home_Insulin = "Yes" ) and Patient_on_IV_Steroid = "No" and Low_GFR = "Yes" and PumpNotFunctioning_CB.value = False then
TDD_calc := (wt as number) * 0.2;
fmt_TDD := TDD_calc formatted with "%.0f";
TDD_half := (TDD_calc as number) * 0.5;
TDD_halfrnd := int (((TDD_half as number) + 0.5)/1)*1;
fmt_TDD_halfrnd := TDD_halfrnd formatted with "%.0f";
CalcDoseBasal.Value := TDD_halfrnd;
If (BasalInsulinList.IsSelected = (True, False, False, False) or BasalInsulinList.IsSelected = (True, True, False, False) or BasalInsulinList.IsSelected = (False, True, False, False)) then
BasalInsulinList.IsReadOnly := (False, False, True, True); endif;
Nur_InstructList.IsSelected := (True, False);
Physician_ConsultList.IsSelected := (False);
GFR_CB.value := True;
GFR_CB.Control_Read_Only := True;
InsulinPump_CB.value:= False;
DietControlled_CB.value:= False;
SingleOral_CB.value := False;
MultipleOralOrInsulin_CB.value := True;
InsulinPump_CB.control_read_only := True;
DietControlled_CB.control_read_only := True;
SingleOral_CB.control_read_only := True;
MultipleOralOrInsulin_CB.control_read_only := True;
If (TDD_calc as number) > 80 then
Corr_Dose_Type.Value := "High";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := True;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose > 80 units - Use High Dose Correctional Sliding Scale";
elseif (TDD_calc as number) >= 40 and (TDD_calc as number) <= 80 then
Corr_Dose_Type.Value := "Moderate";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose 40 - 80 units - Use Moderate Dose Correctional Sliding Scale";
elseif (TDD_calc as number) < 40 then
Corr_Dose_Type.Value := "Low";
Corr_Low_Dose_Scale.Value := True;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose < 40 units - Use Low Dose Correctional Sliding Scale";
endif;
ThisMsg := GFRName ||" " || GFR || " " || GFRUom || CRLF
|| "Total Daily Dose = 0.2 units/kg || (" || fmtwt || " kg * 0.2 = " || fmt_TDD|| " units)" || CRLF
|| "Basal Insulin = 50% of Total Daily Dose || (" || fmt_TDD ||" units * 0.5 = " || fmt_TDD_halfrnd || " units)" ||CRLF || Slidescale;
OrderInfo.value := ThisMsg;
elseif PumpNotFunctioning_CB.value = True and Patient_on_IV_Steroid = "No" and Low_GFR = "Yes" then
TDD_calc := (wt as number) * 0.2;
fmt_TDD := TDD_calc formatted with "%.0f";
TDD_half := (TDD_calc as number) * 0.5;
TDD_halfrnd := int (((TDD_half as number) + 0.5)/1)*1;
fmt_TDD_halfrnd := TDD_halfrnd formatted with "%.0f";
CalcDoseBasal.Value := TDD_halfrnd;
If (BasalInsulinList.IsSelected = (True, False, False, False) or BasalInsulinList.IsSelected = (True, True, False, False) or BasalInsulinList.IsSelected = (False, True, False, False)) then
BasalInsulinList.IsReadOnly := (False, False, True, True);
endif;
If (TDD_calc as number) > 80 then
Corr_Dose_Type.Value := "High";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := True;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose > 80 units - Use High Dose Correctional Sliding Scale";
elseif (TDD_calc as number) >= 40 and (TDD_calc as number) <= 80 then
Corr_Dose_Type.Value := "Moderate";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose 40 - 80 units - Use Moderate Dose Correctional Sliding Scale";
elseif (TDD_calc as number) < 40 then
Corr_Dose_Type.Value := "Low";
Corr_Low_Dose_Scale.Value := True;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose < 40 units - Use Low Dose Correctional Sliding Scale";
endif;
ThisMsg := GFRName ||" " || GFR || " " || GFRUom || CRLF
|| "Total Daily Dose = 0.2 units/kg || (" || fmtwt || " kg * 0.2 = " || fmt_TDD|| " units)" || CRLF
|| "Basal Insulin = 50% of Total Daily Dose || (" || fmt_TDD ||" units * 0.5 = " || fmt_TDD_halfrnd || " units)" ||CRLF || Slidescale;
OrderInfo.value := ThisMsg;
elseif ((Patient_on_Oral_Home_Agent = "Yes" and SingleOralAgent = "No" and MultiOralAgent = "Yes") or Patient_on_Home_Insulin = "Yes") and Patient_on_IV_Steroid = "No" and Low_GFR = "No" and PumpNotFunctioning_CB.value = False then
TDD_calc := (wt as number) * 0.4;
fmt_TDD := TDD_calc formatted with "%.0f";
TDD_half := (TDD_calc as number) * 0.5;
TDD_halfrnd := int (((TDD_half as number) + 0.5)/1)*1;
fmt_TDD_halfrnd := TDD_halfrnd formatted with "%.0f";
CalcDoseBasal.Value := TDD_halfrnd;
CalcDoseNutr.Value := TDD_halfrnd;
If (BasalInsulinList.IsSelected = (True, False, False, False)
or BasalInsulinList.IsSelected = (True, True, False, False)
or BasalInsulinList.IsSelected = (False, True, False, False)) then
BasalInsulinList.IsReadOnly := (False, False, True, True);
endif;
Nur_InstructList.IsSelected := (True, False);
Physician_ConsultList.IsSelected := (False);
GFR_CB.value := False ;
SingleOral_CB.value := False;
SingleOral_CB.control_read_only := True;
MultipleOralOrInsulin_CB.value := True;
MultipleOralOrInsulin_CB.control_read_only := True;
DietControlled_CB.value := False;
DietControlled_CB.control_read_only := True;
If Patient_on_Home_Insulin = "No" then
InsulinPump_CB.Control_Read_Only := True;
else
InsulinPump_CB.Control_Read_Only := False;
endif;
If (TDD_calc as number) > 80 then
Corr_Dose_Type.Value := "High";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := True;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose > 80 units - Use High Dose Correctional Sliding Scale";
elseif (TDD_calc as number) >= 40 and (TDD_calc as number) <= 80 then
Corr_Dose_Type.Value := "Moderate";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose 40 - 80 units - Use Moderate Dose Correctional Sliding Scale";
elseif (TDD_calc as number) < 40 then
Corr_Dose_Type.Value := "Low";
Corr_Low_Dose_Scale.Value := True;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose < 40 units - Use Low Dose Correctional Sliding Scale";
endif;
ThisMsg := GFRName ||" " || GFR || " " || GFRUom || CRLF
|| "Total Daily Dose = 0.4 units/kg || (" || fmtwt || " kg * 0.4 = " || fmt_TDD || " units)" || CRLF
|| "Basal Insulin = 50% of Total Daily Dose || (" || fmt_TDD ||" units * 0.5 = " || fmt_TDD_halfrnd || " units)" ||CRLF || Slidescale;
OrderInfo.value := ThisMsg;
elseif PumpNotFunctioning_CB.value = True and Patient_on_IV_Steroid = "No" and Low_GFR = "No" then
TDD_calc := (wt as number) * 0.4;
fmt_TDD := TDD_calc formatted with "%.0f";
TDD_half := (TDD_calc as number) * 0.5;
TDD_halfrnd := int (((TDD_half as number) + 0.5)/1)*1;
fmt_TDD_halfrnd := TDD_halfrnd formatted with "%.0f";
CalcDoseBasal.Value := TDD_halfrnd;
CalcDoseNutr.Value := TDD_halfrnd;
If (BasalInsulinList.IsSelected = (True, False, False, False)
or BasalInsulinList.IsSelected = (True, True, False, False)
or BasalInsulinList.IsSelected = (False, True, False, False)) then
BasalInsulinList.IsReadOnly := (False, False, True, True);
endif;
If (TDD_calc as number) > 80 then
Corr_Dose_Type.Value := "High";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := True;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose > 80 units - Use High Dose Correctional Sliding Scale";
elseif (TDD_calc as number) >= 40 and (TDD_calc as number) <= 80 then
Corr_Dose_Type.Value := "Moderate";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose 40 - 80 units - Use Moderate Dose Correctional Sliding Scale";
elseif (TDD_calc as number) < 40 then
Corr_Dose_Type.Value := "Low";
Corr_Low_Dose_Scale.Value := True;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose < 40 units - Use Low Dose Correctional Sliding Scale";
endif;
ThisMsg := GFRName ||" " || GFR || " " || GFRUom || CRLF
|| "Total Daily Dose = 0.4 units/kg || (" || fmtwt || " kg * 0.4 = " || fmt_TDD || " units)" || CRLF
|| "Basal Insulin = 50% of Total Daily Dose || (" || fmt_TDD ||" units * 0.5 = " || fmt_TDD_halfrnd || " units)" ||CRLF || Slidescale;
OrderInfo.value := ThisMsg;
elseif ((Patient_on_Oral_Home_Agent = "Yes" and SingleOralAgent = "No" and MultiOralAgent = "Yes") or Patient_on_Home_Insulin = "Yes" ) and Patient_on_IV_Steroid = "No" and No_GFR = "Yes" and PumpNotFunctioning_CB.value = False then
TDD_calc := (wt as number) * 0.2;
fmt_TDD := TDD_calc formatted with "%.0f";
TDD_half := (TDD_calc as number) * 0.5;
TDD_halfrnd := int (((TDD_half as number) + 0.5)/1)*1;
fmt_TDD_halfrnd := TDD_halfrnd formatted with "%.0f";
CalcDoseBasal.Value := TDD_halfrnd;
CalcDoseNutr.Value := TDD_halfrnd;
Nur_InstructList.IsSelected := (True, False);
Physician_ConsultList.IsSelected := (False);
GFR_CB.value := False ;
SingleOral_CB.value := False;
SingleOral_CB.control_read_only := True;
MultipleOralOrInsulin_CB.value := True;
MultipleOralOrInsulin_CB.control_read_only := True;
DietControlled_CB.value := False;
DietControlled_CB.control_read_only := True;
If Patient_on_Home_Insulin = "No" then
InsulinPump_CB.Control_Read_Only := True;
else
InsulinPump_CB.Control_Read_Only := False;
endif;
If (TDD_calc as number) > 80 then
Corr_Dose_Type.Value := "High";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := True;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose > 80 units - Use High Dose Correctional Sliding Scale";
elseif (TDD_calc as number) >= 40 and (TDD_calc as number) <= 80 then
Corr_Dose_Type.Value := "Moderate";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose 40 - 80 units - Use Moderate Dose Correctional Sliding Scale";
elseif (TDD_calc as number) < 40 then
Corr_Dose_Type.Value := "Low";
Corr_Low_Dose_Scale.Value := True;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose < 40 units - Use Low Dose Correctional Sliding Scale";
endif;
ThisMsg := " No GFR Value Found" || CRLF
|| "Total Daily Dose = 0.2 units/kg || (" || fmtwt || " kg * 0.2 = " || fmt_TDD || " units)" || CRLF
|| "Basal Insulin = 50% of Total Daily Dose || (" || fmt_TDD ||" units * 0.5 = " || fmt_TDD_halfrnd || " units)" ||CRLF || Slidescale;
OrderInfo.value := ThisMsg;
elseif PumpNotFunctioning_CB.value = True and Patient_on_IV_Steroid = "No" and No_GFR = "Yes" then
TDD_calc := (wt as number) * 0.2;
fmt_TDD := TDD_calc formatted with "%.0f";
TDD_half := (TDD_calc as number) * 0.5;
TDD_halfrnd := int (((TDD_half as number) + 0.5)/1)*1;
fmt_TDD_halfrnd := TDD_halfrnd formatted with "%.0f";
CalcDoseBasal.Value := TDD_halfrnd;
CalcDoseNutr.Value := TDD_halfrnd;
If (TDD_calc as number) > 80 then
Corr_Dose_Type.Value := "High";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := True;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose > 80 units - Use High Dose Correctional Sliding Scale";
elseif (TDD_calc as number) >= 40 and (TDD_calc as number) <= 80 then
Corr_Dose_Type.Value := "Moderate";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose 40 - 80 units - Use Moderate Dose Correctional Sliding Scale";
elseif (TDD_calc as number) < 40 then
Corr_Dose_Type.Value := "Low";
Corr_Low_Dose_Scale.Value := True;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose < 40 units - Use Low Dose Correctional Sliding Scale";
endif;
ThisMsg := " No GFR Value Found" || CRLF
|| "Total Daily Dose = 0.2 units/kg || (" || fmtwt || " kg * 0.2 = " || fmt_TDD || " units)" || CRLF
|| "Basal Insulin = 50% of Total Daily Dose || (" || fmt_TDD ||" units * 0.5 = " || fmt_TDD_halfrnd || " units)" ||CRLF || Slidescale;
OrderInfo.value := ThisMsg;
else
ThisMsg := " " ;
OrderInfo.value := ThisMsg;
endif;
endif;
endif;
If callingEvent = "FieldChange" or callingEvent = "FormClose" then
// Present error window if no weight available
If callingEvent = "FormClose" and (MultipleOralOrInsulin_CB.value = True or SingleOral_CB.value = True) and (wt = 0 or wt is null) then
this_communication.DisplayForm := "yes";
this_communication.Message := "\n You must enter a patient weight to continue. ";
this_communication.MessageType := "Error";
endif;
// call Medication order management MLM on close for duplicate therapeutic medication review
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;
if callingevent = "FieldChange" then
// If override parameters box is selected make all parameters available
If CallingField = "PRX_Generic_CB|1" and Override_CB.Value = True then
InsulinPump_CB.Control_Read_Only := False;
MultipleOralOrInsulin_CB.control_read_only := False;
SingleOral_CB.control_read_only := False;
DietControlled_CB.control_read_only := False;
GFR_CB.Control_Read_Only := False;
IvSteroid_CB.Control_Read_only := False;
Nur_InstructList.IsSelected := (True, False);
Physician_ConsultList.IsSelected := (False);
BasalInsulinList.IsSelected := (False);
endif;
If CallingField = "PRX_DM_PatientOnInsulinPump|1" then
If InsulinPump_CB.value = False then
MultipleOralOrInsulin_CB.control_read_only := False;
SingleOral_CB.control_read_only := False;
DietControlled_CB.control_read_only := False;
Nur_InstructList.IsSelected := (True, False);
Physician_ConsultList.IsSelected := (False);
ThisMsg := " " ;
Basal_Lantus_Levemir_CB.value := True;
Nutr_Aspart_CB.value := True;
Corr_Aspart_CB.value := True;
// If patient has insulin pump enter Endo Consult
Elseif InsulinPump_CB.value = True then
EndoDoc := read last { " Select DisplayName from CV3ClientVisitProvidersJoin "
|| " where ClientVisitGUID = " || SQL(clientvisitguid)
|| " and Discipline = {{{SINGLE-QUOTE}}}Endocrinology{{{SINGLE-QUOTE}}}"
|| " and RoleCode = {{{SINGLE-QUOTE}}}Consulting{{{SINGLE-QUOTE}}}"
|| " and status = {{{SINGLE-QUOTE}}}Active{{{SINGLE-QUOTE}}}"};
If EndoDoc is not null then
ThisMsg := "Patient on an Insulin Pump." || CRLF
|| "Patient has an existing Endocrinology Consult to " || EndoDoc ||".";
Nur_InstructList.IsSelected := (True, True);
Physician_ConsultList.IsSelected := (False);
else
ThisMsg := "Patient on an Insulin Pump." || CRLF
|| "Place a STAT Endocrinology Consult.";
Nur_InstructList.IsSelected := (True, True);
Physician_ConsultList.IsSelected := (True);
endif;
BasalInsulinList.IsSelected := (False, False, False, False);
NutrInsulinList.IsSelected := (False, False, False, False, False, False, False, False, False, False);
Corr_Aspart_CB.value := False;
Corr_Regular_CB.value := False;
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
InsulinLowDoseList.IsSelected := (False, False);
InsulinModDoseList.IsSelected := (False, False);
InsulinHighDoseList.IsSelected := (False, False);
OrderInfo.value := ThisMsg;
Diabetic_CB.value := True;
DietControlled_CB.value:= False;
MultipleOralOrInsulin_CB.value := False;
SingleOral_CB.value := False;
DietControlled_CB.control_read_only := True;
MultipleOralOrInsulin_CB.control_read_only := True;
SingleOral_CB.control_read_only := True;
Basal_Lantus_Levemir_CB.value := False;
Nutr_Aspart_CB.value := False;
Corr_Aspart_CB.value := False;
endif;
endif; //If CallingField = "PRX_DM_PatientOnInsulinPump|1"
If (CallingField = "PRX_DM_SingleOralHomeMed|1" and (SingleOral_CB.value = True or SingleOral_CB.value = False))or (CallingField = "CombinedMeasurements|1" and SingleOral_CB.value = true) then
If SingleOral_CB.value = False then
MultipleOralOrInsulin_CB.control_read_only := False;
SingleOral_CB.control_read_only := False;
DietControlled_CB.control_read_only := False;
InsulinPump_CB.control_read_only := False;
Elseif SingleOral_CB.value = True then
TDD_calc := (wt as number) * 0.2;
fmt_TDD := TDD_calc formatted with "%.0f";
TDD_half := (TDD_calc as number) * 0.5;
TDD_halfrnd := int (((TDD_half as number) + 0.5)/1)*1;
fmt_TDD_halfrnd := TDD_halfrnd formatted with "%.0f";
TDD_half_div := (TDD_half as number);
TDD_Half_div_rnd := int (((TDD_half_div as number) + 0.5)/1)*1;
fmt_TDD_halfdiv_rnd := TDD_half_div_rnd formatted with "%.0f";
TDD_half_div2 := (TDD_half as number) / 2;
TDD_Half_div2_rnd := int (((TDD_half_div2 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv2_rnd := TDD_half_div2_rnd formatted with "%.0f";
TDD_half_div3 := (TDD_half as number) / 3;
TDD_Half_div3_rnd := int (((TDD_half_div3 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv3_rnd := TDD_half_div3_rnd formatted with "%.0f";
TDD_half_div4 := (TDD_half as number) / 4;
TDD_Half_div4_rnd := int (((TDD_half_div4 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv4_rnd := TDD_half_div4_rnd formatted with "%.0f";
CalcDoseBasal.Value := TDD_halfrnd;
CalcDoseNutr.Value := TDD_halfrnd;
Nur_InstructList.IsSelected := (True, False);
Physician_ConsultList.IsSelected := (False);
InsulinPump_CB.value:= False;
DietControlled_CB.value:= False;
MultipleOralOrInsulin_CB.value := False;
InsulinPump_CB.control_read_only := True;
DietControlled_CB.control_read_only := True;
MultipleOralOrInsulin_CB.control_read_only := True;
If (TDD_calc as number) > 80 then
Corr_Dose_Type.Value := "High";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := True;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose > 80 units - Use High Dose Correctional Sliding Scale";
elseif (TDD_calc as number) >= 40 and (TDD_calc as number) <= 80 then
Corr_Dose_Type.Value := "Moderate";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose 40 - 80 units - Use Moderate Dose Correctional Sliding Scale";
elseif (TDD_calc as number) < 40 then
Corr_Dose_Type.Value := "Low";
Corr_Low_Dose_Scale.Value := True;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose < 40 units - Use Low Dose Correctional Sliding Scale";
endif;
ThisMsg := "Patient on single oral agent at home." || CRLF
|| "Total Daily Dose = 0.2 units/kg || (" || fmtwt || " kg * 0.2 = " || fmt_TDD|| " units)" || CRLF
|| "Basal Insulin = 50% of Total Daily Dose || (" || fmt_TDD ||" units * 0.5 = " || fmt_TDD_halfrnd || " units)" ||CRLF || Slidescale;
OrderInfo.value := ThisMsg;
endif;
endif; //If (CallingField = "PRX_DM_SingleOralHomeMed|1" and (SingleOral_CB.value = True or SingleOral_CB.value = False))or (CallingField = "CombinedMeasurements|1" and SingleOral_CB.value = true)
If (CallingField = "PRX_DM_MultipleOralOrInsulin|1" or CallingField = "PRX_DM_PtOnIvSteroids|1" or CallingField = "PRX_DM_GFR_LT_30|1")
or (CallingField = "CombinedMeasurements|1" and MultipleOralOrInsulin_CB.value = true) then
If MultipleOralOrInsulin_CB.value = False then
MultipleOralOrInsulin_CB.control_read_only := False;
SingleOral_CB.control_read_only := False;
DietControlled_CB.control_read_only := False;
InsulinPump_CB.control_read_only := False;
ElseIf MultipleOralOrInsulin_CB.value = True then
If IvSteroid_CB.value = True then
TDD_calc := (wt as number) * 0.5;
fmt_TDD := TDD_calc formatted with "%.0f";
TDD_half := (TDD_calc as number) * 0.5;
TDD_halfrnd := int (((TDD_half as number) + 0.5)/1)*1;
fmt_TDD_halfrnd := TDD_halfrnd formatted with "%.0f";
TDD_half_div := (TDD_half as number) ;
TDD_Half_div_rnd := int (((TDD_half_div as number) + 0.5)/1)*1;
fmt_TDD_halfdiv_rnd := TDD_half_div_rnd formatted with "%.0f";
TDD_half_div2 := (TDD_half as number) / 2;
TDD_Half_div2_rnd := int (((TDD_half_div2 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv2_rnd := TDD_half_div2_rnd formatted with "%.0f";
TDD_half_div3 := (TDD_half as number) / 3;
TDD_Half_div3_rnd := int (((TDD_half_div3 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv3_rnd := TDD_half_div3_rnd formatted with "%.0f";
TDD_half_div4 := (TDD_half as number) / 4;
TDD_Half_div4_rnd := int (((TDD_half_div4 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv4_rnd := TDD_half_div4_rnd formatted with "%.0f";
CalcDoseBasal.Value := TDD_halfrnd;
CalcDoseNutr.Value := TDD_halfrnd;
Corr_Dose_Type.Value := "Moderate";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Nur_InstructList.IsSelected := (True, False);
Physician_ConsultList.IsSelected := (False);
InsulinPump_CB.value:= False;
DietControlled_CB.value:= False;
SingleOral_CB.value := False;
InsulinPump_CB.control_read_only := True;
DietControlled_CB.control_read_only := True;
SingleOral_CB.control_read_only := True;
Slidescale := "Use Moderate Dose Correctional Sliding Scale";
ThisMsg := "Patient on IV Steroids." || CRLF
|| "Total Daily Dose = 0.5 units/kg || (" || fmtwt || " kg * 0.5 = " || fmt_TDD || " units)" || CRLF
|| "Basal Insulin = 50% of Total Daily Dose || (" || fmt_TDD ||" units * 0.5 = " || fmt_TDD_halfrnd || " units)" ||CRLF || Slidescale;
OrderInfo.value := ThisMsg;
ElseIf GFR_CB.value = True and IvSteroid_CB.value = False then
TDD_calc := (wt as number) * 0.2;
fmt_TDD := TDD_calc formatted with "%.0f";
TDD_half := (TDD_calc as number) * 0.5;
TDD_halfrnd := int (((TDD_half as number) + 0.5)/1)*1;
fmt_TDD_halfrnd := TDD_halfrnd formatted with "%.0f";
TDD_half_div := (TDD_half as number);
TDD_Half_div_rnd := int (((TDD_half_div as number) + 0.5)/1)*1;
fmt_TDD_halfdiv_rnd := TDD_half_div_rnd formatted with "%.0f";
TDD_half_div2 := (TDD_half as number) / 2;
TDD_Half_div2_rnd := int (((TDD_half_div2 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv2_rnd := TDD_half_div2_rnd formatted with "%.0f";
TDD_half_div3 := (TDD_half as number) / 3;
TDD_Half_div3_rnd := int (((TDD_half_div3 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv3_rnd := TDD_half_div3_rnd formatted with "%.0f";
TDD_half_div4 := (TDD_half as number) / 4;
TDD_Half_div4_rnd := int (((TDD_half_div4 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv4_rnd := TDD_half_div4_rnd formatted with "%.0f";
CalcDoseBasal.Value := TDD_halfrnd;
CalcDoseNutr.Value := TDD_halfrnd;
If (BasalInsulinList.IsSelected = (True, False, False, False) or BasalInsulinList.IsSelected = (True, True, False, False) or BasalInsulinList.IsSelected = (False, True, False, False)) then
BasalInsulinList.IsReadOnly := (False, False, True, True); endif;
Nur_InstructList.IsSelected := (True, False);
Physician_ConsultList.IsSelected := (False);
InsulinPump_CB.value:= False;
DietControlled_CB.value:= False;
SingleOral_CB.value := False;
InsulinPump_CB.control_read_only := True;
DietControlled_CB.control_read_only := True;
SingleOral_CB.control_read_only := True;
If (TDD_calc as number) > 80 then
Corr_Dose_Type.Value := "High";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := True;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose > 80 units - Use High Dose Correctional Sliding Scale";
elseif (TDD_calc as number) >= 40 and (TDD_calc as number) <= 80 then
Corr_Dose_Type.Value := "Moderate";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose 40 - 80 units - Use Moderate Dose Correctional Sliding Scale";
elseif (TDD_calc as number) < 40 then
Corr_Dose_Type.Value := "Low";
Corr_Low_Dose_Scale.Value := True;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose < 40 units - Use Low Dose Correctional Sliding Scale";
endif;
ThisMsg := "This patient has a GFR < 30ml/min" || CRLF
|| "Total Daily Dose = 0.2 units/kg || (" || fmtwt || " kg * 0.2 = " || fmt_TDD|| " units)" || CRLF
|| "Basal Insulin = 50% of Total Daily Dose || (" || fmt_TDD ||" units * 0.5 = " || fmt_TDD_halfrnd || " units)" ||CRLF || Slidescale;
OrderInfo.value := ThisMsg;
ElseIf GFR_CB.value = False and IvSteroid_CB.value = False then
TDD_calc := (wt as number) * 0.4;
fmt_TDD := TDD_calc formatted with "%.0f";
TDD_half := (TDD_calc as number) * 0.5;
TDD_halfrnd := int (((TDD_half as number) + 0.5)/1)*1;
fmt_TDD_halfrnd := TDD_halfrnd formatted with "%.0f";
TDD_half_div := (TDD_half as number) ;
TDD_Half_div_rnd := int (((TDD_half_div as number) + 0.5)/1)*1;
fmt_TDD_halfdiv_rnd := TDD_half_div_rnd formatted with "%.0f";
TDD_half_div2 := (TDD_half as number) / 2;
TDD_Half_div2_rnd := int (((TDD_half_div2 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv2_rnd := TDD_half_div2_rnd formatted with "%.0f";
TDD_half_div3 := (TDD_half as number) / 3;
TDD_Half_div3_rnd := int (((TDD_half_div3 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv3_rnd := TDD_half_div3_rnd formatted with "%.0f";
TDD_half_div4 := (TDD_half as number) / 4;
TDD_Half_div4_rnd := int (((TDD_half_div4 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv4_rnd := TDD_half_div4_rnd formatted with "%.0f";
CalcDoseBasal.Value := TDD_halfrnd;
CalcDoseNutr.Value := TDD_halfrnd;
If (BasalInsulinList.IsSelected = (True, False, False, False) or BasalInsulinList.IsSelected = (True, True, False, False) or BasalInsulinList.IsSelected = (False, True, False, False)) then
BasalInsulinList.IsReadOnly := (False, False, True, True);
endif;
Nur_InstructList.IsSelected := (True, False);
Physician_ConsultList.IsSelected := (False);
SingleOral_CB.value := False;
SingleOral_CB.control_read_only := True;
DietControlled_CB.value := False;
DietControlled_CB.control_read_only := True;
If (TDD_calc as number) > 80 then
Corr_Dose_Type.Value := "High";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := True;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose > 80 units - Use High Dose Correctional Sliding Scale";
elseif (TDD_calc as number) >= 40 and (TDD_calc as number) <= 80 then
Corr_Dose_Type.Value := "Moderate";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose 40 - 80 units - Use Moderate Dose Correctional Sliding Scale";
elseif (TDD_calc as number) < 40 then
Corr_Dose_Type.Value := "Low";
Corr_Low_Dose_Scale.Value := True;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Slidescale := "Total Daily Dose < 40 units - Use Low Dose Correctional Sliding Scale";
endif;
If GFRName is not null then
ThisMsg := GFRName ||" " || GFR || " " || GFRUom || CRLF
|| "Total Daily Dose = 0.4 units/kg || (" || fmtwt || " kg * 0.4 = " || fmt_TDD || " units)" || CRLF
|| "Basal Insulin = 50% of Total Daily Dose || (" || fmt_TDD ||" units * 0.5 = " || fmt_TDD_halfrnd || " units)" ||CRLF || Slidescale;
Else
ThisMsg := " " || CRLF
|| "Total Daily Dose = 0.4 units/kg || (" || fmtwt || " kg * 0.4 = " || fmt_TDD || " units)" || CRLF
|| "Basal Insulin = 50% of Total Daily Dose || (" || fmt_TDD ||" units * 0.5 = " || fmt_TDD_halfrnd || " units)" ||CRLF || Slidescale;
Endif;
OrderInfo.value := ThisMsg;
endif;
endif;
endif; //If (CallingField = "PRX_DM_MultipleOralOrInsulin|1" or CallingField = "PRX_DM_PtOnIvSteroids|1" or CallingField = "PRX_DM_GFR_LT_30|1")
//or (CallingField = "CombinedMeasurements|1" and MultipleOralOrInsulin_CB.value = true)
If CallingField = "PRX_DM_PatientDietControlled|1" then
If DietControlled_CB.value = False then
MultipleOralOrInsulin_CB.control_read_only := False;
SingleOral_CB.control_read_only := False;
DietControlled_CB.control_read_only := False;
InsulinPump_CB.control_read_only := False;
ElseIf DietControlled_CB.value = True then
BasalInsulinList.IsSelected := (False);
Nur_InstructList.IsSelected := (True, False);
Physician_ConsultList.IsSelected := (False);
Basal_Lantus_Levemir_CB.value := False;
Basal_NPH_CB.value := False;
Nutr_Aspart_CB.value := False;
Nutr_Regular_CB.value := False;
Corr_Aspart_CB.value := False;
Corr_Regular_CB.value := False;
Nutr_Freq_Bkfst_CB.value := false;
Nutr_Freq_Lunch_CB.value := false;
Nutr_Freq_Dinner_CB.value := false;
Nutr_Freq_TID_CB.value := false;
Nutr_Freq_QHS_CB.value := false;
Basal_Freq_Daily_CB.value := false;
Basal_Freq_BID_CB.value := false;
NutrInsulinList.IsSelected := (false, false, false, false, false, false, false, false, false, false);
InsulinLowDoseList.IsSelected := (False,False);
InsulinModDoseList.IsSelected := (False, False);
InsulinHighDoseList.IsSelected := (False, False);
Corr_Dose_Type.Value := "";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
MultipleOralOrInsulin_CB.value := False;
MultipleOralOrInsulin_CB.Control_Read_Only := True;
SingleOral_CB.value := False;
SingleOral_CB.Control_Read_Only := True;
InsulinPump_CB.value := False;
InsulinPump_CB.Control_Read_Only := True;
ThisMsg := " " || CRLF;
OrderInfo.value := ThisMsg;
if Diet is not null or UnsubDietOrderExists then
BGMOrders_List.IsSelected := (True, False, False, False, False, False);
BGMFrequency.FrequencySummary := "QID (AC and HS)";
elseif NPO is not null or UnsubNPOOrderExists then
BGMOrders_List.IsSelected := (False, True, False, False, False, False);
BGMFrequency.FrequencySummary := "Q6H";
else
dialogResult3 := call {{{SINGLE-QUOTE}}}MessageBox{{{SINGLE-QUOTE}}}.Show with "\n Unable to retrieve any diet orders. \n Is this patient NPO? ","Alert","YesNo" as {{{SINGLE-QUOTE}}}MessageBoxButtons{{{SINGLE-QUOTE}}};
if((dialogResult3 as string) = "Yes") then
BGMOrders_List.IsSelected := (False, True, False, False, False, False);
BGMFrequency.FrequencySummary := "Q6H";
else
BGMOrders_List.IsSelected := (True, False, False, False, False, False);
BGMFrequency.FrequencySummary := "QID (AC and HS)";
endif;
endif;
endif;
endif;
If CallingField = "PRX_Corr_Insulin_Scale|1" then
If Corr_Low_Dose_Scale.Value = False then
Corr_Dose_Type.Value := "";
InsulinLowDoseList.IsSelected := (False,False);
Elseif Corr_Low_Dose_Scale.Value = True then
Corr_Dose_Type.Value := "Low";
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Endif;
Endif;
If CallingField = "PRX_Corr_Insulin_Scale|2" then
If Corr_Mod_Dose_Scale.Value = False then
Corr_Dose_Type.Value := "";
InsulinModDoseList.IsSelected := (False,False);
Elseif Corr_Mod_Dose_Scale.Value = True then
Corr_Dose_Type.Value := "Moderate";
Corr_Low_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Endif;
Endif;
If CallingField = "PRX_Corr_Insulin_Scale|3" then
If Corr_High_Dose_Scale.Value = False then
Corr_Dose_Type.Value := "";
InsulinHighDoseList.IsSelected := (False,False);
Elseif Corr_High_Dose_Scale.Value = True then
Corr_Dose_Type.Value := "High";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Endif;
Endif;
If CallingField = "PRX_Corr_Insulin_Scale|4" then
If Corr_Ind_Dose_Scale.Value = False then
Corr_Dose_Type.Value := "";
InsulinTypeInDoseList.IsSelected := (False,False);
Elseif Corr_Ind_Dose_Scale.Value = True then
Corr_Dose_Type.Value := "Individualized";
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Endif;
Endif;
endif;
// find out how many times nutritional insulin will be administered per day
If Nutr_Freq_Bkfst_CB.value = true then
NutrSel1 := 1;
else
NutrSel1 := 0;
endif;
If Nutr_Freq_Lunch_CB.value = true then
NutrSel2 := 1;
else
NutrSel2 := 0;
endif;
If Nutr_Freq_Dinner_CB.value = true then
NutrSel3 := 1;
else
NutrSel3 := 0;
endif;
If Nutr_Freq_TID_CB.value = true then
NutrSel4 := 3;
Nutr_Freq_Bkfst_CB.value := false; NutrSel1 := 0;
Nutr_Freq_Lunch_CB.value := false; NutrSel2 := 0;
Nutr_Freq_Dinner_CB.value := false; NutrSel3 := 0;
else
NutrSel4 := 0;
endif;
If Nutr_Freq_QHS_CB.value = true then
NutrSel5 := 1;
else
NutrSel5 := 0;
endif;
Nutr_Frequency := (NutrSel1 as number) + (NutrSel2 as number) + (NutrSel3 as number) + (NutrSel4 as number) + (NutrSel5 as number);
// calculate nutritional dose based upon adminsitrations per day
If Nutr_Frequency = 1 then
TDD_half_div := (CalcDoseNutr.Value as number);
TDD_Half_div_rnd := int (((TDD_half_div as number) + 0.5)/1)*1;
fmt_TDD_halfdiv_rnd := TDD_half_div_rnd formatted with "%.0f";
NutrDoseValue.Value := fmt_TDD_halfdiv_rnd;
elseif (Nutr_Frequency as number) = 2 then
TDD_half_div2 := (CalcDoseNutr.Value as number) / 2;
TDD_Half_div2_rnd := int (((TDD_half_div2 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv2_rnd := TDD_half_div2_rnd formatted with "%.0f";
NutrDoseValue.Value := fmt_TDD_halfdiv2_rnd;
elseif Nutr_Frequency = 3 then
TDD_half_div3 := (CalcDoseNutr.Value as number) / 3;
TDD_Half_div3_rnd := int (((TDD_half_div3 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv3_rnd := TDD_half_div3_rnd formatted with "%.0f";
NutrDoseValue.Value := fmt_TDD_halfdiv3_rnd;
elseif Nutr_Frequency = 4 then
TDD_half_div4 := (CalcDoseNutr.Value as number) / 4;
TDD_Half_div4_rnd := int (((TDD_half_div4 as number) + 0.5)/1)*1;
fmt_TDD_halfdiv4_rnd := TDD_half_div4_rnd formatted with "%.0f";
NutrDoseValue.Value := fmt_TDD_halfdiv4_rnd;
else
NutrDoseValue.Value := null;
endif;
// select correct basal insulin from selected insulin checkbox and selected frequency checkbox
If CallingField = "PRX_Basal_Lantus-Levemir|1" or Basal_Lantus_Levemir_CB.value = True then
If Basal_Lantus_Levemir_CB.value = True then
Basal_NPH_CB.value := False;
If Basal_Freq_Daily_CB.value = true and CalcDoseBasal.value is not null then
BasalDoseValue.Value := CalcDoseBasal.Value as number;
BasalInsulinList.IsSelected := (true, false, false, false);
Elseif Basal_Freq_BID_CB.value = true and CalcDoseBasal.value is not null then
TDD_half_div := (CalcDoseBasal.value as number) / 2;
TDD_Half_div_rnd := int (((TDD_half_div as number) + 0.5)/1)*1;
fmt_TDD_halfdiv_rnd := TDD_half_div_rnd formatted with "%.0f";
BasalDoseValue.Value := fmt_TDD_halfdiv_rnd;
BasalInsulinList.IsSelected := (false, true, false, false);
endif;
else
If Basal_NPH_CB.value = False then
BasalInsulinList.IsSelected := (false, false, false, false);
endif;
endif;
endif;
If CallingField = "PRX_Basal_NPH-Isophane|1" or Basal_NPH_CB.value = True then
If Basal_NPH_CB.value = True then
Basal_Lantus_Levemir_CB.value := False;
If Basal_Freq_Daily_CB.value = true and CalcDoseBasal.value is not null then
BasalDoseValue.Value := CalcDoseBasal.Value as number;
BasalInsulinList.IsSelected := (false, false, true, false);
Elseif Basal_Freq_BID_CB.value = true and CalcDoseBasal.value is not null then
TDD_half_div := (CalcDoseBasal.value as number) / 2;
TDD_Half_div_rnd := int (((TDD_half_div as number) + 0.5)/1)*1;
fmt_TDD_halfdiv_rnd := TDD_half_div_rnd formatted with "%.0f";
BasalDoseValue.Value := fmt_TDD_halfdiv_rnd ;
BasalInsulinList.IsSelected := (false, false, false, true);
endif;
else
If Basal_Lantus_Levemir_CB.value = False then
BasalInsulinList.IsSelected := (false, false, false, false);
endif;
endif;
endif;
endif;
If CallingField = "PRX_Basal_Frequency|1" then
If Basal_Freq_Daily_CB.value = True then
Basal_Freq_BID_CB.value := False;
If Basal_Freq_Daily_CB.value = true and CalcDoseBasal.value is not null then
BasalDoseValue.Value := CalcDoseBasal.Value as number;
If Basal_Lantus_Levemir_CB.value = True then
BasalInsulinList.IsSelected := (true, false, false, false);
Elseif Basal_NPH_CB.value = True then
BasalInsulinList.IsSelected := (false, false, true, false);
endif;
endif;
else
If Basal_Freq_BID_CB.value = false then
BasalInsulinList.IsSelected := (false, false, false, false);
endif;
endif;
endif;
If CallingField = "PRX_Basal_Frequency|2" then
If Basal_Freq_BID_CB.value = True then
Basal_Freq_Daily_CB.value := False;
If Basal_Freq_BID_CB.value = true and CalcDoseBasal.value is not null then
TDD_half_div := (CalcDoseBasal.value as number) / 2;
TDD_Half_div_rnd := int (((TDD_half_div as number) + 0.5)/1)*1;
fmt_TDD_halfdiv_rnd := TDD_half_div_rnd formatted with "%.0f";
BasalDoseValue.Value := fmt_TDD_halfdiv_rnd;
If Basal_Lantus_Levemir_CB.value = True then
BasalInsulinList.IsSelected := (false, true, false, false);
Elseif Basal_NPH_CB.value = True then
BasalInsulinList.IsSelected := (false, false, false, true);
endif;
endif;
else
If Basal_Freq_Daily_CB.value = false then
BasalInsulinList.IsSelected := (false, false, false, false);
endif;
endif;
endif;
index_list := 1 seqto (count NutrInsulinList) ;
If CallingField = "PRX_Insulin_Aspart|1" then
If Nutr_Aspart_CB.value = True then
index_list := 1 seqto (count NutrInsulinList) ;
gridvalue := ();
Nutr_Regular_CB.value := False;
Nutr_Regular_CB.control_read_only := True;
If (Nutr_Freq_Bkfst_CB.value = true or Nutr_Freq_TID_CB.value = true) and CalcDoseNutr.value is not null then
for a in index_list do
If a = 1 then
gridvalue := gridvalue,"true";
else gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
enddo;
NutrInsulinList.IsSelected:= gridvalue;
gridvalue := ();
endif;
If (Nutr_Freq_Lunch_CB.value = true or Nutr_Freq_TID_CB.value = true) and CalcDoseNutr.value is not null then
for a in index_list do
If a = 2 then
gridvalue := gridvalue, "true";
else gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
enddo;
NutrInsulinList.IsSelected:= gridvalue;
gridvalue := ();
endif;
If (Nutr_Freq_Dinner_CB.value = true or Nutr_Freq_TID_CB.value = true) and CalcDoseNutr.value is not null then
for a in index_list do
If a = 3 then
gridvalue := gridvalue, "true";
else gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
enddo;
NutrInsulinList.IsSelected:= gridvalue;
gridvalue := ();
endif;
If Nutr_Freq_QHS_CB.value = true and CalcDoseNutr.value is not null then
for a in index_list do
If a = 4 then
gridvalue := gridvalue, "true";
else gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
enddo;
NutrInsulinList.IsSelected:= gridvalue;
gridvalue := ();
endif;
If CalcDoseNutr.value is not null then
for a in index_list do
If a in (6, 7, 8, 9, 10) then
gridvalue := gridvalue, "false";
else gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
enddo;
NutrInsulinList.IsSelected:= gridvalue;
gridvalue := ();
endif;
else
Nutr_Regular_CB.control_read_only := False;
endif;
endif;
If CallingField = "PRX_Insulin_Regular|1" then
If Nutr_Regular_CB.value = True then
gridvalue := ();
Nutr_Aspart_CB.value := False;
Nutr_Aspart_CB.control_read_only := True;
If (Nutr_Freq_Bkfst_CB.value = true or Nutr_Freq_TID_CB.value = true) and CalcDoseNutr.value is not null then
for a in index_list do
If a = 6 then
gridvalue := gridvalue,"true";
else gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
enddo;
NutrInsulinList.IsSelected:= gridvalue;
gridvalue := ();
endif;
If (Nutr_Freq_Lunch_CB.value = true or Nutr_Freq_TID_CB.value = true) and CalcDoseNutr.value is not null then
for a in index_list do
If a = 7 then
gridvalue := gridvalue, "true";
else gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
enddo;
NutrInsulinList.IsSelected:= gridvalue;
gridvalue := ();
endif;
If (Nutr_Freq_Dinner_CB.value = true or Nutr_Freq_TID_CB.value = true) and CalcDoseNutr.value is not null then
for a in index_list do
If a = 8 then
gridvalue := gridvalue, "true";
else gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
enddo;
NutrInsulinList.IsSelected:= gridvalue;
gridvalue := ();
endif;
If Nutr_Freq_QHS_CB.value = true and CalcDoseNutr.value is not null then
for a in index_list do
If a = 9 then
gridvalue := gridvalue, "true";
else gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
enddo;
NutrInsulinList.IsSelected:= gridvalue;
gridvalue := ();
endif;
If CalcDoseNutr.value is not null then
for a in index_list do
If a in (1, 2, 3, 4, 5) then
gridvalue := gridvalue, "false";
else gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
enddo;
NutrInsulinList.IsSelected:= gridvalue;
gridvalue := ();
endif;
else
Nutr_Aspart_CB.control_read_only := False;
endif;
endif;
If (CallingField = "PRX_Nutritional_Frequency|1" or
CallingField = "PRX_Nutritional_Frequency|2" or
CallingField = "PRX_Nutritional_Frequency|3" or
CallingField = "PRX_Nutritional_Frequency|4" or
CallingField = "PRX_Nutritional_Frequency|5") then
If Nutr_Aspart_CB.value = True then
index_list := 1 seqto (count NutrInsulinList) ;
gridvalue := ();
Nutr_Regular_CB.value := False;
Nutr_Regular_CB.control_read_only := True;
for a in index_list do
If a = 1 and (Nutr_Freq_Bkfst_CB.value = true or Nutr_Freq_TID_CB.value = true) and Nutr_Aspart_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"true";
elseif a = 1 and (Nutr_Freq_Bkfst_CB.value = false and Nutr_Freq_TID_CB.value = false)and Nutr_Aspart_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"false";
elseif a = 1 then
gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
If a = 2 and (Nutr_Freq_Lunch_CB.value = true or Nutr_Freq_TID_CB.value = true) and Nutr_Aspart_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"true";
elseif a = 2 and (Nutr_Freq_Lunch_CB.value = false and Nutr_Freq_TID_CB.value = false) and Nutr_Aspart_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"false";
elseif a= 2 then
gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
If a = 3 and (Nutr_Freq_Dinner_CB.value = true or Nutr_Freq_TID_CB.value = true) and Nutr_Aspart_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"true";
elseif a = 3 and (Nutr_Freq_Dinner_CB.value = false and Nutr_Freq_TID_CB.value = false) and Nutr_Aspart_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"false";
elseif a= 3 then
gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
If a = 4 and (Nutr_Freq_QHS_CB.value = true ) and Nutr_Aspart_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"true";
elseif a = 4 and (Nutr_Freq_QHS_CB.value = false ) and Nutr_Aspart_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"false";
elseif a = 4 then
gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
If a = 5 and Nutr_Aspart_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
If a in (6, 7, 8, 9, 10) then
gridvalue := gridvalue,"false";
endif;
enddo;
NutrInsulinList.IsSelected:= gridvalue;
gridvalue := ();
ElseIf Nutr_Regular_CB.value = True then
index_list := 1 seqto (count NutrInsulinList) ;
gridvalue := ();
Nutr_Aspart_CB.value := False;
Nutr_Aspart_CB.control_read_only := True;
for a in index_list do
If a in (1, 2, 3, 4, 5) then
gridvalue := gridvalue,"false";
endif;
If a = 6 and (Nutr_Freq_Bkfst_CB.value = true or Nutr_Freq_TID_CB.value = true) and Nutr_Regular_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"true";
elseif a = 6 and (Nutr_Freq_Bkfst_CB.value = false and Nutr_Freq_TID_CB.value = false) and Nutr_Regular_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"false";
elseif a= 6 then
gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
If a = 7 and (Nutr_Freq_Lunch_CB.value = true or Nutr_Freq_TID_CB.value = true) and Nutr_Regular_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"true";
elseif a = 7 and (Nutr_Freq_Lunch_CB.value = false and Nutr_Freq_TID_CB.value = false) and Nutr_Regular_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"false";
elseif a= 7 then
gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
If a = 8 and (Nutr_Freq_Dinner_CB.value = true or Nutr_Freq_TID_CB.value = true) and Nutr_Regular_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"true";
elseif a = 8 and (Nutr_Freq_Dinner_CB.value = false and Nutr_Freq_TID_CB.value = false) and Nutr_Regular_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"false";
elseif a= 8 then
gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
If a = 9 and (Nutr_Freq_QHS_CB.value = true ) and Nutr_Regular_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"true";
elseif a = 9 and (Nutr_Freq_QHS_CB.value = false ) and Nutr_Regular_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue,"false";
elseif a= 9 then
gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
If a = 10 and Nutr_Regular_CB.value = True and CalcDoseNutr.value is not null then
gridvalue := gridvalue, NutrInsulinList.IsSelected [a];
endif;
enddo;
NutrInsulinList.IsSelected:= gridvalue;
gridvalue := ();
endif;
endif;
// select correctional sliding scale if modified or selected from checkboxes
If CallingField = "MultiOrderInline|1" then
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "";
InsulinModDoseList.IsSelected := (False,False);
InsulinHighDoseList.IsSelected := (False,False);
InsulinTypeInDoseList.IsSelected := (False,False);
If InsulinLowDoseList.IsSelected [1] = true and InsulinLowDoseList.IsSelected [2] = false then
Corr_Aspart_CB.value := True;
Corr_Aspart_CB.Control_Read_Only:= False;
Corr_Regular_CB.value := False;
Corr_Regular_CB.Control_Read_Only := True;
Corr_Low_Dose_Scale.Value := True;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "Low";
Elseif InsulinLowDoseList.IsSelected [1] = false and InsulinLowDoseList.IsSelected [2] = true then
Corr_Aspart_CB.value := False;
Corr_Aspart_CB.Control_Read_Only := True;
Corr_Regular_CB.value := True;
Corr_Regular_CB.Control_Read_Only := False;
Corr_Low_Dose_Scale.Value := True;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "Low";
Elseif InsulinLowDoseList.IsSelected [1] = false and InsulinLowDoseList.IsSelected [2] = false then
Corr_Aspart_CB.value := False;
Corr_Aspart_CB.Control_Read_Only := False;
Corr_Regular_CB.value := False;
Corr_Regular_CB.Control_Read_Only := False;
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "";
Elseif InsulinLowDoseList.IsSelected [1] = true and InsulinLowDoseList.IsSelected [2] = true then
If Corr_Aspart_CB.value = True then
Corr_Aspart_CB.value := False;
Corr_Aspart_CB.Control_Read_Only := True;
Corr_Regular_CB.value := true;
Corr_Regular_CB.Control_Read_Only := False;
InsulinLowDoseList.IsSelected := (False, True);
elseif Corr_Regular_CB.value = true then
Corr_Regular_CB.value := false;
Corr_Regular_CB.Control_Read_Only := True;
Corr_Aspart_CB.value := True;
Corr_Aspart_CB.Control_Read_Only := false;
InsulinLowDoseList.IsSelected := (True, False);
endif;
Corr_Low_Dose_Scale.Value := True;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "Low";
Endif;
Endif;
If CallingField = "MultiOrderInline|2" then
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "";
InsulinLowDoseList.IsSelected := (False,False);
InsulinHighDoseList.IsSelected := (False,False);
InsulinTypeInDoseList.IsSelected := (False,False);
If InsulinModDoseList.IsSelected [1] = true and InsulinModDoseList.IsSelected [2] = false then
Corr_Aspart_CB.value := True;
Corr_Aspart_CB.Control_Read_Only:= False;
Corr_Regular_CB.value := False;
Corr_Regular_CB.Control_Read_Only := True;
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "Moderate";
Elseif InsulinModDoseList.IsSelected [1] = false and InsulinModDoseList.IsSelected [2] = true then
Corr_Aspart_CB.value := False;
Corr_Aspart_CB.Control_Read_Only:= True;
Corr_Regular_CB.value := True;
Corr_Regular_CB.Control_Read_Only := False;
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "Moderate";
Elseif InsulinModDoseList.IsSelected [1] = false and InsulinModDoseList.IsSelected [2] = false then
Corr_Aspart_CB.value := False;
Corr_Aspart_CB.Control_Read_Only:= False;
Corr_Regular_CB.value := False;
Corr_Regular_CB.Control_Read_Only := False;
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "";
Elseif InsulinModDoseList.IsSelected [1] = true and InsulinModDoseList.IsSelected [2] = true then
If Corr_Aspart_CB.value = True then
Corr_Aspart_CB.value := False;
Corr_Aspart_CB.Control_Read_Only := True;
Corr_Regular_CB.value := True;
Corr_Regular_CB.Control_Read_Only := False;
InsulinModDoseList.IsSelected := (False, True);
elseif Corr_Regular_CB.value = true then
Corr_Regular_CB.value := false;
Corr_Regular_CB.Control_Read_Only := true;
Corr_Aspart_CB.value := true;
Corr_Aspart_CB.Control_Read_Only := false;
InsulinModDoseList.IsSelected := (True, False);
endif;
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := True;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "Moderate";
Endif;
Endif;
If CallingField = "MultiOrderInline|3" then
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "";
InsulinLowDoseList.IsSelected := (False,False);
InsulinModDoseList.IsSelected := (False,False);
InsulinTypeInDoseList.IsSelected := (False,False);
If InsulinHighDoseList.IsSelected [1] = true and InsulinHighDoseList.IsSelected [2] = false then
Corr_Aspart_CB.value := True;
Corr_Aspart_CB.Control_Read_Only:= False;
Corr_Regular_CB.value := False;
Corr_Regular_CB.Control_Read_Only := True;
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := True;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "High";
Elseif InsulinHighDoseList.IsSelected [1] = false and InsulinHighDoseList.IsSelected [2] = true then
Corr_Aspart_CB.value := False;
Corr_Aspart_CB.Control_Read_Only := True;
Corr_Regular_CB.value := True;
Corr_Regular_CB.Control_Read_Only := False;
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := True;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "High";
Elseif InsulinHighDoseList.IsSelected [1] = false and InsulinHighDoseList.IsSelected [2] = false then
Corr_Aspart_CB.value := False;
Corr_Regular_CB.value := False;
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "";
Elseif InsulinHighDoseList.IsSelected [1] = true and InsulinHighDoseList.IsSelected [2] = true then
If Corr_Aspart_CB.value = True then
Corr_Aspart_CB.value := False;
Corr_Aspart_CB.Control_Read_Only := False;
Corr_Regular_CB.value := True;
Corr_Regular_CB.Control_Read_Only := False;
InsulinHighDoseList.IsSelected := (False, True);
elseif Corr_Regular_CB.value = true then
Corr_Regular_CB.value := false;
Corr_Regular_CB.Control_Read_Only := True;
Corr_Aspart_CB.value := true;
Corr_Aspart_CB.Control_Read_Only := false;
InsulinHighDoseList.IsSelected := (True, False);
endif;
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := True;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "High";
Endif;
Endif;
If CallingField = "MultiOrderInline|4" then
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "";
InsulinLowDoseList.IsSelected := (False,False);
InsulinModDoseList.IsSelected := (False,False);
InsulinHighDoseList.IsSelected := (False,False);
If InsulinTypeInDoseList.IsSelected [1] = true and InsulinTypeInDoseList.IsSelected [2] = false then
Corr_Aspart_CB.value := True;
Corr_Aspart_CB.Control_Read_Only:= False;
Corr_Regular_CB.value := False;
Corr_Regular_CB.Control_Read_Only := True;
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := True;
Corr_Dose_Type.Value := "Individualized";
Elseif InsulinTypeInDoseList.IsSelected [1] = false and InsulinTypeInDoseList.IsSelected [2] = true then
Corr_Aspart_CB.value := False;
Corr_Aspart_CB.Control_Read_Only:= True;
Corr_Regular_CB.value := True;
Corr_Regular_CB.Control_Read_Only := False;
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := True;
Corr_Dose_Type.Value := "Individualized";
Elseif InsulinTypeInDoseList.IsSelected [1] = false and InsulinTypeInDoseList.IsSelected [2] = false then
Corr_Aspart_CB.value := False;
Corr_Aspart_CB.Control_Read_Only:= False;
Corr_Regular_CB.value := False;
Corr_Regular_CB.Control_Read_Only := False;
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := False;
Corr_Dose_Type.Value := "";
Elseif InsulinTypeInDoseList.IsSelected [1] = true and InsulinTypeInDoseList.IsSelected [2] = true then
If Corr_Aspart_CB.value = True then
Corr_Aspart_CB.value := False;
Corr_Aspart_CB.Control_Read_Only:= True;
Corr_Regular_CB.value := true;
Corr_Regular_CB.Control_Read_Only := false;
InsulinTypeInDoseList.IsSelected := (False, True);
elseif Corr_Regular_CB.value = true then
Corr_Regular_CB.value := false;
Corr_Regular_CB.Control_Read_Only := true;
Corr_Aspart_CB.value := true;
Corr_Aspart_CB.Control_Read_Only := false;
InsulinTypeInDoseList.IsSelected := (True, False);
endif;
Corr_Low_Dose_Scale.Value := False;
Corr_Mod_Dose_Scale.Value := False;
Corr_High_Dose_Scale.Value := False;
Corr_Ind_Dose_Scale.Value := True;
Corr_Dose_Type.Value := "Individualized";
Endif;
Endif;
If CallingField = "PRX_Insulin_Aspart|2" or Corr_Aspart_CB.value = True then
If Corr_Aspart_CB.value = True then
Corr_Regular_CB.value := False;
Corr_Regular_CB.control_read_only := True;
If Corr_Dose_Type.Value = "Low" then
InsulinLowDoseList.IsSelected := (True,False);
InsulinModDoseList.IsSelected := (False,False);
InsulinHighDoseList.IsSelected := (False,False);
InsulinTypeInDoseList.IsSelected := (False,False);
endif;
If Corr_Dose_Type.Value = "Moderate" then
InsulinLowDoseList.IsSelected := (False,False);
InsulinModDoseList.IsSelected := (True,False);
InsulinHighDoseList.IsSelected := (False,False);
InsulinTypeInDoseList.IsSelected := (False,False);
endif;
If Corr_Dose_Type.Value = "High" then
InsulinLowDoseList.IsSelected := (False,False);
InsulinModDoseList.IsSelected := (False,False);
InsulinHighDoseList.IsSelected := (True,False);
InsulinTypeInDoseList.IsSelected := (False,False);
endif;
If Corr_Dose_Type.Value = "Individualized" then
InsulinLowDoseList.IsSelected := (False,False);
InsulinModDoseList.IsSelected := (False,False);
InsulinHighDoseList.IsSelected := (False,False);
InsulinTypeInDoseList.IsSelected := (True,False);
endif;
If Corr_Dose_Type.Value = "" then
InsulinLowDoseList.IsSelected := (False,False);
InsulinModDoseList.IsSelected := (False,False);
InsulinHighDoseList.IsSelected := (False,False);
InsulinTypeInDoseList.IsSelected := (False,False);
endif;
else
Corr_Regular_CB.control_read_only := False;
endif;
endif;
If CallingField = "PRX_Insulin_Regular|2" or Corr_Regular_CB.value = True then
If Corr_Regular_CB.value = True then
Corr_Aspart_CB.value := False;
Corr_Aspart_CB.control_read_only := True;
If Corr_Dose_Type.Value = "Low" then
InsulinLowDoseList.IsSelected := (False,True);
InsulinModDoseList.IsSelected := (False,False);
InsulinHighDoseList.IsSelected := (False,False);
InsulinTypeInDoseList.IsSelected := (False,False);
endif;
If Corr_Dose_Type.Value = "Moderate" then
InsulinLowDoseList.IsSelected := (False,False);
InsulinModDoseList.IsSelected := (False,True);
InsulinHighDoseList.IsSelected := (False,False);
InsulinTypeInDoseList.IsSelected := (False,False);
endif;
If Corr_Dose_Type.Value = "High" then
InsulinLowDoseList.IsSelected := (False,False);
InsulinModDoseList.IsSelected := (False,False);
InsulinHighDoseList.IsSelected := (False,True);
InsulinTypeInDoseList.IsSelected := (False,False);
endif;
If Corr_Dose_Type.Value = "Individualized" then
InsulinLowDoseList.IsSelected := (False,False);
InsulinModDoseList.IsSelected := (False,False);
InsulinHighDoseList.IsSelected := (False,False);
InsulinTypeInDoseList.IsSelected := (False,True);
endif;
If Corr_Dose_Type.Value = "" then
InsulinLowDoseList.IsSelected := (False,False);
InsulinModDoseList.IsSelected := (False,False);
InsulinHighDoseList.IsSelected := (False,False);
InsulinTypeInDoseList.IsSelected := (False,False);
endif;
else
Corr_Aspart_CB.control_read_only := False;
endif;
endif;
If (CallingField = "PRX_Insulin_Aspart|2" and Corr_Aspart_CB.value = False and Corr_Regular_CB.value = False)
OR (CallingField = "PRX_Insulin_Regular|2" and Corr_Aspart_CB.value = False and Corr_Regular_CB.value = False) then
InsulinLowDoseList.IsSelected := (False,False);
InsulinModDoseList.IsSelected := (False,False);
InsulinHighDoseList.IsSelected := (False,False);
InsulinTypeInDoseList.IsSelected := (False,False);
Corr_Regular_CB.control_read_only := False;
Corr_Aspart_CB.control_read_only := False;
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: