{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Tandem G4","llmstxt":{"hide":true}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"tandem-g4","__idx":0},"children":["Tandem G4"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"checklist-for-cgm-implementation","__idx":1},"children":["Checklist for CGM Implementation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["(Key:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[x]"]}," available in data protocol/documented in spec and implemented"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," available in data protocol/documented in spec but ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["not"]}," yet implemented"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[?]"]}," unknown whether available in data protocol/documented in spec; ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["not"]}," yet implemented"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["*[ ]"]}," TODO: needs implementation!"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," unavailable in data protocol and/or not documented in spec and not yet implemented)"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"required-if-present","__idx":2},"children":["Required if Present"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"cbg","__idx":3},"children":["CBG"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[x]"]}," cbg values"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," units of cbg values (read from device, not hard-coded)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[x]"]}," out-of-range values (LO or HI)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[x]"]}," out-of-range value thresholds (e.g., often 40 for low and 400 for high on CGMs)"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Device-specific? (Add any device-specific notes/additions here.)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A status flag indicates if glucose reading was in response to calibration, which we store in payload with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{calibration_response : true}"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"device-events","__idx":4},"children":["Device Events"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[x]"]}," calibrations",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[x]"]}," calibration value"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," units of calibration value (read from device, not hard-coded)"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," time changes (presence of which is also in the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#bootstrapping-to-utc"},"children":["BtUTC section"]}," below)",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," device display time ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["from"]}," (before change) and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["to"]}," (result of change)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," agent of change (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["automatic"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["manual"]},")"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," timezone"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," reason for change (read from device)"]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Device-specific? (Add any device-specific notes/additions here.)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Calibration events contain three additional timestamps (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["timestamp"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["current_time"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["calibration_timestamp"]},") as well as a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["calibration_reading"]}," (which should match the manual SMBG value), which we store in payload."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"settings","__idx":5},"children":["Settings"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," units preference for BG display"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," units of data being uploaded (will be mutated to mmol/L storage units if not mmol/L)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," transmitter ID"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," low alert settings",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," enabled"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," level/threshold"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," snooze threshold"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," high alert settings",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," enabled"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," level/threshold"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," snooze threshold"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," rate-of-change alerts",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," fall rate alert",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," enabled"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," rate threshold for alerting"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," rise rate alert",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," enabled"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," rate threshold for alerting"]}]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," out-of-range alerts",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," enabled"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[-]"]}," threshold"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," snooze time between alerts"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," predictive alerts",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," low prediction",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," enabled"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," time sensitivity (minutes to predicted low for alerting)"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," high prediction",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," enabled"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," time sensitivity (minutes to predicted high for alerting)"]}]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," calibration alerts/reminders",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," pre-reminder"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," overdue alert"]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Settings history:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," device stores all changes to settings OR"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," device only returns current settings at time of upload"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["No Tidepool data model (yet): volume and/or vibrate mode of all alerts (can/should go in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payload"]},")."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Device-specific? (Add any device-specific notes/additions here.)"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"bootstrapping-to-utc","__idx":6},"children":["\"Bootstrapping\" to UTC"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[x]"]}," index",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," UTC timestamp (",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Hey, one can dream!"]},") OR"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[x]"]}," internal timestamp or persistent log index (across device communication sessions) to order all pump events (regardless of type), independent of device display time OR"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," ephemeral log index (does not persist across device communication sessions) to order all pump events (regardless of type), independent of device display time"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[x]"]}," date & time settings changes"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Device-specific? (Add any device-specific notes/additions here.)"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"no-tidepool-data-model-yet","__idx":7},"children":["No Tidepool Data Model Yet"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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)."]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," activity/exercise"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," food (e.g., Dexcom allows logging carb events)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," notes/other events"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"tidepool-ingestion-api","__idx":8},"children":["Tidepool ingestion API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Choose one of the following:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[x]"]}," legacy \"jellyfish\" ingestion API"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[ ]"]}," platform ingestion API"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"known-implementation-issuestodos","__idx":9},"children":["Known implementation issues/TODOs"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Use this space to describe device-specific known issues or implementation TODOs ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," contained in the above datatype-specific sections."]}]}]},"headings":[{"value":"Tandem G4","id":"tandem-g4","depth":1},{"value":"Checklist for CGM Implementation","id":"checklist-for-cgm-implementation","depth":2},{"value":"Required if Present","id":"required-if-present","depth":3},{"value":"CBG","id":"cbg","depth":4},{"value":"Device Events","id":"device-events","depth":4},{"value":"Settings","id":"settings","depth":4},{"value":"\"Bootstrapping\" to UTC","id":"bootstrapping-to-utc","depth":4},{"value":"No Tidepool Data Model Yet","id":"no-tidepool-data-model-yet","depth":3},{"value":"Tidepool ingestion API","id":"tidepool-ingestion-api","depth":3},{"value":"Known implementation issues/TODOs","id":"known-implementation-issuestodos","depth":3}],"frontmatter":{"seo":{"title":"Tandem G4"}},"lastModified":"2026-05-28T16:33:56.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/uploader/checklists/tandemcgm","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}