AnpherosAnpheros PlatformDevelopers

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

Health Connect FHIR-re

Android Health Connect adatok olvasása Fitbit, Garmin, Oura, Withings és Wear OS készülékekről Flutterben, és írás FHIR R4 rekordba: engedélyek, előzmények, Play áruház értékelés.

A Health Connect az Android eszközön belüli egészségügyi adattára: a Samsung Health, a Fitbit, a Garmin Connect, az Oura, a Withings és a Wear OS alkalmazások írnak bele, és az Ön alkalmazása az illető engedélyével olvassa ki belőle az adatokat. Ahhoz, hogy ezeket az adatokat FHIR rekordba helyezze, olvassa be a napi összesítéseket és átlagokat a telefonon, küldje el a backendjére, és írja be minden egyes mérőszámot egy Observationként, LOINC kóddal és UCUM egységgel. Ez az oldal ismerteti az Android által megkövetelt engedélyeket, egy Flutter példát (ellenőrizve flutter analyze), amely ugyanazzal a kóddal olvassa be a Health Connectet Androidon és az Apple Health-et iOS-en, valamint a Google Playen való publikálás szabályait.

Mi kerül a Health Connectbe

A Health Connect az Android 14-től és újabb verzióktól kezdve beépített funkció, régebbi verziókon pedig alkalmazásként érhető el. Olyan rekordokat tárol, mint a HeartRateRecord, RestingHeartRateRecord, HeartRateVariabilityRmssdRecord, OxygenSaturationRecord, RespiratoryRateRecord, StepsRecord, DistanceRecord, ActiveCaloriesBurnedRecord, SleepSessionRecord, WeightRecord, BloodPressureRecord, BloodGlucoseRecord, BodyTemperatureRecord és ExerciseSessionRecord.

Ki ír oda, az egyes gyártók dokumentációja szerint:

Forrás Mire számíthat
Fitbit és Pixel Watch A Fitbit alkalmazás szinkronizál a Health Connecttel, miután a felhasználó beállította azt (Google súgó)
Garmin A Garmin Connect támogatja a Health Connectet Android 14-től és újabb verzióktól: tevékenység és wellness adatok, mint például pulzus és kalóriák (Android Developers, 2025. augusztus)
Oura Pulzus, HRV, alvás szakaszokkal, lépések, távolság, kalóriák és edzések (Oura)
Withings A Health Mate tevékenységi, súly-, alvás- és egyéb adatokat cserél a Health Connecten keresztül (Android Developers blog)
Samsung Health, Galaxy Watch Egy részhalmaz, a Samsung Health saját ütemében – lásd: Samsung Health to FHIR

Minden gyártói alkalmazásnak engedéllyel kell rendelkeznie a Health Connectbe való írásra, amelyet a felhasználó az adott alkalmazásban vagy a Health Connect beállításaiban ad meg. Ha egy forrás hiányzik, ez az első dolog, amit ellenőrizni kell.

Engedélyek, amelyekre az Androidnak szüksége van

Napi értékek olvasása Flutterben

A health csomag egyetlen API mögött olvassa a Health Connect-et Androidon és az Apple Health-et iOS-en. A példa a 13.2.1 verziót használja, amellyel az Anpheros Daily szállítva van:

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
}

A getTotalStepsInInterval a Health Connect-től kéri az összesített értéket, amely már feloldja az átfedő forrásokat (egy telefon és egy óra ugyanazt a sétát számolja) a személy által a Health Connect-ben beállított adatforrás-prioritás szerint. A nyers lépésrekordok saját magad általi összeadása kettős számlálást eredményez.

Megjegyzések az Anpheros Daily-ben történő szállításból:

Flutter értékeiből FHIR megfigyelésekre

Küldje el az értékeket a backendjére, és írjon egy megfigyelést személyenként, mérőszámonként és naponta, stabil azonosítóval, frissítve azt, ha ugyanazt a napot ismét elküldik. A teljes megfeleltetési táblázat (Health Connect rekord → LOINC → UCUM), egy validált FHIR példa és a platform ellen futtatott TypeScript upsert a Wearable data in FHIR oldalon található.

