# H11.0-P10.4-R3 — Oracle Schema Contract Hotfix

## الخطأ
`ORA-00904: "PKG"."IN_OUT_PKG": invalid identifier`

## السبب
تم ربط `IN_OUT_PKG` خطأً بـ `REG_PACKAGES` في `active_base`، رغم أن منطق الإقامة القديم يستخدم علم `IN_OUT_PKG` داخل صفوف `PACC_PAT_RES_TRAN`.

## التعديل
- إزالة `NVL(pkg.in_out_pkg, 0) AS package_in_out_flag`.
- إزالة `LEFT JOIN REG_PACKAGES pkg` من `active_base`.
- استبدال كل استخدامات `ap.package_in_out_flag` داخل مصدر الإقامة بـ `NVL(r.in_out_pkg, 0)`.
- إضافة `validateOracleContract()` و`oracleContractValidationSql()` إلى Repository.
- إضافة أداة read-only: `tools/test_inpatient_daily_revenue_oracle_contract.php`.
- Patch Center يشغّل اختبار Oracle حيًا مع `WHERE 1 = 0` حتى يتم فحص identifiers دون جلب بيانات المرضى.

## الثوابت التي لم تتغير
- 365: First Admission Date و 4,746.87 / 2,373.00.
- 170 TCS: 2,250 / 1,950 / 1,750.
- Cash: Patient Share / LOS.
- Other Insurance: Company Share / LOS.
- 10 revenue source categories preserved.
- Direct legacy procedure calls: NONE.
- Oracle writes: NONE.
- DDL / schema changes: NONE.

## الاختبارات المحلية
- 23/23 PASS — CLI calculation/architecture/export regression.
- 31/31 PASS — QA contract.
- PHP lint PASS.
- Static Oracle contract regression gates PASS.

## اختبار البيئة الفعلية
لا يمكن إثبات اتصال Oracle الحي من بيئة إنشاء الحزمة. لذلك Full Test على جهاز NJCH يتضمن اختبارًا ثالثًا إلزاميًا يمرر SQL الكامل إلى Oracle مع zero-row output. نجاحه يعني أن ORA-00904 وأخطاء identifiers المشابهة لم تعد موجودة في العقد الحالي.
