AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Health Connect do FHIR

Čítanie údajov z Android Health Connect od Fitbit, Garmin, Oura, Withings a Wear OS vo Flutter a ich zápis do FHIR R4 záznamu: povolenia, história, kontrola v Google Play.

Health Connect je on-device úložisko zdravia pre Android: aplikácie Samsung Health, Fitbit, Garmin Connect, Oura, Withings a Wear OS do neho zapisujú a vaša aplikácia z neho číta s povolením používateľa. Aby ste tieto dáta dostali do FHIR záznamu, prečítajte si denné súčty a priemery na telefóne, pošlite ich na váš backend a zapíšte každú metriku ako Observation s LOINC kódom a UCUM jednotkou. Táto stránka pokrýva povolenia, ktoré Android vyžaduje, Flutter príklad (skontrolovaný s flutter analyze), ktorý číta Health Connect na Androide a Apple Health na iOS s rovnakým kódom, a pravidlá pre publikovanie na Google Play.

Čo dosahuje Health Connect

Health Connect je integrovaný do systému Android 14 a novších verzií a je k dispozícii ako aplikácia pre staršie verzie. Uchováva záznamy ako HeartRateRecord, RestingHeartRateRecord, HeartRateVariabilityRmssdRecord, OxygenSaturationRecord, RespiratoryRateRecord, StepsRecord, DistanceRecord, ActiveCaloriesBurnedRecord, SleepSessionRecord, WeightRecord, BloodPressureRecord, BloodGlucoseRecord, BodyTemperatureRecord a ExerciseSessionRecord.

Kto tam zapisuje, podľa dokumentácie každého predajcu:

Zdroj Čo očakávať
Fitbit a Pixel Watch Aplikácia Fitbit synchronizuje s Health Connect po tom, ako si ju používateľ nastaví (Pomocník Google)
Garmin Garmin Connect podporuje Health Connect na systéme Android 14 a novších verziách: údaje o aktivite a wellness, ako je srdcová frekvencia a kalórie (Android Developers, august 2025)
Oura Srdcová frekvencia, HRV, spánok s fázami, kroky, vzdialenosť, kalórie a cvičenia (Oura)
Withings Health Mate si vymieňa údaje o aktivite, hmotnosti, spánku a ďalšie údaje prostredníctvom Health Connect (Blog Android Developers)
Samsung Health, Galaxy Watch Podmnožina, vlastným tempom Samsung Health — pozri Samsung Health do FHIR

Každá aplikácia predajcu musí mať povolenie na zápis do Health Connect, ktoré používateľ udelí v danej aplikácii alebo v nastaveniach Health Connect. Ak chýba zdroj, je to prvá vec, ktorú treba skontrolovať.

Požadované povolenia pre Android

Čítanie denných hodnôt vo Flutteri

Balík health číta Health Connect na Androide a Apple Health na iOS pod jedným API. Príklad používa verziu 13.2.1, s ktorou Anpheros Daily prichádza:

import 'dart:math' as math;

import 'package:health/health.dart';

/// One day of data from Health Connect (Android) or Apple Health (iOS), ready for your backend.
class DailyValue {
  DailyValue(this.metric, this.day, this.value, {this.min, this.max});
  final String metric; // 'heart_rate', 'steps'
  final String day; // '2026-10-01', the user's local day
  final double value;
  final double? min, max;

  Map<String, Object?> toJson() => {'metric': metric, 'day': day, 'value': value, 'min': min, 'max': max};
}

final health = Health();

Future<List<DailyValue>> collectLastDays({int days = 30}) async {
  await health.configure();
  if (!await health.isHealthConnectAvailable()) {
    await health.installHealthConnect(); // opens the Play Store on Android; always available on iOS
    return [];
  }
  const types = [HealthDataType.HEART_RATE, HealthDataType.STEPS];
  final granted = await health.requestAuthorization(types, permissions: [HealthDataAccess.READ, HealthDataAccess.READ]);
  if (!granted) return [];

  final now = DateTime.now();
  final out = <DailyValue>[];
  for (var i = days - 1; i >= 0; i--) {
    final start = DateTime(now.year, now.month, now.day - i); // local midnight, safe across DST changes
    final end = DateTime(start.year, start.month, start.day + 1);
    final day = start.toIso8601String().substring(0, 10);

    final steps = await health.getTotalStepsInInterval(start, end);
    if (steps != null) out.add(DailyValue('steps', day, steps.toDouble()));

    final samples = await health.getHealthDataFromTypes(types: [HealthDataType.HEART_RATE], startTime: start, endTime: end);
    final bpm = [for (final p in samples) if (p.value is NumericHealthValue) (p.value as NumericHealthValue).numericValue.toDouble()];
    if (bpm.isNotEmpty) {
      out.add(DailyValue('heart_rate', day, bpm.reduce((a, b) => a + b) / bpm.length,
          min: bpm.reduce(math.min), max: bpm.reduce(math.max)));
    }
  }
  return out; // POST these to your backend, which writes them to the FHIR record
}

