يوثّق هذا الملحق ما رصدناه في النسخة الأحدث المنشورة على med.greennature.com.sa (مجلد /med) والمهيّأة كمركز/مستشفى، وهي مكوّنات غير موجودة في النسخة الأصلية ذات الـ312 جدولًا. تُقدّم هذه النسخة عيادة ذكورة مستقلة بالكامل لها زياراتها وتاريخها المرضي وفحصها السريري الخاص (بخلاف النسخة الأصلية التي اقتصرت على تحاليل السائل المنوي والهرمونات داخل شيت العقم فقط)، إضافة إلى قسم أشعة مركزي يعمل بمسار طلب ← تنفيذ ← تقرير ورفع صور. كل أسماء الجداول المذكورة هنا تمّت مطابقتها مع قائمة الجداول الأصلية وتأكّد أنها جديدة ما لم يُذكر خلاف ذلك. كل ما لم نتمكّن من تأكيده من الكود مباشرة موسوم بـ«(استنتاج)».
في النسخة الأصلية كان الجانب الذكوري مجرد جداول لتحاليل السائل المنوي (semen, semen2, icsisemen, ssemen) والهرمونات داخل شيت العقم. أما هنا فقد أصبحت عيادة ذكورة كاملة بثلاث شاشات سريرية مرتبطة بنفس المريض (patientid) عبر ثلاثة كنترولر: and_visits, and_history, and_examination، تُكتب جميعها عبر RedBeanPHP في جداول جديدة بادئتها and*.
and_visits ← جدول andvisits): تسجّل لكل زيارة الشكوى والتشخيص بنظام قوائم متعددة (complaintid/diagnosisid كقيم CSV من جدولي andcomplaint وanddiagnosis القابلين للإضافة أثناء العمل عبر AJAX adddiagnosis). كما تدمج الشاشة من داخلها: طلب أشعة (andvisitsrays)، طلب تحاليل (andvisitsinvestigation)، روشتة دوائية (andvisitsdrugs)، سونار ذكوري مع بصيلات (andvisitsus + andvisitsficils)، تحليل سائل منوي (andvisitssemen)، وفحص جيني (andvisitsgenetictesting).and_history): يضم خمسة جداول فرعية مستقلة لكل مريض: تاريخ عام (andhistory: مدة العقم durationid، نوع الخصوبة fertiletype، التدخين smoking/smokinglevel، التهابات inflammation، رضوض trauma، الزواج marriage، عدد حالات الإجهاض abortionno المحسوبة آليًا من phobstetric)، المشاكل الطبية (andmedicalproblems ← medicaldisease)، الانتصاب (anderection ← erectiondisease)، القذف (andejaculation ← ejaculationdisease)، ومنع الحمل (andcontraception ← andcontratype). كل قائمة مرجعية قابلة للإضافة من الشاشة عبر دوال AJAX مخصّصة (addduration, adddmdisease, addderectiondisease, addejaculationdisease, addcontraception).and_examination ← andexamination): فحص ثنائي الجانب (يمين/يسار) للأعضاء: الخصيتان testesl/testesr، البربخ epidl/epidr، الحبل المنوي cordl/cordr، الأسهر vasl/vasr، إضافة إلى ملاحظات notes.forhusband (1=الزوج، 0=الزوجة)، فعيادة الذكورة قادرة على إصدار طلبات لطرفي العلاقة معًا، وتُطبع نتائجها عبر قوالب gyna/printinv.html وgyna/print.html المشتركة.uscompleteAnd/ussimpleAnd) مع جدول بصيلات andvisitsficils يخزّن لكل بصيلة الاسم/الطول/العرض/الحجم وجانبها (type 0=يسار/1=يمين) مرتبطة بـandvisitsusid.andvisitsgenetictesting): يخزّن نتيجة الخريطة الكروموسومية chromosome (1=طبيعي، 2=غير طبيعي) وحذف كروموسوم Y الدقيق azf (1=طبيعي، 2=حذف Deletion)، وتُترجم القيم عند الطباعة في printselected.and_visits.php?patientid=… ← تحميل كل التشخيصات/الشكاوى والأشعة والتحاليل المرجعية.newrow → R::dispense('andvisits')) ثم تحرير الحقول inline عبر update (تحديث عمود واحد لكل نداء).addray → صفوف في andvisitsrays) و/أو تحاليل (addinvestigation → andvisitsinvestigation مع دعم باقات الفحوصات invoffer/invofferdetails) و/أو روشتة (andvisitsdrugs).forhusband.del (تعيين deleted = 1).كنترولر raysdept يمثّل قسم أشعة قائمًا بذاته (for_department = 5) يعمل بمنطق طابور عمل المستشفى عبر جدول visits المشترك. الطلب يُنشأ كزيارة موجّهة للقسم، ثم تُنشأ صفوف نتائج في الجدول الجديد raysresults، يُنفّذها فنّي القسم بإدخال النتيجة ورفع الصور، ثم تُؤرشَف.
newvisit ← savenewvisit يُنشئ صف visits بـfor_department = 5 ثم يستدعي sendToDept الذي يولّد صفًا في raysresults لكل أشعة مختارة (rayid, visitid, patientid, doctorid = 0, status = 0, forhusband). يدعم أيضًا «الطلب الداخلي» (raytype = 1) الذي يربط نتيجة الأشعة بسجل في جدول داخلي آخر عبر internaltable/internalrequestid.index يجلب طلبات اليوم غير المنجَزة (status = 0) عبر JOIN بين raysresults وvisits وpatients وpatients_childs، ويميّز المستفيد: زوج/زوجة/طفل (for_husband = 1/0/2).showdetails يعرض صفوف الأشعة للزيارة، وupdate يكتب نص التقرير في rayresult ويضبط تاريخ النتيجة وdoctorid؛ وإذا كان طلبًا داخليًا يُحدِّث الجدول الداخلي المرتبط أيضًا.upload (صورة واحدة في raysresults.rayimg) وuploadMulti (عدة صور في الجدول الجديد raysresults_img المرتبط بـraysresults_id)، مع حذف فعلي للملفات من upload/rayimg.finishRequest يضبط status = 1 لكل صفوف الزيارة، وarchive يعرض المؤرشف، وprintresults يطبع التقرير النهائي مع تحديد الطبيب المُحوِّل (refer_doctor أو for_doctor من آخر زيارة).addrays): يدير فئات الأشعة rayscats (مع displayorder الذي يُستعمل لتجميع العرض في خمس مجموعات) وعناصر الأشعة rays (الاسم، السعر price، المدى الطبيعي range، علم المفضلة favorite). جداول rays/rayscats/raysresults/raysresults_img كلها جديدة (لا مقابل لها في النسخة الأصلية).sendToDept يعالج القسم 12 بنفس النمط لكن في جدول investigationresults (نظير raysresults للتحاليل) — ما يؤكد أن المعمارية الأحدث تعتمد نمط «قسم خدمي» موحّد يقوم على visits.for_department.radiation.phpرغم اسمه، فإن كنترولر radiation.php ليس قسم علاج إشعاعي بل اسمه الداخلي instruction ويعمل على جدول instruction (معروف من النسخة الأصلية) لإدارة تعليمات المرضى وخطابات التحويل بين المستشفيات. يستخدم جداول operationinstructions (جديد) وhospitalnames (معروف) ويولّد خطاب تحويل يجمع التاريخ الولادي/المرضي/الجراحي للمريضة. أُدرج هنا للتوضيح أنه لا علاقة له بقسم الأشعة التشخيصية أعلاه.
| الجدول | جديد/معروف | الغرض | أهم الحقول المستنتجة | العلاقات |
|---|---|---|---|---|
andvisits | جديد | زيارة عيادة ذكورة (شكوى/تشخيص متعدد) | patientid, doctorid, date, complaint, complaintid (CSV), diagnosisid (CSV), diagnosistxt, deleted | patients عبر patientid، awusers عبر doctorid، anddiagnosis/andcomplaint عبر CSV |
andhistory | جديد | التاريخ العام لمريض الذكورة | patientid, doctorid, durationid, fertile, fertiletype, marriage, smoking, smokinglevel, inflammation, trauma, stopped, abortionno, notes, deleted | patients، infertileduration عبر durationid |
andexamination | جديد | الفحص السريري الثنائي الجانب | patientid, doctorid, date, testesl/testesr, epidl/epidr, cordl/cordr, vasl/vasr, notes, deleted | patients، awusers |
andmedicalproblems | جديد | الأمراض الطبية المصاحبة | patientid, diseaseid, date, deleted | medicaldisease (معروف) عبر diseaseid |
anderection | جديد | مشاكل الانتصاب | patientid, diseaseid, date, deleted | erectiondisease عبر diseaseid |
andejaculation | جديد | مشاكل القذف | patientid, diseaseid, date, deleted | ejaculationdisease عبر diseaseid |
andcontraception | جديد | وسائل منع الحمل المستخدمة | patientid, typeid, date, deleted | andcontratype عبر typeid |
andcontratype | جديد | قائمة مرجعية لأنواع منع الحمل | name, deleted | تُقرأ من andcontraception.typeid |
infertileduration | جديد | قائمة مرجعية لمدد العقم | name, deleted | تُقرأ من andhistory.durationid |
erectiondisease | جديد | قائمة مرجعية لأمراض الانتصاب | name, deleted | تُقرأ من anderection.diseaseid |
ejaculationdisease | جديد | قائمة مرجعية لأمراض القذف | name, deleted | تُقرأ من andejaculation.diseaseid |
anddiagnosis | جديد | قائمة مرجعية لتشخيصات الذكورة | name, deleted | تُقرأ من andvisits.diagnosisid (CSV) |
andcomplaint | جديد | قائمة مرجعية لشكاوى الذكورة | name, deleted | تُقرأ من andvisits.complaintid (CSV) |
andvisitssemen | جديد | تحليل سائل منوي مرتبط بزيارة الذكورة | patientid, doctorid, date, conc, nf (حركة), ph, viscosity, aggl, vol, pus, deleted (استنتاج للأسماء من العرض) | patients، awusers |
andvisitsgenetictesting | جديد | فحص جيني (كروموسومي + AZF) | patientid, doctorid, date, chromosome (1/2), azf (1/2), deleted | patients، awusers |
andvisitsus | جديد | سونار ذكوري | patientid, doctorid, date, lfolliclesno/rfolliclesno, حقول الرحم/المبيض المُعاد استخدامها, deleted | andvisitsficils عبر andvisitsusid |
andvisitsficils | جديد | بصيلات السونار الذكوري | andvisitsusid, name, length, width, volume, type (0/1), sysdate | andvisitsus عبر andvisitsusid |
andvisitsdrugs | جديد | روشتة دوائية لزيارة الذكورة | patientid, doctorid, date, drugid, forhusband, deleted | drugs عبر drugid |
andvisitsrays | جديد | طلب أشعة من زيارة الذكورة | patientid, doctorid, date, rayid, forhusband, deleted | rays عبر rayid |
andvisitsinvestigation | جديد | طلب تحاليل من زيارة الذكورة | patientid, doctorid, date, investid, offer_id, forhusband, deleted | invests، invoffer عبر offer_id |
rays | جديد | كتالوج عناصر الأشعة | name, rayscatid, price, range, favorite, deleted | rayscats عبر rayscatid |
rayscats | جديد | فئات الأشعة | name, displayorder, deleted | أب لـ rays |
raysresults | جديد | سجل تنفيذ/تقرير طلب الأشعة (قلب طابور القسم) | visitid, patientid, rayid, raytype, internaltable, internalrequestid, rayresult, rayimg, doctorid, status (0/1), forhusband, date, deleted | visits عبر visitid، rays عبر rayid، raysresults_img |
raysresults_img | جديد | صور متعددة لنتيجة الأشعة | raysresults_id, rayimg, deleted | raysresults عبر raysresults_id |
investigationresults | جديد | نظير raysresults لقسم التحاليل (department 12) | visitid, patientid, investid, invtype, internaltable, internalrequestid, doctorid, forhusband, date, deleted | visits، invests |
patients_childs | جديد | أبناء المريضة كمستفيد ثالث للطلب | child_name, gender (استنتاج) | تُربط بـvisits.child |
operationinstructions | جديد | تعليمات العمليات لخطاب التحويل | insttext, deleted | تُستخدم في radiation.php (instruction) |
invoffer / invofferdetails | جديد | باقات الفحوصات وتفاصيلها | active, del / invoffer_id, inv_id, price, del | invests عبر inv_id |
medicaldisease, instruction, hospitalnames, visits, invests, investcats, detections | معروف | جداول أصلية أُعيد استخدامها (المرض المرجعي، التعليمات، المستشفيات، الزيارات، التحاليل، الكشوف) | — | موجودة في النسخة الأصلية ذات الـ312 جدولًا |
and*) إلى نطاق الهجرة لم تُحصَ في تحليل الـ312 جدولًا.raysresults وinvestigationresults العاملين عبر visits.for_department يؤكد أن النسخة الأحدث تتبنّى معمارية أقسام مستشفى (Order→Perform→Report). ينبغي تصميم وحدة Orders/Results عامة في الـHIS بدل ربط النتائج بشيتات محددة.forhusband + visits.for_husband (زوج/زوجة/طفل عبر patients_childs) تستلزم نموذج «المريض الفعلي للطلب» (Subject) في الـERP يفصل بين حساب الملف ومستفيد الخدمة.raytype/internaltable/internalrequestid تمثّل ربطًا متعدد الأشكال (polymorphic) بين النتيجة وأي جدول مصدر؛ يجب نمذجتها كعلاقة Order↔SourceRef مرنة في تصميم قاعدة البيانات الجديدة.rays/rayscats وinvoffer/invofferdetails تحملان أسعارًا وباقات، ما يربط الأشعة/التحاليل بوحدة الفوترة في الـERP مباشرة.radiation.php = تعليمات/تحويلات وليس علاج إشعاعي؛ يجب عدم إدراجه ضمن نطاق الأشعة في خطة الهجرة.raysresults_img ورفع صور متعددة إلى upload/rayimg يستلزم تخطيط وحدة تخزين/PACS مصغّرة (أو تكامل DICOM) ضمن الـHIS المستهدف (استنتاج).