Skip to content

Commit

Permalink
Merge branch 'dev' of github.com:openaps/oref0 into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
scottleibrand committed Oct 21, 2019
2 parents d5772be + e2712b5 commit 5650809
Showing 1 changed file with 70 additions and 65 deletions.
135 changes: 70 additions & 65 deletions lib/determine-basal/determine-basal.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,69 @@ function convert_bg(value, profile)
}
}

function enable_smb(
profile,
microBolusAllowed,
meal_data,
target_bg
) {
// disable SMB when a high temptarget is set
if (! microBolusAllowed) {
console.error("SMB disabled (!microBolusAllowed)");
return false;
} else if (! profile.allowSMB_with_high_temptarget && profile.temptargetSet && target_bg > 100) {
console.error("SMB disabled due to high temptarget of",target_bg);
return false;
} else if (meal_data.bwFound === true && profile.A52_risk_enable === false) {
console.error("SMB disabled due to Bolus Wizard activity in the last 6 hours.");
return false;
}

// enable SMB/UAM if always-on (unless previously disabled for high temptarget)
if (profile.enableSMB_always === true) {
if (meal_data.bwFound) {
console.error("Warning: SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard");
} else {
console.error("SMB enabled due to enableSMB_always");
}
return true;
}

// enable SMB/UAM (if enabled in preferences) while we have COB
if (profile.enableSMB_with_COB === true && meal_data.mealCOB) {
if (meal_data.bwCarbs) {
console.error("Warning: SMB enabled with Bolus Wizard carbs: be sure to easy bolus 30s before using Bolus Wizard");
} else {
console.error("SMB enabled for COB of",meal_data.mealCOB);
}
return true;
}

// enable SMB/UAM (if enabled in preferences) for a full 6 hours after any carb entry
// (6 hours is defined in carbWindow in lib/meal/total.js)
if (profile.enableSMB_after_carbs === true && meal_data.carbs ) {
if (meal_data.bwCarbs) {
console.error("Warning: SMB enabled with Bolus Wizard carbs: be sure to easy bolus 30s before using Bolus Wizard");
} else {
console.error("SMB enabled for 6h after carb entry");
}
return true;
}

// enable SMB/UAM (if enabled in preferences) if a low temptarget is set
if (profile.enableSMB_with_temptarget === true && (profile.temptargetSet && target_bg < 100)) {
if (meal_data.bwFound) {
console.error("Warning: SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard");
} else {
console.error("SMB enabled for temptarget of",convert_bg(target_bg, profile));
}
return true;
}

console.error("SMB disabled (no enableSMB preferences active or no condition satisfied)");
return false;
}

var determine_basal = function determine_basal(glucose_status, currenttemp, iob_data, profile, autosens_data, meal_data, tempBasalFunctions, microBolusAllowed, reservoir_data, currentTime) {
var rT = {}; //short for requestedTemp

Expand Down Expand Up @@ -361,71 +424,13 @@ var determine_basal = function determine_basal(glucose_status, currenttemp, iob_
ZTpredBGs.push(bg);
UAMpredBGs.push(bg);

// enable SMB whenever we have COB or UAM is enabled
// SMB is disabled by default, unless explicitly enabled in preferences.json
var enableSMB=false;
// disable SMB when a high temptarget is set
if (! microBolusAllowed) {
console.error("SMB disabled (!microBolusAllowed)")
} else if (! profile.allowSMB_with_high_temptarget && profile.temptargetSet && target_bg > 100) {
console.error("SMB disabled due to high temptarget of",target_bg);
enableSMB=false;
// enable SMB/UAM (if enabled in preferences) while we have COB
} else if (profile.enableSMB_with_COB === true && meal_data.mealCOB) {
if (meal_data.bwCarbs) {
if (profile.A52_risk_enable === true) {
console.error("Warning: SMB enabled with Bolus Wizard carbs: be sure to easy bolus 30s before using Bolus Wizard")
enableSMB=true;
} else {
console.error("SMB not enabled for Bolus Wizard COB");
}
} else {
console.error("SMB enabled for COB of",meal_data.mealCOB);
enableSMB=true;
}
// enable SMB/UAM (if enabled in preferences) for a full 6 hours after any carb entry
// (6 hours is defined in carbWindow in lib/meal/total.js)
} else if ((profile.enableSMB_after_carbs === true || profile.enableSMB_with_carbs === true) && meal_data.carbs ) {
if (meal_data.bwCarbs) {
if (profile.A52_risk_enable === true) {
console.error("Warning: SMB enabled with Bolus Wizard carbs: be sure to easy bolus 30s before using Bolus Wizard")
enableSMB=true;
} else {
console.error("SMB not enabled for Bolus Wizard carbs");
}
} else {
console.error("SMB enabled for 6h after carb entry");
enableSMB=true;
}
// enable SMB/UAM (if enabled in preferences) if a low temptarget is set
} else if (profile.enableSMB_with_temptarget === true && (profile.temptargetSet && target_bg < 100)) {
if (meal_data.bwFound) {
if (profile.A52_risk_enable === true) {
console.error("Warning: SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard")
enableSMB=true;
} else {
console.error("enableSMB_with_temptarget not supported within 6h of using Bolus Wizard");
}
} else {
console.error("SMB enabled for temptarget of",convert_bg(target_bg, profile));
enableSMB=true;
}
// enable SMB/UAM if always-on (unless previously disabled for high temptarget)
} else if (profile.enableSMB_always === true) {
if (meal_data.bwFound) {
if (profile.A52_risk_enable === true) {
console.error("Warning: SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard")
enableSMB=true;
} else {
console.error("enableSMB_always not supported within 6h of using Bolus Wizard");
}
} else {
console.error("SMB enabled due to enableSMB_always");
enableSMB=true;
}
} else {
console.error("SMB disabled for this run (no selected enableSMB criteria met)");
}
var enableSMB = enable_smb(
profile,
microBolusAllowed,
meal_data,
target_bg
);

// enable UAM (if enabled in preferences)
var enableUAM=(profile.enableUAM);

Expand Down

0 comments on commit 5650809

Please sign in to comment.