# SDKs

> Dart / Flutter (anpheros_sdk) और TypeScript (@anpheros/sdk) क्लाइंट: समान संरचना, आइडम्पोटेंट क्रिएट, रिट्रीज़, टोकन रिफ्रेश और कंसेंट फ्लो।

Source: https://developers.anpheros.com/hi/guides/sdks

> FHIR R4 हेल्थकेयर API के लिए आधिकारिक क्लाइंट लाइब्रेरीज़, जिसमें एक फ्री FHIR सैंडबॉक्स शामिल है: पेशेंट, ऑब्ज़र्वेशन, लैब रिजल्ट्स, कंडीशंस, मेडिकेशन्स, इंटरनेशनल पेशेंट समरी, पेशेंट कंसेंट और AI कॉन्टेक्स्ट, TypeScript और Dart / Flutter में।

**Anpheros इंटरऑपरेबल मेडिकल-डेटा इंफ्रास्ट्रक्चर है जो हेल्थकेयर एप्लिकेशन, मेडिकल सॉफ्टवेयर और AI सेवाएं बनाने के लिए है।** प्रत्येक पेशेंट के पास एक HL7 FHIR R4 रिकॉर्ड होता है जिसे वे नियंत्रित करते हैं; एप्लिकेशन, क्लीनिक, लैबोरेटरी और AI एजेंट Anpheros Platform API के माध्यम से इसे पढ़ते और लिखते हैं — पेशेंट की सहमति (OAuth 2.1 / SMART on FHIR), हर राइट पर प्रोवेनेंस और एक एक्सेस लॉग के साथ जिसे पेशेंट देख सकता है। इस रिपॉजिटरी में आधिकारिक क्लाइंट लाइब्रेरीज़ और रन करने योग्य उदाहरण शामिल हैं।

