Continuous Glucose Monitor-Dexcom G6
Overview of Data Domain
The Dexcom G6 is a real-time, integrated continuous glucose monitoring system (iCGM) that directly monitors blood glucose levels without requiring finger pricks. The device must be worn continuously in order to collect data day and night. A tiny filament called a glucose sensor is inserted under the skin to measure glucose levels in tissue fluid. This filament remains under the skin while it is worn. The internal sensor is connected to the transmitter that sits on top of the skin. The battery life for the transmitter is sufficient to power the system for three months. It is approximately the size of a quarter and adheres to the skin with medical tape. The Dexcom G6 Continuous Glucose Monitor (CGM) captures blood glucose readings every five minutes using this sensor. A single sensor is designed to last for a maximum of ten days, after which time the Dexcom G6 will require the insertion of a new sensor. The G6 transmitter will only save data for thirty days, therefore the data must be downloaded within thirty days from activation or all data will be lost.
In the AI-READI program, we have asked the research participants to wear the Dexcom CGM for ten days concurrently with wearing the Garmin Activity Monitor and using the home environmental sensor.
More information about Dexcom G6 can be found here: https://www.dexcom.com/en-us/g6/how-it-works
Data Processing
File Format
CGM data are in JSON format. Any software system or libraries designed to load and process JSON files will be able to access this data. The data can be loaded using the Python PANDAS libraries and if desired Jupyter Notebooks. There are many software libraries that can alternatively load JSON files if users have differing preferences, but our example code uses these libraries. Example code can be found here in the server: /Data/z_example_code/explore_cgm.ipynb
File organization is expected to follow this pattern:
pilot_data_root
└── wearable_blood_glucose
├── manifest.tsv
└── continuous_glucose_monitoring
└── dexcom_g6
├── 0001
│ └── 0001_DEX.json
├── 0002
│ └── 0002_DEX.json
└── ... etc.
Domain | Variable | Method | Data Standard/ File Extension | Open Source vs. Protected Database? |
---|---|---|---|---|
Continuous Glucose Monitoring | blood glucose levels | Dexcom G6 | mHealth json | Open source |
Data Structure
Description | Example | ||||
---|---|---|---|---|---|
root | header | uuid | Universally Unique IDentifier | AIREADI-1234 | |
creation_date_time | Time of CGM reading | 2023-08-08T21:15:10+00:00 | |||
patient_id | Identification number of patient | AIREADI-1234 | |||
schema_id | namespace | The namespace of the schema to disambiguate schemas with conflicting names | omh | ||
name | Name of schema | blood-glucose | |||
version | Version of schema | 3 | |||
modality | This modality involves a small, wearable sensor that measures glucose levels in the interstitial fluid just beneath the skin | sensed | |||
acquisition_rate | number_of_times | Frequency of reading in a specific time window | 1 | ||
time_window | value | Value of time window | 5 | ||
unit | Unit of time window | min | |||
external_datasheets | datasheet_type | The term IRI stands for Internationalized Resource Identifier, a unique sequence of characters used to identify a resource. In this context, iri-of-cgm-device serves as a placeholder for an IRI that would point to a datasheet or documentation about a CGM device on the AI-READI website, directing users to the site. We plan to update it with the actual URL in the next phase. It is important to note this is a placeholder, but its use can be extended to cover other datasheets, including those featuring AI algorithms. For more information, refer to the following documentation: IEEE 1752 Working Group CardioRespiratory slides. | source_device | ||
datasheet_reference | iri-of-cgm-device | ||||
timezone* | Participant's time zone | PST (Pacific Standard Timezone) | |||
body | effective_time_frame | time_interval 1 | start_date_time | Time of CGM reading | 2023-08-08T21:15:10Z |
end_date_time | Time of CGM reading | 2023-08-08T21:15:10Z | |||
event_type | Estimated Glucose Value2 | EGV | |||
source_service_id | Glucose sensor ID | AB12345678 | |||
blood_glucose | unit | Unit of CGM reading | mg/dL | ||
value** | Value of CGM reading | 138 | |||
transmitter_time | unit | Unit of transmitter timeg | long integer | ||
value | Value of transmitter time | 7573 | |||
transmitter_id | Transmitter ID | 123ABC |
1Time_interval: The raw file contains singular timestamped entries, representing CGM readings at specific times. These readings were recorded at five-minute intervals increasing by 300 seconds with each new entry. The format for CGM/Dexcom G6 incorporates both start and end times, which allows it to accommodate a wider range of devices and data types such as heart rate and steps. Given that each value corresponds to a specific datetime, the start and end times are identical.
1EGV: Estimated Glucose Value. An “EGV event” essentially captures any significant data point or occurrence tracked by the CGM system in relation to estimated glucose levels.
Data Standards
AI-READI wearable Data Processing Pipeline
Wearable data files have been standardized based on an extended model derived from the Open mHealth schema. The Open mHealth standard for wearables offers a comprehensive framework and guidelines designed to enhance interoperability and data exchange between wearable devices and mobile health (mHealth) applications. This initiative aims to streamline the integration of health data from diverse sources, fostering innovation and enabling personalized healthcare solutions.
More information can be found here:
-
Open mHealth Storage Endpoint Github repository:
-
Overview of Open mHealth:
https://www.openmhealth.org/documentation/#/overview/get-started
-
Standards extension
Here is a sample data format for Blood Glucose from Open mHealth:
https://www.openmhealth.org/documentation/#/schema-docs/schema-library/schemas/omh_blood-glucose
{
"blood_glucose": {
"unit": "mg/dL",
"value": 95
},
"effective_time_frame": {
"time_interval": {
"start_date_time": "2013-02-05T07:25:00Z",
"end_date_time": "2013-06-05T07:25:00Z"
}
},
"specimen_source": "capillary blood",
"temporal_relationship_to_meal": "fasting",
"temporal_relationship_to_sleep": "on waking",
"descriptive_statistic": "minimum"
}Additionally, here is a sample data format from a Dexcom Continuous Glucose Monitor (CGM):
{
"timestamp": "YYYY-MM-DDThh:mm:ss",
"event_type": "event type",
"event_subtype": "event subtype",
"patient_info": "patient info",
"device_info": "device info",
"source_device_id": "source device ID",
"glucose_value": "mg/dL",
"insulin_value": "u",
"carb_value": "grams",
"duration": "hh:mm:ss",
"glucose_rate_of_change": "mg/dL/min",
"transmitter_time": "long integer",
"transmitter_id": "transmitter ID"
}To accommodate Dexcom data, we have extended the blood_glucose template as follows:
{
"header": {
"uuid": "AIREADI-XYZ",
"creation_date_time": "YYYY-MM-DDThh:mm:ss",
"patient_id": "AIREADI-XYZ",
"schema_id": {
"namespace": "omh",
"name": "blood-glucose",
"version": 3.0
},
"modality": "sensed",
"acquisition_rate": {
"number_of_times": 1,
"time_window": {
"value": 5,
"unit": "min"
}
},
"external_datasheets": {
"datasheet_type": "source_device",
"datasheet_reference": "iri-of-cgm-device"
},
"timezone": "PST"
},
"body": {
"cgm": [
{
"effective_time_frame": {
"time_interval": {
"start_date_time": "YYYY-MM-DDThh:mm:ssZ",
"end_date_time": "YYYY-MM-DDThh:mm:ssZ"
}
},
"event_type": "event_type",
"source_device_id": "source_device_id",
"blood_glucose": {
"unit": "mg/dL",
"value": "val"
},
"transmitter_time": {
"unit": "long integer",
"value": "number"
},
"transmitter_id": "transmitter_id"
}
]
}
}This extension was necessary to accurately represent Dexcom CGM data within the Blood Glucose template by incorporating additional fields such as event types, device information, and transmitter details.
Metadata and Example outputs
Metadata elements | Description | Example |
---|---|---|
Participant_id | Primary identifier of study participant | 1234 |
Glucose_filename | Name of file ends with participant_id_DEX.json | 1234_DEX.json |
Glucose_level_record_count | Total number of CGM reading | 2856 |
Average_glucose_level_mg_dl | Average level of glucose in mg/dl | 123.304 |
Glucose_sensor_sampling_duration_days | Number of days of glucose sensor sampling | 10 |
Glucose_sensor_id | The number printed on the back of each Dexcom sensor | AB12345678 |
Cgm_manufacturer_model | Manufacturer's model name of the device | Dexcom G6 |