Checklist for Insulin Pump Implementation
(Key:
[x]
available in data protocol/documented in spec and implemented[-]
available in data protocol/documented in spec but not yet implemented[?]
unknown whether available in data protocol/documented in spec; not yet implemented*[ ]
TODO: needs implementation![ ]
unavailable in data protocol and/or not documented in spec and not yet implemented)
Required if Present
Basals
[ ]
scheduled basal[ ]
basal rate intervals with a start time, duration, and rate delivered[ ]
name of basal schedule on each scheduled basal rate interval[ ]
if basal schedule is a single (flat) rate all day, pump records a new basal rate interval every midnight
[ ]
manual temp basal[ ]
basal rate intervals with a start time, duration, and rate delivered[ ]
object representing suppressed scheduled basal for each segment of the basal schedule that the temp basal intersects
[ ]
percentage temp basal[ ]
basal rate intervals with a start time, duration, percent[ ]
rate provided directly OR[ ]
rate computed from percent x suppressed.rate
[ ]
object representing suppressed scheduled basal for each segment of the basal schedule that the temp basal intersects
[ ]
"suspended" basals (see status - suspends & resumes below)[ ]
basal interval with a start time and duration but no rate (b/c suspended)[ ]
object representing suppressed scheduled basal for each segment of the basal schedule that the suspension of insulin delivery intersects
[ ]
final (most recent) basal[ ]
basal rate interval with a start time, duration "guessed" from settings, rate delivered, and an annotation re: the "guessed" duration OR[ ]
basal rate interval with a start time and rate, no (= zero) duration
Device-specific? (Add any device-specific notes/additions here.)
Boluses
[ ]
normal bolus[ ]
amount of insulin delivered[ ]
amount of insulin delivery programmed (if differs from actual delivery, in case of bolus interruption, cancellation, etc.)
[ ]
extended bolus[ ]
amount of insulin delivered[ ]
duration of insulin delivery[ ]
amount of insulin delivery programmed (if differs from actual delivery, in case of bolus interruption, cancellation, etc.)[ ]
duration of insulin delivery programmed (if differs from actual duration, in case of bolus interruption, cancellation, etc.)[ ]
extended bolus that crosses midnight is split into two records
[ ]
combo/dual bolus[ ]
amount of insulin delivered - immediate (normal)[ ]
amount of insulin delivered - extended[ ]
duration of extended insulin delivery[ ]
amount of immediate insulin delivery programmed (if differs from actual delivery, in case of bolus interruption, cancellation, etc.)[ ]
amount of extended insulin delivery programmed (if differs from actual delivery, in case of bolus interruption, cancellation, etc.)[ ]
duration of extended insulin delivery programmed (if differs from actual duration, in case of bolus interruption, cancellation, etc.)[ ]
extended portion of combo bolus that crosses midnight is split into two records
- bolus cancellations/interruptions
[ ]
represented by a separate event in the device's data log OR[ ]
result in modifications to a bolus event in the device's data log
[ ]
link to "wizard"/calculator entry (via log entry ID or similar)
No Tidepool data model yet:
- bolus cancellations/interruptions
[ ]
agent/reason for bolus cancellation
Device-specific? (Add any device-specific notes/additions here.)
CBG
(See the CGM checklist instead.)
Device Events
- alarms:
[ ]
low insulin[ ]
no insulin[ ]
needed to infer a suspend (stoppage of all insulin delivery)
[ ]
low power[ ]
no power[ ]
needed to infer a suspend (stoppage of all insulin delivery)
[ ]
occlusion[ ]
needed to infer a suspend (stoppage of all insulin delivery)
[ ]
no delivery[ ]
needed to infer a suspend (stoppage of all insulin delivery)
[ ]
auto-off[ ]
needed to infer a suspend (stoppage of all insulin delivery)
[ ]
over limit (i.e., max bolus exceeded through override)[ ]
other alarm types (details to be provided inpayload
object)
[ ]
prime events[ ]
prime target = tubing[ ]
prime target = cannula[ ]
prime targets not differentiated[ ]
prime volume in units of insulin
[ ]
reservoir change (or reservoir rewind)[ ]
needed to infer a suspend (stoppage of all insulin delivery)
[ ]
status events (i.e., suspend & resume)[ ]
suspensions of insulin delivery are represented as (interval) events with a duration OR[ ]
suspensions of insulin delivery are represented as pairs of point-in-time events: a suspension and a resumption[ ]
reason/agent of suspension (automatic
ormanual
)[ ]
reason/agent of resumption (automatic
ormanual
)
- calibrations: see the CGM checklist instead
[ ]
time changes (presence of which is also in the BtUTC section below)[ ]
device display timefrom
(before change) andto
(result of change)[ ]
agent of change (automatic
ormanual
)[ ]
timezone[ ]
reason for change (read from device)
Device-specific? (Add any device-specific notes/additions here.)
SMBG
[ ]
blood glucose value[ ]
subType (linked
ormanual
)[ ]
units of value (read from device, not hard-coded)[ ]
out-of-range values (LO or HI)[ ]
out-of-range value thresholds (e.g., often 20 for low and 600 for high on BGMs)
No Tidepool data model yet:
[ ]
meal tag (i.e., pre- or post-meal)[ ]
other/freeform tags[ ]
categorization of value according to BG target(s) from settings
Device-specific? (Add any device-specific notes/additions here.)
Settings
[ ]
basal schedules[ ]
name of basal schedule OR[ ]
name of settings profile[ ]
each schedule as a set of objects each with a rate and a start time
[ ]
name of currently active basal schedule[ ]
units of all blood glucose-related fields (read from device, not hard-coded)[ ]
units of all carb-related fields (read from device, not hard-coded)[ ]
carb ratio(s)[ ]
name of settings profile[ ]
(one or more) set(s) of objects each with a ratio (amount) and a start time
[ ]
insulin sensitivity factor(s)[ ]
name of settings profile[ ]
(one or more) set(s) of objects each with an amount and a start time
[ ]
blood glucose target(s)[ ]
name of settings profile[ ]
(one or more) set(s) of objects each with a target and a start time- target shape:
[ ]
shape{low: 80, high: 120}
OR[ ]
shape{target: 100}
OR[ ]
shape{target: 100, range: 20}
OR[ ]
shape{target: 100, high: 120}
- basal features:
[ ]
temp basal type (manual
orpercentage
)[ ]
max basal (as a u/hr rate)
- bolus features:
[ ]
bolus "wizard"/calculator enabled[ ]
extended boluses enabled[ ]
max bolus
[ ]
insulin action time[ ]
display BG units
Settings history:
[ ]
device stores all changes to settings OR[ ]
device only returns current settings at time of upload
No Tidepool data model yet:
[ ]
low insulin alert threshold- auto-off:
[ ]
enabled[ ]
threshold
[ ]
language- reminders:
[ ]
BG reminder[ ]
bolus reminder
[ ]
alert settings (volume or vibration-only; whether enabled)- bolus features:
[ ]
bolus increment for non-"quick"/manual boluses[ ]
min BG to allow calculation of bolus delivery[ ]
reverse correction enabled- "quick"/manual bolus:
[ ]
enabled[ ]
increment
[ ]
clock display preference (12h vs 24h format)
Device-specific? (Add any device-specific notes/additions here.)
Wizard
[ ]
recommended bolus dose[ ]
recommendation for carbohydrates[ ]
recommendation for correction (calculation from BG input)- net recommendation
[ ]
net recommendation provided directly in data OR[ ]
net recommendation is justrecommended.carb
+recommended.correction
OR[ ]
method for calculating net recommendation documented in data spec OR[ ]
method for calculating net recommendation reverse-engineered from pump manuals/test data
[ ]
input blood glucose value[ ]
carbohydrate input in grams[ ]
insulin on board[ ]
insulin-to-carb ratio[ ]
insulin sensitivity factor (with units)[ ]
blood glucose target[ ]
shape{low: 80, high: 120}
OR[ ]
shape{target: 100}
OR[ ]
shape{target: 100, range: 20}
OR[ ]
shape{target: 100, high: 120}
[ ]
units of BG input and related fields (read from device, not hard-coded; related fields arebgInput
,bgTarget
,insulinSensitivityFactor
)[ ]
link to bolus delivered as a result of wizard (via log entry ID or similar)
Device-specific? (Add any device-specific notes/additions here.)
"Bootstrapping" to UTC
[ ]
index[ ]
UTC timestamp (Hey, one can dream!) OR[ ]
internal timestamp or persistent log index (across device communication sessions) to order all pump events (regardless of type), independent of device display time OR[ ]
ephemeral log index (does not persist across device communication sessions) to order all pump events (regardless of type), independent of device display time
[ ]
date & time settings changes[ ]
usecommon.checkDeviceTime(currentDeviceTime, timezone, cb)
to check against server time
Device-specific? (Add any device-specific notes/additions here.)
No Tidepool Data Model Yet
NB: You can and should add to this section if there are other data types documented in the device's data protocol specification but not part of Tidepool's data model (yet).
[ ]
activity/exercise[ ]
food (e.g., from a food database built into the pump)[ ]
notes/other events
Tidepool ingestion API
Choose one of the following:
[ ]
legacy "jellyfish" ingestion API[ ]
platform ingestion API
Known implementation issues/TODOs
Use this space to describe device-specific known issues or implementation TODOs not contained in the above datatype-specific sections.