يحتوي الجدول التالي على القائمة الكاملة بأنواع البيانات، مع عدّة أعمدة لمساعدتك في فهم طريقة عرض كل نوع في Google Health API، بالإضافة إلى النطاق الذي يتوفّر كل نوع ضمنه.
حقول أنواع البيانات
يتضمّن جدول أنواع البيانات في Google Health API عدة أعمدة للحقول لمساعدتك في فهم طريقة عرض كل نوع من أنواع البيانات ومتطلباته. هذه الأعمدة هي كما يلي:
| الحقل | الوصف |
|---|---|
dataType |
المعرّف المفصول بشرطات (على سبيل المثال،
active-minutes) المستخدَم في عناوين URL لنقاط النهاية. |
المَعلمة filter |
المعرّف مفصولًا بشرطات سفلية (على سبيل المثال، active_minutes) ويُستخدَم كقيمة لمَعلمة الفلتر dataType في طلبات التجميع اليومي والتجميع. |
| نوع السجلّ | تشير إلى بنية وتنسيق البيانات المسجّلة. في الخلفية، يتوافق ذلك مع تمثيل الموارد لنقاط البيانات. القيم المحتمَلة هي:
|
| العمليات المتاحة | تعرض هذه السمة طرق واجهة برمجة التطبيقات المتوافقة مع نوع البيانات (مثل list وcreate وrollUp). |
| المستوى | نطاقات OAuth المطلوبة للوصول إلى نوع البيانات |
| التوافق مع الويب هوك | تشير إلى أنّ نوع البيانات يتيح تلقّي إشعارات في الوقت الفعلي باستخدام خطافات الويب عند مزامنة بيانات جديدة. |
| إتاحة القيم الصفرية | تشير إلى أنّ نوع البيانات يتيح تسجيل قيم صفرية صريحة للتفريق بين القيمة الصفرية النشطة (مثل صفر دقيقة نشاط) والبيانات غير المتوفّرة أو غير المسجّلة. |
| دقّة التخزين | تمثّل هذه السمة الحدّ الأدنى لفاصل التسجيل أو أخذ العيّنات الذي يتم عنده تخزين نقاط البيانات (على سبيل المثال، دقيقة واحدة لسمة steps). بالنسبة إلى عمليات التجميع، تمثّل هذه السمة الحدّ الأدنى المقترَح windowSize لضمان التوزيع المتساوي للتجميع بدون عناصر فرعية لبيانات الفاصل الزمني. |
| الأجهزة المتوافقة | قائمة قابلة للتوسيع بالأجهزة المادية التي يمكنها تسجيل نوع البيانات هذا ومزامنته مع Google Health API (باستخدام تطبيق Fitbit) |
| نوع البيانات | العمليات المتاحة |
النطاق |
|---|---|---|
|
السعرات الحرارية المحروقة أثناء النشاط البدني
نوع البيانات:
active-energy-burnedمعلَمة الفلتر: active_energy_burned
نوع السجلّ: تمرين متناوب
دقة التخزين: دقيقة واحدة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
دقائق النشاط
نوع البيانات:
active-minutesمعلَمة الفلتر: active_minutes
نوع السجلّ: تمرين متناوب
دقة التخزين: دقيقة واحدة
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
دقائق قسم النشاط
نوع البيانات:
active-zone-minutesمعلَمة الفلتر: active_zone_minutes
نوع السجلّ: تمرين متناوب
دقة التخزين: دقيقة واحدة
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
مستوى النشاط
نوع البيانات:
activity-levelمعلَمة الفلتر: activity_level
نوع السجلّ: تمرين متناوب
|
قائمة، تسوية | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الارتفاع
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الغلوكوز في الدم
نوع البيانات:
blood-glucoseمعلَمة الفلتر: blood_glucose
نوع السجلّ: عينة
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
نسبة الدهون في الجسم
نوع البيانات:
body-fatمعلَمة الفلتر: body_fat
نوع السجلّ: عينة
الأجهزة المتوافقة
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
السعرات الحرارية المحروقة في نطاق معدّل نبضات القلب
نوع البيانات:
calories-in-heart-rate-zoneمعلَمة الفلتر: calories_in_heart_rate_zone
نوع السجلّ: تمرين متناوب
دقة التخزين: دقيقة واحدة
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
درجة حرارة الجسم الأساسية
نوع البيانات:
core-body-temperatureمعلَمة الفلتر: core_body_temperature
نوع السجلّ: عينة
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
تغيُّر معدّل نبضات القلب اليومي
نوع البيانات:
daily-heart-rate-variabilityمعلَمة الفلتر: daily_heart_rate_variability
نوع السجلّ: يومي
الأجهزة المتوافقة
|
قائمة، تسوية | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
مناطق معدّل نبضات القلب اليومية
نوع البيانات:
daily-heart-rate-zonesمعلَمة الفلتر: daily_heart_rate_zones
نوع السجلّ: يومي
|
قائمة، تسوية | .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-resting-heart-rateمعلَمة الفلتر: daily_resting_heart_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 |
|
الحد الأقصى لاستهلاك الأكسجين يوميًا
نوع البيانات:
daily-vo2-maxمعلَمة الفلتر: daily_vo2_max
نوع السجلّ: يومي
الأجهزة المتوافقة
|
قائمة، تسوية | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
المسافة
نوع البيانات:
distanceمعلَمة الفلتر: distance
نوع السجلّ: تمرين متناوب
دقة التخزين: دقيقة واحدة
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
تخطيط القلب الكهربائي (ECG)
نوع البيانات:
electrocardiogramمعلَمة الفلتر: electrocardiogram
نوع السجلّ: الجلسة
الأجهزة المتوافقة
|
قائمة | .ecg.readonly |
|
التمارين الرياضية
dataType:
exerciseمعلَمة الفلتر: exercise
نوع السجلّ: الجلسة
الأجهزة المتوافقة
|
list, get, reconcile, create, update, batchDelete | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الطوابق
|
reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الطعام
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
وحدة قياس الطعام
نوع البيانات:
food-measurement-unitمعلَمة الفلتر: food_measurement_unit
نوع السجلّ: طعام
الأجهزة المتوافقة
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
معدّل نبضات القلب
نوع البيانات:
heart-rateمعلَمة الفلتر: heart_rate
نوع السجلّ: عينة
دقة التخزين: ثانية واحدة (1 ثانية)
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .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 |
|
الارتفاع
|
list, get, reconcile, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
سجلّ الترطيب
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
إشعار اضطراب نظم القلب
نوع البيانات:
irregular-rhythm-notificationمعلَمة الفلتر: irregular_rhythm_notification
نوع السجلّ: الجلسة
|
قائمة | .irn.readonly |
|
فترة الدورة الشهرية
نوع البيانات:
menstrual-periodمعلَمة الفلتر: menstrual_period
نوع السجلّ: تمرين متناوب
|
create وupdate وbatchDelete | .reproductive_health.writeonly |
|
الحالات المزاجية
|
create وupdate وbatchDelete | .mindfulness.writeonly |
|
سجلّ التغذية
نوع البيانات:
nutrition-logمعلَمة الفلتر: nutrition_log
نوع السجلّ: الجلسة
الأجهزة المتوافقة
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
اختبار الإباضة
|
create وupdate وbatchDelete | .reproductive_health.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 |
|
الحد الأقصى لاستهلاك الأكسجين أثناء الجري
نوع البيانات:
run-vo2-maxمعلَمة الفلتر: run_vo2_max
نوع السجلّ: عينة
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
فترات الخمول
نوع البيانات:
sedentary-periodمعلَمة الفلتر: sedentary_period
نوع السجلّ: تمرين متناوب
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
موسيقى للنوم
dataType:
sleepمعلَمة الفلتر: sleep
نوع السجلّ: الجلسة
الأجهزة المتوافقة
|
list, get, reconcile, create, update, batchDelete | .sleep.readonly.sleep.writeonly |
|
الخطوات
نوع البيانات:
stepsمعلَمة الفلتر: steps
نوع السجلّ: تمرين متناوب
دقة التخزين: دقيقة واحدة
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
بيانات أطوال السباحة
نوع البيانات:
swim-lengths-dataمعلَمة الفلتر: swim_lengths_data
نوع السجلّ: تمرين متناوب
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الأعراض
|
create وupdate وbatchDelete | .logged_symptoms.writeonly |
|
الوقت الذي تم قضاؤه في منطقة معدّل نبضات القلب
نوع البيانات:
time-in-heart-rate-zoneمعلَمة الفلتر: time_in_heart_rate_zone
نوع السجلّ: تمرين متناوب
دقة التخزين: دقيقة واحدة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
إجمالي السعرات الحرارية
نوع البيانات:
total-caloriesمعلَمة الفلتر: total_calories
نوع السجلّ: تمرين متناوب
دقة التخزين: دقيقة واحدة
الأجهزة المتوافقة
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الحد الأقصى لاستهلاك الأكسجين
نوع البيانات:
vo2-maxمعلَمة الفلتر: vo2_max
نوع السجلّ: عينة
الأجهزة المتوافقة
|
قائمة، تسوية | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الوزن
نوع البيانات:
weightمعلَمة الفلتر: weight
نوع السجلّ: عينة
الأجهزة المتوافقة
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
قيود طلب البحث
عند طلب نقاط البيانات أو الملخّصات أو الملخّصات اليومية من واجهة برمجة التطبيقات، يجب مراعاة القيود التالية:
- متطلبات الفلترة: تتطلّب بعض أنواع البيانات المشتقة للقراءة فقط، مثل
total-calories، فلترًا يحدّد وقت بدء الفترة (باستخدام الوقت الفعلي أو المدني). - حدود نطاق طلب البحث: تفرض نقاط نهاية تجميع البيانات اليومية والملخّصة
حدودًا قصوى لنطاق طلب البحث استنادًا إلى نوع البيانات:
- نطاق طلب بحث أقصاه 14 يومًا لكل من
calories-in-heart-rate-zoneوheart-rateوactive-minutesوtotal-calories - نطاق طلب بحث يبلغ 90 يومًا كحدّ أقصى لجميع أنواع البيانات الأخرى
- نطاق طلب بحث أقصاه 14 يومًا لكل من
- حجم فترة التجميع: عند طلب نقطة النهاية
rollUp، يجب أن تكون مدةwindowSizeثانية واحدة على الأقل ("1s"). ويتم رفض المدد التي تقل عن ثانية واحدة باستخدامINVALID_ARGUMENT. بالإضافة إلى ذلك، اختَر قيمةwindowSizeتساوي أو تزيد عن دقة التخزين الأساسية لنوع البيانات (مثل"60s"لأنواع البيانات التي تتضمّن فواصل زمنية مدتها دقيقة واحدة، مثلstepsوdistance) لتجنُّب التوزيع غير المتساوي على الفواصل الزمنية الفرعية. لمعرفة التفاصيل، يُرجى الاطّلاع على حجم نافذة التجميع ودقة مساحة التخزين الأساسية.
أنواع البيانات اليومية مقابل بيانات الفترات
بالنسبة إلى مقاييس فسيولوجية معيّنة، مثل تغيُّر معدّل نبضات القلب (HRV) أو تشبّع الدم بالأكسجين (SpO2)، توفّر Google Health API نوعَين مختلفَين من البيانات: إصدار يومي وإصدار فترة. من المهم فهم الفرق بينهما لاختيار المقياس المناسب لحالة الاستخدام:
يومي: ملخّص واحد مجمّع مسبقًا لليوم بأكمله استخدِم هذه الطريقة للاطّلاع على المؤشرات العامة ولوحات البيانات اليومية لتوفير وقت المعالجة.
الفاصل الزمني: قياسات دقيقة وعالية الدقة يتم أخذها على مدار اليوم. استخدِم هذا الخيار لتحديد التقلّبات خلال اليوم أو إجراء تحليل مفصّل كل ساعة.
مدى توفّر البيانات
لا تتوفّر تعديلات على بيانات المستخدم إلا بعد مزامنة جهاز تتبُّع النشاط أو إدخال بيانات جديدة يدويًا في تطبيق Fitbit للأجهزة الجوّالة أو تطبيق الويب. ويمكن لجهاز Fitbit وتطبيق Fitbit للأجهزة الجوّالة المزامنة تلقائيًا كل 15 دقيقة عندما يكون تطبيق Fitbit مفتوحًا على الجهاز الجوّال ويكون الجهازان متصلَين بشبكة بيانات نشطة وضمن نطاق Bluetooth. إذا كان المستخدم يتتبّع النشاط باستخدام MobileTrack، تتم مزامنة البيانات كل ساعة طالما أنّ التطبيق مفتوح.
الاستعلام عن البيانات السابقة
من المزايا الأساسية لواجهة Google Health API إمكانية تتبُّع أداء المستخدم ومراقبة مؤشرات صحته الحيوية على مدار فترات زمنية طويلة. يمكنك طلب بيانات المستخدمين منذ أن تم تسجيلها، ولا تفرض واجهة برمجة التطبيقات أي قيود على مقدار البيانات السابقة التي يمكن أن يستهلكها تطبيقك.
ومع ذلك، تظل الاستعلامات عن البيانات السابقة خاضعة لحدود المعدّل العادية. لإدارة استقرار النظام ومنع الأحجام الكبيرة من الحِمل، تستخدم Google Health API تقسيم الصفحات تلقائيًا مع أحجام صفحات خاصة بنقاط النهاية. يُرجى مراعاة الحدود والسلوك التاليَين:
- تقسيم النتائج على عدّة صفحات تلقائيًا: إذا طلبت نطاقًا طويلاً من البيانات، ستعرض واجهة برمجة التطبيقات الصفحة الأولى فقط من النتائج التي تصل إلى الحد الأقصى لحجم الصفحة لنقطة النهاية هذه، بالإضافة إلى
nextPageToken. يجب استخدامnextPageTokenلطلب الصفحات اللاحقة. - أحجام الصفحات المتغيرة: تعتمد حدود التحديد على نقطة النهاية ونوع البيانات. بالنسبة إلى معظم أنواع البيانات، يبلغ الحد الأقصى لحجم الصفحة 10,000.
ومع ذلك، بالنسبة إلى أنواع بيانات معيّنة، مثل
exerciseوsleep، يبلغ الحدّ الأقصى لحجم الصفحة التلقائي 25. على سبيل المثال، إذا طلب أحد العملاء جميع بيانات النوم خلال السنوات الـ 10 الماضية، ستعرض واجهة برمجة التطبيقات 25 جلسة نوم فقط في الصفحة الأولى. - القيود المفروضة على النطاق الزمني لعمليات التجميع: بالنسبة إلى نقاط نهاية تجميع البيانات (مثل
rollUpوdailyRollUp)، يتم حصر النطاقات الزمنية لطلبات البحث استنادًا إلى نوع البيانات:- نطاق زمني أقصاه 14 يومًا لكل من
calories-in-heart-rate-zoneوheart-rateوactive-minutesوtotal-calories - نطاق أقصى يبلغ 90 يومًا لجميع أنواع البيانات المجمّعة الأخرى
- نطاق زمني أقصاه 14 يومًا لكل من
استنادًا إلى حجم البيانات السابقة التي يحتاجها تطبيقك، سيتطلّب استرداد مجموعة البيانات بأكملها تقسيم الصفحات إلى أجزاء بالتسلسل. يجب مراعاة ذلك عند تصميم عملية مزامنة البيانات في تطبيقك.
لضمان تحقيق الأداء الأمثل وتجنُّب أخطاء واجهة برمجة التطبيقات، اتّبِع الإرشادات التالية عند طلب بيانات سابقة:
مزامنة البيانات على مراحل (التحميل السريع مقابل التشغيل على البارد)
- التحميل "السريع" الأوّلي: يتم جلب وعرض بيانات آخر 7 إلى 14 يومًا فقط خلال تسلسل التحميل الأساسي. يضمن ذلك أن يرى المستخدمون البيانات على الفور بدون انتظار الاستعلامات التي تستغرق وقتًا طويلاً.
- التحميل "البارد" في الخلفية: تفويض عملية استرجاع البيانات السابقة إلى قائمة انتظار غير متزامنة ذات أولوية أقل أو عملية في الخلفية بعد عرض واجهة المستخدم الأساسية
تقسيم طلب البحث إلى أجزاء للتجميع
- بما أنّ نقاط نهاية التجميع والتجميع اليومي تفرض حدًا أقصى للنطاق الزمني (14 أو 90 يومًا حسب نوع البيانات)، عليك تقسيم طلبات البحث الكبيرة الخاصة بالتجميع السابق إلى فواصل زمنية أصغر ومتسلسلة ضمن هذه الحدود.
- يمكنك معالجة الطلبات الفرعية هذه على شكل دفعات أو تسلسل بشكل آمن للالتزام بحدود التنفيذ المتزامن والحفاظ على مؤشرات التقدّم الثابتة في واجهة المستخدم.
الاستفادة من عمليات التجميع المُسبقة
إعادة هيكلة لوحات البيانات الخاصة بالنظرة العامة ومخططات المؤشرات لاستخدام نقاط نهاية مجمّعة مسبقًا وملخّصة (مثل DailyRollUpDataPoints)، ما سيؤدي إلى تقليل الحمل الزائد للحوسبة بشكل كبير في الخلفية ووقت نقل البيانات إلى العميل عبر الشبكة
معالجة الأخطاء المرنة (عمليات إعادة المحاولة الذكية)
- يجب تنفيذ معالجة صارمة للتراجع الأسي عند مواجهة حدود المعدّل (
429 Too Many Requests) ومهلات بوابة الخادم (504 Gateway Timeout)، وعدم إعادة محاولة إرسال الحِزم الكبيرة التي تعذّر إرسالها على الفور. تؤدي عمليات إعادة المحاولة الفورية إلى زيادة الازدحام في الخلفية وتفاقم تدهور أداء النظام.
إمكانية وصول الجهات الخارجية
لا يمكن لأجهزة Fitbit التواصل مباشرةً مع التطبيقات أو الخدمات التابعة لجهات خارجية. تم تصميم هذه الأجهزة للتواصل والمزامنة حصريًا مع تطبيق Fitbit للأجهزة الجوّالة.
تتم مزامنة البيانات تلقائيًا على مدار اليوم عندما يكون تطبيق Fitbit مفتوحًا، أو كل 15 دقيقة إذا كان البلوتوث نشطًا وكان التطبيق يعمل في الخلفية. بعد اكتمال عملية المزامنة هذه، تصبح البيانات متاحة للخدمات التابعة لجهات خارجية من خلال Google Health API.
معايير المسافة
يتم قياس مسافات التمارين الرياضية، مثل elevationGainMillimeters، بالملليمترات كوحدة قياس معيارية للأسباب التالية:
- الحفاظ على دقة البيانات: السبب الأكثر أهمية لاستخدام الملليمترات هو ضمان عدم فقدان أي دقة في البيانات التي نقرأها ونقدّمها. يتيح لنا استخدام وحدة دقيقة مثل المليمترات تمثيل القياسات بدقة عالية.
- التوحيد: المليمترات هي وحدة القياس الموحَّدة المصمَّمة في جميع خدماتنا. ويساعد هذا الاتساق في ضمان تجربة موحّدة للمطوّرين الذين يتفاعلون مع أجزاء مختلفة من واجهة برمجة التطبيقات.
- توافق نظام القياس الواسع النطاق: يسهّل استخدام وحدة أساسية مثل المليمترات على المطوّرين التحويل إلى أي وحدة أخرى يختارونها، بغض النظر عمّا إذا كانوا يعملون بالنظام المتري أو الإمبراطوري أو غيرهما من أنظمة القياس.
اختلاف طول النهار
تعطي Health API الأولوية لوقت المستخدم من أجل مراعاة اختلاف طول اليوم بسبب التوقيت الصيفي أو السفر. يتم تخزين كل نقطة بيانات مع طابع زمني فعلي بالتوقيت العالمي المنسَّق (UTC) وإزاحة التوقيت العالمي المنسَّق النشطة في وقت وقوع الحدث. يتيح ذلك للنظام ما يلي:
- ربط الحدث بلحظة زمنية محددة.
- تصحيح الوقت ليناسب السياق المحلي للمستخدم من أجل التجميع
نظام التوقيت الصيفي
عندما يتم تطبيق نظام التوقيت الصيفي، يؤدي "الرجوع إلى التوقيت العادي" إلى يوم مدني مدته 25 ساعة، وستتضمّن مجموعة الحسابات لهذا التاريخ 25 ساعة من البيانات. يؤدي "تغيير الوقت إلى التوقيت الصيفي" إلى يوم مدني مدته 23 ساعة، حيث يتم الرجوع إلى التوقيت العادي.
سفر
ويمكن أن يؤدي السفر عبر المناطق الزمنية إلى اختلافات أكبر في المدة الفعلية ليوم مدني واحد.
استخدِم نقطة النهاية dailyRollUp لتسوية الاختلافات في المنطقة الزمنية. وتنسب هذه الميزة البيانات تلقائيًا إلى يوم التقويم الذي تم تسجيلها فيه وفقًا للتوقيت المحلي للمستخدم، ما يؤدي إلى "ربط" اليوم ببعضه على الرغم من تغيُّر المنطقة الزمنية.