Ohjekeskus HealthyApps
Suomi
Ohjekeskus
Pääsivusto ↗

Hae ohjeaiheita

Terveysmittarit - JSON-vientimuoto

Dokumentaatio terveysmittarien rakenteesta JSON-vienneissä

Päivitetty viimeksi: 31. lokakuuta 2026

Tällä sivulla
Mittarin nimen muoto
Rakenne Rakenne Yhteiset kentät
Erityiset mittarimuodot Erityiset mittarimuodot VerenpaineSykeSykkeen vaihteluUnianalyysiVerensokeriRavitsemusSeksuaalinen aktiivisuusKäsienpesuHampaiden harjausInsuliinin annostelu
Aiheeseen liittyvä dokumentaatio

JSON-viennit tallentavat terveysmittarit taulukkoon metrics.

Mittarin nimen muoto

Kaikki mittarien nimet JSON-vienneissä käyttävät muotoa snake_case (pienet kirjaimet alaviivoilla). Esimerkiksi:

  • "Step Count" muuttuu muotoon "step_count"
  • "Blood Pressure" muuttuu muotoon "blood_pressure"
  • "Heart Rate" muuttuu muotoon "heart_rate"
  • "Walking + Running Distance" muuttuu muotoon "walking_running_distance"

Rakenne

Taulukko metrics sisältää objekteja, joista kukin edustaa tiettyä terveysmittarityyppiä. Useimmat terveysmittarit noudattavat yhteistä rakennetta:

{
  "name": "step_count",
  "units": "count",
  "data": [
    {
      "qty": 8500,
      "date": "2024-02-06 14:30:00 -0800",
      "source": "Apple Watch"
    }
  ]
}

Yhteiset kentät

  • name (String): Terveysmittarin nimi snake_case-muodossa (esim. "step_count", "heart_rate", "active_energy")
  • units (String): Mittayksikkö (esim. "count", "count/min", "kcal")
  • data (Array): Datapisteiden taulukko, joista kukin sisältää:
    • qty (Number): Määräarvo
    • date (Date): Aikaleima muodossa yyyy-MM-dd HH:mm:ss Z
    • source (String, kun saatavilla): Näytteen tallentanut sovellus tai laite

Erityiset mittarimuodot

Joillakin terveysmittareilla on ainutlaatuisia rakenteita, jotka poikkeavat yhteisestä muodosta:

Verenpaine

Verenpainelukemat sisältävät sekä systoliset että diastoliset arvot:

{
  "name": "blood_pressure",
  "units": "mmHg",
  "data": [
    {
      "date": "2024-02-06 14:30:00 -0800",
      "start": "2024-02-06 14:30:00 -0800",
      "end": "2024-02-06 14:30:00 -0800",
      "systolic": 120,
      "diastolic": 80,
      "source": "Health"
    }
  ]
}

Kentät:

  • systolic (Number): Systolinen (ylä) verenpainelukema. Tiivistetyt viennit käyttävät aikaryhmän lukemien keskiarvoa.
  • diastolic (Number): Diastolinen (ala) verenpainelukema. Tiivistetyt viennit käyttävät aikaryhmän lukemien keskiarvoa.

Syke

Syketiedot sisältävät vähimmäis-, keski- ja enimmäisarvot:

{
  "name": "heart_rate",
  "units": "count/min",
  "data": [
    {
      "date": "2024-02-06 14:30:00 -0800",
      "Min": 65,
      "Avg": 72,
      "Max": 85,
      "source": "Apple Watch"
    }
  ]
}

Kentät:

  • Min (Number): Vähimmäissyke mittausjakson aikana
  • Avg (Number): Keskimääräinen syke mittausjakson aikana
  • Max (Number): Enimmäissyke mittausjakson aikana

Sykkeen vaihtelu

Kun Tiivistä tiedot on pois päältä, Sykkeen vaihtelun (SDNN) JSON-viennit voivat sisältää käytettävissä olevia beat-to-beat -lukemia. Ne edellyttävät Sydämenlyöntisarja -lukuoikeutta Apple Healthissa.

