"""
Cancer Patient Management System - Seed Data
Based on real oncology case studies from medical literature
"""
import sqlite3, os, sys
from datetime import datetime, date, timedelta
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent))
from database import get_connection, hash_password, init_db, DB_PATH

def seed_users(conn):
    users = [
        ("admin","admin123","admin","System Administrator","admin@hospital.fr","+33145678900","Administration",None),
        ("dr.martin","doctor123","doctor","Dr. Sophie Martin","s.martin@hospital.fr","+33145678901","Oncology","Medical Oncology"),
        ("dr.dupont","doctor123","doctor","Dr. Jean-Pierre Dupont","jp.dupont@hospital.fr","+33145678902","Oncology","Radiation Oncology"),
        ("dr.bernard","doctor123","doctor","Dr. Marie Bernard","m.bernard@hospital.fr","+33145678903","Hematology","Hematology-Oncology"),
        ("dr.lefevre","doctor123","doctor","Dr. Pierre Lefevre","p.lefevre@hospital.fr","+33145678904","Surgical Oncology","Surgical Oncology"),
        ("inf.moret","nurse123","nurse","Claire Moret","c.moret@hospital.fr","+33145678910","Oncology Ward A",None),
        ("inf.petit","nurse123","nurse","Lucas Petit","l.petit@hospital.fr","+33145678911","Oncology Ward A",None),
        ("inf.roux","nurse123","nurse","Emma Roux","e.roux@hospital.fr","+33145678912","Oncology Ward B",None),
        ("inf.garcia","nurse123","nurse","Antoine Garcia","a.garcia@hospital.fr","+33145678913","Hematology Ward",None),
        ("patient.durand","patient123","patient","Marie Durand","m.durand@email.fr","+33612345601",None,None),
        ("patient.moreau","patient123","patient","Jean Moreau","j.moreau@email.fr","+33612345602",None,None),
        ("patient.laurent","patient123","patient","Pierre Laurent","p.laurent@email.fr","+33612345603",None,None),
        ("patient.simon","patient123","patient","Isabelle Simon","i.simon@email.fr","+33612345604",None,None),
        ("patient.robert","patient123","patient","Francois Robert","f.robert@email.fr","+33612345605",None,None),
        ("patient.blanc","patient123","patient","Catherine Blanc","c.blanc@email.fr","+33612345606",None,None),
        ("patient.guerin","patient123","patient","Nicolas Guerin","n.guerin@email.fr","+33612345607",None,None),
        ("patient.fournier","patient123","patient","Helene Fournier","h.fournier@email.fr","+33612345608",None,None),
    ]
    c = conn.cursor()
    for u in users:
        pw_hash, salt = hash_password(u[1])
        c.execute("INSERT OR IGNORE INTO users (username,password_hash,salt,role,full_name,email,phone,department,specialization) VALUES (?,?,?,?,?,?,?,?,?)",
                  (u[0],pw_hash,salt,u[2],u[3],u[4],u[5],u[6],u[7]))
    conn.commit()
    print(f"  [OK] {len(users)} users")

