<?php
/**
 * إصلاح أسماء الفحوصات والفئات والمدى المرجعي - استخدم إذا ظهرت (????????)
 * بسبب تشغيل الترحيل عبر PowerShell. نفّذ: php fix_test_names.php
 */
$config = require __DIR__ . '/config/config.php';
$pdo = new PDO(
    'mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['name'] . ';charset=utf8mb4',
    $config['db']['user'],
    $config['db']['pass'],
    [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
$pdo->exec('SET NAMES utf8mb4');

$categories = [
    'تعداد الدم الكامل', 'كيمياء الدم', 'وظائف الكبد', 'وظائف الكلى',
    'سكر الدم والدهون', 'هرمونات', 'تحليل البول', 'تحليل البراز',
    'فصيلة الدم والمجموعة', 'تخثر الدم', 'المناعة والفيروسات',
    'زراعة وحساسية', 'غازات الدم', 'معادن وفيتامينات', 'تحاليل خاصة'
];
$stmtCat = $pdo->prepare('UPDATE test_categories SET name = ? WHERE id = ?');
foreach ($categories as $i => $name) {
    $stmtCat->execute([$name, $i + 1]);
}

$tests = [
    'CBC-HB' => 'هيموجلوبين', 'CBC-RBC' => 'عدد كريات الدم الحمراء', 'CBC-WBC' => 'عدد كريات الدم البيضاء',
    'CBC-PLT' => 'الصفائح الدموية', 'CBC-HCT' => 'الهيماتوكريت', 'CBC-MCV' => 'متوسط حجم كرية الدم',
    'CBC-MCH' => 'متوسط هيموجلوبين الكرية', 'CBC-MCHC' => 'تركيز هيموجلوبين الكرية',
    'CBC-RDW' => 'توزيع كريات الدم الحمراء', 'CBC-DIFF' => 'المفصّل التفريقي للدم', 'CBC-ESR' => 'معدل sedimentation الخلايا',
    'CHEM-GLU' => 'سكر الدم الصائم', 'CHEM-GLU-R' => 'سكر الدم العشوائي', 'CHEM-GTT' => 'اختبار تحمّل الجلوكوز',
    'CHEM-HBA1C' => 'الهيموجلوبين السكري', 'CHEM-UREA' => 'اليوريا', 'CHEM-CREAT' => 'الكرياتينين', 'CHEM-URIC' => 'حمض اليوريك',
    'CHEM-BIL-T' => 'البيليروبين الكلي', 'CHEM-BIL-D' => 'البيليروبين المباشر', 'CHEM-AST' => 'أنزيم AST', 'CHEM-ALT' => 'أنزيم ALT',
    'CHEM-ALP' => 'الفوسفاتاز القلوي', 'CHEM-ALB' => 'الألبومين', 'CHEM-TP' => 'البروتين الكلي',
    'CHEM-CHOL' => 'الكوليسترول الكلي', 'CHEM-TG' => 'الدهون الثلاثية', 'CHEM-HDL' => 'الكوليسترول الحميد HDL', 'CHEM-LDL' => 'الكوليسترول الضار LDL',
    'CHEM-CK' => 'كيناز الكرياتين', 'CHEM-LDH' => 'لاكتات ديهيدروجيناز', 'CHEM-AMYL' => 'الأميلاز', 'CHEM-LIP' => 'الليباز',
    'LFT-BIL-T' => 'البيليروبين الكلي', 'LFT-BIL-D' => 'البيليروبين المباشر', 'LFT-AST' => 'أنزيم AST', 'LFT-ALT' => 'أنزيم ALT',
    'LFT-ALP' => 'الفوسفاتاز القلوي', 'LFT-ALB' => 'الألبومين', 'LFT-GGT' => 'جاما غلوتاميل ترانسفيراز',
    'RFT-UREA' => 'اليوريا', 'RFT-CREAT' => 'الكرياتينين', 'RFT-EGFR' => 'معدل الترشيح الكبيبي',
    'RFT-ELECT' => 'الشوارد (صوديوم، بوتاسيوم، كلوريد)', 'GLU-F' => 'سكر الدم الصائم', 'GLU-R' => 'سكر الدم العشوائي',
    'GLU-HBA1C' => 'الهيموجلوبين السكري', 'LIP-CHOL' => 'الكوليسترول الكلي', 'LIP-TG' => 'الدهون الثلاثية',
    'LIP-HDL' => 'الكوليسترول الحميد', 'LIP-LDL' => 'الكوليسترول الضار', 'HORM-TSH' => 'هرمون TSH',
    'HORM-T3' => 'ثلاثي يود الثيرونين', 'HORM-T4' => 'ثيروكسين T4', 'HORM-FT3' => 'T3 الحر', 'HORM-FT4' => 'T4 الحر',
    'HORM-CORT' => 'الكورتيزول', 'HORM-PROL' => 'البرولاكتين', 'HORM-FSH' => 'الهرمون المنبه للحوصلة', 'HORM-LH' => 'الهرمون اللوتيني',
    'HORM-INS' => 'الأنسولين', 'HORM-VD' => 'فيتامين د', 'HORM-B12' => 'فيتامين ب12', 'HORM-FER' => 'الفيريتين',
    'UA-COMP' => 'تحليل البول الكامل', 'UA-COLOR' => 'لون البول', 'UA-PH' => 'حموضة البول', 'UA-SG' => 'الثقل النوعي',
    'UA-PROT' => 'البروتين في البول', 'UA-GLU' => 'السكر في البول', 'UA-BIL' => 'البيليروبين في البول',
    'UA-WBC' => 'كريات بيضاء في البول', 'UA-RBC' => 'كريات حمراء في البول', 'UA-BAC' => 'زراعة البول',
    'STOOL-OC' => 'فحص البراز الكامل', 'STOOL-OB' => 'الدم الخفي في البراز', 'STOOL-OVA' => 'فحص الطفيليات والبيض', 'STOOL-CUL' => 'زراعة البراز',
    'BLOOD-ABO' => 'فصيلة الدم ABO', 'BLOOD-RH' => 'عامل ريسس', 'BLOOD-CROSS' => 'التوافق للمتبرع',
    'COAG-PT' => 'زمن البروثرومبين', 'COAG-INR' => 'نسبة INR', 'COAG-APTT' => 'زمن الثرومبوبلاستين الجزئي',
    'COAG-FIB' => 'الفايبرينوجين', 'COAG-DD' => 'D-Dimer', 'VIR-HBSAG' => 'سطح فيروس B', 'VIR-HBAB' => 'أضداد فيروس B',
    'VIR-HCV' => 'فيروس C', 'VIR-HIV' => 'فيروس نقص المناعة', 'VIR-CMV' => 'الفيروس المضخم للخلايا', 'VIR-RUB' => 'الحصبة الألمانية',
    'IMM-CRP' => 'البروتين التفاعلي C', 'IMM-ASO' => 'مضادات الستربتولايزين', 'IMM-RF' => 'العامل الروماتويدي', 'IMM-ANA' => 'الأجسام المضادة للنواة',
    'CULT-BLOOD' => 'زراعة الدم', 'CULT-URINE' => 'زراعة البول', 'CULT-STOOL' => 'زراعة البراز',
    'CULT-SENS' => 'اختبار الحساسية للمضادات', 'CULT-SPUTUM' => 'زراعة البلغم', 'CULT-TB' => 'زراعة السل',
    'ABG-PH' => 'رقم الحموضة', 'ABG-PCO2' => 'ضغط ثاني أكسيد الكربون', 'ABG-PO2' => 'ضغط الأكسجين',
    'ABG-HCO3' => 'البيكربونات', 'ABG-BE' => 'الفقاعة القاعدية', 'ABG-SAT' => 'تشبع الأكسجين',
    'MIN-NA' => 'الصوديوم', 'MIN-K' => 'البوتاسيوم', 'MIN-CL' => 'الكلوريد', 'MIN-CA' => 'الكالسيوم',
    'MIN-MG' => 'المغنيسيوم', 'MIN-P' => 'الفوسفات', 'MIN-IRON' => 'الحديد', 'MIN-TIBC' => 'سعة ربط الحديد', 'MIN-ZN' => 'الزنك',
    'SPEC-PSA' => 'مستضد البروستاتا', 'SPEC-AFP' => 'ألفا فيتوبروتين', 'SPEC-CEA' => 'المستضد السرطاني الجنيني',
    'SPEC-BHCG' => 'هرمون الحمل Beta HCG', 'SPEC-TROP' => 'التروبونين', 'SPEC-BNP' => 'الببتيد الدماغي المدر للصوديوم',
    'SPEC-HBA1C' => 'الهيموجلوبين السكري', 'SPEC-HOMOC' => 'الهوموسيستين',
];
$stmtTest = $pdo->prepare('UPDATE tests SET name = ? WHERE test_code = ?');
foreach ($tests as $code => $name) {
    $stmtTest->execute([$name, $code]);
}

// إصلاح المدى المرجعي والوحدة (علامات استفهام بسبب µ والعربية)
$refFix = [
    ['CBC-RBC', 'million/µL', '4-6'], ['CBC-WBC', '/µL', '4000-11000'], ['CBC-PLT', '/µL', '150000-400000'],
    ['HORM-T4', 'µg/dL', '5-12'], ['HORM-CORT', 'µg/dL', '6-23'], ['HORM-INS', 'µIU/mL', '2-25'],
    ['COAG-DD', 'µg/mL', '<0.5'], ['MIN-IRON', 'µg/dL', '60-170'], ['MIN-TIBC', 'µg/dL', '250-370'],
    ['MIN-ZN', 'µg/dL', '60-120'], ['SPEC-HOMOC', 'µmol/L', '5-15'],
    ['UA-COLOR', null, 'أصفر فاتح'], ['UA-PROT', null, 'سالب'], ['UA-GLU', null, 'سالب'],
    ['UA-BIL', null, 'سالب'], ['UA-BAC', null, 'بدون نمو'], ['STOOL-OB', null, 'سالب'],
    ['STOOL-OVA', null, 'سالب'], ['STOOL-CUL', null, 'بدون ممرضات'], ['BLOOD-RH', null, 'موجب/سالب'],
    ['BLOOD-CROSS', null, 'متوافق'], ['VIR-HBSAG', null, 'سالب'], ['VIR-HBAB', null, 'سالب/موجب'],
    ['VIR-HCV', null, 'سالب'], ['VIR-HIV', null, 'سالب'], ['VIR-CMV', null, 'سالب/موجب'],
    ['VIR-RUB', null, 'سالب/موجب'], ['IMM-ANA', null, 'سالب'], ['CULT-BLOOD', null, 'بدون نمو'],
    ['CULT-URINE', null, 'بدون نمو'], ['CULT-STOOL', null, 'بدون ممرضات'],
    ['CULT-SPUTUM', null, 'فلورا طبيعية'], ['CULT-TB', null, 'بدون نمو'],
];
$stmtRef = $pdo->prepare('UPDATE tests SET unit = COALESCE(?, unit), reference_range = COALESCE(?, reference_range) WHERE test_code = ?');
foreach ($refFix as $f) {
    $stmtRef->execute([$f[1], $f[2], $f[0]]);
}

echo "تم إصلاح " . count($tests) . " فحصاً و " . count($categories) . " فئة والمدى المرجعي بنجاح.\n";
