Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
منصة موافقة المريض لتطبيقات الصحة
الموافقة مدمجة في طبقة البيانات: نطاقات OAuth 2.1 و SMART، والغرض وانتهاء الصلاحية يختارهما الشخص، وسجل وصول يمكنه رؤيته، وإلغاء عند الطلب التالي، وما لا يزال تطبيقك يمتلكه.
تسمح منصة موافقة المريض للشخص بتحديد التطبيقات التي قد تقرأ أو تغير سجله الصحي، ولأي غرض ومدة، وتسمح له برؤية هذا الوصول وإلغائه في أي وقت. تبني Anpheros الموافقة في طبقة البيانات: يصل التطبيق إلى سجل FHIR R4 الخاص بالمريض فقط من خلال موافقة وافق عليها الشخص في صفحة موافقة Anpheros، ويتم تسجيل كل قراءة وكتابة بموجب هذه الموافقة حيث يمكن للشخص رؤيتها، ويسري الإلغاء عند الطلب التالي. توضح هذه الصفحة كيفية عمل ذلك، وما يتعين على تطبيقك القيام به، وما لا يتعين عليك بناؤه.
- 1 · Your app asksOAuth 2.1 with PKCE: SMART scopes, a purpose and the patient's language
- 2 · The person decidesOn the Anpheros consent page: what, for whom and for how long — 30, 90, 180 or 365 days
- 3 · Your app readsOne patient's record, only the granted resource types and categories
- 4 · Every access is loggedThe person sees each read and write by your application
- 5 · The person revokesThe next request fails; a refresh token cannot bring access back
لماذا ينتمي الموافقة إلى طبقة البيانات
تسجل معظم تطبيقات الصحة الموافقة كخانة اختيار في قاعدة بياناتها الخاصة ثم تطبقها في كود التطبيق. هذا يعمل حتى يحتاج تطبيق ثانٍ أو تكامل عيادة أو ميزة ذكاء اصطناعي إلى نفس البيانات: يجب على كل منها إعادة تطبيق القواعد، ولا يمتلك الشخص مكانًا واحدًا لرؤية من لديه حق الوصول. عندما تفرض المنصة التي تخزن السجل الموافقة أيضًا، يحصل كل عميل على نفس القواعد ويحصل الشخص على قائمة واحدة بالتطبيقات للمراجعة.
| الموافقة كعلامة في تطبيقك | الموافقة في طبقة البيانات (Anpheros) | |
|---|---|---|
| أين يتم تطبيقها | في كود كل تطبيق | عند كل طلب API، بواسطة المنصة |
| نطاق الوصول | ما يقرر التطبيق قراءته | فقط أنواع الموارد والفئات الممنوحة |
| انتهاء الصلاحية | نادرًا ما يتم تنفيذه | يختاره الشخص: 30، 90، 180 أو 365 يومًا |
| ما يراه الشخص | يعتمد على التطبيق | كل تطبيق، ونطاقاته وانتهاء صلاحيته، وسجل وصول |
| الإلغاء | يجب نشره يدويًا | يفشل الطلب التالي؛ يتوقف رمز التحديث عن العمل |
ما يتحكم فيه المريض
كيف يطلب تطبيقك الموافقة
يستخدم Anpheros بروتوكول OAuth 2.1 مع PKCE ونطاقات SMART on FHIR v2. يرسل تطبيقك الشخص إلى صفحة الموافقة بالنطاقات التي يحتاجها والغرض الاختياري؛ بعد الموافقة، يتلقى رمز وصول (30 دقيقة) ورمز تحديث دوار (30 يومًا) لمريض واحد بالضبط.
import { OAuthFlow, generatePkce } from '@anpheros/sdk';
const flow = new OAuthFlow({
baseUrl: 'https://platform.anpheros.com',
clientId: process.env.ANPHEROS_CLIENT_ID!,
redirectUri: 'https://your.app/callback',
});
const pkce = await generatePkce();
const url = flow.authorizeUrl({
scopes: ['patient/Observation.rs?category=laboratory', 'patient/Condition.rs', 'offline_access'],
purpose: 'treatment',
state: crypto.randomUUID(),
pkce,
lang: 'en',
});
// redirect the person to `url`; on the callback exchange the code (see the authentication guide)
نطاق مثل patient/Observation.rs?category=laboratory يحد القراءة بنتائج المختبر؛ يتم فرض فلتر الفئة بواسطة الخادم. نوع مورد خارج المنحة يعيد 403؛ مريض خارج المنحة يعيد 404، لذلك لا يمكن استكشاف المعرفات.
الاستجابة للإلغاء
عندما ينهي الشخص منحًا، يفشل الطلب التالي باستخدام هذا الرمز المميز، ولا يمكن لرمز التحديث استعادة الوصول. للتنظيف فورًا، اشترك في خطاف الويب consent.revoked، الذي يحمل grant_id، ومعرف المريض الذي تراه، والنطاقات، و revoked_at.
await anpheros.webhooks.create('https://your.app/anpheros/hook', { events: ['consent.granted', 'consent.revoked'] });
ما لا يقوم به Anpheros
- لا يقوم بجمع الموافقات لأغراض خارج نطاق الوصول إلى البيانات، مثل التسويق أو المشاركة في الأبحاث.
- لا يحدد الأساس القانوني الخاص بك. الموافقة على الوصول هي آلية تحكم واحدة؛ إشعار الخصوصية الخاص بك، والعقود، وسجلات المعالجة تظل مسؤوليتك.
- مفتاح API الخاص بالمشروع يرى المرضى الذين أنشأهم المشروع، دون الحاجة إلى منح. الموافقة تنظم الوصول من قبل تطبيقات أخرى.
أسئلة متكررة
ما هي منصة موافقة المريض؟
برنامج يسجل التطبيقات التي يسمح بها الشخص بالوصول إلى بياناته الصحية، ويفرض تلك الخيارات على كل طلب، ويُظهر للشخص من قام بالوصول إلى ماذا، ويسمح له بسحب الوصول. في Anpheros، الموافقة هي جزء من سجل FHIR R4 نفسه بدلاً من خدمة منفصلة.
ما هي المعايير التي تستخدمها Anpheros لموافقة المريض؟
OAuth 2.1 مع PKCE لتدفق التفويض، ونطاقات مرضى SMART on FHIR v2 (patient/<Type>.<cruds> مع مرشح اختياري ?category=) لما يمكن للتطبيق قراءته أو كتابته. يضيف OpenID Connect رمز تعريف (ID token) عند طلب openid fhirUser.
هل يمكن للمريض تقييد الوصول إلى بعض بياناته فقط؟
نعم. يقتصر الوصول على أنواع الموارد والفئات في النطاقات الممنوحة، على سبيل المثال، ملاحظات المختبر فقط. كل شيء آخر يُرجع خطأ.
ما هي مدة صلاحية الموافقة؟
يختار الشخص 30 أو 90 أو 180 أو 365 يومًا في صفحة الموافقة. بعد ذلك تنتهي صلاحية المنحة ويجب على التطبيق طلبها مرة أخرى.
هل يمكن للمريض رؤية ما فعله التطبيق بالوصول؟
نعم. يرى الشخص كل تطبيق لديه وصول، ونطاقاته وتاريخ انتهاء صلاحيته، وسجل وصول يسرد ما قرأه أو كتبه كل تطبيق.
ماذا يحدث عند إلغاء الموافقة؟
يفشل الطلب التالي باستخدام رمز الوصول هذا، ولا يمكن استخدام رمز التحديث للحصول على رمز جديد، ويتلقى خادمك خطاف ويب (webhook) consent.revoked إذا كان مشتركًا.
ذات الصلة
- نموذج الموافقة والوصول: القواعد كاملة
- المصادقة و OAuth: الرموز المميزة والنطاقات وتبادل الرموز
- كيفية تطبيق موافقة المريض مع SMART on FHIR
- Webhooks:
consent.grantedوconsent.revoked - شرح مصدر البيانات الطبية
- واجهة برمجة تطبيقات بيانات المريض الطولية
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card