Aller au contenu principal

Wearables & IoT Devices

TietAI ingests data from consumer wearable platforms and medical-grade IoT devices. All readings are stored as FHIR R4 Observation resources in your organization's FHIR store and appear in patient timelines, Hydra Builder pipelines, and clinical alerts.


Data flow

Loading diagram…

Supported platforms

TietAI has native integrations with the following platforms. Each integration covers OAuth authentication, data synchronization, webhook/subscription support, and FHIR transformation.

Fitbit

Data typesSync method
Activity (steps, calories, active minutes), sleep stages, heart rate (summary + intraday), SpO2, body weight/BMIOAuth 2.0 with refresh tokens; intraday at 1s/1min/5min/15min resolution; webhook subscriptions for real-time push

Supported collections: activities, sleep, body, heart rate, SpO2, foods.

Garmin

Data typesSync method
Activity summaries, sleep, heart rate (including HRV), stress, body battery, respiration, pulse oxOAuth 1.0a + PKCE with webhook signature verification (HMAC-SHA256); push-based delivery via Garmin Health API callbacks with historical backfill support

All activity data is delivered server-to-server — Garmin pushes data to TietAI automatically, no polling required.

Oura Ring

Data typesSync method
Sleep (stages, readiness, efficiency), heart rate variability, body temperature, activityOAuth 2.0; webhook subscriptions for new data events

Oura data includes the Readiness Score and Sleep Score as FHIR Observation resources.

WHOOP

Data typesSync method
Recovery score, HRV, resting heart rate, sleep performance, strain, respiratory rateOAuth 2.0; webhook subscriptions for cycle/sleep/workout completion

WHOOP data is organized by recovery cycles and workouts.

Apple Health

Data typesSync method
Heart rate, activity, sleep, ECG, blood oxygen, body measurements, workout dataRequires TietAI iOS companion app; data exported from HealthKit on sync
remarque

Apple Health integration requires the TietAI iOS companion app installed on the patient's device. Data is not pushed automatically — the patient must open the app to trigger a sync.

Polar

Data typesSync method
Training sessions, heart rate, sleep (via Nightly Recharge), activity, recoveryOAuth 2.0 via Polar AccessLink API; webhook notifications for completed training and sleep sessions

Suunto

Data typesSync method
Workouts, heart rate, route/GPS dataOAuth 2.0 via Suunto API; webhook-based delivery on workout completion
Coming soon

Polar and Suunto integrations are currently in development. Movesense research-grade sensors are planned for a future release. Contact TietAI support for early access.

Samsung Health

Data typesSync method
Steps, heart rate, sleep, SpO2, blood pressure, blood glucose, body composition, stressSamsung Health SDK; data exported from Samsung Health app on sync
remarque

Samsung Health integration requires the TietAI companion app installed on the patient's Samsung Galaxy device. Data syncs when the app is open or via background sync.


Supported device categories

Beyond the named platform integrations, TietAI supports data from these device categories via Hydra Connect (MQTT) for hospital and clinical environments:

CategoryExample devicesData typesFHIR mapping
Continuous Glucose Monitor (CGM)Dexcom G6/G7, Abbott FreeStyle Libre, Medtronic GuardianGlucose (mg/dL, mmol/L), trend direction, time-in-rangeObservation (LOINC: 14745-4)
ECG / Heart rateApple Watch (Series 4+), Withings ScanWatch, AliveCor KardiaMobileHeart rate (bpm), RR interval, ECG waveformObservation (LOINC: 8867-4)
Blood pressureOmron Evolv, Withings BPM CoreSystolic / diastolic (mmHg)Observation (LOINC: 55284-4)
Pulse oximeterMasimo MightySat, Nonin, Wellue O2RingSpO2 (%)Observation (LOINC: 59408-5)
Weight / BMIWithings Body+, Fitbit AriaWeight (kg/lbs), BMIObservation (LOINC: 29463-7)
SpirometryNuvoAir, VitalographFEV1, FVC, peak flowObservation (LOINC: 19868-9)
Bedside monitorsHospital-grade IoT via MQTTVitals streamsObservation (device-specific LOINC)

For hospital IoT devices that publish over MQTT, see Hydra Connect → IoT and wearables ingestion.


Connecting a wearable platform

Device integrations are configured at the organization level by an administrator.

Step 1: Enable the integration (Admin)

  1. Go to Settings → Devices → Add Device Integration
  2. Select the platform (Fitbit, Garmin, Oura, WHOOP, Apple Health, Polar, Suunto, Samsung Health)
  3. Enter the required credentials:
    • Fitbit: OAuth 2.0 client ID and secret from the Fitbit developer portal
    • Garmin: Consumer key and secret from the Garmin Health API developer portal
    • Oura: Client ID and secret from the Oura Cloud developer console
    • WHOOP: Client ID and secret from the WHOOP developer portal
    • Apple Health: Requires the TietAI iOS companion app — contact TietAI support
    • Polar: Client ID and secret from the Polar AccessLink developer console
    • Suunto: Client ID and secret from the Suunto API developer portal
    • Samsung Health: Requires the TietAI companion app — contact TietAI support
  4. Click Authorize — you will be redirected to complete OAuth authorization with the platform
  5. Click Save

