Google Health API के डेटा टाइप

यहां दी गई टेबल में, डेटा टाइप की पूरी सूची दी गई है. इसमें कई कॉलम हैं, ताकि आपको Google Health API में हर टाइप के डेटा को दिखाने के तरीके के बारे में पता चल सके. साथ ही, यह भी पता चल सके कि हर टाइप का डेटा किस स्कोप में उपलब्ध है.

टेबल: Google Health API के डेटा टाइप
डेटा टाइप
  dataType
  filter पैरामीटर
Record
type
उपलब्ध
कार्रवाइयां
दायरा वेबबुक
support
ट्रू ज़ीरो
की सुविधा
खर्च की गई ऐक्टिव एनर्जी
  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
ऊंचाई
  altitude
  altitude
इंटरवल 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
रोज़ का VO2 मैक्स
  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
इलेक्ट्रोकार्डियोग्राम (ईसीजी)
  electrocardiogram
  electrocardiogram
सेशन सूची .ecg.readonly
एक्सरसाइज़
  exercise
  exercise
सेशन list, get, reconcile, create, update, batchDelete .activity_and_fitness.readonly
.activity_and_fitness.writeonly
फ़्लोर
  floors
  floors
इंटरवल reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
खाना
  food
  food
खाना सूची, पाएं .nutrition.readonly
.nutrition.writeonly
खाने की चीज़ों के मेज़रमेंट की यूनिट
  food-measurement-unit
  food_measurement_unit
खाना सूची, पाएं .nutrition.readonly
.nutrition.writeonly
दिल की धड़कन की दर
  heart-rate
  heart_rate
नमूना 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
ऊंचाई
  height
  height
नमूना list, get, reconcile, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
हाइड्रेशन का लॉग
  hydration-log
  hydration_log
सेशन 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
मूड
  moods
  moods
नमूना create, update, batchDelete .mindfulness.writeonly
पोषण से जुड़ा डेटा लॉग करें
  nutrition-log
  nutrition_log
नमूना list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
ऑव्युलेशन टेस्ट
  ovulation-test
  ovulation_test
नमूना 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
दौड़ने के दौरान का VO2 मैक्स
  run-vo2-max
  run_vo2_max
नमूना list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Sedentary Period
  sedentary-period
  sedentary_period
इंटरवल list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
नींद
  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
लक्षण
  symptoms
  symptoms
नमूना 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
  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 के लिए, एक फ़िल्टर की ज़रूरत होती है. इसमें इंटरवल के शुरू होने का समय (फ़िज़िकल या सिविल टाइम का इस्तेमाल करके) बताया जाता है.
  • क्वेरी रेंज की सीमाएं: calories-in-heart-rate-zone, heart-rate, active-minutes, और total-calories के लिए क्वेरी रेंज की ज़्यादा से ज़्यादा सीमा 14 दिन है. अन्य सभी डेटा टाइप के लिए, क्वेरी की ज़्यादा से ज़्यादा सीमा 90 दिन है.

डेटा की उपलब्धता

उपयोगकर्ता के डेटा में अपडेट सिर्फ़ तब उपलब्ध होते हैं, जब वह गतिविधि ट्रैकर को सिंक करता है या Fitbit का मोबाइल ऐप्लिकेशन या वेब ऐप्लिकेशन में मैन्युअल तरीके से नया डेटा डालता है. Fitbit डिवाइस और Fitbit ऐप्लिकेशन, हर 15 मिनट में अपने-आप सिंक हो सकते हैं. इसके लिए, Fitbit ऐप्लिकेशन का मोबाइल डिवाइस पर खुला होना ज़रूरी है. साथ ही, दोनों के बीच डेटा कनेक्शन चालू होना चाहिए और वे ब्लूटूथ की रेंज में होने चाहिए. अगर उपयोगकर्ता MobileTrack का इस्तेमाल करके गतिविधि ट्रैक कर रहा है, तो ऐप्लिकेशन खुला होने पर MobileTrack हर घंटे सिंक होता है.

पुराने डेटा के बारे में क्वेरी करना

Google Health API का एक मुख्य फ़ायदा यह है कि इससे किसी व्यक्ति की परफ़ॉर्मेंस को ट्रैक किया जा सकता है. साथ ही, लंबे समय तक उसकी सेहत से जुड़ी ज़रूरी जानकारी पर नज़र रखी जा सकती है. उपयोगकर्ता के डेटा को तब तक क्वेरी किया जा सकता है, जब तक उसे रिकॉर्ड किया गया है. एपीआई, आपके ऐप्लिकेशन के इस्तेमाल किए जा सकने वाले पुराने डेटा की मात्रा पर कोई सीमा या पाबंदी नहीं लगाता है.

