Chỉ số sức khỏe - Định dạng xuất JSON

Tài liệu về cấu trúc chỉ số sức khỏe trong các lần xuất JSON

Last updated: March 31, 2026

Trên trang này

Chỉ số sức khỏe

Chỉ số sức khỏe là các phép đo và điểm dữ liệu được ứng dụng Apple Health và thiết bị liên kết thu thập. Trong bản xuất JSON, chỉ số sức khỏe được lưu trong mảng metrics.

Định dạng tên chỉ số

Mọi tên chỉ số trong bản xuất JSON dùng định dạng snake_case (chữ thường và gạch dưới). Ví dụ:

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

Cấu trúc

Mảng metrics chứa các đối tượng, mỗi đối tượng đại diện một loại chỉ số sức khỏe. Hầu hết chỉ số tuân theo cấu trúc chung:

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

Trường thường gặp

  • name (Chuỗi): Tên chỉ số sức khỏe dạng snake_case (ví dụ: "step_count", "heart_rate", "active_energy")
  • units (Chuỗi): Đơn vị đo (ví dụ: "count", "bpm", "kcal")
  • data (Mảng): Mảng điểm dữ liệu, mỗi điểm gồm:
    • qty (Số): Giá trị số lượng
    • date (Ngày/giờ): Mốc thời gian, định dạng yyyy-MM-dd HH:mm:ss Z

Định dạng chỉ số đặc biệt

Một số chỉ số có cấu trúc riêng, khác định dạng chung:

Huyết áp

Lần đo huyết áp gồm cả giá trị tâm thu và tâm trương:

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

Trường:

  • systolic (Số): Chỉ số huyết áp tâm thu (trên)
  • diastolic (Số): Chỉ số huyết áp tâm trương (dưới)

Nhịp tim

Dữ liệu nhịp tim gồm giá trị tối thiểu, trung bình và tối đa:

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

Trường:

  • Min (Số): Nhịp tim thấp nhất trong khoảng đo
  • Avg (Số): Nhịp tim trung bình trong khoảng đo
  • Max (Số): Nhịp tim cao nhất trong khoảng đo

Phân tích giấc ngủ

Cấu trúc dữ liệu giấc ngủ khác nhau tùy việc bạn có bật gom dữ liệu trong cài đặt xuất hay không.

Dữ liệu giấc ngủ đã gom

Khi bật gom dữ liệu, dữ liệu giấc ngủ được tóm tắt theo ngày:

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

Trường:

  • totalSleep (Số): Tổng thời gian ngủ, đơn vị giờ
  • asleep (Số): Tổng thời gian ở bất kỳ trạng thái ngủ nào
  • core (Số): Thời lượng ngủ lõi, đơn vị giờ
  • deep (Số): Thời lượng ngủ sâu, đơn vị giờ
  • rem (Số): Thời lượng ngủ REM, đơn vị giờ
  • sleepStart (Ngày/giờ): Lúc thực sự bắt đầu ngủ
  • sleepEnd (Ngày/giờ): Lúc thực sự thức dậy
  • inBed (Số): Tổng thời gian trên giường, đơn vị giờ
  • inBedStart (Ngày/giờ): Lúc lên giường
  • inBedEnd (Ngày/giờ): Lúc rời giường

Dữ liệu giấc ngủ chưa gom

Khi tắt gom dữ liệu, các đoạn giấc ngủ riêng lẻ được đưa vào:

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

Trường:

  • startDate (Ngày/giờ): Thời điểm bắt đầu đoạn giấc ngủ
  • endDate (Ngày/giờ): Thời điểm kết thúc đoạn giấc ngủ
  • qty (Số): Độ dài đoạn, đơn vị giờ
  • value (Chuỗi): Trạng thái giấc ngủ — một trong:
    • "Awake"
    • "Asleep" (giai đoạn ngủ chưa phân loại)
    • "In Bed"
    • "Core"
    • "REM"
    • "Deep"
    • "Unspecified"

Lưu ý: "Asleep" chỉ giai đoạn ngủ chưa phân loại (không phải tổng thời gian ngủ). Có thể xảy ra nếu nguồn dữ liệu không hỗ trợ theo dõi pha ngủ.

Đường huyết

Lần đo đường huyết kèm thông tin thời điểm bữa ăn:

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

Trường:

  • qty (Số): Mức đường huyết
  • mealTime (Chuỗi): Một trong:
    • "Before Meal"
    • "After Meal"
    • "Unspecified"

Hoạt động tình dục

Các mục hoạt động tình dục theo dõi việc dùng bảo vệ:

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

Trường:

  • Unspecified (Số): Số lần trạng thái bảo vệ không rõ
  • Protection Used (Số): Số lần đã dùng bảo vệ
  • Protection Not Used (Số): Số lần không dùng bảo vệ

Rửa tay

Sự kiện rửa tay theo dõi mức hoàn thành:

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

Trường:

  • qty (Số): Số lần rửa tay
  • value (Chuỗi): Một trong:
    • "Complete"
    • "Incomplete"

Đánh răng

Sự kiện đánh răng theo dõi mức hoàn thành:

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

Trường:

  • qty (Số): Số lần đánh răng
  • value (Chuỗi): Một trong:
    • "Complete"
    • "Incomplete"

Tiêm insulin

Các mục tiêm insulin gồm lý do tiêm:

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

Trường:

  • qty (Số): Lượng insulin đã tiêm
  • reason (Chuỗi): Một trong:
    • "Bolus" (insulin bữa ăn)
    • "Basal" (insulin nền)

Chỉ số sức khỏe thường gặp

Một số chỉ số thường được xuất (mọi tên chỉ số đều dạng snake_case):

  • step_count — Số bước mỗi ngày
  • walking_running_distance — Quãng đường đi bộ và chạy
  • active_energy — Calo tiêu hao qua hoạt động
  • resting_heart_rate — Nhịp tim khi nghỉ
  • heart_rate — Các lần đo nhịp tim
  • respiratory_rate — Nhịp thở
  • body_temperature — Nhiệt độ cơ thể
  • blood_oxygen_saturation — Mức SpO2
  • weight_&_body_mass — Cân nặng
  • body_mass_index — BMI tính toán
  • height — Chiều cao
  • dietary_water — Lượng chất lỏng uống vào
  • mindful_minutes — Thời gian thiền hoặc chánh niệm

Mẹo

  • Nhóm thời gian: Dùng cài đặt nhóm thời gian trong cấu hình xuất để kiểm soát cách gom dữ liệu (theo giây, phút, giờ, ngày, v.v.)
  • Gom dữ liệu: Bật gom dữ liệu để tóm tắt giấc ngủ và chỉ số khác theo ngày, phân tích dễ hơn
  • Xuất có chọn lọc: Bạn có thể chọn chỉ số sức khỏe cụ thể để giảm kích thước tệp và thời gian xử lý

Tài liệu liên quan