# हेल्थ कनेक्ट से FHIR

> Android Health Connect डेटा को Fitbit, Garmin, Oura, Withings और Wear OS से Flutter में पढ़ें और इसे FHIR R4 रिकॉर्ड में लिखें: अनुमतियाँ, इतिहास, Play समीक्षा।

Source: https://developers.anpheros.com/hi/guides/health-connect-fhir

**Health Connect Android का ऑन-डिवाइस हेल्थ स्टोर है: Samsung Health, Fitbit, Garmin Connect, Oura, Withings और Wear OS ऐप्स इसमें लिखते हैं, और आपका ऐप व्यक्ति की अनुमति से इसे पढ़ता है।** उस डेटा को FHIR रिकॉर्ड में डालने के लिए, फ़ोन पर दैनिक कुल और औसत पढ़ें, उन्हें अपने बैकएंड पर भेजें, और प्रत्येक मीट्रिक को LOINC कोड और UCUM यूनिट के साथ एक Observation के रूप में लिखें। यह पृष्ठ Android द्वारा आवश्यक अनुमतियों, एक Flutter उदाहरण (`flutter analyze` के साथ जाँच की गई) जो एक ही कोड के साथ Android पर Health Connect और iOS पर Apple Health पढ़ता है, और Google Play पर प्रकाशित करने के नियमों को कवर करता है।

## Health Connect में क्या आता है

Health Connect Android 14 और उसके बाद के संस्करणों में निर्मित है और पुराने संस्करणों पर एक ऐप के रूप में उपलब्ध है। इसमें `HeartRateRecord`, `RestingHeartRateRecord`, `HeartRateVariabilityRmssdRecord`, `OxygenSaturationRecord`, `RespiratoryRateRecord`, `StepsRecord`, `DistanceRecord`, `ActiveCaloriesBurnedRecord`, `SleepSessionRecord`, `WeightRecord`, `BloodPressureRecord`, `BloodGlucoseRecord`, `BodyTemperatureRecord` और `ExerciseSessionRecord` जैसे रिकॉर्ड होते हैं।

प्रत्येक विक्रेता के दस्तावेज़ के अनुसार, कौन वहां लिखता है:

