AnpherosAnpheros PlatformDevelopers

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

Viselhető eszközök adatai FHIR-ben (Apple Health, Health Connect)

Szerezz okosóra, gyűrű és mérleg adatokat FHIR rekordba: mely eszközök melyik egészségügyi tárolóhoz jutnak el, egy LOINC leképezési táblázat, napi összefoglalók és egy tesztelt upsert.

Az okosóráról, gyűrűről vagy okosmérlegről származó adatok orvosi rekordba való beviteléhez olvassa be azokat a telefonról az operációs rendszer egészségügyi tárolójából – iOS alatt az Apple Health, Android alatt a Health Connect –, naponta összefoglalja azokat, minden mért értéket leképez egy LOINC kódra és egy UCUM egységre, majd FHIR R4 Observation dokumentumként írja be, eszközadatként megjelölve. A telefon egészségügyi tárolójából való olvasás az egyes gyártók felhője helyett lehetővé teszi, hogy egyetlen integráció fedje le az Apple Watch, Galaxy Watch, Pixel Watch, Garmin, Fitbit, Oura és Withings eszközöket, feltéve, hogy a személy engedélyezte a gyártói alkalmazásuk megosztását. Ez az oldal bemutatja az adatútvonalat, egy újrafelhasználható leképezési táblázatot, egy validált FHIR példát és a platform ellen futtatott kódot.

Az adatút

 watch, ring, scale ──► vendor app (Garmin Connect, Fitbit, Oura, Withings, Samsung Health…)
                              │  shares, with the person's permission
                              ▼
                 Apple Health (iOS)  /  Health Connect (Android)
                              │  your app reads, with the person's permission, on the phone
                              ▼
                 your app ──► your backend ──► FHIR R4 Observations in the person's record

Sem az Apple Health, sem a Health Connect nem rendelkezik szerver API-val: az adatokat csak az adott személy telefonján futó alkalmazás olvashatja. Az Ön alkalmazása elolvassa az adatokat, tömörített napi értékeket küld a backendjére, és a backend ezeket rögzíti a rekordba.

Mely eszközök mely egészségügyi tárolókat érnek el

Az egyes gyártók által megosztott adatok az alkalmazás verzióival változnak; a gyártó saját dokumentációja a mérvadó.

Eszköz vagy alkalmazás Apple Health (iOS) Health Connect (Android) Megjegyzések
Apple Watch Igen, natívan — Minden, amit az óra mér, az Apple Health-be kerül
Samsung Galaxy Watch, Samsung Health — Részben A Samsung Health dönti el, hogy milyen típusokat exportál és milyen gyakran; lásd: Samsung Health
Pixel Watch, Fitbit Nincs hivatalos szinkronizálás Igen, a Fitbit alkalmazáson keresztül (Google súgó)
Garmin Igen, a Garmin Connect-ből minden eszköz szinkronizálás után Igen, a Garmin Connect támogatja a Health Connect-et Android 14-től és újabbaktól (Android Developers, 2025. augusztus) A Garmin-specifikus pontszámok, mint például a Body Battery, nem kerülnek megosztásra
Oura Igen Igen (Oura) A Readiness és más Oura pontszámok az Oura alkalmazásban maradnak
Withings Igen, a Health Mate-en keresztül Igen (Android Developers blog) Mérlegek, vérnyomásmérők, órák

Két gyakorlati következmény. Először is, az alkalmazásod attól függ, hogy az illető bekapcsolta-e a megosztást a gyártói alkalmazásban; az onboardingnak ezt jeleznie kell. Másodszor, az egészségügyi tároló két forrásból (telefon és óra) is tartalmazhatja ugyanazokat a lépéseket; olvasd el a tároló saját napi összesítését a minták összeadása helyett, mert az Apple Health és a Health Connect már automatikusan eltávolítja az átfedő forrásokat.

Leképezési táblázat: egészségtároló típusa → FHIR Observation

Az Anpheros Daily által használt kódok, amikor viselhető eszközök adatait FHIR rekordba írja:

