Skip to content

Commit 141f00a

Browse files
Merge pull request #436 from mgranberry/wip/iob-cob
allow arbitrary DIAs in profile
2 parents ddfef10 + e25c6ab commit 141f00a

File tree

2 files changed

+31
-33
lines changed

2 files changed

+31
-33
lines changed

static/iob-cob.html

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -269,38 +269,37 @@
269269
$scope.iob = function(treatment, time) {
270270

271271
var dia=$scope.profile[0].dia;
272-
if (dia == 3) {
273-
var peak=75;
274-
} else {
275-
console.warn('DIA of ' + dia + 'not supported');
276-
}
272+
var scalefactor = 3.0/dia;
273+
var peak=75;
277274
var sens=$scope.profile[0].sens;
278-
if (typeof time === 'undefined') {
279-
var time = new Date();
275+
var activityContrib, iobContrib;
276+
var t = time;
277+
if (typeof t === 'undefined') {
278+
t = new Date();
280279
}
281280

282281
if (treatment.insulin) {
283282
var bolusTime=new Date(treatment.created_at);
284-
var minAgo=(time-bolusTime)/1000/60;
283+
var minAgo=scalefactor*(t-bolusTime)/1000/60;
285284

286285
if (minAgo < 0) {
287-
var iobContrib=0;
288-
var activityContrib=0;
286+
iobContrib = 0;
287+
activityContrib = 0;
289288
}
290289
if (minAgo < peak) {
291290
var x = minAgo/5+1;
292-
var iobContrib=treatment.insulin*(1-0.001852*x*x+0.001852*x);
293-
var activityContrib=sens*treatment.insulin*(2/dia/60/peak)*minAgo;
291+
iobContrib=treatment.insulin*(1-0.001852*x*x+0.001852*x);
292+
activityContrib=sens*treatment.insulin*(2/dia/60/peak)*minAgo;
294293

295294
}
296295
else if (minAgo < 180) {
297296
var x = (minAgo-75)/5;
298-
var iobContrib=treatment.insulin*(0.001323*x*x - .054233*x + .55556);
299-
var activityContrib=sens*treatment.insulin*(2/dia/60-(minAgo-peak)*2/dia/60/(60*dia-peak));
297+
iobContrib=treatment.insulin*(0.001323*x*x - .054233*x + .55556);
298+
activityContrib=sens*treatment.insulin*(2/dia/60-(minAgo-peak)*2/dia/60/(60*dia-peak));
300299
}
301300
else {
302-
var iobContrib=0;
303-
var activityContrib=0;
301+
iobContrib=0;
302+
activityContrib=0;
304303
}
305304
return {
306305
iobContrib: iobContrib,

static/js/client.js

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1279,7 +1279,7 @@ var app = {}, browserSettings = {}, browserStorage = $.localStorage;
12791279
var BG_MIN = scaleBg(36);
12801280
var BG_MAX = scaleBg(400);
12811281
if (typeof predict_hr === 'undefined') {
1282-
var predict_hr = 4;
1282+
predict_hr = profile.dia;
12831283
}
12841284
var dt = time.getTime();
12851285
var predictedColor = 'purple';
@@ -1547,38 +1547,37 @@ var app = {}, browserSettings = {}, browserStorage = $.localStorage;
15471547
function iobCalc(treatment, time) {
15481548

15491549
var dia=profile.dia;
1550-
if (dia == 3) {
1551-
var peak=75;
1552-
} else {
1553-
console.warn('DIA of ' + dia + 'not supported');
1554-
}
1550+
var scaleFactor = 3.0/dia;
1551+
var peak = 75;
15551552
var sens=profile.sens;
1556-
if (typeof time === 'undefined') {
1557-
var time = new Date();
1553+
var iobContrib, activityContrib;
1554+
var t = time;
1555+
if (typeof t === 'undefined') {
1556+
t = new Date();
15581557
}
15591558

15601559
if (treatment.insulin) {
15611560
var bolusTime=new Date(treatment.created_at);
1562-
var minAgo=(time-bolusTime)/1000/60;
1561+
var minAgo=scaleFactor*(t-bolusTime)/1000/60;
15631562

15641563
if (minAgo < 0) {
1565-
var iobContrib=0;
1566-
var activityContrib=0;
1564+
iobContrib=0;
1565+
activityContrib=0;
15671566
}
15681567
if (minAgo < peak) {
15691568
var x = minAgo/5+1;
1570-
var iobContrib=treatment.insulin*(1-0.001852*x*x+0.001852*x);
1571-
var activityContrib=sens*treatment.insulin*(2/dia/60/peak)*minAgo;
1569+
iobContrib=treatment.insulin*(1-0.001852*x*x+0.001852*x);
1570+
activityContrib=sens*treatment.insulin*(2/dia/60/peak)*minAgo;
15721571

15731572
}
15741573
else if (minAgo < 180) {
15751574
var x = (minAgo-75)/5;
1576-
var iobContrib=treatment.insulin*(0.001323*x*x - .054233*x + .55556);
1577-
var activityContrib=sens*treatment.insulin*(2/dia/60-(minAgo-peak)*2/dia/60/(60*dia-peak));
1575+
iobContrib=treatment.insulin*(0.001323*x*x - .054233*x + .55556);
1576+
activityContrib=sens*treatment.insulin*(2/dia/60-(minAgo-peak)*2/dia/60/(60*dia-peak));
15781577
}
15791578
else {
1580-
var iobContrib=0;
1581-
var activityContrib=0;
1579+
iobContrib=0;
1580+
activityContrib=0;
15821581
}
15831582
return {
15841583
iobContrib: iobContrib,

0 commit comments

Comments
 (0)