Health Metrics - Format Ekspor JSON

Dokumentasi struktur Health Metrics dalam ekspor JSON

Last updated: March 31, 2026

Di halaman ini

Health Metrics

Health metrics mewakili berbagai pengukuran dan titik data yang dikumpulkan oleh aplikasi Apple Health serta perangkat terhubung. Dalam ekspor JSON, semua health metrics disimpan di dalam array metrics.

Format Nama Metrik

Seluruh nama metrik pada ekspor JSON menggunakan format snake_case (huruf kecil dengan garis bawah). Contoh:

  • "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 di mana masing-masing mewakili satu jenis metrik kesehatan. Sebagian besar metrik mengikuti struktur umum berikut:

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

Field Umum

  • name (String): Nama metrik kesehatan dalam format snake_case (misal "step_count", "heart_rate", "active_energy")
  • units (String): Satuan pengukuran (misal "count", "bpm", "kcal")
  • data (Array): Daftar titik data dengan isi:
    • qty (Number): Nilai kuantitas
    • date (Date): Stempel waktu dengan format yyyy-MM-dd HH:mm:ss Z

Format Khusus

Beberapa metrik memiliki struktur berbeda dari format umum:

Blood Pressure

Pembacaan tekanan darah menyertakan nilai sistolik dan diastolik:

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

Field:

  • systolic (Number): Nilai sistolik (angka atas)
  • diastolic (Number): Nilai diastolik (angka bawah)

Heart Rate

Data detak jantung berisi nilai minimum, rata-rata, dan maksimum:

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

Field:

  • Min (Number): Detak jantung terendah selama periode pengukuran
  • Avg (Number): Detak jantung rata-rata
  • Max (Number): Detak jantung tertinggi

Sleep Analysis

Struktur data tidur berbeda tergantung apakah agregasi data diaktifkan pada pengaturan ekspor.

Data Tidur Teragregasi

Jika agregasi aktif, data tidur diringkas per hari:

{
  "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"
    }
  ]
}

Field:

  • totalSleep (Number): Total waktu tidur (jam)
  • asleep (Number): Total waktu dalam keadaan tidur
  • core (Number): Durasi tidur inti
  • deep (Number): Durasi tidur dalam
  • rem (Number): Durasi tidur REM
  • sleepStart (Date): Waktu mulai tidur
  • sleepEnd (Date): Waktu selesai tidur
  • inBed (Number): Total waktu di tempat tidur (jam)
  • inBedStart (Date): Waktu mulai berbaring
  • inBedEnd (Date): Waktu bangun dari tempat tidur

Data Tidur Tidak Teragregasi

Jika agregasi dinonaktifkan, tiap segmen tidur disertakan:

{
  "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"
    }
  ]
}

Field:

  • startDate (Date): Waktu mulai segmen tidur
  • endDate (Date): Waktu akhir segmen tidur
  • qty (Number): Durasi segmen dalam jam
  • value (String): Status tidur, salah satu dari:
    • "Awake"
    • "Asleep" (fase tidur tanpa kategori)
    • "In Bed"
    • "Core"
    • "REM"
    • "Deep"
    • "Unspecified"

Catatan: "Asleep" merujuk pada fase tidur umum (bukan total tidur). Hal ini terjadi jika sumber data tidak mendukung pelacakan fase tidur.

Blood Glucose

Pembacaan gula darah menyertakan informasi waktu makan:

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

Field:

  • qty (Number): Kadar gula darah
  • mealTime (String): Salah satu dari:
    • "Before Meal"
    • "After Meal"
    • "Unspecified"

Sexual Activity

Catatan aktivitas seksual melacak penggunaan proteksi:

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

Field:

  • Unspecified (Number): Jumlah kejadian tanpa informasi proteksi
  • Protection Used (Number): Jumlah kejadian dengan proteksi
  • Protection Not Used (Number): Jumlah kejadian tanpa proteksi

Handwashing

Event mencuci tangan mencatat status penyelesaian:

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

Field:

  • qty (Number): Jumlah sesi cuci tangan
  • value (String): "Complete" atau "Incomplete"

Toothbrushing

Event menyikat gigi juga melacak status selesai:

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

Field:

  • qty (Number): Jumlah sesi menyikat gigi
  • value (String): "Complete" atau "Incomplete"

Insulin Delivery

Catatan pemberian insulin menyertakan alasan pemberian:

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

Field:

  • qty (Number): Jumlah insulin yang diberikan
  • reason (String): "Bolus" (insulin saat makan) atau "Basal" (insulin latar)

Metrik Umum

Contoh metrik yang sering diekspor (nama menggunakan snake_case):

  • step_count - Jumlah langkah harian
  • walking_running_distance - Jarak tempuh
  • active_energy - Kalori yang dibakar melalui aktivitas
  • resting_heart_rate - Detak jantung saat istirahat
  • heart_rate - Pengukuran detak jantung
  • respiratory_rate - Laju pernapasan
  • body_temperature - Suhu tubuh
  • blood_oxygen_saturation - Tingkat SpO2
  • weight_&_body_mass - Berat badan
  • body_mass_index - Nilai BMI
  • height - Tinggi badan
  • dietary_water - Konsumsi cairan
  • mindful_minutes - Waktu meditasi atau mindfulness

Tips

  • Time Grouping: Gunakan pengaturan time grouping pada konfigurasi ekspor untuk menentukan cara agregasi data (detik, menit, jam, hari, dll.)
  • Data Aggregation: Aktifkan agregasi data untuk merangkum tidur dan metrik lain per hari agar lebih mudah dianalisis
  • Selective Export: Pilih metrik tertentu saja untuk mengurangi ukuran file dan waktu pemrosesan

Dokumentasi Terkait