Wearable Health Data Pipeline
System ↔ SystemWearable device sync through normalization, metrics, trends, and reporting.
6 nodes · 5 edgesfitness
eventsystemapidb
Visual
Wearable Sync Eventevent
BLE sync from smartwatch uploads heart rate, steps, sleep, and SpO2 data.
↓sequential→ Data Normalization
Data Normalizationsystem
Convert vendor-specific formats to FHIR Observation resources.
↓sequential→ Health Metric Calculation
Health Metric Calculationsystem
Compute resting HR, HRV, VO2max estimate, sleep score, and recovery index.
↓sequential→ Trend Analysis
Trend Analysissystem
7-day and 30-day rolling averages, detect significant changes.
↓sequential→ Coach Dashboard Update
↓conditional→ Weekly Report Generation
Coach Dashboard Updatedb
Write athlete metrics to coaching platform database.
Weekly Report Generationapi
Generate and email PDF summary with charts to user.
uc-wearable-data-pipeline.osop.yaml
osop_version: "1.0"
id: "wearable-data-pipeline"
name: "Wearable Health Data Pipeline"
description: "Wearable device sync through normalization, metrics, trends, and reporting."
nodes:
- id: "wearable_sync"
type: "event"
name: "Wearable Sync Event"
description: "BLE sync from smartwatch uploads heart rate, steps, sleep, and SpO2 data."
- id: "data_normalize"
type: "system"
name: "Data Normalization"
description: "Convert vendor-specific formats to FHIR Observation resources."
- id: "metric_calc"
type: "system"
name: "Health Metric Calculation"
description: "Compute resting HR, HRV, VO2max estimate, sleep score, and recovery index."
- id: "trend_analysis"
type: "system"
name: "Trend Analysis"
description: "7-day and 30-day rolling averages, detect significant changes."
- id: "coach_dashboard"
type: "db"
name: "Coach Dashboard Update"
description: "Write athlete metrics to coaching platform database."
- id: "weekly_report"
type: "api"
name: "Weekly Report Generation"
description: "Generate and email PDF summary with charts to user."
timeout_sec: 60
edges:
- from: "wearable_sync"
to: "data_normalize"
mode: "sequential"
- from: "data_normalize"
to: "metric_calc"
mode: "sequential"
- from: "metric_calc"
to: "trend_analysis"
mode: "sequential"
- from: "trend_analysis"
to: "coach_dashboard"
mode: "sequential"
- from: "trend_analysis"
to: "weekly_report"
mode: "conditional"
when: "day_of_week == 'monday'"