इस टेबल में, डेटा टाइप की पूरी सूची दी गई है. इसमें कई कॉलम हैं, ताकि आपको यह समझने में मदद मिल सके कि Google Health API में हर टाइप को कैसे दिखाया जाता है. साथ ही, यह भी बताया गया है कि हर टाइप किस दायरे में उपलब्ध है.
डेटा टाइप फ़ील्ड
Google Health API के डेटा टाइप की टेबल में कई फ़ील्ड कॉलम शामिल हैं. इनसे आपको हर डेटा टाइप की जानकारी और ज़रूरी शर्तों को समझने में मदद मिलती है. ये कॉलम इस तरह के होते हैं:
| फ़ील्ड | ब्यौरा |
|---|---|
dataType |
हाइफ़न से अलग किया गया आइडेंटिफ़ायर (उदाहरण के लिए, active-minutes), जिसका इस्तेमाल एंडपॉइंट यूआरएल में किया जाता है. |
filter पैरामीटर |
अंडरस्कोर से अलग किया गया आइडेंटिफ़ायर (उदाहरण के लिए, active_minutes). इसका इस्तेमाल, हर दिन के रोलअप और रोलअप के अनुरोधों में dataType फ़िल्टर पैरामीटर की वैल्यू के तौर पर किया जाता है. |
| रिकॉर्ड टाइप | इससे रिकॉर्ड किए गए डेटा के स्ट्रक्चर और फ़ॉर्मैट का पता चलता है. यह डेटा पॉइंट के संसाधन प्रज़ेंटेशन के साथ अलाइन होता है. ये वैल्यू इस्तेमाल की जा सकती हैं:
|
| उपलब्ध कार्रवाइयां | डेटा टाइप के लिए इस्तेमाल किए जा सकने वाले एपीआई के तरीकों की सूची दिखाता है. जैसे, list, create, और rollUp. |
| स्कोप | डेटा टाइप को ऐक्सेस करने के लिए ज़रूरी OAuth स्कोप. |
| वेबहुक की सुविधा | इससे पता चलता है कि नया डेटा सिंक होने पर, डेटा टाइप वेबहुक का इस्तेमाल करके रीयल-टाइम सूचनाएं भेज सकता है. |
| ट्रू ज़ीरो की सहायता टीम | इससे पता चलता है कि डेटा टाइप, शून्य वैल्यू को रिकॉर्ड करने की सुविधा देता है. इससे, शून्य वैल्यू (जैसे, शून्य ऐक्टिव मिनट) और मौजूद न होने वाले या रिकॉर्ड न किए गए डेटा के बीच अंतर किया जा सकता है. |
| स्टोरेज रिज़ॉल्यूशन | डेटा पॉइंट को सेव करने के लिए, रिकॉर्डिंग या सैंपलिंग का कम से कम इंटरवल (उदाहरण के लिए, steps के लिए एक मिनट). रोलअप के लिए, यह कम से कम सुझाए गए windowSize को दिखाता है, ताकि सब-इंटरवल डेटा आर्टफ़ैक्ट के बिना, एग्रीगेशन को समान रूप से डिस्ट्रिब्यूट किया जा सके. |
| इस सुविधा के साथ काम करने वाले डिवाइस | फ़िज़िकल डिवाइसों की ऐसी सूची जिसे बड़ा किया जा सकता है. ये डिवाइस, Fitbit ऐप्लिकेशन का इस्तेमाल करके, इस डेटा टाइप को Google Health API के साथ रिकॉर्ड और सिंक कर सकते हैं. |
| डेटा टाइप | उपलब्ध कार्रवाइयां |
दायरा |
|---|---|---|
|
खर्च की गई ऐक्टिव एनर्जी
dataType:
active-energy-burnedfilter parameter: active_energy_burned
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ऐक्टिव मिनट
dataType:
active-minutesfilter parameter: active_minutes
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ऐक्टिव ज़ोन मिनट
dataType:
active-zone-minutesfilter parameter: active_zone_minutes
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
गतिविधि का लेवल
|
सूची, मिलान करें | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ऊंचाई
dataType:
altitudefilter parameter: altitude
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ब्लड ग्लूकोज़
dataType:
blood-glucosefilter parameter: blood_glucose
रिकॉर्ड टाइप: सैंपल
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
बॉडी फ़ैट
dataType:
body-fatfilter parameter: body_fat
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
धड़कन की दर वाले ज़ोन में बर्न की गई कैलोरी
dataType:
calories-in-heart-rate-zonefilter parameter: calories_in_heart_rate_zone
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
शरीर के अंदरूनी अंगों का तापमान
dataType:
core-body-temperaturefilter parameter: core_body_temperature
रिकॉर्ड टाइप: सैंपल
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
धड़कन की दर में रोज़ाना होने वाले उतार-चढ़ाव का डेटा
dataType:
daily-heart-rate-variabilityfilter parameter: daily_heart_rate_variability
रिकॉर्ड टाइप: रोज़ाना
संगत डिवाइस
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
धड़कन की दर वाले ज़ोन की रोज़ की जानकारी
dataType:
daily-heart-rate-zonesfilter parameter: daily_heart_rate_zones
रिकॉर्ड टाइप: रोज़ाना
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
ऑक्सीजन की मात्रा का रोज़ का डेटा
dataType:
daily-oxygen-saturationfilter parameter: daily_oxygen_saturation
रिकॉर्ड टाइप: रोज़ाना
संगत डिवाइस
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
सांस की दर का रोज़ का डेटा
dataType:
daily-respiratory-ratefilter parameter: daily_respiratory_rate
रिकॉर्ड टाइप: रोज़ाना
संगत डिवाइस
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
आराम करते समय धड़कन की दर का रोज़ का डेटा
dataType:
daily-resting-heart-ratefilter parameter: daily_resting_heart_rate
रिकॉर्ड टाइप: हर दिन
संगत डिवाइस
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
सोने के समय के तापमान का रोज़ाना का डेटा
dataType:
daily-sleep-temperature-derivationsfilter parameter: daily_sleep_temperature_derivations
रिकॉर्ड टाइप: रोज़ाना
संगत डिवाइस
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
हर दिन का वीओ2 मैक्स
dataType:
daily-vo2-maxfilter parameter: daily_vo2_max
रिकॉर्ड टाइप: रोज़ाना
संगत डिवाइस
|
सूची, मिलान करें | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
दूरी
dataType:
distancefilter parameter: distance
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
इलेक्ट्रोकार्डियोग्राम (ईसीजी)
dataType:
electrocardiogramfilter parameter: electrocardiogram
रिकॉर्ड टाइप: सेशन
संगत डिवाइस
|
सूची | .ecg.readonly |
|
कसरत
dataType:
exercisefilter parameter: exercise
रिकॉर्ड टाइप: सेशन
संगत डिवाइस
|
list, get, reconcile, create, update, batchDelete | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
फ़्लोर
dataType:
floorsfilter parameter: floors
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
|
reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
खाना
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
खाने को मापने की इकाई
dataType:
food-measurement-unitfilter parameter: food_measurement_unit
रिकॉर्ड टाइप: भोजन
संगत डिवाइस
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
धड़कन की दर
dataType:
heart-ratefilter parameter: heart_rate
रिकॉर्ड टाइप: सैंपल
स्टोरेज से जुड़ी समस्या हल करने में लगने वाला समय: एक सेकंड
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
धड़कन की दर में उतार-चढ़ाव
dataType:
heart-rate-variabilityfilter parameter: 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 |
|
दिल की धड़कन अनियमित होने पर मिलने वाली सूचनाएं
dataType:
irregular-rhythm-notificationfilter parameter: irregular_rhythm_notification
रिकॉर्ड टाइप: सेशन
|
सूची | .irn.readonly |
|
माहवारी
dataType:
menstrual-periodfilter parameter: menstrual_period
रिकॉर्ड टाइप: इंटरवल
|
create, update, batchDelete | .reproductive_health.writeonly |
|
मूड
|
create, update, batchDelete | .mindfulness.writeonly |
|
पोषण से जुड़ा डेटा लॉग करें
dataType:
nutrition-logfilter parameter: nutrition_log
रिकॉर्ड टाइप: सेशन
संगत डिवाइस
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
ऑव्युलेशन टेस्ट
dataType:
ovulation-testfilter parameter: ovulation_test
रिकॉर्ड टाइप: सैंपल
|
create, update, batchDelete | .reproductive_health.writeonly |
|
ऑक्सीजन की मात्रा
dataType:
oxygen-saturationfilter parameter: oxygen_saturation
रिकॉर्ड टाइप: सैंपल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
संगत डिवाइस
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
सोते समय सांस की दर की खास जानकारी
dataType:
respiratory-rate-sleep-summaryfilter parameter: respiratory_rate_sleep_summary
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस
|
सूची, मिलान करें | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
दौड़ते समय वीओ2 मैक्स
dataType:
run-vo2-maxfilter parameter: run_vo2_max
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
बैठे रहने की अवधि
dataType:
sedentary-periodfilter parameter: sedentary_period
रिकॉर्ड टाइप: इंटरवल
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
त्वचा का तापमान मापने वाले सेंसर
v4beta
dataType:
skin-temperature-sensorsfilter parameter: skin_temperature_sensors
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस |
सूची | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
सोने के समय का तापमान
dataType:
sleepfilter parameter: sleep
रिकॉर्ड टाइप: सेशन
संगत डिवाइस
|
list, get, reconcile, create, update, batchDelete | .sleep.readonly.sleep.writeonly |
|
तरीका
dataType:
stepsfilter parameter: steps
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
तैराकी की लंबाई का डेटा
dataType:
swim-lengths-datafilter parameter: swim_lengths_data
रिकॉर्ड टाइप: इंटरवल
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
लक्षण
dataType:
symptomsfilter parameter: symptoms
रिकॉर्ड टाइप: सैंपल
|
create, update, batchDelete | .logged_symptoms.writeonly |
|
धड़कन की दर वाले ज़ोन में बिताया गया समय
dataType:
time-in-heart-rate-zonefilter parameter: time_in_heart_rate_zone
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
कुल कैलोरी
dataType:
total-caloriesfilter parameter: total_calories
रिकॉर्ड टाइप: इंटरवल
स्टोरेज से जुड़ी समस्या हल होने में लगने वाला समय: एक मिनट
संगत डिवाइस
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
वीओ2 मैक्स
dataType:
vo2-maxfilter parameter: vo2_max
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस
|
सूची, मिलान करें | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
वज़न
dataType:
weightfilter parameter: 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 दिन है.
- रोलअप विंडो का साइज़:
rollUpएंडपॉइंट को कॉल करते समय,windowSizeकी अवधि कम से कम एक सेकंड ("1s") होनी चाहिए. एक सेकंड से कम की अवधि कोINVALID_ARGUMENTके साथ अस्वीकार कर दिया जाता है. इसके अलावा, डेटा टाइप के स्टोरेज रिज़ॉल्यूशन के बराबर या उससे बड़ाwindowSizeचुनें. जैसे, एक मिनट के इंटरवल वाले डेटा टाइप के लिए"60s", जैसे किstepsऔरdistance. इससे सब-इंटरवल में असमान डिस्ट्रिब्यूशन से बचा जा सकता है. ज़्यादा जानकारी के लिए, रोलअप विंडो और स्टोरेज रिज़ॉल्यूशन लेख पढ़ें.
रोज़ाना और इंटरवल के हिसाब से डेटा टाइप
Google Health API, शरीर से जुड़ी कुछ मेट्रिक के लिए दो अलग-अलग तरह का डेटा उपलब्ध कराता है. जैसे, धड़कन की दर में उतार-चढ़ाव (एचआरवी) या ऑक्सीजन की मात्रा (SpO2). ये दो तरह के डेटा हैं: रोज़ाना का डेटा और इंटरवल का डेटा. इनके बीच के अंतर को समझना ज़रूरी है, ताकि आप अपने इस्तेमाल के हिसाब से सही मेट्रिक चुन सकें:
हर दिन: पूरे दिन के लिए, पहले से इकट्ठा की गई एक खास जानकारी. प्रोसेसिंग में लगने वाले समय को बचाने के लिए, हाई-लेवल ट्रेंड और डेली डैशबोर्ड के लिए इसका इस्तेमाल करें.
इंटरवल: पूरे दिन के दौरान, बारीकी से और हाई रिज़ॉल्यूशन में लिए गए मेज़रमेंट. इसका इस्तेमाल, दिन के दौरान होने वाले उतार-चढ़ाव को चार्ट करने या हर घंटे के हिसाब से गहराई से विश्लेषण करने के लिए करें.
डेटा की उपलब्धता
उपयोगकर्ता के डेटा में अपडेट सिर्फ़ तब उपलब्ध होते हैं, जब वे गतिविधि को ट्रैक करने वाले अपने डिवाइस को सिंक करते हैं या Google Health ऐप्लिकेशन में नया डेटा मैन्युअल तरीके से डालते हैं. Fitbit डिवाइस और Google Health ऐप्लिकेशन, हर 15 मिनट में अपने-आप सिंक हो सकते हैं. इसके लिए, यह ज़रूरी है कि फ़ोन या टैबलेट पर Google Health ऐप्लिकेशन खुला हो, दोनों डिवाइसों के बीच डेटा कनेक्शन चालू हो, और वे ब्लूटूथ की रेंज में हों. अगर उपयोगकर्ता 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 डिवाइस, तीसरे पक्ष के ऐप्लिकेशन या सेवाओं के साथ सीधे तौर पर कम्यूनिकेट नहीं कर सकते. इन डिवाइसों को खास तौर पर, Google Health ऐप्लिकेशन के साथ कम्यूनिकेट और सिंक करने के लिए डिज़ाइन किया गया है.
डिवाइस, दिन भर में डेटा अपने-आप सिंक करता है. ऐसा तब होता है, जब Google Health ऐप्लिकेशन खुला हो. इसके अलावा, अगर ब्लूटूथ चालू है और ऐप्लिकेशन बैकग्राउंड में चल रहा है, तो हर 15 मिनट में डेटा सिंक होता है. सिंक करने की यह प्रोसेस पूरी होने के बाद, डेटा तीसरे पक्ष की सेवाओं के लिए उपलब्ध हो जाता है. इसके लिए, Google Health API का इस्तेमाल किया जाता है.
डेटा क्वालिटी और वैधता के आधार पर फ़िल्टर करना
Google Health API, सेंसर टेलीमेट्री की पुष्टि करता है और अमान्य मेज़रमेंट को हटा देता है. इससे, क्लाइंट-साइड पर ग़ैर-ज़रूरी डेटा को फ़िल्टर करने की ज़रूरत नहीं पड़ती और सेहत की सटीक मेट्रिक मिलती हैं. इसके बाद, वह जवाब देता है:
- खून में ऑक्सीजन की मात्रा (
oxygen-saturation) की हर मिनट की रीडिंग के लिए, एपीआई सिर्फ़ पुष्टि की गई रीडिंग दिखाता है. साथ ही, यह उन मिनट की रीडिंग हटा देता है जिन्हें अमान्य के तौर पर मार्क किया गया है. ऐसा हाथ के हिलने-डुलने, कलाई पर डिवाइस के ढीले होने या सेंसर का कॉन्फ़िडेंस स्कोर 50% से कम होने की वजह से होता है. इसके अलावा, अमान्य रीडिंग से तीन मिनट पहले और बाद की रीडिंग और चार मिनट से कम की मान्य रीडिंग को भी हटा दिया जाता है. इस वजह से, मिनट के हिसाब से कवरेज कम हो सकता है और इसमें गैप हो सकते हैं. ज़्यादा जानकारी के लिए, हर मिनट के हिसाब से SpO2 डेटा को फ़िल्टर करना और डेटा की वैधता लेख पढ़ें.
दूरी के स्टैंडर्ड
कसरत के दौरान तय की गई दूरी, जैसे कि elevationGainMillimeters को स्टैंडर्ड यूनिट के तौर पर मिलीमीटर में मेज़र किया जाता है. इसकी वजहें यहां बताई गई हैं:
- डेटा को सटीक बनाए रखना: मिलीमीटर का इस्तेमाल करने की सबसे अहम वजह यह है कि हम जो डेटा पढ़ते हैं और उपलब्ध कराते हैं उसमें कोई गड़बड़ी न हो. मिलीमीटर जैसी छोटी इकाई का इस्तेमाल करने से, हमें माप को ज़्यादा सटीक तरीके से दिखाने में मदद मिलती है.
- स्टैंडर्डाइज़ेशन: हमारी सभी सेवाओं में, मिलीमीटर को स्टैंडर्ड यूनिट के तौर पर इस्तेमाल किया जाता है. इस समानता से यह पक्का करने में मदद मिलती है कि एपीआई के अलग-अलग हिस्सों के साथ इंटरैक्ट करने वाले डेवलपर को एक जैसा अनुभव मिले.
- मेज़रमेंट सिस्टम के लिए ज़्यादा सपोर्ट: मिलीमीटर जैसी बेस यूनिट का इस्तेमाल करने से, डेवलपर के लिए किसी भी अन्य चुनी गई यूनिट में कन्वर्ट करना आसान हो जाता है. इससे कोई फ़र्क़ नहीं पड़ता कि वे मेट्रिक, इंपीरियल या अन्य मेज़रमेंट सिस्टम का इस्तेमाल कर रहे हैं.
दिन की अवधि में बदलाव
Health API, समय को मैनेज करने के लिए उपयोगकर्ता के समय को प्राथमिकता देता है. इससे डेलाइट सेविंग टाइम या यात्रा की वजह से, दिन की अवधि में होने वाले बदलावों को ध्यान में रखा जाता है. हर डेटा पॉइंट को यूटीसी टाइमस्टैंप और इवेंट के समय चालू यूटीसी ऑफ़सेट, दोनों के साथ सेव किया जाता है. इससे सिस्टम को ये काम करने में मदद मिलती है:
- इवेंट को किसी सटीक फ़िज़िकल इंस्टैंस से मैप करें.
- एग्रीगेशन के लिए, उपयोगकर्ता के लोकल कॉन्टेक्स्ट के हिसाब से समय को सही करें.
डेलाइट सेविंग टाइम
डेलाइट सेविंग टाइम के दौरान, "फ़ॉल बैक" की वजह से एक दिन 25 घंटे का हो जाता है. साथ ही, उस तारीख के रोलअप में 25 घंटे का डेटा शामिल होगा. "स्प्रिंग फ़ॉरवर्ड" की वजह से, सिविल डे 23 घंटे का हो जाता है. इसमें समय, स्टैंडर्ड टाइम पर वापस चला जाता है.
यात्रा
एक टाइम ज़ोन से दूसरे टाइम ज़ोन में जाने पर, एक सिविल डे की अवधि में और भी ज़्यादा अंतर आ सकता है.
टाइम ज़ोन के अंतर को ठीक करने के लिए, dailyRollUp एंडपॉइंट का इस्तेमाल करें. यह डेटा को अपने-आप उस कैलेंडर दिन के हिसाब से एट्रिब्यूट करता है जिस दिन उसे रिकॉर्ड किया गया था. यह उपयोगकर्ता के स्थानीय समय के हिसाब से होता है. इससे टाइम ज़ोन में बदलाव होने के बावजूद, दिन को असरदार तरीके से "जोड़ा" जाता है. ज़्यादा जानकारी और उदाहरणों के लिए, कुल डेटा की गाइड में कैलेंडर के दिनों के हिसाब से कुल डेटा देखें.