يغطي هذا الموديول الرحلة العلاجية الكاملة لمحاولات الإخصاب المساعد: ورقة الـ IVF/ICSI النشطة لكل مريضة (بروتوكول التنشيط، متابعة التحفيز اليومي للمبايض، سحب البويضات OPU، تحليل السائل المنوي، نقل الأجنة الطازج والمجمد، تحضير بطانة الرحم للأجنة المجمدة، والنتيجة النهائية)، إضافة إلى «ورقة المتابعة» (Monitoring Sheet) المستقلة لمتابعة دورات التنشيط بالزيارات اليومية (HMG، سمك البطانة، حويصلات المبيضين، E2)، مع وصفات وتحاليل خاصة بالزوجة والزوج، وأرشفة المحاولات السابقة، وتقارير إحصائية لنتائج الـ IVF وتقرير يومي لحالات الـ IUI.
ivfsheet حيث endpreg = 0) مع إنشاء أوراق العقم والنساء (infertilitysheet وgynasheet) تلقائياً إن لم توجد.ovst): صف لكل زيارة يحوي يوم الدورة، التاريخ، Agonist/Antagonist، جرعة HMG، عدّ الحويصلات حسب القطر (10–20 مم) لكل مبيض، سمك البطانة، قيمة E2، وملاحظات، مع حساب التاريخ آلياً من LMP ويوم الدورة.eprep) بنظام دعم أصفري (epreplps)، متابعة سمك البطانة والمبيضين، الإذابة (Thawing) والنقل والنتيجة.icsi مرتبط بورقة العقم — بما في ذلك صفوف النقل الإضافية من جدول sefo.ac=archive وac=historys).mointoringsheet) برقم محاولة، إجراء (IVF/ICSI/IUI...)، بروتوكول، مصدر الحيوانات المنوية (Ejaculate/PESA/TESE/Cryo)، أدوية تحفيز (HMG/Agonist/HCG) — جميعها قوائم منسدلة قابلة للإضافة الفورية من الشاشة.mointoringsheetvisits): يوم الدورة محسوب آلياً، جرعة HMG، سمك البطانة، حويصلات المبيض الأيمن والأيسر، E2.mointoringsheetdrugs).mointoringsheetinvestigation).status = 1) واستعراض المحاولات السابقة بتفاصيلها.folliculom): LMP، العلاج المنشط، يوم الدورة، قياس المبيضين والبطانة، التفجير والنتيجة.Ivfstatistics): بحث بالفترة أو بالمريضة على الدورات الطازجة والمجمدة مع حساب عمر الزوجة وقت المحاولة وعرض البروتوكول والسائل المنوي وأول/آخر متابعة تنشيط وعدد دورات تحضير البطانة، مع الطباعة.iui.php) اعتماداً على تاريخ ونتيجة ورقة العقم (infertilitysheet.sheetdate / sheetresult) مع الطباعة.| الجدول | الغرض | أهم الحقول | العلاقات |
|---|---|---|---|
ivfsheet | الورقة الرئيسية لمحاولة IVF/ICSI النشطة: تقييم، TOO، OPU، سائل منوي، إخصاب، نقل طازج ومجمد، نتائج (حمل كيميائي/كيس حمل/ولادة) | patientid, endpreg, anamh, annn, anprotocol, lmpfresh, lmpfrozen, toocd, opun, opumll, fefn, ettn, frren, etn, outcomehsgn, frozenor, bmi, historytoday | patients عبر patientid، icsiprotocol عبر anprotocol، icsisemen عبر sseemmen، pla2cen عبر pla2cen، antype عبر antype |
ovst | شبكة متابعة تنشيط المبايض: صف لكل زيارة بقيم الحويصلات حسب القطر (10–20 مم) والبطانة وE2 | ivfsheetid, ovstcdfh, ovstdate, ovstag, ovsthmg, ovstfr…ovstffffff (أعمدة الحويصلات), eovst, eeovst, noteovst | ivfsheet عبر ivfsheetid |
eprep | تحضير بطانة الرحم لدورات النقل المجمد: LMP، العلاج، سمك البطانة، الإذابة والنقل | ivfsheetid, epreplps, eprepcd, lmpfrozen, eprepttt, eprepe, eprepro, epreplo, thawingdate, thawingstn, thawingen, eprepcancel | ivfsheet عبر ivfsheetid، epreplps عبر epreplps |
epreplps | قائمة منسدلة لأنظمة الدعم الأصفري (LPS) في تحضير البطانة — تُدار من الشاشة (فارغة في النسخة الاحتياطية) | title, del | تُرجع من eprep عبر epreplps |
icsi | السجل التاريخي الملخّص لمحاولات ICSI المنتهية (يُولَّد آلياً عند الأرشفة) ويُعرض في ورقة العقم — قيم نصية منسوخة وليست مفاتيح | infertilitysheetid, date, icsiprotocol, icsiplace, icsisemen, opu, fert, et, fr, refr, icsiss, icsiresult, vd, e2d2 | infertilitysheet عبر infertilitysheetid، sefo عبر sefoid (استنتاج) |
icsiplace | قائمة منسدلة لأماكن إجراء الـ ICSI (مراكز/معامل) | title, del | تُستخدم نصاً في icsi وتُعرض في تقارير ورقة العقم |
icsiprotocol | قائمة منسدلة لبروتوكولات التنشيط (Long/Short/Antagonist…) | title, del | ivfsheet عبر anprotocol |
icsiresult | قائمة منسدلة لنتائج محاولة الـ ICSI | title, del | تُستخدم نصاً في icsi.icsiresult |
icsisemen | قائمة منسدلة لمصدر/حالة العينة المنوية المستخدمة | title, del | ivfsheet عبر sseemmen |
icsiss | قائمة منسدلة مساندة لبيانات اختبار الحمل/متابعة ما بعد النقل (تُخزَّن قيمتها في icsi.icsiss) | title, del | تُستخدم نصاً في icsi.icsiss |
mointoringsheet | رأس ورقة متابعة دورة التنشيط: المحاولة، الإجراء، البروتوكول، مصدر العينة، أدوية التحفيز، نتائج OPU/ET/Cryo والمحصلة | patientid, doctorid, monitordate, lmp, attempno, procedure, protocol, ejac, pesa, tese, sryo, hmg, agonist, hcg, oocytestotal, ettotal, cyroday, p4, outcome, status | patients عبر patientid، awusers عبر doctorid، وجداول القوائم التسعة عبر أعمدتها |
mointoringsheetvisits | الزيارات اليومية داخل ورقة المتابعة: يوم الدورة، HMG، البطانة، حويصلات يمين/يسار، E2 | mointoringsheetid, visitdate, cycleday, hmg, endo, follicright, follicleft, e2 | mointoringsheet عبر mointoringsheetid |
mointoringsheetdrugs | الوصفات الدوائية داخل المتابعة للزوجة أو الزوج مع ربط اختياري بإيصالات الصيدلية | patientid, date, drugid, drugdos, forhusband, doctorid, recepittmpid, recepitdrugid, mointoringsheetid | patients عبر patientid، drugs عبر drugid، mointoringsheet عبر mointoringsheetid |
mointoringsheetinvestigation | التحاليل المطلوبة داخل المتابعة للزوجة أو الزوج مع النتيجة | patientid, date, investid, investresult, forhusband, doctorid, mointoringsheetid | invests عبر investid، patients عبر patientid، mointoringsheet عبر mointoringsheetid |
mointoringsheetprocedure | قائمة منسدلة لنوع الإجراء (IVF/ICSI/IUI…) | name, deleted | mointoringsheet عبر procedure |
mointoringsheetprotocol | قائمة منسدلة لبروتوكول التنشيط في ورقة المتابعة | name, deleted | mointoringsheet عبر protocol |
mointoringsheetejac | قائمة منسدلة لحالة العينة بالقذف (Ejaculate) | name, deleted | mointoringsheet عبر ejac |
mointoringsheetpesa | قائمة منسدلة لخيارات سحب الحيوانات المنوية PESA | name, deleted | mointoringsheet عبر pesa |
mointoringsheettese | قائمة منسدلة لخيارات استخراج الحيوانات المنوية TESE | name, deleted | mointoringsheet عبر tese |
mointoringsheetsryo | قائمة منسدلة لخيارات العينات المجمدة (Cryo — مكتوبة sryo) | name, deleted | mointoringsheet عبر sryo |
mointoringsheethmg | قائمة منسدلة لأدوية الـ HMG (الجونادوتروبين) | name, deleted | mointoringsheet عبر hmg |
mointoringsheetagonist | قائمة منسدلة لأدوية الـ Agonist/Antagonist | name, deleted | mointoringsheet عبر agonist |
mointoringsheethcg | قائمة منسدلة لأدوية إبرة التفجير HCG | name, deleted | mointoringsheet عبر hcg |
folliculom | متابعة التبويض البسيطة (Folliculometry) داخل ورقة العقم: قياس الحويصلات والبطانة والتفجير والنتيجة | infertilitysheetid, lmp, ttt, cd, date, ro, lo, endo, pelvis, too, result | infertilitysheet عبر infertilitysheetid |
ivfsheet.php?ac=index&patientid=…)؛ يبحث النظام عن ورقة نشطة (endpreg = 0) وإن لم توجد ينشئها فوراً، وينشئ معها infertilitysheet وgynasheet إن لم تكونا موجودتين، ويسجل الدخول في lastvisit.Add() تستقبل اسم الجدول والعمود والقيمة وتحدّث مباشرة) — لا يوجد زر حفظ مركزي.ovst مرتبطاً بالورقة، ثم يُدخل يوم الدورة فيحسب النظام التاريخ آلياً من lmpfresh (دالتا ovstcdfh وnewcd)، ويُسجل Ag/HMG وعدّ الحويصلات حسب القطر والبطانة وE2.sefo) أو التجميد.eprep لتحضير البطانة (LMP المجمد، العلاج، السمك، نظام LPS من قائمة epreplps) ثم بيانات الإذابة والنقل والنتيجة.endpreg = 1، frozenor، historytoday، نسخ bmi من آخر examination) ويُولَّد سطر/أسطر ملخصة في icsi بقيم نصية منسوخة من القوائم (البروتوكول، المكان، السائل المنوي) مرتبطة بـ infertilitysheetid لتظهر في تاريخ ورقة العقم.ac=archive وفتح أي محاولة للقراءة من ac=historys.monitoring.php): تُفتح ورقة متابعة مفتوحة واحدة لكل مريضة (status = 0) وتُنشأ تلقائياً، ويُختار الإجراء والبروتوكول ومصدر العينة وأدوية التحفيز من قوائم قابلة للإضافة الفورية (addNewItem) والتعديل (editselect).addNewVisit) بيوم دورة محسوب آلياً من monitordate، وتُحدَّث خاناته (HMG/Endo/حويصلات يمين-يسار/E2) لحظياً عبر update().mointoringsheetdrugs من كتالوج drugs) وتُطلب تحاليل (mointoringsheetinvestigation من كتالوج invests) مع شاشات عرض وطباعة بالتواريخ.trigSheet ⇒ status = 1)، وتُستعرض المحاولات السابقة من trials وتفاصيل كل محاولة من trialdetail عبر استعلام JOIN مع جداول القوائم التسعة.ivfsheet بفترة LMP (طازج أو مجمد) أو بالمريضة، ويحسب عمر الزوجة وقت المحاولة من patients.dateofbirth، ويعرض أول وآخر صف تنشيط وعدد دورات تحضير البطانة؛ وتقرير «IUI» يعرض حالات اليوم ويبحث بفترة على infertilitysheet.sheetdate وsheetresult مع الطباعة.ivfsheet.patientid وmointoringsheet.patientid وmointoringsheetdrugs.patientid وmointoringsheetinvestigation.patientid ← patients.id (وبيانات الزوج تُقرأ من نفس سجل المريضة: husdandname, husbandtypeid).icsi.infertilitysheetid وfolliculom.infertilitysheetid ← infertilitysheet.id؛ وشاشة IVF تنشئ وتعرض ورقة العقم وجداولها (awifep, wifeepc)، وتقرير IUI يعتمد كلياً على infertilitysheet.sheetdate/sheetresult.gynasheet للمريضة، وشاشات طباعة المتابعة تستخدم قوالب gyna/print.html وgyna/printinv.html.mointoringsheetdrugs.drugid ← drugs.id مع حقلي ربط بإيصالات الصيدلية recepittmpid وrecepitdrugid (استنتاج).mointoringsheetinvestigation.investid ← invests.id وتُعرض مجموعات التحاليل من investcats.examination.bmi إلى ivfsheet.bmi.mointoringsheet.doctorid وdoctorid في الوصفات والتحاليل ← awusers (من الجلسة user_id)، والتحقق عبر awrole.ivfsheet.antype/antypes ← جدولا antype/antypes، وivfsheet.pla2cen ← pla2cen (أماكن)، وivfsheet.sseemen ← sseemen.lastvisit؛ وتقارير Completesreport وsh وpatienthistory تقرأ icsi وfolliculom وeprep ضمن الملف الشامل للمريضة.ivfsheet.php وivfsheet00.php (نسخة أقدم لا تدعم جدول sefo ولا نسخ BMI) — كود ميت يجب إسقاطه.ovst يستخدم أسماء أعمدة مشفّرة غير قابلة للصيانة (ovstfr, ovstfrrrr, ovstdffffff…) تمثل خلايا شبكة عدّ الحويصلات حسب القطر 10–20 مم؛ المعنى محفوظ فقط في ترتيب أعمدة قالب Smarty.icsi يخزن قيم القوائم كنصوص منسوخة (denormalized) بينما ivfsheet يخزنها كمعرّفات — ازدواجية تمثيل لنفس البيانات.sefo (صفوف نقل أجنة إضافية) مستخدم في الكود لكنه غير موجود في ملف الـ SQL — يُنشأ آلياً بوضع RedBeanPHP الـ fluid، وهي مخاطرة تشغيلية.addNewItem/getselectajax).ivfsheet وovst وeprep وfolliculom مخزنة كـ varchar بصيغة Y/m/d وليست أعمدة تاريخ — يستحيل الفرز والاستعلام الزمني الموثوق.Add() وupdate() وdel() تستقبل اسم الجدول والعمود من الـ POST مباشرة (كتابة عشوائية في أي جدول)، ودالة newcd() وبحث iui.php يبنيان SQL بالتجميع النصي (SQL Injection).Ivfstatistics: شرط OR بدون أقواس في الفرع غير المقيد بالمريضة، ودالة showprint فيه تستعلم من ancsheet (خطأ نسخ-لصق من تقرير الحمل) فالطباعة لا تعكس نتائج البحث.deleted/del) بدون توحيد (بعضها del is null وبعضها deleted = 0).IvfCycle (Laravel) يمثل المحاولة برقمها ونوعها (Fresh/Frozen/IUI/Monitoring) وحالتها (Active/Archived) بدلاً من ivfsheet + mointoringsheet المنفصلين.IvfCycleVisit موحّد يدمج ovst وmointoringsheetvisits وfolliculom: زيارة متابعة بتاريخ ويوم دورة وجرعات وE2 وسمك بطانة، مع جدول فرعي follicle_measurements (جانب المبيض، القطر، العدد) بدلاً من الأعمدة المشفّرة الـ 26 في ovst.OpuRecord (البويضات: total/MII/MI/GV)، SemenSample (المصدر: Ejaculate/PESA/TESE/Cryo)، EmbryoTransfer (يشمل صفوف sefo الإضافية)، Cryopreservation، EndometrialPrep (يستوعب eprep مع الإذابة)، وCycleOutcome (HCG/كيس حمل/ولادة).icsi الملخّص نهائياً: هو نسخة denormalized تُولَّد عند الأرشفة، ويُستبدل بـ View أو API endpoint يجمع تاريخ المحاولات من الكيانات الأصلية.icsiprotocol, icsiplace, icsisemen, icsiss, icsiresult, epreplps, وجداول mointoringsheet* التسعة) في جدول مرجعي واحد lookups بنمط type + name + is_active أو Enum حيث تكون القيم سريرية ثابتة (البروتوكولات، مصادر العينة)، مع ترحيل القيم الحية من قاعدة الإنتاج لأنها فارغة في النسخة الاحتياطية.date/datetime أثناء الترحيل مع سكربت تنظيف لصيغة Y/m/d والقيم 0000-00-00، وتحويل الأعداد (بويضات، أجنة، E2) إلى أنواع رقمية مع التحقق.mointoringsheetdrugs ⇒ prescriptions العامة (مع علاقة بالدورة وبالشريك)، وmointoringsheetinvestigation ⇒ lab_orders، مع خاصية for_partner بدل forhusband.deleted_at)، وإلغاء كل نقاط الـ AJAX العامة (table/column من العميل) لصالح Form Requests وPolicies في Laravel.