2371 lines
112 KiB
Plaintext
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:
|