# حزم تطوير البرمجيات (SDKs)

> عملاء Dart / Flutter (anpheros_sdk) و TypeScript (@anpheros/sdk): نفس الشكل، عمليات إنشاء متطابقة، إعادة المحاولة، تحديث الرمز المميز، وتدفق الموافقة.

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

> مكتبات العملاء الرسمية لواجهة برمجة تطبيقات الرعاية الصحية FHIR R4 مع بيئة اختبار FHIR مجانية: المرضى، الملاحظات، نتائج المختبر، الحالات، الأدوية، ملخص المريض الدولي، موافقة المريض، وسياق الذكاء الاصطناعي، بلغات TypeScript و Dart / Flutter.

**Anpheros هي بنية تحتية للبيانات الطبية قابلة للتشغيل البيني لبناء تطبيقات الرعاية الصحية، والبرامج الطبية، وخدمات الذكاء الاصطناعي.** لكل مريض سجل HL7 FHIR R4 واحد يتحكم فيه؛ تقرأ التطبيقات والعيادات والمختبرات ووكلاء الذكاء الاصطناعي وتكتب فيه عبر واجهة برمجة تطبيقات منصة Anpheros — بموافقة المريض (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) |

## البدء السريع في دقيقتين

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).

## لمن هذا الدليل

للمطورين الذين يبنون تطبيقات صحة المرضى والعائلات، أو الواجهات الخلفية للتطبيقات الطبية، أو تكاملات العيادات والمختبرات، أو المساعدين أو الوكلاء الذين يعملون بالذكاء الاصطناعي ويحتاجون إلى سياق طبي منظم للمريض — دون الحاجة إلى تصميم قاعدة بيانات طبية، ونظام موافقة، وسجل تدقيق من الصفر.

## الحصول على مفتاح بيئة الاختبار

