Metrik kesihatan — format eksport JSON

Dokumentasi untuk struktur metrik kesihatan dalam eksport JSON

Last updated: April 5, 2026

Pada halaman ini

Metrik kesihatan

Metrik kesihatan mewakili pelbagai ukuran dan titik data yang dikumpul oleh apl Apple Health anda dan peranti disambungkan. Dalam eksport JSON, metrik kesihatan disimpan dalam tatasusunan metrics.

Format nama metrik

Semua nama metrik dalam eksport JSON menggunakan format snake_case (huruf kecil dengan garis bawah). Contohnya:

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

Struktur

Tatasusunan metrics mengandungi objek, setiap satu mewakili jenis metrik kesihatan tertentu. Kebanyakan metrik kesihatan mengikut struktur biasa:

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

Medan biasa

  • name (Rentetan): Nama metrik kesihatan dalam format snake_case (cth. "step_count", "heart_rate", "active_energy")
  • units (Rentetan): Unit ukuran (cth. "count", "bpm", "kcal")
  • data (Tatasusunan): Tatasusunan titik data, setiap satu mengandungi:
    • qty (Nombor): Nilai kuantiti
    • date (Tarikh): Cap masa dalam format yyyy-MM-dd HH:mm:ss Z

Format metrik khas

Sesetengah metrik kesihatan mempunyai struktur unik yang berbeza daripada format biasa:

Tekanan darah

Bacaan tekanan darah merangkumi nilai sistolik dan diastolik:

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

Medan:

  • systolic (Nombor): Bacaan tekanan darah sistolik (atas)
  • diastolic (Nombor): Bacaan tekanan darah diastolik (bawah)

Kadar denyutan jantung

Data kadar denyutan jantung merangkumi nilai minimum, purata dan maksimum:

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

Medan:

  • Min (Nombor): Kadar denyutan jantung minimum semasa tempoh ukuran
  • Avg (Nombor): Kadar denyutan jantung purata semasa tempoh ukuran
  • Max (Nombor): Kadar denyutan jantung maksimum semasa tempoh ukuran

Analisis tidur

Struktur data tidur berbeza bergantung pada sama ada pengagregatan data didayakan dalam tetapan eksport anda.

Data tidur diagregat

Apabila pengagregatan didayakan, data tidur diringkaskan mengikut 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"
    }
  ]
}

Medan:

  • totalSleep (Nombor): Jumlah masa tidur dalam jam
  • asleep (Nombor): Jumlah masa dalam mana-mana keadaan tidur
  • core (Nombor): Tempoh tidur teras dalam jam
  • deep (Nombor): Tempoh tidur nyenyak dalam jam
  • rem (Nombor): Tempoh tidur REM dalam jam
  • sleepStart (Tarikh): Bila tidur sebenarnya bermula
  • sleepEnd (Tarikh): Bila tidur sebenarnya tamat
  • inBed (Nombor): Jumlah masa dalam katil dalam jam
  • inBedStart (Tarikh): Bila anda masuk katil
  • inBedEnd (Tarikh): Bila anda keluar katil

Data tidur tidak diagregat

Apabila pengagregatan dilumpuhkan, segmen tidur individu 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"
    }
  ]
}

Medan:

  • startDate (Tarikh): Masa mula segmen tidur
  • endDate (Tarikh): Masa tamat segmen tidur
  • qty (Nombor): Tempoh segmen dalam jam
  • value (Rentetan): Keadaan tidur — salah satu daripada:
    • "Awake"
    • "Asleep" (fasa tidur tidak dikategorikan)
    • "In Bed"
    • "Core"
    • "REM"
    • "Deep"
    • "Unspecified"

Nota: "Asleep" merujuk kepada fasa tidur tidak dikategorikan (bukan jumlah masa tidur). Ini mungkin berlaku jika sumber data tidak menyokong penjejakan fasa tidur.

Glukosa darah

Bacaan glukosa darah merangkumi maklumat masa makan:

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

Medan:

  • qty (Nombor): Tahap glukosa darah
  • mealTime (Rentetan): Salah satu daripada:
    • "Before Meal"
    • "After Meal"
    • "Unspecified"

Aktiviti seksual

Entri aktiviti seksual menjejak penggunaan perlindungan:

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

Medan:

  • Unspecified (Nombor): Kiraan apabila status perlindungan tidak diketahui
  • Protection Used (Nombor): Kiraan apabila perlindungan digunakan
  • Protection Not Used (Nombor): Kiraan apabila perlindungan tidak digunakan

Basuh tangan

Peristiwa basuh tangan menjejak status penyiapan:

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

Medan:

  • qty (Nombor): Bilangan peristiwa basuh tangan
  • value (Rentetan): Salah satu daripada:
    • "Complete"
    • "Incomplete"

Gosok gigi

Peristiwa gosok gigi menjejak status penyiapan:

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

Medan:

  • qty (Nombor): Bilangan peristiwa gosok gigi
  • value (Rentetan): Salah satu daripada:
    • "Complete"
    • "Incomplete"

Pemberian insulin

Entri pemberian insulin merangkumi sebab pemberian:

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

Medan:

  • qty (Nombor): Jumlah insulin dibekalkan
  • reason (Rentetan): Salah satu daripada:
    • "Bolus" (insulin waktu makan)
    • "Basal" (insulin latar belakang)

Metrik kesihatan biasa

Sesetengah metrik kesihatan yang kerap dieksport termasuk (semua nama metrik dalam format snake_case):

  • step_count — Kiraan langkah harian
  • walking_running_distance — Jarak diliputi
  • active_energy — Kalori terbakar melalui aktiviti
  • resting_heart_rate — Kadar denyutan jantung semasa rehat
  • heart_rate — Ukuran kadar denyutan jantung
  • respiratory_rate — Kadar pernafasan
  • body_temperature — Bacaan suhu badan
  • blood_oxygen_saturation — Tahap SpO₂
  • weight_&_body_mass — Ukuran berat badan
  • body_mass_index — Nilai BMI dikira
  • height — Ukuran ketinggian
  • dietary_water — Pengambilan cecair
  • mindful_minutes — Masa meditasi atau sedar

Petua

  • Pengumpulan masa: Gunakan tetapan pengumpulan masa dalam konfigurasi eksport anda untuk mengawal cara data diagregat (mengikut saat, minit, jam, hari, dll.)
  • Pengagregatan data: Dayakan pengagregatan data untuk meringkaskan tidur dan metrik lain mengikut hari untuk analisis lebih mudah
  • Eksport terpilih: Anda boleh memilih metrik kesihatan tertentu untuk disertakan dalam eksport anda untuk mengurangkan saiz fail dan masa pemprosesan

Dokumentasi berkaitan