def seed_patients(conn):
    patients = [
        ("ONC-2024-001","Marie","Durand","1968-03-15","F","Breast Cancer","IIB","2024-01-10",
         "Invasive ductal carcinoma, HER2-positive, ER+/PR+. Tumor 3.2cm, 2 positive axillary nodes. Ki-67: 35%. No distant metastases.",
         "Penicillin, Sulfa drugs","Hypertension, Type 2 Diabetes","Pierre Durand","+33612345610","14 Rue de la Paix, 75002 Paris","INS-CPS-78901234",2,6,"in_treatment"),
        ("ONC-2024-002","Jean","Moreau","1955-07-22","M","Lung Cancer","IIIA","2024-02-05",
         "NSCLC adenocarcinoma. EGFR wild-type, ALK-negative, PD-L1 TPS 60%. Tumor 4.5cm with N2 nodes.",
         "Morphine","COPD, Coronary artery disease","Claire Moreau","+33612345611","8 Av Victor Hugo, 69003 Lyon","INS-CPS-78901235",2,6,"in_treatment"),
        ("ONC-2024-003","Pierre","Laurent","1962-11-08","M","Colorectal Cancer","IIIC","2024-03-12",
         "Sigmoid colon adenocarcinoma. pMMR, KRAS G12D, BRAF wild-type. T4bN2a, 5/18 positive nodes. CEA 45 ng/mL.",
         "Iodine contrast dye","None","Sophie Laurent","+33612345612","22 Rue des Lilas, 33000 Bordeaux","INS-CPS-78901236",2,7,"in_treatment"),
        ("ONC-2024-004","Isabelle","Simon","1975-05-30","F","Prostate Cancer","IV","2024-01-25",
         "mCRPC. Gleason 9, PSA 125 ng/mL. Bone metastases (lumbar spine, pelvis). Prior ADT + docetaxel.",
         "None known","Osteoporosis","Marc Simon","+33612345613","5 Place Bellecour, 69002 Lyon","INS-CPS-78901237",4,8,"in_treatment"),
        ("ONC-2024-005","Francois","Robert","1958-09-12","M","Acute Myeloid Leukemia","de novo","2024-04-01",
         "AML normal karyotype. NPM1+, FLT3-ITD+ (high ratio). WBC 85,000/uL. BM blasts 78%. ECOG 1.",
         "Cytarabine (skin reaction)","None","Marie Robert","+33612345614","18 Quai de la Pecherie, 06000 Nice","INS-CPS-78901238",3,9,"in_treatment"),
        ("ONC-2024-006","Catherine","Blanc","1990-12-03","F","Hodgkin Lymphoma","IIB","2024-05-15",
         "Classical HL, nodular sclerosis. Bulky mediastinal mass 8cm. B symptoms. IPS 3.",
         "None known","None","Jean Blanc","+33612345615","31 Rue Saint-Ferreol, 13001 Marseille","INS-CPS-78901239",3,9,"in_treatment"),
        ("ONC-2024-007","Nicolas","Guerin","1972-04-18","M","Pancreatic Cancer","IIIB","2024-02-20",
         "PDAC head of pancreas. Borderline resectable. CA 19-9: 890. KRAS G12V. SMA abutment <180 deg.",
         "Oxaliplatin (neuropathy)","Diabetes, Chronic pancreatitis","Laura Guerin","+33612345616","7 Cours Mirabeau, 13100 Aix","INS-CPS-78901240",2,6,"in_treatment"),
        ("ONC-2024-008","Helene","Fournier","1979-08-25","F","Ovarian Cancer","IV","2024-03-08",
         "HGSC ovary. BRCA1 germline+. CA-125: 1250. Pleural effusion with malignant cells. Suboptimal debulking.",
         "Carboplatin (anaphylaxis)","Depression (Sertraline)","Thomas Fournier","+33612345617","12 Rue de la Republique, 31000 Toulouse","INS-CPS-78901241",4,8,"in_treatment"),
    ]
    c = conn.cursor()
    for p in patients:
        c.execute("INSERT OR IGNORE INTO patients (patient_code,first_name,last_name,date_of_birth,gender,cancer_type,cancer_stage,diagnosis_date,diagnosis_notes,allergies,comorbidities,emergency_contact_name,emergency_contact_phone,address,insurance_id,assigned_doctor_id,assigned_nurse_id,status) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", p)
    conn.commit()
    print(f"  [OK] {len(patients)} patients")

