موديول متكامل لمتابعة حالات العقم وتأخر الإنجاب على مستوى الزوجين معاً (الزوجة والزوج)، ويشمل ملف العقم السريع القديم، و«شيت العقم» الشامل الحديث الذي يوثّق التاريخ المرضي والجراحي والإنجابي والدورة الشهرية وتشخيص عامل الزوج والزوجة والعلاجات السابقة واستجابتها، مع إصدار روشتات وطلبات تحاليل منفصلة لكل من الزوج والزوجة، وحساب الصيغة التوليدية (Gravida/Para) آلياً من سجل الحمول السابقة.
husbndiagnosis1/2/3) وقوائم أسباب منسوبة للزوج والزوجة (sheethusband, sheetwife).tttda)، ميتفورمين (tttmetformin)، نوع العلاج (ttttype)، الاستجابة (tttresponse) وعدد المحاولات ونتيجتها.awifep): نوع المولود، تاريخ الولادة، طريقة الولادة ونوعها (مكتمل/مبتسر)، الوزن، حي/متوفى، وسيلة منع الحمل بعده ومدتها — مع حساب عمر الطفل آلياً.forhusband = 0/1).previous_marriage, hus_previous_marriage) من ملف المريضة وعرضها في ترويسة بيانات المريضة.lastvisit) لتسهيل استئناف العمل.| الجدول | الغرض | أهم الحقول | العلاقات |
|---|---|---|---|
infertility | الملف السريع القديم للعقم (سجل واحد لكل مريضة) | patientid, marriage, menstr, operations, sexualhistory, breast, hirsuitism, obesity | patients عبر patientid |
infertilitydiagnosis | تشخيصات مؤرخة للزوجة والزوج داخل الملف القديم | infertid, date, diagnosiswife, diagnosishusband, del | infertility عبر infertid |
infertilitylmp | سجل تواريخ آخر دورة شهرية | infertid, date | infertility عبر infertid |
infertilityinvest | نتائج استقصاءات العقم (سائل منوي، أشعة بالصبغة، هرمونات، منظار) | infertid, date, semen, peg, hsg, pct, us, prolactin, thyr, fsh, lh, laparoscopy | infertility عبر infertid |
infertilitynotes | ملاحظات مؤرخة على ملف العقم | infertid, date, note, del | infertility عبر infertid |
infertilitydrugs | روشتات الملف القديم (دواء لكل صف، زوج أو زوجة) | patientid, date, drugid, drugdos, forhusband, doctorid, deleted | patients عبر patientid، drugs عبر drugid، awusers عبر doctorid |
infertilitysheet | شيت العقم الشامل الحديث (سجل واحد لكل مريضة، ~64 حقلاً) | patientid, sheettype, historyduration, husbndiagnosis1..3, tttda, tttmetformin, ttttype, tttresponse, obstg/obstp/obstft/obstpt/obstepc/obstliving, menstrualreg, wmenstruallmp, sheethusband, sheetwife, sheetlocation | patients عبر patientid، وقوائم typeinf / sheetlocation / husbndiagnosis1-3 / ttt* / sheethusband / sheetwife عبر معرفات مخزنة نصياً |
infertilitysheetdrugs | روشتات شيت العقم (منفصلة للزوج والزوجة بالتاريخ) | patientid, date, drugid, drugname, drugdos, forhusband, doctorid, deleted | patients عبر patientid، drugs عبر drugid، awusers عبر doctorid |
infertilitysheetinvest | طلبات التحاليل ونتائجها من شيت العقم | patientid, date, investid, investresult, forhusband, doctorid, deleted | patients عبر patientid، invests عبر investid، awusers عبر doctorid |
typeinf | قائمة نوع العقم (أولي/ثانوي) (استنتاج) لحقل sheettype | title, del | infertilitysheet عبر sheettype |
type | قائمة عامة مرتبطة فعلياً بجدول تسجيل شيت الحمل (registeration.type) وليست خاصة بالعقم | title, del | registeration (موديول متابعة الحمل) عبر type |
sheethusband | قائمة أسباب/عوامل العقم المنسوبة للزوج (اختيار متعدد) | title, del | infertilitysheet عبر sheethusband (قائمة معرفات بفواصل) |
sheetwife | قائمة أسباب/عوامل العقم المنسوبة للزوجة (اختيار متعدد) | title, del | infertilitysheet عبر sheetwife (قائمة معرفات بفواصل) |
sheetlocation | قائمة مكان/جهة الفحص أو المتابعة في الشيت | title, del | infertilitysheet عبر sheetlocation |
previous_marriage | الزيجات السابقة للزوجة (المدة وعدد الذكور والإناث وسن آخر طفل) | patientid, period, males, females, last_age, deleted | patients عبر patientid |
hus_previous_marriage | الزيجات السابقة للزوج (نفس البنية) | patientid, period, males, females, last_age, deleted | patients عبر patientid |
husbndiagnosis1 | قائمة تشخيص الزوج — المستوى الأول (تحليل السائل المنوي غالباً) (استنتاج) | title, del | infertilitysheet عبر husbndiagnosis1 |
husbndiagnosis2 | قائمة تشخيص الزوج — المستوى الثاني | title, del | infertilitysheet عبر husbndiagnosis2 |
husbndiagnosis3 | قائمة تشخيص الزوج — المستوى الثالث | title, del | infertilitysheet عبر husbndiagnosis3 |
wifep | سجل الحمول السابقة للزوجة — نسخة قديمة مهجورة جزئياً (لا تزال تُقرأ في شاشة تاريخ الحقن المجهري) | infertilitysheetid, wifesex, wifemodeofd, wifetypeofd, wifepmethod, awifepmethod, name, date, duration, wifel | infertilitysheet عبر infertilitysheetid، wifesex/wifepmethod/awifepmethod عبر المعرفات |
wifepmethod | قائمة وسيلة منع الحمل بعد الولادة — النسخة القديمة المرتبطة بـwifep | title, del | wifep عبر wifepmethod |
awifep | سجل الحمول السابقة للزوجة — النسخة الفعّالة المستخدمة في شيت العقم وشيت الحقن المجهري (صف لكل حمل/ولادة) | infertilitysheetid, wifesex, wifemodeofd, wifetypeofd, wifew (الوزن), wifel (حي), date, awifepmethod, duration, stopped, comment, wifeage | infertilitysheet عبر infertilitysheetid، wifesex عبر wifesex، awifepmethod عبر awifepmethod، wifemodeofd/wifetypeofd (قوائم خارج النطاق) |
awifepmethod | قائمة وسيلة منع الحمل بعد الولادة — النسخة الفعّالة (اختيار متعدد في صف الحمل) | title, del | awifep عبر awifepmethod (قائمة معرفات بفواصل) |
wifesex | قائمة نوع المولود (ذكر/أنثى) (استنتاج) | title, del | awifep و wifep عبر wifesex |
tttda | قائمة علاجات سابقة — محفزات الدوبامين/منشطات التبويض (استنتاج من الاسم D.A.) | title, del | infertilitysheet عبر tttda |
tttmetformin | قائمة استخدام الميتفورمين في العلاج السابق | title, del | infertilitysheet عبر tttmetformin |
tttresponse | قائمة الاستجابة للعلاج السابق | title, del | infertilitysheet عبر tttresponse |
ttttype | قائمة نوع العلاج/التنشيط السابق (اختيار متعدد) | title, del | infertilitysheet عبر ttttype (قائمة معرفات بفواصل) |
infertilitysheet.php?patientid=N)؛ إذا لم يوجد شيت يُنشأ سجل فارغ تلقائياً في infertilitysheet، ويُنشأ كذلك gynasheet مرافق، ويُسجَّل الدخول في lastvisit.Add/update تستقبل اسم الجدول والعمود والقيمة وتحفظ مباشرة).getselect من جداول القوائم، ويمكن للطبيب إضافة قيمة جديدة فورياً عبر getselectajax أو حذفها عبر deldataselect.append الذي يُدرج صفاً جديداً في awifep مرتبطاً بـinfertilitysheetid، ثم يكمل بياناته (نوع المولود، تاريخ وطريقة الولادة، الوزن، حي/متوفى، وسيلة منع الحمل بعده).obstetric() فتعدّ الولادات المكتملة والمبتسرة من awifep والإجهاضات من wifeepc والحمل الجاري من ancsheet النشط، وتحفظ النتائج في حقول obst* بالشيت.forhusband=0) والزوج (forhusband=1) في infertilitysheetdrugs من كتالوج drugs، مع إمكانية عرض الروشتات السابقة بالتاريخ وتعديلها وطباعتها (قالب طباعة مشترك مع موديول النساء).invests المصنّف بـinvestcats وتُحفظ في infertilitysheetinvest لكل من الزوجين، وتُسجَّل النتائج لاحقاً في حقل investresult وتُطبع.infertilitysheetid.infertility.php) ما زالت متاحة كملف سريع: تُنشئ سجل infertility مع صفوف أولية للتشخيص وآخر دورة والفحص والتحاليل والملاحظات، وتدار صفوفها بنفس أسلوب الإضافة/التعديل/الحذف الناعم.programesetting.previous_marriage.patientid، وأسماء الزوج/الزوجة وألقابهما (wifetypes, husbandtypes) تُستخدم في الطباعة.infertilitydrugs.drugid وinfertilitysheetdrugs.drugid يشيران إلى drugs.id.infertilitysheetinvest.investid يشير إلى invests.id والتصنيف عبر invests.investcatid.obstetric() تقرأ الشيت النشط (endpreg=0) لإضافة الحمل الجاري إلى Gravida؛ كما أن قائمة type مستخدمة فعلياً في جدول registeration الخاص بشيت الحمل.gynasheet تلقائياً من شاشة شيت العقم، وقوالب طباعة الروشتة والتحاليل مشتركة (gyna/print.html).infertilitysheet وawifep وwifep وwifeepc بمفتاح infertilitysheetid لعرض التاريخ الإنجابي.semeninfertility, hormonalprofile, tvs, hsginfertility, laparoscopyinfertility, icsi, folliculom, newvisit, wifeepc (موديولات أخرى) كلها بمفتاح infertilitysheetid.doctorid في جداول الروشتات والتحاليل يشير إلى user_id من الجلسة.infertility وفروعه) وشيت العقم الحديث (infertilitysheet وفروعه)؛ ولا يوجد ترابط بينهما سوى patientid.wifep جدول قديم حلّ محله awifep (الذي أضاف الوزن وحقل التوقف والعمر)، لكنه ما زال يُقرأ في شاشة تاريخ الحقن المجهري (ivfsheet.php سطر 378) — ازدواجية بيانات محتملة. وبالمثل wifepmethod قديمة وawifepmethod هي الفعّالة.infertilitysheet00.php نسخة كنترولر قديمة مكررة من infertilitysheet.php (تستخدم gynadrugs للروشتات بدلاً من infertilitysheetdrugs) — كود ميت يجب استبعاده.Add/update/append/getselect/deleterow تستقبل اسم الجدول والعمود من طلب POST مباشرة دون قائمة سماح، ما يتيح الكتابة أو الحذف في أي جدول بقاعدة البيانات.varchar — غير معيارية ولا يمكن الاستعلام عنها مباشرة.infertilitysheet وawifep مخزنة كنصوص varchar بصيغ مختلطة (Y/m/d وd-m-Y)، بينما الجداول القديمة تستخدم date فعلياً.del في بعض الجداول وdeleted في أخرى، وقيم del IS NULL تعني «نشط» في جداول القوائم.previous_marriage وhus_previous_marriage بترميز latin1 رغم احتوائهما نصوصاً عربية محتملة، وهما متطابقا البنية (تكرار هيكلي).awifep الفعلية.type ليست خاصة بالعقم فعلياً؛ تُستخدم في جدول registeration بموديول متابعة الحمل (تصنيف مكان التسجيل) — تصنيفها هنا تاريخي فقط.InfertilityFile (يدمج infertility + infertilitysheet في ملف واحد لكل مريضة) مع جداول فرعية مهيكلة بدلاً من 64 عموداً مسطحاً: infertility_history، infertility_examination، infertility_menstrual_history.ObstetricHistory موحّد يحل محل wifep وawifep معاً (مع ترحيل بيانات الجدولين وإزالة التكرار)، بعلاقات FK حقيقية إلى قوائم baby_sex وdelivery_mode وdelivery_type وcontraception_method.lookups (أو جداول Enum مهيكلة) بحقل group بدلاً من 15 جدولاً منفصلاً متطابق البنية (typeinf، sheethusband، sheetwife، sheetlocation، husbndiagnosis1-3، ttt*، wifesex، wifepmethod، awifepmethod)، مع جداول pivot للعلاقات متعددة الاختيار بدلاً من النصوص المفصولة بفواصل.infertilitydrugs وinfertilitysheetdrugs (وأشباههما في باقي الموديولات) بموديل Prescription + PrescriptionItem مركزي بحقل module وfor_spouse، وكذلك LabOrder + LabOrderItem بدلاً من infertilitysheetinvest.ObstetricHistory والإجهاضات والحمل النشط بدلاً من تخزينها يدوياً.previous_marriage وhus_previous_marriage إلى جدول واحد previous_marriages بحقل spouse (wife/husband) ضمن موديول المرضى، مع تحويل الترميز إلى utf8mb4.date مع سكربت ترحيل يعالج الصيغ المختلطة، وتوحيد الحذف الناعم عبر SoftDeletes القياسية.infertilitysheet00.php نهائياً، ومراجعة بيانات wifep قبل الترحيل لدمج ما هو غير مكرر مع awifep.type إلى نطاق موديول متابعة الحمل (ANC) عند الترحيل لأنها مرتبطة بجدول registeration وليس بالعقم.