getTotalStepsInInterval žiada Health Connect o jeho agregovaný celok, ktorý už rieši prekrývajúce sa zdroje (telefón a hodinky počítajúce tú istú prechádzku) podľa priority zdroja dát, ktorú si osoba nastavila v Health Connect. Sčítanie surových záznamov krokov samotným používateľom vedie k dvojitému započítaniu.

Poznámky z dodania tohto v Anpheros Daily:

Z hodnôt Flutteru do FHIR Observations

Odošlite hodnoty na váš backend a zapíšte jedno Observation na osobu, metriku a deň so stabilným identifikátorom, pričom ho aktualizujte, keď sa ten istý deň odošle znova. Kompletná mapovacia tabuľka (Health Connect record → LOINC → UCUM), validovaný FHIR príklad a TypeScript upsert spustenie proti platforme sú uvedené v Wearable data in FHIR.

Publikovanie na Google Play

Aplikácie, ktoré čítajú Health Connect, musia v Play Console vyplniť vyhlásenie o povoleniach Health Connect, zdôvodniť každý typ údajov a mať zodpovedajúce zásady ochrany osobných údajov. Požiadavky na typy údajov, ktoré aplikácia viditeľne nepoužíva, sú zamietnuté. Naplánujte si revíziu: uveďte každý typ vedľa obrazovky, ktorá ho používa.

Wear OS

Na hodinkách Wear OS môže aplikácia čítať živé údaje zo senzorov prostredníctvom Health Services (napríklad srdcovú frekvenciu počas cvičenia). Údaje, ktoré zaznamená vlastná zdravotná aplikácia hodiniek, sa dostanú do Health Connect na telefóne prostredníctvom telefónovej aplikácie predajcu. Pre lekársky záznam zvyčajne stačí čítanie Health Connect na telefóne; aplikácia hodiniek je určená pre živé funkcie.

Kam Anpheros zapadá

Platforma Anpheros ukladá výsledok: záznam osoby vo formáte FHIR R4 s každou hodnotou zo zariadenia ako Observation označenou ako dáta zo zariadenia, chránené súhlasom, pôvodom a denníkom prístupu. Sama o sebe nečíta Health Connect; číta ho vaša Android aplikácia. Vlastná aplikácia Anpheros, Anpheros Daily, číta Health Connect na Androide (plány Plus a Max) a zapisuje denné súhrny do záznamu.

Často kladené otázky

Má Health Connect cloudové API?

Nie. Health Connect ukladá dáta na telefóne a čítať ich môžu iba aplikácie na danom telefóne s povolením používateľa. Ak chcete preniesť dáta na server, vaša aplikácia ich prečíta a odošle.

Existuje REST API alebo webové API pre Health Connect?

Nie. Health Connect je API pre zariadenia s Androidom bez REST alebo webového koncového bodu. Server prijíma dáta iba vtedy, keď si ich aplikácia na telefóne prečíta a odošle, napríklad ako FHIR Observations do Anpheros.

Môžem použiť Health Connect API z Pythonu alebo React Native?

Z Pythonu nie, pretože beží na telefóne, nie na serveri. Z React Native alebo Flutter áno, prostredníctvom komunitných alebo oficiálnych pluginov, ktoré volajú Android API v rámci aplikácie.

Prečo moja aplikácia môže čítať iba 30 dní dát z Health Connect?

Bez povolenia READ_HEALTH_DATA_HISTORY obmedzuje Health Connect čítanie na 30 dní pred udelením prvého povolenia. Požiadajte o povolenie histórie, ak potrebujete staršie dáta.

Synchronizuje sa Garmin s Health Connect?

Áno. Google oznámil v auguste 2025, že Garmin Connect podporuje Health Connect na Androide 14 a novšom, pre dáta o aktivite a wellness, ako je srdcová frekvencia a kalórie. Vlastné skóre Garminu, ako napríklad Body Battery, sa nezdieľajú.

Môžem čítať dáta Fitbit bez Fitbit Web API?

Na Androide áno: keď používateľ povolí Health Connect v aplikácii Fitbit, dáta Fitbit sú dostupné v Health Connect pre aplikácie, ktoré autorizuje.

Prečo sa počet krokov v Health Connect líši od mojej predajnej aplikácie?

Predajná aplikácia možno ešte neexportovala svoje najnovšie dáta, možno exportuje iba niektoré typy, alebo Health Connect môže preferovať iný zdroj pre rovnaké obdobie. Skontrolujte zdroje dát a ich prioritu v nastaveniach Health Connect.

Súvisiace

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy