An array of annotations.
An array of associations for the resource.
Clock drift offset, expressed as milliseconds.
Conversion offset, expressed as milliseconds.
String representation of a Tidepool User ID. Old style IDs are 10-digit strings consisting of only hexadeximcal digits. New style IDs are 36-digit UUID v4
String representation of a Tidepool User ID. Old style IDs are 10-digit strings consisting of only hexadeximcal digits. New style IDs are 36-digit UUID v4
Globally unique to device and repeatable with each upload, e.g. device make and model with serial number
Revision history of the event
Location information associated with the resource. One or both of name
and gps
must be specified.
String representation of a Tidepool User ID. Old style IDs are 10-digit strings consisting of only hexadeximcal digits. New style IDs are 36-digit UUID v4
An array of 1 to 100 notes.
External origin information for the source of the resource.
Grab bag field for data that isn't yet part of the data model. The maximum size is 4K bytes.
An array of tags.
A string timezone name from the IANA timezone database
Time zone offset, expressed as positive or negative number of minutes from UTC.
Data type
An upload identifier; this field should be the uploadId of the corresponding upload record
A string ID. Added to each event during data processing in the Tidepool Uploader or upon ingestion by the platform data ingestion service.
This is the Tidepool data type representing the settings on a continuous glucose monitor (CGM). A CGM consists of a sensor inserted into subcutaneous tissue, attached to a transmitter clipped into the sensor's cradle, then attached to the surface of the skin with adhesive tape.
Every five minutes, the transmitter sends a blood glucose reading to a receiving device, which can be: an insulin pump with receiving capabilities; a dedicated hardware receiver; or an iPhone with a companion app capable of receiving sensor transmissions via Bluetooth. Retrospective data collection from CGM systems happens via one of these receiving devices.
A CGM system can also be configured to alert the user about glucose values that fall outside a user-selected range.
Platform does not currently accept deduplicate data, meaning if a user uploads the same data from both a pump and a receiver, Tidepool Uploader will reject one device's data and the deduplicate data will not appear.
Currently, Tidepool only supports CGM settings (not to be confused with CGM devices) from Dexcom. However, we plan to offer support for CGM settings from other manufacturers in the future.
This is the Tidepool data type to represent CGM settings at a given point in time — usually the time of a data upload from the device. Most CGM-receiving devices do not, unfortunately, keep a historical record of all CGM settings whenever a settings change is made. The safest assumption is that the time on each CGM settings object represents a time when the settings were read by the device, not the first moment when the settings became effective.
The firmware version of the CGM, if known.
The hardware version of the CGM, if known.
The high alerts object encodes the user’s preferences for receiving alerts about high blood glucose events (hyperglycemia).
Contains the following:
- Enabled
- Level: Threshold for high BG alerts
- Snooze: Allows the user to configure how often the alert should repeat if the person with diabetes' blood glucose remains above the threshold value. A common value is two hours
The low alerts object encodes the user’s preferences for receiving alerts about low blood glucose events (hypoglycemia).
Contains the following:
- Enabled
- Level: Threshold for low BG alerts
- Snooze: Allows the user to configure how often the alert should repeat if the person with diabetes' blood glucose remains below the threshold value. A common value is 15 minutes
The manufacturer(s) of the CGM. An array of strings.
The model of the CGM, if known.
The name of the CGM, if known.
The out of range alerts object encodes the user's settings for receiving alerts from the receiver if the connection between the transmitter and the receiver has been disrupted. (This is typically due to the transmitter being situated physically out of range of the receiver.)
Contains the following:
- Enabled
- Snooze
This value is not like the snooze on high alerts and low alerts. More specifically, the time value in an out of range alerts object is not a setting for time between alerts but rather the amount of time (counted by the receiver), that the receiver's data connection with the transmitter has been broken. We plan to migrate to the term "threshold" in the future for maximum clarity.
The rate of change alerts object encodes the user's preferences for receiving alerts when the person with diabetes' blood glucose is changing rapidly — either rising or falling.
Contains the following:
- Enabled
- Rate: The rate of change triggers the alert
For the fall rate, the rate of change must be specified as a negative value. Like all blood glucose-related values in the Tidepool data model, both the fall rate and rise rate may be specified in either mg/dL or mmol/L, but will be translated to mmol/L upon ingestion.
The serial number of the CGM, if known.
The software version of the CGM, if known.
The transmitter ID of the CGM, if known.
The unit of the CGM, if known. One of mg/dL
or mmol/L
.
{
"type": "cgmSettings",
"firmwareVersion": "1.2",
"hardwareVersion": "2.3r45",
"highAlerts": {
"enabled": true,
"level": 10.82395858253879,
"snooze": 4500000
},
"lowAlerts": {
"enabled": true,
"level": 3.33044879462732,
"snooze": 1800000
},
"manufacturers": [
"Acme"
],
"model": "Turbo CGM III",
"name": "My CGM",
"outOfRangeAlerts": {
"enabled": false,
"snooze": 1800000
},
"rateOfChangeAlerts": {
"fallRate": {
"enabled": true,
"rate": -0.055507479910455335
},
"riseRate": {
"enabled": false,
"rate": 0.055507479910455335
}
},
"serialNumber": "1234567890",
"softwareVersion": "3.4.5",
"transmitterId": "C8E65",
"units": "mmol/L",
"clockDriftOffset": 0,
"conversionOffset": 0,
"deviceId": "DevId0987654321",
"deviceTime": "2018-05-14T18:17:07",
"guid": "6d15f48c-3734-4ad1-8f39-9b374f1d127f",
"id": "02ccebd2affc472d9b296d4f1f800dfd",
"time": "2018-05-14T08:17:07.560Z",
"timezoneOffset": 600,
"uploadId": "SampleUploadId"
}
{
"type": "cgmSettings",
"firmwareVersion": "1.2",
"hardwareVersion": "2.3r45",
"highAlerts": {
"enabled": true,
"level": 185,
"snooze": 2700000
},
"lowAlerts": {
"enabled": true,
"level": 85,
"snooze": 900000
},
"manufacturers": [
"Acme"
],
"model": "Turbo CGM III",
"name": "My CGM",
"outOfRangeAlerts": {
"enabled": false,
"snooze": 3600000
},
"rateOfChangeAlerts": {
"fallRate": {
"enabled": true,
"rate": -2
},
"riseRate": {
"enabled": false,
"rate": 2
}
},
"serialNumber": "1234567890",
"softwareVersion": "3.4.5",
"transmitterId": "BE61A",
"units": "mg/dL",
"clockDriftOffset": 0,
"conversionOffset": 0,
"deviceId": "DevId0987654321",
"deviceTime": "2018-05-14T18:17:07",
"time": "2018-05-14T08:17:07.561Z",
"timezoneOffset": 600,
"uploadId": "SampleUploadId"
}
{
"type": "cgmSettings",
"firmwareVersion": "1.2",
"hardwareVersion": "2.3r45",
"highAlerts": {
"enabled": true,
"level": 10.268883783434237,
"snooze": 4500000
},
"lowAlerts": {
"enabled": true,
"level": 3.8855235937318735,
"snooze": 1800000
},
"manufacturers": [
"Acme"
],
"model": "Turbo CGM III",
"name": "My CGM",
"outOfRangeAlerts": {
"enabled": false,
"snooze": 3600000
},
"rateOfChangeAlerts": {
"fallRate": {
"enabled": false,
"rate": -0.11101495982091067
},
"riseRate": {
"enabled": false,
"rate": 0.16652243973136602
}
},
"serialNumber": "1234567890",
"softwareVersion": "3.4.5",
"transmitterId": "E3250",
"units": "mmol/L",
"_active": true,
"_groupId": "abcdef",
"_schemaVersion": 0,
"_version": 0,
"clockDriftOffset": 0,
"conversionOffset": 0,
"createdTime": "2018-05-14T08:17:12.561Z",
"deviceId": "DevId0987654321",
"deviceTime": "2018-05-14T18:17:07",
"guid": "393c9563-705a-4832-b935-cbf23d759f77",
"id": "7cb8be46bb9447de8b4f5f90d1bd5486",
"time": "2018-05-14T08:17:07.561Z",
"timezoneOffset": 600,
"uploadId": "SampleUploadId"
}