Skip to content

CGM Data Processor

A robust Python framework for processing and analysing diabetes device data

Status Project Status: Active Python Black isort Pylint License: MIT

📈 Process Your Diabetes Data

Analyse data from multiple diabetes management systems including XDrip+, Dexcom, and Freestyle Libre. Handle CGM readings, insulin doses, carbs, and treatment notes with confidence.

🩸 CGM Analysis

  • Gap detection
  • Configurable Interpolation
  • Quality metrics

💉 Treatment Data

  • Insulin doses
  • Carb intake
  • Event notes

🚀 Advanced Features

  • Automated format detection
  • Data alignment
  • Flexible export options
  • Complete metadata carried through to output format

Quick Start

Install CGM Data Processor - Installation Guide

The simplest way to use the CGM Data Processor is to run python -m src.cli path/to/data/export.file from the root directory. The following arguments can be supllied:

1
2
3
4
5
python -m src.cli data.sqlite \
    --interpolation-limit 6   # Max CGM gaps to fill (6 = 30 mins)
    --bolus-limit 10.0       # Max bolus insulin units
    --max-dose 20.0          # Max valid insulin dose
    --output ./my_analysis   # Output location

For individual use cases check out our API Reference section.

Example of simple use case:

from src.core.format_registry import FormatRegistry
from src.file_parser.format_detector import FormatDetector
from src.processors import DataProcessor

# Initialise format detection
registry = FormatRegistry()
detector = FormatDetector(registry)

# Process file
format, _, _ = detector.detect_format("my_data.sqlite")
processed_data = DataProcessor.process_file("my_data.sqlite")

💡 Key Features

  • Automated format detection for multiple data sources
  • Robust data validation and cleaning
  • Gap detection and interpolation for CGM data
  • Treatment classification and verification
  • Flexible data export options

📊 Example Output Structure

data/exports
├── 2023-06-03_to_2024-09-28_complete
   ├── aligned_data.csv
   ├── carbs.csv
   ├── cgm.csv
   ├── insulin.csv
   ├── notes.csv
   └── processing_notes.json
└── monthly
    ├── 2023-06
       ├── aligned_data.csv
       ├── carbs.csv
       ├── cgm.csv
       ├── insulin.csv
       ├── notes.csv
       └── processing_notes.json
    ├── 2023-07
       ├── aligned_data.csv
       ├── carbs.csv
       ├── cgm.csv
       ├── insulin.csv
       ├── notes.csv
       └── processing_notes.json

🛡️ Responsible Use

This tool is designed for data analysis only. Not intended for real-time monitoring or medical decision making. Always consult healthcare providers for medical advice.