SMART على FHIR
التطبيقات الطبية القابلة للاستبدال والتقنيات القابلة لإعادة الاستخدام (SMART on FHIR) هي معيار للرعاية الصحية يمكن للتطبيقات من خلاله الوصول إلى المعلومات السريرية من خلال مخزن البيانات. يضيف طبقة أمان استنادا إلى المعايير المفتوحة بما في ذلك OAuth2 وOpenID Connect، إلى واجهات FHIR® لتمكين التكامل مع أنظمة EHR. يوفر استخدام SMART على FHIR ثلاث فوائد مهمة على الأقل:
- تحتوي التطبيقات على طريقة معروفة للحصول على المصادقة/التخويل إلى مستودع FHIR.
- يقتصر المستخدمون الذين يصلون إلى مستودع FHIR باستخدام SMART على FHIR على الموارد المرتبطة بالمستخدم، بدلا من الوصول إلى جميع البيانات في المستودع.
- يتمتع المستخدمون بالقدرة على منح التطبيقات حق الوصول إلى مجموعة محدودة من بياناتهم باستخدام النطاقات السريرية SMART.
توفر البرامج التعليمية التالية خطوات لتمكين SMART على تطبيقات FHIR باستخدام خدمة FHIR.
المتطلبات الأساسية
- مثيل لخدمة FHIR
- .NET SDK 6.0
- تمكين مشاركة الموارد عبر المنشأ (CORS)
-
تسجيل تطبيق العميل العام في معرف Microsoft Entra
- بعد تسجيل التطبيق، دون ملاحظة
applicationId
لتطبيق العميل.
- بعد تسجيل التطبيق، دون ملاحظة
- تأكد من أن لديك حق الوصول إلى اشتراك Azure لخدمة FHIR، لإنشاء موارد وإضافة تعيينات الأدوار.
SMART على FHIR باستخدام عينات Azure Health Data Services (SMART on FHIR (Enhanced))
الخطوة 1: إعداد دور مستخدم FHIR SMART
اتبع الخطوات المذكورة في القسم إدارة المستخدمين: تعيين المستخدمين إلى الدور. سيتمكن أي مستخدم تمت إضافته إلى هذا الدور من الوصول إلى خدمة FHIR، شريطة أن تتوافق طلباته مع دليل تنفيذ SMART on FHIR. ثم سيتم تقييد الوصول الممنوح للمستخدمين في هذا الدور من خلال الموارد المرتبطة حجرة fhirUser الخاصة بهم والقيود في النطاقات السريرية.
إشعار
يحدد SMART على دليل تنفيذ FHIR الوصول إلى أنواع موارد FHIR ذات النطاقات. تؤثر هذه النطاقات على الوصول إلى تطبيق ما قد يكون لموارد FHIR. المستخدم الذي له دور المستخدم SMART لديه حق الوصول لإجراء تفاعلات واجهة برمجة التطبيقات للقراءة على خدمة FHIR. لا يمنح دور المستخدم SMART حق الوصول للكتابة إلى خدمة FHIR.
الخطوة 2: تكامل خادم FHIR مع العينات
انقر فوق هذا الارتباط للانتقال إلى Azure Health Data and الذكاء الاصطناعي Samples مصدر مفتوح الحل. تمكن الخطوات المدرجة في المستند من تكامل خادم FHIR مع خدمات Azure الأخرى (مثل APIM ووظائف Azure والمزيد).
إشعار
العينات هي تعليمات برمجية مفتوحة المصدر، ويجب عليك مراجعة المعلومات وشروط الترخيص على GitHub قبل استخدامها. وهي ليست جزءا من Azure Health Data Service ولا يدعمها دعم Microsoft. يتم استخدام هذه العينات لتوضيح كيفية استخدام Azure Health Data Services (AHDS) وغيرها من الأدوات مفتوحة المصدر معا لإظهار 170.315 (g)(10) API الموحدة لتوافق معيار خدمات المرضى والسكان، باستخدام معرف Microsoft Entra كسير عمل موفر الهوية.
SMART على وكيل FHIR
انقر للتوسيع!
إشعار
هذا خيار آخر ل SMART على FHIR (محسن) باستخدام عينات AHDS المذكورة سابقا. نقترح عليك اعتماد SMART على FHIR (محسن). يعد خيار SMART على وكيل FHIR خيارا قديما. يوفر SMART على FHIR (محسن) إمكانات إضافية إلى SMART على وكيل FHIR. يفي SMART on FHIR(Enhanced) بالمتطلبات الواردة في دليل تنفيذ SMART on FHIR (الإصدار 1.0.0) و ٪170.315(g)(10) معيار API الموحد لخدمات المرضى والسكان.
الخطوة 1: تعيين موافقة المسؤول لتطبيق العميل الخاص بك
لاستخدام SMART على FHIR، يجب عليك أولا مصادقة التطبيق وتخويله. في المرة الأولى التي تستخدم فيها SMART على FHIR، يجب عليك أيضا الحصول على موافقة إدارية للسماح للتطبيق بالوصول إلى موارد FHIR الخاصة بك.
إذا لم يكن لديك دور ملكية في التطبيق، فاتصل بمالك التطبيق واطلب منه منح موافقة المسؤول لك في التطبيق.
إذا كان لديك امتيازات إدارية، فأكمل الخطوات التالية لمنح موافقة المسؤول لنفسك مباشرة. (يمكنك أيضا منح موافقة المسؤول لنفسك لاحقا عند مطالبتك في التطبيق.) يمكنك استخدام هذه الخطوات نفسها لإضافة مستخدمين آخرين كملاك، حتى يتمكنوا من عرض تسجيل التطبيق وتحريره.
لإضافة نفسك أو مستخدم آخر كمالك لتطبيق:
- في مدخل Microsoft Azure، انتقل إلى معرف Microsoft Entra.
- في القائمة اليسرى، حدد تسجيل التطبيق.
- ابحث عن تسجيل التطبيق الذي أنشأته، ثم حدده.
- في القائمة اليسرى، ضمن Manage، حدد Owners.
- حدد إضافة مالكين، ثم أضف نفسك أو المستخدم الذي تريد الحصول على موافقة المسؤول.
- حدد حفظ
الخطوة 2: تمكين SMART على وكيل FHIR
يتطلب SMART على FHIR أن Audience
يحتوي على معرف URI يساوي URI لخدمة FHIR. يستخدم Audience
التكوين القياسي لخدمة FHIR قيمة https://fhir.azurehealthcareapis.com
. ومع ذلك، يمكنك أيضا تعيين قيمة مطابقة عنوان URL المحدد لخدمة FHIR (على سبيل المثال https://MYFHIRAPI.fhir.azurehealthcareapis.com
). هذا مطلوب عند العمل مع SMART على وكيل FHIR.
لتمكين وكيل SMART على FHIR في إعدادات المصادقة لمثيل FHIR الخاص بك، حدد خانة الاختيار SMART على وكيل FHIR.
يعمل وكيل SMART على FHIR كوسيط بين تطبيق SMART على FHIR ومعرف Microsoft Entra. يجب أن ينتقل رد المصادقة (رمز المصادقة) إلى SMART على وكيل FHIR بدلا من التطبيق نفسه. ثم يقوم الوكيل بإعادة توجيه الرد إلى التطبيق.
وبسبب هذا الترحيل المكون من خطوتين من رمز المصادقة، تحتاج إلى تعيين عنوان URL للرد (رد الاتصال) لتطبيق عميل Microsoft Entra الخاص بك إلى عنوان URL الذي يعد مزيجا من عنوان URL للرد لوكيل SMART على FHIR وعنوان URL للرد لتطبيق SMART على FHIR. يتخذ عنوان URL للرد المدمج النموذج التالي.
https://MYFHIRAPI.azurehealthcareapis.com/AadSmartOnFhirProxy/callback/aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA
في الرد، aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA
هو إصدار آمن من عنوان URL مشفر ب base64 من عنوان URL للرد لتطبيق SMART على FHIR. بالنسبة لمشغل تطبيق SMART على FHIR، عند تشغيل التطبيق محليا، يكون عنوان URL للرد هو https://localhost:5001/sampleapp/index.html
.
يمكنك إنشاء عنوان URL للرد المجمع باستخدام برنامج نصي مثل ما يلي.
$replyUrl = "https://localhost:5001/sampleapp/index.html"
$fhirServerUrl = "https://MYFHIRAPI.fhir.azurewebsites.net"
$bytes = [System.Text.Encoding]::UTF8.GetBytes($ReplyUrl)
$encodedText = [Convert]::ToBase64String($bytes)
$encodedText = $encodedText.TrimEnd('=');
$encodedText = $encodedText.Replace('/','_');
$encodedText = $encodedText.Replace('+','-');
$newReplyUrl = $FhirServerUrl.TrimEnd('/') + "/AadSmartOnFhirProxy/callback/" + $encodedText
أضف عنوان URL للرد إلى تطبيق العميل العام الذي قمت بإنشائه مسبقا لمعرف Microsoft Entra.
الخطوة 3: الحصول على مريض اختبار
لاختبار خدمة FHIR وSMART على وكيل FHIR، تحتاج إلى وجود مريض واحد على الأقل في قاعدة البيانات. إذا لم تكن قد استخدمت واجهة برمجة التطبيقات بعد، ولم يكن لديك بيانات في قاعدة البيانات، فشاهد الوصول إلى خدمة FHIR باستخدام عميل REST لتحميل مريض. دون معرف مريض معين.
الخطوة 4: تنزيل مشغل تطبيق SMART على FHIR
يتضمن خادم FHIR مفتوح المصدر لمستودع Azure مشغل تطبيق SMART بسيط على FHIR ونموذج SMART على تطبيق FHIR. في هذا البرنامج التعليمي، استخدم هذا SMART على مشغل تطبيق FHIR محليا لاختبار الإعداد.
يمكنك استنساخ مستودع GitHub والانتقال إلى التطبيق باستخدام الأوامر التالية.
git clone https://github.com/Microsoft/fhir-server
cd fhir-server/samples/apps/SmartLauncher
يحتاج التطبيق إلى بعض إعدادات التكوين، والتي يمكنك تعيينها في appsettings.json
:
{
"FhirServerUrl": "https://MYFHIRAPI.fhir.azurehealthcareapis.com",
"ClientId": "APP-ID",
"DefaultSmartAppUrl": "/sampleapp/launch.html"
}
نوصي باستخدام الميزة dotnet user-secrets
:
dotnet user-secrets set FhirServerUrl https://MYFHIRAPI.fhir.azurehealthcareapis.com
dotnet user-secrets set ClientId <APP-ID>
استخدم الأمر التالي لتشغيل التطبيق:
dotnet run
الخطوة 5: اختبار SMART على وكيل FHIR
بعد بدء تشغيل SMART على مشغل تطبيق FHIR، يمكنك توجيه المستعرض إلى https://localhost:5001
، حيث يجب أن ترى ما يلي:
عند إدخال معلومات المريض أو اللقاء أو الممارس، ستلاحظ أنه يتم تحديث سياق التشغيل. عند استخدام خدمة FHIR، يكون سياق الإطلاق مجرد مستند JSON يحتوي على معلومات حول المريض والممارس والمزيد. سياق التشغيل هذا مرمز ب base64 وتم تمريره إلى تطبيق SMART على FHIR كمعلمة launch
الاستعلام. وفقا لمواصفات SMART على FHIR، هذا المتغير معتم لتطبيق SMART على FHIR وتم تمريره إلى موفر الهوية.
يستخدم وكيل SMART على FHIR هذه المعلومات لملء الحقول في استجابة الرمز المميز. يمكن لتطبيق SMART على FHIR استخدام هذه الحقول للتحكم في المريض الذي يطلب البيانات له، وكيفية عرضه للتطبيق على الشاشة. يدعم وكيل SMART على FHIR الحقول التالية.
patient
encounter
practitioner
need_patient_banner
smart_style_url
تهدف هذه الحقول إلى توفير إرشادات للتطبيق، ولكنها لا تنقل أي معلومات أمان. يمكن لتطبيق SMART على FHIR تجاهلها.
لاحظ أن مشغل تطبيق SMART على FHIR يقوم بتحديث معلومات Launch URL في أسفل الصفحة. حدد Launch لبدء تشغيل نموذج التطبيق، ويجب أن ترى شيئا مثل ما يلي.
افحص استجابة الرمز المميز لمعرفة كيفية تمرير حقول سياق التشغيل إلى التطبيق.
الترحيل من SMART على وكيل FHIR إلى SMART على FHIR (محسن)
هام
سيتم إيقاف SMART على وكيل FHIR في سبتمبر 2026، والانتقال إلى SMART on FHIR (محسن) بحلول ذلك التاريخ. بدءا من سبتمبر 2026، ستقوم التطبيقات التي تعتمد على SMART على وكيل FHIR بالإبلاغ عن أخطاء في الوصول إلى خدمة FHIR.
يوفر SMART على FHIR (محسن) المزيد من الإمكانات مقارنة ب SMART على وكيل FHIR. يمكن اعتبار SMART on FHIR(Enhanced) لتلبية المتطلبات مع SMART on FHIR Implementation Guide (v 1.0.0) و §170.315(g)(10) Standarded API لمعيار خدمات المرضى والسكان. يسرد الجدول التالي الفرق بين SMART على وكيل FHIR وSMART على FHIR (محسن).
الإمكانية | SMART على FHIR (محسن) | SMART على وكيل FHIR |
---|---|---|
يدعم التشغيل المستقل | نعم | لا |
يدعم EHR Launch | نعم | نعم |
يدعم قيود النطاق | نعم | لا |
يعتمد على منتجات Azure من الطرف الأول | نعم، يجب دمج منتجات Azure مثل Azure API Management (APIM) | لا |
دعم Microsoft | مدعوم لخدمة FHIR. يجب الإبلاغ عن دعم العينة مفتوحة المصدر ومراقبته عبر GitHub | مدعوم لخدمة FHIR |
خطوات الترحيل
- الخطوة 1: إعداد دور مستخدم FHIR SMART اتبع الخطوات المدرجة ضمن القسم إدارة المستخدمين: تعيين المستخدمين إلى الدور. يمكن لأي مستخدم تمت إضافته إلى دور المستخدم SMART الوصول إلى خدمة FHIR، إذا كانت طلباته تتوافق مع دليل تنفيذ SMART على FHIR.
- الخطوة 2: نشر SMART على عينة FHIR ضمن Azure Health Data وعينات الذكاء الاصطناعي OSS
- الخطوة 3: تحديث نقطة نهاية عنوان URL لخدمة FHIR إلى '{{BASEURL_FROM_APIM}}/smart.'
- الخطوة 4: قم بإلغاء تحديد إعداد SMART على وكيل FHIR ضمن شفرة المصادقة لخدمة FHIR.
إذا كانت لديك أسئلة، يمكنك الحصول على إجابات من خبراء المجتمع في Microsoft Q&A. للحصول على الدعم التقني، يمكنك أيضا إنشاء طلب دعم.
الخطوات التالية
الآن بعد أن تعرفت على تمكين SMART على وظيفة FHIR، راجع صفحة نماذج البحث للحصول على تفاصيل حول كيفية البحث باستخدام معلمات البحث والمؤشرات وأساليب بحث FHIR الأخرى.
إشعار
FHIR® هي علامة تجارية مسجلة ل HL7 وتستخدم بإذن من HL7.