Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
शुरुआत करना
API की से लेकर सैंडबॉक्स में पेशेंट के FHIR R4 रिकॉर्ड को पढ़ना और लिखना: कीज़, पहली कॉल्स, प्रोवेनेंस के साथ राइट्स, दस्तावेज़, AI कॉन्टेक्स्ट, IPS, सहमति, वेबहुक और लैब रिपोर्ट।
Anpheros Platform एक स्वास्थ्य-डेटा बैकएंड है: प्रति मरीज़ एक FHIR R4 रिकॉर्ड, प्रोजेक्ट अलगाव, हर राइट पर प्रोवेनेंस, और उसी डेटा के ऊपर एक सरल REST API। यह गाइड आपको शून्य से सैंडबॉक्स में किसी मरीज़ के रिकॉर्ड को पढ़ने और लिखने तक ले जाती है।
बेस URL (सैंडबॉक्स और प्रोडक्शन इसे साझा करते हैं; कुंजी डेटा प्लेन तय करती है):
https://platform.anpheros.com
इंटरैक्टिव संदर्भ: /docs (OpenAPI) और /fhir/R4/metadata (CapabilityStatement)।
1. कुंजी प्राप्त करें (1 मिनट)
सैंडबॉक्स सेल्फ-सर्विस है। डैशबोर्ड (https://platform.anpheros.com/dashboard/) पर Google से साइन इन करें और सैंडबॉक्स कुंजी प्राप्त करें दबाएं: आपको एक संगठन, अपने स्वयं के सिंथेटिक रोगियों के साथ एक सैंडबॉक्स प्रोजेक्ट, और एक कुंजी मिलती है - जो एक बार दिखाई जाती है। एडमिन API के माध्यम से भी यही, आपके Firebase उपयोगकर्ता टोकन के साथ:
curl -X POST $BASE/admin/sandbox/quickstart -H "Authorization: Bearer $FIREBASE_ID_TOKEN"
# {"organization": {…}, "project": {"id": "proj_…", "environment": "sandbox", …}, "key": {"key": "sk_test_…", …}, "sandbox": {…}}
या चरण दर चरण:
# 1. an organization (you become its owner)
curl -X POST $BASE/admin/organizations -H "Authorization: Bearer $FIREBASE_ID_TOKEN" \
-H 'content-type: application/json' -d '{"name":"CardioAI SRL","kind":"developer","country":"RO"}'
# 2. a sandbox project (it comes with its own synthetic patients)
curl -X POST $BASE/admin/organizations/org_…/projects -H "Authorization: Bearer $FIREBASE_ID_TOKEN" \
-H 'content-type: application/json' -d '{"name":"CardioAI dev","environment":"sandbox"}'
# 3. a key — the plain key is returned exactly once
curl -X POST $BASE/admin/projects/proj_…/keys -H "Authorization: Bearer $FIREBASE_ID_TOKEN" \
-H 'content-type: application/json' -d '{"name":"local dev","scopes":["read","write"]}'
आपको sk_test_… मिलता है। सैंडबॉक्स कुंजियाँ केवल सैंडबॉक्स डेटा देखती हैं। प्रोडक्शन कुंजियाँ (sk_live_…) हस्ताक्षरित DPA के साथ सत्यापित संगठनों को जारी की जाती हैं - [email protected] पर लिखें। सैंडबॉक्स मुफ़्त है; प्रोडक्शन €99 प्रति माह से शुरू होता है और पहला महीना मुफ़्त है ( मूल्य निर्धारण देखें)।
2. पहला कॉल (1 मिनट)
आपके सैंडबॉक्स प्रोजेक्ट में पहले से ही 30 सिंथेटिक रोगियों की अपनी कॉपी है, जिसमें प्रोजेक्ट बनने के दिन तक छह महीने का इतिहास है: वयस्क, बच्चे और यूरोपीय संघ भर के बुजुर्ग, विभिन्न स्थितियों (ICD-10), दवाओं (ATC), एलर्जी, लैब परिणामों और महत्वपूर्ण संकेतों (LOINC) के साथ। यह कॉपी आपके प्रोजेक्ट से संबंधित है: कुछ भी बदलें या हटा दें - कोई अन्य प्रोजेक्ट इसे नहीं देखेगा। डैशबोर्ड में टेस्ट रोगियों को रीसेट करें (या POST /admin/projects/{id}/sandbox/reset) उन्हें वैसे ही वापस ले आता है जैसे वे थे, नए आईडी के साथ; आपके द्वारा स्वयं बनाए गए रोगियों को छुआ नहीं जाता है। प्रत्येक सिंथेटिक रोगी रीसेट के दौरान एक स्थिर पहचानकर्ता रखता है: Patient?identifier=https://anpheros.com/fhir/sid/sandbox-persona|p02 हमेशा एलेना इओनेस्कु है।
export KEY=sk_test_…
curl $BASE/v1/patients -H "Authorization: Bearer $KEY"
{"data":[{"id":"…","given":"Elena","family":"Ionescu","birth_date":"1985-09-03","gender":"female",…,"fhir":"Patient/…"}, …],"total":30,"next_cursor":null}
सैंडबॉक्स सीमाएं उदार लेकिन सीमित हैं: प्रति प्रोजेक्ट प्रतिदिन 10,000 संसाधन राइट्स, सिंथेटिक लोगों के अलावा 50 रोगी, 250 MB दस्तावेज़ (सीमाएं देखें limits)।
3. रिकॉर्ड पढ़ें
# lab results, newest first
curl "$BASE/v1/patients/$PID/observations?category=laboratory&limit=10" -H "Authorization: Bearer $KEY"
# active medications
curl "$BASE/v1/patients/$PID/medications?status=active" -H "Authorization: Bearer $KEY"
# everything on one timeline
curl "$BASE/v1/patients/$PID/timeline?from=2026-06-01" -H "Authorization: Bearer $KEY"
# the same data, strict FHIR
curl "$BASE/fhir/R4/Observation?patient=$PID&code=http://loinc.org|4548-4&_sort=-date" -H "Authorization: Bearer $KEY"
Ids /v1 और /fhir/R4 में समान हैं; हर v1 ऑब्जेक्ट अपना fhir संदर्भ रखता है।
_summary=count केवल कुल संख्या लौटाता है; _elements=code,effectiveDateTime स्लिम रिसोर्स लौटाता है जिन्हें SUBSETTED के रूप में टैग किया गया है।
4. लिखें
बताएं कि लेखक कौन है। author_type, patient, practitioner, device, import या ai है;
यदि आप इसे छोड़ देते हैं तो प्लेटफ़ॉर्म import रिकॉर्ड करता है, कभी भी patient को अनुमान से नहीं।
author_type ai के साथ लिखना HL7 AI Transparency on FHIR का पालन करता है:
संसाधन AIAST सुरक्षा लेबल (Artificial Intelligence asserted) वहन करता है और इसके Provenance में कारण
AIAST, एजेंट भूमिका Artificial-Intelligence और AI-Provenance प्रोफ़ाइल है। मॉडल का नाम बताने के लिए, इसे
Device (प्रकार Artificial-Intelligence, नाम, संस्करण, निर्माता) के रूप में पंजीकृत करें और X-Anpheros-Author-Ref: Device/<id> भेजें।
curl -X POST "$BASE/v1/patients/$PID/observations" -H "Authorization: Bearer $KEY" \
-H 'content-type: application/json' -H "Idempotency-Key: $(uuidgen)" -d '{
"code": "2339-0", "display": "Glucose", "category": "laboratory",
"value": 112, "unit": "mg/dL", "effective_at": "2026-09-19T08:10:00Z",
"author_type": "device"
}'
प्रतिक्रिया संग्रहीत अवलोकन है जिसमें id, fhir और updated_at शामिल हैं। उसी
अनुरोध को समान Idempotency-Key के साथ दोहराने पर वही प्रतिक्रिया मिलती है और कुछ भी नया नहीं बनता है।
5. दस्तावेज़
# 1. create the document → upload target
curl -X POST "$BASE/v1/patients/$PID/documents" -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
-d '{"title":"Analize 2026-09-14","kind":"lab_report","content_type":"application/pdf","date":"2026-09-14"}'
# 2. upload the bytes to the returned url (direct to storage, or through the platform)
curl -X PUT "$BASE/v1/documents/$DOC/content" -H "Authorization: Bearer $KEY" -H 'content-type: application/pdf' --data-binary @analize.pdf
मूल को उसके बाद कभी भी संशोधित नहीं किया जाता है; sha256 और size दर्ज किए जाते हैं, और आपके द्वारा बाद में निकाले गए कोई भी मान derived_from के माध्यम से दस्तावेज़ पर वापस इंगित करते हैं।
6. प्रोवेनेंस (Provenance)
curl "$BASE/v1/patients/$PID/provenance/Observation/$OBS" -H "Authorization: Bearer $KEY"
प्रति संस्करण एक प्रविष्टि: कौन (लेखक का प्रकार और प्रोजेक्ट), कब, किस स्रोत प्रणाली से।
जानने योग्य नियम
- अलगाव (Isolation): एक प्रोजेक्ट उन रोगियों को देखता है जिन्हें उसने बनाया है (साथ ही साझा सैंडबॉक्स रोगियों को)। किसी और का रोगी आपके लिए मौजूद नहीं है:
404, कभी भी403नहीं। - युग्मित आईडी (Pairwise ids): आप जो रोगी आईडी देखते हैं वह आपकी है। एक अलग प्रोजेक्ट उसी व्यक्ति को एक अलग आईडी के तहत देखता है। हमारी आईडी को स्वतंत्र रूप से स्टोर करें; उन्हें कभी भी सहसंबंधित करने का प्रयास न करें।
- प्रमाण (Provenance): हर लेखन एक Provenance संसाधन छोड़ता है। कुछ भी चुपचाप अधिलेखित नहीं किया जाता है; इतिहास
/fhir/R4/{Type}/{id}/_historyपर उपलब्ध है। - त्रुटियाँ (Errors): FHIR एंडपॉइंट
OperationOutcomeलौटाते हैं;/v1और/admin{"error": {"type", "message", "field"}}लौटाते हैं। हर प्रतिक्रिया मेंAnpheros-Request-Idहोता है; जब आप हमसे संपर्क करें तो उसे उद्धृत करें। - सीमाएँ (Limits): डिफ़ॉल्ट रूप से प्रति कुंजी 600 अनुरोध/मिनट, प्रति पृष्ठ 200 आइटम, प्रति दस्तावेज़ 25 MB।
7. AI मॉडल के लिए संदर्भ
कच्चे रिकॉर्ड्स को खींचने और यह तय करने के बजाय कि क्या किसी प्रॉम्प्ट में फिट बैठता है, प्लेटफ़ॉर्म से एक संदर्भ के लिए पूछें:
curl -X POST "$BASE/v1/context" -H "Authorization: Bearer $KEY" -H 'content-type: application/json' -d '{
"patient": "'$PID'",
"task": "medication review before a cardiology visit",
"question": "How did blood pressure evolve over the last 3 months?",
"budget_tokens": 1500,
"format": "text"
}'
आपको अनुभाग (सारांश कार्ड, स्थितियाँ, दवाएँ, एलर्जी, लैब, साप्ताहिक रुझानों और उपचार से पहले/बाद के मार्करों के साथ वाइटल्स, लक्षण, समयरेखा, दस्तावेज़) मिलते हैं, प्रत्येक आइटम author_type और source के साथ लेबल किया गया है, बजट में फिट होने के लिए क्या छोड़ा गया था, चेतावनियाँ, और एक manifest_id जो कॉल को ऑडिट लॉग से जोड़ता है। AI द्वारा उत्पन्न मानों को कभी भी तथ्यों के साथ मिश्रित नहीं किया जाता है: वे केवल ai_notes के तहत दिखाई देते हैं। स्पष्ट ज़रूरतें भी स्वीकार की जाती हैं:
"needs": ["labs:4548-4", "vitals:trend:85354-9", "timeline:180d"]।
8. मानक
GET /fhir/R4/Patient/{id}/$summaryएक अंतर्राष्ट्रीय रोगी सारांश दस्तावेज़ बंडल (International Patient Summary document Bundle) लौटाता है।POST /fhir/R4/Observation/$validate?profile=eu-labरिपोर्ट करता है कि एक प्रयोगशाला परिणाम HL7 यूरोप प्रयोगशाला रिपोर्ट 2.1.0 परिणाम प्रोफ़ाइल (त्रुटियाँ, चेतावनियाँ, जानकारी) के मुकाबले कैसा है: श्रेणी, कोड (LOINC को प्राथमिकता), विषय, प्रभावी समय, एक प्रदर्शनकर्ता, और एक मान, जब तक कि परिणाम केवल पंजीकृत या रद्द न हो।GET /v1/terminology/loinc?q=hba1cबंडल किए गए LOINC सबसेट (LOINC subset) को खोजता है औरGET /v1/search?q=metforminलक्षणों, स्थितियों और दवाओं की सूची (catalog of symptoms, conditions and medicines) को खोजता है; डिस्प्ले नाम के बिना बनाए गए अवलोकन (observations) को स्वचालित रूप से LOINC नाम मिल जाता है।
9. रोगी की सहमति (OAuth 2.1 + SMART on FHIR)
API कुंजियाँ आपके द्वारा बनाए गए प्रोजेक्ट के रोगियों को देखती हैं। किसी व्यक्ति के मौजूदा रिकॉर्ड तक पहुँचने के लिए, उनसे पूछें:
- एक एप्लिकेशन पंजीकृत करें:
POST /admin/projects/{id}/applicationsअपने रीडायरेक्ट URI के साथ (PKCE के साथ मोबाइल/वेब ऐप्स के लिएpublic, सर्वर के लिएconfidential; सीक्रेट एक बार दिखाया जाता है)। - व्यक्ति को सहमति पृष्ठ पर भेजें:
GET /oauth/authorize?response_type=code&client_id=…&redirect_uri=…&state=…&code_challenge=…&code_challenge_method=S256&scope=patient/Observation.rs?category=laboratory patient/MedicationStatement.r offline_access&purpose=treatment&lang=roवे Anpheros में साइन इन करते हैं, सादे भाषा में आपके द्वारा मांगी गई चीज़ें देखते हैं, रिकॉर्ड चुनते हैं (उनका अपना, किसी आश्रित का, या वह जो आपके ऐप ने उनके लिए बनाया है) और एक्सेस कितने समय तक रहता है। - कोड का आदान-प्रदान करें:
POST /oauth/token(authorization_code+code_verifier)। आपको एक एक्सेस टोकन (30 मिनट), एक रिफ्रेश टोकन (30 दिन, उपयोग पर घुमाया जाता है) और रोगी आईडी प्राप्त होती है। Authorization: Bearer at_…के साथ API को कॉल करें। आप केवल उस रोगी को देखते हैं, केवल स्कोप में संसाधन प्रकार और क्रियाएं; स्कोप से बाहर के रीड403का उत्तर देते हैं, खोजों को फ़िल्टर किया जाता है।
व्यक्ति Anpheros से किसी भी समय निरस्त कर सकता है; अगली कॉल 401 का उत्तर देती है। प्रत्येक अनुदान को
एक FHIR Consent संसाधन के रूप में प्रतिबिंबित किया जाता है, और उसके तहत प्रत्येक एक्सेस लॉग किया जाता है और व्यक्ति के लिए दृश्यमान होता है। डिस्कवरी: /.well-known/smart-configuration।
10. वेबहुक
प्लेटफ़ॉर्म को पोल करने के बजाय आपको कॉल करने दें:
curl -X POST $BASE/v1/webhooks -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"url": "https://your.app/anpheros/hook", "events": ["*"]}'
प्रतिक्रिया से secret रखें और हर डिलीवरी पर Anpheros-Signature सत्यापित करें
(दोनों SDK में verifyWebhookSignature)। इवेंट में आईडी और संस्करण होते हैं, नैदानिक डेटा नहीं।
विवरण, पुनः प्रयास और उदाहरण: webhooks.md।
11. संगठन और प्रैक्टिशनर
क्लिनिक, लैब और वहां काम करने वाले लोग प्रथम श्रेणी के संसाधन हैं: Organization, Practitioner, PractitionerRole। वे निर्देशिका संसाधन हैं: कोई रोगी नहीं, जो एक ही वातावरण में हर प्रोजेक्ट द्वारा पढ़ा जा सके, केवल उस प्रोजेक्ट द्वारा बदला जा सके जिसने उन्हें बनाया है।
curl -X POST $BASE/fhir/R4/Practitioner -H "Authorization: Bearer $KEY" -H "Content-Type: application/fhir+json" \
-d '{"resourceType":"Practitioner","active":true,"name":[{"family":"Popescu","given":["Ana"],"prefix":["Dr."]}]}'
X-Anpheros-Author-Ref: Practitioner/<id> (या PractitionerRole, Organization, Device) के साथ किसी राइट के पीछे के प्रैक्टिशनर का नाम दें: सर्वर-जनित Provenance तब agent.who.reference ले जाएगा, और GET /fhir/R4/Provenance?agent=Practitioner/<id> उस व्यक्ति द्वारा रिकॉर्ड की गई हर चीज़ को सूचीबद्ध करेगा। खोजें: Organization?name=, ?identifier=, ?type=, Practitioner?name=, ?family=, ?given=, PractitionerRole?practitioner=, ?organization=, ?role=, ?specialty=, ?active=।
आपके ऐप के पीछे कौन काम कर रहा है? प्रोजेक्ट कुंजी के साथ किए गए किसी भी /v1 या /fhir/R4 अनुरोध पर X-Anpheros-Acting-As: PractitionerRole/<id> (या Practitioner/<id>) भेजें। व्यक्ति को निर्देशिका में मौजूद होना चाहिए और सक्रिय होना चाहिए। संदर्भ एक्सेस लॉग में लिखा जाता है, उस अनुरोध के राइट्स का लेखक बन जाता है (जब तक कि आप X-Anpheros-Author-Ref सेट न करें) और रोगी को उनके कनेक्शन में नाम से दिखाया जाता है ("डॉ. एना पोपेस्कु · क्लिनिका डेंटे ने आपके लैब परिणाम पढ़े")।
12. एक कॉल में लैब रिपोर्ट
एक पूरी लैब रिपोर्ट (CSV, HL7 v2 ORU^R01 या JSON) भेजें और LOINC और संदर्भ श्रेणियों के साथ प्रयोगशाला अवलोकन प्राप्त करें; पुनः भेजना सुरक्षित है। विवरण: lab-connector.md।
curl -X POST "$BASE/v1/patients/$PATIENT/labs/import" -H "Authorization: Bearer $KEY" -H "Content-Type: text/csv" --data-binary @report.csv
राइट्स पर कन्फ़ॉर्मेंस फ़ीडबैक
हर POST/PUT क्लिनिकल रिसोर्स को उसके सेक्शन के IPS प्रोफ़ाइल के विरुद्ध और,
लैबोरेटरी ऑब्ज़र्वेशन के लिए, HL7 Europe लैबोरेटरी रिपोर्ट नियमों के विरुद्ध चेक किया जाता है। प्रोफ़ाइल कारणों से राइट कभी रिजेक्ट नहीं किया जाता है (स्ट्रक्चरल FHIR एरर अभी भी रिजेक्ट हो सकते हैं); जब कुछ मिसिंग होता है, तो रिस्पॉन्स में
Anpheros-Conformance: warnings=2; IPS Condition: Condition without code | ...
यह बताता है कि क्या फिक्स करना है और रिसोर्स पेशेंट के $summary में शामिल हो जाएगा। 22 सितंबर 2026 को जोड़े गए रिसोर्स टाइप: Immunization, MedicationAdministration (सर्च statement=MedicationStatement/{id}),
RelatedPerson, QuestionnaireResponse, Basic। अन्य प्रोजेक्ट्स द्वारा रिकॉर्ड में किए गए राइट्स आपको वेबहुक इवेंट्स के रूप में प्राप्त हो सकते हैं data.external = true — docs/webhooks.md देखें।
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card