سياسة الخصوصية

توضح هذه السياسة البيانات التي تعالجها ClinicFlow، وأغراض استخدامها، والجهات التي تصل إليها، والخيارات المتاحة للعيادات والمستخدمين وأصحاب بيانات المرضى.

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

عندما تُدخل العيادة بيانات المرضى أو موظفيها وتحدد أغراض استخدامها وصلاحيات الوصول إليها، تعمل ClinicFlow بوصفها مقدم خدمة يعالج تلك البيانات لحساب العيادة ووفق تعليماتها. وتبقى العيادة مسؤولة عن مشروعية جمع سجلات المرضى، ودقتها، وإبلاغ أصحابها، وتحديد من يطلع عليها. أما بيانات زوار الموقع، وطلبات الانضمام، وإدارة حسابات المستخدمين، وأمن المنصة، فتحدد ClinicFlow أغراض معالجتها بالقدر اللازم لتشغيل الخدمة. لا تحسم هذه السياسة ملكية السجلات الطبية؛ فتلك مسألة يحددها القانون والعلاقة بين العيادة والمريض.

يجمع نموذج طلب الانضمام اسم العيادة، واسم المالك أو المسؤول، ورقم الهاتف، والبريد الإلكتروني. يستخدم النظام عنوان بروتوكول الإنترنت الوارد مع الطلب لتحديد معدل محاولات تسجيل الدخول، واستعادة كلمة المرور، وطلب الانضمام، وإنشاء العيادة؛ ويُرسل هذا المعرّف إلى خدمة تحديد المعدل عند تهيئتها. تتضمن دعوات العيادات رمزًا مجزأً، وحالة الدعوة، وتاريخ إصدارها وانتهائها وقبولها أو إلغائها، وسجل إرسال البريد.

تعالج الخدمة البريد الإلكتروني وبيانات المصادقة من خلال Supabase Auth، إضافة إلى الاسم، ورقم الهاتف، والدور الوظيفي، والقسم، وحالة الحساب، ووقت آخر تسجيل دخول، وتفضيلات اللغة والمظهر وعملة العرض. يمكن لمسؤولي العيادة ومديريها إنشاء حسابات الموظفين، وتعيين أدوارهم، وإيقافها أو حذفها، ورفع صورة شخصية أو عقد أو شهادات أو مستندات وظيفية. لا تخزن مكونات التطبيق كلمة المرور كنص داخل جداول العيادة؛ إذ تتولى Supabase Auth إدارة بيانات الاعتماد والجلسات.

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

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

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

تتيح الخدمة رفع صور المرضى، ومستندات الهوية والتأمين والمستندات الأخرى، ومرفقات الملاحظات الطبية بصيغ الصور أو PDF ضمن الحدود المطبقة على النوع والحجم. تحفظ هذه الملفات في حاوية غير عامة في Supabase Storage، ويُمنح الوصول إليها وفق صلاحيات المستخدم أو عبر روابط موقعة محدودة المدة. كما تتيح رفع شعارات العيادات، وصور المستخدمين، وعقود الموظفين وشهاداتهم ومستنداتهم إلى مساحات تخزين مخصصة. صور حسابات المستخدمين وشعارات العيادات معدة للعرض عبر روابط ملفات، ولهذا لا ينبغي استخدام حقول الصور العامة لحفظ وثائق صحية أو هويات.

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

نستخدم البيانات لإنشاء الحسابات والتحقق منها، وإدارة الجلسات والصلاحيات، وتشغيل سجل المريض والمواعيد والمتابعات والملاحظات والفوترة والتقارير، وحفظ الملفات واسترجاعها، وإرسال دعوات العيادات ورسائل تأكيد البريد واستعادة كلمة المرور، وتطبيق تفضيلات المستخدم، وحساب مؤشرات التشغيل، وتقديم التصدير، ومنع إساءة الاستخدام، وتشخيص الأعطال، وتوثيق الأنشطة الإدارية. تستخدم أسعار الصرف الخارجية لعرض تحويلات تقريبية فقط، ولا تُرسل معها بيانات عيادة أو مريض.

