| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- var endsWith = require('lodash/endsWith');
- var round_basal = function round_basal(basal, profile) {
- /* x23 and x54 pumps change basal increment depending on how much basal is being delivered:
- 0.025u for 0.025 < x < 0.975
- 0.05u for 1 < x < 9.95
- 0.1u for 10 < x
- To round numbers nicely for the pump, use a scale factor of (1 / increment). */
- var lowest_rate_scale = 20;
- // Has profile even been passed in?
- if (typeof profile !== 'undefined')
- {
- // Make sure optional model has been set
- if (typeof profile.model === 'string')
- {
- if (endsWith(profile.model, "54") || endsWith(profile.model, "23"))
- {
- lowest_rate_scale = 40;
- }
- }
- }
- var rounded_basal = basal;
- // Shouldn't need to check against 0 as pumps can't deliver negative basal anyway?
- if (basal < 1)
- {
- rounded_basal = Math.round(basal * lowest_rate_scale) / lowest_rate_scale;
- }
- else if (basal < 10)
- {
- rounded_basal = Math.round(basal * 20) / 20;
- }
- else
- {
- rounded_basal = Math.round(basal * 10) / 10;
- }
- return rounded_basal;
- }
- exports = module.exports = round_basal
|