| स्रोत | क्या उम्मीद करें |
|---|---|
| Fitbit और Pixel Watch | व्यक्ति द्वारा इसे सेट अप करने के बाद Fitbit ऐप Health Connect के साथ सिंक हो जाता है ([Google सहायता](https://support.google.com/fitbit/answer/14506680)) |
| Garmin | Garmin Connect Android 14 और उसके बाद के संस्करणों पर Health Connect का समर्थन करता है: गतिविधि और कल्याण डेटा जैसे हृदय गति और कैलोरी ([Android Developers, August 2025](https://developer.android.com/health-and-fitness/community/newsletters/2025/08)) |
| Oura | हृदय गति, HRV, चरणों के साथ नींद, कदम, दूरी, कैलोरी और वर्कआउट ([Oura](https://ouraring.com/blog/data-sharing-partner-integrations/)) |
| Withings | Health Mate Health Connect के माध्यम से गतिविधि, वजन, नींद और अन्य डेटा का आदान-प्रदान करता है ([Android Developers blog](https://android-developers.googleblog.com/2023/03/withings-reduces-data-sync-code-with--health-and-fitness-api-health-connect.html)) |
| Samsung Health, Galaxy Watch | Samsung Health की अपनी गति से एक उपसमूह — [Samsung Health to FHIR](https://developers.anpheros.com/hi/guides/samsung-health-fhir) देखें |

प्रत्येक विक्रेता ऐप को Health Connect में **लिखने** की अनुमति होनी चाहिए, जो व्यक्ति उस ऐप में या Health Connect की सेटिंग्स में देता है। यदि कोई स्रोत गायब है, तो यह पहली चीज़ है जिसकी जाँच करनी चाहिए।

## अनुमतियाँ जो Android को चाहिए

- प्रत्येक रिकॉर्ड प्रकार और दिशा के लिए एक अनुमति, उदाहरण के लिए `android.permission.health.READ_HEART_RATE` और `android.permission.health.READ_STEPS`, मैनिफ़ेस्ट में घोषित की जाती है और रनटाइम पर अनुरोध की जाती है।
- **इतिहास:** `android.permission.health.READ_HEALTH_DATA_HISTORY` के बिना, ऐप अनुमति दिए जाने से पहले केवल पिछले 30 दिनों को पढ़ सकता है।
- **पृष्ठभूमि:** ऐप के फ़ोरग्राउंड में न होने पर पढ़ना `android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND` की आवश्यकता होती है।
- एक **अनुमति तर्क** स्क्रीन (एक गतिविधि जो `ACTION_SHOW_PERMISSIONS_RATIONALE` को संभालती है, साथ ही Android 14 पर एक गतिविधि उपनाम) जो आपकी गोपनीयता नीति की व्याख्या करती है; इसके बिना अनुमति संवाद नहीं खुलता है।
- Flutter में, `MainActivity` को `FlutterFragmentActivity` का विस्तार करना चाहिए, न कि `FlutterActivity` का, अन्यथा अनुमति अनुरोध विफल हो जाएंगे।

## Flutter में दैनिक मान पढ़ना

[`health`](https://pub.dev/packages/health) पैकेज एक API के पीछे Android पर Health Connect और iOS पर Apple Health को पढ़ता है। उदाहरण संस्करण 13.2.1 का उपयोग करता है, वही जो Anpheros Daily के साथ आता है:

```dart
import 'dart:math' as math;

import 'package:health/health.dart';

/// One day of data from Health Connect (Android) or Apple Health (iOS), ready for your backend.
class DailyValue {
  DailyValue(this.metric, this.day, this.value, {this.min, this.max});
  final String metric; // 'heart_rate', 'steps'
  final String day; // '2026-10-01', the user's local day
  final double value;
  final double? min, max;

  Map<String, Object?> toJson() => {'metric': metric, 'day': day, 'value': value, 'min': min, 'max': max};
}

final health = Health();

Future<List<DailyValue>> collectLastDays({int days = 30}) async {
  await health.configure();
  if (!await health.isHealthConnectAvailable()) {
    await health.installHealthConnect(); // opens the Play Store on Android; always available on iOS
    return [];
  }
  const types = [HealthDataType.HEART_RATE, HealthDataType.STEPS];
  final granted = await health.requestAuthorization(types, permissions: [HealthDataAccess.READ, HealthDataAccess.READ]);
  if (!granted) return [];

  final now = DateTime.now();
  final out = <DailyValue>[];
  for (var i = days - 1; i >= 0; i--) {
    final start = DateTime(now.year, now.month, now.day - i); // local midnight, safe across DST changes
    final end = DateTime(start.year, start.month, start.day + 1);
    final day = start.toIso8601String().substring(0, 10);

    final steps = await health.getTotalStepsInInterval(start, end);
    if (steps != null) out.add(DailyValue('steps', day, steps.toDouble()));

    final samples = await health.getHealthDataFromTypes(types: [HealthDataType.HEART_RATE], startTime: start, endTime: end);
    final bpm = [for (final p in samples) if (p.value is NumericHealthValue) (p.value as NumericHealthValue).numericValue.toDouble()];
    if (bpm.isNotEmpty) {
      out.add(DailyValue('heart_rate', day, bpm.reduce((a, b) => a + b) / bpm.length,
          min: bpm.reduce(math.min), max: bpm.reduce(math.max)));
    }
  }
  return out; // POST these to your backend, which writes them to the FHIR record
}
```

`getTotalStepsInInterval` Health Connect से उसके एकत्रित कुल के लिए पूछता है, जो पहले से ही ओवरलैपिंग स्रोतों (एक फोन और एक घड़ी एक ही वॉक की गिनती) को हल करता है, जो व्यक्ति ने Health Connect में सेट की गई डेटा-स्रोत प्राथमिकता के अनुसार होता है। कच्चे स्टेप रिकॉर्ड को स्वयं जोड़ना डबल-काउंटिंग करता है।

Anpheros Daily में इसे शिप करने के नोट्स:

- **ऐप के फोरग्राउंड में आने पर सिंक करें**, बार-बार सिंक होने से बचाने के लिए एक छोटी सी सुरक्षा के साथ। अन्य ऐप्स अपने शेड्यूल पर Health Connect में लिखते हैं, इसलिए व्यक्ति को उनके वेंडर ऐप में दिखाई देने वाला डेटा मिनट या घंटे बाद आ सकता है।
- **हृदय गति एक श्रृंखला है**, प्रति सैंपल एक मान नहीं: इसे हर रीडिंग अपलोड करने के बजाय फोन पर (दैनिक, या चार्ट के लिए 4-घंटे की विंडो में) सारांशित करें।
- **यहां HRV RMSSD है।** इसे Apple Health के लिए उपयोग किए जाने वाले SDNN कोड के तहत स्टोर न करें।

## Flutter मानों से FHIR Observations तक

मानों को अपने बैकएंड पर भेजें और प्रति व्यक्ति, मीट्रिक और दिन एक Observation लिखें, जिसमें एक स्थिर पहचानकर्ता हो, और जब उसी दिन को फिर से भेजा जाए तो उसे अपडेट करें। पूर्ण मैपिंग तालिका (Health Connect रिकॉर्ड → LOINC → UCUM), एक मान्य FHIR उदाहरण और प्लेटफ़ॉर्म के विरुद्ध TypeScript upsert रन [Wearable data in FHIR](https://developers.anpheros.com/hi/guides/wearable-data-fhir) पर उपलब्ध हैं।

## Google Play पर प्रकाशित करना

Health Connect को पढ़ने वाले ऐप्स को Play Console में Health Connect अनुमतियों की घोषणा पूरी करनी होगी, प्रत्येक डेटा प्रकार को उचित ठहराना होगा, और एक मिलान वाली गोपनीयता नीति होनी चाहिए। उन डेटा प्रकारों के लिए अनुरोध जो ऐप स्पष्ट रूप से उपयोग नहीं करता है, अस्वीकार कर दिए जाते हैं। समीक्षा के लिए योजना बनाएं: प्रत्येक प्रकार को उस स्क्रीन के बगल में सूचीबद्ध करें जो उसका उपयोग करती है।

## Wear OS

Wear OS घड़ी पर, एक ऐप Health Services के माध्यम से लाइव सेंसर डेटा पढ़ सकता है (उदाहरण के लिए, वर्कआउट के दौरान हृदय गति)। घड़ी के अपने स्वास्थ्य ऐप द्वारा रिकॉर्ड किया गया डेटा विक्रेता के फ़ोन ऐप के माध्यम से फ़ोन के Health Connect तक पहुँचता है। मेडिकल रिकॉर्ड के लिए, फ़ोन पर Health Connect पढ़ना आमतौर पर पर्याप्त होता है; वॉच ऐप लाइव सुविधाओं के लिए होता है।

## Anpheros कहाँ फिट बैठता है

Anpheros Platform परिणाम संग्रहीत करता है: व्यक्ति का FHIR R4 रिकॉर्ड जिसमें प्रत्येक वियरेबल मान एक Observation के रूप में चिह्नित होता है, जिसे डिवाइस डेटा के रूप में चिह्नित किया जाता है, सहमति, प्रोवेनेंस और एक्सेस लॉग के पीछे। यह Health Connect को स्वयं नहीं पढ़ता है; आपका Android ऐप पढ़ता है। Anpheros का अपना ऐप, **Anpheros Daily**, Android पर Health Connect (Plus और Max प्लान) को पढ़ता है और रिकॉर्ड में दैनिक सारांश लिखता है।

## अक्सर पूछे जाने वाले प्रश्न

### क्या Health Connect का क्लाउड API है?
नहीं। Health Connect डेटा को फ़ोन पर स्टोर करता है, और केवल उस फ़ोन के ऐप्स ही इसे व्यक्ति की अनुमति से पढ़ सकते हैं। डेटा को सर्वर पर भेजने के लिए, आपका ऐप इसे पढ़ता है और भेजता है।

### क्या Health Connect REST API या वेब API है?
नहीं। Health Connect एक ऑन-डिवाइस Android API है जिसका कोई REST या वेब एंडपॉइंट नहीं है। सर्वर डेटा केवल तब प्राप्त करता है जब फ़ोन का कोई ऐप इसे पढ़ता है और भेजता है, उदाहरण के लिए Anpheros को FHIR Observations के रूप में।

### क्या मैं Python या React Native से Health Connect API का उपयोग कर सकता हूँ?
Python से नहीं, क्योंकि यह फ़ोन पर चलता है, सर्वर पर नहीं। React Native या Flutter से, हाँ, समुदाय या आधिकारिक प्लगइन्स के माध्यम से जो ऐप के अंदर Android API को कॉल करते हैं।

### मेरा ऐप केवल 30 दिनों का Health Connect डेटा क्यों पढ़ सकता है?
`READ_HEALTH_DATA_HISTORY` अनुमति के बिना, Health Connect पहली अनुमति दिए जाने से पहले 30 दिनों तक पढ़ने को सीमित करता है। यदि आपको पुराने डेटा की आवश्यकता है तो इतिहास अनुमति का अनुरोध करें।

### क्या Garmin Health Connect के साथ सिंक होता है?
हाँ। Google ने अगस्त 2025 में घोषणा की कि Garmin Connect Android 14 और उसके बाद के संस्करणों पर Health Connect का समर्थन करता है, जो हृदय गति और कैलोरी जैसे गतिविधि और कल्याण डेटा के लिए है। Garmin के अपने स्कोर, जैसे Body Battery, साझा नहीं किए जाते हैं।

### क्या मैं Fitbit Web API के बिना Fitbit डेटा पढ़ सकता हूँ?
Android पर, हाँ: एक बार जब व्यक्ति Fitbit ऐप में Health Connect सक्षम कर लेता है, तो Fitbit डेटा Health Connect में उन ऐप्स के लिए उपलब्ध हो जाता है जिन्हें वे अधिकृत करते हैं।

### Health Connect स्टेप काउंट मेरे वेंडर ऐप से भिन्न क्यों है?
वेंडर ऐप ने शायद अपना नवीनतम डेटा अभी तक निर्यात नहीं किया हो, केवल कुछ प्रकारों को निर्यात कर सकता हो, या Health Connect उसी अवधि के लिए किसी अन्य स्रोत को प्राथमिकता दे सकता है। Health Connect की सेटिंग्स में डेटा स्रोतों और उनकी प्राथमिकता की जाँच करें।

## संबंधित

- [Fitbit Web API शटडाउन (अक्टूबर 2026)](https://developers.anpheros.com/hi/guides/fitbit-web-api-shutdown)
- [FHIR में वियरेबल डेटा](https://developers.anpheros.com/hi/guides/wearable-data-fhir): मैपिंग टेबल और बैकएंड कोड
- [Samsung Health से FHIR](https://developers.anpheros.com/hi/guides/samsung-health-fhir)
- [Apple Health (HealthKit) से FHIR](https://developers.anpheros.com/hi/guides/apple-health-fhir)
- [Flutter के साथ हेल्थकेयर ऐप कैसे बनाएं](https://developers.anpheros.com/guides/healthcare-app-flutter)
