Metrici de sănătate - Format export JSON
Documentație pentru structura metricilor de sănătate în exporturile JSON
Ultima actualizare: 31 octombrie 2026
Pe această pagină
Exporturile JSON stochează metricile de sănătate în matricea metrics.
Formatul numelui metricii
Toate numele metricilor din exporturile JSON folosesc formatul snake_case (litere mici cu underscore). De exemplu:
- "Step Count" devine
"step_count" - "Blood Pressure" devine
"blood_pressure" - "Heart Rate" devine
"heart_rate" - "Walking + Running Distance" devine
"walking_running_distance"
Structură
Matricea metrics conține obiecte, fiecare reprezentând un tip specific de metrică de sănătate. Majoritatea metricilor de sănătate urmează o structură comună:
{
"name": "step_count",
"units": "count",
"data": [
{
"qty": 8500,
"date": "2024-02-06 14:30:00 -0800",
"source": "Apple Watch"
}
]
}
Câmpuri comune
name(String): Numele metricii de sănătate în format snake_case (de ex. "step_count", "heart_rate", "active_energy")units(String): Unitatea de măsură (de ex. "count", "count/min", "kcal")data(Array): O matrice de puncte de date, fiecare conținând:qty(Number): Valoarea cantitățiidate(Date): Timestamp în formatyyyy-MM-dd HH:mm:ss Zsource(String, când este disponibil): Aplicația sau dispozitivul care a înregistrat eșantionul
Formate speciale de metrici
Unele metrici de sănătate au structuri unice care diferă de formatul comun:
Tensiune arterială
Citirile de tensiune arterială includ atât valorile sistolice, cât și cele diastolice:
{
"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"
}
]
}
Câmpuri:
systolic(Number): Citirea tensiunii arteriale sistolice (superioară). Exporturile rezumate folosesc media citirilor din grupul temporal.diastolic(Number): Citirea tensiunii arteriale diastolice (inferioară). Exporturile rezumate folosesc media citirilor din grupul temporal.
Frecvență cardiacă
Datele de frecvență cardiacă includ valorile minimă, medie și maximă:
{
"name": "heart_rate",
"units": "count/min",
"data": [
{
"date": "2024-02-06 14:30:00 -0800",
"Min": 65,
"Avg": 72,
"Max": 85,
"source": "Apple Watch"
}
]
}
Câmpuri:
Min(Number): Frecvența cardiacă minimă în perioada de măsurareAvg(Number): Frecvența cardiacă medie în perioada de măsurareMax(Number): Frecvența cardiacă maximă în perioada de măsurare
Variabilitatea frecvenței cardiace
Cu Rezumați datele dezactivat, exporturile JSON ale Variabilității frecvenței cardiace (SDNN) pot include citiri beat-to-beat disponibile. Acestea necesită acces de citire Serie de bătăi ale inimii în Apple Health.
Exporturile rezumate, exporturile CSV și Recovery HRV nu includ citiri beat-to-beat.
Analiza somnului
Structura datelor de somn depinde de faptul dacă Rezumați datele este activat sau dezactivat.
Rezumați datele activat
Cu Rezumați datele activat, datele de somn sunt rezumate pe zi. Durațiile din aceeași etapă sunt adunate. Somnul total este asleep, core, deep și REM adunate. JSON păstrează fiecare zi. În CSV, un grup temporal mai grosier arată cea mai recentă zi din acel grup:
{
"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"
}
]
}
Câmpuri:
totalSleep(Number): Timpul total de somn în oreasleep(Number): Timpul de somn fără o etapă de somn înregistrată, în orecore(Number): Durata somnului core în oredeep(Number): Durata somnului profund în orerem(Number): Durata somnului REM în oreawake(Number): Timpul treaz în oresleepStart(Date): Când a început efectiv somnulsleepEnd(Date): Când s-a încheiat efectiv somnulinBed(Number): Timpul total în pat în oreinBedStart(Date): Când ați intrat în patinBedEnd(Date): Când ați ieșit din pat
Rezumați datele dezactivat
Cu Rezumați datele dezactivat, sunt incluse segmente individuale de somn:
{
"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"
}
]
}
Câmpuri:
date,start,startDate(Date): Ora de început a segmentului de somnend,endDate(Date): Ora de sfârșit a segmentului de somnsource(String): Aplicația sau dispozitivul care a înregistrat segmentulqty(Number): Durata segmentului în orevalue(String): Starea somnului - una dintre:"Awake""Asleep"(fază de somn necategorizată)"In Bed""Core""REM""Deep""Unspecified"
Notă: "Asleep" se referă la o fază de somn necategorizată (nu la timpul total de somn). Aceasta poate apărea dacă sursa de date nu suportă urmărirea fazelor de somn.
Glucoză din sânge
Citirile de glucoză din sânge includ informații despre momentul mesei:
{
"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"
}
]
}
Câmpuri:
qty(Number): Nivelul de glucoză din sângemealTime(String): Una dintre:"Before Meal""After Meal""Unspecified"
Nutriție
Când Rezumați datele este dezactivat, eșantioanele individuale de cantitate nutrițională (de exemplu Dietary Energy sau Carbohydrates) pot include detalii despre alimente înregistrate în Apple Health. De exemplu:
{
"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"
}
]
}
Câmpuri:
qty(Number): Cantitatea de nutrient pentru eșantionfoodType(String, opțional): Numele alimentului înregistrat de aplicația sursă, când este disponibil
Cu Rezumați datele activat, totalurile nutriționale nu includ foodType.
Activitate sexuală
Intrările de activitate sexuală urmăresc utilizarea protecției:
{
"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"
}
]
}
Câmpuri:
Unspecified(Number): Numărul de evenimente din acea zi când statusul protecției este necunoscutProtection Used(Number): Numărul de evenimente din acea zi când a fost folosită protecțiaProtection Not Used(Number): Numărul de evenimente din acea zi când nu a fost folosită protecția
Exporturile rezumate numără fiecare zi calendaristică. JSON păstrează fiecare zi. În CSV, un grup temporal mai grosier arată cea mai recentă zi din acel grup.
Spălarea mâinilor
Evenimentele de spălare a mâinilor urmăresc statusul de finalizare:
{
"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"
}
]
}
Câmpuri:
qty(Number): Durata în secunde. Exporturile rezumate folosesc durata medie din grupul temporal.value(String):"Completed"când sesiunea durează mai mult de 20 de secunde, altfel"Incomplete"
Spălatul pe dinți
Evenimentele de spălat pe dinți urmăresc statusul de finalizare:
{
"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"
}
]
}
Câmpuri:
qty(Number): Durata în secunde. Exporturile rezumate folosesc durata medie din grupul temporal.value(String):"Completed"când sesiunea durează cel puțin 2 minute, altfel"Incomplete"
Administrare insulină
Intrările de administrare a insulinei includ motivul administrării:
{
"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"
}
]
}
Câmpuri:
qty(Number): Cantitatea de insulină administrată. Exporturile rezumate adună cantitățile din grupul temporal.reason(String): Una dintre:"Bolus"(insulină la masă)"Basal"(insulină de fond)