def seed_medications(conn):
    c = conn.cursor()
    meds = [
        # P1: Breast Cancer HER2+ - TCHP
        (1,"Docetaxel","Taxane","75","mg/m2","IV","Every 21 days","2024-02-01",None,2,"Chemo - primary cytotoxic","Neutropenia, neuropathy, alopecia","Hepatic impairment","CBC, LFTs","active","Cycle 1/6"),
        (1,"Carboplatin","Platinum","AUC 6","mg","IV","Every 21 days","2024-02-01",None,2,"Chemo - platinum crosslinker","Thrombocytopenia, nausea, nephrotoxicity","CrCl<15","Creatinine, CBC","active","Calvert formula"),
        (1,"Trastuzumab","HER2 mAb","8mg/kg load then 6mg/kg","mg","IV","Every 21 days","2024-02-01",None,2,"HER2 blockade","Cardiomyopathy, infusion reactions","None","LVEF q3mo","active","Hold if LVEF drops >16%"),
        (1,"Pertuzumab","HER2 mAb","840mg load then 420mg","mg","IV","Every 21 days","2024-02-01",None,2,"HER2 dimerization inhibitor","Diarrhea, neutropenia","None","LVEF","active","With trastuzumab"),
        (1,"Ondansetron","Antiemetic","8","mg","IV","Pre-chemo PRN","2024-02-01",None,2,"CINV prevention","Headache, constipation","Long QT","ECG","active","30min pre-chemo"),
        (1,"Filgrastim","G-CSF","5","mcg/kg","SC","Daily x7-10d post-chemo","2024-02-08",None,2,"Neutropenia prevention","Bone pain","None","CBC","active","Start 24-72h post-chemo"),
        # P2: Lung Cancer - CRT + Durvalumab
        (2,"Cisplatin","Platinum","50","mg/m2","IV","Weekly during RT","2024-03-01",None,2,"Radiosensitizer","Nephrotoxicity, nausea, ototoxicity","CrCl<60","Creatinine, Mg2+, Ca2+","active","1L NS hydration pre/post"),
        (2,"Etoposide","Topoisomerase II","50","mg/m2","IV","Days 1-5 q21d","2024-03-01",None,2,"Chemo - DNA topo II","Myelosuppression, alopecia","Myelosuppression","CBC 2x/wk","active","Over 30-60min"),
        (2,"Durvalumab","PD-L1","1500","mg","IV","Every 28d post-CRT","2024-05-15",None,2,"Immunotherapy consolidation","Pneumonitis, hepatitis, colitis, endocrinopathies","Autoimmune disease","TSH, LFTs, imaging","active","Continue 12mo max"),
        (2,"Dexamethasone","Steroid","8","mg","IV","Pre-chemo +2d","2024-03-01",None,2,"Antiemetic","Hyperglycemia, insomnia","Fungal infections","Blood glucose","active","Monitor glucose in diabetic"),
        (2,"Pantoprazole","PPI","40","mg","IV","Daily during chemo","2024-03-01",None,2,"Gastroprotection","Headache, diarrhea","None","Magnesium","active","During steroids + chemo"),
        # P3: Colorectal - FOLFOX + Bevacizumab
        (3,"Oxaliplatin","Platinum","85","mg/m2","IV","Every 14d","2024-04-01",None,2,"Chemo - 3rd gen platinum","Neuropathy (cold-triggered), thrombocytopenia","Prior neuropathy","CBC, LFTs, neuro exam","active","Avoid cold 5d post-infusion"),
        (3,"Leucovorin","Folate","400","mg/m2","IV","Every 14d","2024-04-01",None,2,"5-FU enhancer","Allergic reactions (rare)","None","None","active","With oxaliplatin over 2h"),
        (3,"5-Fluorouracil","Antimetabolite","400mg/m2 bolus + 2400mg/m2 46h","mg","IV","Every 14d","2024-04-01",None,2,"TS inhibitor","Myelosuppression, mucositis, diarrhea","DPD deficiency","DPD genotype, CBC","active","DPD tested - normal"),
        (3,"Bevacizumab","VEGF mAb","5","mg/kg","IV","Every 14d","2024-04-01",None,2,"Anti-angiogenesis","Hypertension, hemorrhage, GI perforation","Recent surgery, bleeding","BP, urine protein","active","Hold 28d around surgery"),
        # P4: mCRPC - Cabazitaxel
        (4,"Cabazitaxel","Taxane","25","mg/m2","IV","Every 21d","2024-06-01",None,4,"Chemo post-docetaxel","Neutropenia, diarrhea, fatigue","Hepatic impairment, neutrophils<1500","CBC, LFTs","active","Pre-med dexamethasone"),
        (4,"Prednisone","Steroid","10","mg","PO","BID continuous","2024-06-01",None,4,"Palliative","Hyperglycemia, osteoporosis","Fungal infections","Glucose, bone density","active","TROPIC protocol"),
        (4,"Enzalutamide","Anti-androgen","160","mg","PO","Daily","2024-04-15",None,4,"AR inhibitor","Fatigue, hot flashes, seizures (rare)","None","LFTs, BP","active","Monitor for PRES"),
        # P5: AML - 7+3
        (5,"Cytarabine","Antimetabolite","100","mg/m2/d","IV","CI days 1-7","2024-04-10",None,3,"AML induction (the 7)","Pancytopenia, mucositis, cerebellar toxicity","None for std dose","CBC daily, LFTs","active","Expected 2-3wk nadir"),
        (5,"Daunorubicin","Anthracycline","60","mg/m2","IV","Days 1-3","2024-04-10",None,3,"AML induction (the 3)","Cardiotoxicity, myelosuppression","LVEF<50%","LVEF, ECG, CBC","active","Max cum. 550mg/m2"),
        (5,"Allopurinol","XOI","300","mg","PO","Daily x7d","2024-04-09",None,3,"TLS prophylaxis","Rash (SJS), hepatotoxicity","Prior hypersensitivity","Renal, uric acid","active","Start 24-48h pre-chemo"),
        (5,"Acyclovir","Antiviral","400","mg","PO","BID","2024-04-10",None,3,"HSV/VZV prophylaxis","Nephrotoxicity","None","Renal function","active","During neutropenia"),
        # P6: Hodgkin - ABVD
        (6,"Doxorubicin","Anthracycline","25","mg/m2","IV","Days 1,15 q28d","2024-06-01",None,3,"ABVD-A","Cardiotoxicity, myelosuppression","LVEF<50%","LVEF, CBC","active","Max dose tracked"),
        (6,"Bleomycin","Antibiotic","10","units/m2","IV","Days 1,15 q28d","2024-06-01",None,3,"ABVD-B","Pulmonary fibrosis","Pulmonary disease","PFTs, SpO2","active","Max 400 units lifetime"),
        (6,"Vinblastine","Vinca","6","mg/m2","IV","Days 1,15 q28d","2024-06-01",None,3,"ABVD-V","Neuropathy, constipation","Demyelinating","Neuro exam","active","Never intrathecal"),
        (6,"Dacarbazine","Alkylating","375","mg/m2","IV","Days 1,15 q28d","2024-06-01",None,3,"ABVD-D","Severe nausea, myelosuppression","Hepatic impairment","LFTs","active","Highly emetogenic"),
        # P7: Pancreatic - mFOLFIRINOX
        (7,"Oxaliplatin","Platinum","85","mg/m2","IV","Every 14d","2024-03-10",None,2,"mFOLFIRINOX","Neuropathy, thrombocytopenia","Prior neuropathy","CBC, LFTs, neuro","active","Grade 1 neuropathy at cycle 3"),
        (7,"Leucovorin","Folate","400","mg/m2","IV","Every 14d","2024-03-10",None,2,"5-FU enhancer","Allergic (rare)","None","None","active","With oxaliplatin 2h"),
        (7,"5-Fluorouracil","Antimetabolite","400+2400","mg/m2","IV","Every 14d","2024-03-10",None,2,"TS inhibitor","Mucositis, diarrhea, hand-foot","DPD deficiency","DPD, CBC","active","Elastomeric pump 46h"),
        (7,"Irinotecan","Topoisomerase I","180","mg/m2","IV","Every 14d","2024-03-10",None,2,"mFOLFIRINOX","Severe diarrhea, myelosuppression","UGT1A1*28 homozygous","UGT1A1, CBC","active","Loperamide protocol for late diarrhea"),
        (7,"Atropine","Anticholinergic","0.25","mg","IV","PRN early diarrhea","2024-03-10",None,2,"Irinotecan cholinergic tx","Tachycardia, dry mouth","Glaucoma","HR","active","Max 1mg total"),
        # P8: Ovarian - Carbo/Paclitaxel then Olaparib
        (8,"Paclitaxel","Taxane","175","mg/m2","IV","Every 21d","2024-04-15",None,4,"First-line ovarian","Neuropathy, myelosuppression, arthralgias","Neuropathy G>2","CBC, neuro, vitals q15min","active","Pre-med: dexa 20mg PO, diphenhydramine, famotidine"),
        (8,"Cisplatin","Platinum","75","mg/m2","IV","Every 21d (replaced carbo)","2024-04-15",None,4,"Switched from carbo after anaphylaxis","Nephrotoxicity, nausea, ototoxicity","CrCl<60","Creatinine, electrolytes","active","Aggressive hydration 1L NS"),
        (8,"Ondansetron","Antiemetic","8","mg","IV","Pre + q8h","2024-04-15",None,4,"CINV (cisplatin = HEC)","Headache, constipation","Long QT","ECG","active","Triple antiemetic regimen"),
        (8,"Dexamethasone","Steroid","12","mg","IV","Pre +2d","2024-04-15",None,4,"Antiemetic","Hyperglycemia","Fungal infections","Glucose","active","Higher dose for HEC"),
        (8,"Olaparib","PARP inhibitor","300","mg","PO","BID","2024-07-01",None,4,"Maintenance BRCA1+","Anemia, nausea, fatigue","None","CBC monthly","active","SOLO-1 basis. Continue until progression."),
    ]
    for m in meds:
        c.execute("INSERT OR IGNORE INTO medications (patient_id,drug_name,drug_class,dosage,unit,route,frequency,start_date,end_date,prescribing_doctor_id,indication,side_effects,contraindications,monitoring_required,status,notes) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", m)
    conn.commit()
    print(f"  [OK] {len(meds)} medications")

