رابط برنامهنویسی کاربردی گوگل هلث (Google Health API) انواع دادههایی را ارائه میدهد که الگوهای خواب کاربر، از جمله مدت زمان، کیفیت و معیارهای فیزیولوژیکی در طول استراحت را ردیابی میکنند. این معیارها به برنامهها کمک میکنند تا بینشهایی در مورد بهبودی، بهداشت خواب و روندهای سلامت در درازمدت ارائه دهند.
معیارهای فیزیولوژیکی مانند تغییرپذیری ضربان قلب (HRV)، اشباع اکسیژن (SpO2) و میزان تنفس به طور خاص در طول خواب ثبت میشوند زیرا بدن در حالت پایدار و استراحت قرار دارد. این به API اجازه میدهد تا بدون دخالت عوامل استرسزای روزانه، فعالیت بدنی یا شرایط محیطی متغیر، یک پایه از سلامت خودکار و تنفسی کاربر را ثبت کند.
تفاوتهای بین این نوع دادهها را درک کنید تا مشخص کنید کدام معیارها برای برنامه شما مناسب هستند.
انواع داده پشتیبانی شده
این API از انواع دادههای زیر برای اندازهگیری خواب پشتیبانی میکند:
| نوع داده | موجود است عملیات | محدوده |
|---|---|---|
| تغییرپذیری روزانه ضربان قلب نوع داده: daily-heart-rate-variabilityپارامتر فیلتر: daily_heart_rate_variability نوع ثبت: روزانه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
| اشباع اکسیژن روزانه نوع داده: daily-oxygen-saturationپارامتر فیلتر: daily_oxygen_saturation نوع ثبت: روزانه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
| میزان تنفس روزانه نوع داده: daily-respiratory-rateپارامتر فیلتر: daily_respiratory_rate نوع ثبت: روزانه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
| مشتقات دمای خواب روزانه نوع داده: daily-sleep-temperature-derivationsپارامتر فیلتر: daily_sleep_temperature_derivations نوع ثبت: روزانه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
| تغییرپذیری ضربان قلب نوع داده: heart-rate-variabilityپارامتر فیلتر: heart_rate_variability نوع رکورد: نمونه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
| اشباع اکسیژن نوع داده: oxygen-saturationپارامتر فیلتر: oxygen_saturation نوع رکورد: نمونه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
| خلاصه خواب با نرخ تنفس نوع داده: respiratory-rate-sleep-summaryپارامتر فیلتر: respiratory_rate_sleep_summary نوع رکورد: نمونه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
| خواب نوع داده: sleepپارامتر فیلتر: sleep نوع رکورد: جلسه دستگاههای سازگار
| لیست کردن، دریافت کردن، تطبیق دادن، ایجاد کردن، بهروزرسانی کردن، حذف دستهای | .sleep.readonly.sleep.writeonly |
دورههای خواب و بیداریهای کوتاه
یک جلسه خواب ( Sleep ) نشان دهنده یک رویداد خواب گسسته، مانند یک خواب شبانه یا یک چرت روزانه است. این شامل تجزیه و تحلیل دقیقی از مراحل خواب غیر همپوشانی در کنار فواصل کوتاه انتقال بیداری است که به عنوان بیداریهای کوتاه شناخته میشوند.
- جلسه خواب (
Sleep) : یک رویداد خواب گسسته (فواصل مراحلLIGHT،DEEP،REM،AWAKE) را نشان میدهد که جدول زمانی پیوسته استراحت اولیه را تقسیم میکند. - بیداریهای کوتاه (
shortAwakenings) : انتقالهای کوتاه مدت از خواب یا بیدار شدنهایی که در طول استراحت رخ میدهند. برخلاف فواصل استاندارد مراحلAWAKE(که پیشرفت مراحل خواب پیوسته و غیر همپوشانی را تقسیم میکنند)، بیداریهای کوتاه بخشهای مجزایی هستند که میتوانند با مراحل خواب اطراف همپوشانی داشته باشند. آنها بدون ایجاد اختلال در ساختار مراحل اولیه خواب، امکان مشاهده دقیق بیقراری و بیداریهای کوچک را فراهم میکنند. - بیدار شدنهای شبانه : بیدار شدنهای نیمهشب (مانند بلند شدن برای آب) توسط ادغام حسگرهای روی دستگاه (شتابسنج، ژیروسکوپ و شمارش گام) شناسایی میشوند. در API وب، برنامهها میتوانند بیدار شدنهای شبانه را با فیلتر کردن فواصل مشخص شده با سطح
"wake"(خواب کلاسیک) یا"awake"(مراحل خواب) تشخیص دهند.
مثال
{
"name": "sleeps/12345",
"startTime": "2026-04-20T22:30:00Z",
"endTime": "2026-04-21T06:30:00Z",
"sleepType": "STAGES",
"minutesToFallAsleep": 15,
"minutesAfterWakeup": 10,
"sleepStages": [
{
"startTime": "2026-04-20T22:30:00Z",
"endTime": "2026-04-20T23:45:00Z",
"type": "LIGHT"
},
{
"startTime": "2026-04-20T23:45:00Z",
"endTime": "2026-04-21T01:15:00Z",
"type": "DEEP"
}
],
"shortAwakenings": [
{
"startTime": "2026-04-20T23:10:00Z",
"endTime": "2026-04-20T23:11:30Z",
"type": "AWAKE"
}
]
}
ایجاد یک جلسه خواب
برای ایجاد یک ورودی جلسه خواب، یک درخواست POST به نقطه پایانی نقاط داده sleep ارسال کنید. پاسخ شامل فیلد name حاوی data-point-id است که میتواند در یک درخواست بهروزرسانی (وصله) یا حذف استفاده شود.
درخواست
POST https://health.googleapis.com/v4/users/me/dataTypes/sleep/dataPoints
Authorization: Bearer access-token
Content-Type: application/json
{
"sleep": {
"interval": {
"startTime": "2026-06-07T22:00:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T06:00:00Z",
"endUtcOffset": "-14400s"
},
"type": "STAGES",
"stages": [
{
"startTime": "2026-06-07T22:00:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-07T22:30:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-07T22:30:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-07T23:45:00Z",
"endUtcOffset": "-14400s",
"type": "DEEP"
},
{
"startTime": "2026-06-07T23:45:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T02:15:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-08T02:15:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T02:45:00Z",
"endUtcOffset": "-14400s",
"type": "REM"
},
{
"startTime": "2026-06-08T02:45:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T05:15:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-08T05:15:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T06:00:00Z",
"endUtcOffset": "-14400s",
"type": "REM"
}
]
}
}پاسخ
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
"name": "users/user-id/dataTypes/sleep/dataPoints/data-point-id",
"sleep": {
"interval": {
"startTime": "2026-06-07T22:00:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T06:00:00Z",
"endUtcOffset": "-14400s"
},
"type": "STAGES",
"stages": [
{
"startTime": "2026-06-07T22:00:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-07T22:30:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-07T22:30:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-07T23:45:00Z",
"endUtcOffset": "-14400s",
"type": "DEEP"
},
{
"startTime": "2026-06-07T23:45:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T02:15:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-08T02:15:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T02:45:00Z",
"endUtcOffset": "-14400s",
"type": "REM"
},
{
"startTime": "2026-06-08T02:45:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T05:15:00Z",
"endUtcOffset": "-14400s",
"type": "LIGHT"
},
{
"startTime": "2026-06-08T05:15:00Z",
"startUtcOffset": "-14400s",
"endTime": "2026-06-08T06:00:00Z",
"endUtcOffset": "-14400s",
"type": "REM"
}
]
}
}
}معیارهای بهرهوری خواب و تأخیر
علاوه بر مراحل خواب و معیارهای فیزیولوژیکی، این API معیارهای کلیدی را ارائه میدهد که کیفیت خواب و شروع خواب را کمّی میکنند. راندمان خواب و تأخیر شروع خواب، معیارهای بالینی استانداردی هستند که میزان استراحت مؤثر کاربر را نسبت به کل زمان حضورش در رختخواب توصیف میکنند و بینشی در مورد بهداشت خواب و آرامش ارائه میدهند.
امتیاز کارایی خواب
راندمان خواب یک معیار استاندارد است که به صورت نسبت زمان صرف شده در خواب به کل زمان صرف شده در رختخواب تعریف میشود. این API راندمان خواب را با استفاده از فرمول زیر محاسبه میکند:
Sleep Efficiency Score = round( (Total Minutes Asleep / Total Minutes In Bed) * 100 )
امتیاز کارایی درست قبل از پارتیشنبندی سطح (مراحل) خواب محاسبه میشود. کل دقایق خواب که در پاسخ API (در فیلد summary.minutesAsleep ) برگردانده میشود، نتیجه نهایی پس از محاسبه سطوح خواب را نشان میدهد.
اگر کاربر یا محققی به صورت دستی زمان شروع یا پایان گزارش خواب را تغییر دهد، API نمره کارایی خواب را دوباره محاسبه کرده و پارتیشنهای مرحلهای را بر اساس دادههای حسگر ثبت شده در مرز جدید زمان خواب و بیداری تنظیم میکند.
تأخیر شروع خواب
تأخیر شروع خواب، مدت زمان سپری شده از زمانی که کاربر قصد خوابیدن دارد (شروع زمان "در رختخواب" یا "خاموشی چراغها") تا زمانی که خواب شروع میشود را اندازهگیری میکند.
برای گزارشهایی که به طور خودکار با استفاده از تشخیص خودکار ( auto_detect ) ایجاد میشوند، minutesToFallAsleep به طور پیشفرض روی 0 تنظیم شده است زیرا هیچ قصد صریحی برای به خواب رفتن ثبت نشده است. هنگامی که زمانهای شروع خواب در رختخواب به صورت دستی ثبت یا ویرایش میشوند (و گزارش را به manual تبدیل میکنند)، API minutesToFallAsleep به همراه minutesAfterWakeup محاسبه و پر میکند.
راهنمایی برای تحقیق و ثبت دستی دادهها
وقتی شرکتکنندگان به صورت دستی زمان شروع و پایان در رختخواب را ثبت یا تنظیم میکنند:
- بهروزرسانی مرزهای درونخواب، بازه زمانی
timeInBedتغییر میدهد. - سطوح خواب و پارتیشنهای مرحلهای به طور خودکار تنظیم میشوند تا دادههای حسگر را در پنجره جدید ارزیابی کنند.
- امتیاز کارایی خواب،
minutesToFallAsleep) وminutesAfterWakeupبر اساس پنجره زمانی بهروزرسانیشده، مجدداً استخراج میشوند.
مشتقات دمای خواب روزانه
مشتقات دمای خواب روزانه، تغییرات دمای پوست کاربر را در طول خواب در مقایسه با دمای پایه اندازهگیری میکنند. این دادهها معمولاً روزی یک بار پس از یک جلسه خواب طولانی گزارش میشوند.
میزان تنفس
نرخ تنفس، تعداد نفسهای کاربر در دقیقه را اندازهگیری میکند. در طول خواب، این یک معیار کلیدی برای نظارت بر کیفیت خواب و اختلالات احتمالی است. این API از نرخ تنفس نمونه ( respiratory-rate )، خلاصههای روزانه ( daily-respiratory-rate ) و خلاصههای خواب در سطح جلسه ( respiratory-rate-sleep-summary ) پشتیبانی میکند.
تغییرپذیری ضربان قلب (HRV)
HRV تغییر زمان بین هر ضربان قلب را اندازهگیری میکند. این یک شاخص کلیدی از وضعیت سیستم عصبی خودکار است؛ HRV بالا در طول خواب عموماً نشاندهنده بهبودی و آمادگی بهتر است، در حالی که HRV پایین میتواند نشاندهنده استرس یا تمرین بیش از حد باشد. این API از HRV نمونه ( heart-rate-variability ) و خلاصههای روزانه ( daily-heart-rate-variability ) پشتیبانی میکند.
اشباع اکسیژن (SpO2)
SpO2 نشان دهنده درصد هموگلوبین اشباع شده با اکسیژن نسبت به کل هموگلوبین خون است. نظارت بر SpO2 در طول خواب برای تشخیص اختلالات تنفسی احتمالی و اطمینان از حفظ سطح اکسیژن کافی کاربر در طول شب بسیار مهم است. API از SpO2 نمونه ( oxygen-saturation ) و خلاصههای روزانه ( daily-oxygen-saturation ) پشتیبانی میکند.
دیدگاه جامع در مورد سلامت خواب و بهبودی
در حالی که هر معیار بینشهای خاصی را ارائه میدهد، عمیقاً به هم مرتبط هستند و در کنار هم، یک دیدگاه جامع از بهبودی کاربر ارائه میدهند. مراحل خواب (سبک، عمیق، REM) پایه و اساس ساختاری استراحت را فراهم میکنند، در حالی که نشانگرهای فیزیولوژیکی مانند HRV و SpO2 نشان میدهند که بدن چگونه به آن استراحت از نظر فیزیکی پاسخ میدهد. به عنوان مثال، یک جلسه خواب با کیفیت بالا با خواب عمیق بهینه اغلب با HRV بالاتر مرتبط است که نشاندهنده بهبودی مؤثر سیستم عصبی خودکار است.
ترکیب این دادهها با دادههای مربوط به نرخ تنفس و دمای خواب به برنامهها اجازه میدهد تا اختلالات بالقوه را شناسایی کنند. افزایش ناگهانی نرخ تنفس یا انحراف در دمای خواب میتواند نشان دهد که چرا کاربر ممکن است زمان کمتری را در مراحل ترمیمی گذرانده باشد. با تجزیه و تحلیل این نوع دادهها به صورت همزمان، توسعهدهندگان میتوانند ارزیابی جامعی از بهداشت خواب و روندهای سلامت در درازمدت ارائه دهند.
دستورالعملها
هنگام ادغام معیارهای خواب در برنامه خود، از این دستورالعملها استفاده کنید:
- جزئیات جلسه : برای نمایش مراحل خواب کاربر (سبک، عمیق، REM، بیدار) و بیداریهای کوتاه، نوع داده
sleepرا جستجو کنید. - بیداریهای شبانه : برای ردیابی رویدادهای بیداری نیمهشب بدون جریانهای خام حسگر، فواصل مراحل
sleepرا بررسی کرده و مواردی با نوع مرحلهAWAKE(یاwakeبرای گزارشهای خواب کلاسیک) را فیلتر کنید. - تأخیر و کارایی : برای تحلیل تأخیر خواب
minutesToFallAsleepو فرمول sleep efficiency استفاده کنید. توجه داشته باشید کهminutesToFallAsleepزمانی پر میشود که گزارشهای خواب به صورت دستی ویرایش یا به طور صریح ثبت شوند. - پایش فیزیولوژیکی : برای پایش پیشرفته سلامت، دادههای جلسه خواب را با معیارهای فیزیولوژیکی و بهبودی مانند
respiratory-rate-sleep-summary،daily-sleep-temperature-derivations،daily-heart-rate-variabilityوdaily-oxygen-saturationترکیب کنید. - تطبیق : از عملیات
reconcileاستفاده کنید تا اطمینان حاصل شود که گزارشهای خواب همپوشانی از دستگاههای مختلف (به عنوان مثال، یک حسگر پوشیدنی و یک تشک) در یک رکورد خواب واحد "اصلی" ادغام میشوند.
محاسبه کل زمان خواب عمیق
برای محاسبه کل زمانی که کاربر در یک شب خاص در مرحله خواب عمیق ترمیمی گذرانده است:
- نوع داده
sleepرا برای محدوده زمانی مشخص شده پرس و جو کنید. - لیست مراحل را مرور کنید و فواصلی را که در آنها
typeDEEPاست، شناسایی کنید. - مدت زمان (زمان پایان - زمان شروع) را برای هر بازه خواب عمیق محاسبه کرده و آنها را با هم جمع کنید.
حاصل جمع، کل مدت زمان فیزیکی خواب عمیق را برای آن جلسه فراهم میکند.