The integration appears in the Devices list with status Active.

  1. Open the patient's detail view
  2. Click the Wearables tab
  3. Click Link Device
  4. Select the integration from the dropdown
  5. Complete the OAuth consent flow on behalf of the patient (or send the patient a link to complete it themselves)
  6. Click Save

The patient's most recent readings sync within a few minutes.


Data frequency

PlatformSync methodTypical frequency
FitbitOAuth 2.0 + webhooksHourly (activity), nightly (sleep), near-real-time for heart rate with webhook
GarminPush API (server-to-server)On activity/sleep completion, typically within minutes
Oura RingOAuth 2.0 + webhooksOn ring sync, typically hourly to nightly
WHOOPOAuth 2.0 + webhooksOn cycle/sleep/workout completion
Apple HealthiOS companion appManual sync or background app refresh
PolarOAuth 2.0 + webhooksOn training session or sleep completion
SuuntoOAuth 2.0 + webhooksOn workout completion
Samsung HealthSamsung SDK (companion app)Manual sync or background app refresh

Manual sync

Administrators and clinicians can trigger an on-demand data sync for any connected device.

From the UI:

  1. Open the patient's detail view → Wearables tab
  2. Click the Sync now button on any device panel

Via API:

POST /api/v1/devices/{deviceId}/sync
Content-Type: application/json

{
"data_types": ["heart_rate", "sleep", "activity"],
"days": 7
}

Optional parameters:

  • data_types — Array of specific data types to sync (omit for all)
  • days — Number of days to look back (default: 7)
  • from_date / to_date — Explicit date range (ISO 8601)

Track sync progress via GET /api/v1/sync-logs/{syncId}.


Vitals API

The Vitals API provides a unified endpoint for retrieving patient vital signs and wearable metrics across all connected platforms.

GET /api/v1/patients/{patientId}/vitals?metric=heart_rate&days=30

Response includes:

  • data_points — Array of timestamped readings with value and source device
  • summary — Aggregated statistics: min, max, average, count
  • metric — The metric name (e.g., heart_rate, spo2, sleep_efficiency)
  • unit — Measurement unit (e.g., bpm, %, minutes)

Supported metrics: heart_rate, spo2, sleep, sleep_efficiency, calories, active_minutes, distance, steps, hrv, stress, body_battery, respiratory_rate, blood_glucose.


Viewing device data in a patient record

  1. Open the patient's detail view
  2. Click the Wearables tab

The tab shows a summary panel for each connected device with:

  • The most recent reading (value, unit, timestamp)
  • A 7-day trend sparkline
  • Device name and connection status

Click View all readings to open the full reading history with date range filtering. Each reading shows its value, unit, timestamp, and FHIR Observation ID.

Device readings also appear in the patient timeline under event type "Device reading."


Using device data in Hydra Builder pipelines

Use the Device Data node in Hydra Builder to pull device readings into a pipeline.

Example: A daily pipeline that fetches HRV and recovery scores for all cardiac rehab patients, flags those below threshold, and sends an alert to their care team.

Configuration options for the Device Data node:

FieldDescription
PlatformFitbit, Garmin, Oura, WHOOP, Apple Health, Polar, Suunto
Data typeActivity, sleep, heart rate, HRV, SpO2, glucose, etc.
Patient sourceUpstream patient list or individual patient ID
Lookback periodHow many days of readings to retrieve
AggregationRaw readings, daily averages, or weekly summary
Output formatFHIR Bundle of Observations, or JSON summary

The node outputs a fhir-bundle containing Observation resources compatible with any downstream FHIR node.


Threshold alerts

Alerts notify care teams when a patient's readings cross a defined threshold.

  1. Open the patient's detail view → Wearables tab
  2. Click Configure Alerts on any device panel
  3. Define thresholds:
Threshold typeExample
High valueGlucose > 250 mg/dL
Low valueSpO2 < 90%
Rapid changeGlucose drops > 30 mg/dL in 30 minutes
Absence of dataNo reading received in > 4 hours
Score below thresholdWHOOP recovery score < 33%
  1. Set recipients: patient only, care team only, or both
  2. Optionally trigger a Hydra Builder pipeline when the alert fires
  3. Click Save

FHIR mapping

All device readings are stored as FHIR R4 Observation resources. They are queryable via the FHIR API, included in patient exports, and flow through any FHIR-compatible pipeline.

Example Observation (Oura readiness score):

{
"resourceType": "Observation",
"status": "final",
"category": [{ "coding": [{ "code": "activity" }] }],
"code": {
"coding": [{ "system": "http://loinc.org", "code": "93832-4", "display": "Sleep quality score" }]
},
"subject": { "reference": "Patient/12345" },
"effectiveDateTime": "2026-04-05T07:00:00Z",
"valueQuantity": { "value": 82, "unit": "score" },
"device": { "display": "Oura Ring Gen 3" }
}

For a full list of LOINC codes used for each device type, see FHIR & Interoperability.