| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- var _ = require('lodash');
- /* Return basal rate(U / hr) at the provided timeOfDay */
- function basalLookup (schedules, now) {
- var nowDate = now;
- if (typeof(now) === 'undefined') {
- nowDate = new Date();
- }
- var basalprofile_data = _.sortBy(schedules, function(o) { return o.i; });
- var basalRate = basalprofile_data[basalprofile_data.length-1].rate
- if (basalRate === 0) {
- console.error("ERROR: bad basal schedule",schedules);
- return;
- }
- var nowMinutes = nowDate.getHours() * 60 + nowDate.getMinutes();
- for (var i = 0; i < basalprofile_data.length - 1; i++) {
- if ((nowMinutes >= basalprofile_data[i].minutes) && (nowMinutes < basalprofile_data[i + 1].minutes)) {
- basalRate = basalprofile_data[i].rate;
- break;
- }
- }
- return Math.round(basalRate*1000)/1000;
- }
- function maxDailyBasal (inputs) {
- var maxRate = _.maxBy(inputs.basals,function(o) { return Number(o.rate); });
- return (Number(maxRate.rate) *1000)/1000;
- }
- /*Return maximum daily basal rate(U / hr) from profile.basals */
- function maxBasalLookup (inputs) {
- return inputs.settings.maxBasal;
- }
- exports.maxDailyBasal = maxDailyBasal;
- exports.maxBasalLookup = maxBasalLookup;
- exports.basalLookup = basalLookup;
|