Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
FHIR में वियरेबल डेटा (Apple Health, Health Connect)
स्मार्टवॉच, रिंग और स्केल डेटा को FHIR रिकॉर्ड में प्राप्त करें: कौन से डिवाइस किस स्वास्थ्य स्टोर तक पहुंचते हैं, एक LOINC मैपिंग टेबल, दैनिक सारांश और एक परीक्षित अपसेट।
स्मार्टवॉच, रिंग या स्मार्ट स्केल से डेटा को मेडिकल रिकॉर्ड में प्राप्त करने के लिए, इसे ऑपरेटिंग सिस्टम के स्वास्थ्य स्टोर से फोन पर पढ़ें — iOS पर Apple Health, Android पर Health Connect — इसे प्रति दिन सारांशित करें, प्रत्येक मीट्रिक को एक LOINC कोड और एक UCUM यूनिट पर मैप करें, और इसे डिवाइस डेटा के रूप में चिह्नित FHIR R4 Observations के रूप में लिखें। प्रत्येक विक्रेता के क्लाउड से पढ़ने के बजाय फोन के स्वास्थ्य स्टोर से पढ़ने से एकीकरण Apple Watch, Galaxy Watch, Pixel Watch, Garmin, Fitbit, Oura और Withings को कवर कर सकता है, जब तक कि व्यक्ति ने अपने विक्रेता ऐप को साझा करने की अनुमति दी हो। यह पृष्ठ डेटा पथ, एक मैपिंग टेबल जिसे आप पुन: उपयोग कर सकते हैं, एक मान्य FHIR उदाहरण और प्लेटफ़ॉर्म के विरुद्ध चलाए गए कोड को देता है।
डेटा पाथ
watch, ring, scale ──► vendor app (Garmin Connect, Fitbit, Oura, Withings, Samsung Health…)
│ shares, with the person's permission
▼
Apple Health (iOS) / Health Connect (Android)
│ your app reads, with the person's permission, on the phone
▼
your app ──► your backend ──► FHIR R4 Observations in the person's record
न तो Apple Health और न ही Health Connect के पास सर्वर API है: डेटा केवल व्यक्ति के फ़ोन पर किसी ऐप द्वारा पढ़ा जा सकता है। आपका ऐप इसे पढ़ता है, आपके बैकएंड को कॉम्पैक्ट दैनिक मान भेजता है, और बैकएंड उन्हें रिकॉर्ड में लिखता है।
कौन से डिवाइस किस हेल्थ स्टोर तक पहुँचते हैं
प्रत्येक विक्रेता क्या साझा करता है, यह ऐप संस्करणों के साथ बदलता रहता है; विक्रेता का अपना दस्तावेज़ीकरण ही संदर्भ है।
| डिवाइस या ऐप | Apple Health (iOS) | Health Connect (Android) | नोट्स |
|---|---|---|---|
| Apple Watch | हाँ, मूल रूप से | — | घड़ी जो कुछ भी मापती है वह Apple Health में जाता है |
| Samsung Galaxy Watch, Samsung Health | — | आंशिक रूप से | Samsung Health तय करता है कि वह कौन से प्रकार निर्यात करता है और कितनी बार; Samsung Health देखें |
| Pixel Watch, Fitbit | कोई आधिकारिक सिंक नहीं | हाँ, Fitbit ऐप के माध्यम से (Google सहायता) | |
| Garmin | हाँ, प्रत्येक डिवाइस सिंक के बाद Garmin Connect से | हाँ, Garmin Connect Android 14 और उसके बाद के संस्करणों पर Health Connect का समर्थन करता है (Android Developers, August 2025) | Garmin-विशिष्ट स्कोर जैसे Body Battery साझा नहीं किए जाते हैं |
| Oura | हाँ | हाँ (Oura) | Readiness और अन्य Oura स्कोर Oura ऐप में रहते हैं |
| Withings | हाँ, Health Mate के माध्यम से | हाँ (Android Developers blog) | स्केल, रक्तचाप मॉनिटर, घड़ियाँ |
दो व्यावहारिक परिणाम। पहला, आपका ऐप इस बात पर निर्भर करता है कि व्यक्ति ने अपने विक्रेता ऐप में साझाकरण चालू किया है या नहीं; ऑनबोर्डिंग में ऐसा कहना चाहिए। दूसरा, हेल्थ स्टोर में दो स्रोतों (एक फोन और एक घड़ी) से समान चरण हो सकते हैं; नमूनों को जोड़ने के बजाय स्टोर के अपने दैनिक कुल को पढ़ें, क्योंकि Apple Health और Health Connect पहले से ही ओवरलैपिंग स्रोतों को डी-डुप्लिकेट करते हैं।
मैपिंग तालिका: स्वास्थ्य स्टोर प्रकार → FHIR Observation
एनफेरोस डेली (Anpheros Daily) द्वारा वियरेबल डेटा को FHIR रिकॉर्ड में लिखते समय उपयोग किए जाने वाले कोड:
| मेट्रिक | Apple HealthKit | Health Connect | LOINC | UCUM यूनिट | श्रेणी |
|---|---|---|---|---|---|
| हृदय गति | heartRate |
HeartRateRecord |
8867-4 | /min |
vital-signs |
| आराम की हृदय गति | restingHeartRate |
RestingHeartRateRecord |
40443-4 | /min |
vital-signs |
| हृदय गति परिवर्तनशीलता | heartRateVariabilitySDNN |
HeartRateVariabilityRmssdRecord |
80404-7 (केवल SDNN) | ms |
vital-signs |
| रक्त ऑक्सीजन (SpO₂) | oxygenSaturation |
OxygenSaturationRecord |
59408-5 | % |
vital-signs |
| श्वसन दर | respiratoryRate |
RespiratoryRateRecord |
9279-1 | /min |
vital-signs |
| प्रति दिन कदम | stepCount |
StepsRecord |
41950-7 | {steps} |
activity |
| सक्रिय ऊर्जा | activeEnergyBurned |
ActiveCaloriesBurnedRecord |
41981-2 | kcal |
activity |
| नींद की अवधि | sleepAnalysis (श्रेणी) |
SleepSessionRecord |
93832-4; चरण 93831-6 डीप, 93830-8 लाइट, 93829-0 REM | min |
activity |
| शरीर का वजन | bodyMass |
WeightRecord |
29463-7 | kg |
vital-signs |
| रक्तचाप | bloodPressure (सहसंबंध) |
BloodPressureRecord |
85354-9 के साथ 8480-6 और 8462-4 | mm[Hg] |
vital-signs |
| रक्त शर्करा (मीटर) | bloodGlucose |
BloodGlucoseRecord |
2339-0 | mg/dL |
vital-signs |
| शरीर का तापमान | bodyTemperature |
BodyTemperatureRecord |
8310-5 | Cel |
vital-signs |
हृदय गति परिवर्तनशीलता पंक्ति पर ध्यान दें: Apple Health SDNN स्टोर करता है, Health Connect RMSSD स्टोर करता है। ये अलग-अलग आँकड़े हैं और इन्हें एक ही कोड के तहत नहीं लिखा जाना चाहिए। LOINC 80404-7 SDNN है; RMSSD के लिए, एनफेरोस डेली (Anpheros Daily) अपने स्वयं के कोड सिस्टम का उपयोग करता है बजाय इसके कि यह दिखावा करे कि दोनों एक ही हैं।
सारांश, हर नमूना नहीं
एक घड़ी दिन में हजारों हृदय गति के नमूने उत्पन्न करती है। एक मेडिकल रिकॉर्ड को ऐसी चीज़ की आवश्यकता होती है जिसे कोई व्यक्ति या डॉक्टर पढ़ सके:
- प्रति दिन प्रति मीट्रिक एक अवलोकन, जिसमें व्यक्ति के स्थानीय दिन को कवर करने वाले
effectivePeriod,valueQuantityमें दैनिक औसत या कुल, और दरों के लिए, घटकों के रूप में न्यूनतम और अधिकतम शामिल हैं। - बारीक श्रृंखलाएं वहीं रहती हैं जहां वे उपयोगी होती हैं। Anpheros Daily अपने चार्ट के लिए 4-घंटे की हृदय गति सारांश रखता है और FHIR रिकॉर्ड में दैनिक मान लिखता है।
- घटनाएं अलग होती हैं। एक अनियमित लय अधिसूचना या एक एकल रक्तचाप रीडिंग अपने स्वयं के समय के साथ अपना अवलोकन है, जो दैनिक औसत का हिस्सा नहीं है।
FHIR R4 के रूप में एक दैनिक हृदय गति सारांश (यह FHIR R4 वैलिडेटर से गुजरता है):
{
"resourceType": "Observation",
"status": "final",
"identifier": [{"system": "https://your-app.test/fhir/sid/daily-wearable", "value": "p-123:2026-10-01:heart_rate"}],
"category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "vital-signs"}]}],
"code": {"coding": [{"system": "http://loinc.org", "code": "8867-4", "display": "Heart rate"}]},
"subject": {"reference": "Patient/p-123"},
"effectivePeriod": {"start": "2026-10-01T00:00:00-04:00", "end": "2026-10-02T00:00:00-04:00"},
"valueQuantity": {"value": 71.4, "unit": "/min", "system": "http://unitsofmeasure.org", "code": "/min"},
"component": [
{"code": {"text": "minimum"}, "valueQuantity": {"value": 52, "unit": "/min", "system": "http://unitsofmeasure.org", "code": "/min"}},
{"code": {"text": "maximum"}, "valueQuantity": {"value": 138, "unit": "/min", "system": "http://unitsofmeasure.org", "code": "/min"}}
],
"device": {"display": "Apple Watch (via Apple Health)"}
}
डुप्लिकेट के बिना दैनिक मान लिखना
फ़ोन दिन में कई बार सिंक होते हैं, और दिन का अंतिम मान आधी रात तक बदलता रहता है। प्रत्येक Observation को एक स्थिर पहचानकर्ता दें — व्यक्ति, दिन, मीट्रिक — और नया बनाने के बजाय उसे अपडेट करें। Anpheros TypeScript SDK के साथ, अपने बैकएंड पर:
import { Anpheros, apiKey } from '@anpheros/sdk';
const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });
// What the phone sends: one value per metric per local day
type DailyValue = { metric: 'heart_rate' | 'steps'; day: string; value: number; min?: number; max?: number };
const CODES = {
heart_rate: { code: '8867-4', display: 'Heart rate', unit: '/min', category: 'vital-signs' },
steps: { code: '41950-7', display: 'Number of steps in 24 hour Measured', unit: '{steps}', category: 'activity' },
} as const;
// One Observation per person, metric and day: re-sending a day updates it instead of adding a copy.
async function upsertDaily(patientId: string, v: DailyValue, source: string) {
const c = CODES[v.metric];
const identifier = { system: 'https://your-app.test/fhir/sid/daily-wearable', value: `${patientId}:${v.day}:${v.metric}` };
const resource: any = {
resourceType: 'Observation', status: 'final',
identifier: [identifier],
category: [{ coding: [{ system: 'http://terminology.hl7.org/CodeSystem/observation-category', code: c.category }] }],
code: { coding: [{ system: 'http://loinc.org', code: c.code, display: c.display }] },
subject: { reference: `Patient/${patientId}` },
effectivePeriod: { start: `${v.day}T00:00:00Z`, end: `${v.day}T23:59:59Z` },
valueQuantity: { value: v.value, unit: c.unit, system: 'http://unitsofmeasure.org', code: c.unit },
};
if (v.min !== undefined && v.max !== undefined) {
resource.component = [
{ code: { text: 'minimum' }, valueQuantity: { value: v.min, unit: c.unit, system: 'http://unitsofmeasure.org', code: c.unit } },
{ code: { text: 'maximum' }, valueQuantity: { value: v.max, unit: c.unit, system: 'http://unitsofmeasure.org', code: c.unit } },
];
}
const found = await anpheros.fhir.search('Observation', { identifier: `${identifier.system}|${identifier.value}` });
const existing = found.entry?.[0]?.resource;
return existing
? anpheros.fhir.update({ ...resource, id: existing.id }, { author_type: 'device' })
: anpheros.fhir.create(resource, { author_type: 'device', source_system: source });
}
सैंडबॉक्स कुंजी के साथ प्लेटफ़ॉर्म के स्थानीय इंस्टेंस के विरुद्ध चलाएं, दो दैनिक मानों के बाद उसी दिन के चरणों का बाद में सिंक हुआ, दो Observations रह गए, चरण वाला संस्करण 2 पर नए मान के साथ, और प्रोवेनेंस v1 device apple-health · v2 device। इतिहास पहले वाले मान को रखता है, और हर पाठक देख सकता है कि डेटा किसी डिवाइस से आया है, किसी चिकित्सक से नहीं।
उत्पादन में, व्यक्ति के टाइम ज़ोन में वास्तविक दिन की सीमाओं का उपयोग करें (उपरोक्त उदाहरण संक्षिप्तता के लिए UTC का उपयोग करता है), जैसा कि प्लेटफ़ॉर्म पृष्ठों पर HealthKit और Health Connect कोड करता है।
फ़ोन पर पढ़ना
- iPhone और Apple Watch: Apple Health (HealthKit) से FHIR, दैनिक आँकड़ों के लिए Swift कोड के साथ।
- Android, Wear OS, Fitbit, Garmin, Oura, Withings: Health Connect से FHIR, Flutter कोड के साथ जो दोनों प्लेटफार्मों पर काम करता है।
- Samsung Galaxy Watch और Samsung Health: Samsung Health से FHIR: Health Connect में क्या पहुँचता है और Samsung के अपने SDK की क्या आवश्यकता है।
अनुसरण करने योग्य नियम
- केवल वही पढ़ें जिसका आप उपयोग करते हैं, और प्रत्येक प्रकार के लिए अलग से पूछें; लोग आंशिक अनुमतियाँ देते हैं।
- स्रोत को लेबल करें। उपभोक्ता पहनने योग्य उपकरण नैदानिक उपकरण नहीं हैं। उनके डेटा को डिवाइस डेटा (
author_type: device) के रूप में लिखें और बताएं कि यह किस ऐप से आया है, ताकि एक चिकित्सक इसे तदनुसार तौल सके। - प्लेटफ़ॉर्म नियमों का सम्मान करें। Apple के ऐप समीक्षा दिशानिर्देश (5.1.3) विज्ञापन के लिए स्वास्थ्य डेटा का उपयोग करने और iCloud में व्यक्तिगत स्वास्थ्य जानकारी संग्रहीत करने से मना करते हैं; Google Play को Health Connect का उपयोग करने वाले ऐप्स के लिए स्वास्थ्य ऐप्स घोषणा की आवश्यकता होती है।
- लोगों को डिस्कनेक्ट करने दें और तय करें कि पहले से कॉपी किया गया डेटा रिकॉर्ड में रहता है या नहीं।
Anpheros क्या करता है और क्या नहीं करता है
Anpheros Platform स्वयं Apple Health, Health Connect या किसी भी विक्रेता क्लाउड से कनेक्ट नहीं होता है: आपका ऐप फोन पर डेटा पढ़ता है और API के माध्यम से उसे लिखता है। Anpheros का अपना ऐप, Anpheros Daily, ठीक यही करता है: यह iPhone पर Apple Health और Android पर Health Connect पढ़ता है, दैनिक सारांश रखता है और उन्हें उपरोक्त कोड के साथ व्यक्ति के FHIR रिकॉर्ड में लिखता है। डिवाइस कनेक्ट करना इसके Plus और Max प्लान का हिस्सा है।
अक्सर पूछे जाने वाले प्रश्न
Apple Watch डेटा को FHIR सर्वर में कैसे प्राप्त करें?
HealthKit के साथ iPhone पर Apple Health से इसे पढ़ें (कोई सर्वर API नहीं है), इसे प्रति दिन सारांशित करें, और अपने बैकएंड को प्रत्येक मीट्रिक को LOINC कोड और UCUM यूनिट के साथ एक Observation के रूप में लिखें, जिसे डिवाइस डेटा के रूप में चिह्नित किया गया हो।
क्या Health Connect या Apple Health के लिए कोई क्लाउड API है?
नहीं। दोनों डेटा को फोन पर रखते हैं; फोन पर इंस्टॉल किया गया एक ऐप व्यक्ति की अनुमति से इसे पढ़ता है। Garmin, Fitbit या Oura जैसे विक्रेता क्लाउड के अपने API हैं, लेकिन फोन के हेल्थ स्टोर को पढ़ना एकीकरण के साथ उनमें से अधिकांश को कवर करता है।
चरणों के लिए मुझे कौन सा LOINC कोड उपयोग करना चाहिए?
41950-7, "Number of steps in 24 hour Measured", दैनिक effectivePeriod के साथ। हृदय गति के लिए 8867-4, SpO₂ के लिए 59408-5, नींद की अवधि के लिए 93832-4 का उपयोग करें।
क्या मुझे हर हृदय-गति नमूने को FHIR में संग्रहीत करना चाहिए?
आमतौर पर नहीं। औसत, न्यूनतम और अधिकतम के साथ एक दैनिक सारांश वह है जिसे एक व्यक्ति या चिकित्सक पढ़ता है; व्यक्तिगत रीडिंग केवल तभी रिकॉर्ड में आती हैं जब वे अपने आप में महत्वपूर्ण होती हैं, जैसे कि अनियमित लय की घटना।
क्या मैं Apple Health और Health Connect से HRV के लिए एक कोड का उपयोग कर सकता हूँ?
नहीं। Apple Health SDNN रिपोर्ट करता है और Health Connect RMSSD रिपोर्ट करता है; वे विभिन्न चीजों को मापते हैं और विभिन्न कोड की आवश्यकता होती है।
संबंधित
- वियरेबल APIs: Fitbit, Garmin, Oura और Withings
- हेल्थ ट्रैकर API: सहमति के साथ सर्वर पर ट्रैकर डेटा संग्रहीत करना
- पर्सनल हेल्थ रिकॉर्ड ऐप कैसे बनाएं
- हेल्थकेयर इंटीग्रेशन: लैब्स, क्लीनिक्स और ऐप्स के साथ डिवाइस
- FHIR कोड सिस्टम: LOINC और UCUM
- मेडिकल डेटा प्रोवेनेंस समझाया गया
- मेडिकल डेटा को कैसे सामान्य करें
- FHIR के साथ रिमोट पेशेंट मॉनिटरिंग: व्यक्तिगत रीडिंग, वेबहुक और अलर्ट
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card