def seed_treatment_cycles(conn):
    c = conn.cursor()
    cycles = [
        (1,"TCHP",1,6,"2024-02-01","2024-02-02","Docetaxel+Carbo+Trast+Pert","Baseline imaging",1,"G1 nausea, G1 fatigue",None,"completed",2,"Cycle 1 well tolerated"),
        (1,"TCHP",2,6,"2024-02-22","2024-02-23","Docetaxel+Carbo+Trast+Pert",None,2,"G2 neutropenia, alopecia",None,"completed",2,"ANC nadir 1.2"),
        (1,"TCHP",3,6,"2024-03-15","2024-03-16","Docetaxel+Carbo+Trast+Pert","PET: partial response",1,"Mild neuropathy",None,"completed",2,"Good interim response"),
        (2,"CRT",1,2,"2024-03-01","2024-03-05","Cisplatin+Etoposide+RT",None,2,"G2 nausea, G1 esophagitis",None,"completed",2,"Hydration tolerated"),
        (2,"CRT",2,2,"2024-03-22","2024-03-26","Cisplatin+Etoposide+RT","CT: responding",2,"G2 esophagitis",None,"completed",2,"Continue to 60Gy"),
        (5,"7+3",1,1,"2024-04-10","2024-04-17","Cytarabine+Daunorubicin",None,3,"Pancytopenia, febrile neutropenia day 8",None,"completed",3,"Abx started. Cultures negative."),
        (5,"7+3",2,1,"2024-05-20",None,"FLAG-Ida pending","BM: 12% blasts (insufficient)",None,None,"Re-induction needed","planned",3,"Per ELN guidelines"),
        (6,"ABVD",1,6,"2024-06-01","2024-06-02","Doxo+Bleo+Vin+Dac",None,1,"G1 nausea",None,"completed",3,"First ABVD tolerated"),
        (6,"ABVD",2,6,"2024-06-29","2024-06-30","Doxo+Bleo+Vin+Dac","PET: Deauville 3",2,"G2 neutropenia, pulmonary symptoms","Bleo held","completed",3,"PFTs ordered"),
    ]
    for tc in cycles:
        c.execute("INSERT OR IGNORE INTO treatment_cycles (patient_id,protocol_name,cycle_number,total_cycles,start_date,end_date,medications_used,response_assessment,toxicity_grade,side_effects_reported,dose_modifications,status,administered_by,notes) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)", tc)
    conn.commit()
    print(f"  [OK] {len(cycles)} treatment cycles")

