Visit Shell — قشرة الزيارة الموحّدة (v3: العميل يتحكم في الشكل · النسا بتحليل المالك)

التوحيد = بيانات مشتركة + كومبوننتات مشتركة + قواعد مشتركة (الهيدر والتنبيهات، الاستقبال الأول، التوقيع والقفل، الملخص، الروشتة/الطلبات/التشخيص/المستندات) — مش شكل صفحة واحد. التخصص يعلن في الـ registry: layout {columns, flow, cards[]} هو الافتراضي (المستوى 1) — التغذية بلوحة الدكتور ذات الشاشة الواحدة كما هي، الأسنان بالـ workspace الكامل، العام والنسا flow:true (محطات) — وبيتحل فوقه override العميل (المركز/العيادة — clinic.layout.{type} + إخفاء/إلزام حقول + *.feature.*) ثم تفضيل الدكتور لو العميل سامح (clinic.layout.allow_doctor_override) ثم كروت السياق (الإقامة). كل كارت من CATALOG واحد (مشترك / تخصصي / سياق)، والكومبوننتات المشتركة اللي بتتفتح dialog معلنة في actions.

التخصص
السياق
الزيارة
الشاشة
العميل
الطبيب
١ مريض — مشترك٢ مريض — تخصصي٣ زيارة — مشترك٤ زيارة — تخصصي 🔗 مشترك كومبوننت مشترك مضمّن🏷 خاص يملكه التخصص Ctrl+Enter إنهاء المحطة · Alt+↓/↑ تنقّل · Alt+F إنهاء الزيارة

Registry — اللي التخصص بيعلنه (كائن حي)

layout.columns أعمدة الشبكة · layout.flow محطات مرتّبة أم لوحة · layout.cards[] {id,col,size,collapsed,props} الكروت الافتراضية من catalog_for_this_specialty · actions الكومبوننتات المشتركة اللي بتتفتح dialog من رأس اللوحة · client.layouts / client.fields {visible,required} / client.features المستوى 2 = العميل (المركز) · doctor المستوى 3 اختياري بـ allowDoctorOverride (بيستبدلوا الافتراضي كاملاً) · settings (dental.mode / dental.feature.*) بتغيّر التركيب لحظياً.

التركيب الفعلي بعد الدمج (specialty ⊕ context)

اللي الـ shell بترسمه فعلاً: المحطات أو اللوحة، الـ slots المفعّلة، كروت السياق (إقامة)، باقات العلامات، وخطوات الاستقبال الأول.


      

إيه اللي بيتحرك من شاشات النهاردة