nightscout
Version:
Nightscout acts as a web-based CGM (Continuous Glucose Monitor) to allow multiple caregivers to remotely view a patients glucose data in realtime.
68 lines (52 loc) • 2.02 kB
JavaScript
;
function init() {
var override = {
name: 'override'
, label: 'Override'
, pluginType: 'pill-status'
};
override.isActive = function isActive(overrideStatus, sbx) {
if (!overrideStatus) {
return false;
} else {
var endMoment = overrideStatus.duration ? overrideStatus.moment.clone().add(overrideStatus.duration, 'seconds') : null;
overrideStatus.endMoment = endMoment;
return overrideStatus.active && (!endMoment || endMoment.isAfter(sbx.time));
}
};
override.updateVisualisation = function updateVisualisation (sbx) {
var lastOverride = sbx.properties.loop.lastOverride;
var info = [ ];
var label = '';
var isActive = override.isActive(lastOverride, sbx);
if (isActive) {
if (lastOverride.currentCorrectionRange) {
var max = lastOverride.currentCorrectionRange.maxValue;
var min = lastOverride.currentCorrectionRange.minValue;
if (sbx.settings.units === 'mmol') {
max = sbx.roundBGToDisplayFormat(sbx.scaleMgdl(max));
min = sbx.roundBGToDisplayFormat(sbx.scaleMgdl(min));
}
if (lastOverride.currentCorrectionRange.minValue === lastOverride.currentCorrectionRange.maxValue) {
label += 'BG Target: ' + min;
} else {
label += 'BG Targets: ' + min + ':' + max;
}
}
if ((lastOverride.multiplier || lastOverride.multiplier === 0) && lastOverride.multiplier !== 1) {
var multiplier = (lastOverride.multiplier * 100).toFixed(0);
label += ' | O: ' + multiplier + '%';
}
}
var endOverrideValue = lastOverride && lastOverride.endMoment ?
'⇥ ' + lastOverride.endMoment.format('LT') : (lastOverride ? '∞' : '');
sbx.pluginBase.updatePillText(override, {
value: endOverrideValue
, label: label
, info: info
, hide: !isActive
});
};
return override;
}
module.exports = init;