Tiivistetyt viennit, CSV-viennit ja Recovery HRV eivät sisällä beat-to-beat -lukemia.

Unianalyysi

Unitietojen rakenne riippuu siitä, onko Tiivistä tiedot päällä vai pois.

Tiivistä tiedot päällä

Kun Tiivistä tiedot on päällä, unitiedot tiivistetään päivittäin. Saman vaiheen kestot lasketaan yhteen. Kokonaisuni on asleep-, core-, deep- ja REM-summa. JSON säilyttää jokaisen päivän. CSV:ssä karkeampi aikaryhmä näyttää ryhmän uusimman päivän:

{
  "name": "sleep_analysis",
  "units": "hr",
  "data": [
    {
      "date": "2024-02-06 00:00:00 -0800",
      "totalSleep": 7.5,
      "asleep": 0.5,
      "core": 3.5,
      "deep": 1.5,
      "rem": 2.0,
      "sleepStart": "2024-02-05 23:00:00 -0800",
      "sleepEnd": "2024-02-06 06:30:00 -0800",
      "inBed": 8.0,
      "inBedStart": "2024-02-05 22:45:00 -0800",
      "inBedEnd": "2024-02-06 06:45:00 -0800",
      "awake": 0.0,
      "source": "Apple Watch"
    }
  ]
}

Kentät:

  • totalSleep (Number): Kokonaisuniaika tunteina
  • asleep (Number): Uni ilman tallennettua univaihetta, tunteina
  • core (Number): Core-unen kesto tunteina
  • deep (Number): Syvän unen kesto tunteina
  • rem (Number): REM-unen kesto tunteina
  • awake (Number): Valvetila tunteina
  • sleepStart (Date): Milloin uni todella alkoi
  • sleepEnd (Date): Milloin uni todella päättyi
  • inBed (Number): Kokonaisaika sängyssä tunteina
  • inBedStart (Date): Milloin menit sänkyyn
  • inBedEnd (Date): Milloin nousit sängystä

Tiivistä tiedot pois päältä

Kun Tiivistä tiedot on pois päältä, yksittäiset unisegmentit sisällytetään:

{
  "name": "sleep_analysis",
  "units": "hr",
  "data": [
    {
      "date": "2024-02-05 23:00:00 -0800",
      "start": "2024-02-05 23:00:00 -0800",
      "end": "2024-02-05 23:30:00 -0800",
      "startDate": "2024-02-05 23:00:00 -0800",
      "endDate": "2024-02-05 23:30:00 -0800",
      "qty": 0.5,
      "value": "Core",
      "source": "Apple Watch"
    }
  ]
}

Kentät:

  • date, start, startDate (Date): Unisegmentin alkuaika
  • end, endDate (Date): Unisegmentin päättymisaika
  • source (String): Segmentin tallentanut sovellus tai laite
  • qty (Number): Segmentin kesto tunteina
  • value (String): Unen tila — yksi seuraavista:
    • "Awake"
    • "Asleep" (luokittelematon univaihe)
    • "In Bed"
    • "Core"
    • "REM"
    • "Deep"
    • "Unspecified"

Huomautus: "Asleep" tarkoittaa luokittelematonta univaihetta (ei kokonaisuniaikaa). Näin voi käydä, jos tietolähde ei tue univaiheiden seurantaa.

Verensokeri

Verensokerilukemat sisältävät aterioinnin ajoitustiedot:

{
  "name": "blood_glucose",
  "units": "mg/dL",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "start": "2024-02-06 08:00:00 -0800",
      "end": "2024-02-06 08:00:00 -0800",
      "qty": 95,
      "mealTime": "Before Meal",
      "source": "Health"
    }
  ]
}

Kentät:

  • qty (Number): Verensokeritaso
  • mealTime (String): Yksi seuraavista:
    • "Before Meal"
    • "After Meal"
    • "Unspecified"