بيئة الاختبار مجانية وتتم خدمتها ذاتيًا. قم بتسجيل الدخول باستخدام Google على [لوحة التحكم](https://platform.anpheros.com/dashboard/) واضغط على **الحصول على مفتاح بيئة الاختبار**: ستحصل على مشروع بيئة اختبار ومفتاح على الفور. يأتي كل مشروع بيئة اختبار مع 30 مريضًا اصطناعيًا خاصًا به - ستة أشهر من الحالات والأدوية والحساسية ونتائج المختبر والعلامات الحيوية - والتي يمكنك تغييرها بحرية وإعادة تعيينها في أي وقت. مفاتيح بيئة الاختبار (`sk_test_…`) لا تصل أبدًا إلى بيانات المرضى الحقيقية.

عند الانتقال إلى الإنتاج، يكون الإنتاج للمنظمات المعتمدة التي لديها اتفاقية معالجة بيانات، ويبدأ الإنتاج بسعر 49 يورو شهريًا مع الشهر الأول مجانًا ([التسعير](https://developers.anpheros.com/ar/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 keys) يجب أن تكون على الخوادم. التطبيق الذي يعمل نيابة عن شخص يستخدم OAuth بدلاً من ذلك: كلا حزمتا تطوير البرامج (SDKs) تنفذان تدفق الموافقة (رمز التفويض + PKCE) وتجددان الرموز تلقائيًا.

## ما تغطيه حزم تطوير البرمجيات (SDKs)

تغطي كلتا الحزمتين كامل السطح العام (`/v1`، `/fhir/R4`، `/oauth/token`، `/oauth/revoke`) بنفس الشكل: `patients`، `observations`، `conditions`، `medications`، `documents`، `timeline`، `provenance`، `context`، `grants`، `terminology` و `fhir` خام. يفشل الاختبار في عملية البناء عندما يكون مسار عام مفقودًا من أي من حزم تطوير البرمجيات أو عندما تستدعي حزمة تطوير برمجيات مسارًا لا يملكه الخادم.

كلتا حزم تطوير البرمجيات: `Idempotency-Key` تلقائي عند الإنشاء، إعادة المحاولة مع التراجع عند 429/5xx، تحديث رمز واحد عند 401، أخطاء مكتوبة مع معرف الطلب، مساعدات PKCE، وتدفق الموافقة.

## البيانات الطبية و FHIR

يتكون السجل من موارد FHIR R4 قياسية — 26 نوعًا، بما في ذلك `Observation` و `Condition` و `MedicationStatement` و `DocumentReference` و `Immunization` و `AllergyIntolerance` — مرمزة باستخدام LOINC و ICD-10 و ATC و UCUM. واجهة برمجة التطبيقات REST (`/v1`) وواجهة برمجة التطبيقات FHIR (`/fhir/R4`) تقرأ وتكتب نفس الموارد بنفس المعرفات؛ `fhir` في كلتا مجموعتي أدوات التطوير (SDKs) توفر وصولاً خامًا إلى FHIR (بحث، معاملات، `$everything`، `$summary`، `$validate`).

## أمثلة

| مثال | يوضح |
|---|---|
| [quickstart-ts](https://github.com/anpheros/anpheros-sdk/tree/main/examples/quickstart-ts) | كتابة وقراءة سجل: قياسات، نتائج مختبر، تشخيص، دواء، جدول زمني، بحث FHIR، IPS، سياق الذكاء الاصطناعي |
| [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) | مواصفات OpenAPI 3.1 ومجموعة Postman لواجهة برمجة التطبيقات (API) |
| [mcp-server](https://github.com/anpheros/mcp-server) | خادم FHIR MCP المستضاف لوكلاء الذكاء الاصطناعي: إعدادات لـ Claude و Cursor و VS Code |
| [agent-skills](https://github.com/anpheros/agent-skills) | مهارة الوكيل (Agent Skill)، إضافة Claude Code، قواعد 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) | مستندات ملخص المريض الدولي (International Patient Summary) بتنسيق FHIR R4 |
| [fhir-validate-action](https://github.com/anpheros/fhir-validate-action) | إجراء GitHub يتحقق من صحة FHIR R4 JSON في CI |
| [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/](https://github.com/anpheros/anpheros-sdk/tree/main/conformance). في 28 سبتمبر 2026، اجتازت مجموعة "Standalone Launch" من مجموعة اختبارات Inferno SMART App Launch STU2 (الإصدار 1.0.3) 22 من أصل 22 اختبارًا مقابل المنصة. لا يتم دعم تشغيل EHR.

## التوثيق

- [أدلة المطورين](https://developers.anpheros.com/guides/)
- [البدء السريع](https://developers.anpheros.com/ar/guides/getting-started)
- [بيئة اختبار FHIR](https://developers.anpheros.com/ar/guides/fhir-sandbox)
- [واجهة برمجة تطبيقات الرعاية الصحية](https://developers.anpheros.com/ar/guides/healthcare-api)
- [منصة واجهة برمجة تطبيقات الرعاية الصحية](https://developers.anpheros.com/ar/guides/healthcare-api-platform)
- [منصة FHIR](https://developers.anpheros.com/ar/guides/fhir)
- [دليل SDK](https://developers.anpheros.com/ar/guides/sdks)
- [مرجع واجهة برمجة التطبيقات (OpenAPI)](https://developers.anpheros.com/docs)
- [للمساعدين الذكاء الاصطناعي](https://developers.anpheros.com/llms.txt)
- [Anpheros](https://anpheros.com/)

## المشكلات والأمان

أبلغ عن الأخطاء في قسم المشكلات (issues) الخاص بهذا المستودع. لا تقم أبدًا بتضمين مفاتيح API أو الرموز المميزة أو بيانات المرضى في أي مشكلة. تقارير الأمان: contact@anpheros.com.

## الترخيص

رخصة أباتشي 2.0 — انظر الملف `LICENSE` لكل حزمة. حقوق النشر 2026 Anpheros.

## @anpheros/sdk

عميل TypeScript لمنصة **Anpheros**: سجل صحي لكل مريض وفق معيار FHIR R4، عزل المشاريع، موافقة المريض (OAuth 2.1 / SMART on FHIR)، إثبات المصدر عند كل عملية كتابة، وواجهة برمجة تطبيقات سياق الذكاء الاصطناعي. يعمل في أي مكان `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

عميل Dart / Flutter لمنصة **Anpheros**: واجهة خلفية لبيانات الصحة مع سجل FHIR R4
لكل مريض، وعزل للمشاريع، وموافقة المريض (OAuth 2.1 / SMART on FHIR)، وتتبع المصدر لكل
عملية كتابة، وواجهة برمجة تطبيقات سياق الذكاء الاصطناعي.

```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 منتهية الصلاحية مرة واحدة وإعادة محاولة الاستدعاء.
