Chỉ số sức khỏe - định dạng xuất JSON
Tài liệu cấu trúc chỉ số sức khỏe trong xuất JSON
Cập nhật lần cuối: 31 tháng 10, 2026
Trên trang này
Xuất JSON lưu chỉ số sức khỏe trong mảng metrics.
Định dạng tên chỉ số
Tất cả tên chỉ số trong xuất JSON dùng định dạng snake_case (chữ thường với 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 cái đại diện một loại chỉ số sức khỏe cụ thể. Hầu hết chỉ số sức khỏe theo cấu trúc chung:
{
"name": "step_count",
"units": "count",
"data": [
{
"qty": 8500,
"date": "2024-02-06 14:30:00 -0800",
"source": "Apple Watch"
}
]
}
Trường chung
name(String): Tên chỉ số sức khỏe ở dạng snake_case (ví dụ "step_count", "heart_rate", "active_energy")units(String): Đơn vị đo (ví dụ "count", "count/min", "kcal")data(Array): Mảng điểm dữ liệu, mỗi điểm chứa:qty(Number): Giá trị số lượngdate(Date): Dấu thời gian ở định dạngyyyy-MM-dd HH:mm:ss Zsource(String, khi có): Ứng dụng hoặc thiết bị ghi mẫu
Định dạng chỉ số đặc biệt
Một số chỉ số sức khỏe có cấu trúc riêng khác định dạng chung:
Huyết áp
Số đo huyết áp gồm cả tâm thu và tâm trương:
{
"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"
}
]
}
Trường:
systolic(Number): Số đo huyết áp tâm thu (trên). Xuất đã tóm tắt dùng trung bình các số đo trong nhóm thời gian.diastolic(Number): Số đo huyết áp tâm trương (dưới). Xuất đã tóm tắt dùng trung bình các số đo trong nhóm thời gian.
Nhịp tim
Dữ liệu nhịp tim gồm giá trị thấp nhất, trung bình và cao nhất:
{
"name": "heart_rate",
"units": "count/min",
"data": [
{
"date": "2024-02-06 14:30:00 -0800",
"Min": 65,
"Avg": 72,
"Max": 85,
"source": "Apple Watch"
}
]
}
Trường:
Min(Number): Nhịp tim thấp nhất trong khoảng đoAvg(Number): Nhịp tim trung bình trong khoảng đoMax(Number): Nhịp tim cao nhất trong khoảng đo
Biến thiên nhịp tim
Khi Tóm tắt dữ liệu tắt, xuất JSON của Biến thiên nhịp tim (SDNN) có thể gồm các số đo từng nhịp khả dụng. Cần quyền đọc Chuỗi nhịp tim trong Apple Health.
Xuất đã tóm tắt, xuất CSV và Recovery HRV không gồm số đo từng nhịp.
Phân tích giấc ngủ
Cấu trúc dữ liệu giấc ngủ phụ thuộc Tóm tắt dữ liệu bật hay tắt.
Tóm tắt dữ liệu bật
Khi Tóm tắt dữ liệu bật, dữ liệu giấc ngủ được tóm tắt theo ngày. Thời lượng cùng giai đoạn được cộng. Tổng ngủ là asleep, core, deep và REM cộng lại. JSON giữ từng ngày. Trong CSV, nhóm thời gian thô hơn hiện ngày mới nhất trong nhóm đó:
{
"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"
}
]
}
Trường:
totalSleep(Number): Tổng thời gian ngủ theo giờasleep(Number): Thời gian ngủ không có giai đoạn đã ghi, theo giờcore(Number): Thời lượng ngủ core theo giờdeep(Number): Thời lượng ngủ sâu theo giờrem(Number): Thời lượng ngủ REM theo giờawake(Number): Thời gian thức theo giờsleepStart(Date): Khi giấc ngủ thực sự bắt đầusleepEnd(Date): Khi giấc ngủ thực sự kết thúcinBed(Number): Tổng thời gian trên giường theo giờinBedStart(Date): Khi bạn lên giườnginBedEnd(Date): Khi bạn ra khỏi giường
Tóm tắt dữ liệu tắt
Khi Tóm tắt dữ liệu tắt, các đoạn giấc ngủ riêng được gồm:
{
"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"
}
]
}
Trường:
date,start,startDate(Date): Thời gian bắt đầu đoạn ngủend,endDate(Date): Thời gian kết thúc đoạn ngủsource(String): Ứng dụng hoặc thiết bị ghi đoạnqty(Number): Thời lượng đoạn theo giờvalue(String): Trạng thái 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 giai đoạn ngủ.
Đường huyết
Số đo đường huyết gồ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",
"start": "2024-02-06 08:00:00 -0800",
"end": "2024-02-06 08:00:00 -0800",
"qty": 95,
"mealTime": "Before Meal",
"source": "Health"
}
]
}
Trường:
qty(Number): Mức đường huyếtmealTime(String): Một trong:"Before Meal""After Meal""Unspecified"
Dinh dưỡng
Khi Tóm tắt dữ liệu tắt, các mẫu số lượng dinh dưỡng riêng (ví dụ Dietary Energy hoặc Carbohydrates) có thể gồm chi tiết thực phẩm ghi trong Apple Health. Ví dụ:
{
"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"
}
]
}
Trường:
qty(Number): Số lượng chất dinh dưỡng của mẫufoodType(String, tùy chọn): Tên thực phẩm do ứng dụng nguồn ghi, khi có
Khi Tóm tắt dữ liệu bật, tổng dinh dưỡng không gồm foodType.
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 biện pháp bảo vệ:
{
"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"
}
]
}
Trường:
Unspecified(Number): Số sự kiện trong ngày khi trạng thái bảo vệ không rõProtection Used(Number): Số sự kiện trong ngày khi đã dùng bảo vệProtection Not Used(Number): Số sự kiện trong ngày khi không dùng bảo vệ
Xuất đã tóm tắt đếm mỗi ngày lịch. JSON giữ từng ngày. Trong CSV, nhóm thời gian thô hơn hiện ngày mới nhất trong nhóm đó.
Rửa tay
Sự kiện rửa tay theo dõi trạng thái hoàn thành:
{
"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"
}
]
}
Trường:
qty(Number): Thời lượng theo giây. Xuất đã tóm tắt dùng thời lượng trung bình trong nhóm thời gian.value(String):"Completed"khi phiên dài hơn 20 giây, nếu không"Incomplete"
Đánh răng
Sự kiện đánh răng theo dõi trạng thái hoàn thành:
{
"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"
}
]
}
Trường:
qty(Number): Thời lượng theo giây. Xuất đã tóm tắt dùng thời lượng trung bình trong nhóm thời gian.value(String):"Completed"khi phiên ít nhất 2 phút, nếu không"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",
"start": "2024-02-06 08:00:00 -0800",
"end": "2024-02-06 08:00:00 -0800",
"qty": 5,
"reason": "Bolus",
"source": "Health"
}
]
}
Trường:
qty(Number): Lượng insulin đã tiêm. Xuất đã tóm tắt cộng các lượng trong nhóm thời gian.reason(String): Một trong:"Bolus"(insulin bữa ăn)"Basal"(insulin nền)