Metrik Kesehatan - Format ekspor JSON
Dokumentasi untuk struktur metrik kesehatan dalam ekspor JSON
Terakhir diperbarui: 31 Oktober 2026
Di halaman ini
Ekspor JSON menyimpan metrik kesehatan di array metrics.
Format Nama Metrik
Semua nama metrik dalam ekspor JSON menggunakan format snake_case (huruf kecil dengan garis bawah). Misalnya:
- "Step Count" menjadi
"step_count" - "Blood Pressure" menjadi
"blood_pressure" - "Heart Rate" menjadi
"heart_rate" - "Walking + Running Distance" menjadi
"walking_running_distance"
Struktur
Array metrics berisi objek, masing-masing mewakili jenis metrik kesehatan tertentu. Sebagian besar metrik kesehatan mengikuti struktur umum:
{
"name": "step_count",
"units": "count",
"data": [
{
"qty": 8500,
"date": "2024-02-06 14:30:00 -0800",
"source": "Apple Watch"
}
]
}
Bidang umum
name(String): Nama metrik kesehatan dalam format snake_case (mis. "step_count", "heart_rate", "active_energy")units(String): Satuan pengukuran (mis. "count", "count/min", "kcal")data(Array): Array titik data, masing-masing berisi:qty(Number): Nilai kuantitasdate(Date): Stempel waktu dalam formatyyyy-MM-dd HH:mm:ss Zsource(String, jika tersedia): Aplikasi atau perangkat yang merekam sampel
Format Metrik Khusus
Beberapa metrik kesehatan memiliki struktur unik yang berbeda dari format umum:
Tekanan Darah
Pembacaan tekanan darah mencakup nilai sistolik dan diastolik:
{
"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"
}
]
}
Bidang:
systolic(Number): Pembacaan tekanan darah sistolik (atas). Ekspor yang diringkas menggunakan rata-rata pembacaan dalam kelompok waktu.diastolic(Number): Pembacaan tekanan darah diastolik (bawah). Ekspor yang diringkas menggunakan rata-rata pembacaan dalam kelompok waktu.
Denyut Jantung
Data denyut jantung mencakup nilai minimum, rata-rata, dan maksimum:
{
"name": "heart_rate",
"units": "count/min",
"data": [
{
"date": "2024-02-06 14:30:00 -0800",
"Min": 65,
"Avg": 72,
"Max": 85,
"source": "Apple Watch"
}
]
}
Bidang:
Min(Number): Denyut jantung minimum selama periode pengukuranAvg(Number): Denyut jantung rata-rata selama periode pengukuranMax(Number): Denyut jantung maksimum selama periode pengukuran
Variabilitas Denyut Jantung
Saat Ringkas Data nonaktif, ekspor JSON Variabilitas Denyut Jantung (SDNN) dapat mencakup pembacaan denyut-ke-denyut yang tersedia. Ini memerlukan akses pembacaan Seri Detak Jantung di Apple Health.
Ekspor yang diringkas, ekspor CSV, dan Recovery HRV tidak mencakup pembacaan denyut-ke-denyut.
Analisis Tidur
Struktur data tidur bergantung pada apakah Ringkas Data aktif atau nonaktif.
Ringkas Data Aktif
Saat Ringkas Data aktif, data tidur diringkas menurut hari. Durasi dalam tahap yang sama dijumlahkan. Total tidur adalah jumlah asleep, core, deep, dan REM. JSON mempertahankan setiap hari. Di CSV, kelompok waktu yang lebih kasar menampilkan hari terbaru dalam kelompok tersebut:
{
"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"
}
]
}
Bidang:
totalSleep(Number): Total durasi tidur dalam jamasleep(Number): Waktu tidur tanpa tahap tidur yang tercatat, dalam jamcore(Number): Durasi tidur core dalam jamdeep(Number): Durasi tidur dalam dalam jamrem(Number): Durasi tidur REM dalam jamawake(Number): Durasi terjaga dalam jamsleepStart(Date): Saat tidur benar-benar dimulaisleepEnd(Date): Saat tidur benar-benar berakhirinBed(Number): Total waktu di tempat tidur dalam jaminBedStart(Date): Saat Anda masuk ke tempat tidurinBedEnd(Date): Saat Anda keluar dari tempat tidur
Ringkas Data Nonaktif
Saat Ringkas Data nonaktif, segmen tidur individual disertakan:
{
"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"
}
]
}
Bidang:
date,start,startDate(Date): Waktu mulai segmen tidurend,endDate(Date): Waktu akhir segmen tidursource(String): Aplikasi atau perangkat yang merekam segmenqty(Number): Durasi segmen dalam jamvalue(String): Status tidur - salah satu dari:"Awake""Asleep"(tahap tidur yang tidak dikategorikan)"In Bed""Core""REM""Deep""Unspecified"
Catatan: "Asleep" merujuk pada tahap tidur yang tidak dikategorikan (bukan total durasi tidur). Ini dapat terjadi jika sumber data tidak mendukung pelacakan tahap tidur.
Gula Darah
Pembacaan gula darah mencakup informasi waktu makan:
{
"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"
}
]
}
Bidang:
qty(Number): Tingkat gula darahmealTime(String): Salah satu dari:"Before Meal""After Meal""Unspecified"
Nutrisi
Saat Ringkas Data nonaktif, sampel kuantitas nutrisi individual (misalnya Dietary Energy atau Carbohydrates) dapat mencakup detail makanan yang direkam di Apple Health. Misalnya:
{
"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"
}
]
}
Bidang:
qty(Number): Jumlah nutrisi untuk sampelfoodType(String, opsional): Nama makanan yang direkam aplikasi sumber jika tersedia
Saat Ringkas Data aktif, total nutrisi tidak mencakup foodType.
Aktivitas Seksual
Entri aktivitas seksual melacak penggunaan perlindungan:
{
"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"
}
]
}
Bidang:
Unspecified(Number): Jumlah peristiwa hari itu saat status perlindungan tidak diketahuiProtection Used(Number): Jumlah peristiwa hari itu saat perlindungan digunakanProtection Not Used(Number): Jumlah peristiwa hari itu saat perlindungan tidak digunakan
Ekspor yang diringkas menghitung setiap hari kalender. JSON mempertahankan setiap hari. Di CSV, kelompok waktu yang lebih kasar menampilkan hari terbaru dalam kelompok tersebut.
Mencuci Tangan
Peristiwa mencuci tangan melacak status penyelesaian:
{
"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"
}
]
}
Bidang:
qty(Number): Durasi dalam detik. Ekspor yang diringkas menggunakan durasi rata-rata dalam kelompok waktu.value(String):"Completed"saat sesi berlangsung lebih dari 20 detik, jika tidak"Incomplete"
Menggosok Gigi
Peristiwa menggosok gigi melacak status penyelesaian:
{
"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"
}
]
}
Bidang:
qty(Number): Durasi dalam detik. Ekspor yang diringkas menggunakan durasi rata-rata dalam kelompok waktu.value(String):"Completed"saat sesi berlangsung setidaknya 2 menit, jika tidak"Incomplete"
Pemberian Insulin
Entri pemberian insulin mencakup alasan pemberian:
{
"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"
}
]
}
Bidang:
qty(Number): Jumlah insulin yang diberikan. Ekspor yang diringkas menjumlahkan jumlah dalam kelompok waktu.reason(String): Salah satu dari:"Bolus"(insulin makan)"Basal"(insulin basal)