Metrika Apple HealthKit Health Connect LOINC UCUM egység Kategória
Pulzus heartRate HeartRateRecord 8867-4 /min vital-signs
Nyugalmi pulzus restingHeartRate RestingHeartRateRecord 40443-4 /min vital-signs
Pulzusszám-variabilitás heartRateVariabilitySDNN HeartRateVariabilityRmssdRecord 80404-7 (csak SDNN) ms vital-signs
Véroxigén (SpO₂) oxygenSaturation OxygenSaturationRecord 59408-5 % vital-signs
Légzésszám respiratoryRate RespiratoryRateRecord 9279-1 /min vital-signs
Lépésszám naponta stepCount StepsRecord 41950-7 {steps} activity
Aktív energia activeEnergyBurned ActiveCaloriesBurnedRecord 41981-2 kcal activity
Alvás időtartama sleepAnalysis (kategória) SleepSessionRecord 93832-4; szakaszok 93831-6 mély, 93830-8 könnyű, 93829-0 REM min activity
Testtömeg bodyMass 29463-7 WeightRecord kg vital-signs
Vérnyomás bloodPressure (korreláció) BloodPressureRecord 85354-9 8480-6 és 8462-4 értékekkel mm[Hg] vital-signs
Vércukor (mérőeszköz) bloodGlucose BloodGlucoseRecord 2339-0 mg/dL vital-signs
Testhőmérséklet bodyTemperature BodyTemperatureRecord 8310-5 Cel vital-signs

Figyelje meg a pulzusszám-variabilitás sort: az Apple Health az SDNN-t tárolja, a Health Connect pedig az RMSSD-t. Ezek különböző statisztikák, és nem írhatók ugyanaz alá a kód alá. A LOINC 80404-7 az SDNN; az RMSSD esetében az Anpheros Daily saját kódrendszerét használja ahelyett, hogy azt színlelné, hogy a kettő ugyanaz.

Összegzések, nem minden minta

Egy okosóra naponta több ezer pulzusmintát rögzít. Egy orvosi dokumentumhoz viszont olyan információra van szükség, amit egy ember vagy egy orvos el tud olvasni:

Napi pulzusösszegzés FHIR R4 formátumban (ez átmegy a FHIR R4 validátoron):

{
  "resourceType": "Observation",
  "status": "final",
  "identifier": [{"system": "https://your-app.test/fhir/sid/daily-wearable", "value": "p-123:2026-10-01:heart_rate"}],
  "category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "vital-signs"}]}],
  "code": {"coding": [{"system": "http://loinc.org", "code": "8867-4", "display": "Heart rate"}]},
  "subject": {"reference": "Patient/p-123"},
  "effectivePeriod": {"start": "2026-10-01T00:00:00-04:00", "end": "2026-10-02T00:00:00-04:00"},
  "valueQuantity": {"value": 71.4, "unit": "/min", "system": "http://unitsofmeasure.org", "code": "/min"},
  "component": [
    {"code": {"text": "minimum"}, "valueQuantity": {"value": 52, "unit": "/min", "system": "http://unitsofmeasure.org", "code": "/min"}},
    {"code": {"text": "maximum"}, "valueQuantity": {"value": 138, "unit": "/min", "system": "http://unitsofmeasure.org", "code": "/min"}}
  ],
  "device": {"display": "Apple Watch (via Apple Health)"}
}

Napi értékek írása ismétlődések nélkül

A telefonok naponta többször szinkronizálnak, és a nap utolsó értéke éjfélig változik. Minden Observation-nek adjon egy stabil azonosítót – személy, nap, metrika – és frissítse azt az új létrehozása helyett. Az Anpheros TypeScript SDK használatával, a backend-en:

import { Anpheros, apiKey } from '@anpheros/sdk';

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });

// What the phone sends: one value per metric per local day
type DailyValue = { metric: 'heart_rate' | 'steps'; day: string; value: number; min?: number; max?: number };

const CODES = {
  heart_rate: { code: '8867-4', display: 'Heart rate', unit: '/min', category: 'vital-signs' },
  steps: { code: '41950-7', display: 'Number of steps in 24 hour Measured', unit: '{steps}', category: 'activity' },
} as const;

