Latrogenic disease
In pharm from kd tripathi or tara shanbha
Generate a pharmacology notes document on iatrogenic disease
mkdir -p /tmp/workspace/iatrogenic-notes && ls /tmp/workspace/
cat << 'PYEOF' > /tmp/workspace/iatrogenic-notes/build.py from docx import Document from docx.shared import Pt, Inches, RGBColor from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.oxml.ns import qn from docx.oxml import OxmlElement doc = Document() # ── Page margins ───────────────────────────────────────────────────────────── from docx.shared import Inches section = doc.sections[0] section.top_margin = Inches(1.0) section.bottom_margin = Inches(1.0) section.left_margin = Inches(1.0) section.right_margin = Inches(1.0) # ── Default Normal style ────────────────────────────────────────────────────── normal = doc.styles["Normal"] normal.font.name = "Arial" normal.font.size = Pt(11) # ── Heading colour helper ───────────────────────────────────────────────────── def set_heading_color(para, r, g, b): for run in para.runs: run.font.color.rgb = RGBColor(r, g, b) # ── Shaded box paragraph helper ────────────────────────────────────────────── def add_shaded_para(doc, text, shade_hex="E8F4FD", bold=False): p = doc.add_paragraph() pPr = p._p.get_or_add_pPr() shd = OxmlElement("w:shd") shd.set(qn("w:val"), "clear") shd.set(qn("w:color"), "auto") shd.set(qn("w:fill"), shade_hex) pPr.append(shd) run = p.add_run(text) run.font.name = "Arial" run.font.size = Pt(11) run.bold = bold return p # ── Horizontal rule ─────────────────────────────────────────────────────────── def add_hr(doc): p = doc.add_paragraph() pPr = p._p.get_or_add_pPr() pBdr = OxmlElement("w:pBdr") bottom = OxmlElement("w:bottom") bottom.set(qn("w:val"), "single") bottom.set(qn("w:sz"), "6") bottom.set(qn("w:space"), "1") bottom.set(qn("w:color"), "2E86AB") pBdr.append(bottom) pPr.append(pBdr) # ═══════════════════════════════════════════════════════════════════════════════ # TITLE PAGE # ═══════════════════════════════════════════════════════════════════════════════ title_para = doc.add_paragraph() title_para.alignment = WD_ALIGN_PARAGRAPH.CENTER run = title_para.add_run("IATROGENIC DISEASE") run.font.name = "Arial" run.font.size = Pt(22) run.font.bold = True run.font.color.rgb = RGBColor(0x1A, 0x53, 0x76) sub_para = doc.add_paragraph() sub_para.alignment = WD_ALIGN_PARAGRAPH.CENTER run = sub_para.add_run("Pharmacology Notes") run.font.name = "Arial" run.font.size = Pt(14) run.font.color.rgb = RGBColor(0x2E, 0x86, 0xAB) run.font.italic = True doc.add_paragraph() ref_para = doc.add_paragraph() ref_para.alignment = WD_ALIGN_PARAGRAPH.CENTER run = ref_para.add_run("Sources: Harrison's Principles of Internal Medicine 22E | Park's Preventive & Social Medicine\nKatzung's Basic & Clinical Pharmacology 16E | Goldman-Cecil Medicine") run.font.name = "Arial" run.font.size = Pt(9) run.font.color.rgb = RGBColor(0x88, 0x88, 0x88) run.font.italic = True add_hr(doc) doc.add_paragraph() # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 1 – DEFINITION # ═══════════════════════════════════════════════════════════════════════════════ h1 = doc.add_heading("1. DEFINITION", level=1) set_heading_color(h1, 0x1A, 0x53, 0x76) add_shaded_para(doc, '"Iatrogenic" literally means doctor-generated (Greek: iatros = physician, genesis = origin).', shade_hex="D6EAF8", bold=True) doc.add_paragraph( "Iatrogenic disease refers to any adverse health effect that results from medical activity — " "including preventive, diagnostic, therapeutic, surgical, or other professional interventions. " "More broadly, it encompasses harm caused by drugs, immunizations, diagnostic procedures, " "medical devices, or healthcare policies." ) doc.add_paragraph( "The disease may be serious enough to prolong hospital stay, require special treatment, or threaten life. " "Most episodes are related to drug therapy, immunization, or diagnostic procedures." ) bullets_def = [ "Reactions to penicillin and immunizing agents", "Aplastic anaemia following chloramphenicol use", "Childhood leukaemia due to prenatal X-ray exposure", "Hepatitis B following blood transfusion", "Nephrotoxicity from NSAIDs or aminoglycosides", "Drug-induced lupus (hydralazine, procainamide)", ] for b in bullets_def: p = doc.add_paragraph(b, style="List Bullet") for run in p.runs: run.font.size = Pt(11) doc.add_paragraph( "Key point: Iatrogenic disease is a HAZARD OF HEALTH CARE — most episodes are preventable." ).runs[0].bold = True doc.add_paragraph() # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 2 – CAUSES / CLASSIFICATION # ═══════════════════════════════════════════════════════════════════════════════ h1 = doc.add_heading("2. CAUSES AND CLASSIFICATION", level=1) set_heading_color(h1, 0x1A, 0x53, 0x76) doc.add_paragraph( "Iatrogenic disease can be classified based on the cause of the harm:" ) # Table of causes table = doc.add_table(rows=1, cols=2) table.style = "Table Grid" hdr = table.rows[0].cells hdr[0].text = "Category" hdr[1].text = "Examples" for cell in hdr: for para in cell.paragraphs: for run in para.runs: run.bold = True run.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF) shd = OxmlElement("w:shd") shd.set(qn("w:val"), "clear") shd.set(qn("w:color"), "auto") shd.set(qn("w:fill"), "1A5376") cell._tc.get_or_add_tcPr().append(shd) rows_data = [ ("Drug Therapy (Pharmacogenic)", "Adverse drug reactions (ADRs), drug toxicity, drug interactions, overdose, idiosyncratic reactions"), ("Diagnostic Procedures", "Contrast nephropathy, radiation from CT/X-ray, complications of endoscopy, biopsy, lumbar puncture"), ("Surgical Procedures", "Post-op infections, nerve damage, anastomotic leaks, wrong-site surgery"), ("Immunization / Biologics", "Vaccine reactions, serum sickness, anaphylaxis"), ("Blood Transfusion", "Transfusion reactions, transfusion-transmitted infections (HBV, HCV, HIV)"), ("Hospital-acquired (Nosocomial)", "Healthcare-associated infections (HAI), MRSA, C. difficile, catheter-related infections"), ("Medical Devices", "Pacemaker complications, prosthetic valve endocarditis, implant failure"), ("Prescribing Errors", "Wrong drug, wrong dose, wrong route, drug prescribed despite known allergy"), ] for cat, ex in rows_data: row = table.add_row() row.cells[0].text = cat row.cells[1].text = ex for cell in row.cells: for para in cell.paragraphs: for run in para.runs: run.font.size = Pt(10.5) doc.add_paragraph() # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 3 – ADVERSE DRUG REACTIONS (Core Pharmacology) # ═══════════════════════════════════════════════════════════════════════════════ h1 = doc.add_heading("3. ADVERSE DRUG REACTIONS (ADRs)", level=1) set_heading_color(h1, 0x1A, 0x53, 0x76) add_shaded_para(doc, "ADRs are the most important pharmacological cause of iatrogenic disease.", shade_hex="D6EAF8", bold=True) doc.add_paragraph( "Epidemiology (Harrison's 22E):" ).runs[0].bold = True bullets_epi = [ "6.5% of all hospital admissions in the UK are due to ADRs", "2.3% of ADR-related admissions result in death (mortality ~0.15% of all admissions)", "Most common culprit drugs: Aspirin, NSAIDs, Diuretics, Warfarin, ACE inhibitors, Antidepressants, Opiates, Digoxin, Steroids, Clopidogrel", "In the USA: ADRs responsible for >100,000 in-hospital deaths/year — 4th to 6th most common cause of in-hospital death", ] for b in bullets_epi: doc.add_paragraph(b, style="List Bullet") doc.add_paragraph() # 3A – Classification of ADRs h2 = doc.add_heading("3.1 Classification of ADRs (Rawlins-Thompson / WHO)", level=2) set_heading_color(h2, 0x2E, 0x86, 0xAB) adr_table = doc.add_table(rows=1, cols=4) adr_table.style = "Table Grid" hdr_cells = adr_table.rows[0].cells for i, txt in enumerate(["Type", "Name", "Features", "Examples"]): hdr_cells[i].text = txt for para in hdr_cells[i].paragraphs: for run in para.runs: run.bold = True run.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF) shd = OxmlElement("w:shd") shd.set(qn("w:val"), "clear") shd.set(qn("w:color"), "auto") shd.set(qn("w:fill"), "2E86AB") hdr_cells[i]._tc.get_or_add_tcPr().append(shd) adr_types = [ ("Type A\n(Augmented)", "Dose-dependent / Predictable", "Related to pharmacological action of drug; most common (~80%); predictable; reversible on dose reduction", "Digoxin toxicity (bradycardia), Morphine (respiratory depression), Warfarin (bleeding), Insulin (hypoglycaemia), NSAID-induced GI ulcers"), ("Type B\n(Bizarre)", "Idiosyncratic / Unpredictable", "Not dose-dependent; not related to known pharmacological action; rare; often severe; immunological or genetic basis", "Penicillin anaphylaxis, Chloramphenicol-induced aplastic anaemia, Halothane hepatitis, Carbamazepine-SJS"), ("Type C\n(Chronic/Continuous)", "Drug use related", "Occur with long-term / continuous use; dose and time dependent", "Adrenal suppression with corticosteroids, Tardive dyskinesia with antipsychotics, Analgesic nephropathy"), ("Type D\n(Delayed)", "Delayed", "Occur long after drug use; may appear years later", "Carcinogenesis (alkylating agents, DES), Teratogenesis (thalidomide), Tardive dyskinesia"), ("Type E\n(End of use)", "Withdrawal", "Occur on stopping the drug", "Opioid withdrawal, Benzodiazepine withdrawal, Rebound hypertension (clonidine), Adrenal insufficiency (steroid withdrawal)"), ("Type F\n(Failure)", "Unexpected failure of therapy", "Drug fails to produce intended effect; often dose-related", "Oral contraceptive failure with enzyme-inducing drugs (rifampicin), Antibiotic resistance"), ] for row_data in adr_types: row = adr_table.add_row() for i, txt in enumerate(row_data): row.cells[i].text = txt for para in row.cells[i].paragraphs: for run in para.runs: run.font.size = Pt(10) doc.add_paragraph() # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 4 – MECHANISMS OF DRUG-INDUCED DISEASE # ═══════════════════════════════════════════════════════════════════════════════ h1 = doc.add_heading("4. MECHANISMS OF DRUG-INDUCED (PHARMACOGENIC) DISEASE", level=1) set_heading_color(h1, 0x1A, 0x53, 0x76) # 4.1 Direct toxicity h2 = doc.add_heading("4.1 Direct / Dose-Related Toxicity", level=2) set_heading_color(h2, 0x2E, 0x86, 0xAB) doc.add_paragraph( "Drugs or reactive metabolites (generated by CYP enzymes) covalently bind to tissue macromolecules " "(proteins, DNA), causing direct cellular damage — typically at the site of metabolism (liver)." ) add_shaded_para(doc, "Classic example: Paracetamol (Acetaminophen) hepatotoxicity\n" "• Normal: reactive NAPQI metabolite detoxified by hepatic glutathione\n" "• Overdose: glutathione depleted → NAPQI binds hepatic proteins → hepatocyte necrosis\n" "• Antidote: N-acetylcysteine (NAC) — replenishes glutathione\n" "• Risk increased by: phenobarbitone, phenytoin (enzyme inducers), chronic alcohol use (depletes glutathione)", shade_hex="FEF9E7") # 4.2 Immunological h2 = doc.add_heading("4.2 Immunological Mechanisms", level=2) set_heading_color(h2, 0x2E, 0x86, 0xAB) doc.add_paragraph( "Most immunological ADRs require the drug to act as a hapten — binding to protein and becoming antigenic." ) imm_table = doc.add_table(rows=1, cols=3) imm_table.style = "Table Grid" for i, txt in enumerate(["Mechanism", "Mediator", "Example"]): imm_table.rows[0].cells[i].text = txt for para in imm_table.rows[0].cells[i].paragraphs: for run in para.runs: run.bold = True shd = OxmlElement("w:shd") shd.set(qn("w:val"), "clear") shd.set(qn("w:color"), "auto") shd.set(qn("w:fill"), "D5F5E3") imm_table.rows[0].cells[i]._tc.get_or_add_tcPr().append(shd) imm_data = [ ("Type I – IgE-mediated anaphylaxis", "IgE → mast cell degranulation", "Penicillin anaphylaxis, aspirin, ACE inhibitors"), ("Type II – Cytotoxic antibody", "IgG/IgM attack drug-coated cells", "Penicillin-induced haemolytic anaemia; quinine/quinidine thrombocytopenia"), ("Type III – Immune complex", "Drug-Ab complexes → complement activation", "Serum sickness (antitoxins); heparin-induced thrombocytopenia (HIT)"), ("Type IV – Cell-mediated (delayed)", "Sensitised T-lymphocytes", "Stevens-Johnson Syndrome (SJS/TEN); DRESS syndrome; contact dermatitis"), ("Drug-induced autoimmunity", "Autoantibody production", "Hydralazine / procainamide-induced lupus erythematosus"), ] for row_data in imm_data: row = imm_table.add_row() for i, txt in enumerate(row_data): row.cells[i].text = txt for para in row.cells[i].paragraphs: for run in para.runs: run.font.size = Pt(10.5) doc.add_paragraph() # 4.3 Idiosyncratic h2 = doc.add_heading("4.3 Idiosyncratic / Pharmacogenetic Reactions", level=2) set_heading_color(h2, 0x2E, 0x86, 0xAB) doc.add_paragraph( "These reactions are genetically determined abnormal responses to drugs. They occur in susceptible individuals " "and are not predictable from the drug's primary pharmacological action." ) idio_data = [ ("G6PD deficiency", "Primaquine, dapsone, nitrofurantoin, quinine", "Haemolytic anaemia"), ("Slow acetylators (NAT2 deficiency)", "Isoniazid, hydralazine, procainamide", "Peripheral neuropathy (INH); lupus (hydralazine/procainamide)"), ("Pseudocholinesterase deficiency", "Succinylcholine", "Prolonged paralysis / apnoea"), ("Porphyria", "Barbiturates, sulfonamides, griseofulvin, OCP", "Acute porphyric crisis"), ("Malignant hyperthermia (RYR1 mutation)", "Halothane, succinylcholine", "Life-threatening hyperthermia, rigidity"), ("HLA-B*5701", "Abacavir", "Severe hypersensitivity reaction"), ("HLA-B*1502", "Carbamazepine (in Han Chinese)", "Stevens-Johnson Syndrome / TEN"), ("CYP2D6 poor metabolisers", "Codeine, tamoxifen, TCAs", "Toxicity (codeine → excess morphine) or lack of effect (tamoxifen)"), ] idio_table = doc.add_table(rows=1, cols=3) idio_table.style = "Table Grid" for i, txt in enumerate(["Genetic Defect / HLA", "Drug(s) Involved", "Adverse Effect"]): idio_table.rows[0].cells[i].text = txt for para in idio_table.rows[0].cells[i].paragraphs: for run in para.runs: run.bold = True shd = OxmlElement("w:shd") shd.set(qn("w:val"), "clear") shd.set(qn("w:color"), "auto") shd.set(qn("w:fill"), "F9EBEA") idio_table.rows[0].cells[i]._tc.get_or_add_tcPr().append(shd) for row_data in idio_data: row = idio_table.add_row() for i, txt in enumerate(row_data): row.cells[i].text = txt for para in row.cells[i].paragraphs: for run in para.runs: run.font.size = Pt(10.5) doc.add_paragraph() # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 5 – ORGAN-SYSTEM DRUG-INDUCED DISEASES # ═══════════════════════════════════════════════════════════════════════════════ h1 = doc.add_heading("5. ORGAN-SPECIFIC DRUG-INDUCED DISEASES", level=1) set_heading_color(h1, 0x1A, 0x53, 0x76) organ_data = [ ("LIVER (Drug-Induced Hepatotoxicity)", "Paracetamol (dose-related necrosis); Isoniazid (idiosyncratic hepatitis); Halothane (halothane hepatitis); Methotrexate (fibrosis/cirrhosis); Statins (raised LFTs); Chlorpromazine (cholestatic jaundice); Rifampicin (cholestasis); Valproate (hepatic failure); Erythromycin estolate (cholestasis); OCP (cholestasis, hepatic adenoma)"), ("KIDNEY (Drug-Induced Nephrotoxicity)", "Aminoglycosides (tubular necrosis — dose-related); Amphotericin B (tubular toxicity); NSAIDs (analgesic nephropathy, acute renal failure via PG inhibition); Cisplatin (tubular necrosis); Cyclosporine (arteriolar constriction → chronic nephropathy); ACE inhibitors (acute renal failure in bilateral renal artery stenosis); Lithium (nephrogenic diabetes insipidus); Contrast media (contrast nephropathy); Tetracyclines (Fanconi syndrome with outdated drug)"), ("BLOOD (Drug-Induced Haematological Disorders)", "Aplastic anaemia: Chloramphenicol, carbamazepine, phenytoin, gold, phenylbutazone\nHaemolytic anaemia: Methyldopa (autoimmune), dapsone/primaquine (G6PD deficiency)\nThrombocytopenia: Heparin (HIT), quinine, quinidine, vancomycin\nAgranulocytosis: Clozapine, carbimazole, co-trimoxazole, chlorpromazine\nMegaloblastic anaemia: Methotrexate, phenytoin, pyrimethamine (folate antagonists)"), ("LUNG (Drug-Induced Pulmonary Disease)", "Fibrosis: Amiodarone, bleomycin, busulfan, methotrexate, nitrofurantoin\nBronchospasm: Aspirin, beta-blockers, NSAIDs\nPneumonitis: Methotrexate, amiodarone, nitrofurantoin\nPulmonary hypertension: Fenfluramine/dexfenfluramine (withdrawn), aminorex\nCough: ACE inhibitors (bradykinin accumulation)"), ("SKIN (Drug-Induced Dermatological Reactions)", "Fixed drug eruption: Tetracyclines, NSAIDs, co-trimoxazole\nMorbilliform rash: Ampicillin (esp. in EBV mononucleosis), sulfonamides\nUrticaria/anaphylaxis: Penicillin, aspirin, opioids\nStevens-Johnson Syndrome (SJS) / TEN: Carbamazepine, allopurinol, sulfonamides, lamotrigine\nDRESS: Antiepileptics (carbamazepine, phenytoin), allopurinol\nPhoto-sensitivity: Tetracyclines, chlorpromazine, quinolones, amiodarone"), ("CARDIOVASCULAR (Drug-Induced Cardiac Toxicity)", "QT prolongation / Torsades de Pointes: Amiodarone, sotalol, quinidine, macrolides, haloperidol, cisapride (withdrawn), methadone\nCardiotoxicity: Doxorubicin/anthracyclines (dilated cardiomyopathy — dose-dependent)\nHypertension: Steroids, OCP, NSAIDs, ciclosporin\nHypotension: ACE inhibitors, alpha-blockers, nitrates, antipsychotics\nHeart failure: Beta-blockers (acute decompensation), verapamil, thiazolidinediones"), ("CNS (Drug-Induced Neurological/Psychiatric Effects)", "Extrapyramidal effects: Antipsychotics (haloperidol > chlorpromazine) — parkinsonism, akathisia, dystonia, tardive dyskinesia\nSeizures: Tramadol, bupropion, theophylline, quinolones, mefloquine\nPeripheral neuropathy: Isoniazid (pyridoxine deficiency), metronidazole, vincristine, thalidomide\nSerotonin syndrome: SSRIs + MAOIs, tramadol + SSRIs\nNeuroleptic malignant syndrome (NMS): Antipsychotics\nOtovestibular toxicity: Aminoglycosides, furosemide, quinine, aspirin (high dose)"), ("ENDOCRINE / METABOLIC", "Hyperglycaemia: Steroids, thiazides, tacrolimus, atypical antipsychotics\nHypoglycaemia: Insulin, sulphonylureas, quinine, pentamidine\nHypothyroidism: Amiodarone, lithium, carbimazole\nHyperthyroidism: Amiodarone (iodine load), interferon-alpha\nOsteoporosis: Corticosteroids (long-term), heparin, anticonvulsants\nGynecomastia: Spironolactone, cimetidine, digoxin, oestrogens, antipsychotics"), ("REPRODUCTIVE / TERATOGENIC", "Teratogenic drugs (Category X / known harm):\n • Thalidomide → phocomelia (limb defects)\n • Warfarin → foetal warfarin syndrome (nasal hypoplasia, stippled epiphyses)\n • Isotretinoin → craniofacial + cardiac defects\n • Valproate → neural tube defects\n • Methotrexate → foetal death, multiple anomalies\n • ACE inhibitors → renal tubular dysgenesis\n • Tetracyclines → teeth/bone discolouration (2nd/3rd trimester)"), ] for organ, content in organ_data: h2 = doc.add_heading(organ, level=2) set_heading_color(h2, 0x2E, 0x86, 0xAB) doc.add_paragraph(content) doc.add_paragraph() # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 6 – DRUG INTERACTIONS AS A CAUSE OF IATROGENIC DISEASE # ═══════════════════════════════════════════════════════════════════════════════ h1 = doc.add_heading("6. DRUG INTERACTIONS AS A CAUSE OF IATROGENIC DISEASE", level=1) set_heading_color(h1, 0x1A, 0x53, 0x76) doc.add_paragraph( "Drug interactions can convert a safe therapeutic regimen into an iatrogenic hazard." ) int_table = doc.add_table(rows=1, cols=3) int_table.style = "Table Grid" for i, txt in enumerate(["Mechanism", "Example", "Clinical Result"]): int_table.rows[0].cells[i].text = txt for para in int_table.rows[0].cells[i].paragraphs: for run in para.runs: run.bold = True shd = OxmlElement("w:shd") shd.set(qn("w:val"), "clear") shd.set(qn("w:color"), "auto") shd.set(qn("w:fill"), "1A5376") int_table.rows[0].cells[i]._tc.get_or_add_tcPr().append(shd) for para in int_table.rows[0].cells[i].paragraphs: for run in para.runs: run.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF) int_data = [ ("CYP enzyme inhibition", "Amiodarone + Warfarin", "Amiodarone inhibits CYP2C9 → raised warfarin levels → bleeding"), ("CYP enzyme induction", "Rifampicin + OCP", "Rifampicin induces CYP3A4 → OCP failure → unintended pregnancy"), ("Additive toxicity", "Aminoglycosides + Loop diuretics", "Synergistic ototoxicity and nephrotoxicity"), ("Pharmacodynamic antagonism", "Beta-blockers + Salbutamol", "Beta-blocker blunts bronchodilator effect → worsening asthma"), ("Pharmacodynamic synergy", "Morphine + Benzodiazepine", "Combined respiratory depression → apnoea"), ("Protein-binding displacement", "Sulfonamides + Warfarin", "Displaced warfarin → elevated free drug → bleeding risk"), ("Absorption interference", "Tetracyclines + Antacids/Milk", "Chelation → reduced antibiotic absorption → treatment failure"), ("Serotonin syndrome", "SSRI + MAOI / Tramadol", "Excess serotonin → hyperthermia, clonus, agitation, death"), ] for row_data in int_data: row = int_table.add_row() for i, txt in enumerate(row_data): row.cells[i].text = txt for para in row.cells[i].paragraphs: for run in para.runs: run.font.size = Pt(10.5) doc.add_paragraph() # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 7 – DIAGNOSIS # ═══════════════════════════════════════════════════════════════════════════════ h1 = doc.add_heading("7. DIAGNOSIS OF IATROGENIC / DRUG-INDUCED DISEASE", level=1) set_heading_color(h1, 0x1A, 0x53, 0x76) diag_steps = [ "1. Temporal relationship: New symptom appears after starting a drug — maintain suspicion", "2. Suspect drug interactions as the cause (e.g., warfarin + amiodarone → bleeding)", "3. Drug withdrawal (dechallenge): Discontinuation of suspect drug → disappearance of reaction is presumptive evidence", "4. Rechallenge: Reintroducing the drug → reappearance of reaction is confirmatory (avoid if immunological reaction suspected)", "5. Pharmacogenetic testing: G6PD level, pseudocholinesterase, CYP genotyping, HLA typing (e.g., HLA-B*5701 for abacavir)", "6. Electronic ADR databases / Naranjo scale for probability assessment", "7. Consider drug fever — common ADR that often escapes diagnosis since fever is non-specific", ] for step in diag_steps: p = doc.add_paragraph(step, style="List Bullet") for run in p.runs: run.font.size = Pt(11) doc.add_paragraph() # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 8 – TREATMENT & MANAGEMENT # ═══════════════════════════════════════════════════════════════════════════════ h1 = doc.add_heading("8. MANAGEMENT OF IATROGENIC DISEASE", level=1) set_heading_color(h1, 0x1A, 0x53, 0x76) mgmt_table = doc.add_table(rows=1, cols=2) mgmt_table.style = "Table Grid" for i, txt in enumerate(["Step", "Action"]): mgmt_table.rows[0].cells[i].text = txt for para in mgmt_table.rows[0].cells[i].paragraphs: for run in para.runs: run.bold = True shd = OxmlElement("w:shd") shd.set(qn("w:val"), "clear") shd.set(qn("w:color"), "auto") shd.set(qn("w:fill"), "2E86AB") mgmt_table.rows[0].cells[i]._tc.get_or_add_tcPr().append(shd) for para in mgmt_table.rows[0].cells[i].paragraphs: for run in para.runs: run.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF) mgmt_data = [ ("Withdraw the offending agent", "Stop the drug immediately if iatrogenic reaction is suspected (if safe to do so)"), ("Specific antidotes", "Paracetamol → N-acetylcysteine; Opioid overdose → Naloxone; Benzodiazepine → Flumazenil; Warfarin → Vitamin K / FFP / PCC; Heparin → Protamine; Digoxin toxicity → Digoxin-specific Fab antibodies; Organophosphate → Atropine + Pralidoxime"), ("Immunological reactions", "Anaphylaxis: Adrenaline (IM) 0.5 mg, antihistamines, corticosteroids, O2\nSJS/TEN: Hospitalise, fluid management, wound care; consider IVIG/cyclosporine\nDRESS: Stop drug, corticosteroids\nHIT: Stop heparin; use argatroban or danaparoid (thrombin inhibitors)"), ("Supportive care", "IV fluids, organ support (dialysis for renal failure, ventilation for respiratory failure)"), ("For chronic reactions", "Dose reduction, substitution with a safer drug, or monitoring programme"), ("Pharmacovigilance / Reporting", "Report to national ADR reporting system (e.g., Yellow Card in UK, MedWatch in USA, PvPI in India)"), ] for row_data in mgmt_data: row = mgmt_table.add_row() for i, txt in enumerate(row_data): row.cells[i].text = txt for para in row.cells[i].paragraphs: for run in para.runs: run.font.size = Pt(10.5) doc.add_paragraph() # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 9 – PREVENTION # ═══════════════════════════════════════════════════════════════════════════════ h1 = doc.add_heading("9. PREVENTION OF IATROGENIC DISEASE", level=1) set_heading_color(h1, 0x1A, 0x53, 0x76) add_shaded_para(doc, "\"Primum non nocere\" — First, do no harm. Prevention is the cornerstone of managing iatrogenic disease.", shade_hex="D5F5E3", bold=True) prev_bullets = [ "Rational prescribing: Prescribe only when necessary; use correct drug, dose, duration, route", "Drug allergy history: Always document and check before prescribing (esp. penicillin, sulfonamides, aspirin, contrast media)", "Avoid polypharmacy: Review drug lists regularly — especially in elderly patients (Beers criteria)", "Monitor drug levels: Aminoglycosides, vancomycin, lithium, digoxin, phenytoin, cyclosporine (therapeutic drug monitoring — TDM)", "Pharmacogenetic screening: Before abacavir (HLA-B*5701), carbamazepine in high-risk populations (HLA-B*1502)", "Renal / hepatic dose adjustment: Reduce doses of renally/hepatically cleared drugs in organ impairment", "Avoid teratogenic drugs in pregnancy: Screen pregnancy before prescribing isotretinoin, warfarin, methotrexate, valproate", "Pharmacovigilance: Post-marketing surveillance systems (ADR reporting) detect signals of new iatrogenic hazards", "Patient education: Counsel patients on expected side effects, danger signs, and adherence", "Safe injection / transfusion practices: Prevent iatrogenic infections (Hepatitis B, HIV via blood products or contaminated needles)", "Infection control: Hand hygiene, sterile technique, antibiotic stewardship to prevent HAIs and C. difficile", ] for b in prev_bullets: p = doc.add_paragraph(b, style="List Bullet") for run in p.runs: run.font.size = Pt(11) doc.add_paragraph() # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 10 – HIGH-YIELD MNEMONICS # ═══════════════════════════════════════════════════════════════════════════════ h1 = doc.add_heading("10. HIGH-YIELD MNEMONICS & EXAM POINTS", level=1) set_heading_color(h1, 0x1A, 0x53, 0x76) add_shaded_para(doc, "APLASTIC ANAEMIA — 'Can Chloramphenicol Cause Phenytoin-Benzene Gold to Destroy Marrow?'\nKey drugs: Chloramphenicol, Carbamazepine, Phenytoin, Phenylbutazone, Gold, Benzene (chemical), Cytotoxics", shade_hex="FEF9E7") add_shaded_para(doc, "QT PROLONGATION — 'AQM Has Trouble Counting':\nAmiodarone, Quinidine/Quinine, Macrolides (erythromycin), Haloperidol, Tricyclics, Cisapride (withdrawn), methadone", shade_hex="FEF9E7") add_shaded_para(doc, "HEPATOTOXIC DRUGS (IMANCH): Isoniazid, Methotrexate, Acetaminophen, Nitrofurantoin, Chlorpromazine, Halothane", shade_hex="FEF9E7") add_shaded_para(doc, "NEPHROTOXIC DRUGS: Aminoglycosides, Amphotericin B, NSAIDs, Cisplatin, Cyclosporine, Contrast media — mnemonic 'AANCCCs'", shade_hex="FEF9E7") add_shaded_para(doc, "TERATOGENIC DRUGS (WAIMT): Warfarin, Alcohol, Isotretinoin, Methotrexate, Thalidomide, Valproate — all Category X or known teratogens", shade_hex="FEF9E7") add_shaded_para(doc, "DRUGS CAUSING LUPUS (HISPAH): Hydralazine, Isoniazid, Sulfonamides, Procainamide, Anti-TNF agents, Hydralazine (most common with procainamide)", shade_hex="FEF9E7") doc.add_paragraph() # ── Footer ─────────────────────────────────────────────────────────────────── add_hr(doc) foot = doc.add_paragraph() foot.alignment = WD_ALIGN_PARAGRAPH.CENTER run = foot.add_run("Pharmacology Notes — Iatrogenic Disease | Generated by Orris AI | Sources: Harrison's 22E, Park's PSM, Katzung 16E, Goldman-Cecil Medicine") run.font.size = Pt(8) run.font.color.rgb = RGBColor(0x99, 0x99, 0x99) run.font.italic = True # Save out = "/tmp/workspace/iatrogenic-notes/Iatrogenic_Disease_Pharmacology_Notes.docx" doc.save(out) print(f"Saved: {out}") PYEOF python3 /tmp/workspace/iatrogenic-notes/build.py
ls -lh /tmp/workspace/iatrogenic-notes/
Iatrogenic Disease Pharmacology Notes
Word Document · DOCX
| # | Section | Highlights |
|---|---|---|
| 1 | Definition | Greek origin, Park's PSM definition, classic examples |
| 2 | Causes & Classification | Full table: drug therapy, procedures, surgery, immunization, nosocomial |
| 3 | Adverse Drug Reactions | Epidemiology (Harrison's 22E) + Rawlins-Thompson A-F classification table |
| 4 | Mechanisms of Drug-Induced Disease | Direct toxicity (paracetamol/NAC), Immunological (Types I-IV with drug examples), Pharmacogenetic reactions |
| 5 | Organ-Specific Drug-Induced Diseases | Liver, Kidney, Blood, Lung, Skin, CVS, CNS, Endocrine, Reproductive/Teratogenic |
| 6 | Drug Interactions | CYP inhibition/induction, serotonin syndrome, HIT, additive toxicity — all as an iatrogenic cause |
| 7 | Diagnosis | Dechallenge/rechallenge, Naranjo scale, pharmacogenetic testing |
| 8 | Management | Specific antidotes table (Paracetamol → NAC, Opioid → Naloxone, HIT → Argatroban, etc.) |
| 9 | Prevention | Rational prescribing, TDM, Beers criteria, pharmacovigilance, Yellow Card/PvPI |
| 10 | High-Yield Mnemonics | Aplastic anaemia drugs, QT-prolonging drugs, hepatotoxic, nephrotoxic, teratogenic, lupus-inducing drugs |