Metrici de sănătate — format JSON de export

Documentație pentru structura metricilor de sănătate în exporturile JSON

Last updated: April 5, 2026

Pe această pagină

Metrici de sănătate

Metricile de sănătate reprezintă măsurătorile și punctele de date colectate de Apple Health și de dispozitivele conectate. În exporturile JSON, metricile sunt stocate în tabloul metrics.

Formatul numelor de metrici

Toate numele de metrici folosesc format snake_case (litere mici și underscore). Exemple:

  • „Step Count” devine "step_count"
  • „Blood Pressure” devine "blood_pressure"
  • „Heart Rate” devine "heart_rate"
  • „Walking + Running Distance” devine "walking_running_distance"

Structură

Tabloul metrics conține obiecte, fiecare reprezentând un tip de metrică. Majoritatea urmează o structură comună:

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

Câmpuri uzuale

  • name (String): numele metricii în snake_case (ex.: "step_count", "heart_rate", "active_energy")
  • units (String): unitatea de măsură (ex.: "count", "bpm", "kcal")
  • data (Array): puncte de date, fiecare cu:
    • qty (Number): valoarea numerică
    • date (Date): marcaj temporal, format yyyy-MM-dd HH:mm:ss Z

Formate speciale

Unele metrici au structuri diferite de formatul comun:

Tensiune arterială

Citirile includ valori sistolice și diastolice:

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

Câmpuri:

  • systolic (Number): valoarea sistolică (superioară)
  • diastolic (Number): valoarea diastolică (inferioară)

Puls (Heart Rate)

Datele includ minim, mediu și maxim:

{
  "name": "heart_rate",
  "units": "bpm",
  "data": [
    {
      "date": "2024-02-06 14:30:00 -0800",
      "Min": 65,
      "Avg": 72,
      "Max": 85
    }
  ]
}

Câmpuri:

  • Min (Number): puls minim în perioada măsurătorii
  • Avg (Number): puls mediu
  • Max (Number): puls maxim

Analiză somn

Structura variază după ce agregarea datelor este activată sau nu în setările de export.

Date de somn agregate

Când agregarea este activată, somnul este rezumat pe zi:

{
  "name": "sleep_analysis",
  "units": "hr",
  "data": [
    {
      "date": "2024-02-06",
      "totalSleep": 7.5,
      "asleep": 7.0,
      "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"
    }
  ]
}

Câmpuri:

  • totalSleep (Number): timp total de somn, în ore
  • asleep (Number): timp total în orice stare de somn
  • core (Number): durata somnului „core”, în ore
  • deep (Number): somn adânc, în ore
  • rem (Number): somn REM, în ore
  • sleepStart (Date): începutul somnului efectiv
  • sleepEnd (Date): sfârșitul somnului efectiv
  • inBed (Number): timp total în pat, în ore
  • inBedStart (Date): momentul intrării în pat
  • inBedEnd (Date): momentul ieșirii din pat

Date de somn neagregate

Când agregarea este dezactivată, apar segmente individuale de somn:

{
  "name": "sleep_analysis",
  "units": "hr",
  "data": [
    {
      "startDate": "2024-02-05 23:00:00 -0800",
      "endDate": "2024-02-05 23:30:00 -0800",
      "qty": 0.5,
      "value": "Core",
      "deep": 0.0,
      "rem": 0.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"
    }
  ]
}

Câmpuri:

  • startDate (Date): începutul segmentului de somn
  • endDate (Date): sfârșitul segmentului
  • qty (Number): durata segmentului, în ore
  • value (String): fază de somn — una dintre:
    • "Awake"
    • "Asleep" (fază necategorisită)
    • "In Bed"
    • "Core"
    • "REM"
    • "Deep"
    • "Unspecified"

Notă: "Asleep" desemnează o fază de somn necategorisită (nu neapărat timpul total de somn). Poate apărea dacă sursa nu suportă fazele de somn.

Glicemie

Citirile includ informații despre momentul mesei:

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

Câmpuri:

  • qty (Number): nivelul glicemiei
  • mealTime (String): una dintre:
    • "Before Meal"
    • "After Meal"
    • "Unspecified"

Activitate sexuală

Intrările urmăresc utilizarea protecției:

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

Câmpuri:

  • Unspecified (Number): număr când starea protecției este necunoscută
  • Protection Used (Number): când s-a folosit protecție
  • Protection Not Used (Number): când nu s-a folosit protecție

Spălat pe mâini

Evenimentele urmăresc starea finalizării:

{
  "name": "handwashing",
  "units": "count",
  "data": [
    {
      "date": "2024-02-06 12:00:00 -0800",
      "qty": 1,
      "value": "Complete"
    }
  ]
}

Câmpuri:

  • qty (Number): număr de evenimente de spălare pe mâini
  • value (String): una dintre:
    • "Complete"
    • "Incomplete"

Spălat pe dinți

Similar, evenimentele au stare de finalizare:

{
  "name": "toothbrushing",
  "units": "count",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "qty": 1,
      "value": "Complete"
    }
  ]
}

Câmpuri:

  • qty (Number): număr de evenimente de spălare pe dinți
  • value (String): una dintre:
    • "Complete"
    • "Incomplete"

Administrare insulină

Intrările includ motivul administrării:

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

Câmpuri:

  • qty (Number): cantitatea de insulină administrată
  • reason (String): una dintre:
    • "Bolus" (insulină legată de masă)
    • "Basal" (insulină de bază)

Metrici frecvent exportate

Exemple (toate numele rămân în snake_case):

  • step_count — pași zilnici
  • walking_running_distance — distanță parcursă
  • active_energy — calorii arse prin activitate
  • resting_heart_rate — puls în repaus
  • heart_rate — măsurători de puls
  • respiratory_rate — frecvență respiratorie
  • body_temperature — temperatură corporală
  • blood_oxygen_saturation — niveluri SpO₂
  • weight_&_body_mass — greutate corporală
  • body_mass_index — valori IMC
  • height — înălțime
  • dietary_water — consum de lichide
  • mindful_minutes — timp de meditație sau mindfulness

Sfaturi

  • Grupare temporală: setările de grupare controlează agregarea (pe secundă, minut, oră, zi etc.)
  • Agregare: activați agregarea pentru a rezuma somnul și alte metrici pe zi, pentru analize mai simple
  • Export selectiv: puteți alege metrici specifice pentru a reduce dimensiunea fișierului și timpul de procesare

Documentație conexă