Google Play-en való közzététel

A Health Connect-et olvasó alkalmazásoknak el kell végezniük a Health Connect engedélyek nyilatkozatát a Play Console-ban, igazolniuk kell minden adat típust, és rendelkezniük kell egy ehhez illeszkedő adatvédelmi irányelvvel. Az alkalmazás által láthatóan nem használt adat típusokra vonatkozó kéréseket elutasítják. Tervezze meg az áttekintést: sorolja fel az egyes típusokat a használó képernyő mellett.

Wear OS

Wear OS órán egy alkalmazás képes élő szenzoradatokat olvasni a Health Services segítségével (például pulzus edzés közben). Az óra saját egészségügyi alkalmazása által rögzített adatok a gyártó telefonos alkalmazásán keresztül jutnak el a telefonon futó Health Connectbe. Orvosi nyilvántartás esetén általában elegendő a telefonon lévő Health Connect olvasása; egy óraalkalmazás az élő funkciókhoz való.

Hol illeszkedik be az Anpheros

Az Anpheros Platform tárolja az eredményt: a személy FHIR R4 rekordját, ahol minden viselhető érték egy megfigyelésként (Observation) van jelölve, mint eszközadat, beleegyezés, származás és hozzáférési napló mögött. Nem olvassa a Health Connect-et maga; az Android alkalmazásod teszi. Az Anpheros saját alkalmazása, az Anpheros Daily, olvassa a Health Connect-et Androidon (Plus és Max csomagok) és naponta ír összefoglalókat a rekordba.

Gyakran ismételt kérdések

Van a Health Connect-nek felhő API-ja?

Nem. A Health Connect az adatokat a telefonon tárolja, és csak az adott telefonon lévő alkalmazások olvashatják, a személy engedélyével. Az adatok szerverre juttatásához az Ön alkalmazása elolvassa azokat, és elküldi.

Van Health Connect REST API vagy web API?

Nem. A Health Connect egy eszközön futó Android API, amelynek nincs REST vagy web végpontja. A szerver csak akkor fogadja az adatokat, amikor a telefonon lévő alkalmazás elolvassa azokat és elküldi, például FHIR Observations formájában az Anpheros-nak.

Használhatom a Health Connect API-t Pythonból vagy React Native-ből?

Pythonból nem, mert az a telefonon fut, nem szerveren. React Native-ből vagy Flutterből igen, közösségi vagy hivatalos bővítményeken keresztül, amelyek az alkalmazáson belüli Android API-t hívják.

Miért tud az alkalmazásom csak 30 napnyi Health Connect adatot olvasni?

A READ_HEALTH_DATA_HISTORY engedély nélkül a Health Connect az első engedély megadása előtti 30 napra korlátozza az olvasást. Kérje a history engedélyt, ha régebbi adatokra van szüksége.

Szinkronizál a Garmin a Health Connect-tel?

Igen. A Google 2025 augusztusában jelentette be, hogy a Garmin Connect támogatja a Health Connect-et Android 14 és újabb verziókon, tevékenységi és wellness adatokhoz, mint például pulzusszám és kalória. A Garmin saját pontszámai, mint például a Body Battery, nem kerülnek megosztásra.

El tudom olvasni a Fitbit adatokat a Fitbit Web API nélkül?

Androidon igen: miután a személy engedélyezte a Health Connect-et a Fitbit alkalmazásban, a Fitbit adatok elérhetőek a Health Connect-ben az általuk engedélyezett alkalmazások számára.

Miért különbözik a Health Connect lépésszámlálása a gyártói alkalmazásétól?

Lehetséges, hogy a gyártói alkalmazás még nem exportálta a legfrissebb adatait, csak bizonyos típusokat exportál, vagy a Health Connect egy másik forrást részesít előnyben ugyanarra az időszakra. Ellenőrizze az adatforrásokat és azok prioritását a Health Connect beállításaiban.

Kapcsolódó

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