الطباعة عبر LisBarcodeLabeService.printLabelsV2() — jsPDF (landscape) بمقاس من الإعدادات.
الإعدادات (barcode_config) في تاب الباركود: مقاس الملصق (label_width/height، افتراضي 50×25مم)، رمزية الباركود (CODE128)، عدد النسخ، وإظهار/إخفاء الحقول: الاسم · MRN · النوع/العمر · التاريخ/الوقت · الأولوية · التحاليل · القسم · رقم الطلب · الطبيب · نص الباركود.
الحقول المتاحة على الملصق: الاسم(عربي/إنجليزي) · MRN · العمر · النوع · التحاليل · القسم · رقم الطلب · الأولوية · الطبيب · تاريخ التجميع · الباركود.
المقترح: نضيف حقل واحد template للإعدادات = classic (الحالي) أو horizontal (الجديد). نفس كل الإعدادات التانية (المقاس/الحقول/النسخ) بتشتغل مع الاتنين.
1 التصميمان
أ) Classic — التصميم الحالي
YARA GHAZI ALJEHANI
MRN-20562F · 25Y
27/05/2026 07:42PMROUTINE
NIPT singleton · Cell Free DNA
رأسي/مدمج — الاسم فوق، بيانات، باركود، تحاليل تحت
ب) Horizontal — التصميم الجديد (زي الصورة) جديد
YARA GHAZI ALJEHANI20562
F-25Y07:42PM27/05/2026
NIPT singleton Cell Free DNA
83168
أفقي — اسم + MRN فوق · النوع/الوقت/التاريخ · باركود · تحاليل + رقم كبير
2 تخطيط التصميم الأفقي + ربط الحقول
الموضع
المحتوى
الحقل في الكود
أعلى يسار
اسم المريض
patientNameEn || patientNameAr
أعلى يمين
رقم المريض (20562)
mrn
السطر الثاني — يسار
النوع-العمر (F-25Y)
gender + age
السطر الثاني — وسط
الوقت (07:42PM)
collectionDate (الوقت)
السطر الثاني — يمين
التاريخ (27/05/2026)
collectionDate (التاريخ)
الوسط
الباركود الأفقي
barcode (CODE128)
أسفل يسار
أسماء التحاليل (سطرين)
testCodes / testNames
أسفل يمين
رقم كبير (83168)
requestNumber (رقم الطلب القصير)
كل الحقول دي بتحترم نفس مفاتيح الإظهار/الإخفاء في الإعدادات (مثلاً لو show_tests=false التحاليل تختفي من التصميمين).
3 الإعدادات + المعاينة الحيّة (Live Preview)
في تاب الباركود بالإعدادات: مجموعة اختيار التصميم + معاينة بتتحدّث فورًا مع أي تغيير (التصميم/المقاس/الحقول):
Classic (الحالي)
رأسي مدمج — مناسب للملصقات الصغيرة
Horizontal (أفقي)
عريض — الاسم + رقم كبير + باركود في النص
+ نفس إعدادات: المقاس · الحقول · الرمزية · النسخ
معاينة حيّة — Live Preview
YARA GHAZI ALJEHANI20562
F-25Y07:42PM27/05/2026
NIPT singleton Cell Free DNA
83168
المعاينة ببيانات تجريبية ثابتة (مريض وهمي) + الباركود الحقيقي (JsBarcode) — بتتغير لحظيًا لما تبدّل التصميم أو تطفّي حقل.
4 خطة التنفيذ
الإعدادات (BE): إضافة template لـ barcode_config (JSON واحد موجود أصلًا) — مفيش عمود جديد، قيمة classic/horizontal.
محرك الطباعة (FE): في LisBarcodeLabeService نضيف drawLabelHorizontal() ونوزّع حسب cfg.template (الحالي drawLabelV2 يبقى classic).
شاشة الإعدادات (FE): في تاب الباركود — راديو لاختيار التصميم + كومبوننت معاينة يرسم الملصق على <canvas>/صورة من نفس دوال الرسم ببيانات تجريبية، يتحدّث مع أي تغيير.
المقاس الافتراضي للأفقي ممكن يكون أوسع شوية (مثلاً 60×28 أو 70×25) — قابل للتعديل من نفس الإعدادات.
دعم العربي/الإنجليزي للاسم + RTL.
? نقاط محتاج رأيك فيها
١) الرقمان في الأفقي: «20562» فوق = MRN، و«83168» الكبير تحت = رقم الطلب — مظبوط؟ ولا تحب تبديل (مثلاً الكبير = رقم العينة/Accession)؟
٢) مقاس الأفقي الافتراضي: 60×28مم؟ ولا تحدد مقاس معيّن من الصورة (مثلاً 70×25)؟
٣) المعاينة: داخل تاب الباركود في نفس الصفحة (مقترح)، تمام؟
٤) الاسم في الأفقي: إنجليزي أولًا (زي الصورة) ولا حسب لغة الواجهة؟
٥) أسماء التحاليل: اسم التحليل الكامل (NIPT singleton…) ولا الأكواد المختصرة؟