Skip to main content
Version: 2.0.0

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.
DomainVariableMethodData Standard/ File ExtensionOpen Source vs. Protected Database?
Continuous Glucose Monitoringblood glucose levelsDexcom G6mHealth jsonOpen source

Data Structure

Description Example
rootheaderuuid Universally Unique IDentifierAIREADI-1234
creation_date_time Time of CGM reading2023-08-08T21:15:10+00:00
patient_id Identification number of patientAIREADI-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 schema3
modality

This modality involves a small, wearable sensor that measures glucose levels in the interstitial fluid just beneath the skin

sensed
acquisition_ratenumber_of_times Frequency of reading in a specific time window1
time_windowvalue Value of time window5
unitUnit 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 reading2023-08-08T21:15:10Z
end_date_timeTime 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 readingmg/dL
value** Value of CGM reading 138
transmitter_time unitUnit of transmitter timeglong integer
value Value of transmitter time7573
transmitter_idTransmitter ID123ABC

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:

    https://github.com/openmhealth/omh-dsu-ri

  • 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 elementsDescriptionExample
Participant_idPrimary identifier of study participant1234
Glucose_filenameName of file ends with participant_id_DEX.json1234_DEX.json
Glucose_level_record_countTotal number of CGM reading2856
Average_glucose_level_mg_dlAverage level of glucose in mg/dl123.304
Glucose_sensor_sampling_duration_daysNumber of days of glucose sensor sampling10
Glucose_sensor_idThe number printed on the back of each Dexcom sensorAB12345678
Cgm_manufacturer_modelManufacturer's model name of the deviceDexcom G6