Give me high-yield HKMLE notes on Respiratory Pharmacology with mnemonics, in an easy-to-read format. Include only what is necessary for HKMLE. Do not add extra details unless they are clinically important for the exam. Keep it very short — 2-3 pages maximum. For each drug or drug class, tell me: 1. Mechanism (simple) 2. Key indications (HKMLE-relevant) 3. Major side effects (exam-tested) 4. Contraindications (if any) 5. Where this topic appears in HKMLE (Paper I, II, or III) Use tables where helpful. No long paragraphs. No fluff.
Beta-2 agonists | Anticholinergics | Mast cell stabilisers | Steroids (inhaled) | Leukotriene modifiers | Omalizumab/Biologics | Chromones | Theophylline
| Feature | SABA | LABA |
|---|---|---|
| Mechanism | Beta-2 receptor agonist → adenylyl cyclase → cAMP ↑ → smooth muscle relaxation (bronchodilation) | Same mechanism, longer duration |
| Indication | Acute asthma attack (rescue), step 1 PRN | Step 3+ add-on to ICS; NOT monotherapy |
| Onset | Minutes | ~30 min (salmeterol), minutes (formoterol) |
| Duration | 4-6 h | 12 h |
| Key SE | Tremor, tachycardia, hypokalaemia, hyperglycaemia | Same + risk of asthma death if used without ICS |
| Contraindication | LABA monotherapy in asthma (black box) | - |
Exam trap: Salbutamol causes hypokalaemia (beta-2 shifts K+ into cells). Salmeterol must NEVER be used without ICS.
| Feature | Ipratropium (SAMA) | Tiotropium (LAMA) |
|---|---|---|
| Mechanism | M3 receptor antagonist → blocks bronchoconstriction | Same, higher affinity, longer-acting |
| Indication | Acute COPD exacerbation; adjunct in acute severe asthma ER | COPD maintenance (1st line); add-on in severe asthma |
| Dosing | QID inhaler | Once daily |
| Key SE | Dry mouth, urinary retention, constipation, blurred vision | Same (systemic effects minimal due to poor GI absorption) |
| Contraindication | Caution in BPH, narrow-angle glaucoma | Same |
These are quaternary ammonium compounds - they do NOT cross the BBB, hence minimal CNS effects.
| Feature | Details |
|---|---|
| Mechanism | Bind glucocorticoid receptor → reduce eosinophilic inflammation, decrease mucus production |
| Indications | Persistent asthma (step 2+); COPD with frequent exacerbations |
| Local SE | Oral candidiasis, dysphonia (hoarseness) |
| Systemic SE | Minimal at low doses; high dose → adrenal suppression, growth retardation in children, cataracts, osteoporosis |
| Contraindication | None absolute; caution in active pulmonary TB |
| Prevention of SE | Rinse mouth after use (candidiasis), spacer device |
Exam trap: ICS do NOT cause systemic Cushing's at standard doses. Growth suppression is tested in paediatric questions.
| Feature | Details |
|---|---|
| Mechanism | PDE inhibitor → cAMP ↑ → bronchodilation; also adenosine receptor antagonist |
| Indications | Chronic asthma/COPD (3rd line, now rarely used); acute severe asthma (IV aminophylline) |
| Therapeutic range | 10-20 mg/L (narrow therapeutic index) |
| Toxic SE (>20 mg/L) | Seizures, ventricular arrhythmias, nausea/vomiting, tachycardia |
| Drug interactions | Ciprofloxacin, erythromycin, cimetidine → increase levels (CYP1A2 inhibitors). Rifampicin, smoking → decrease levels |
| Contraindication | Epilepsy, cardiac arrhythmias |
Exam trap: Theophylline toxicity symptoms - "TANS": Tachycardia, Arrhythmia, Nausea, Seizures.
| Feature | Details |
|---|---|
| Mechanism | Block CysLT1 receptors → reduce bronchoconstriction, mucus secretion, eosinophil recruitment |
| Indications | Mild persistent asthma (alternative or add-on to ICS); allergic rhinitis; aspirin-exacerbated respiratory disease (AERD); exercise-induced bronchospasm |
| Key SE | Generally well-tolerated; neuropsychiatric effects (depression, suicidality - FDA warning); Churg-Strauss vasculitis (rare, on steroid taper) |
| Advantage | Oral; good for aspirin-sensitive asthma |
| Contraindication | History of psychiatric illness (relative) |
Exam trap: LTRA are the drug of choice in aspirin-induced asthma / NSAID-sensitive asthma.
| Feature | Details |
|---|---|
| Mechanism | Inhibit mast cell degranulation → block release of histamine, leukotrienes |
| Indications | Prophylaxis of mild asthma (especially exercise-induced or allergen-induced); allergic rhinitis |
| Key SE | Minimal; cough/throat irritation on inhalation |
| Contraindication | Not for acute attacks (prophylaxis only) |
| Limitation | Less effective than ICS; now rarely used |
| Drug | Target | Indication | Key SE |
|---|---|---|---|
| Omalizumab | Anti-IgE | Severe allergic asthma (high IgE, sensitised) | Anaphylaxis (must observe post-injection), injection site reactions |
| Mepolizumab / Benralizumab / Reslizumab | Anti-IL-5 (↓eosinophils) | Severe eosinophilic asthma | Injection site reactions, headache |
| Dupilumab | Anti-IL-4/IL-13 | Severe type-2 asthma, also atopic dermatitis, nasal polyps | Injection site, eosinophilia (transient) |
| Drug Class | Asthma | COPD |
|---|---|---|
| SABA | First-line rescue | Rescue (adjunct) |
| LABA | Must add with ICS | 1st/2nd line maintenance |
| LAMA | Add-on (severe asthma) | 1st line maintenance |
| ICS | Cornerstone treatment | Only if frequent exacerbations |
| Theophylline | 3rd line | 3rd line |
| LTRA | Add-on / aspirin asthma | Not indicated |
| Trap | Answer |
|---|---|
| Hypokalaemia from salbutamol | Beta-2 shifts K+ intracellularly |
| LABA without ICS in asthma | Contraindicated - increases asthma death |
| Drug of choice: aspirin-sensitive asthma | LTRA (montelukast) |
| Theophylline toxicity signs | Seizure, arrhythmia, nausea |
| Ciprofloxacin + theophylline | Toxicity (CYP1A2 inhibition) |
| ICS side effect to prevent by rinsing mouth | Oral candidiasis |
| Tiotropium vs Ipratropium | Tiotropium = LAMA (once daily, COPD maintenance) |
| Omalizumab use requires | Elevated serum IgE + allergen sensitisation |
| Montelukast CNS warning | Depression / suicidal ideation |
| LABA in COPD | Can use alone (unlike asthma) |
Give me high-yield HKMLE notes on Respiratory Pharmacology with mnemonics, in an easy-to-read format. Include only what is necessary for HKMLE. Do not add extra details unless they are clinically important for the exam. For each drug or drug class, tell me: 1. Mechanism (simple) 2. Key indications (HKMLE-relevant) 3. Major side effects (exam-tested) 4. Contraindications (if any) 5. Where this topic appears in HKMLE (Paper I, II, or III) Use tables where helpful. No long paragraphs. No fluff.
Beta-2 agonists | Anticholinergics | Leukotriene modifiers | Theophylline | ICS | Chromones | Steroids (systemic) + biologics
| SABA | LABA | |
|---|---|---|
| Mechanism | Beta-2 agonist → cAMP ↑ → airway smooth muscle relaxation | Same, longer duration |
| Indication | Acute asthma rescue; acute COPD exacerbation | Step 3+ asthma (with ICS); COPD maintenance |
| SE | Tremor, tachycardia, hypokalaemia, hyperglycaemia | Same + asthma death risk if used without ICS |
| CI | None absolute | Monotherapy in asthma (black box) |
Trap 1: Salbutamol → hypokalaemia (beta-2 drives K+ into cells). Tested in overdose/ICU scenarios. Trap 2: LABA alone in asthma = contraindicated. Must always combine with ICS. Formoterol has fast onset (can double as rescue); salmeterol does not.
| Ipratropium (SAMA) | Tiotropium (LAMA) | |
|---|---|---|
| Mechanism | M3 antagonist → blocks bronchoconstriction | Same, higher affinity, once-daily |
| Indication | Acute severe asthma (ER add-on to SABA); COPD exacerbation | COPD maintenance (1st line); add-on in severe asthma |
| SE | Dry mouth, urinary retention, blurred vision, constipation | Same (minimal systemic - quaternary compound, poor absorption) |
| CI | Narrow-angle glaucoma, BPH (relative) | Same |
Trap: Quaternary ammonium structure = does NOT cross BBB = no CNS effects. These are inhaled only. Tiotropium in COPD reduces exacerbations and improves exercise tolerance.
| Feature | Details |
|---|---|
| Mechanism | Glucocorticoid receptor activation → suppress eosinophilic airway inflammation |
| Indication | Persistent asthma (step 2 onward); COPD with recurrent exacerbations (combined with LABA) |
| Local SE | Oral candidiasis, dysphonia (hoarseness) |
| Systemic SE | Rare at low dose; high dose → adrenal suppression, growth retardation (children), osteoporosis, cataracts |
| Prevention | Rinse mouth after use; use spacer |
| CI | No absolute CI; caution in active TB |
Trap: ICS do NOT cause systemic Cushing's at standard doses. Growth suppression is the paediatric exam question.
| Feature | Details |
|---|---|
| Mechanism | PDE inhibitor → cAMP ↑ → bronchodilation; also adenosine receptor antagonist |
| Indication | Chronic asthma/COPD (3rd line); IV aminophylline for acute severe asthma |
| Therapeutic range | 10-20 mg/L (narrow therapeutic index) |
| Toxic SE (>20 mg/L) | Seizures, ventricular arrhythmias, N&V, tachycardia |
| CI | Epilepsy, cardiac arrhythmias |
| Increases theophylline levels (toxicity risk) | Decreases theophylline levels |
|---|---|
| Ciprofloxacin, Erythromycin, Cimetidine (CYP1A2 inhibitors) | Rifampicin, Phenytoin, Smoking (CYP1A2 inducers) |
Trap: Patient on theophylline starts ciprofloxacin for chest infection → theophylline toxicity. Classic HKMLE scenario.
| Feature | Details |
|---|---|
| Mechanism | Block CysLT1 receptors → reduce bronchoconstriction + eosinophil recruitment |
| Indication | Mild persistent asthma (add-on or ICS alternative); aspirin/NSAID-exacerbated asthma; allergic rhinitis; exercise-induced bronchospasm |
| SE | Neuropsychiatric effects (depression, suicidality - FDA black box); Churg-Strauss vasculitis (rare, on steroid taper) |
| Advantage | Oral; useful in aspirin-sensitive asthma |
| CI | Caution with psychiatric history |
Trap 1: Drug of choice for aspirin-sensitive (AERD) asthma = LTRA. Very high-yield. Trap 2: Churg-Strauss association - eosinophilic vasculitis appearing when oral steroids are tapered.
| Feature | Details |
|---|---|
| Mechanism | Inhibit mast cell degranulation → block histamine + leukotriene release |
| Indication | Prophylaxis: mild asthma, exercise-induced bronchospasm, allergic rhinitis |
| SE | Minimal; cough/throat irritation |
| CI | NOT for acute attacks - prophylaxis only |
These are now rarely used in practice but appear in mechanism-type Paper I MCQs.
| Drug | Target | Indication | Key SE |
|---|---|---|---|
| Omalizumab | Anti-IgE | Severe allergic asthma (elevated IgE, allergen sensitised) | Anaphylaxis (30-min observation required), injection site reactions |
| Mepolizumab / Benralizumab | Anti-IL-5 (↓ eosinophils) | Severe eosinophilic asthma | Injection site reactions |
| Dupilumab | Anti-IL-4/IL-13 | Severe type-2 asthma; also atopic dermatitis + nasal polyps | Injection site; transient eosinophilia |
Omalizumab prerequisite: elevated serum IgE AND documented allergen sensitisation.
| Drug Class | Asthma | COPD |
|---|---|---|
| SABA | 1st-line rescue | Rescue (as needed) |
| LABA | Add-on to ICS only | 1st-line maintenance (can use alone) |
| LAMA (Tiotropium) | Add-on in severe/uncontrolled | 1st-line maintenance (preferred) |
| ICS | Cornerstone (step 2+) | Only if frequent exacerbations |
| Theophylline | 3rd line | 3rd line |
| LTRA | Add-on / aspirin asthma | Not indicated |
| Biologics | Severe uncontrolled | Not indicated |
| Scenario | Answer |
|---|---|
| Salbutamol overdose → low K+ | Beta-2 agonist shifts K+ intracellularly |
| LABA without ICS in asthma | Contraindicated - increases asthma mortality |
| Aspirin-sensitive asthma drug | Montelukast (LTRA) |
| Theophylline + ciprofloxacin | Toxicity (CYP1A2 inhibition ↑ theophylline levels) |
| Theophylline + rifampicin/smoking | Sub-therapeutic levels (CYP1A2 induction) |
| ICS side effect prevented by rinsing mouth | Oral candidiasis |
| Tiotropium vs Ipratropium | Tiotropium = LAMA, once daily, COPD maintenance |
| Omalizumab requirement | High IgE + allergen sensitisation |
| Montelukast CNS warning | Depression / suicidal ideation |
| LABA monotherapy: OK in COPD? | Yes. OK in COPD, NOT in asthma |
Take my existing HKMLE Respiratory Pharmacology notes (attached as Resp 💊.pdf) and improve them as follows: 1. Keep ALL existing content exactly as is — do not delete anything. 2. Add the following three missing sections in the same style (tables, mnemonics, HKMLE pearls): **Section A: TB Drugs (RIPE)** - One table with: Drug | Mechanism (1 line) | Unique Toxicity | HKMLE Pearl - Include mnemonic: "RIP PE" (Rifampicin-orange, INH-neuropathy, Pyrazinamide-urate, Ethambutol-eyes) - Paper mapping: Paper I (Medicine MCQs), Paper II (emergency if on TB drugs) **Section B: Pneumonia Antibiotics (CAP vs HAP)** - One table with: Setting | First-line | Alternative - Settings: CAP outpatient, CAP inpatient, HAP (non-severe) - Add 1 HKMLE pearl below table **Section C: Inhaler Devices** - One table with: Device | When to use | Key point (1 line each) - Devices: MDI, DPI, Spacer 3. Add a "Quick Mnemonics Cheat Sheet" at the end (like your Cardio notes have) with all respiratory mnemonics from the document. 4. Add a "HKMLE Paper Distribution Summary" table (like Cardio notes) showing which respiratory topics appear in which paper. 5. Fix any formatting issues (broken tables, missing lines). 6. Match the EXACT style of your Cardio 💊.pdf — same table formatting, same use of "HKMLE Pearl", same mnemonic style. Output the complete, improved Respiratory notes as a single document.
python3 -c " import pdfplumber with pdfplumber.open('/home/daytona/workspace/attachments/f621ba79-f72b-4ccb-9531-3896cea1f109/Resp 💊.pdf') as pdf: print(f'Pages: {len(pdf.pages)}') for i, page in enumerate(pdf.pages): text = page.extract_text() print(f'--- PAGE {i+1} ---') print(text) print() "
ls /home/daytona/workspace/
mkdir -p /home/daytona/workspace/resp-pharm && python3 -c "import reportlab; print('reportlab ok')"
~/resp-pharm/build_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import mm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, KeepTogether, PageBreak
)
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
from reportlab.platypus import CondPageBreak
OUTPUT = "/home/daytona/workspace/resp-pharm/Resp_Pharmacology_HKMLE.pdf"
# ── Colour palette (matches Cardio style) ──────────────────────────────────────
C_NAVY = colors.HexColor("#1B3A5C") # header / title background
C_ACCENT = colors.HexColor("#2E86AB") # section title bar
C_LIGHT = colors.HexColor("#D6EAF8") # alt-row / light header
C_MUTED = colors.HexColor("#F0F4F8") # pearl box background
C_WARN = colors.HexColor("#FFF3CD") # trap/warning boxes
C_GREEN = colors.HexColor("#D5F5E3") # green header rows
C_GREEN_D = colors.HexColor("#1E8449") # dark green text
C_RED = colors.HexColor("#FADBD8") # danger highlight
C_WHITE = colors.white
C_BLACK = colors.HexColor("#1A1A1A")
C_GREY_LINE = colors.HexColor("#BDC3C7")
W = A4[0] - 28*mm # usable width
# ── Styles ─────────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()
def S(name, **kw):
return ParagraphStyle(name, **kw)
TITLE = S("T", fontName="Helvetica-Bold", fontSize=18, textColor=C_WHITE, alignment=TA_CENTER, spaceAfter=2)
SUBTITLE= S("ST", fontName="Helvetica", fontSize=10, textColor=C_LIGHT, alignment=TA_CENTER, spaceAfter=6)
SEC = S("SE", fontName="Helvetica-Bold", fontSize=12, textColor=C_WHITE, alignment=TA_LEFT, spaceAfter=2, spaceBefore=4)
BODY = S("B", fontName="Helvetica", fontSize=9, textColor=C_BLACK, leading=13, spaceAfter=2)
BOLD = S("BD", fontName="Helvetica-Bold", fontSize=9, textColor=C_BLACK, leading=13, spaceAfter=2)
SMALL = S("SM", fontName="Helvetica", fontSize=8, textColor=C_BLACK, leading=11)
SMALL_B = S("SB", fontName="Helvetica-Bold", fontSize=8, textColor=C_BLACK, leading=11)
MNE = S("MN", fontName="Helvetica-BoldOblique", fontSize=9, textColor=C_NAVY, leading=13, spaceAfter=2)
PEARL = S("PL", fontName="Helvetica", fontSize=8.5,textColor=C_BLACK, leading=12, spaceAfter=1)
TRAP_S = S("TR", fontName="Helvetica-BoldOblique", fontSize=8.5, textColor=colors.HexColor("#7D3C00"), leading=12)
TH = S("TH", fontName="Helvetica-Bold", fontSize=8.5,textColor=C_WHITE, alignment=TA_CENTER, leading=11)
TC = S("TC", fontName="Helvetica", fontSize=8.5,textColor=C_BLACK, leading=11)
TC_B = S("TCB",fontName="Helvetica-Bold", fontSize=8.5,textColor=C_BLACK, leading=11)
TC_I = S("TCI",fontName="Helvetica-Oblique", fontSize=8.5,textColor=C_BLACK, leading=11)
def ph(text, style=BODY): return Paragraph(text, style)
def sp(h=4): return Spacer(1, h*mm)
def hr(): return HRFlowable(width="100%", thickness=0.5, color=C_GREY_LINE, spaceAfter=3, spaceBefore=3)
# ── Section header bar ─────────────────────────────────────────────────────────
def sec_header(text, color=C_ACCENT):
t = Table([[ph(text, SEC)]], colWidths=[W])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), color),
("TOPPADDING", (0,0),(-1,-1), 5),
("BOTTOMPADDING",(0,0),(-1,-1), 5),
("LEFTPADDING", (0,0),(-1,-1), 8),
("RIGHTPADDING",(0,0),(-1,-1), 8),
]))
return t
# ── Coloured box (mnemonic / pearl / trap) ─────────────────────────────────────
def box(text, bg=C_MUTED, style=PEARL, label=None):
content = (f"<b>{label}</b> " if label else "") + text
t = Table([[ph(content, style)]], colWidths=[W])
t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1), bg),
("TOPPADDING",(0,0),(-1,-1), 5),
("BOTTOMPADDING",(0,0),(-1,-1), 5),
("LEFTPADDING",(0,0),(-1,-1), 8),
("RIGHTPADDING",(0,0),(-1,-1), 8),
("BOX",(0,0),(-1,-1),0.5,C_GREY_LINE),
]))
return t
def mne_box(text): return box(text, bg=C_LIGHT, style=MNE, label="Mnemonic:")
def pearl_box(text):return box(text, bg=C_MUTED, style=PEARL,label="HKMLE Pearl:")
def trap_box(text): return box(text, bg=C_WARN, style=TRAP_S,label="Exam Trap:")
def paper_box(text):return box(f"<b>Paper:</b> {text}", bg=C_GREEN, style=PEARL)
# ── Generic table builder ──────────────────────────────────────────────────────
def build_table(headers, rows, col_widths, zebra=True, header_color=C_NAVY):
header_row = [ph(h, TH) for h in headers]
data = [header_row]
for i, row in enumerate(rows):
bg = C_LIGHT if (zebra and i % 2 == 0) else C_WHITE
data.append([ph(str(c), TC) for c in row])
style = [
("BACKGROUND", (0,0), (-1,0), header_color),
("ROWBACKGROUNDS",(0,1),(-1,-1), [C_LIGHT, C_WHITE] if zebra else [C_WHITE]),
("GRID", (0,0), (-1,-1), 0.4, C_GREY_LINE),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING",(0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 5),
("VALIGN", (0,0), (-1,-1), "TOP"),
]
t = Table(data, colWidths=col_widths)
t.setStyle(TableStyle(style))
return t
# ══════════════════════════════════════════════════════════════════════════════
# DOCUMENT CONTENT
# ══════════════════════════════════════════════════════════════════════════════
story = []
# ── TITLE BLOCK ────────────────────────────────────────────────────────────────
title_data = [[
ph("HKMLE HIGH-YIELD", TITLE),
ph("RESPIRATORY PHARMACOLOGY", TITLE),
]]
# Single-cell banner
banner = Table([[ph("HKMLE HIGH-YIELD: RESPIRATORY PHARMACOLOGY", TITLE)]], colWidths=[W])
banner.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1), C_NAVY),
("TOPPADDING",(0,0),(-1,-1), 10),
("BOTTOMPADDING",(0,0),(-1,-1), 6),
("LEFTPADDING",(0,0),(-1,-1), 10),
]))
story.append(banner)
sub = Table([[ph("Compiled from Katzung · Lippincott · Goodman & Gilman · Murray & Nadel", SUBTITLE)]], colWidths=[W])
sub.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1), C_ACCENT),
("TOPPADDING",(0,0),(-1,-1), 4),
("BOTTOMPADDING",(0,0),(-1,-1), 4),
]))
story.append(sub)
story.append(sp(3))
story.append(mne_box('"BALTICS" — Beta-2 agonists | Anticholinergics | Leukotriene modifiers | Theophylline | ICS | Chromones | Steroids (systemic) + biologics'))
story.append(sp(4))
# ══════════════════════════════════════════════════════════════════════════════
# 1. BETA-2 AGONISTS
# ══════════════════════════════════════════════════════════════════════════════
story.append(sec_header("1. BETA-2 AGONISTS"))
story.append(sp(2))
story.append(ph("<b>SABA:</b> Salbutamol (albuterol), Terbutaline <b>LABA:</b> Salmeterol, Formoterol", BODY))
story.append(sp(2))
b2_headers = ["", "SABA", "LABA"]
b2_rows = [
["Mechanism", "Beta-2 agonist → cAMP ↑ → airway smooth muscle relaxation", "Same, longer duration"],
["Indication", "Acute asthma rescue; acute COPD exacerbation", "Step 3+ asthma (with ICS); COPD maintenance"],
["SE", "Tremor, tachycardia, hypokalaemia, hyperglycaemia", "Same + asthma death risk if used without ICS"],
["CI", "None absolute", "Monotherapy in asthma (black box)"],
]
story.append(build_table(b2_headers, b2_rows, [25*mm, 75*mm, 75*mm]))
story.append(sp(2))
story.append(paper_box("I (mechanism, SE) | III (step therapy)"))
story.append(sp(1))
story.append(trap_box(
"Trap 1: Salbutamol → hypokalaemia (beta-2 drives K+ into cells). Tested in overdose/ICU scenarios. "
"Trap 2: LABA alone in asthma = contraindicated — must always combine with ICS. "
"Formoterol has fast onset (can double as rescue); salmeterol does not."
))
story.append(sp(4))
# ══════════════════════════════════════════════════════════════════════════════
# 2. ANTICHOLINERGICS
# ══════════════════════════════════════════════════════════════════════════════
story.append(sec_header("2. ANTICHOLINERGICS (SAMA / LAMA)"))
story.append(sp(2))
story.append(mne_box('"I\'m SAMA, Tio\'s LAMA" — Ipratropium = SAMA; Tiotropium = LAMA'))
story.append(sp(2))
ac_headers = ["", "Ipratropium (SAMA)", "Tiotropium (LAMA)"]
ac_rows = [
["Mechanism", "M3 antagonist → blocks bronchoconstriction", "Same, higher affinity, once-daily"],
["Indication", "Acute severe asthma (ER add-on to SABA); COPD exacerbation", "COPD maintenance (1st line); add-on in severe asthma"],
["SE", "Dry mouth, urinary retention, blurred vision, constipation", "Same (minimal systemic — quaternary compound, poor absorption)"],
["CI", "Narrow-angle glaucoma, BPH (relative)", "Same"],
]
story.append(build_table(ac_headers, ac_rows, [25*mm, 82*mm, 68*mm]))
story.append(sp(2))
story.append(paper_box("I (mechanism) | III (COPD management)"))
story.append(sp(1))
story.append(trap_box(
"Quaternary ammonium structure = does NOT cross BBB = no CNS effects. Inhaled only. "
"Tiotropium in COPD reduces exacerbations and improves exercise tolerance."
))
story.append(sp(4))
# ══════════════════════════════════════════════════════════════════════════════
# 3. ICS
# ══════════════════════════════════════════════════════════════════════════════
story.append(sec_header("3. INHALED CORTICOSTEROIDS (ICS)"))
story.append(sp(2))
story.append(ph("<b>Drugs:</b> Beclomethasone, Budesonide, Fluticasone, Mometasone", BODY))
story.append(mne_box('"Rinse or you\'ll get Thrush" — rinse mouth after every dose'))
story.append(sp(2))
ics_headers = ["Feature", "Details"]
ics_rows = [
["Mechanism", "Glucocorticoid receptor activation → suppress eosinophilic airway inflammation"],
["Indication", "Persistent asthma (step 2 onward); COPD with recurrent exacerbations (combined with LABA)"],
["Local SE", "Oral candidiasis, dysphonia (hoarseness)"],
["Systemic SE", "Rare at low dose; high dose → adrenal suppression, growth retardation (children), osteoporosis, cataracts"],
["Prevention", "Rinse mouth after use; use spacer"],
["CI", "No absolute CI; caution in active TB"],
]
story.append(build_table(ics_headers, ics_rows, [35*mm, 140*mm]))
story.append(sp(2))
story.append(paper_box("I (SE, mechanism) | III (step-up therapy, paediatric asthma)"))
story.append(sp(1))
story.append(trap_box("ICS do NOT cause systemic Cushing's at standard doses. Growth suppression is the paediatric exam question."))
story.append(sp(4))
# ══════════════════════════════════════════════════════════════════════════════
# 4. THEOPHYLLINE
# ══════════════════════════════════════════════════════════════════════════════
story.append(sec_header("4. THEOPHYLLINE"))
story.append(sp(2))
story.append(mne_box('"TANS" — Theophylline toxicity: Tachycardia | Arrhythmia | Nausea | Seizures'))
story.append(sp(2))
theo_headers = ["Feature", "Details"]
theo_rows = [
["Mechanism", "PDE inhibitor → cAMP ↑ → bronchodilation; also adenosine receptor antagonist"],
["Indication", "Chronic asthma/COPD (3rd line); IV aminophylline for acute severe asthma"],
["Therapeutic range", "10–20 mg/L (narrow therapeutic index)"],
["Toxic SE (>20 mg/L)","Seizures, ventricular arrhythmias, N&V, tachycardia"],
["CI", "Epilepsy, cardiac arrhythmias"],
]
story.append(build_table(theo_headers, theo_rows, [40*mm, 135*mm]))
story.append(sp(2))
# Drug interactions sub-table
story.append(ph("<b>Drug Interactions (heavily tested):</b>", BOLD))
story.append(sp(1))
di_headers = ["Increases Theophylline Levels (toxicity risk)", "Decreases Theophylline Levels"]
di_rows = [["Ciprofloxacin, Erythromycin, Cimetidine (CYP1A2 inhibitors)", "Rifampicin, Phenytoin, Smoking (CYP1A2 inducers)"]]
story.append(build_table(di_headers, di_rows, [87.5*mm, 87.5*mm]))
story.append(sp(2))
story.append(paper_box("I (interactions, toxicity — high yield) | II (toxicology/prescribing)"))
story.append(sp(1))
story.append(trap_box("Patient on theophylline starts ciprofloxacin for chest infection → theophylline toxicity. Classic HKMLE scenario."))
story.append(sp(4))
# ══════════════════════════════════════════════════════════════════════════════
# 5. LEUKOTRIENE MODIFIERS
# ══════════════════════════════════════════════════════════════════════════════
story.append(sec_header("5. LEUKOTRIENE MODIFIERS"))
story.append(sp(2))
story.append(ph("<b>Drugs:</b> Montelukast (LTRA), Zafirlukast (LTRA), Zileuton (5-LOX inhibitor)", BODY))
story.append(mne_box('"Montelukast for Aspirin Asthma & Allergic Athletes"'))
story.append(sp(2))
lt_headers = ["Feature", "Details"]
lt_rows = [
["Mechanism", "Block CysLT1 receptors → reduce bronchoconstriction + eosinophil recruitment"],
["Indication", "Mild persistent asthma (add-on or ICS alternative); aspirin/NSAID-exacerbated asthma; allergic rhinitis; exercise-induced bronchospasm"],
["SE", "Neuropsychiatric effects (depression, suicidality — FDA black box); Churg-Strauss vasculitis (rare, on steroid taper)"],
["Advantage", "Oral; useful in aspirin-sensitive asthma"],
["CI", "Caution with psychiatric history"],
]
story.append(build_table(lt_headers, lt_rows, [35*mm, 140*mm]))
story.append(sp(2))
story.append(paper_box("I | III"))
story.append(sp(1))
story.append(trap_box(
"Trap 1: Drug of choice for aspirin-sensitive (AERD) asthma = LTRA. Very high-yield. "
"Trap 2: Churg-Strauss — eosinophilic vasculitis appearing when oral steroids are tapered."
))
story.append(sp(4))
# ══════════════════════════════════════════════════════════════════════════════
# 6. MAST CELL STABILISERS
# ══════════════════════════════════════════════════════════════════════════════
story.append(sec_header("6. MAST CELL STABILISERS"))
story.append(sp(2))
story.append(ph("<b>Drugs:</b> Sodium cromoglicate (cromolyn), Nedocromil", BODY))
story.append(sp(2))
mc_headers = ["Feature", "Details"]
mc_rows = [
["Mechanism", "Inhibit mast cell degranulation → block histamine + leukotriene release"],
["Indication", "Prophylaxis: mild asthma, exercise-induced bronchospasm, allergic rhinitis"],
["SE", "Minimal; cough/throat irritation"],
["CI", "NOT for acute attacks — prophylaxis only"],
]
story.append(build_table(mc_headers, mc_rows, [35*mm, 140*mm]))
story.append(sp(2))
story.append(paper_box("I"))
story.append(sp(1))
story.append(pearl_box("Rarely used in practice but appear in mechanism-type Paper I MCQs."))
story.append(sp(4))
# ══════════════════════════════════════════════════════════════════════════════
# 7. BIOLOGICS
# ══════════════════════════════════════════════════════════════════════════════
story.append(sec_header("7. BIOLOGICS"))
story.append(sp(2))
story.append(mne_box('"O-M-D targets IgE, IL-5, IL-4" — Omalizumab | Mepolizumab | Dupilumab'))
story.append(sp(2))
bio_headers = ["Drug", "Target", "Indication", "Key SE"]
bio_rows = [
["Omalizumab", "Anti-IgE", "Severe allergic asthma (elevated IgE, allergen sensitised)", "Anaphylaxis (30-min observation required), injection site reactions"],
["Mepolizumab /\nBenralizumab", "Anti-IL-5 (↓ eosinophils)", "Severe eosinophilic asthma", "Injection site reactions"],
["Dupilumab", "Anti-IL-4/IL-13", "Severe type-2 asthma; also atopic dermatitis + nasal polyps", "Injection site; transient eosinophilia"],
]
story.append(build_table(bio_headers, bio_rows, [35*mm, 32*mm, 65*mm, 43*mm]))
story.append(sp(2))
story.append(paper_box("I (mechanism) | III (patient selection)"))
story.append(sp(1))
story.append(pearl_box("Omalizumab prerequisite: elevated serum IgE AND documented allergen sensitisation."))
story.append(sp(4))
# ══════════════════════════════════════════════════════════════════════════════
# COMPARISON TABLE
# ══════════════════════════════════════════════════════════════════════════════
story.append(sec_header("ASTHMA vs COPD: DRUG OF CHOICE SUMMARY", color=C_NAVY))
story.append(sp(2))
cmp_headers = ["Drug Class", "Asthma", "COPD"]
cmp_rows = [
["SABA", "1st-line rescue", "Rescue (as needed)"],
["LABA", "Add-on to ICS only", "1st-line maintenance (can use alone)"],
["LAMA (Tiotropium)", "Add-on in severe/uncontrolled", "1st-line maintenance (preferred)"],
["ICS", "Cornerstone (step 2+)", "Only if frequent exacerbations"],
["Theophylline", "3rd line", "3rd line"],
["LTRA", "Add-on / aspirin asthma", "Not indicated"],
["Biologics", "Severe uncontrolled", "Not indicated"],
]
story.append(build_table(cmp_headers, cmp_rows, [45*mm, 72.5*mm, 57.5*mm]))
story.append(sp(4))
# ══════════════════════════════════════════════════════════════════════════════
# TOP EXAM TRAPS
# ══════════════════════════════════════════════════════════════════════════════
story.append(sec_header("TOP EXAM TRAPS AT A GLANCE", color=colors.HexColor("#7D3C00")))
story.append(sp(2))
trap_headers = ["Scenario", "Answer"]
trap_rows = [
["Salbutamol overdose → low K+", "Beta-2 agonist shifts K+ intracellularly"],
["LABA without ICS in asthma", "Contraindicated — increases asthma mortality"],
["Aspirin-sensitive asthma drug", "Montelukast (LTRA)"],
["Theophylline + ciprofloxacin", "Toxicity (CYP1A2 inhibition ↑ theophylline levels)"],
["Theophylline + rifampicin/smoking", "Sub-therapeutic levels (CYP1A2 induction)"],
["ICS side effect prevented by rinsing mouth","Oral candidiasis"],
["Tiotropium vs Ipratropium", "Tiotropium = LAMA, once daily, COPD maintenance"],
["Omalizumab requirement", "High IgE + allergen sensitisation"],
["Montelukast CNS warning", "Depression / suicidal ideation"],
["LABA monotherapy: OK in COPD?", "Yes. OK in COPD, NOT in asthma"],
]
t = Table(
[[ph(r[0], TC_B), ph(r[1], TC)] for r in [["Scenario","Answer"]] + trap_rows],
colWidths=[87.5*mm, 87.5*mm]
)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), colors.HexColor("#7D3C00")),
("ROWBACKGROUNDS",(0,1),(-1,-1), [C_WARN, C_WHITE]),
("GRID", (0,0), (-1,-1), 0.4, C_GREY_LINE),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING",(0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 5),
("VALIGN", (0,0), (-1,-1), "TOP"),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTCOLOR", (0,0), (-1,0), C_WHITE),
("FONTSIZE", (0,0), (-1,-1), 8.5),
]))
story.append(t)
story.append(sp(4))
# ══════════════════════════════════════════════════════════════════════════════
# PAGE BREAK → NEW SECTIONS
# ══════════════════════════════════════════════════════════════════════════════
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# SECTION A: TB DRUGS
# ══════════════════════════════════════════════════════════════════════════════
tb_banner = Table([[ph("SECTION A: TB DRUGS (RIPE)", TITLE)]], colWidths=[W])
tb_banner.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1), C_NAVY),
("TOPPADDING",(0,0),(-1,-1), 8),
("BOTTOMPADDING",(0,0),(-1,-1), 6),
("LEFTPADDING",(0,0),(-1,-1), 10),
]))
story.append(tb_banner)
story.append(sp(3))
story.append(mne_box(
'"RIP PE" — Rifampicin (orange urine/secretions) | INH (neuropathy/hepatitis) | '
'Pyrazinamide (urate/gout) | Pyridoxine needed for INH | Ethambutol (Eyes — optic neuritis)'
))
story.append(sp(3))
tb_headers = ["Drug", "Mechanism (1 line)", "Unique Toxicity", "HKMLE Pearl"]
tb_rows = [
[
"Rifampicin",
"Inhibits bacterial DNA-dependent RNA polymerase",
"Orange/red discolouration of urine, tears, sweat; hepatotoxicity; potent CYP450 inducer (↓ OCP, warfarin, many drugs)",
"Classic exam question: patient on OCP + rifampicin → unintended pregnancy. Always warn about drug interactions.",
],
[
"Isoniazid (INH)",
"Inhibits mycolic acid synthesis (InhA)",
"Peripheral neuropathy (B6 deficiency → give pyridoxine prophylactically); hepatotoxicity; SLE-like syndrome (slow acetylators)",
"Give pyridoxine (Vit B6) with INH to prevent neuropathy. Slow acetylators at higher toxicity risk.",
],
[
"Pyrazinamide",
"Disrupts mycobacterial cell membrane pH",
"Hyperuricaemia/gout (most common); hepatotoxicity; arthralgia",
"PZA causes gout — check uric acid. Causes most hepatotoxicity in RIPE regimen.",
],
[
"Ethambutol",
"Inhibits arabinosyl transferase (cell wall)",
"Optic neuritis: reduced visual acuity, red-green colour blindness (dose-dependent, usually reversible)",
"Always check baseline and monitor visual acuity. Stop immediately if visual changes occur.",
],
]
story.append(build_table(tb_headers, tb_rows, [25*mm, 42*mm, 58*mm, 50*mm]))
story.append(sp(2))
story.append(paper_box("I (mechanism, drug interactions) | II (TB drug emergency — hepatotoxicity, optic neuritis)"))
story.append(sp(2))
story.append(trap_box(
"Trap 1: Rifampicin is a potent CYP450 inducer — reduces efficacy of OCP, warfarin, antiretrovirals, methadone. "
"Trap 2: INH neuropathy prevented by pyridoxine (B6). "
"Trap 3: Ethambutol — stop the drug if ANY visual change reported. "
"Trap 4: All four drugs cause hepatotoxicity — check LFTs at baseline and during treatment."
))
story.append(sp(4))
# ══════════════════════════════════════════════════════════════════════════════
# SECTION B: PNEUMONIA ANTIBIOTICS
# ══════════════════════════════════════════════════════════════════════════════
story.append(sec_header("SECTION B: PNEUMONIA ANTIBIOTICS (CAP vs HAP)"))
story.append(sp(2))
pna_headers = ["Setting", "First-Line", "Alternative"]
pna_rows = [
[
"CAP — Outpatient\n(no comorbidities)",
"Amoxicillin PO\nor\nDoxycycline PO",
"Azithromycin PO (if low resistance)\nLevofloxacin PO (respiratory quinolone)",
],
[
"CAP — Outpatient\n(with comorbidities: DM, CKD, heart/lung disease)",
"Amoxicillin-clavulanate PO\n+ Azithromycin PO\nor Respiratory quinolone (levofloxacin) PO",
"Moxifloxacin PO",
],
[
"CAP — Inpatient\n(non-ICU)",
"Beta-lactam IV (ampicillin-sulbactam or ceftriaxone)\n+ Azithromycin IV/PO\nor\nRespiratory quinolone alone",
"Ceftriaxone + Doxycycline",
],
[
"CAP — Inpatient\n(ICU / severe)",
"Beta-lactam IV + Azithromycin IV\nor\nBeta-lactam IV + Respiratory quinolone IV",
"If Pseudomonas risk: pip-tazo or cefepime + ciprofloxacin",
],
[
"HAP — Non-severe\n(no MRSA risk, no Pseudomonas risk)",
"Piperacillin-tazobactam IV\nor\nCeftriaxone IV",
"Levofloxacin IV",
],
[
"HAP — Severe\n(MRSA risk, late-onset, prior antibiotics)",
"Vancomycin IV or Linezolid IV\n+ Anti-pseudomonal beta-lactam\n(pip-tazo or meropenem)",
"Ceftazidime or cefepime + vancomycin",
],
]
story.append(build_table(pna_headers, pna_rows, [42*mm, 77*mm, 56*mm]))
story.append(sp(2))
story.append(paper_box("I (antibiotic mechanism/spectrum) | III (clinical prescribing scenarios)"))
story.append(sp(1))
story.append(pearl_box(
"Atypical cover (Legionella, Mycoplasma, Chlamydophila) requires azithromycin or a quinolone — beta-lactam alone is insufficient. "
"In HK, always consider TB before starting empirical antibiotics for unresolved pneumonia."
))
story.append(sp(1))
story.append(trap_box(
"Trap 1: Macrolide (azithromycin) or doxycycline for atypical CAP — these cover Mycoplasma, Legionella, Chlamydophila. "
"Trap 2: HAP = pneumonia developing ≥48 h after hospital admission. Broader cover needed. "
"Trap 3: MRSA-risk patients (prior MRSA, penetrating chest wound) require vancomycin or linezolid."
))
story.append(sp(4))
# ══════════════════════════════════════════════════════════════════════════════
# SECTION C: INHALER DEVICES
# ══════════════════════════════════════════════════════════════════════════════
story.append(sec_header("SECTION C: INHALER DEVICES"))
story.append(sp(2))
dev_headers = ["Device", "When to Use", "Key Point"]
dev_rows = [
[
"MDI\n(Metered Dose Inhaler)",
"Standard first-line delivery device for all ages (with spacer in children/elderly)",
"Requires good coordination between actuation and inhalation. CFC-free now standard. Requires slow, deep inhalation.",
],
[
"DPI\n(Dry Powder Inhaler)\ne.g. Turbuhaler, Accuhaler",
"Patients who cannot coordinate MDI (no need to press + breathe simultaneously)",
"Requires fast, deep inspiratory effort to aerosolise powder — NOT suitable during acute severe asthma (weak inspiratory flow).",
],
[
"Spacer\n(Valved Holding Chamber)",
"Used with MDI — children, elderly, acute exacerbations, poor technique",
"Reduces oropharyngeal deposition → less oral candidiasis. Equivalent to nebuliser in acute mild-moderate asthma.",
],
[
"Nebuliser",
"Acute severe asthma/COPD exacerbation; patients unable to use any handheld device",
"Driven by O2 (asthma) or air (COPD — avoid high FiO2). Slower to set up than MDI + spacer.",
],
[
"Soft Mist Inhaler\n(e.g. Respimat — tiotropium)",
"COPD maintenance; elderly with low inspiratory flow",
"Produces slow aerosol cloud — less effort needed than DPI. Better lung deposition than standard MDI.",
],
]
story.append(build_table(dev_headers, dev_rows, [32*mm, 55*mm, 88*mm]))
story.append(sp(2))
story.append(paper_box("I (device selection MCQs) | III (prescribing appropriate device for patient scenario)"))
story.append(sp(1))
story.append(trap_box(
"Trap 1: DPI cannot be used during acute severe asthma — insufficient inspiratory flow. "
"Trap 2: Spacer with MDI is equivalent to nebuliser for mild-moderate exacerbations — no need to wait for nebuliser. "
"Trap 3: COPD + nebuliser → use air-driven, NOT oxygen-driven, to avoid hypercapnic drive suppression."
))
story.append(sp(4))
# ══════════════════════════════════════════════════════════════════════════════
# PAGE BREAK → CHEAT SHEETS
# ══════════════════════════════════════════════════════════════════════════════
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# QUICK MNEMONICS CHEAT SHEET
# ══════════════════════════════════════════════════════════════════════════════
mne_banner = Table([[ph("QUICK MNEMONICS CHEAT SHEET", TITLE)]], colWidths=[W])
mne_banner.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1), C_NAVY),
("TOPPADDING",(0,0),(-1,-1), 8),
("BOTTOMPADDING",(0,0),(-1,-1), 6),
("LEFTPADDING",(0,0),(-1,-1), 10),
]))
story.append(mne_banner)
story.append(sp(3))
mne_headers = ["Mnemonic", "Stands For", "What it Helps You Remember"]
mne_rows = [
["BALTICS", "Beta-2 | Anticholinergics | Leukotriene | Theophylline | ICS | Chromones | Steroids+biologics", "Complete drug class list for respiratory pharmacology"],
["I'm SAMA, Tio's LAMA", "Ipratropium = SAMA; Tiotropium = LAMA", "Duration classification of anticholinergics"],
["Rinse or you'll get Thrush", "Rinse mouth after ICS", "Prevents oral candidiasis from ICS"],
["TANS", "Tachycardia | Arrhythmia | Nausea | Seizures", "Theophylline toxicity features (>20 mg/L)"],
["Montelukast for Aspirin Asthma & Allergic Athletes", "LTRA = first choice for AERD + exercise-induced", "Key indications of leukotriene modifiers"],
["O-M-D targets IgE, IL-5, IL-4", "Omalizumab | Mepolizumab | Dupilumab", "Biologic targets — matched to drug names"],
["RIP PE", "Rifampicin (orange) | INH (neuropathy) | Pyrazinamide (urate) | Pyridoxine for INH | Ethambutol (Eyes)", "TB drug unique toxicities"],
]
story.append(build_table(mne_headers, mne_rows, [38*mm, 72*mm, 65*mm]))
story.append(sp(4))
# ══════════════════════════════════════════════════════════════════════════════
# HKMLE PAPER DISTRIBUTION SUMMARY
# ══════════════════════════════════════════════════════════════════════════════
dist_banner = Table([[ph("HKMLE PAPER DISTRIBUTION SUMMARY", TITLE)]], colWidths=[W])
dist_banner.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1), C_NAVY),
("TOPPADDING",(0,0),(-1,-1), 8),
("BOTTOMPADDING",(0,0),(-1,-1), 6),
("LEFTPADDING",(0,0),(-1,-1), 10),
]))
story.append(dist_banner)
story.append(sp(3))
dist_headers = ["Topic", "Paper I\n(Basic Sciences / Pharmacology MCQ)", "Paper II\n(Clinical Sciences / Prescribing)", "Paper III\n(Clinical Management / SAQ)"]
dist_rows = [
["Beta-2 Agonists (SABA/LABA)", "Mechanism, SE, hypokalaemia", "Overdose, pregnancy use", "Asthma step therapy, acute management"],
["Anticholinergics (SAMA/LAMA)", "Mechanism, receptor subtypes", "—", "COPD maintenance, acute severe asthma ER"],
["Inhaled Corticosteroids", "Mechanism, local/systemic SE", "Paediatric growth, pregnancy", "Step-up therapy, paediatric asthma"],
["Theophylline", "Mechanism, drug interactions (HIGH YIELD)", "Toxicity management, drug interactions", "3rd-line role, monitoring"],
["Leukotriene Modifiers", "Mechanism, receptor type", "Psychiatric SE (black box)", "Aspirin asthma, add-on therapy"],
["Mast Cell Stabilisers", "Mechanism type MCQ", "—", "Exercise-induced prophylaxis"],
["Biologics", "Target (IgE, IL-5, IL-4/13)", "Anaphylaxis risk (omalizumab)", "Severe asthma patient selection"],
["TB Drugs (RIPE)", "Mechanism, interactions (rifampicin)", "Hepatotoxicity, optic neuritis emergencies", "TB treatment initiation, monitoring"],
["Pneumonia Antibiotics", "Antibiotic spectrum/mechanism", "CAP prescribing, atypical cover", "CAP/HAP management, MRSA scenarios"],
["Inhaler Devices", "Device selection MCQs", "Prescribing appropriate device", "Acute asthma — spacer vs nebuliser"],
]
story.append(build_table(dist_headers, dist_rows, [38*mm, 48*mm, 45*mm, 44*mm]))
story.append(sp(3))
# ── final note ─────────────────────────────────────────────────────────────────
story.append(box(
"These notes are compiled from Katzung's Basic & Clinical Pharmacology (16e), Lippincott Illustrated Reviews Pharmacology, "
"Goodman & Gilman's Pharmacological Basis of Therapeutics, and Murray & Nadel's Textbook of Respiratory Medicine. "
"Content is curated for HKMLE relevance. Always cross-reference with current HKMLE guidelines.",
bg=C_MUTED, style=SMALL
))
# ── BUILD ──────────────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
topMargin=14*mm,
bottomMargin=14*mm,
leftMargin=14*mm,
rightMargin=14*mm,
)
doc.build(story)
print(f"PDF written: {OUTPUT}")
cd /home/daytona/workspace/resp-pharm && python3 build_pdf.py 2>&1
Give me high-yield HKMLE Pharmacology notes on the following topics with mnemonics, in an easy-to-read format. Include only what is necessary for the HKMLE exam. Do not add extra details unless they are clinically important for the exam. For each drug or drug class, tell me: 1. Mechanism (simple) 2. Key indications (HKMLE-relevant) 3. Major side effects (exam-tested) 4. Contraindications (if any) 5. Where this topic appears in HKMLE (Paper I, II, or III) Use tables where helpful. No long paragraphs. No fluff. Match the style of my existing HKMLE notes. Topics: 1. Autacoids (histamine, H1/H2 antihistamines, serotonin, prostaglandins, leukotrienes) 2. Gonadal hormones and contraceptives (estrogen, progesterone, OCPs, anti-estrogens, anti-androgens) 3. Antineoplastic drugs (alkylating agents, antimetabolites, plant alkaloids, platinum drugs, doxorubicin) 4. Immunomodulators (cyclosporine, tacrolimus, sirolimus, azathioprine, mycophenolate mofetil) 5. Antiviral drugs (acyclovir, ganciclovir, oseltamivir, remdesivir, ribavirin, antiretrovirals basics) 6. Antiprotozoal and anthelmintic drugs (chloroquine, metronidazole, albendazole, mebendazole, praziquantel) — brief
| 1st Generation | 2nd Generation | |
|---|---|---|
| Examples | Diphenhydramine, Chlorpheniramine, Promethazine | Cetirizine, Loratadine, Fexofenadine |
| Mechanism | H1 receptor antagonist + anticholinergic + anti-alpha | H1 receptor antagonist only |
| Indications | Allergic rhinitis, urticaria, motion sickness, PONV, anaphylaxis adjunct | Allergic rhinitis, urticaria, chronic urticaria |
| Key SE | Sedation, dry mouth, urinary retention, blurred vision, constipation | Minimal; cetirizine mildly sedating |
| CI | Glaucoma, BPH, elderly (anticholinergic effects) | None significant |
Exam trap: Diphenhydramine = H1 blocker + strong anticholinergic. Do NOT give to elderly (Beers Criteria). Promethazine causes extrapyramidal effects in children (avoid <2 years).
| Feature | Details |
|---|---|
| Mechanism | Competitive H2 receptor antagonist on parietal cells → ↓ gastric acid secretion |
| Indications | Peptic ulcer disease, GERD, Zollinger-Ellison syndrome |
| SE | Generally well tolerated; Cimetidine - gynaecomastia, impotence (anti-androgen), drug interactions (CYP450 inhibitor) |
| CI | Cimetidine: avoid with warfarin, theophylline, phenytoin (increases levels) |
Exam trap: Cimetidine inhibits CYP450 → increases levels of warfarin, theophylline, phenytoin. Classic HKMLE interaction question.
| Drug | Mechanism | Indication | Key SE |
|---|---|---|---|
| Ondansetron | 5-HT3 antagonist | Chemotherapy-induced N&V, PONV | Headache, constipation, QT prolongation |
| Sumatriptan | 5-HT1B/1D agonist → vasoconstriction | Acute migraine | Coronary vasospasm - avoid in ischaemic heart disease |
| Metoclopramide | D2 + 5-HT3 antagonist; 5-HT4 agonist | N&V, gastroparesis | Extrapyramidal effects, tardive dyskinesia |
Exam trap: Sumatriptan is contraindicated in ischaemic heart disease and uncontrolled hypertension (coronary vasospasm risk).
| Drug | Class | Indication | Key SE |
|---|---|---|---|
| Misoprostol | PGE1 analogue | Peptic ulcer prophylaxis (with NSAIDs); cervical ripening; PPH | Diarrhoea, uterine contractions - CI in pregnancy (abortifacient) |
| Latanoprost | PGF2α analogue | Glaucoma (↓ IOP) | Darkening of iris, eyelash growth |
| Alprostadil | PGE1 | Erectile dysfunction; keep PDA open (neonates) | Penile pain, hypotension |
| Montelukast | LTD4 (CysLT1) antagonist | Asthma, aspirin-sensitive asthma, allergic rhinitis | Depression/suicidality (FDA black box) |
Exam trap: Misoprostol is contraindicated in pregnancy for peptic ulcer use (causes abortion). NSAIDs block COX → ↓ protective PGs → gastric ulcer; misoprostol replaces them.
| Feature | Details |
|---|---|
| Mechanism | Oestrogen + progestogen → suppress LH/FSH via negative feedback → inhibit ovulation |
| Indications | Contraception, dysmenorrhoea, endometriosis, PCOS, HRT, acne |
| Key SE | VTE (↑ clotting factors), hypertension, nausea, breast tenderness, breakthrough bleeding, chloasma, cholestasis |
| CI | VTE/DVT history, migraine with aura, >35 + smoking, breast cancer, active liver disease, uncontrolled HTN |
Exam trap: OCP + rifampicin → unintended pregnancy (CYP450 induction reduces OCP levels). OCP + migraine with aura = ABSOLUTE contraindication (stroke risk).
| Feature | Details |
|---|---|
| Mechanism | Thickens cervical mucus; inhibits ovulation (higher dose depot/implant only) |
| Indications | Contraception in women where oestrogen is contraindicated (post-DVT, migraine with aura, breastfeeding, smokers >35) |
| SE | Irregular bleeding, amenorrhoea, weight gain, acne |
| CI | Unexplained vaginal bleeding, breast cancer (current) |
| Drug | Class | Mechanism | Indication | Key SE |
|---|---|---|---|---|
| Tamoxifen | SERM | Oestrogen antagonist in breast; agonist in uterus/bone | Breast cancer (ER+) treatment & prevention | Endometrial cancer (uterine agonist), VTE, hot flushes, menstrual irregularity |
| Clomiphene | SERM | Blocks oestrogen receptors in hypothalamus → ↑ FSH/LH release → stimulates ovulation | Female infertility (anovulation), PCOS | Ovarian hyperstimulation, multiple pregnancy, hot flushes |
| Letrozole / Anastrozole | Aromatase inhibitor | Block peripheral conversion of androgens → oestrogen | Post-menopausal ER+ breast cancer | Bone loss (osteoporosis), joint pain, hot flushes |
| Raloxifene | SERM | Oestrogen antagonist in breast & uterus; agonist in bone | Post-menopausal osteoporosis; breast cancer prevention | VTE, hot flushes — NO endometrial cancer risk (unlike tamoxifen) |
Exam trap 1: Tamoxifen = SERM — agonist in uterus → endometrial cancer risk. Raloxifene = SERM — antagonist in uterus → NO endometrial cancer risk. Classic differentiation question. Exam trap 2: Aromatase inhibitors ONLY work in post-menopausal women (ovaries still produce oestrogen pre-menopausally, bypassing the block).
| Drug | Mechanism | Indication | Key SE |
|---|---|---|---|
| Finasteride | 5α-reductase inhibitor → ↓ DHT | BPH, male pattern baldness | Sexual dysfunction, gynaecomastia; teratogenic (CI in pregnancy) |
| Spironolactone | Aldosterone + androgen receptor antagonist | Hirsutism, PCOS, heart failure (diuretic) | Hyperkalaemia, gynaecomastia, menstrual irregularity |
| Cyproterone | Androgen receptor antagonist | Prostate cancer, severe acne, hirsutism | Hepatotoxicity, sexual dysfunction |
| Flutamide / Enzalutamide | Androgen receptor antagonist | Prostate cancer | Hepatotoxicity (flutamide), diarrhoea |
Exam trap: Finasteride is teratogenic to male foetuses (inhibits DHT needed for male external genitalia development) — women of childbearing age must not handle crushed tablets.
| Feature | Details |
|---|---|
| Mechanism | Form covalent cross-links in DNA → prevent DNA replication (cell cycle non-specific) |
| Indications | Lymphomas, leukaemias, multiple myeloma, solid tumours, immunosuppression (SLE, vasculitis) |
| Class SE | Myelosuppression, nausea/vomiting, infertility (gonadal toxicity), secondary malignancy (AML) |
| Unique SE | Cyclophosphamide/Ifosfamide: haemorrhagic cystitis (acrolein metabolite) → prevent with mesna |
| Busulfan unique | Pulmonary fibrosis, hyperpigmentation, seizures |
Exam trap: Haemorrhagic cystitis from cyclophosphamide — prevented by mesna + adequate hydration. Busulfan → pulmonary fibrosis (classic exam question).
| Drug | Mechanism | Indication | Unique Toxicity |
|---|---|---|---|
| Methotrexate (MTX) | DHFR inhibitor → blocks folate synthesis → ↓ DNA/RNA synthesis | ALL, NHL, breast cancer, choriocarcinoma, RA, psoriasis | Myelosuppression, mucositis, hepatotoxicity, pulmonary fibrosis; rescued by folinic acid (leucovorin) |
| 5-Fluorouracil (5-FU) | Thymidylate synthase inhibitor → ↓ thymidine → ↓ DNA synthesis | Colorectal, breast, gastric cancer | Myelosuppression, mucositis, hand-foot syndrome, cerebellar ataxia (high dose) |
| 6-Mercaptopurine (6-MP) | Purine analogue → inhibits purine synthesis | ALL, AML, IBD | Myelosuppression; interacts with allopurinol (xanthine oxidase inhibits 6-MP metabolism → toxicity) |
| Cytarabine (Ara-C) | Pyrimidine analogue → inhibits DNA polymerase | AML | Myelosuppression, cerebellar toxicity, conjunctivitis |
| Hydroxyurea | Ribonucleotide reductase inhibitor → ↓ DNA synthesis | CML, sickle cell disease (↑ HbF), essential thrombocythaemia | Myelosuppression, leg ulcers |
Exam trap 1: Methotrexate toxicity = rescue with folinic acid (leucovorin/folinate) — NOT folic acid. Exam trap 2: 6-Mercaptopurine + allopurinol = severe toxicity (allopurinol inhibits xanthine oxidase which metabolises 6-MP). Reduce 6-MP dose by 75% if must use together.
| Drug | Mechanism | Indication | Unique Toxicity |
|---|---|---|---|
| Vincristine | Bind tubulin → inhibit microtubule polymerisation → arrest mitosis at metaphase | ALL, lymphomas | Peripheral neuropathy (dose-limiting), SIADH — minimal myelosuppression |
| Vinblastine | Same as vincristine | Hodgkin's lymphoma, testicular cancer | Myelosuppression (dose-limiting), neuropathy (less than vincristine) |
| Paclitaxel / Docetaxel | Stabilise microtubules → prevent depolymerisation → arrest mitosis | Breast, ovarian, lung cancer | Peripheral neuropathy, myelosuppression, hypersensitivity reactions, alopecia |
| Etoposide | Topoisomerase II inhibitor | Lung cancer, testicular cancer, lymphomas | Myelosuppression, secondary AML |
| Irinotecan | Topoisomerase I inhibitor | Colorectal cancer | Delayed diarrhoea, myelosuppression |
Exam trap: Vincristine = neuropathy (dose-limiting), NOT myelosuppression. Vinblastine = myelosuppression (dose-limiting). These are almost always paired in an MCQ.
| Feature | Details |
|---|---|
| Mechanism | Form platinum-DNA adducts → cross-link DNA → inhibit replication |
| Indications | Cisplatin: testicular, bladder, ovarian, lung, head & neck cancer. Carboplatin: same (less toxic). Oxaliplatin: colorectal cancer |
| Cisplatin unique SE | Nephrotoxicity (dose-limiting; prevent with IV hydration + mannitol), ototoxicity (high-frequency hearing loss), severe N&V, peripheral neuropathy, hypomagnesaemia |
| Carboplatin SE | Less nephrotoxic, less ototoxic; myelosuppression (dose-limiting) |
| Oxaliplatin SE | Cold-induced peripheral neuropathy (sensory, acutely worsened by cold) |
Exam trap: Cisplatin = nephrotoxicity + ototoxicity + hypomagnesaemia. Carboplatin = myelosuppression. Oxaliplatin = cold-triggered neuropathy. These distinctions are directly tested.
| Feature | Details |
|---|---|
| Mechanism | Intercalate DNA + inhibit topoisomerase II + generate free radicals |
| Indications | Breast cancer, leukaemias, lymphomas, sarcomas |
| Dose-limiting SE | Cardiotoxicity (dilated cardiomyopathy) — cumulative dose-dependent; check EF before each cycle |
| Other SE | Myelosuppression, alopecia, mucositis, "red urine" (harmless metabolite) |
| Prevention | Dexrazoxane (iron chelator) protects heart; liposomal doxorubicin reduces cardiac SE |
| CI | Pre-existing cardiomyopathy; do not exceed lifetime cumulative dose |
Exam trap: Doxorubicin → cardiomyopathy. Cumulative dose-dependent. Must monitor LVEF. Dexrazoxane is the cardioprotective agent.
| Drug | Mechanism | Indications | Unique SE | Monitoring |
|---|---|---|---|---|
| Cyclosporine | Calcineurin inhibitor → binds cyclophilin → ↓ IL-2 → ↓ T-cell proliferation | Organ transplant, RA, psoriasis, nephrotic syndrome | Nephrotoxicity (dose-limiting), hypertension, neurotoxicity, gingival hyperplasia, hypertrichosis, hyperuricaemia | Trough levels; CrCl/eGFR |
| Tacrolimus (FK506) | Calcineurin inhibitor → binds FKBP-12 → ↓ IL-2 (same end result, 100x more potent) | Organ transplant (preferred over cyclosporine), atopic dermatitis (topical) | Nephrotoxicity, neurotoxicity (tremor, headache), diabetes (more than cyclosporine), hypertension; less gingival hyperplasia/hirsutism | Trough levels |
| Sirolimus (Rapamycin) | mTOR inhibitor → binds FKBP-12 → ↓ mTOR → ↓ IL-2 signalling and cell proliferation | Renal transplant (maintenance), lymphangioleiomyomatosis | Hyperlipidaemia, thrombocytopenia, impaired wound healing, NOT nephrotoxic (actually used when nephrotoxicity limits CNIs), interstitial pneumonitis | Trough levels |
| Azathioprine | Prodrug → 6-MP → inhibits purine synthesis → ↓ lymphocyte proliferation | Renal transplant, autoimmune disease (SLE, IBD, myasthenia) | Myelosuppression, hepatotoxicity, increased infection/malignancy risk | + allopurinol = severe toxicity (same as 6-MP) |
| Mycophenolate mofetil (MMF) | Inhibits IMPDH → ↓ de novo purine synthesis → selectively ↓ lymphocyte proliferation | Renal/cardiac/liver transplant, lupus nephritis | GI toxicity (diarrhoea, nausea), myelosuppression, teratogenic | No TDM needed (unlike CNIs) |
Exam trap 1: Cyclosporine AND tacrolimus = calcineurin inhibitors — both nephrotoxic. Sirolimus = mTOR inhibitor — NOT nephrotoxic. Exam trap 2: Tacrolimus causes more diabetes; cyclosporine causes more gingival hyperplasia and hirsutism. Exam trap 3: Azathioprine + allopurinol = life-threatening toxicity (same mechanism as 6-MP + allopurinol). Exam trap 4: MMF does NOT require therapeutic drug monitoring — only immunosuppressant in this class that doesn't.
| Drug | Mechanism | Indication | Key SE |
|---|---|---|---|
| Acyclovir | Viral thymidine kinase phosphorylates → inhibits viral DNA polymerase (selective - only activates in infected cells) | HSV-1/2, VZV (chickenpox, shingles), HSV encephalitis (IV) | Generally well tolerated; crystalluria/nephrotoxicity (IV — hydrate well); neurotoxicity (IV high dose) |
| Valacyclovir | Prodrug of acyclovir; better oral bioavailability | Same as acyclovir | Same |
| Ganciclovir | Same mechanism (phosphorylated by viral UL97 kinase) | CMV retinitis, CMV in immunocompromised | Myelosuppression (dose-limiting — unlike acyclovir), nephrotoxicity, teratogenic |
| Valganciclovir | Oral prodrug of ganciclovir | CMV prophylaxis/treatment in transplant | Same as ganciclovir |
| Foscarnet | Directly inhibits viral DNA polymerase (no phosphorylation needed) | Acyclovir/ganciclovir-resistant HSV, CMV | Nephrotoxicity, hypocalcaemia (chelates Ca2+), hypomagnesaemia, penile/vulval ulcers |
Exam trap 1: Acyclovir works only in HSV/VZV infected cells (selective activation by viral thymidine kinase) — this is why it is safe. Exam trap 2: Ganciclovir = myelosuppression (unlike acyclovir which has minimal SE). For CMV, NOT for HSV (acyclovir preferred for HSV). Exam trap 3: Foscarnet = no kinase needed (directly inhibits polymerase) — used when acyclovir/ganciclovir resistance occurs.
| Drug | Mechanism | Indication | Key SE |
|---|---|---|---|
| Oseltamivir (Tamiflu) | Neuraminidase inhibitor → prevents viral release from host cells | Influenza A & B treatment (start within 48 h); prophylaxis | Nausea, vomiting; neuropsychiatric effects (rare, mainly paediatric) |
| Zanamivir | Same (inhaled) | Influenza A & B; oseltamivir-resistant strains | Bronchospasm — avoid in asthma/COPD |
Exam trap: Oseltamivir must be started within 48 hours of symptom onset to be effective. Neuraminidase inhibitors work for both influenza A and B (unlike older amantadine which only covers influenza A).
| Drug | Mechanism | Indication | Key SE |
|---|---|---|---|
| Ribavirin | Guanosine analogue → inhibits viral RNA polymerase + mRNA capping | HCV (with pegylated interferon); RSV (inhaled in children); Lassa fever | Haemolytic anaemia (dose-limiting), teratogenic (CI in pregnancy), cough (inhaled) |
| Remdesivir | Adenosine nucleotide analogue → inhibits viral RNA polymerase → RNA chain termination | COVID-19 (hospitalised); Ebola (studied) | Bradycardia, elevated LFTs, nausea |
| Class | Examples | Mechanism | Key SE |
|---|---|---|---|
| NRTIs (Nucleoside reverse transcriptase inhibitors) | Zidovudine (AZT), Tenofovir, Lamivudine, Emtricitabine | Incorporate into viral DNA → chain termination (no 3'-OH) | Zidovudine: anaemia, myelosuppression. Tenofovir: nephrotoxicity, bone loss. Class: lactic acidosis, lipoatrophy |
| NNRTIs (Non-nucleoside RTI) | Efavirenz, Nevirapine | Bind RT allosterically → conformational change → block RT | Efavirenz: CNS effects (vivid dreams, dizziness), teratogenic (CI in 1st trimester). Nevirapine: hepatotoxicity, Stevens-Johnson syndrome |
| PIs (Protease inhibitors) | Lopinavir, Ritonavir, Atazanavir | Block HIV protease → immature, non-infectious virions | Hyperlipidaemia, insulin resistance/diabetes, lipodystrophy, GI. Ritonavir: CYP3A4 inhibitor (used as pharmacokinetic "booster") |
| Integrase inhibitors | Raltegravir, Dolutegravir | Block HIV integrase → prevent integration into host genome | Generally well tolerated; insomnia, headache |
Exam trap 1: Zidovudine (AZT) = anaemia/myelosuppression. Used in PMTCT (prevention of mother-to-child transmission). Exam trap 2: Efavirenz = teratogenic (neural tube defects) — do NOT use in 1st trimester. Exam trap 3: Ritonavir is now primarily used as a CYP3A4 inhibitor ("booster") to increase levels of other PIs — not primarily as an antiviral alone.
| Drug | Mechanism | Indication | Key SE |
|---|---|---|---|
| Chloroquine | Concentrates in parasite vacuole → inhibits haem polymerisation → toxic haem accumulates | Malaria treatment/prophylaxis (sensitive strains); RA, SLE (antimalarial) | Retinopathy (prolonged use — visual field defects), pruritus in dark-skinned patients, QT prolongation |
| Primaquine | Disrupts mitochondrial function | Radical cure of P. vivax/ovale (eradicates liver hypnozoites); Pneumocystis prophylaxis | Haemolytic anaemia in G6PD deficiency — test G6PD before use |
| Mefloquine | Similar to chloroquine | Chloroquine-resistant malaria prophylaxis | Neuropsychiatric effects (anxiety, vivid dreams, psychosis, seizures) — avoid in psychiatric history |
| Artemisinin derivatives (artesunate, artemether) | Generate free radicals that damage parasite | Severe/multi-drug-resistant malaria | Generally well tolerated; neurotoxicity at very high doses |
| Atovaquone + Proguanil (Malarone) | ↓ mitochondrial electron transport + folate synthesis | Malaria prophylaxis; P. falciparum treatment | Nausea, headache |
Exam trap: Primaquine → haemolytic anaemia in G6PD deficiency. ALWAYS check G6PD first. This is a guaranteed HKMLE question type.
| Feature | Details |
|---|---|
| Mechanism | Nitroimidazole → generates cytotoxic free radicals in anaerobic/microaerophilic organisms → DNA strand breaks |
| Indications | Giardiasis, amoebiasis (intestinal + hepatic), trichomoniasis, Clostridium difficile, anaerobic bacterial infections, Helicobacter pylori (triple therapy) |
| Key SE | Metallic taste, nausea, peripheral neuropathy (prolonged use), disulfiram-like reaction with alcohol |
| CI | 1st trimester of pregnancy (teratogenicity concern); alcohol use (disulfiram reaction) |
Exam trap: Metronidazole + alcohol = disulfiram-like reaction (flushing, palpitations, nausea). Classic MCQ. Also: only drug that treats both giardiasis AND amoebiasis AND trichomoniasis.
| Drug | Mechanism | Indication | Key SE |
|---|---|---|---|
| Mebendazole | Inhibits microtubule polymerisation → impairs glucose uptake in worms | Roundworm, hookworm, whipworm, threadworm (first-line for most GI nematodes) | Minimal systemic SE; GI discomfort |
| Albendazole | Same mechanism (broader spectrum, better absorbed) | Giardiasis, neurocysticercosis, echinococcosis (hydatid cyst), strongyloides | Hepatotoxicity, bone marrow suppression with prolonged use; teratogenic |
| Praziquantel | Increases membrane permeability to Ca2+ → spastic paralysis of worm | Schistosomiasis, tapeworms (Taenia), liver flukes | Nausea, headache; worm dying causes temporary inflammatory response |
| Ivermectin | Binds glutamate-gated Cl- channels → paralysis | Onchocerciasis (river blindness), strongyloides, scabies, head lice | Mazzotti reaction (fever, rash — from dying microfilariae) |
Exam trap 1: Praziquantel = schistosomiasis + tapeworms. Albendazole = neurocysticercosis + hydatid cyst (broad spectrum, crosses BBB). Exam trap 2: Mebendazole vs Albendazole — albendazole is better absorbed and treats systemic infections (cysticercosis, hydatid); mebendazole stays in gut (GI nematodes only).
| Topic | Paper I | Paper II | Paper III |
|---|---|---|---|
| H1/H2 Antihistamines | Mechanism, sedation, cimetidine interactions | Safe prescribing in elderly | Allergy/anaphylaxis management |
| Serotonin drugs | Ondansetron/sumatriptan mechanism | Drug interactions | CINV, migraine Rx |
| Prostaglandins | COX/PG mechanism | Misoprostol in pregnancy | GI protection, glaucoma |
| Combined OCP | Mechanism, SE (VTE, CI) | Safe prescribing | Contraception selection |
| SERMs / Anti-oestrogens | Tamoxifen vs raloxifene (uterine effect) | Endometrial cancer risk | Breast cancer Rx |
| Anti-androgens | Finasteride mechanism | Teratogenicity | BPH, prostate cancer |
| Alkylating agents | Mechanism, haemorrhagic cystitis | Mesna use | Lymphoma/leukaemia Rx |
| Antimetabolites | MTX/6-MP interactions | Leucovorin rescue | Chemotherapy regimens |
| Plant alkaloids | Vincristine vs vinblastine SE | — | Lymphoma, ALL Rx |
| Platinum/Anthracyclines | Cisplatin SE profile, cardiotoxicity | Pre-medication | Oncology regimens |
| Immunomodulators | CNI vs mTOR mechanism | Drug monitoring | Transplant rejection Rx |
| Acyclovir/Ganciclovir | Mechanism, selectivity | IV hydration | CMV/HSV management |
| Oseltamivir/Ribavirin | Neuraminidase mechanism | 48h rule | Influenza/HCV treatment |
| ARVs | Drug class mechanisms | AZT in PMTCT | ART initiation |
| Chloroquine/Primaquine | Mechanism, G6PD link | — | Malaria prophylaxis/Rx |
| Metronidazole | Mechanism, alcohol interaction | Disulfiram reaction | Anaerobic/protozoal Rx |
| Anthelmintics | Microtubule mechanism | — | Tropical disease Rx |
| Mnemonic | Stands For | Remembers |
|---|---|---|
| 1st Gen = Sedating, 2nd Gen = Safe | 1st/2nd gen antihistamines | BBB penetration and sedation profile |
| 5-HT3 = Nausea; 5-HT1 = Migraine | Serotonin receptor subtypes | Ondansetron vs sumatriptan |
| COPE | Contraception, acne, Ovarian cysts, Period, Endometriosis | OCP indications |
| Tamoxifen Treats, Clomiphene Causes | SERM effects | Tamoxifen = cancer Rx; Clomiphene = induces ovulation |
| CAMPD | Cyclophosphamide, Antimetabolites, Microtubule, Platinum, Doxorubicin | Antineoplastic drug classes |
| MTX-5FU-6MP | Methotrexate, 5-Fluorouracil, 6-Mercaptopurine | Antimetabolite trio |
| CaT SiMply | Calcineurin (Cyclosporine, Tacrolimus), Sirolimus, Mycophenolate | Immunosuppressant classes |
| ACE GOaR | Acyclovir, CMV/Ganciclovir, Oseltamivir/Ebola/Remdesivir, (H)IV/Ribavirin | Antiviral drug-virus matching |
| NRRTI-PI-II | NRTIs, NNRTIs, PIs, Integrase inhibitors | HIV drug classes |
| CAMP MAPping | Chloroquine, Artemisinins, Metronidazole, Primaquine, Mebendazole/Albendazole, Praziquantel | Antiparasitic agents |
| RIP PE | Rifampicin (orange), INH (neuropathy), Pyrazinamide (urate), Pyridoxine, Ethambutol (Eyes) | TB drug toxicities |
Compiled from Katzung's Basic & Clinical Pharmacology (16e), Lippincott Illustrated Reviews Pharmacology, Goodman & Gilman's, Medical Microbiology (Murray). Content curated for HKMLE relevance.