🧪

التحاليل والفحوصات (Investigations & Lab Orders)

يدير هذا الموديول كتالوج التحاليل المعملية والفحوصات (مصنّفة في فئات إكلينيكية مثل أمراض الدم، الكيمياء، الهرمونات، الفيروسات...)، وطلب التحاليل للمريضة أو الزوج من داخل شيتات متابعة الحمل وأمراض النساء والعقم، إضافة إلى شاشة فحوصات مرنة (Other Investigations) تتيح للطبيب تعريف أعمدة فحوصات خاصة وتسجيل قيمها لكل مريضة بنمط EAV، كما يتضمن آلية تصدير الملف الكامل للمريضة إلى ملفات Excel كنسخ احتياطية.

8جدول
3كنترولر
9علاقة رئيسية

الوظائف الرئيسية

الجداول وبنية البيانات (Data Models)

الجدولالغرضأهم الحقولالعلاقات
investcatsفئات كتالوج التحاليل (22 فئة مزروعة: Hematology, Chemistry, Hormonal profile, Virology, Tumor markers, Genetics, Radiological, ANC booking...) ويُستخدم displayorder لتجميع الفئات في أعمدة شاشة طلب التحاليل.id, name, displayorder, deletedأب لجدول invests عبر investcatid
investsكتالوج بنود التحاليل نفسها (276 بنداً مزروعاً مثل CBC, FSH, AMH, HBs Ag, CA 125, Karyotyping...) مع إمكانية التفضيل والحذف المنطقي.id, investcatid, name, favorite, deletedinvestcats عبر investcatid؛ يُشار إليه من ancsheetinvest وgynasheetinvest وinfertilitysheetinvest عبر investid
investigationsجدول قديم بأعمدة ثابتة لنتائج تحاليل حجز متابعة الحمل (Hb, Platelets, FBS, OGTT, HBsAg, HCV, CUA, Ferritin) بزوجي عمودين لكل تحليل: تاريخ (invesd*) ونتيجة (invest*). فارغ في النسخة الحالية ويُقرأ فقط في ancsheet00.php وCompletesreport.php.id, ancsheetid, invesdhb/investhb, invesdplat/investplat, invesdogtt, invesdhbs, invesdhcv, invesdcua, invesdferrشيت متابعة الحمل عبر ancsheetid (استنتاج)
otherinvestigationsتعريفات الفحوصات المخصصة التي يضيفها الطبيب (تمثل أعمدة الشبكة الديناميكية في شاشة الفحوصات).id, name, deletedأب لجدول otherinvestigationsvalues عبر investid
otherinvestigationsrowsصف فحوصات مخصصة لمريضة بتاريخ معين (رأس السجل في نمط EAV).id, date, patientid, doctorid, deletedpatients عبر patientid؛ awusers عبر doctorid
otherinvestigationsvaluesقيم الفحوصات المخصصة (تفاصيل نمط EAV): قيمة واحدة لكل تقاطع صفّ × تعريف فحص؛ تُنشأ تلقائياً لكل التعريفات عند إضافة صف جديد.id, investrowid, investid, value, dateotherinvestigationsrows عبر investrowid؛ otherinvestigations عبر investid
excelinfoاسم مضلِّل: يخزّن الرقم التسلسلي لترخيص البرنامج (hash SHA-512 مرتبط بجهاز الخادم) وتاريخ التفعيل، ويُفحص في login.php عند الدخول والتفعيل. صف واحد فقط.id, time, serialلا علاقات (جدول إعدادات مستقل)
excelinfopatientsقائمة انتظار للمرضى المطلوب توليد ملف Excel لهم؛ تُملأ من patienthistory.php وcompletereport.php وتُفرَّغ بالكامل (TRUNCATE) بعد كل تشغيل لـ excel.php.id, patientid, statusnopatients عبر patientid؛ statusno منسوخ من patients.statusno ويحدد مجلد الحفظ

سير العمل (Workflow)

  1. يقوم مدير النظام/الطبيب من شاشة إدارة التحاليل (addinvestigation.php) بإنشاء فئات التحاليل وبنودها، وتحريرها مباشرة عبر AJAX، وتمييز المفضلة، والحذف المنطقي (deleted = 1).
  2. داخل شيت متابعة الحمل أو أمراض النساء أو العقم، تُعرض الفئات مجمّعة حسب نطاقات displayorder (مكوّدة يدوياً: 1-2، 3، 4-5، 6-11، أكبر من 11) مع قائمة المفضلة، ويختار الطبيب التحاليل المطلوبة (checkboxes) ويحدد التاريخ وهل هي للزوجة أم للزوج.
  3. عند الحفظ يُنشأ سجل لكل بند مختار في جدول الأوامر الخاص بالشيت (ancsheetinvest أو gynasheetinvest أو infertilitysheetinvest) حاملاً patientid وinvestid وdate وdoctorid وforhusband، ثم يُعرض أمر التحاليل للطباعة باسم المريضة أو الزوج.
  4. لاحقاً تُسجَّل النتائج في حقل investresult لكل سجل، وتُعرض التحاليل مجمّعة حسب التاريخ (زوجة/زوج) داخل الشيت وفي التقرير المجمع (completereport.php) الذي يجلب اسم التحليل من الكتالوج invests.
  5. شاشة الفحوصات العامة (investigation.php?patientid=...) تعرض لكل مريضة جداول السائل المنوي وHSG وUS/TVS والمنظارين وMRI/CT والهرمونات والباثولوجي، وتُنشئ تلقائياً صفاً فارغاً بتاريخ اليوم إن لم يوجد، مع تحرير أي خلية مباشرة عبر update().
  6. في قسم الفحوصات الأخرى: إضافة تعريف فحص جديد (otherinvestsAdd) ينشئ عموداً جديداً، وإضافة صف للمريضة (otherinvestsRow) ينشئ سجلاً في otherinvestigationsrows وقيماً فارغة في otherinvestigationsvalues لكل تعريف نشط داخل معاملة واحدة، ثم تُملأ القيم بالتحرير المباشر.
  7. عند فتح ملف المريضة في patienthistory.php أو completereport.php تُضاف المريضة تلقائياً إلى قائمة excelinfopatients إن لم تكن موجودة.
  8. يعمل السكريبت excel.php (يُشغَّل مباشرة، على الأرجح بمجدولة cron - استنتاج) فيقرأ القائمة، ويفرّغها، ويبني لكل مريضة جدول HTML شاملاً (تاريخ مرضي، فحص، تحاليل، زيارات، متابعة حمل) ويحوّله إلى ملف .xlsx منسّق يُحفظ في excel_backups/{statusno}/{date}.xlsx.

الارتباط بالموديولات الأخرى

ملاحظات فنية

توصيات النقل إلى ERP