Pusat bantuan HealthyApps
Bahasa Melayu
Pusat bantuan
Laman utama ↗

Cari topik bantuan

Metrik Kesihatan - Format Eksport JSON

Dokumentasi untuk struktur metrik kesihatan dalam eksport JSON

Kemas kini terakhir: 31 Oktober 2026

Pada halaman ini
Format Nama Metrik
Struktur Struktur Medan Lazim
Format Metrik Khas Format Metrik Khas Tekanan DarahKadar JantungKebolehubahan Kadar JantungAnalisis TidurGlukosa DarahPemakananAktiviti SeksualMencuci TanganMenggosok GigiPenghantaran Insulin
Dokumentasi Berkaitan

Eksport JSON menyimpan metrik kesihatan 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 mengikuti struktur umum:

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

Medan Lazim

  • name (String): Nama metrik kesihatan dalam format snake_case (cth. "step_count", "heart_rate", "active_energy")
  • units (String): Unit ukuran (cth. "count", "count/min", "kcal")
  • data (Array): Tatasusunan titik data, setiap satu mengandungi:
    • qty (Number): Nilai kuantiti
    • date (Date): Cap masa dalam format yyyy-MM-dd HH:mm:ss Z
    • source (String, apabila tersedia): Aplikasi atau peranti yang merakam sampel

Format Metrik Khas

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

Tekanan Darah

Bacaan tekanan darah termasuk 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"
    }
  ]
}

Medan:

  • systolic (Number): Bacaan tekanan darah sistolik (atas). Eksport yang diringkaskan menggunakan purata bacaan dalam kumpulan masa.
  • diastolic (Number): Bacaan tekanan darah diastolik (bawah). Eksport yang diringkaskan menggunakan purata bacaan dalam kumpulan masa.

Kadar Jantung

Data kadar jantung termasuk nilai minimum, purata, 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"
    }
  ]
}

Medan:

  • Min (Number): Kadar jantung minimum semasa tempoh pengukuran
  • Avg (Number): Kadar jantung purata semasa tempoh pengukuran
  • Max (Number): Kadar jantung maksimum semasa tempoh pengukuran

Kebolehubahan Kadar Jantung

Dengan Ringkaskan Data dimatikan, eksport JSON Kebolehubahan Kadar Jantung (SDNN) mungkin termasuk bacaan denyut-ke-denyut yang tersedia. Ini memerlukan akses baca Siri Degupan Jantung dalam Apple Health.

Eksport yang diringkaskan, eksport CSV, dan Recovery HRV tidak termasuk bacaan denyut-ke-denyut.

Analisis Tidur

Struktur data tidur bergantung pada sama ada Ringkaskan Data dihidupkan atau dimatikan.

Ringkaskan Data Dihidupkan

Dengan Ringkaskan Data dihidupkan, data tidur diringkaskan mengikut hari. Tempoh dalam peringkat yang sama dijumlahkan. Jumlah tidur ialah asleep, core, deep, dan REM digabungkan. JSON mengekalkan setiap hari. Dalam CSV, kumpulan masa yang lebih kasar menunjukkan hari terkini dalam kumpulan itu:

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

Medan:

  • totalSleep (Number): Jumlah masa tidur dalam jam
  • asleep (Number): Masa tidur tanpa peringkat tidur yang direkodkan, dalam jam
  • core (Number): Tempoh tidur core dalam jam
  • deep (Number): Tempoh tidur dalam dalam jam
  • rem (Number): Tempoh tidur REM dalam jam
  • awake (Number): Masa terjaga dalam jam
  • sleepStart (Date): Bila tidur benar-benar bermula
  • sleepEnd (Date): Bila tidur benar-benar berakhir
  • inBed (Number): Jumlah masa di atas katil dalam jam
  • inBedStart (Date): Bila anda masuk ke atas katil
  • inBedEnd (Date): Bila anda keluar dari katil

Ringkaskan Data Dimatikan

Dengan Ringkaskan Data dimatikan, segmen tidur individu 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"
    }
  ]
}

Medan:

  • date, start, startDate (Date): Masa mula segmen tidur
  • end, endDate (Date): Masa akhir segmen tidur
  • source (String): Aplikasi atau peranti yang merakam segmen
  • qty (Number): Tempoh segmen dalam jam
  • value (String): 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 termasuk maklumat masa 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"
    }
  ]
}

Medan:

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

Pemakanan

Apabila Ringkaskan Data dimatikan, sampel kuantiti pemakanan individu (contohnya Dietary Energy atau Carbohydrates) mungkin termasuk butiran makanan yang direkodkan dalam Apple Health. Contohnya:

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

Medan:

  • qty (Number): Kuantiti nutrien untuk sampel
  • foodType (String, pilihan): Nama makanan yang direkodkan oleh aplikasi sumber, apabila tersedia

Dengan Ringkaskan Data dihidupkan, jumlah pemakanan tidak termasuk foodType.

Aktiviti Seksual

Entri aktiviti seksual menjejaki 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"
    }
  ]
}

Medan:

  • Unspecified (Number): Kiraan peristiwa hari itu apabila status perlindungan tidak diketahui
  • Protection Used (Number): Kiraan peristiwa hari itu apabila perlindungan digunakan
  • Protection Not Used (Number): Kiraan peristiwa hari itu apabila perlindungan tidak digunakan

Eksport yang diringkaskan mengira setiap hari kalendar. JSON mengekalkan setiap hari. Dalam CSV, kumpulan masa yang lebih kasar menunjukkan hari terkini dalam kumpulan itu.

Mencuci Tangan

Peristiwa mencuci tangan menjejaki 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"
    }
  ]
}

Medan:

  • qty (Number): Tempoh dalam saat. Eksport yang diringkaskan menggunakan tempoh purata dalam kumpulan masa.
  • value (String): "Completed" apabila sesi berlangsung lebih daripada 20 saat, jika tidak "Incomplete"

Menggosok Gigi

Peristiwa menggosok gigi menjejaki 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"
    }
  ]
}

Medan:

  • qty (Number): Tempoh dalam saat. Eksport yang diringkaskan menggunakan tempoh purata dalam kumpulan masa.
  • value (String): "Completed" apabila sesi berlangsung sekurang-kurangnya 2 minit, jika tidak "Incomplete"

Penghantaran Insulin

Entri penghantaran insulin termasuk sebab penghantaran:

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

Medan:

  • qty (Number): Jumlah insulin yang dihantar. Eksport yang diringkaskan menambah jumlah dalam kumpulan masa.
  • reason (String): Salah satu daripada:
    • "Bolus" (insulin waktu makan)
    • "Basal" (insulin latar belakang)

Dokumentasi Berkaitan