def seed_vitals_labs_symptoms_alerts(conn):
    c = conn.cursor()
    # Vitals
    vitals = [
        (1,"2024-02-01 08:30",6,36.8,78,130,82,18,98.5,68.5,165,25.2,2,"Pre-chemo baseline"),
        (1,"2024-03-15 09:00",6,36.9,80,132,84,18,98.2,66.5,165,24.4,2,"Pre-cycle 4"),
        (2,"2024-03-01 07:30",6,36.6,82,145,90,22,95.0,78.0,178,24.6,3,"Baseline - COPD"),
        (2,"2024-03-15 08:00",6,37.8,95,140,88,24,93.5,77.2,178,24.3,5,"O2 dropping"),
        (5,"2024-04-10 06:00",9,37.0,88,125,80,18,98.0,82.0,180,25.3,0,"Pre-induction"),
        (5,"2024-04-17 22:00",9,39.2,120,110,68,28,94.5,80.8,180,24.9,8,"CRITICAL: febrile neutropenia"),
        (8,"2024-04-15 08:00",8,36.7,75,122,78,16,98.8,62.0,168,22.0,2,"Pre-chemo"),
        (8,"2024-05-27 09:00",8,37.5,88,128,82,20,97.8,60.8,168,21.5,4,"Neuropathy noted"),
    ]
    for v in vitals:
        c.execute("INSERT OR IGNORE INTO vital_signs (patient_id,recorded_at,recorded_by,temperature,heart_rate,blood_pressure_systolic,blood_pressure_diastolic,respiratory_rate,oxygen_saturation,weight_kg,height_cm,bmi,pain_score,notes) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)", v)
    # Labs
    labs = [
        (1,"CBC","2024-02-01",4.2,"x10^3/uL","4.5-11.0",1,"Hospital Lab",2,"WBC slightly low"),
        (1,"ANC","2024-02-15",1.8,"x10^3/uL","2.0-7.0",1,"Hospital Lab",2,"G1 neutropenia"),
        (1,"HER2 IHC","2024-01-15",3.0,"0-3+","0-1+",1,"Pathology",2,"HER2 3+ confirmed"),
        (1,"CA 15-3","2024-01-20",45.2,"U/mL","<30",1,"Hospital Lab",2,"Elevated baseline"),
        (1,"LVEF","2024-02-01",62.0,"%",">50%",0,"Cardiology",2,"Normal baseline"),
        (2,"EGFR","2024-02-10",None,"Qual","Wild-type",0,"Molecular Lab",2,"No TKI indicated"),
        (2,"PD-L1","2024-02-10",60.0,"TPS%",">50%",0,"Pathology",2,"High expression"),
        (2,"PFTs FEV1","2024-02-15",68.0,"% pred",">80%",1,"Pulmonology",2,"Reduced - COPD"),
        (3,"CEA","2024-03-15",45.0,"ng/mL","<5.0",1,"Hospital Lab",2,"Elevated CRC marker"),
        (3,"KRAS","2024-03-20",None,"Qual","G12D",1,"Molecular Lab",2,"No anti-EGFR"),
        (3,"DPD genotype","2024-03-25",None,"Qual","Normal",0,"Pharmacogenomics",2,"5-FU safe"),
        (5,"BM Blasts","2024-04-05",78.0,"%","<5%",1,"Hematopathology",3,"AML diagnostic"),
        (5,"FLT3-ITD","2024-04-08",None,"Ratio","Neg",1,"Molecular Lab",3,"High ratio 0.85 - adverse"),
        (5,"WBC","2024-04-01",85000.0,"/uL","4500-11000",1,"Hospital Lab",3,"Leukocytosis - TLS risk"),
        (5,"Uric Acid","2024-04-02",12.5,"mg/dL","3.5-7.2",1,"Hospital Lab",3,"TLS - rasburicase given"),
        (8,"BRCA1","2024-03-20",None,"Qual","Germline pathogenic",1,"Genetics",4,"PARP inhibitor indicated"),
        (8,"CA-125","2024-03-15",1250.0,"U/mL","<35",1,"Hospital Lab",4,"Markedly elevated"),
        (8,"Carbo allergy","2024-06-01",None,"Qual","IgE-mediated",1,"Allergy",4,"Post-anaphylaxis"),
    ]
    for l in labs:
        c.execute("INSERT OR IGNORE INTO lab_results (patient_id,test_name,test_date,result_value,unit,reference_range,is_abnormal,lab_name,ordered_by,notes) VALUES (?,?,?,?,?,?,?,?,?,?)", l)
    # Symptoms
    symptoms = [
        (1,"2024-02-15 14:00","Fatigue",6,"Moderate, 3-5d post-chemo","3-5d/cycle","Chemo","Rest, exercise, hydration",0,None,2,"G2 CTCAE"),
        (1,"2024-03-10 11:00","Neuropathy",3,"Tingling fingertips cycle 3","Persistent","Cumulative taxane","Cold avoidance, B6",0,None,2,"G1 - monitor"),
        (2,"2024-03-20 10:00","Dysphagia",5,"Difficulty swallowing solids","Week 3 CRT","RT esophagitis","Soft diet, lidocaine",0,None,6,"G2 esophagitis"),
        (5,"2024-04-14 08:00","Fever",8,"38.8C, neutropenic nadir","Acute","Chemo-induced","Pip-tazo started, cultures drawn",0,None,3,"CRITICAL: ANC<100"),
        (5,"2024-04-16 12:00","Mucositis",6,"Painful oral ulcers","Day 4 post-induction","7+3","Magic mouthwash, cryo",0,None,3,"G2 mucositis"),
        (7,"2024-03-20 09:00","Diarrhea",7,"6-8 episodes/day post-irinotecan","Acute post-infusion","Irinotecan","Loperamide protocol",0,None,2,"Late diarrhea"),
        (7,"2024-04-05 10:00","Neuropathy",5,"Cold throat tightness, hand numb","Since cycle 2","Oxaliplatin cumulative","Cold avoidance, Ca/Mg",0,None,2,"G2 acute oxaliplatin"),
        (8,"2024-06-01 14:00","Anaphylaxis",10,"Urticaria, bronchospasm, hypotension","Acute during infusion","Carboplatin allergy","Epi 0.3mg IM, IV fluids. Switched to cisplatin.",1,"2024-06-01 15:30",4,"CRITICAL: anaphylaxis"),
    ]
    for s in symptoms:
        c.execute("INSERT OR IGNORE INTO symptom_reports (patient_id,reported_at,symptom_type,severity,description,duration,triggers,interventions,resolved,resolved_at,reviewed_by,review_notes) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", s)
    # Alerts
    alerts = [
        (5,"febrile_neutropenia","critical","CRITICAL: Febrile neutropenia - Robert (ONC-2024-005). ANC<100, temp 39.2C. Immediate antibiotics.","ANC<500 + temp>=38.3","2024-04-14 14:30",None,None,1,"2024-04-20 10:00","Pip-tazo started. Cultures negative. ANC recovering."),
        (2,"low_oxygen","high","HIGH: SpO2 93.5% - Moreau (ONC-2024-002). COPD history. Assess RT pneumonitis.","SpO2<94% + COPD","2024-03-15 08:15",None,None,1,"2024-03-20 10:00","Chest CT, O2 2L NC, dexa 4mg BID."),
        (8,"anaphylaxis","critical","CRITICAL: Anaphylaxis - Fournier (ONC-2024-008) carbo cycle 4. Switched to cisplatin.","Anaphylaxis during infusion","2024-06-01 14:05",None,None,1,"2024-06-01 15:30","Epi given. Patient stabilized. Carbo allergy documented."),
        (3,"tumor_marker","medium","MEDIUM: CEA rising - Laurent (ONC-2024-003). 32->45 ng/mL on FOLFOX. Imaging needed.","CEA>30 or >25% rise","2024-05-15 09:00",None,None,0,None,None),
        (7,"neuropathy","high","HIGH: Oxaliplatin neuropathy G2 - Guerin (ONC-2024-007). May need discontinuation.","Cumulative G>=2","2024-04-10 10:00",None,None,0,None,None),
        (1,"cardiac","medium","MEDIUM: LVEF due - Durand (ONC-2024-001). Trastuzumab cardiac monitoring q3mo.","LVEF overdue >3mo","2024-05-01 08:00",None,None,0,None,None),
        (6,"pulmonary","high","HIGH: Pulmonary symptoms - Blanc (ONC-2024-006). New cough on bleomycin. PFTs ordered.","New pulm sx on bleomycin","2024-07-15 14:00",None,None,0,None,None),
    ]
    for a in alerts:
        c.execute("INSERT OR IGNORE INTO alerts (patient_id,alert_type,severity,message,trigger_condition,created_at,acknowledged_by,acknowledged_at,resolved,resolved_at,action_taken) VALUES (?,?,?,?,?,?,?,?,?,?,?)", a)
    # Nurse assignments
    assigns = [
        (6,1,"2024-02-01",None,"full_day",1,"Primary - Durand breast cancer"),
        (6,2,"2024-03-01",None,"full_day",1,"Primary - Moreau lung cancer"),
        (7,3,"2024-04-01",None,"morning",1,"Primary - Laurent colorectal"),
        (7,7,"2024-03-10",None,"morning",1,"Primary - Guerin pancreatic"),
        (8,4,"2024-06-01",None,"full_day",1,"Primary - Simon mCRPC"),
        (8,8,"2024-04-15",None,"full_day",1,"Primary - Fournier ovarian"),
        (9,5,"2024-04-01",None,"full_day",1,"Primary - Robert AML"),
        (9,6,"2024-06-01",None,"full_day",1,"Primary - Blanc Hodgkin"),
    ]
    for a in assigns:
        c.execute("INSERT OR IGNORE INTO nurse_patient_assignments (nurse_id,patient_id,assigned_date,unassigned_date,shift,is_primary,notes) VALUES (?,?,?,?,?,?,?)", a)
    # Audit log
    audits = [
        (1,"LOGIN","users",1,None,None,"127.0.0.1","Seed"),
        (2,"CREATE_PATIENT","patients",1,None,'{"code":"ONC-2024-001"}',"127.0.0.1","Seed"),
        (2,"PRESCRIBE","medications",1,None,'{"drug":"Docetaxel"}',"127.0.0.1","Seed"),
        (6,"RECORD_VITALS","vital_signs",1,None,'{"temp":36.8}',"127.0.0.1","Seed"),
        (9,"ACKNOWLEDGE_ALERT","alerts",1,None,'{"action":"antibiotics"}',"127.0.0.1","Seed"),
    ]
    for a in audits:
        c.execute("INSERT OR IGNORE INTO audit_log (user_id,action,table_name,record_id,old_value,new_value,ip_address,user_agent) VALUES (?,?,?,?,?,?,?,?)", a)
    conn.commit()
    print(f"  [OK] Vitals, labs, symptoms, alerts, assignments, audit seeded")

def run_seed():
    print("=" * 60)
    print("CANCER PATIENT MANAGEMENT SYSTEM - SEEDING")
    print("=" * 60)
    init_db()
    conn = get_connection()
    seed_users(conn)
    seed_patients(conn)
    seed_medications(conn)
    seed_treatment_cycles(conn)
    seed_vitals_labs_symptoms_alerts(conn)
    conn.close()
    print("\n" + "=" * 60)
    print("SEEDING COMPLETE")
    print("=" * 60)
    print(f"Database: {DB_PATH} ({DB_PATH.stat().st_size/1024:.1f} KB)")
    print("\nCredentials:")
    print("  admin/admin123  dr.martin/doctor123  inf.moret/nurse123  patient.durand/patient123")

if __name__ == "__main__":
    run_seed()
