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

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

टेबल: Google Health API के डेटा टाइप
डेटा टाइप
  dataType
  filter पैरामीटर
उपलब्ध
कार्रवाइयां
दायरा
खर्च की गई ऐक्टिव एनर्जी
active-energy-burned
active_energy_burned
रिकॉर्ड टाइप: अंतराल
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ऐक्टिव मिनट
active-minutes
active_minutes
रिकॉर्ड टाइप: अंतराल

संगत डिवाइस

  • Fitbit Air
  • Fitbit Alta
  • Fitbit Alta HR
  • Fitbit Blaze
  • Fitbit Charge 2
  • Fitbit Charge 3
  • Fitbit Flex 2
  • Fitbit Inspire
  • Fitbit Inspire HR
  • Pixel Watch 4
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
ब्लड ग्लूकोज़
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
धड़कन की दर वाले ज़ोन की रोज़ की जानकारी
सूची बनाना, मेल करना .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
इलेक्ट्रोकार्डियोग्राम (ईसीजी)
electrocardiogram
electrocardiogram
रिकॉर्ड टाइप: सेशन

संगत डिवाइस

सूची .ecg.readonly
एक्सरसाइज़
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
खाना
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
रिकॉर्ड टाइप: अंतराल

संगत डिवाइस

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 मैक्स
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 एंडपॉइंट के हिसाब से पेज के साइज़ के साथ अपने-आप पेज नंबर डालने की सुविधा का इस्तेमाल करता है. इन बातों का ध्यान रखें:

  • अपने-आप पेज पर बांटने की सुविधा: अगर डेटा के लंबे स्पैन के लिए क्वेरी की जाती है, तो एपीआई सिर्फ़ उस एंडपॉइंट के लिए पेज के साइज़ की सीमा तक नतीजों का पहला पेज दिखाएगा. साथ ही, nextPageToken भी दिखाएगा. इसके बाद के पेजों का अनुरोध करने के लिए, आपको nextPageToken का इस्तेमाल करना होगा.
  • पेज के अलग-अलग साइज़: कैपिंग की सीमाएं, एंडपॉइंट और डेटा टाइप पर निर्भर करती हैं. ज़्यादातर डेटा टाइप के लिए, पेज का साइज़ ज़्यादा से ज़्यादा 10,000 तक सीमित होता है. हालांकि, कुछ डेटा टाइप, जैसे कि exercise और sleep के लिए, डिफ़ॉल्ट और ज़्यादा से ज़्यादा पेज साइज़ 25 पर सेट होता है. उदाहरण के लिए, अगर कोई क्लाइंट पिछले 10 सालों का नींद से जुड़ा सारा डेटा मांगता है, तो एपीआई पहले पेज पर सिर्फ़ 25 स्लीप सेशन दिखाएगा.
  • डेटा रोलअप करने की तारीख की सीमा से जुड़ी पाबंदियां: डेटा रोलअप और एग्रीगेशन एंडपॉइंट (जैसे, rollUp और dailyRollUp) के लिए, क्वेरी की तारीख की सीमाओं पर पाबंदियां लगाई जाती हैं. ये पाबंदियां, डेटा टाइप के आधार पर लगाई जाती हैं:
    • calories-in-heart-rate-zone, heart-rate, active-minutes, और total-calories के लिए, ज़्यादा से ज़्यादा 14 दिनों की सीमा.
    • रोलअप किए गए अन्य सभी डेटा टाइप के लिए, ज़्यादा से ज़्यादा 90 दिनों की सीमा.

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

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

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

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

एग्रीगेशन के लिए क्वेरी को हिस्सों में बांटना

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

पहले से एग्रीगेट किए गए रोल-अप का इस्तेमाल करना

खास जानकारी वाले डैशबोर्ड और रुझान चार्ट को फिर से व्यवस्थित करें, ताकि पहले से एग्रीगेट किए गए डेटा और खास जानकारी वाले एंडपॉइंट (जैसे, 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 एंडपॉइंट का इस्तेमाल करें. यह उपयोगकर्ता के स्थानीय समय के हिसाब से, उस दिन के कैलेंडर में डेटा को अपने-आप एट्रिब्यूट करता है जिस दिन इसे रिकॉर्ड किया गया था. इससे समय क्षेत्र में बदलाव होने के बावजूद, दिन के हिसाब से डेटा को "स्टिच" किया जा सकता है.