1. هيكلية الأدوار والوصول للبيانات
نموذج صارم قائم على الأدوار، عزل الفروع (branch_id) وحماية البيانات الطبية.
جدول ملخص حقوق ومسؤوليات الموظفين
الإعدادات → موظفو العيادة
• المشرف العام للعيادة (admin): العيادة بأكملها وجميع الفروع (branch_id = null). وصول كامل: الفروع، الموظفون، مصفوفة الأسعار، الحجز أونلاين، الخصومات العامة، جميع التحليلات، الفوترة، تنظيف قاعدة البيانات، SMTP. لا يمكنه حذف نفسه أو تغيير دوره إذا كان المشرف الوحيد.
• مشرف الفرع (branch_admin): فرعه فقط (branch_id). يدير موظفي فرعه، قائمة أسعار الفرع المحلية، الصندوق والحجوزات الخاصة بفرعه، تقرير أمين الصندوق. محظور: إنشاء admin أو branch_admin آخرين، حذف فروع، تغيير اسم فرع، الوصول لأقسام عامة (فوترة الخطة، حصص القرص، SMTP عام).
• طبيب العيادة (dentist): فرعه والمرضى المعينون له فقط. جدوله الخاص، سجل الحجوزات، مخطط الأسنان، الأشعة السينية وتاريخ علاج المرضى المعينين، دردشة 'رأي ثانٍ'. ممنوع الوصول للسجل الطبي (مخطط، أشعة، تاريخ) إذا لم يكن المريض معيناً لهذا الطبيب. لا يقبل المدفوعات.
• طبيب منفرد (dentist بدون clinic_id): حساب شخصي (ممارسة خاصة). وظائف كاملة: مدير نفسه، أمين صندوق وطبيب. وصول للخصومات، الحجز أونلاين، شعار شخصي، تحليلات، فوترة. لا يوجد وحدة فروع أو موظفين خارجيين.
• موظف استقبال / مشغل (operator): فرعه فقط. إنشاء مرضى، سجل حجوزات، قبول مدفوعات، طباعة إيصالات، تقرير وردية الصندوق. حظر تام على البيانات الطبية: لا يرى ملفات الأشعة، مخططات الأسنان أو تاريخ العلاج.
3. جداول العمل وإدارة الورديات
بناء الجداول حسب أيام الأسبوع، الأيام الزوجية/الفردية، الفترات والاستثناءات التفاعلية.
خيارات بناء جدول الأطباء
الإعدادات → جدول العمل
• حسب أيام الأسبوع: فعّل أيام العمل المطلوبة (الاثنين، الثلاثاء...). حدد وقت البدء والانتهاء لكل يوم. لإضافة استراحة انقر '+ إضافة فترة' (مثال: 09:00–14:00 و 15:00–19:00). الحد الأدنى للفترة 15 دقيقة؛ يتم حظر التداخل تلقائياً.
• أيام زوجية / فردية: النظام يحدد الجدول حسب رقم اليوم التقويمي (2، 4، 6... أو 1، 3، 5...). اضبط ساعات العمل للورديات الزوجية والفردية. في كتلة 'استبعاد أيام الأسبوع' عطل أيام الراحة المعتادة (مثال: ألغِ تحديد السبت والأحد ليبقيا دائماً غير عمل بغض النظر عن التاريخ).
تقويم الاستثناءات وسجل الورديات
الإعدادات → جدول العمل → التقويم التفاعلي
• تعيين يوم راحة غير مخطط: انقر يوم عمل في التقويم — سيُحدد التاريخ بإطار أحمر. ستُغلق الحجوزات أونلاين والعادية.
• تعيين وردية عمل في يوم راحة: انقر أي يوم غير عمل. في النافذة المنبثقة اضبط ساعات العمل لهذا التاريخ تحديداً.
• سجل الجداول: النظام يحفظ جميع النسخ السابقة. المواعيد الماضية لا تتحرك عند تعديل الجدول الحالي.
4. التقويم وسجل المواعيد
شبكة الزيارات، حالات الخدمة، إعادة الجدولة بالسحب والإفلات وتدقيق المواعيد.
أوضاع شبكة الجدول
الجدول الزمني
• العرض اليومي (حسب الموظفين): الرأس يعرض جميع أطباء الفرع المختار في أعمدة متوازية.
• العرض الأسبوعي: يعرض 7 أيام للطبيب المختار.
• تبديل سريع لتنسيق الوقت: انقر المقياس الزمني يسار للتبديل الفوري بين وضع 24س / 12س (ص/م).
إنشاء موعد
الجدول الزمني
- انقر فتحة زرقاء فارغة في عمود الطبيب (أو 'حجز موعد'). اللون الأزرق يعني أن الوقت ضمن جدول عمل الطبيب.
- في نافذة الحجز ابحث عن مريض موجود بالاسم/الهاتف/البريد (البحث من 3 أحرف) أو أدخل اسماً جديداً وانقر 'إنشاء مريض جديد'.
- اختر إجراءً واحداً أو أكثر من قائمة الأسعار (المدة والسعر يُجمعان تلقائياً).
- حدد نوع الزيارة: زيارة مفردة أو زيارة خطة علاج (إذا كان لدى المريض خطة مفتوحة).
- اضبط المدة يدوياً إذا لزم الأمر أو أضف ملاحظة.
- انقر 'حفظ'.
حالات الزيارة والانتقالات
الجدول الزمني → النقر على كتلة الزيارة
النقر على كتلة الموعد يفتح بطاقة الإدارة:
• pending (قيد الانتظار، أصفر) — تم إنشاء الموعد، المريض لم يؤكد.
• confirmed (مؤكد، أخضر) — المريض أكد الحضور (هاتف/رسالة).
• arrived (وصل / تسجيل دخول، تركواز) — المريض وصل للاستقبال.
• completed (مكتمل، بنفسجي) — تمت الزيارة. إذا كانت مرتبطة بخطة علاج سيسأل النظام: 'إكمال هذه الزيارة فقط أم خطة العلاج بالكامل؟'.
• no-show (غائب، أحمر) — المريض لم يحضر دون إشعار.
• cancelled (ملغى، أحمر) — تم إلغاء الموعد.
إعادة جدولة الموعد (السحب والإفلات)
الجدول الزمني
• على الكمبيوتر: اضغط مطولاً على الكتلة بالزر الأيسر واسحب لوقت آخر أو عمود طبيب آخر.
• على الهاتف/التابلت: ضغط مطول 300 ميلي ثانية، بعد اهتزاز خفيف اسحب الفتحة.
• يطلب النظام تأكيداً. إذا كان الطبيب الهدف لديه موعد آخر بنفس الوقت أو لا يعمل — سيرفض النظام النقل مع شرح واضح.
9. التسويق: الخصومات، الأكواد الترويجية، الشهادات والمكافآت
سياسات دمج الخصومات، دفعات بطاقات الهدايا، توليد كوبونات فريدة والاسترداد النقدي.
9.1. قواعد تفاعل الخصومات (السياسات)
الإعدادات → إدارة الخصومات → الإعدادات العامة
• الأولوية: يقارن جميع الخصومات المفعلة ويطبق الأكثر فائدة للمريض.
• التسلسل: تشكل الخصومات سلسلة تطبق تباعاً على السعر المتبقي.
• الجمع: تجمع نسب الخصم الشخصي للمريض والعرض العام.
9.2. إنشاء برامج الولاء
الإعدادات → إدارة الخصومات
عند النقر 'إنشاء خصم' تتوفر 4 خيارات:
1. عرض عام: خصم تلقائي للجميع (مثال: '-20% تنظيف وقائي في مايو').
2. تعيين يدوي: قالب خصم يرفقه المشرف يدوياً لعملاء VIP محددين في بطاقتهم.
3. كود ترويجي مشترك: كلمة مفتاحية (مثال: INSTA2026) تمنح خصماً عند الإدخال.
4. قالب توليد أكواد فريدة: أساس لطباعة كوبونات تستخدم لمرة واحدة.
9.3. مولد الأكواد الترويجية الفريدة
الإعدادات → إدارة الخصومات → مولد الأكواد
- اذهب لكتلة 'مولد الأكواد الترويجية الفريدة'.
- اختر قالب العرض.
- حدد الكمية (حتى 1000 مرة) والبادئة (حتى 12 حرف لاتيني مثلاً: SUMMER).
- انقر 'توليد'. يمكن نسخ الأكواد كقائمة أو تصديرها CSV/TXT للطباعة أو البريد.
9.4. شهادات الهدايا (بطاقات الهدايا)
الإعدادات → إدارة الخصومات → بطاقات الهدايا
- شهادة مفردة: اختر 'إصدار مفرد'، حدد القيمة الاسمية والصلاحية. يولد النظام كوداً فريداً من 10 أرقام.
- دفعة للطباعة: اختر 'إصدار دفعة'، أدخل اسم السلسلة (مثال: 'رأس السنة 5000')، الكمية (حتى 500)، القيمة الاسمية. صدر الدفعة بصيغة CSV لإنتاج البطاقات البلاستيكية.
- التفعيل: في بطاقة المريض تبويب 'الولاء' أدخل كود الشهادة في حقل 'بطاقات الهدايا' وانقر 'تفعيل'.
12. مركز التواصل (دردشات داخلية، 'رأي ثانٍ'، شبكة الشركاء)
قنوات مؤسسية للفروع، منتدى طبي مهني، شراكات B2B وتنظيف تلقائي كل 24 ساعة.
قنوات التواصل وقواعد الأمان
أيقونة الرسالة بالزاوية العليا اليمنى
تفتح اللوحة المنزلقة بالنقر على أيقونة الحوار بأعلى اليمين:
• دردشة الفرع/العيادة: رسائل تشغيلية لوردية المناوبة.
• الرسائل المباشرة (DMs): مراسلات شخصية للموظفين (نقطة خضراء = 'متصل').
• موجز 'رأي ثانٍ' (للأطباء): اختر التخصص (علاج، تقويم، جراحة...) واللغة. انشر حالات سريرية معقدة وأشعة للنقاش مع زملاء المنصة. الحدود: الخطة المجانية — رسالة واحدة/ساعة، المدفوعة — حتى 30/ساعة.
• دليل 'جاهزون للمساعدة': فعّل 'جاهز للمساعدة' ليتمكن أطباء آخرون من طلب استشارة عاجلة.
• شبكة الشركاء (Partners): وحدة B2B لتعاون العيادات المستقلة (تحويل أشعة مقطعية، تخدير، مختبر). ابحث عن عيادة شريكة وأرسل طلب شراكة. بعد الموافقة تفتح دردشة مشتركة بين العيادات.
سياسة الخصوصية: تعمل الدردشات على تخزين فائق السرعة بعمر تلقائي للرسائل 24 ساعة. بعد 24 ساعة يحذف سجل الرسائل تلقائياً.
16. دليل أخطاء النظام واستكشاف الأخطاء
مرجع كامل لرسائل النظام، الأسباب والحلول خطوة بخطوة.
وقت الموعد مشغول بزيارة أخرى
error_time_slot_busy
السبب: الوقت المختار يتداخل مع موعد آخر لنفس الطبيب.
الحل: غيّر وقت البدء، قلل المدة أو اختر طبيباً آخر متاحاً.
الطبيب لا يعمل بالوقت المختار
error_doctor_not_working
السبب: وقت الزيارة خارج جدول عمل الطبيب.
الحل: تحقق من ساعات العمل في 'جدول العمل' أو أضف وردية فردية لهذا اليوم.
لا يمكن حذف موعد بمدفوعات مسجلة
error_delete_appointment_with_payments
السبب: محاولة حذف زيارة سُجلت لها مدفوعات بالصندوق.
الحل: اذهب للزيارة، انقر المدفوعات، قم بإلغاء (حذف) جميع المدفوعات. بمجرد تصفيرها يمكن حذف الموعد.
يوجد مريض بهذا الهاتف/البريد بالفعل
error_duplicate_phone
السبب: مريض مسجل بهذا الهاتف/البريد (error_duplicate_phone / error_duplicate_email).
الحل: ابحث عن المريض الموجود عبر بحث 'المرضى'. يحمي النظام القاعدة من التكرار.
تطابق الاسم وتاريخ الميلاد (تكرار محتمل)
error_possible_duplicate_name_dob
السبب: تطابق الاسم وتاريخ الميلاد مع مريض موجود.
الحل: تحقق بدقة من التطابق. إذا كان شخصاً مختلفاً حقاً يحمل نفس الاسم — انقر 'إنشاء على أي حال'.
لا يمكن حذف مريض بزيارات نشطة
cannot_delete_patient_active_appointments
السبب: محاولة حذف مريض لديه زيارات مستقبلية غير مكتملة.
الحل: ألغِ أو أكمل جميع مواعيد المريض ثم احذفه.
لا يمكن حذف المشرف الوحيد للعيادة
last_admin_cannot_delete
السبب: محاولة حذف/تغيير دور المشرف الوحيد (last_admin_cannot_delete / last_admin_cannot_change_role).
الحل: محظور. لا يمكن للعيادة البقاء بلا مدير. عين دور المشرف لموظف آخر أولاً.
لا يمكن حذف طبيب بمواعيد مجدولة
cannot_delete_staff_with_active_appointments
السبب: محاولة حذف طبيب لديه مواعيد مجدولة.
الحل: افتح الجدول وأعد تعيين المواعيد المستقبلية لأطباء آخرين.
لا يمكن حذف فرع به موظفون
cannot_delete_branch_with_staff
السبب: محاولة حذف فرع مرتبط به مستخدمون.
الحل: في 'موظفو العيادة' انقل جميع موظفي الفرع لعنوان آخر ثم احذف الفرع الفارغ.
لا يمكن حذف فرع بعمليات نشطة
cannot_delete_branch_with_active_appointments
السبب: الفرع لديه زيارات أو خطط علاج مفتوحة.
الحل: أكمل، ألغِ أو أعد ربط العمليات النشطة بفرع آخر.
وضع 'القراءة فقط': انتهى الاشتراك
error_subscription_expired
السبب: انتهت فترة الاشتراك المدفوع للعيادة.
الحل: حظر النظام التعديلات تلقائياً (وضع القراءة فقط). اذهب 'الفوترة والاشتراك' وجدد الخطة.
تجاوز حد الموظفين للخطة الجديدة
error_downgrade_staff_limit_exceeded
السبب: تخفيض لخطة بحد موظفين أقل من العدد المنشأ حالياً.
الحل: عدد الأشخاص المنشأ أكبر مما تسمح به الخطة الجديدة. احذف الموظفين غير النشطين أولاً للالتزام بالحد.
محظور انتقال العيادة لخطة 'منفرد'
error_clinic_to_solo_forbidden
السبب: تحاول العيادة الانتقال لخطة 'منفرد'.
الحل: انتقال عيادة متعددة الموظفين/الفروع لخطة مستخدم واحد 'منفرد' مستحيل هندسياً.
رصيد المكافآت غير كافٍ للخصم
error_insufficient_bonus_balance
السبب: المبلغ المراد خصمه يتجاوز رصيد مكافآت المريض.
الحل: حدد مبلغ مكافآت ≤ الرصيد الحالي للمريض.
رصيد غير كافٍ في بطاقة الهدايا
error_insufficient_gift_card_balance
السبب: الخصم يتجاوز رصيد بطاقة الهدايا.
الحل: تحقق من رصيد البطاقة في تبويب 'الولاء' وخصم المبلغ المتاح فقط.
تجاوز حد رسائل موجز 'رأي ثانٍ'
error_feed_rate_limit
السبب: تجاوز حد النشر في موجز 'رأي ثانٍ'.
الحل: التجربة — منشور واحد/ساعة كحد أقصى، المدفوعة — حتى 30/ساعة. انتظر إعادة تعيين النافذة الزمنية.