تفويض البيانات الصحية هو عملية الحصول على موافقة صريحة من المستخدم لقراءة وكتابة البيانات الطبية واللياقة البدنية من خلال واجهات برمجة التطبيقات النظامية للمنصات المحمولة. على iOS، يتم تنفيذ التفويض عبر HealthKit باستخدام فئتي HKHealthStore وHKObjectType، بينما على Android يتم ذلك عبر Google Fit API باستخدام OAuth 2.0 وFitnessOptions. وفقاً لوثائق Apple HealthKit، 2025، تصنف البيانات الصحية كفئة شديدة الحساسية. الدقة الطبية والامتثال للوائح هما متطلبان أساسيان عند العمل مع هذه البيانات.
النقاط الرئيسية
تفويض البيانات الصحية هو آلية تتطلب موافقة صريحة وموثقة من المستخدم قبل الوصول إلى مقاييسه الطبية ومقاييس اللياقة البدنية. على عكس الأذونات القياسية (جهات الاتصال، التقويم)، تخضع البيانات الصحية للوائح قانونية إضافية: HIPAA في الولايات المتحدة، GDPR في أوروبا والقانون الاتحادي 152-FZ في روسيا.
على iOS، يتم تنفيذ تفويض الصحة عبر HealthKit: يرى المستخدم شاشة تعرض جميع أنواع البيانات التي تطلبها التطبيق ويمكنه اختيار فئات محددة لمنح الوصول. على Android، يُستخدم Google Fit API مع تفويض OAuth 2.0، حيث يُطلب نطاق منفصل لكل نوع بيانات.
وفقاً لـ App Annie (2025)، تطبيقات الصحة واللياقة البدنية هي واحدة من أسرع القطاعات نمواً في السوق المحمول بمعدل نمو سنوي 28%. في الوقت نفسه، يرفض 71% من المستخدمين الوصول إلى بياناتهم الصحية إذا لم يقدم التطبيق شرحاً واضحاً لغرض التجميع.
الفرق الرئيسي لتفويض الصحة عن الأذونات الأخرى هو القدرة على منح الوصول الجزئي. يمكن للمستخدم السماح بقراءة الخطوات ولكن منع الوصول إلى بيانات معدل ضربات القلب أو السجلات الطبية.
HealthKit هو إطار Apple، الذي تم تقديمه في iOS 8، والذي يوفر مستودعاً موحداً مركزياً للبيانات الصحية. لا تتمكن التطبيقات من الوصول المباشر إلى HealthKit — فهي تطلب التفويض عبر HKHealthStore، ويقرر المستخدم أنواع البيانات التي سيقدمها. يتم تشفير جميع البيانات على الجهاز ومزامنتها عبر iCloud بتشفير من طرف إلى طرف.
تبدأ عملية التفويض بإنشاء مثيل HKHealthStore واستدعاء طريقة requestAuthorization(toShare:read:). يمرر التطبيق مجموعتين من الأنواع: أنواع للقراءة (HKObjectType التي يريد التطبيق قراءتها) وأنواع للكتابة (HKSampleType التي يريد التطبيق حفظها). يعرض النظام شاشة موافقة حيث يقوم المستخدم بتمكين أو تعطيل كل نوع على حدة.
ميزة مهمة: لا يُظهر HealthKit للمطور الأنواع المحددة التي سمح بها المستخدم على شاشة الموافقة. بعد استدعاء requestAuthorization، من الضروري التحقق بشكل فردي من الوصول إلى كل نوع عبر HKHealthStore.authorizationStatus(for:). وفقاً لجلسة WWDC 11108 (2024)، توصي Apple بالتحقق من حالة التفويض قبل كل عملية قراءة أو كتابة.
يدعم HealthKit مئات الأنواع من البيانات المقسمة إلى فئات: الكمية (الخطوات، معدل ضربات القلب، السعرات الحرارية)، الخصائص (الطول، الوزن، تاريخ الميلاد)، السجلات السريرية (الحساسية، التطعيمات، نتائج التحاليل)، الأعراض والدورة الشهرية. يتم تمثيل كل نوع بفئة فرعية من HKObjectType: HKQuantityType للقياسات الرقمية وHKCategoryType للبيانات الفئوية.
مع iOS 18، وسعت Apple HealthKit لدعم البيانات من المؤسسات الطبية عبر FHIR (Fast Healthcare Interoperability Resources). يمكن للتطبيقات طلب الوصول إلى السجلات الطبية المنظمة إذا قام المستخدم بتوصيل مستشفاه أو عيادته بتطبيق الصحة.
Google Fit هو منصة للعمل مع بيانات اللياقة البدنية على Android تستخدم تفويض OAuth 2.0. على عكس HealthKit، Google Fit ليس مدمجاً في نظام التشغيل على مستوى النظام — إنه خدمة منفصلة من Google Play Services تتطلب إعداداً عبر Google Play Console وإنشاء بيانات اعتماد OAuth 2.0.
للوصول إلى Google Fit، يجب على التطبيق تسجيل معرّف عميل OAuth 2.0 في Google Cloud Console. يتم طلب التفويض عبر GoogleSignInAccount وGoogleSignIn.requestPermissions(). يرى المستخدم شاشة الموافقة القياسية من Google مع قائمة النطاقات المطلوبة: fitness.activity.read وfitness.body.read وfitness.nutrition.write وغيرها.
يفصل Google Fit الأذونات إلى قراءة وكتابة لكل نوع بيانات. يمكن للتطبيق طلب الوصول لقراءة عدد الخطوات دون طلب أذونات الكتابة. بدءاً من Google Fit API v2، يجب أن تتضمن جميع طلبات التفويض وصفاً للغرض من استخدام البيانات — بدون ذلك، يُرفض الطلب بواسطة مراجعة Google.
تسمح فئة FitnessOptions بتحديد أنواع البيانات التي تتطلب الوصول بشكل تصريحي. لكل نوع، يمكن تعيين مستوى الوصول: ACCESS_READ أو ACCESS_WRITE أو كليهما. يتم تمرير مجموعة الأذونات إلى GoogleSignin.requestPermissions() مع حساب المستخدم.
قائمة الأنواع المتاحة تشمل: الخطوات (DataType.TYPE_STEP_COUNT_DELTA)، السعرات الحرارية (TYPE_CALORIES_EXPENDED)، معدل ضربات القلب (TYPE_HEART_RATE_BPM)، المسافة (TYPE_DISTANCE_DELTA)، النشاط (TYPE_ACTIVITY_SEGMENT) والنوم (TYPE_SLEEP_SEGMENT). لكل نوع تردد تحديث خاص به ومتطلبات أذونات.
يختلف تنفيذ طلب تفويض البيانات الصحية بشكل كبير بين iOS وAndroid. فيما يلي أمثلة عملية لـ HealthKit وGoogle Fit API.
في Swift، يتم طلب تفويض HealthKit عبر HKHealthStore بتحديد أنواع القراءة والكتابة. يوضح المثال طلب الوصول إلى بيانات الخطوات ومعدل ضربات القلب.
import HealthKit
let healthStore = HKHealthStore()
let readTypes: Set<HKObjectType> = [
HKObjectType.quantityType(forIdentifier: .stepCount)!,
HKObjectType.quantityType(forIdentifier: .heartRate)!
]
let writeTypes: Set<HKSampleType> = [
HKObjectType.quantityType(forIdentifier: .stepCount)!
]
guard HKHealthStore.isHealthDataAvailable() else {
fatalError("HealthKit غير متوفر على هذا الجهاز")
}
healthStore.requestAuthorization(toShare: writeTypes, read: readTypes) { success, error in
if success {
// التحقق من حالة كل نوع على حدة
let status = healthStore.authorizationStatus(for: readTypes.first!)
print("تفويض HealthKit: \(status.rawValue)")
} else {
print("خطأ في تفويض HealthKit: \(error?.localizedDescription ?? "غير معروف")")
}
}
على Android، يتم تفويض Google Fit عبر GoogleSignIn وFitnessOptions. يوضح المثال طلب الوصول إلى بيانات الخطوات والسعرات الحرارية.
val fitnessOptions = FitnessOptions.builder()
.addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_CALORIES_EXPENDED, FitnessOptions.ACCESS_READ)
.build()
val account = GoogleSignIn.getAccountForExtension(this, fitnessOptions)
if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) {
GoogleSignIn.requestPermissions(
this,
REQUEST_GOOGLE_FIT,
account,
fitnessOptions
)
} else {
// الأذونات مُمنحة بالفعل — قراءة البيانات
readGoogleFitData(account)
}
// معالجة نتيجة طلب الأذونات
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == REQUEST_GOOGLE_FIT && resultCode == RESULT_OK) {
val account = GoogleSignIn.getSignedInAccountFromIntent(data)
account?.let { readGoogleFitData(it) }
}
}
تنتمي البيانات الصحية إلى فئة حساسة بشكل خاص من البيانات الشخصية. يجب على مطوري التطبيقات التي تعمل مع HealthKit أو Google Fit الامتثال للمتطلبات التنظيمية في منطقة المستخدمين.
في الولايات المتحدة، تُنظم البيانات الصحية بموجب HIPAA (قانون قابلية نقل التأمين الصحي والمساءلة)، الذي يضع متطلبات صارمة لتخزين ونقل ومعالجة المعلومات الطبية. يمكن للتطبيقات التي تعمل مع HealthKit الامتثال لـ HIPAA إذا تم نقل البيانات إلى الخادم بشكل مشفر وكان الوصول مقيداً.
في الاتحاد الأوروبي، تُعتبر البيانات الصحية فئة خاصة من البيانات الشخصية بموجب GDPR (المادة 9). تتطلب معالجة هذه البيانات موافقة صريحة من المستخدم، وفي معظم الحالات، تقييم تأثير حماية البيانات. يترتب على انتهاك متطلبات GDPR غرامات تصل إلى 20 مليون يورو أو 4% من حجم الأعمال السنوي للشركة.
في روسيا، يُنظم جمع البيانات الصحية بموجب القانون الاتحادي 152-FZ «بشأن البيانات الشخصية». منذ عام 2025، جميع التطبيقات التي تعالج البيانات الطبية للمواطنين الروس ملزمة باستخدام أدوات تشفير معتمدة وتخزين البيانات على خوادم موجودة داخل أراضي الاتحاد الروسي، وفقاً لمتطلبات Roskomnadzor.
توصية: قبل نشر تطبيق يعمل مع البيانات الصحية، استشر الإدارة القانونية للتحقق من الامتثال للوائح المحلية. تحتفظ Apple وGoogle بالحق في رفض التطبيق إذا كانت سياسة الخصوصية الخاصة به لا تفي بالمتطلبات.
الأسئلة الشائعة
HealthKit هو إطار iOS مدمج مع مستودع بيانات صحية مشفر محلياً. Google Fit هو خدمة سحابية قائمة على Google Play Services، تستخدم OAuth 2.0 للتفويض. يعمل HealthKit بدون اتصال بالإنترنت، بينما يتطلب Google Fit اتصالاً بالإنترنت للمزامنة.
نعم، على كلا المنصتين. على iOS، يختار المستخدم أنواع بيانات محددة (الخطوات، معدل ضربات القلب، النوم) على شاشة الموافقة في HealthKit. على Android، يرى المستخدم قائمة نطاقات Google Fit ويمكنه إلغاء الأذونات الفردية عبر إعدادات حساب Google.
HKHealthStore هو الفئة المركزية لإطار HealthKit على iOS. يدير التفويض والقراءة والكتابة لجميع البيانات الصحية. لا يمكن للتطبيق الوصول مباشرة إلى مستودع HealthKit — جميع العمليات تتم عبر HKHealthStore، مما يضمن واجهة وصول موحدة والامتثال لحقوق وصول المستخدم.
يمكن للمستخدم إلغاء الوصول عبر إعدادات Google — إدارة الحساب — الأمان — التطبيقات الخارجية ذات الوصول. اختر التطبيق وانقر على «إزالة الوصول». يمكن أيضاً إلغاء الوصول عبر Google Play Console: الخدمات المتصلة — Google Fit — إدارة التطبيقات.
إذا كان التطبيق يعالج البيانات الصحية للمستخدمين في الولايات المتحدة وينقلها إلى خادم، فإن الامتثال لـ HIPAA إلزامي. إذا بقيت جميع البيانات محلياً على الجهاز ولم يتم نقلها إلى أطراف ثالثة، فقد لا يحتاج التطبيق إلى الامتثال لـ HIPAA، لكن Apple توصي باتباع أفضل ممارسات الأمان بغض النظر عن الاختصاص القضائي.
الخلاصة
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.
اقرأ أيضًا