Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
الواجهة الخلفية وقاعدة بيانات التطبيق الطبي
ما يجب أن تتعامل معه الواجهة الخلفية للتطبيق الطبي وقاعدة بياناتها، الأجزاء التي يوفرها Anpheros كقاعدة بيانات مُدارة للرعاية الصحية، ما يبقى في الواجهة الخلفية الخاصة بك، ثلاث طرق للاتصال، وكيفية البقاء متزامنًا مع خطافات الويب.
الواجهة الخلفية للتطبيق الطبي هي جانب الخادم لتطبيق الرعاية الصحية: فهي تخزن بيانات المرضى، وتفرض من يُسمح له برؤيتها، وتحتفظ بسجل للتغييرات، وتتحدث مع المختبرات والعيادات والخدمات الأخرى. مع Anpheros، الجزء الطبي من تلك الواجهة الخلفية - قاعدة بيانات الرعاية الصحية التي تحتفظ بسجل كل مريض، مع تاريخه، وموافقته، ومصدره، وسجل التدقيق، واستيراد المختبر، والأحداث - يتم توفيره بواسطة المنصة عبر واجهة برمجة تطبيقات (API)، وتبقى الواجهة الخلفية الخاصة بك فقط بما هو خاص بمنتجك.
ما يجب على الواجهة الخلفية الطبية التعامل معه
| المسؤولية | لماذا هي صعبة في الرعاية الصحية | مع Anpheros |
|---|---|---|
| نموذج البيانات الطبية | عشرات الأنواع من البيانات، كل منها برموز قياسية | HL7 FHIR R4، 26 نوعًا من الموارد، LOINC / ICD-10 / ATC / UCUM |
| الإصدار | يتم تصحيح البيانات الطبية، ولا يتم الكتابة فوقها بصمت أبدًا | كل تحديث هو إصدار جديد؛ If-Match للتحديثات الشرطية |
| المستندات | يجب أن تظل الأصول دون تغيير وقابلة للتتبع | أصول غير قابلة للتغيير مع SHA-256، تخزين الاتحاد الأوروبي مشفر بمفتاح يديره العميل |
| التحكم في الوصول | لكل مريض، لكل تطبيق، لكل نوع بيانات | عزل المشروع، معرفات مزدوجة، نطاقات OAuth مع عوامل تصفية الفئات |
| الموافقة | يقرر المريض، ويمكنه تغيير رأيه | منح لمدة 30-365 يومًا، قابلة للإلغاء، معكوسة كـ FHIR Consent |
| التدقيق | يسأل المرضى والجهات التنظيمية من رأى ماذا | كل قراءة وكتابة مسجلة ومرئية للمريض |
| المصدر | قيمة من مختبر ليست قيمة كتبها مريض | نوع المؤلف، المنظمة، الممارس، ونظام المصدر في كل كتابة |
| التكاملات | ترسل المختبرات CSV، HL7 v2، JSON؛ تحتاج التطبيقات إلى أحداث | استيراد المختبر، معاملات FHIR، خطافات ويب موقعة |
| إعادة المحاولة الآمنة | دواء أو نتيجة مكررة هي خطأ سريري | Idempotency-Key عند كل إنشاء |
| بيانات الاختبار | يجب ألا يكون المرضى الحقيقيون أبدًا في التطوير | قاعدة بيانات رملية بمرضى اصطناعيين |
ما الذي يبقى في الواجهة الخلفية لديك
- المستخدمون والحسابات لديك، والربط بين كل مستخدم ومعرف المريض الخاص به في Anpheros (المعرف الثنائي الذي يراه مشروعك)؛
- بيانات المنتج غير الطبية: الإعدادات، الاشتراكات، المحتوى، جداول التذكيرات؛
- قواعد العمل — أي من موظفيك يمكنه رؤية أي مريض في منتجك؛
- مفتاح API، والذي يجب ألا يتم شحنه أبدًا داخل تطبيق جوال أو ويب.
ثلاث طرق للاتصال
1. يحتفظ الواجهة الخلفية لديك بمفتاح API (الأكثر شيوعًا). يتصل تطبيقك بالواجهة الخلفية لديك؛ تتصل الواجهة الخلفية لديك بـ Anpheros باستخدام مفتاح sk_live_ وترى المرضى الذين أنشأهم مشروعك.
import { Anpheros, apiKey } from '@anpheros/sdk';
const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });
// GET /api/me/vitals in your backend, after your own authentication
export async function myVitals(user: { anpherosPatientId: string }) {
const page = await anpheros.observations.list(user.anpherosPatientId, { category: 'vital-signs', limit: 50 });
return page.data;
}
2. التطبيق يعمل نيابة عن المريض باستخدام OAuth. بالنسبة للأشخاص الذين لديهم بالفعل سجل Anpheros، فإن تطبيق الهاتف المحمول أو الويب هو عميل OAuth عام مع PKCE: يوافق الشخص على الصفحة المستضافة ويتلقى التطبيق رمز وصول لمدة 30 دقيقة ورمز تحديث دوار لهذا السجل الواحد. تقوم حزم SDK بتنفيذ التدفق (OAuthFlow).
3. شركاء من خادم إلى خادم. يمكن للعميل السري (مع سر، محفوظ على خادم) استخدام تدفق رمز التفويض، أو client_credentials، والذي يتصرف كمفتاح API لهذا المشروع.
الحفاظ على تزامن الواجهة الخلفية لديك
اشترك في خطافات الويب (webhooks) بدلاً من الاستقصاء (polling). يتم توقيع عمليات التسليم (Anpheros-Signature، HMAC-SHA256 على الطابع الزمني والجسم)، مرة واحدة على الأقل، وقد تكون خارج الترتيب؛ قم بإزالة التكرارات حسب معرف الحدث وتجاهل الإصدارات القديمة.
import { verifyWebhookSignature } from '@anpheros/sdk';
app.post('/anpheros/hook', express.raw({ type: 'application/json' }), async (req, res) => {
const ok = await verifyWebhookSignature({ secret: process.env.ANPHEROS_WEBHOOK_SECRET!, header: req.header('anpheros-signature'), body: req.body });
if (!ok) return res.status(400).end();
const event = JSON.parse(req.body.toString()); // ids and versions only — read the resource if you need it
res.status(204).end();
});
التعامل مع الأخطاء والحدود
- تعامل مع
404على أنها "غير مرئية لك"، ولا تعتبرها أبدًا دليلاً على عدم وجود سجل. 403تعني أن بيانات الاعتماد موجودة ولكنها قد لا تسمح بذلك - نطاق مفقود، أو مورد كتبته منظمة أخرى.429يأتي معRetry-After؛ تنتظر حزم SDK وتعيد المحاولة تلقائيًا، كما تفعل مع5xx.- احتفظ بـ
Anpheros-Request-Idللمكالمات الفاشلة للدعم.
أسئلة متكررة
ما هي قاعدة البيانات التي يجب أن يستخدمها تطبيق طبي؟
قاعدة بيانات تحتفظ بالبيانات الطبية في شكل موحد ومُدار بالإصدارات وتتحكم في الوصول لكل مريض. Anpheros هي قاعدة بيانات رعاية صحية مُدارة مبنية على HL7 FHIR R4: يتم إدارة سجل كل مريض بالإصدارات ويمكن البحث فيه، وكل عملية كتابة تحمل مصدرًا، ولا يرى التطبيق مريضًا إلا إذا أنشأ السجل أو وافق المريض. تحتفظ قاعدة بياناتك الخاصة بباقي بيانات منتجك - الحسابات، الفواتير، المحتوى. للحصول على المقايضات المتعلقة بتصميم جداولك الخاصة بدلاً من ذلك، راجع FHIR مقابل قاعدة بيانات طبية مخصصة.
هل توجد قاعدة بيانات مجانية للتطبيقات الطبية؟
نعم. Anpheros sandbox مجاني: قم بتسجيل الدخول باستخدام Google، واحصل على مفتاح بنقرة واحدة، ويحصل مشروعك على 30 مريضًا اصطناعيًا خاصًا به وما يصل إلى 10000 عملية كتابة في اليوم. تبدأ الإنتاجية من 49 يورو شهريًا لـ 2500 مريض، مع الشهر الأول مجانًا؛ الوصول إلى الإنتاج مخصص للمنظمات المعتمدة مع اتفاقية معالجة بيانات موقعة. راجع التسعير.
هل يمكنني الاحتفاظ ببيانات مرضى حقيقيين في sandbox المجاني؟
لا. sandbox مخصص للبيانات الاصطناعية فقط: يحصل كل مشروع sandbox على مرضاه الاصطناعيين الخاصين به، ولا يمكن لمفاتيح sandbox الوصول إلى الإنتاج. سجلات المرضى الحقيقيين تنتمي إلى مشروع إنتاج.
مواضيع ذات صلة
- FHIR مقابل قاعدة بيانات طبية مخصصة: متى تصمم جداولك الخاصة ومتى تستخدم FHIR
- كيفية بناء واجهة برمجة تطبيقات للرعاية الصحية باستخدام TypeScript: دليل تفصيلي خطوة بخطوة مع Express
- كيفية بناء تطبيق للرعاية الصحية باستخدام Flutter: دليل تفصيلي خطوة بخطوة مع Dart SDK
- تطوير برمجيات الرعاية الصحية
- بناء تطبيق للرعاية الصحية
- الهندسة المعمارية
- واجهة برمجة تطبيقات البيانات الطبية
- أدوات تطوير البرمجيات (SDKs)
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card