Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
FHIR के साथ पर्सनल हेल्थ रिकॉर्ड (PHR) ऐप
ट्यूटोरियल: FHIR R4 पर एक कनेक्टेड PHR का बैकएंड — लोगों, लैब, दस्तावेज़ों और डिवाइसों से डेटा, एक टाइमलाइन, शेयर करने के लिए एक IPS, सहमति। टेस्टेड कोड।
एक पर्सनल हेल्थ रिकॉर्ड (PHR) ऐप एक व्यक्ति की स्वास्थ्य जानकारी — परिणाम, माप, निदान, दवाएं, दस्तावेज़ — को एक ऐसे रिकॉर्ड में रखता है जिसे व्यक्ति नियंत्रित करता है, जो एक अस्पताल के बजाय कई स्रोतों से एकत्र किया जाता है। कठिन हिस्से स्क्रीन नहीं हैं: वे उपयोग करने योग्य रूप में लैब्स, क्लीनिकों और उपकरणों से डेटा प्राप्त करना, प्रत्येक आइटम कहाँ से आया है, इसका ट्रैक रखना और व्यक्ति को नियंत्रण खोए बिना रिकॉर्ड साझा करने देना है। यह ट्यूटोरियल Anpheros TypeScript SDK के साथ HL7 FHIR R4 पर PHR का बैकएंड बनाता है; नीचे दिया गया कोड सैंडबॉक्स कुंजी के साथ प्लेटफ़ॉर्म के स्थानीय इंस्टेंस के विरुद्ध चलाया गया था।
Tethered, untethered और connected PHR
| प्रकार | डेटा कहाँ रहता है | सीमा |
|---|---|---|
| Tethered (एक अस्पताल का रोगी पोर्टल) | प्रदाता का EHR | केवल उस प्रदाता का डेटा दिखाता है; व्यक्ति के डॉक्टर बदलने पर बदल जाता है |
| Untethered (एक स्टैंडअलोन ऐप या नोटबुक) | ऐप का अपना डेटाबेस | व्यक्ति सब कुछ टाइप करता है; डेटा शायद ही कभी ऐप से बाहर जाता है |
| Connected | एक मानक रिकॉर्ड जिसे व्यक्ति की सहमति से ऐप, लैब और क्लीनिक पढ़ते और लिखते हैं | इसके लिए मानकों, सहमति और प्रोवेनेंस की आवश्यकता होती है |
एक connected PHR आज बनाने लायक है। यह वह भी है जिसकी ओर नीति आगे बढ़ रही है: संयुक्त राज्य अमेरिका में, प्रमाणित EHR को रोगियों को उनके डेटा तक FHIR-आधारित API एक्सेस (US Core) प्रदान करना चाहिए, और यूरोपीय संघ में European Health Data Space लोगों को उनके इलेक्ट्रॉनिक स्वास्थ्य डेटा तक पहुंचने और इसे अपनी पसंद के प्रदाताओं के साथ साझा करने का अधिकार देता है, जो 2029 से चरणबद्ध तरीके से लागू होगा।
PHR का डेटा कहाँ से आता है
- व्यक्ति: घर पर मापे गए मान, लक्षण, ली जा रही दवाएं, ज्ञात स्थितियाँ। इन्हें रोगी-रिपोर्टेड के रूप में चिह्नित करें।
- लैब रिपोर्ट: अधिकांश लोग PDF प्राप्त करते हैं; कुछ लैब HL7 v2 या CSV भेज सकते हैं। प्रत्येक परिणाम को एक कोडेड Observation (Lab results API) बनना चाहिए।
- दस्तावेज़: डिस्चार्ज लेटर, इमेजिंग रिपोर्ट, प्रिस्क्रिप्शन। मूल फ़ाइल को अपरिवर्तित, संरचित डेटा के बगल में रखें।
- डिवाइस और वियरेबल्स: दैनिक कदम, हृदय गति, नींद, Apple Health या Health Connect से रक्तचाप (wearable data in FHIR)।
- प्रदाता: अमेरिका में, अस्पतालों और बीमाकर्ताओं के पेशेंट-एक्सेस FHIR API, जिन्हें SMART on FHIR के साथ एक्सेस किया जाता है; अन्य जगहों पर, मुख्य रूप से दस्तावेज़ और सारांश जैसे कि International Patient Summary।
प्रत्येक स्रोत एक ही रिकॉर्ड में लिखता है। जो इसे भरोसेमंद बनाए रखता है वह यह है कि प्रत्येक आइटम रिकॉर्ड करता है कि इसे किसने लिखा और किस सिस्टम से (medical data provenance)।
आर्किटेक्चर
person ──► your PHR app (mobile / web) ──► your backend ──► Anpheros: one FHIR R4 record per person
│ ├─ Observations, Conditions, Medications, Documents…
lab report, PDF, device data ───────────────┘ ├─ Provenance on every write
├─ access log the person can see
other apps, doctors, AI assistants ◄── consent (OAuth) ───────┴─ $summary (IPS) to share
आपका बैकएंड प्रोजेक्ट कुंजी रखता है (सैंडबॉक्स में sk_test_…, ऐप में कभी नहीं)। आपका ऐप आपके स्वयं के प्रमाणीकरण के साथ लोगों को साइन इन करता है और आपके बैकएंड से बात करता है; बैकएंड प्रत्येक उपयोगकर्ता को एक रोगी रिकॉर्ड पर मैप करता है।
चरण दर चरण
SDK (npm install @anpheros/sdk) इंस्टॉल करें और डैशबोर्ड से एक निःशुल्क सैंडबॉक्स कुंजी प्राप्त करें। नमूना दो-परिणाम HL7 v2 लिपिड पैनल (lipid-panel.hl7) और कोई भी PDF (report.pdf) का उपयोग करता है।
import { readFile } from 'node:fs/promises';
import { Anpheros, apiKey } from '@anpheros/sdk';
const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });
// 1. One record per person who signs up in your PHR app
const jane = await anpheros.patients.create({ given: 'Jane', family: 'Doe', birth_date: '1984-07-19', gender: 'female' });
// 2. Something the person measured at home
await anpheros.observations.create(jane.id, {
code: '85354-9', category: 'vital-signs', effective_at: '2026-10-01T08:30:00-05:00', author_type: 'patient',
components: [{ code: '8480-6', value: 128, unit: 'mm[Hg]' }, { code: '8462-4', value: 82, unit: 'mm[Hg]' }],
});
// 3. A diagnosis and a medication the person reports
await anpheros.conditions.create(jane.id, { code: 'E11.9', system: 'http://hl7.org/fhir/sid/icd-10',
display: 'Type 2 diabetes mellitus without complications', clinical_status: 'active', onset: '2021-03-15', author_type: 'patient' });
await anpheros.medications.create(jane.id, { code: 'A10BA02', display: 'Metformin 500 mg', status: 'active',
dosage: '500 mg twice a day', start: '2021-03-20', author_type: 'patient' });
// 4. A lab report the person received, as the lab sent it (HL7 v2)
const lab = await anpheros.labs.importHl7(jane.id, await readFile('lipid-panel.hl7', 'utf8'), { sourceSystem: 'springfield-lis' });
// 5. A PDF they want to keep with the record
const doc = await anpheros.documents.upload(jane.id,
{ title: 'Chest X-ray report', kind: 'imaging_report', content_type: 'application/pdf', date: '2026-10-03' },
await readFile('report.pdf'));
// 6. One timeline for the home screen
const timeline = await anpheros.timeline.list(jane.id, { limit: 10 });
// 7. A summary to share with a new doctor: the International Patient Summary
const ips = await anpheros.fhir.summary(jane.id);
// 8. Who else can read this record (empty until the person consents to another app)
const grants = await anpheros.grants.of(jane.id);
उस रन से मुद्रित:
lab: created 2, unmapped []
document: final
timeline: 2026-10-03 document Chest X-ray report
2026-10-02 observation Cholesterol in HDL [Mass/volume] in Serum or Plasma
2026-10-02 observation Cholesterol [Mass/volume] in Serum or Plasma
2026-10-01 observation Blood pressure panel
2021-03-20 medication Metformin 500 mg
2021-03-15 condition Type 2 diabetes mellitus without complications
IPS: Allergies, Medications, Problems, Results, Vital signs
grants: 0
ऊपर सब कुछ FHIR R4 के रूप में संग्रहीत है — Patient, Observation, Condition, MedicationStatement, DocumentReference — इसलिए एक ही रिकॉर्ड को किसी भी FHIR क्लाइंट (GET /fhir/R4/Patient/{id}/$everything) के साथ पढ़ा जा सकता है और बरकरार रखा जा सकता है। SDK में /v1 कॉल्स समान संसाधनों का एक सरल दृश्य हैं; Medical data API उन्हें सूचीबद्ध करता है।
नियंत्रण खोए बिना साझा करना
एक PHR साझा करने के लिए मौजूद है, व्यक्ति की शर्तों पर:
- डॉक्टर के साथ: इंटरनेशनल पेशेंट समरी (
$summary) एक FHIR दस्तावेज़ है जो चिकित्सकों के लिए बनाया गया है — समस्याएं, दवाएं, एलर्जी, परिणाम — जिसे आपका ऐप दिखा सकता है, प्रिंट कर सकता है या भेज सकता है। FHIR platform$summaryऔर$everythingका वर्णन करता है। - दूसरे ऐप के साथ: दूसरा ऐप OAuth 2.1 और SMART on FHIR के माध्यम से सहमति मांगता है; व्यक्ति चुनता है कि कौन सा डेटा (उदाहरण के लिए केवल प्रयोगशाला परिणाम) और कितनी देर के लिए, और इसे किसी भी समय रद्द कर सकता है। How to implement patient consent with SMART on FHIR इसमें विस्तार से बताया गया है।
- AI सहायक के साथ:
POST /v1/contextमॉडल के लिए रिकॉर्ड का एक बजट-युक्त, स्रोत-लेबल वाला सारांश बनाता है, और रीड एक्सेस लॉग में दिखाई देता है (How to build an AI healthcare app)। - पारदर्शिता: किसी भी एप्लिकेशन द्वारा हर रीड और राइट को एप्लिकेशन के अनुसार लॉग किया जाता है, और व्यक्ति लॉग और सक्रिय अनुदान देख सकता है।
परिवार (Families)
कई PHRs एक व्यक्ति द्वारा कई लोगों के लिए रखे जाते हैं: बच्चे, एक साथी, एक बुजुर्ग माता-पिता। प्रत्येक व्यक्ति के लिए उनका अपना रिकॉर्ड बनाएं और उन्हें अभिभावक से लिंक करें, बजाय इसके कि सभी का डेटा एक में मिला दिया जाए। इसके बाद प्रति रिकॉर्ड सहमति दी जाती है। Patient medical record मॉडल का वर्णन करता है।
आपको क्या स्वयं बनाना है, और क्या नहीं
आप अनुभव का निर्माण करते हैं: ऑनबोर्डिंग, परिणामों की व्याख्या कैसे की जाती है, अनुस्मारक, चार्ट, वह भाषा जो व्यक्ति पढ़ता है। Anpheros रिकॉर्ड, मानक प्रारूप, सहमति, उत्पत्ति, एक्सेस लॉग और लैब, दस्तावेज़ और सारांश संचालन प्रदान करता है।
Anpheros आज PHR के लिए क्या नहीं करता है: यह व्यक्ति की ओर से अस्पताल रोगी पोर्टलों या US रोगी-एक्सेस API में लॉग इन नहीं करता है (आपका ऐप SMART on FHIR क्लाइंट के साथ ऐसा कर सकता है और जो प्राप्त करता है उसे लिख सकता है), यह API के माध्यम से PDF रिपोर्ट नहीं पढ़ता है, और यह चिकित्सा सलाह नहीं देता है। Anpheros का अपना PHR ऐप, Anpheros Daily, इसी API पर बनाया गया है।
अक्सर पूछे जाने वाले प्रश्न
व्यक्तिगत स्वास्थ्य रिकॉर्ड (PHR) क्या है?
यह किसी व्यक्ति के स्वास्थ्य संबंधी जानकारी का एक रिकॉर्ड है जिसे वह व्यक्ति स्वयं रखता है और नियंत्रित करता है। यह कई स्रोतों से एकत्र किया जाता है - जैसे कि व्यक्ति की अपनी प्रविष्टियाँ, लैब, क्लिनिक, डिवाइस - न कि किसी एक प्रदाता द्वारा रखा जाता है।
PHR और EHR में क्या अंतर है?
EHR एक स्वास्थ्य सेवा संगठन द्वारा रखा जाता है और इसमें उसके प्रदाताओं द्वारा दर्ज की गई जानकारी शामिल होती है। PHR व्यक्ति द्वारा रखा जाता है और इसमें उसके सभी प्रदाताओं और उपकरणों से डेटा को संयोजित किया जा सकता है। एक टेथर्ड PHR एक प्रदाता के EHR में एक विंडो की तरह होता है; एक कनेक्टेड PHR कई स्रोतों को एक साथ लाने के लिए मानकों का उपयोग करता है।
क्या PHR को FHIR का उपयोग करना चाहिए?
यदि डेटा को कभी भी किसी डॉक्टर, किसी अन्य ऐप या AI सहायक के साथ साझा किया जाना है, तो हाँ: FHIR R4 कोडित, संस्करणित संसाधन प्रदान करता है जिन्हें अन्य सिस्टम पहले से ही समझते हैं, और यह अमेरिका में रोगी-पहुँच API का प्रारूप है और यूरोपीय रोगी सारांश का भी।
PHR ऐप अस्पतालों से डेटा कैसे प्राप्त करता है?
अमेरिका में, FHIR रोगी-पहुँच API के माध्यम से जो प्रमाणित EHR और कई बीमाकर्ता उपलब्ध कराते हैं, SMART on FHIR का उपयोग करके व्यक्ति ऐप को अधिकृत करने की अनुमति देता है। अन्य जगहों पर यह ज्यादातर दस्तावेज़ और सारांश होते हैं, जिन्हें संरचित डेटा के बगल में आयात और संग्रहीत किया जाता है।
PHR ऐप को API कुंजी कहाँ रखनी चाहिए?
आपके सर्वर पर। एक प्रोजेक्ट कुंजी आपके प्रोजेक्ट द्वारा बनाए गए हर रिकॉर्ड को पढ़ सकती है, इसलिए इसे कभी भी मोबाइल या वेब ऐप के अंदर नहीं भेजा जाना चाहिए; ऐप आपके बैकएंड से बात करता है, और अन्य लोगों के ऐप व्यक्ति की सहमति से OAuth का उपयोग करते हैं।
संबंधित
- हेल्थकेयर ऐप बनाएं: सामान्य वॉकथ्रू
- रोगी का मेडिकल रिकॉर्ड: रिकॉर्ड में क्या शामिल है और कौन इसे एक्सेस कर सकता है
- डिजिटल मेडिकल रिकॉर्ड इंफ्रास्ट्रक्चर
- FHIR में वियरेबल डेटा: Apple Health, Health Connect और Samsung Health
- लैब परिणाम API
- SDKs
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card