Pusat bantuan HealthyApps
Bahasa Indonesia
Pusat bantuan
Situs utama ↗

Cari topik bantuan

Metrik Kesehatan - Format ekspor JSON

Dokumentasi untuk struktur metrik kesehatan dalam ekspor JSON

Terakhir diperbarui: 31 Oktober 2026

Di halaman ini
Format Nama Metrik
Struktur Struktur Bidang umum
Format Metrik Khusus Format Metrik Khusus Tekanan DarahDenyut JantungVariabilitas Denyut JantungAnalisis TidurGula DarahNutrisiAktivitas SeksualMencuci TanganMenggosok GigiPemberian Insulin
Dokumentasi terkait

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 kuantitas
    • date (Date): Stempel waktu dalam format yyyy-MM-dd HH:mm:ss Z
    • source (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 pengukuran
  • Avg (Number): Denyut jantung rata-rata selama periode pengukuran
  • Max (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 jam
  • asleep (Number): Waktu tidur tanpa tahap tidur yang tercatat, dalam jam
  • core (Number): Durasi tidur core dalam jam
  • deep (Number): Durasi tidur dalam dalam jam
  • rem (Number): Durasi tidur REM dalam jam
  • awake (Number): Durasi terjaga dalam jam
  • sleepStart (Date): Saat tidur benar-benar dimulai
  • sleepEnd (Date): Saat tidur benar-benar berakhir
  • inBed (Number): Total waktu di tempat tidur dalam jam
  • inBedStart (Date): Saat Anda masuk ke tempat tidur
  • inBedEnd (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 tidur
  • end, endDate (Date): Waktu akhir segmen tidur
  • source (String): Aplikasi atau perangkat yang merekam segmen
  • qty (Number): Durasi segmen dalam jam
  • value (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 darah
  • mealTime (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 sampel
  • foodType (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 diketahui
  • Protection Used (Number): Jumlah peristiwa hari itu saat perlindungan digunakan
  • Protection 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)

Dokumentasi terkait