| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- function filter (treatments) {
- var results = [ ];
- var state = { };
-
- function temp (ev) {
- if ('duration (min)' in ev) {
- state.duration = ev['duration (min)'].toString( );
- state.raw_duration = ev;
- }
- if ('rate' in ev) {
- state[ev.temp] = ev.rate.toString( );
- state.rate = ev['rate'];
- state.raw_rate = ev;
- }
- if ('timestamp' in state && ev.timestamp !== state.timestamp) {
- state.invalid = true;
- } else {
- state.timestamp = ev.timestamp;
- }
- if ('duration' in state && ('percent' in state || 'absolute' in state)) {
- state.eventType = 'Temp Basal';
- results.push(state);
- state = { };
- }
- }
- function step (current) {
- switch (current._type) {
- case 'TempBasalDuration':
- case 'TempBasal':
- temp(current);
- break;
- default:
- results.push(current);
- break;
- }
- }
- treatments.forEach(step);
- return results;
- }
- exports = module.exports = filter;
|