حيث يشترط القانون تحديد أساس للمعالجة، تعتمد ClinicFlow في بيانات الحساب وطلب الانضمام على اتخاذ خطوات مطلوبة قبل التعاقد وتنفيذ العلاقة مع العيادة، وفي أمن الخدمة ومنع الإساءة وتحسين موثوقيتها على المصالح المشروعة، وفي الحالات الإلزامية على الامتثال لواجب قانوني. تعالج بيانات المرضى لحساب العيادة؛ وعلى العيادة تحديد أساسها القانوني المناسب للرعاية وإدارة السجل والفوترة والتواصل، والحصول على الموافقات عندما يوجبها القانون.

تتحكم العيادة في حسابات موظفيها وصلاحيات صفحاتهم. يطبق النظام أدوار المسؤول، والمدير، وموظف الاستقبال، والطبيب، مع قيود إضافية مرتبطة بالعيادة والقسم والطبيب المعالج وكاتب الملاحظة. يستطيع مسؤولو العيادة وبعض المديرين الاطلاع على بيانات تشغيلية أو سجلات تدقيق وفق سياسات قاعدة البيانات. واجهة مشغل ClinicFlow مخصصة لإدارة بيانات المنصة وبيانات تعريف العيادات والاشتراكات والدعوات، ولا تستعلم عن جداول المرضى أو الملاحظات الطبية لعرضها في لوحة المشغل.

تشارك ClinicFlow البيانات بالقدر اللازم مع Supabase للمصادقة وقاعدة البيانات وتخزين الملفات ورسائل المصادقة، ومع Vercel لاستضافة التطبيق وتشغيل طلباته. تُستخدم Resend لإرسال بريد دعوات العيادات، وUpstash Redis لتحديد المعدل عند تهيئته، وSentry لرصد الأخطاء والأداء عند تفعيله، وOpen Exchange Rates لجلب أسعار صرف لا تتضمن بيانات شخصية. يعتمد إرسال رسائل تأكيد الحساب واستعادة كلمة المرور على إعداد البريد المرتبط بمشروع Supabase Auth. لا تبيع ClinicFlow بيانات المرضى، ولا تستخدمها للإعلانات، ولا ترسلها في التطبيق الحالي إلى نماذج ذكاء اصطناعي، ولا توجد أدوات تحليلات تسويقية أو إعلانية مدمجة.

تستخدم الخدمة جلسات Supabase Auth، وعزل بيانات العيادات بسياسات أمان الصفوف في PostgreSQL، والتحقق من الدور على مستوى المسارات والإجراءات الخادمية، وصلاحيات خاصة بملفات التخزين، وروابط موقعة لمستندات المرضى، وحدودًا لنوع الملف وحجمه، وتحديدًا لمعدل بعض الطلبات. كما تضبط رؤوس HTTP تشمل منع التضمين داخل الإطارات، ومنع تخمين نوع المحتوى، وسياسة المُحيل والأذونات، وHSTS وسياسة أمن المحتوى. لا توجد وسيلة تقنية تمنع جميع المخاطر، وعلى العيادة حماية حساباتها، واختيار كلمات مرور قوية، وإيقاف وصول الموظف عند انتهاء حاجته. لا تمثل هذه الضوابط شهادة امتثال أو اعتمادًا أمنيًا.

لا تفرض الخدمة مدة موحدة لحفظ سجلات العيادة أو المرضى أو سجلات التدقيق. حذف المريض في الواجهة هو حذف منطقي، ثم يمكن لمسؤول العيادة استعادته أو نقله إلى الأرشيف؛ ولا يوجد مسار ذاتي لحذفه نهائيًا. وكذلك تُحذف الملاحظات الطبية ومستندات المرضى ومرفقات الملاحظات منطقيًا، وتبقى ملفاتها قابلة للاستعادة. أما المواعيد المنقولة إلى سلة المهملات فيمكن حذفها نهائيًا يدويًا، وينظف النظام المواعيد التي مضى على حذفها أكثر من 30 يومًا عند تشغيل صفحة المواعيد لمستخدم مخول، باستثناء المواعيد المزاحة. يمكن حذف حساب الموظف نهائيًا بواسطة مسؤول مخول، ولا يوجد مسار ذاتي لحذف حساب مالك العيادة أو مساحة العيادة كاملة. تبقى طلبات الانضمام وسجلات الدعوات بعد انتهاء رابط الدعوة ما لم تُحذف بإجراء إداري.

