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.
81 lines (74 loc) • 1.78 kB
JavaScript
;
function prepare (client, opts) {
opts = checkOptions(client, opts);
if (opts.scaleY === 'linear') {
return prepareLinear(client);
} else {
return prepareLog(client, opts);
}
}
function checkOptions (client, opts) {
opts = opts || {};
opts.scaleY = opts.scaleY || client.settings.scaleY;
//assume any values from opts are already scaled
//do any other scaling here
opts.high = opts.high || Math.round(client.utils.scaleMgdl(client.settings.thresholds.bgHigh));
opts.targetTop = opts.targetTop || Math.round(client.utils.scaleMgdl(client.settings.thresholds.bgTargetTop));
opts.targetBottom = opts.targetBottom || Math.round(client.utils.scaleMgdl(client.settings.thresholds.bgTargetBottom));
opts.low = opts.low || Math.round(client.utils.scaleMgdl(client.settings.thresholds.bgLow));
return opts;
}
function prepareLog (client, opts) {
if (client.settings.units === 'mmol') {
return [
2.0
, Math.round(client.utils.scaleMgdl(client.settings.thresholds.bgLow))
, opts.targetBottom
, 6.0
, opts.targetTop
, opts.high
, 22.0
];
} else {
return [
40
, opts.low
, opts.targetBottom
, 120
, opts.targetTop
, opts.high
, 400
];
}
}
function prepareLinear (client) {
if (client.settings.units === 'mmol') {
return [
2.0
, 4.0
, 6.0
, 8.0
, 10.0
, 12.0
, 14.0
, 16.0
, 18.0
, 20.0
, 22.0
];
} else {
return [
40
, 80
, 120
, 160
, 200
, 240
, 280
, 320
, 360
, 400
];
}
}
module.exports = prepare;