// One Observation per person, metric and day: re-sending a day updates it instead of adding a copy.
async function upsertDaily(patientId: string, v: DailyValue, source: string) {
  const c = CODES[v.metric];
  const identifier = { system: 'https://your-app.test/fhir/sid/daily-wearable', value: `${patientId}:${v.day}:${v.metric}` };
  const resource: any = {
    resourceType: 'Observation', status: 'final',
    identifier: [identifier],
    category: [{ coding: [{ system: 'http://terminology.hl7.org/CodeSystem/observation-category', code: c.category }] }],
    code: { coding: [{ system: 'http://loinc.org', code: c.code, display: c.display }] },
    subject: { reference: `Patient/${patientId}` },
    effectivePeriod: { start: `${v.day}T00:00:00Z`, end: `${v.day}T23:59:59Z` },
    valueQuantity: { value: v.value, unit: c.unit, system: 'http://unitsofmeasure.org', code: c.unit },
  };
  if (v.min !== undefined && v.max !== undefined) {
    resource.component = [
      { code: { text: 'minimum' }, valueQuantity: { value: v.min, unit: c.unit, system: 'http://unitsofmeasure.org', code: c.unit } },
      { code: { text: 'maximum' }, valueQuantity: { value: v.max, unit: c.unit, system: 'http://unitsofmeasure.org', code: c.unit } },
    ];
  }
  const found = await anpheros.fhir.search('Observation', { identifier: `${identifier.system}|${identifier.value}` });
  const existing = found.entry?.[0]?.resource;
  return existing
    ? anpheros.fhir.update({ ...resource, id: existing.id }, { author_type: 'device' })
    : anpheros.fhir.create(resource, { author_type: 'device', source_system: source });
}

A platform helyi példányán futtatva egy sandbox kulccsal, két napi érték, majd a nap azonos lépéseinek későbbi szinkronizálása két Observation-t eredményezett, a lépések pedig a 2-es verzióban az új értékkel és a v1 device apple-health · v2 device származási adattal. A történet megőrzi a korábbi értéket, és minden olvasó láthatja, hogy az adatok eszközről származnak, nem pedig egy orvostól.

Éles környezetben használja a valós nap határokat a személy időzónájában (a fenti példa rövidség kedvéért UTC-t használ), ahogy azt a platform oldalain található HealthKit és Health Connect kód is teszi.

Olvasás telefonról

Betartandó szabályok

Mit csinál és mit nem csinál az Anpheros

Az Anpheros Platform önmagában nem csatlakozik az Apple Healthhez, a Health Connecthez vagy bármely gyártói felhőhöz: az Ön alkalmazása leolvassa az adatokat a telefonról, és az API-n keresztül írja azokat. Az Anpheros saját alkalmazása, az Anpheros Daily, pontosan ezt teszi: leolvassa az Apple Health-et iPhone-on és a Health Connect-et Androidon, napi összefoglalókat készít, és azokat a személy FHIR rekordjába írja a fenti kódokkal. Az eszközök csatlakoztatása a Plus és Max csomagok részét képezi.

Gyakran ismételt kérdések

Hogyan vihetek Apple Watch adatokat FHIR szerverre?

Olvassa be az iPhone-on az Apple Health-ből a HealthKit segítségével (nincs szerver API), naponta összesítse, és a backend írja meg az egyes mérőszámokat egy Observation-ként LOINC kóddal és UCUM egységgel, eszközadatként megjelölve.

Van felhő API a Health Connect vagy az Apple Health számára?

Nem. Mindkettő az adatok telefonon tartja; a telefonra telepített alkalmazás az ember engedélyével olvassa be. A gyártók felhői, mint a Garmin, Fitbit vagy Oura, saját API-kkal rendelkeznek, de a telefon egészségügyi tárolójának olvasása egy integrációval lefedi a legtöbbet.

Melyik LOINC kódot használjam a lépésekhez?

41950-7, "Number of steps in 24 hour Measured", napi effectivePeriod-el. Pulzushoz használja a 8867-4-et, SpO₂-hoz az 59408-5-öt, alvásidőtartamhoz a 93832-4-et.

Tároljak minden pulzusmintát FHIR-ben?

Általában nem. A napi összefoglaló átlaggal, minimummal és maximummal az, amit egy ember vagy orvos olvas; az egyedi mérések csak akkor tartoznak a rekordba, ha önmagukban is számítanak, mint például egy szabálytalan ritmusú esemény.

Használhatok egy kódot az HRV-hez az Apple Health és a Health Connect esetében?

Nem. Az Apple Health SDNN-t jelent, a Health Connect pedig RMSSD-t; különböző dolgokat mérnek és különböző kódokat igényelnek.

Kapcsolódó tartalmak

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