| भाषा | पैकेज | इंस्टॉल | सोर्स |
|---|---|---|---|
| Dart / Flutter | [`anpheros_sdk`](https://pub.dev/packages/anpheros_sdk) | `dart pub add anpheros_sdk` | [`dart/anpheros_sdk`](https://github.com/anpheros/anpheros-sdk/tree/main/dart/anpheros_sdk) |
| TypeScript (Node 18+, ब्राउज़र, Deno, Bun) | [`@anpheros/sdk`](https://www.npmjs.com/package/@anpheros/sdk) | `npm install @anpheros/sdk` | [`ts`](https://github.com/anpheros/anpheros-sdk/tree/main/ts) |

## 2 मिनट में त्वरित शुरुआत

1. **एक निःशुल्क सैंडबॉक्स कुंजी प्राप्त करें:** [डैशबोर्ड](https://platform.anpheros.com/dashboard/) पर साइन इन करें और **सैंडबॉक्स कुंजी प्राप्त करें** (`sk_test_…`) दबाएँ। आपके सैंडबॉक्स में 30 सिंथेटिक मरीज़ हैं।
2. **जांचें कि यह काम करता है:**

   ```bash
   curl -H "Authorization: Bearer $ANPHEROS_KEY" "https://platform.anpheros.com/fhir/R4/Patient?_count=3"
   ```

3. **एक SDK इंस्टॉल करें और एक रिकॉर्ड पढ़ें:** `npm install @anpheros/sdk` या `dart pub add anpheros_sdk`, फिर [कनेक्ट](#connect) के तहत कोड चलाएँ, या [quickstart-ts](https://github.com/anpheros/anpheros-sdk/tree/main/examples/quickstart-ts) को क्लोन करें।

## किसके लिए है

यह उन डेवलपर्स के लिए है जो रोगी और परिवार के स्वास्थ्य ऐप, मेडिकल-ऐप बैकएंड, क्लिनिक और प्रयोगशाला एकीकरण, और AI असिस्टेंट या एजेंट बना रहे हैं, जिन्हें रोगी के संरचित मेडिकल संदर्भ की आवश्यकता होती है - बिना किसी मेडिकल डेटाबेस, सहमति प्रणाली और ऑडिट ट्रेल को खरोंच से डिज़ाइन किए।

## सैंडबॉक्स कुंजी प्राप्त करें

सैंडबॉक्स मुफ़्त और स्व-सेवा है। [डैशबोर्ड](https://platform.anpheros.com/dashboard/) पर Google से साइन इन करें और **सैंडबॉक्स कुंजी प्राप्त करें** दबाएँ: आपको तुरंत एक सैंडबॉक्स प्रोजेक्ट और एक कुंजी मिल जाएगी। प्रत्येक सैंडबॉक्स प्रोजेक्ट में अपने 30 सिंथेटिक मरीज़ होते हैं — छह महीने की स्थितियाँ, दवाएँ, एलर्जी, लैब परिणाम और महत्वपूर्ण संकेत — जिन्हें आप स्वतंत्र रूप से बदल सकते हैं और किसी भी समय रीसेट कर सकते हैं। सैंडबॉक्स कुंजियाँ (`sk_test_…`) कभी भी वास्तविक मरीज़ डेटा तक नहीं पहुँचती हैं।

जब आप लाइव होते हैं, तो उत्पादन डेटा प्रोसेसिंग समझौते वाले सत्यापित संगठनों के लिए होता है, और उत्पादन €99 प्रति माह से शुरू होता है, जिसमें पहला महीना मुफ़्त है ([मूल्य निर्धारण](https://developers.anpheros.com/hi/guides/pricing))।

## कनेक्ट करें

```ts
import { Anpheros, apiKey } from '@anpheros/sdk';

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });   // sk_test_… in the sandbox
const { data: patients } = await anpheros.patients.list();
const labs = await anpheros.observations.list(patients[0].id, { category: 'laboratory', limit: 10 });
const ctx = await anpheros.context.build({ patient: patients[0].id, task: 'weekly check-in', budget_tokens: 1500, format: 'text' });
```

```dart
import 'package:anpheros_sdk/anpheros_sdk.dart';

final anpheros = Anpheros(auth: AnpherosAuth.apiKey('sk_test_…'));
final patients = await anpheros.patients.list();
final labs = await anpheros.observations.list(patients.data.first.id, category: 'laboratory', limit: 10);
```

API कीज़ सर्वर पर होनी चाहिए। कोई व्यक्ति के लिए कार्य करने वाला ऐप इसके बजाय OAuth का उपयोग करता है: दोनों SDKs सहमति प्रवाह (ऑथराइज़ेशन कोड + PKCE) को लागू करते हैं और टोकन को स्वचालित रूप से रीफ़्रेश करते हैं।

## SDK क्या कवर करते हैं

दोनों ही पूरे पब्लिक सरफेस (`/v1`, `/fhir/R4`, `/oauth/token`, `/oauth/revoke`) को समान आकार में कवर करते हैं: `patients`, `observations`, `conditions`, `medications`, `documents`, `timeline`, `provenance`, `context`, `grants`, `terminology` और रॉ `fhir`। जब कोई पब्लिक रूट किसी भी SDK से गायब होता है या जब कोई SDK ऐसे रूट को कॉल करता है जो सर्वर के पास नहीं है, तो एक टेस्ट बिल्ड को फेल कर देता है।

दोनों SDKs: क्रिएट पर ऑटोमैटिक `Idempotency-Key`, 429/5xx पर बैकऑफ़ के साथ रिट्राई, 401 पर एक टोकन रिफ्रेश, रिक्वेस्ट आईडी के साथ टाइप्ड एरर, PKCE हेल्पर और कंसेंट फ्लो।

## मेडिकल डेटा और FHIR

रिकॉर्ड मानक FHIR R4 संसाधनों से बना है — 26 प्रकार, जिनमें `Observation`, `Condition`, `MedicationStatement`, `DocumentReference`, `Immunization` और `AllergyIntolerance` शामिल हैं — जिन्हें LOINC, ICD-10, ATC और UCUM के साथ कोडित किया गया है। REST API (`/v1`) और FHIR API (`/fhir/R4`) समान आईडी के साथ समान संसाधनों को पढ़ते और लिखते हैं; दोनों SDKs में `fhir` रॉ FHIR एक्सेस (खोज, लेनदेन, `$everything`, `$summary`, `$validate`) देता है।

## उदाहरण

| उदाहरण | दिखाता है |
|---|---|
| [quickstart-ts](https://github.com/anpheros/anpheros-sdk/tree/main/examples/quickstart-ts) | एक रिकॉर्ड लिखना और पढ़ना: माप, लैब परिणाम, निदान, दवा, टाइमलाइन, FHIR खोज, IPS, AI संदर्भ |
| [quickstart-dart](https://github.com/anpheros/anpheros-sdk/tree/main/examples/quickstart-dart) | Dart / Flutter से वही |
| [consent-app-ts](https://github.com/anpheros/anpheros-sdk/tree/main/examples/consent-app-ts) | एक वेब ऐप जो सहमति (OAuth 2.1 + PKCE) मांगता है और व्यक्ति का रिकॉर्ड पढ़ता है |
| [ai-context-llm](https://github.com/anpheros/anpheros-sdk/tree/main/examples/ai-context-llm) | आपके द्वारा चुने गए मॉडल (स्थानीय या होस्टेड) द्वारा उत्तर दिया गया एक रिकॉर्ड के बारे में प्रश्न |
| [fhir-transaction](https://github.com/anpheros/anpheros-sdk/tree/main/examples/fhir-transaction) | एक FHIR R4 ट्रांजेक्शन बंडल और परिणामी अंतर्राष्ट्रीय रोगी सारांश |

उदाहरण मुफ्त सैंडबॉक्स के विरुद्ध चलते हैं, जहाँ प्रत्येक सैंडबॉक्स प्रोजेक्ट में अपने 30 सिंथेटिक मरीज़ होते हैं — [सैंडबॉक्स कुंजी प्राप्त करें](#get-a-sandbox-key) देखें।

## संबंधित रिपॉजिटरी

| रिपॉजिटरी | यह क्या है |
|---|---|
| [fhir-api-openapi](https://github.com/anpheros/fhir-api-openapi) | API का OpenAPI 3.1 स्पेसिफिकेशन और Postman कलेक्शन |
| [mcp-server](https://github.com/anpheros/mcp-server) | AI एजेंटों के लिए होस्टेड FHIR MCP सर्वर: Claude, Cursor, VS Code के लिए कॉन्फ़िगरेशन |
| [agent-skills](https://github.com/anpheros/agent-skills) | एजेंट स्किल, Claude कोड प्लगइन, Cursor नियम और AGENTS.md |
| [fhir-synthetic-patients](https://github.com/anpheros/fhir-synthetic-patients) | 30 सिंथेटिक मरीज़ FHIR R4 बंडल और NDJSON के रूप में |
| [ips-examples](https://github.com/anpheros/ips-examples) | FHIR R4 में अंतर्राष्ट्रीय रोगी सारांश दस्तावेज़ |
| [fhir-validate-action](https://github.com/anpheros/fhir-validate-action) | GitHub एक्शन जो CI में FHIR R4 JSON को मान्य करता है |
| [lab-results-to-fhir](https://github.com/anpheros/lab-results-to-fhir) | CLI: CSV / HL7 v2 लैब रिपोर्ट → FHIR ऑब्जर्वेशन्स |
| [healthcare-app-starters](https://github.com/anpheros/healthcare-app-starters) | Next.js और Flutter स्वास्थ्य ऐप टेम्प्लेट |

## अनुरूपता (Conformance)

कच्चे परीक्षण परिणाम, जिन्हें जांच के लिए प्रकाशित किया गया है (परीक्षण परिणाम, प्रमाणन नहीं): [conformance/](https://github.com/anpheros/anpheros-sdk/tree/main/conformance)। 28 सितंबर 2026 को, Inferno SMART App Launch STU2 टेस्ट किट (v1.0.3) के स्टैंडअलोन लॉन्च समूह ने प्लेटफ़ॉर्म के विरुद्ध 22 में से 22 परीक्षण पास किए। EHR लॉन्च समर्थित नहीं है।

## दस्तावेज़ीकरण

- [डेवलपर गाइड](https://developers.anpheros.com/guides/)
- [शुरुआत करें](https://developers.anpheros.com/hi/guides/getting-started)
- [FHIR सैंडबॉक्स](https://developers.anpheros.com/hi/guides/fhir-sandbox)
- [हेल्थकेयर API](https://developers.anpheros.com/hi/guides/healthcare-api)
- [हेल्थकेयर API प्लेटफ़ॉर्म](https://developers.anpheros.com/hi/guides/healthcare-api-platform)
- [FHIR प्लेटफ़ॉर्म](https://developers.anpheros.com/hi/guides/fhir)
- [SDK गाइड](https://developers.anpheros.com/hi/guides/sdks)
- [API संदर्भ (OpenAPI)](https://developers.anpheros.com/docs)
- [AI सहायकों के लिए](https://developers.anpheros.com/llms.txt)
- [Anpheros](https://anpheros.com/)

## समस्याएँ और सुरक्षा

इस रिपॉजिटरी की समस्याओं (issues) में बग्स की रिपोर्ट करें। किसी भी समस्या में कभी भी API कुंजियाँ, टोकन या रोगी डेटा शामिल न करें। सुरक्षा रिपोर्ट के लिए: contact@anpheros.com।

## लाइसेंस

Apache License 2.0 — प्रत्येक पैकेज की `LICENSE` फ़ाइल देखें। कॉपीराइट 2026 Anpheros।

## @anpheros/sdk

**Anpheros Platform** के लिए TypeScript क्लाइंट: प्रति रोगी FHIR R4 स्वास्थ्य रिकॉर्ड, प्रोजेक्ट अलगाव, रोगी सहमति (OAuth 2.1 / SMART on FHIR), हर राइट पर प्रोवेनेंस और एक AI कॉन्टेक्स्ट API। कहीं भी चलता है `fetch` मौजूद है (Node 18+, ब्राउज़र, Deno, Bun)।

```ts
import { Anpheros, apiKey } from '@anpheros/sdk';

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });
const { data: patients } = await anpheros.patients.list();
const labs = await anpheros.observations.list(patients[0].id, { category: 'laboratory', limit: 10 });
const ctx = await anpheros.context.build({ patient: patients[0].id, task: 'weekly check-in', budget_tokens: 1500, format: 'text' });
```

किसी व्यक्ति के लिए कार्य करना:

```ts
import { OAuthFlow, OAuthAuth, generatePkce } from '@anpheros/sdk';

const flow = new OAuthFlow({ baseUrl: BASE, clientId: 'client_…', redirectUri: 'https://myapp.example/callback' });
const pkce = await generatePkce();
location.href = flow.authorizeUrl({ scopes: ['patient/Observation.rs?category=laboratory', 'offline_access'], state, pkce, lang: 'ro' });
// on the callback:
const tokens = await flow.exchange(code, pkce);
const anpheros = new Anpheros({ auth: new OAuthAuth({ tokens, onRefresh: flow.refresh, onTokens: persist }) });
```

त्रुटियाँ `AnpherosError` (`status`, `type`, `message`, `field`, `requestId`) हैं। क्रिएट एक `Idempotency-Key` भेजते हैं; 429/5xx को पुनः प्रयास किया जाता है; समाप्त टोकन को एक बार रीफ़्रेश किया जाता है और कॉल को पुनः प्रयास किया जाता है।

## anpheros_sdk

**Anpheros Platform** के लिए Dart / Flutter क्लाइंट: एक स्वास्थ्य-डेटा बैकएंड जिसमें प्रति रोगी एक FHIR R4 रिकॉर्ड, प्रोजेक्ट अलगाव, रोगी सहमति (OAuth 2.1 / SMART on FHIR), हर राइट पर प्रोवेनेंस और एक AI संदर्भ API शामिल है।

```dart
import 'package:anpheros_sdk/anpheros_sdk.dart';

final anpheros = Anpheros(auth: AnpherosAuth.apiKey('sk_test_…'));      // server / sandbox

final patients = await anpheros.patients.list();
final elena = patients.data.first;
final labs = await anpheros.observations.list(elena.id, category: 'laboratory', limit: 10);
final ctx = await anpheros.context.build(ContextRequest(patient: elena.id, task: 'weekly check-in', budgetTokens: 1500));
```

## व्यक्ति के लिए कार्य करना (ऐप्स)

```dart
final flow = OAuthFlow(baseUrl: 'https://…', clientId: 'client_…', redirectUri: 'myapp://callback');
final pkce = Pkce.generate();
final url = flow.authorizeUrl(scopes: ['patient/Observation.rs?category=laboratory', 'patient/MedicationStatement.r', 'offline_access'],
                              state: 'abc', pkce: pkce, lang: 'ro');
// open `url`; on return with ?code=…:
final tokens = await flow.exchange(code: code, pkce: pkce);
final anpheros = Anpheros(auth: AnpherosAuth.oauth(
  accessToken: tokens.accessToken, refreshToken: tokens.refreshToken, expiresAt: tokens.expiresAt,
  onRefresh: flow.refresh, onTokens: persist));
final meds = await anpheros.medications.listMedications(tokens.patient!);
```

हर ऑब्जेक्ट `fhir` (उसका `/fhir/R4` संदर्भ) रखता है; `anpheros.fhir` रॉ FHIR एक्सेस देता है
(रीड, सर्च, क्रिएट, ट्रांज़ैक्शन, `$everything`, `$summary`, `$validate`)।

त्रुटियाँ `AnpherosException` के साथ `status`, `type`, `message`, `field` और `requestId` होती हैं।
क्रिएट स्वचालित रूप से एक `Idempotency-Key` भेजते हैं; 429/5xx को बैकऑफ़ के साथ पुनः प्रयास किया जाता है; समाप्त हुए OAuth
टोकन को एक बार रिफ्रेश किया जाता है और कॉल को पुनः प्रयास किया जाता है।
