تقرير تعليقات الطباعة في نظام المعمل
التقرير ده بيجمع أنواع الـ comments/notes اللي ممكن توصل لتقرير النتيجة المطبوع، وخصوصًا التعليقات اللي بتدخل من صفحة
/app/lab/validation. الهدف: نعرف إيه بيتطبع، بيتطبع فين، وإيه محتاج تعديل.
الخلاصة
الطباعة فعلًا بتيجي من صفحة validation عند الضغط على Print، لكن الصفحة نفسها لا ترسم التقرير. هي تستدعي
LisPrintReportService.printRequest()، والخدمة دي هي المصدر الموحد لطباعة تقارير المعمل.
في القالب الكلاسيكي classic المبني على PDF، تعليقات النتيجة الفردية والتعليق العام للطلب بتظهر. لكن في
قوالب HTML الحديثة مثل editorial و bento و monochrome و spectrum
و document، الكود الحالي لا يطبع بوضوح row.comment ولا data.comments في نتائج numeric العادية.
مسار الطباعة من Validation
bulkDraft أو enter على نتيجة واحدة.printRequest(reqId).أنواع التعليقات التي قد تصل للطباعة
| النوع | الحقل | من أين يدخل؟ | مكانه في الطباعة | الحالة الحالية |
|---|---|---|---|---|
| تعليق على نتيجة واحدة | lab_results.comment |
زر comment داخل validation، dept worklist، أو صفحة results. | سطر كامل تحت التحليل نفسه. | PDF فقط بوضوح |
| تعليق عام على الطلب | lab_requests.report_comment |
مكون RequestReportCommentComponent أسفل جدول validation/dept worklist. |
Box باسم Comments تحت النتائج في آخر التقرير. | PDF فقط بوضوح |
| تعليق ثابت للتحليل | has_static_comment, static_comment, static_comment_ar |
من شاشة investigations عند تعريف التحليل. | يتكرر تحت نفس التحليل كل مرة يتطبع. | PDF فقط بوضوح |
| ملاحظة panel section | panelSectionNote ثم groupNote |
من تعريف panel sections. | سطر كامل muted/italic تحت مجموعة panel. | PDF و HTML |
| تعليق culture | result_payload.comments |
داخل culture result cell. | داخل بلوك Culture & Sensitivity. | PDF و HTML |
| تعليق histopathology | histopath.comment |
داخل histopath result cell. | قسم narrative بعنوان Comment. | PDF و HTML |
| Internal note | internal_note |
موجود في model، وبعض الشاشات تستخدم internal comment للحركة أو التصحيح. | لا يجب أن يظهر في تقرير المريض. | داخلي فقط |
| Defer comment | defer_comment |
موجود في model لحالات التأجيل. | ليس جزءًا من تقرير النتيجة النهائي. | داخلي فقط |
إزاي بتتطبع حاليًا؟
في PDF Classic
row.commentيطبع كسطر تحت نتيجة التحليل، بعرض الجدول كله.row.staticCommentيطبع كسطر تحت التحليل لوhas_static_comment=true.- لو التحليل عليه
print_on_separate_page، التعليق الثابت يتحط في آخر الصفحة الخاصة بالتحليل. data.commentsالقادم منreport_commentيطبع في box بعد آخر section، ولو المساحة لا تكفي يفتح صفحة جديدة.- تعليقات culture وhistopathology تظهر داخل بلوكاتهم الخاصة.
في HTML Templates
groupNoteيظهر في الجداول.- تعليقات culture وhistopathology تظهر داخل narrative/rich blocks.
- المشكلة:
row.commentالعادي غير مرسوم في rows الخاصة بالـ numeric/text العادي. - المشكلة:
staticCommentغير مرسوم في HTML templates. - المشكلة:
data.commentsالخاص بالتعليق العام للطلب غير مستخدم في HTML templates.
ملاحظات مهمة من الكود
| الملاحظة | التفسير | الأثر |
|---|---|---|
| فلتر auto-calculated | الطباعة تستبعد أي comment فيه auto-calculated. |
تصرف صحيح غالبًا، لأنه يمنع ملاحظات تقنية من الظهور للمريض. |
| تعليق validation محفوظ كـ public comment | زر comment في validation يحفظ في comment وليس internal_note. |
أي نص يكتبه المستخدم هنا يعتبر قابل للطباعة للمريض في PDF. |
اسم الحقل printable_comment موجود لكنه غير مستخدم |
الموديل يحتوي printable_comment و internal_note و defer_comment، لكن الطباعة تعتمد على comment. |
فيه فرصة تنظيم أفضل لتفريق public/internal بدل الاعتماد على comment واحد. |
| HTML preview يعرض comment | مكون result preview يعرض row.comment، لكن خدمة HTML print الحديثة لا تفعل نفس الشيء. |
قد يحصل اختلاف بين preview أو PDF وبين HTML print. |
| Dept worklist عند bulkDraft لا يمرر comment في بعض الحالات | في بعض مسارات الحفظ غير pending، يتم إرسال result_value فقط. | قد تضيع ملاحظة لو المستخدم عدل قيمة وcomment في نفس اللحظة حسب الحالة. |
هل تحتاج تعديلات؟
نعم، لو هتستخدموا قوالب HTML الحديثة. لازم توحيد طريقة عرض التعليقات بين PDF وHTML.
| الأولوية | التعديل | السبب | النتيجة |
|---|---|---|---|
| P1 | إضافة rendering لـ r.comment داخل كل HTML numeric table. |
تعليق validation على التحليل قد لا يظهر في HTML print. | كل تعليق تحليل يظهر تحت التحليل في كل القوالب. |
| P1 | إضافة rendering لـ r.staticComment في HTML templates. |
التعليق الثابت معرف في investigations لكنه غير مضمون في HTML. | تطابق بين PDF وHTML. |
| P1 | إضافة block عام لـ data.comments في نهاية HTML report. |
ملاحظة التقرير العامة من validation قد لا تظهر. | ملاحظة الطلب تظهر تحت النتائج في كل القوالب. |
| P2 | تغيير UI label في validation من "Result Comment" إلى "Printable result comment". | حتى يعرف المستخدم أن النص قد يظهر للمريض. | تقليل إدخال ملاحظات داخلية في مكان قابل للطباعة. |
| P2 | استعمال printable_comment و internal_note بوضوح. |
الموديل جاهز للفصل لكن الطباعة لسه تعتمد على comment. |
تحكم أفضل: ملاحظة للمريض وملاحظة داخلية منفصلين. |
| P3 | إضافة toggle "Print this comment" عند إدخال comment. | مفيد لو المستخدمين عندهم تعليقات تشغيلية لا تصلح للمريض. | تحكم أدق لكنه يحتاج backend contract واضح. |
شكل الطباعة المقترح
- تعليق التحليل الفردي: تحت صف التحليل مباشرة بخط أصغر ولون هادئ، ويبدأ بكلمة Comment: لو التقرير إنجليزي أو ملاحظة: لو عربي.
- التعليق الثابت للتحليل: تحت التحليل بعد تعليق النتيجة، ويفضل تمييزه كـ Note: لأنه ثابت وليس مدخل لحالة المريض.
- ملاحظة التقرير العامة: box في نهاية التقرير بعنوان Comments أو ملاحظات التقرير.
- تعليقات culture/histopathology: تظل داخل البلوك الخاص بها كما هي، لأنها جزء من التقرير السردي.
- التعليقات الداخلية أو defer/correction comments: لا تطبع في تقرير المريض إلا لو تم نقلها صراحة إلى printable comment.
الحكم النهائي
موضوع الكومنتات في النظام مش سيئ، لكنه غير موحد بين قوالب الطباعة. في مسار PDF القديم الوضع أوضح وأقرب للصحيح. المشكلة الحقيقية في قوالب HTML الحديثة: بعض التعليقات محفوظة وتصل إلى data model، لكنها لا تظهر في HTML print.
أنصح بتعديل LisHtmlReportService أولًا، ثم تحسين تسمية زر comment في validation حتى يكون واضحًا للمستخدم
أن هذا تعليق قابل للطباعة. بعد ذلك يمكن التفكير في فصل نهائي بين printable_comment و internal_note.