हालांकि, पुराने डेटा के लिए क्वेरी करने पर, अब भी स्टैंडर्ड रेट लिमिट लागू होती हैं. इन सीमाओं के हिसाब से एपीआई कॉल की संख्या कम करने के लिए, Google Health API किसी तारीख की सीमा के हिसाब से डेटा का अनुरोध करने की सुविधा देता है. पेज नंबर के हिसाब से डेटा बांटने और अनुरोध की सीमाओं के बारे में यहां दी गई जानकारी पढ़ें:

  • हर एंडपॉइंट, हर पेज पर ज़्यादा से ज़्यादा 10,000 डेटा पॉइंट दिखाता है.
  • क्वेरी के लिए तारीख की सीमा, हर अनुरोध के लिए 14 से 90 दिनों के बीच होनी चाहिए.

आपके ऐप्लिकेशन को जितने पुराने डेटा की ज़रूरत होती है उसके हिसाब से, पूरे डेटासेट को वापस पाने के लिए, क्रम से कई अनुरोध करने पड़ सकते हैं. इसमें ज़्यादा समय भी लग सकता है. अपने ऐप्लिकेशन के डेटा को सिंक करने की प्रोसेस डिज़ाइन करते समय, इस बात का ध्यान रखें.

बेहतर परफ़ॉर्मेंस पाने और एपीआई से जुड़ी गड़बड़ियों से बचने के लिए, पुराने डेटा को क्वेरी करते समय इन दिशा-निर्देशों का पालन करें:

फ़ेज़ के हिसाब से डेटा सिंक करना (हॉट वर्सेस कोल्ड लोड)

  • शुरुआती "हॉट" लोड: प्राइमरी लोड सीक्वेंस के दौरान, सिर्फ़ पिछले 7 से 14 दिनों का डेटा फ़ेच और रेंडर करें. इससे यह पक्का होता है कि उपयोगकर्ताओं को डेटा तुरंत दिखे. उन्हें लंबी अवधि तक चलने वाली क्वेरी के लिए इंतज़ार न करना पड़े.
  • बैकग्राउंड में "कोल्ड" लोड: प्राइमरी यूज़र इंटरफ़ेस (यूआई) रेंडर होने के बाद, पुराने डेटा को एसिंक्रोनस, कम प्राथमिकता वाली कतार या बैकग्राउंड प्रोसेस में भेजें.

समय के आधार पर क्वेरी को हिस्सों में बांटना

  • एक ही एपीआई कॉल में, कई सालों या कई महीनों के डेटा का अनुरोध न करें. पुरानी क्वेरी को छोटे-छोटे हिस्सों में बांटें और उन्हें क्रम से लगाएं. उदाहरण के लिए, हर अनुरोध के लिए एक हफ़्ते का डेटा.
  • इन सब-क्वेरी को बैच या क्रम में सुरक्षित तरीके से रखें, ताकि एक साथ कई अनुरोध करने की सीमा का पालन किया जा सके और यूज़र इंटरफ़ेस (यूआई) पर प्रोग्रेस इंडिकेटर को स्थिर रखा जा सके.

पहले से एग्रीगेट किए गए रोल-अप का फ़ायदा उठाना

खास जानकारी वाले डैशबोर्ड और रुझान चार्ट को फिर से व्यवस्थित करें, ताकि पहले से एग्रीगेट किए गए डेटा और खास जानकारी वाले एंडपॉइंट (जैसे, DailyRollUpDataPoints) का इस्तेमाल किया जा सके. इससे बैकएंड पर कंप्यूटिंग का ओवरहेड और क्लाइंट को डेटा ट्रांसफ़र करने में लगने वाला समय काफ़ी कम हो जाएगा.

गड़बड़ी ठीक करने की बेहतर सुविधा (स्मार्ट तरीके से फिर से कोशिश करना)

  • जब दर की सीमाएं (429 Too Many Requests) और सर्वर गेटवे टाइमआउट (504 Gateway Timeout) की समस्याएं आएं, तो स्ट्रिक्ट एक्सपोनेंशियल बैकऑफ़ हैंडलिंग लागू करें. बड़े और फ़ेल हो चुके पेलोड को तुरंत फिर से भेजने की कोशिश न करें. तुरंत फिर से कोशिश करने से, बैकएंड में ज़्यादा ट्रैफ़िक आता है और सिस्टम की परफ़ॉर्मेंस खराब हो जाती है.
  • अगर कोई क्वेरी बार-बार टाइम आउट हो जाती है, तो अपने-आप छोटी टाइम विंडो पर वापस आ जाएं. उदाहरण के लिए, एक हफ़्ते के डेटा को तीन दिन के डेटा में बदल दें.

