เมตริกสุขภาพ - รูปแบบการส่งออก JSON
เอกสารโครงสร้างเมตริกสุขภาพในการส่งออก JSON
อัปเดตล่าสุด: 31 ตุลาคม 2569
ในหน้านี้
การส่งออก JSON เก็บเมตริกสุขภาพในอาร์เรย์ metrics
รูปแบบชื่อเมตริก
ชื่อเมตริกทั้งหมดในการส่งออก JSON ใช้รูปแบบ snake_case (ตัวพิมพ์เล็กพร้อมขีดล่าง) ตัวอย่างเช่น:
- "Step Count" กลายเป็น
"step_count" - "Blood Pressure" กลายเป็น
"blood_pressure" - "Heart Rate" กลายเป็น
"heart_rate" - "Walking + Running Distance" กลายเป็น
"walking_running_distance"
โครงสร้าง
อาร์เรย์ metrics มีอ็อบเจกต์ แต่ละรายการแทนประเภทเมตริกสุขภาพเฉพาะ เมตริกสุขภาพส่วนใหญ่เป็นไปตามโครงสร้างร่วม:
{
"name": "step_count",
"units": "count",
"data": [
{
"qty": 8500,
"date": "2024-02-06 14:30:00 -0800",
"source": "Apple Watch"
}
]
}
ฟิลด์ร่วม
name(String): ชื่อเมตริกสุขภาพในรูปแบบ snake_case (เช่น "step_count", "heart_rate", "active_energy")units(String): หน่วยวัด (เช่น "count", "count/min", "kcal")data(Array): อาร์เรย์ของจุดข้อมูล แต่ละจุดมี:qty(Number): ค่าปริมาณdate(Date): เวลาในรูปแบบyyyy-MM-dd HH:mm:ss Zsource(String, เมื่อมี): แอปหรืออุปกรณ์ที่บันทึกตัวอย่าง
รูปแบบเมตริกพิเศษ
เมตริกสุขภาพบางรายการมีโครงสร้างเฉพาะที่ต่างจากรูปแบบร่วม:
ความดันโลหิต
ค่าความดันโลหิตรวมทั้งซิสโตลิกและไดแอสโตลิก:
{
"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"
}
]
}
ฟิลด์:
systolic(Number): ค่าความดันโลหิตซิสโตลิก (บน) การส่งออกสรุปใช้ค่าเฉลี่ยในช่วงเวลาที่จัดกลุ่มdiastolic(Number): ค่าความดันโลหิตไดแอสโตลิก (ล่าง) การส่งออกสรุปใช้ค่าเฉลี่ยในช่วงเวลาที่จัดกลุ่ม
อัตราหัวใจ
ข้อมูลอัตราหัวใจรวมค่าต่ำสุด เฉลี่ย และสูงสุด:
{
"name": "heart_rate",
"units": "count/min",
"data": [
{
"date": "2024-02-06 14:30:00 -0800",
"Min": 65,
"Avg": 72,
"Max": 85,
"source": "Apple Watch"
}
]
}
ฟิลด์:
Min(Number): อัตราหัวใจต่ำสุดในช่วงการวัดAvg(Number): อัตราหัวใจเฉลี่ยในช่วงการวัดMax(Number): อัตราหัวใจสูงสุดในช่วงการวัด
ความแปรปรวนของอัตราหัวใจ
เมื่อ สรุปข้อมูล ปิด การส่งออก JSON ของความแปรปรวนของอัตราหัวใจ (SDNN) อาจรวมค่าทีละจังหวะที่มี ต้องมีสิทธิ์อ่าน ชุดอัตราการเต้นของหัวใจ ใน Apple Health
การส่งออกสรุป การส่งออก CSV และ Recovery HRV ไม่รวมค่าทีละจังหวะ
การวิเคราะห์การนอน
โครงสร้างข้อมูลการนอนขึ้นกับว่า สรุปข้อมูล เปิดหรือปิด
สรุปข้อมูลเปิด
เมื่อ สรุปข้อมูล เปิด ข้อมูลการนอนถูกสรุปตามวัน ระยะเวลาในระยะเดียวกันถูกรวม การนอนรวมคือ asleep + core + deep + REM JSON เก็บแต่ละวัน ใน CSV กลุ่มเวลาที่หยาบกว่าจะแสดงวันล่าสุดในกลุ่มนั้น:
{
"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"
}
]
}
ฟิลด์:
totalSleep(Number): เวลานอนรวมเป็นชั่วโมงasleep(Number): เวลานอนโดยไม่มีระยะการนอนที่บันทึก เป็นชั่วโมงcore(Number): ระยะเวลาการนอน core เป็นชั่วโมงdeep(Number): ระยะเวลาการนอนลึกเป็นชั่วโมงrem(Number): ระยะเวลาการนอน REM เป็นชั่วโมงawake(Number): เวลาตื่นเป็นชั่วโมงsleepStart(Date): เมื่อการนอนเริ่มจริงsleepEnd(Date): เมื่อการนอนสิ้นสุดจริงinBed(Number): เวลารวมบนเตียงเป็นชั่วโมงinBedStart(Date): เมื่อคุณเข้านอนinBedEnd(Date): เมื่อคุณลุกขึ้น
สรุปข้อมูลปิด
เมื่อ สรุปข้อมูล ปิด จะรวมเซกเมนต์การนอนแต่ละรายการ:
{
"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"
}
]
}
ฟิลด์:
date,start,startDate(Date): เวลาเริ่มเซกเมนต์การนอนend,endDate(Date): เวลาสิ้นสุดเซกเมนต์การนอนsource(String): แอปหรืออุปกรณ์ที่บันทึกเซกเมนต์qty(Number): ระยะเวลาเซกเมนต์เป็นชั่วโมงvalue(String): สถานะการนอน — หนึ่งใน:"Awake""Asleep"(ระยะการนอนที่ไม่ได้จัดหมวด)"In Bed""Core""REM""Deep""Unspecified"
หมายเหตุ: "Asleep" หมายถึงระยะการนอนที่ไม่ได้จัดหมวด (ไม่ใช่เวลานอนรวม) อาจเกิดหากแหล่งข้อมูลไม่รองรับการติดตามระยะการนอน
น้ำตาลในเลือด
ค่าระดับน้ำตาลในเลือดรวมข้อมูลเวลามื้ออาหาร:
{
"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"
}
]
}
ฟิลด์:
qty(Number): ระดับน้ำตาลในเลือดmealTime(String): หนึ่งใน:"Before Meal""After Meal""Unspecified"
โภชนาการ
เมื่อ สรุปข้อมูล ปิด ตัวอย่างปริมาณโภชนาการแต่ละรายการ (เช่น พลังงานจากอาหารหรือคาร์โบไฮเดรต) อาจรวมรายละเอียดอาหารที่บันทึกใน Apple Health ตัวอย่าง:
{
"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"
}
]
}
ฟิลด์:
qty(Number): ปริมาณสารอาหารสำหรับตัวอย่างfoodType(String, ไม่บังคับ): ชื่ออาหารที่แอปแหล่งบันทึก เมื่อมี
เมื่อ สรุปข้อมูล เปิด ผลรวมโภชนาการไม่รวม foodType
กิจกรรมทางเพศ
รายการกิจกรรมทางเพศติดตามการใช้การป้องกัน:
{
"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"
}
]
}
ฟิลด์:
Unspecified(Number): จำนวนเหตุการณ์ในวันนั้นเมื่อสถานะการป้องกันไม่ทราบProtection Used(Number): จำนวนเหตุการณ์ในวันนั้นเมื่อใช้การป้องกันProtection Not Used(Number): จำนวนเหตุการณ์ในวันนั้นเมื่อไม่ได้ใช้การป้องกัน
การส่งออกสรุปนับแต่ละวันปฏิทิน JSON เก็บแต่ละวัน ใน CSV กลุ่มเวลาที่หยาบกว่าจะแสดงวันล่าสุดในกลุ่มนั้น
การล้างมือ
เหตุการณ์การล้างมือติดตามสถานะความสำเร็จ:
{
"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"
}
]
}
ฟิลด์:
qty(Number): ระยะเวลาเป็นวินาที การส่งออกสรุปใช้ระยะเวลาเฉลี่ยในช่วงเวลาที่จัดกลุ่มvalue(String):"Completed"เมื่อเซสชันนานกว่า 20 วินาที มิฉะนั้น"Incomplete"
การแปรงฟัน
เหตุการณ์การแปรงฟันติดตามสถานะความสำเร็จ:
{
"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"
}
]
}
ฟิลด์:
qty(Number): ระยะเวลาเป็นวินาที การส่งออกสรุปใช้ระยะเวลาเฉลี่ยในช่วงเวลาที่จัดกลุ่มvalue(String):"Completed"เมื่อเซสชันอย่างน้อย 2 นาที มิฉะนั้น"Incomplete"
การให้ยาอินซูลิน
รายการการให้ยาอินซูลินรวมเหตุผลการให้:
{
"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"
}
]
}
ฟิลด์:
qty(Number): ปริมาณอินซูลินที่ให้ การส่งออกสรุปรวมปริมาณในช่วงเวลาที่จัดกลุ่มreason(String): หนึ่งใน:"Bolus"(อินซูลินมื้ออาหาร)"Basal"(อินซูลินพื้นฐาน)