تحليل الوضع الحالي + التصميم المقترح — قبل البدء في التنفيذ
النظام فيه بنية هستوباثولوجي كاملة شغّالة — بس بأقسام ثابتة مفرّغة في الكود.
| المكوّن | الموجود | الحالة |
|---|---|---|
جدول القالب lab_histopath_templates | 4 أعمدة نص ثابتة: gross_template · microscopic_template · diagnosis_template · recommendation_template + name / subspecialty | ثابت |
جدول النتيجة lab_histopath_results | أعمدة ثابتة: gross/microscopic/diagnosis/comment/recommendation + حقول مهيكلة (icd, tnm, margin, ihc) + custom_fields JSON بشكل [{label,value}] | ثابت + custom محدود |
محرّر القالب (FE) histopath-templates | تابات مفرّغة في الـHTML: Basic · Gross · Micro · Dx · Rec — كل تاب formControlName ثابت | ثابت |
إدخال النتيجة (FE) result-histopath-cell | تابات ثابتة: Gross · Microscopic · Diagnosis · IHC/Staging · Images · Audit | ثابت |
| قوالب جاهزة (Seeder) | 16 قالب تخصّصي (Breast, …) فيهم نص جاهز بـplaceholders {size} | موجود |
الأقسام (Gross / Micro / Dx / Rec) مفروضة في الكود — مش ممكن تضيف قسم جديد، ولا تشيل واحد، ولا تغيّر عنوانه. الـcustom_fields الحالي مجرد قائمة label/value مسطّحة، مش أقسام بعناوين ونصوص كاملة.
نحوّل القالب من 4 أعمدة ثابتة إلى مصفوفة أقسام JSON يتحكم فيها المستخدم بالكامل.
sections في القالبالنتيجة بتخزّن القيم المعبّأة في JSON موازي مفتاحه key القسم — فأي قسم يتشال/يتضاف من القالب بيظهر/يختفي في الإدخال تلقائياً.
الوصف العياني | ↕ ترتيب | 🗑 حذف{size} مدعومة…textarea عادي (زي الحالي) — ولا محرّر Rich Text (Bold / قوائم / جداول) للتقارير الباثولوجية؟sections JSON على lab_histopath_templates + sections JSON على lab_histopath_results (قيم معبّأة مفتاحها key).sections (idempotent).LabHistopathTemplateController + الـRequests لقبول/التحقق من مصفوفة الأقسام.LabHistopathResult) لتخزين/قراءة القيم الديناميكية + إبقاء الأعمدة القديمة متزامنة للتوافق مع التقرير المطبوع.bash local-deploy.sh + اختبار curl.