तीसरे पक्ष का ऐक्सेस

Fitbit डिवाइस, तीसरे पक्ष के ऐप्लिकेशन या सेवाओं के साथ सीधे तौर पर कम्यूनिकेट नहीं कर सकते. इन डिवाइसों को सिर्फ़ Fitbit मोबाइल ऐप्लिकेशन के साथ कम्यूनिकेट और सिंक करने के लिए डिज़ाइन किया गया है.

डिवाइस, दिन भर में अपने-आप डेटा सिंक करता है. ऐसा तब होता है, जब Fitbit ऐप्लिकेशन खुला हो. अगर ब्लूटूथ चालू है और ऐप्लिकेशन बैकग्राउंड में चल रहा है, तो हर 15 मिनट में डेटा सिंक होता है. सिंक करने की यह प्रोसेस पूरी होने के बाद, Google Health API के ज़रिए तीसरे पक्ष की सेवाओं के लिए डेटा उपलब्ध हो जाता है.

दूरी के स्टैंडर्ड

एक्सरसाइज़ की दूरी, जैसे कि elevationGainMillimeters को मिलीमीटर में मापा जाता है. ऐसा इन वजहों से किया जाता है:

  1. डेटा को सटीक बनाए रखना: मिलीमीटर का इस्तेमाल करने की सबसे अहम वजह यह है कि हम जो डेटा पढ़ते और देते हैं उसमें कोई भी गड़बड़ी न हो. मिलीमीटर जैसी छोटी इकाई का इस्तेमाल करने से, हम मेज़रमेंट को ज़्यादा सटीक तरीके से दिखा पाते हैं.
  2. स्टैंडर्ड यूनिट: हमारी सभी सेवाओं में, मिलीमीटर को स्टैंडर्ड यूनिट के तौर पर इस्तेमाल किया जाता है. इससे यह पक्का करने में मदद मिलती है कि एपीआई के अलग-अलग हिस्सों से इंटरैक्ट करने वाले डेवलपर को एक जैसा अनुभव मिले.
  3. मेज़रमेंट सिस्टम के लिए बेहतर सपोर्ट: मिलीमीटर जैसी बुनियादी इकाई का इस्तेमाल करने से, डेवलपर के लिए किसी भी दूसरी चुनी गई इकाई में बदलना आसान हो जाता है. इससे कोई फ़र्क़ नहीं पड़ता कि वे मीट्रिक, इंपीरियल या अन्य मेज़रमेंट सिस्टम के साथ काम कर रहे हैं.

दिन की अलग-अलग अवधि

Health API, समय को इस तरह से मैनेज करता है कि उपयोगकर्ता के समय को प्राथमिकता दी जा सके. इससे दिन की अवधि में होने वाले बदलावों को ध्यान में रखा जा सकता है. ये बदलाव, डेलाइट सेविंग टाइम या यात्रा की वजह से होते हैं. हर डेटा पॉइंट को दो टाइमस्टैंप के साथ सेव किया जाता है. पहला, यूटीसी टाइमस्टैंप और दूसरा, इवेंट के समय यूटीसी से ऑफ़सेट. इससे सिस्टम को ये काम करने की अनुमति मिलती है:

  • इवेंट को किसी सटीक फ़िज़िकल इंस्टैंट पर मैप करें.
  • उपयोगकर्ता के स्थानीय संदर्भ के हिसाब से समय को सही करें, ताकि उसे एग्रीगेट किया जा सके.

डेलाइट सेविंग टाइम

डेलाइट सेविंग टाइम (डीएसटी) के दौरान, "फ़ॉल बैक" की वजह से सिविल डे 25 घंटे का हो जाता है. इसलिए, उस तारीख के रोलअप में 25 घंटे का डेटा शामिल होगा. "स्प्रिंग फ़ॉरवर्ड" के दौरान, दिन 23 घंटे का हो जाता है. ऐसा इसलिए होता है, क्योंकि समय को वापस स्टैंडर्ड टाइम पर सेट कर दिया जाता है.

यात्रा

अलग-अलग टाइम ज़ोन में यात्रा करने से, एक दिन की अवधि में और भी ज़्यादा अंतर आ सकता है.

टाइम ज़ोन में अंतर को ठीक करने के लिए, dailyRollUp एंडपॉइंट का इस्तेमाल करें. यह उपयोगकर्ता के स्थानीय समय के हिसाब से, डेटा को उस कैलेंडर दिन के हिसाब से अपने-आप एट्रिब्यूट करता है जिस दिन उसे रिकॉर्ड किया गया था. इससे समय क्षेत्र में बदलाव होने के बावजूद, दिन के हिसाब से डेटा को "स्टिच" किया जा सकता है.