يستطيع مسؤول العيادة تنزيل ملف ZIP يضم جداول CSV لبيانات المرضى والمواعيد وبيانات تعريف الملاحظات الطبية والفواتير ومستندات المرضى، مع روابط مستندات موقعة لمدة 24 ساعة. لا يتضمن هذا التصدير نصوص الملاحظات الطبية أو مرفقاتها، وقد يستبعد الملاحظات المرتبطة بمريض محذوف منطقيًا. كما يتوفر تصدير مستقل للمواعيد للمسؤول والمدير. يمكن للمستخدم تحديث ملفه وكلمة مروره ولغته ومظهره وعملة العرض. يقدم المريض طلب الوصول أو التصحيح أو الحذف أو التقييد إلى العيادة أولًا لأنها تدير سجله؛ وتنسق ClinicFlow مع العيادة في الطلبات الملزمة قانونًا ضمن حدود الصلاحيات والسجلات المتاحة.

تستخدم الخدمة ملفات جلسة تديرها Supabase للمصادقة وتجديد الجلسة. وتستخدم ملف cf_page_visibility لمدة ساعة لتخزين الصفحات المتاحة للمستخدم؛ وهو مضبوط بخصائص HttpOnly وSecure وSameSite=Lax. يحفظ ملف cf_marketing_locale لغة الصفحات العامة لمدة سنة، ويحفظ ملف theme تلميح المظهر لمدة سنة للحساب الذي اختاره. مفتاح تفضيل اللغة والمظهر الدائم للمستخدم المسجل موجود في قاعدة البيانات، لا في التخزين المحلي. لا تستخدم الخدمة localStorage أو sessionStorage، ولا تستخدم ملفات ارتباط إعلانية. يمكن تعطيل ملفات الارتباط من المتصفح، لكن تعطيل ملفات الجلسة يمنع تسجيل الدخول.

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

تعمل الخدمة من خلال Vercel وSupabase ومقدمي الخدمات المذكورين أعلاه. لا تتضمن هذه السياسة التزامًا بإقامة البيانات في دولة محددة، لأن موقع المعالجة الفعلي يتبع إعداد مشروع الإنتاج والمنطقة المختارة لدى كل مزود، وهذه الإعدادات ليست معروضة للمستخدم داخل التطبيق. على العيادة التي تخضع لقيود توطين أو نقل بيانات صحية أن تطلب تأكيد مواقع المعالجة والترتيبات التعاقدية قبل إدخال البيانات المنظمة.

ننشر النسخة المحدثة من السياسة على هذه الصفحة ونعدل تاريخ آخر تحديث الظاهر أعلاها. لا يحتوي التطبيق الحالي على آلية مستقلة لإشعار جميع المرضى بتغييرات السياسة؛ لذلك تتولى العيادة إبلاغ مرضاها عندما تمس التغييرات إشعار الخصوصية الذي تقدمه لهم أو عندما يفرض القانون ذلك.

للاستفسار عن هذه السياسة أو عن معالجة بيانات الحساب والمنصة، راسل ClinicFlow على hello@clinicflow.app. إذا كان الطلب يتعلق بسجل مريض، فينبغي التواصل أولًا مع العيادة التي أنشأت السجل، مع ذكر معلومات كافية لتمكينها من تحديده دون إرسال بيانات صحية غير لازمة عبر البريد الإلكتروني. قناة التواصل المعتمدة في هذه السياسة هي البريد الإلكتروني المذكور أعلاه.