Ravitsemus

Kun Tiivistä tiedot on pois päältä, yksittäiset ravitsemusmääränäytteet (esimerkiksi Dietary Energy tai Carbohydrates) voivat sisältää Apple Healthiin tallennettuja ruokailutietoja. Esimerkiksi:

{
  "name": "dietary_energy",
  "units": "kcal",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "start": "2024-02-06 08:00:00 -0800",
      "end": "2024-02-06 08:00:00 -0800",
      "qty": 240,
      "source": "Lose It!",
      "foodType": "Boneless, Skinless Grilled Chicken Breast"
    }
  ]
}

Kentät:

  • qty (Number): Ravintoaineen määrä näytteelle
  • foodType (String, valinnainen): Lähdesovelluksen tallentama ruoan nimi, kun saatavilla

Kun Tiivistä tiedot on päällä, ravitsemussummat eivät sisällä foodType-kenttää.

Seksuaalinen aktiivisuus

Seksuaalisen aktiivisuuden merkinnät seuraavat suojauksen käyttöä:

{
  "name": "sexual_activity",
  "units": "count",
  "data": [
    {
      "date": "2024-02-06 00:00:00 -0800",
      "Unspecified": 0,
      "Protection Used": 1,
      "Protection Not Used": 0,
      "source": "Health"
    }
  ]
}

Kentät:

  • Unspecified (Number): Tapahtumien määrä kyseisenä päivänä, kun suojauksen tila on tuntematon
  • Protection Used (Number): Tapahtumien määrä kyseisenä päivänä, kun suojausta käytettiin
  • Protection Not Used (Number): Tapahtumien määrä kyseisenä päivänä, kun suojausta ei käytetty

Tiivistetyt viennit laskevat jokaisen kalenteripäivän. JSON säilyttää jokaisen päivän. CSV:ssä karkeampi aikaryhmä näyttää ryhmän uusimman päivän.

Käsienpesu

Käsienpesutapahtumat seuraavat valmistumistilaa:

{
  "name": "handwashing",
  "units": "s",
  "data": [
    {
      "date": "2024-02-06 12:00:00 -0800",
      "start": "2024-02-06 12:00:00 -0800",
      "end": "2024-02-06 12:00:25 -0800",
      "qty": 25,
      "value": "Completed",
      "source": "Apple Watch"
    }
  ]
}

Kentät:

  • qty (Number): Kesto sekunteina. Tiivistetyt viennit käyttävät aikaryhmän keskimääräistä kestoa.
  • value (String): "Completed", kun istunto kestää yli 20 sekuntia, muuten "Incomplete"

Hampaiden harjaus

Hampaiden harjaustapahtumat seuraavat valmistumistilaa:

{
  "name": "toothbrushing",
  "units": "s",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "start": "2024-02-06 08:00:00 -0800",
      "end": "2024-02-06 08:02:10 -0800",
      "qty": 130,
      "value": "Completed",
      "source": "Health"
    }
  ]
}

Kentät:

  • qty (Number): Kesto sekunteina. Tiivistetyt viennit käyttävät aikaryhmän keskimääräistä kestoa.
  • value (String): "Completed", kun istunto kestää vähintään 2 minuuttia, muuten "Incomplete"

Insuliinin annostelu

Insuliinin annostelumerkinnät sisältävät annostelun syyn:

{
  "name": "insulin_delivery",
  "units": "IU",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "start": "2024-02-06 08:00:00 -0800",
      "end": "2024-02-06 08:00:00 -0800",
      "qty": 5,
      "reason": "Bolus",
      "source": "Health"
    }
  ]
}

Kentät:

  • qty (Number): Annetun insuliinin määrä. Tiivistetyt viennit laskevat aikaryhmän määrät yhteen.
  • reason (String): Yksi seuraavista:
    • "Bolus" (ateriainsuliini)
    • "Basal" (basaali-insuliini)

Aiheeseen liittyvä dokumentaatio