GlucoPulse banner
martymcenroe martymcenroe

GlucoPulse

DevOps community

Description

Reference implementation for an AI health data platform with MLOps lifecycle, Snowflake Cortex, Azure ML, and LangChain RAG

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

GlucoPulse.ai

A personal health analytics project to analyze continuous glucose monitor (CGM) data using Snowflake, Snowflake Cortex AI, and Snowpark for Python.

1. Project Goal

As a person managing Type 2 Diabetes, I built this project to move beyond simple averages like HbA1c and analyze the real-world impact of **glycemic variability**.

The core hypothesis is that large, rapid glucose excursions are disproportionately damaging, and that a 3-month average (HbA1c) can be dangerously misleading. This project uses data analysis and machine learning to quantify, classify, and detect these high-variability events from over 96,000 personal CGM readings.

2. Technical Stack

  • Data Warehouse: Snowflake
  • Data Pipeline: Snowflake SQL (ELT Pattern)
  • Core Table: RAW_READINGS (contains all Type 0, 1, and 6 records)
  • NLP/AI: Snowflake Cortex AI (COMPLETE function)
  • ML Modeling: Snowpark for Python (with scikit-learn)
  • Source Control: Git / GitHub

3. Data Engineering Pipeline (ELT)

The source data from the LibreView export is not in a clean, queryable format. A multi-step ELT (Extract-Load-Transform) pipeline was built to clean and model the data for analysis.

Source Data Profile

The raw `.csv` export contains several data quality issues:

  • Junk Header: A non-data title row is present on row 1.
  • Misaligned Headers: The true column headers are on row 2.
  • Conditional Data: Glucose readings are stored in two different columns (Historic Glucose mg/dL vs. Scan Glucose mg/dL) based on a Record Type (0 or 1).
  • Sparse Data: Non-reading events (Record Type 6), which contain all lifestyle notes, are mixed with valid glucose readings.
  • Fragmented Data: Lifestyle notes are spread across 10+ separate columns.

Loading Strategy (ELT)

A robust ELT pattern was used to ensure data integrity and auditability.

  1. Extract/Load: The raw CSV is first uploaded to a Snowflake Stage (@RAW_FILE_STAGE).