A synthetic-data monitoring exercise demonstrating validation, time-series processing, interpretable detection, and prioritized alerts. This public prototype is separate from the later deployed xHealth internship systems described on my profile. It is not a clinically validated decision-support system.
This is an End-to-end monitoring pipeline for consumer health device data. Ingests time-series readings from blood pressure monitors, pulse oximeters, smart scales, and heart rate trackers, detects clinical concerns, and generates alerts for clinician review. Designed for adults 65+.
pip install -r requirements.txt
python main.pyThe command generates its outputs in output/. Sample output files are not committed in this repository.
Generates synthetic patient data (20 patients × 4 devices × 30 days, ~100K readings) with realistic edge cases — sensor faults, Bluetooth duplicates, time gaps, calibration drift — and runs it through a 5-stage pipeline:
- Data generation — synthetic patients with different clinical profiles
- Ingestion — validate, tag faults, deduplicate, store to SQLite
- Processing — daily aggregation, gap detection, rolling statistics
- Analysis — three detection layers: threshold checks → trend detection → cross-device correlation
- Alerts — prioritize, deduplicate, output JSON + clinician summary
Design rationale, assumptions, and tradeoffs are in DESIGN.md.
| Generated file | Contents |
|---|---|
output/health_monitoring.db |
SQLite monitoring database |
output/alerts.json |
Structured alerts |
output/alert_summary.txt |
Human-readable alert summary |
├── main.py # Entry point
├── config.py # Thresholds and parameters
├── models.py # Patient, Device, Reading and DB operations
├── data_generator.py # Synthetic data with edge cases
├── ingestion.py # Validation, deduplication and storage
├── processing.py # Aggregation and rolling statistics
├── analyzer.py # Three-layer analysis
├── alert_engine.py # Prioritization and output
├── DESIGN.md # Assumptions, tradeoffs and decisions
└── requirements.txt
Python 3.9+, numpy, pandas.