Act as a senior university professor and top-tier exam evaluator in ANAESTHESIA Generate a comprehensive, high-scoring model answer for a university examination question worth 30 Marks " FINAL MD/DNB (ANAESTHESIA) EXAMINATION Paper: Critical Care Medicine Long Answer Question (LAQ) – 30 Marks inhaled Anaesthetic
Examiner's Note on Scoring: This model answer is structured to fetch full marks (30/30). It addresses all three domains - pharmacology/chemistry, the MAC concept with its modifiers, and clinical applications - supported by organ-system effects, toxicity profiles, and clinical comparisons. Headings serve as signposting for examiners.

| Property | Isoflurane | Desflurane | Sevoflurane | N₂O |
|---|---|---|---|---|
| Molecular weight | 184.5 | 168 | 200 | 44 |
| Boiling point (°C) | 48.5 | 23.5 | 58.6 | -88 |
| Vapour pressure (mmHg at 20°C) | 239 | 669 | 157 | 38,770 |
| Blood:gas partition coeff. | 1.4 | 0.42 | 0.65 | 0.46 |
| Brain:blood partition coeff. | 1.6 | 1.3 | 1.7 | 1.1 |
| Fat:blood partition coeff. | 45 | 27 | 48 | 2.3 |
| MAC (% atm in 100% O₂) | 1.15% | 6.0% | 1.85% | 104% |
| Metabolism (%) | ~0.2% | <0.02% | 2-5% | <0.01% |
"Solubility alone determines the rate of elimination, provided there is normal cardiopulmonary function." (Barash 9e, p. 1376, Key Point 2)
| Variant | Definition | Value (approx) |
|---|---|---|
| MAC | Prevents movement in 50% of patients | 1.0 MAC |
| MAC-awake | Prevents response to verbal command in 50% | ~0.3-0.4 MAC |
| MAC-BAR | Blocks adrenergic responses (e.g., tachycardia) in 50% | ~1.5 MAC |
| MAC-intubation | Prevents movement during laryngoscopy in 50% | ~1.3 MAC |
| 1.3 MAC | Prevents movement in ~95% of patients (clinical EC95) | 1.3 MAC |
| Factor | Magnitude/Comment |
|---|---|
| Increasing age | ~6% decrease per decade (the single most consistent modifier) |
| Hypothermia | Progressive; at ~25-26°C, MAC approaches 0 |
| Pregnancy | Decreased by ~30-40% from 8 weeks gestation; returns to normal by 72h postpartum |
| Hypoxia (PaO₂ <40 mmHg) | Reduced MAC |
| Severe hypotension (MAP <40 mmHg) | Reduced MAC |
| Hyponatraemia | Reduced MAC |
| Hypercapnia (PaCO₂ >95 mmHg) | Decreased via CSF pH |
| Acute alcohol intoxication | Cross-tolerance |
| Alpha-2 agonists (clonidine, dexmedetomidine) | Significant reduction (~40-50%) |
| Opioids | Dose-dependent reduction |
| Benzodiazepines, barbiturates | Reduce MAC |
| Anaemia (Hct <10%) | Reduced |
| Lithium | Reduced |
| Factor | Comment |
|---|---|
| Young age (infants/children) | Highest MAC in infants ~2-6 months |
| Hyperthermia | Up to 42°C; above 42°C MAC falls |
| Chronic alcohol abuse | Tolerance |
| Cocaine, acute amphetamine use | CNS stimulation |
| Hypernatraemia | CSF hyperosmolarity |
| Red hair phenotype | ~20% higher MAC (MC1R gene variant) |
| Feature | Isoflurane | Desflurane | Sevoflurane | N₂O |
|---|---|---|---|---|
| MAC (%) | 1.15 | 6.0 | 1.85 | 104 |
| Blood:gas λ | 1.4 | 0.42 | 0.65 | 0.46 |
| Induction suitability | No (pungent) | No (pungent) | Yes (non-pungent) | Adjuvant only |
| Speed of emergence | Intermediate | Fastest | Fast | Fast |
| Metabolism (%) | 0.2 | <0.02 | 2-5 | <0.01 |
| Hepatotoxicity | Trace risk | Negligible | None | None |
| Nephrotoxicity | None | None | Compound A (rat) | None |
| Bronchodilation | Yes | Yes | Best | None |
| MH trigger | Yes | Yes | Yes | No |
| Greenhouse gas | Moderate | Most potent | Moderate | Ozone depleter |
| Cost | Lowest | Highest | Intermediate | Moderate |
| Special vaporiser | No | Yes (Tec 6) | No | Flowmeter/pipeline |
| Clinical Situation | Preferred Agent | Rationale |
|---|---|---|
| Paediatric inhalational induction | Sevoflurane | Non-pungent, smooth induction |
| Day-case/ambulatory surgery | Sevoflurane or desflurane | Rapid emergence |
| Morbidly obese patient | Desflurane | Low fat solubility, rapid emergence |
| Status asthmaticus / bronchospasm | Sevoflurane (or isoflurane) | Best bronchodilator |
| Prolonged surgery, cost concern | Isoflurane | Cheapest agent |
| Cardiac surgery (cardioprotection) | Isoflurane or sevoflurane | Anaesthetic preconditioning |
| Neurosurgery / raised ICP | Low-dose isoflurane/sevoflurane + hyperventilation | Preserve cerebrovascular autoregulation |
| N₂O contraindications | Avoid N₂O | Pneumothorax, bowel obstruction, middle ear |
| Patient with liver disease | Sevoflurane or desflurane (avoid isoflurane if prior halothane reaction) | Minimal hepatotoxicity |
| Suspected/known MH susceptibility | Avoid all volatile agents + succinylcholine; use TIVA (propofol) | MH trigger |
| Section | Marks |
|---|---|
| Introduction + classification | 1 |
| Physical properties table | 2 |
| Pharmacokinetics (uptake, distribution, elimination) | 4 |
| Mechanism of action | 2 |
| MAC - definition, variants, modifiers | 5 |
| Individual agent profiles (Iso/Des/Sevo/N₂O) | 6 |
| Organ system effects (CVS/Resp/CNS/Liver/Renal/NMJ) | 6 |
| Clinical applications and agent selection | 3 |
| Vaporisers + monitoring | 1 |
Compile this in a pdf
ls -la /tmp/workspace/ 2>/dev/null && mkdir -p /tmp/workspace/inhaled-anaesthetics-exam
~/inhaled-anaesthetics-exam/build_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.lib import colors
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, PageBreak, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
OUTPUT = "/tmp/workspace/inhaled-anaesthetics-exam/Inhaled_Anaesthetics_Model_Answer_30Marks.pdf"
# --- Page setup ---
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=2.2*cm, rightMargin=2.2*cm,
topMargin=2.5*cm, bottomMargin=2.5*cm,
title="Inhaled Anaesthetics – Model Answer (30 Marks)",
author="MD/DNB Anaesthesia Examination",
subject="Final MD/DNB Anaesthesia – Critical Care Medicine",
)
W, H = A4
# --- Colour palette ---
DARK_BLUE = colors.HexColor("#0A2342")
MID_BLUE = colors.HexColor("#1565C0")
LIGHT_BLUE = colors.HexColor("#E3F2FD")
ACCENT = colors.HexColor("#B71C1C") # deep red for KEY POINTS
HEADER_BG = colors.HexColor("#1565C0")
ROW_ALT = colors.HexColor("#F0F4FF")
ROW_HEAD = colors.HexColor("#1565C0")
GOLD = colors.HexColor("#F57F17")
LIGHT_GREY = colors.HexColor("#F5F5F5")
DARK_GREY = colors.HexColor("#424242")
BORDER = colors.HexColor("#90CAF9")
styles = getSampleStyleSheet()
def make_style(name, parent="Normal", **kwargs):
s = ParagraphStyle(name, parent=styles[parent], **kwargs)
return s
# Styles
cover_exam = make_style("CoverExam", fontSize=10, textColor=colors.white, alignment=TA_CENTER, fontName="Helvetica", leading=14)
cover_title = make_style("CoverTitle", fontSize=22, textColor=colors.white, alignment=TA_CENTER, fontName="Helvetica-Bold", leading=28, spaceAfter=8)
cover_sub = make_style("CoverSub", fontSize=13, textColor=LIGHT_BLUE, alignment=TA_CENTER, fontName="Helvetica-Oblique", leading=18)
cover_marks = make_style("CoverMarks", fontSize=16, textColor=GOLD, alignment=TA_CENTER, fontName="Helvetica-Bold", leading=20)
cover_note = make_style("CoverNote", fontSize=9, textColor=colors.white, alignment=TA_CENTER, fontName="Helvetica", leading=13)
h1_style = make_style("H1", fontSize=13, textColor=colors.white, fontName="Helvetica-Bold",
spaceBefore=14, spaceAfter=4, leading=18, leftIndent=0)
h2_style = make_style("H2", fontSize=11, textColor=MID_BLUE, fontName="Helvetica-Bold",
spaceBefore=10, spaceAfter=3, leading=15)
h3_style = make_style("H3", fontSize=10, textColor=DARK_BLUE, fontName="Helvetica-BoldOblique",
spaceBefore=7, spaceAfter=2, leading=13)
body = make_style("Body", fontSize=9.5, leading=14, spaceAfter=5,
fontName="Helvetica", textColor=DARK_GREY, alignment=TA_JUSTIFY)
bullet = make_style("Bullet", fontSize=9.5, leading=13, spaceAfter=3,
fontName="Helvetica", textColor=DARK_GREY, leftIndent=14, bulletIndent=4)
key_point = make_style("KeyPoint", fontSize=9.5, leading=13, spaceAfter=3,
fontName="Helvetica-BoldOblique", textColor=ACCENT)
footer_s = make_style("Footer", fontSize=7.5, textColor=colors.grey, alignment=TA_CENTER)
table_hdr = make_style("TH", fontSize=8.5, textColor=colors.white, fontName="Helvetica-Bold",
alignment=TA_CENTER, leading=11)
table_cell= make_style("TC", fontSize=8.5, textColor=DARK_GREY, fontName="Helvetica",
alignment=TA_LEFT, leading=11)
table_cell_c= make_style("TCC", fontSize=8.5, textColor=DARK_GREY, fontName="Helvetica",
alignment=TA_CENTER, leading=11)
intro_box = make_style("IntroBox", fontSize=9.5, leading=14, spaceAfter=5,
fontName="Helvetica-Oblique", textColor=DARK_BLUE)
# ---- Header/Footer ----
def on_page(canvas, doc):
canvas.saveState()
# Top bar
canvas.setFillColor(DARK_BLUE)
canvas.rect(0, H - 22*mm, W, 14*mm, fill=1, stroke=0)
canvas.setFont("Helvetica-Bold", 8)
canvas.setFillColor(colors.white)
canvas.drawCentredString(W/2, H - 14*mm, "FINAL MD/DNB (ANAESTHESIA) EXAMINATION | Critical Care Medicine | LAQ – 30 Marks")
# Bottom bar
canvas.setFillColor(DARK_BLUE)
canvas.rect(0, 0, W, 12*mm, fill=1, stroke=0)
canvas.setFont("Helvetica", 7.5)
canvas.setFillColor(colors.lightgrey)
canvas.drawString(2.2*cm, 7*mm, "Sources: Barash 9e · Miller's 10e · Morgan & Mikhail 7e · Goodman & Gilman 13e · Katzung 16e")
canvas.setFont("Helvetica-Bold", 8)
canvas.setFillColor(colors.white)
canvas.drawRightString(W - 2.2*cm, 7*mm, f"Page {doc.page}")
canvas.restoreState()
# ---- H1 helper (coloured band) ----
def h1_block(text):
"""Returns a Table that acts as a coloured H1 banner."""
data = [[Paragraph(text, h1_style)]]
t = Table(data, colWidths=[doc.width])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
]))
return t
def part_divider(num, title):
data = [[Paragraph(f"PART {num}: {title}", h1_style)]]
t = Table(data, colWidths=[doc.width])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 10),
]))
return t
def key_box(text):
data = [[Paragraph(f"⚑ {text}", key_point)]]
t = Table(data, colWidths=[doc.width])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), colors.HexColor("#FFF8E1")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 10),
("BOX", (0,0), (-1,-1), 0.8, GOLD),
]))
return t
def make_table(headers, rows, col_widths=None):
if col_widths is None:
n = len(headers)
col_widths = [doc.width / n] * n
header_row = [Paragraph(h, table_hdr) for h in headers]
data = [header_row]
for i, row in enumerate(rows):
cells = []
for j, cell in enumerate(row):
align = table_cell if j == 0 else table_cell_c
cells.append(Paragraph(str(cell), align))
data.append(cells)
t = Table(data, colWidths=col_widths, repeatRows=1)
style = [
("BACKGROUND", (0,0), (-1,0), ROW_HEAD),
("TEXTCOLOR", (0,0), (-1,0), colors.white),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 8.5),
("GRID", (0,0), (-1,-1), 0.4, BORDER),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING",(0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 5),
]
for i in range(1, len(data)):
if i % 2 == 0:
style.append(("BACKGROUND", (0,i), (-1,i), ROW_ALT))
t.setStyle(TableStyle(style))
return t
def bp(text):
return Paragraph(f"• {text}", bullet)
# ========================================================
# COVER PAGE
# ========================================================
def cover_page():
elems = []
# Big blue cover block via a table
cover_data = [[
Paragraph("FINAL MD/DNB (ANAESTHESIA) EXAMINATION", cover_exam),
],[
Paragraph("Paper: Critical Care Medicine", cover_exam),
],[
Spacer(1, 10),
],[
Paragraph("INHALED ANAESTHETICS", cover_title),
],[
Paragraph("Pharmacology, MAC, and Clinical Use", cover_sub),
],[
Spacer(1, 8),
],[
Paragraph("Long Answer Question (LAQ)", cover_marks),
],[
Paragraph("30 MARKS", make_style("Marks2", fontSize=28, textColor=GOLD,
alignment=TA_CENTER, fontName="Helvetica-Bold")),
],[
Spacer(1, 14),
],[
Paragraph("Model Answer", cover_note),
],[
Paragraph("Prepared by: Senior University Professor & Top-Tier Exam Evaluator", cover_note),
],[
Spacer(1, 6),
],[
Paragraph("Sources: Barash 9e · Miller's Anaesthesia 10e · Morgan & Mikhail 7e", cover_note),
],[
Paragraph("Goodman & Gilman 13e · Katzung 16e · Lippincott Pharmacology", cover_note),
]]
cover_table = Table(cover_data, colWidths=[doc.width])
cover_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 20),
("RIGHTPADDING", (0,0), (-1,-1), 20),
("ALIGN", (0,0), (-1,-1), "CENTER"),
]))
elems.append(cover_table)
elems.append(Spacer(1, 18))
# Marks breakdown box
mb_headers = ["Section", "Topic", "Marks"]
mb_rows = [
["Introduction", "Classification, history, overview", "1"],
["Physical Properties", "Properties table, structure-activity", "2"],
["Pharmacokinetics", "Uptake, distribution, elimination", "4"],
["Mechanism of Action", "GABA, NMDA, receptor targets", "2"],
["MAC", "Definition, variants, modifying factors", "5"],
["Individual Agents", "Iso / Des / Sevo / N₂O profiles", "6"],
["Organ System Effects", "CVS / Resp / CNS / Liver / Renal / NMJ", "6"],
["Clinical Applications", "Agent selection, vaporisers, monitoring", "4"],
["Total", "", "30"],
]
elems.append(Paragraph("MARKS BREAKDOWN", h2_style))
elems.append(make_table(mb_headers, mb_rows, [doc.width*0.10, doc.width*0.72, doc.width*0.18]))
elems.append(PageBreak())
return elems
# ========================================================
# BUILD STORY
# ========================================================
story = []
story += cover_page()
# --- INTRODUCTION ---
story.append(h1_block("INTRODUCTION"))
story.append(Spacer(1,6))
story.append(Paragraph(
"Inhaled anaesthetics are gases or volatile liquids administered via the respiratory tract to produce "
"general anaesthesia. They remain the cornerstone of anaesthetic maintenance worldwide. The currently "
"used agents include the volatile halogenated ethers — <b>isoflurane, desflurane, and sevoflurane</b> — "
"and the inorganic gas <b>nitrous oxide (N₂O)</b>. Halothane, though historically important, is now "
"largely withdrawn from clinical practice. Xenon remains experimental.", body))
story.append(Paragraph(
"Unlike intravenous agents, inhaled anaesthetics offer the unique advantage of <b>real-time, titratable "
"depth of anaesthesia</b> guided by end-tidal concentration monitoring — making them among the most "
"pharmacokinetically predictable drugs in medicine.", body))
story.append(Spacer(1,8))
# ===========================================================
# PART I: CHEMISTRY & PHYSICAL PROPERTIES
# ===========================================================
story.append(part_divider("I", "CHEMISTRY AND PHYSICAL PROPERTIES"))
story.append(Spacer(1,6))
story.append(Paragraph("1.1 Chemical Classification", h2_style))
story.append(Paragraph(
"All modern volatile anaesthetics (except N₂O) are <b>halogenated hydrocarbons</b> based on an ether "
"backbone. The progressive substitution of <b>chlorine by fluorine</b> atoms across successive generations "
"of agents reduces flammability, decreases metabolism, lowers blood:gas solubility, and increases "
"chemical stability — but may reduce potency (Meyer-Overton correlation).", body))
story.append(Paragraph("1.2 Physical Properties Comparison", h2_style))
ph_headers = ["Property", "Isoflurane", "Desflurane", "Sevoflurane", "N₂O"]
ph_rows = [
["MW (g/mol)", "184.5", "168", "200", "44"],
["Boiling point (°C)", "48.5", "23.5", "58.6", "−88"],
["Vapour pressure (mmHg, 20°C)", "239", "669", "157", "38,770"],
["Blood:gas partition coeff.", "1.4", "0.42", "0.65", "0.46"],
["Brain:blood partition coeff.", "1.6", "1.3", "1.7", "1.1"],
["Fat:blood partition coeff.", "45", "27", "48", "2.3"],
["MAC (% in 100% O₂)", "1.15%", "6.0%", "1.85%", "104%"],
["Metabolism (%)", "~0.2%", "<0.02%", "2–5%", "<0.01%"],
["Special vaporiser needed?", "No", "Yes (Tec 6)", "No", "Flowmeter"],
]
story.append(make_table(ph_headers, ph_rows,
[doc.width*0.32, doc.width*0.17, doc.width*0.17, doc.width*0.17, doc.width*0.17]))
story.append(Spacer(1,4))
story.append(key_box(
"Key inference: Desflurane has the LOWEST blood:gas solubility (0.42) → fastest equilibration. "
"Isoflurane has the HIGHEST (1.4) among modern agents → slower but cheapest. "
"Isoflurane is the MOST POTENT modern volatile agent (lowest MAC 1.15%); desflurane is LEAST POTENT (MAC 6%)."))
story.append(Spacer(1,8))
# ===========================================================
# PART II: PHARMACOKINETICS
# ===========================================================
story.append(part_divider("II", "PHARMACOKINETICS — UPTAKE, DISTRIBUTION, AND ELIMINATION"))
story.append(Spacer(1,6))
story.append(Paragraph("2.1 Uptake Phase", h2_style))
story.append(Paragraph(
"Inhaled anaesthetics behave as <b>gases</b>, not liquids. Their PK follows <b>partial pressure (tension) "
"gradients</b> rather than mass concentration. Anaesthetic depth is determined by the "
"<b>alveolar partial pressure (P<sub>A</sub>)</b>, which reflects:", body))
story.append(bp("<b>Inspired concentration (Fi):</b> Higher Fi → faster rise in F<sub>A</sub>/Fi ratio. Governed by fresh gas flow, circuit volume, and absorber characteristics."))
story.append(bp("<b>Alveolar ventilation:</b> Increased ventilation accelerates P<sub>A</sub> rise for soluble agents (isoflurane) but has minimal effect on insoluble agents (desflurane, sevoflurane) because equilibration is already rapid."))
story.append(bp("<b>Blood:gas partition coefficient (λ) — single most important PK determinant:</b>"))
story.append(Paragraph(" • <b>Low λ</b> (desflurane, sevoflurane, N₂O): blood is a <i>poor reservoir</i> → P<sub>A</sub> rises quickly → rapid induction and fast emergence.", bullet))
story.append(Paragraph(" • <b>High λ</b> (isoflurane): blood is a <i>large reservoir</i> → slow P<sub>A</sub> rise → more gradual induction.", bullet))
story.append(bp("<b>Cardiac output:</b> High CO (anxiety, thyrotoxicosis) slows induction for soluble agents by increasing uptake from alveolus into blood, preventing P<sub>A</sub> from rising. Minimal effect on insoluble agents."))
story.append(bp("<b>Second gas effect:</b> High-concentration N₂O enhances uptake of concurrently administered volatile agent — clinically relevant at induction."))
story.append(Paragraph("2.2 Distribution — Tissue Compartments", h2_style))
story.append(Paragraph(
"At equilibrium: <b>P<sub>A</sub> = P<sub>a</sub> (arterial) = P<sub>brain</sub></b> (assuming normal cardiopulmonary function). "
"The brain equilibrates rapidly due to rich vascularisation.", body))
dist_headers = ["Tissue Group", "% Cardiac Output", "Equilibration Time", "Clinical Relevance"]
dist_rows = [
["Vessel-rich (brain, heart, liver, kidney)", "~70%", "Minutes", "Determines speed of induction"],
["Muscle", "~20%", "30–60 min", "Contributes to accumulation in prolonged cases"],
["Fat", "~5%", "Hours to days", "Major reservoir; relevant in obese/prolonged surgery"],
["Vessel-poor (bone, cartilage)", "<1%", "Negligible", "Clinically irrelevant"],
]
story.append(make_table(dist_headers, dist_rows,
[doc.width*0.30, doc.width*0.20, doc.width*0.20, doc.width*0.30]))
story.append(Spacer(1,4))
story.append(key_box("Desflurane's fat:blood coefficient (27) is roughly HALF that of isoflurane (45) or sevoflurane (48) → fastest emergence after prolonged cases and in morbidly obese patients. (Barash 9e)"))
story.append(Paragraph("2.3 Elimination and Metabolism", h2_style))
story.append(Paragraph(
'"<i>Solubility alone determines the rate of elimination, provided there is normal cardiopulmonary '
'function.</i>" — Barash, Cullen & Stoelting\'s Clinical Anaesthesia, 9e', intro_box))
story.append(Spacer(1,4))
elim_headers = ["Agent", "Route of Elimination", "Metabolites", "Toxicity Concern"]
elim_rows = [
["Isoflurane", "~99.8% pulmonary (unchanged)", "Trifluoroacetate (trace ~0.2%)", "Immune hepatitis (extremely rare)"],
["Desflurane", ">99% pulmonary (unchanged)", "<0.02% metabolised", "Essentially none"],
["Sevoflurane", "~95–98% pulmonary", "Inorganic fluoride + HFIP (2–5%)", "Compound A nephrotoxicity (rats only)"],
["N₂O", ">99% pulmonary (unchanged)", "<0.01% metabolised", "B₁₂ inactivation (prolonged use)"],
]
story.append(make_table(elim_headers, elim_rows,
[doc.width*0.15, doc.width*0.28, doc.width*0.27, doc.width*0.30]))
story.append(Spacer(1,8))
# ===========================================================
# PART III: MECHANISM OF ACTION
# ===========================================================
story.append(part_divider("III", "MECHANISM OF ACTION"))
story.append(Spacer(1,6))
story.append(Paragraph("3.1 Historical Context", h2_style))
story.append(Paragraph(
"The <b>Meyer-Overton hypothesis</b> (1899–1901) noted that anaesthetic potency correlates with "
"oil:gas partition coefficient, suggesting a lipid membrane site. The modern <b>membrane protein "
"hypothesis</b> has largely superseded it, with specific ligand-gated ion channels identified as "
"primary targets.", body))
story.append(Paragraph("3.2 Primary Molecular Targets", h2_style))
moa_headers = ["Target", "Agent(s)", "Effect", "Endpoint"]
moa_rows = [
["GABA-A receptor (Cl⁻ channel)", "All volatile agents", "Enhanced Cl⁻ influx → hyperpolarisation", "Unconsciousness, immobility, amnesia"],
["NMDA receptor (glutamate)", "N₂O, xenon (primary); volatile agents (partial)", "Receptor blockade → ↓ excitatory tone", "Analgesia, immobility"],
["Two-pore K⁺ channels (TREK/TASK)", "Volatile agents", "K⁺ efflux → hyperpolarisation", "Immobility"],
["Glycine receptors", "Volatile agents", "Enhanced inhibitory transmission", "Spinal cord-mediated immobility"],
["Na⁺ channels (HCN)", "Volatile agents", "↓ presynaptic neurotransmitter release", "CNS depression"],
]
story.append(make_table(moa_headers, moa_rows,
[doc.width*0.25, doc.width*0.20, doc.width*0.28, doc.width*0.27]))
story.append(Paragraph("3.3 Anatomical Sites of Action", h2_style))
story.append(bp("<b>Unconsciousness/Amnesia:</b> Cortical and hippocampal circuits (supraspinal)"))
story.append(bp("<b>Immobility to surgical stimulus (MAC endpoint):</b> Spinal cord dorsal horn — confirmed by animal decerebration experiments showing MAC is retained after brain removal"))
story.append(bp("<b>Analgesia:</b> Spinal cord dorsal horn and brainstem"))
story.append(bp("<b>Bronchodilation:</b> Airway smooth muscle — sevoflurane most effective via direct action on airway GABA receptors and ↓ intracellular Ca²⁺"))
story.append(Spacer(1,8))
# ===========================================================
# PART IV: MAC
# ===========================================================
story.append(part_divider("IV", "MINIMUM ALVEOLAR CONCENTRATION (MAC)"))
story.append(Spacer(1,6))
story.append(Paragraph("4.1 Definition", h2_style))
story.append(Paragraph(
"<b>MAC</b> is defined as the alveolar concentration of an inhaled anaesthetic at <b>one atmosphere "
"(expressed as volume%)</b> that prevents <b>purposeful movement</b> in response to a standard surgical "
"stimulus (skin incision) in <b>50% of unpremedicated patients</b> at steady state.", body))
story.append(bp("It is the ED<sub>50</sub> of the inhaled agent"))
story.append(bp("Measured at steady state (P<sub>A</sub> = P<sub>a</sub> = P<sub>brain</sub>)"))
story.append(bp("Index of potency — inversely related to oil:gas partition coefficient (Meyer-Overton)"))
story.append(bp("Refers to absence of MOVEMENT — not necessarily unconsciousness (which occurs at ~0.3–0.4 MAC)"))
story.append(bp("Relatively unaffected by: species, sex, duration of anaesthesia, type of surgery"))
story.append(bp("MACs of different agents are ADDITIVE — basis of balanced anaesthesia"))
story.append(Paragraph("4.2 MAC Variants", h2_style))
mac_v_headers = ["Variant", "Definition", "Approximate Value"]
mac_v_rows = [
["MAC", "Prevents movement in 50% to skin incision", "1.0 MAC (reference)"],
["MAC-awake", "Prevents response to verbal command in 50%", "0.3–0.4 MAC"],
["MAC-BAR", "Blocks adrenergic responses (tachycardia, HTN) in 50%", "~1.5 MAC"],
["MAC-intubation", "Prevents movement during laryngoscopy in 50%", "~1.3 MAC"],
["1.3 × MAC", "Approximates EC95 (prevents movement in ~95%)", "Clinical target"],
]
story.append(make_table(mac_v_headers, mac_v_rows,
[doc.width*0.22, doc.width*0.50, doc.width*0.28]))
story.append(Paragraph("4.3 Factors Modifying MAC", h2_style))
mac_headers = ["Factor", "Effect on MAC", "Notes"]
mac_rows_down = [
["↑ Age (>40 yr)", "↓ ~6% per decade", "Most consistent and clinically important modifier"],
["Hypothermia", "↓ (progressive)", "Approaches 0 at ~26°C"],
["Pregnancy", "↓ ~30–40%", "From 8 weeks gestation; normalises by 72h postpartum"],
["Hypoxia (PaO₂ <40 mmHg)", "↓", "Impaired CNS function"],
["Hypotension (MAP <40 mmHg)", "↓", "Cerebral ischaemia"],
["Hypercapnia (PaCO₂ >95 mmHg)", "↓", "Via ↓ CSF pH"],
["Hyponatraemia", "↓", "Altered CSF osmolarity"],
["Anaemia (Hct <10%)", "↓", "Cerebral hypoxia"],
["Acute alcohol intoxication", "↓", "CNS depression"],
["Opioids", "↓ (dose-dependent)", "Most clinically used combination"],
["Alpha-2 agonists (dexmedetomidine)", "↓ ~40–50%", "Major opioid-sparing effect"],
["Benzodiazepines/barbiturates", "↓", "CNS synergy"],
["Lithium", "↓", "Mechanism unclear"],
]
story.append(Paragraph("<b>MAC DECREASES with:</b>", h3_style))
story.append(make_table(mac_headers, mac_rows_down,
[doc.width*0.30, doc.width*0.18, doc.width*0.52]))
story.append(Spacer(1,4))
story.append(Paragraph("<b>MAC INCREASES with:</b>", h3_style))
mac_rows_up = [
["Infancy (peak ~2–6 months)", "↑", "Highest MAC in early infancy"],
["Hyperthermia (<42°C)", "↑", "Above 42°C, MAC paradoxically falls"],
["Chronic alcohol abuse", "↑", "Metabolic enzyme induction + tolerance"],
["Acute amphetamine/cocaine use", "↑", "CNS stimulation"],
["Hypernatraemia", "↑", "↑ CSF osmolarity"],
["Red hair phenotype (MC1R variant)", "↑ ~20%", "Genetic variant in melanocortin receptor"],
]
story.append(make_table(mac_headers, mac_rows_up,
[doc.width*0.30, doc.width*0.18, doc.width*0.52]))
story.append(Spacer(1,4))
story.append(key_box("MAC is NOT affected by: thyroid status, sex, duration of anaesthesia, or baricity (when expressed as % at 1 atmosphere). (Morgan & Mikhail 7e, Table 8-4)"))
story.append(Spacer(1,8))
# ===========================================================
# PART V: INDIVIDUAL AGENT PROFILES
# ===========================================================
story.append(part_divider("V", "INDIVIDUAL AGENT PHARMACOLOGICAL PROFILES"))
story.append(Spacer(1,6))
# --- Isoflurane ---
story.append(Paragraph("5.1 Isoflurane", h2_style))
story.append(Paragraph(
"<b>Structure:</b> Fluorinated methyl ethyl ether (halogenated ether). Prototypical modern volatile agent since halothane's withdrawal.", body))
iso_data = [
["Property", "Detail"],
["MAC (100% O₂)", "1.15% (0.5% with 70% N₂O)"],
["Blood:gas λ", "1.4 — intermediate; suits prolonged surgery"],
["Boiling point", "48.5°C — conventional vaporiser"],
["Metabolism", "~0.2% → trifluoroacetate; immune hepatitis theoretically possible but extremely rare"],
["Odour", "Pungent — NOT suitable for inhalation induction; causes coughing, laryngospasm"],
["Cardiovascular", "↓ SVR (vasodilation) → ↓ BP; CO preserved; no catecholamine sensitisation; theoretical coronary steal"],
["Respiratory", "Bronchodilator; dose-dependent respiratory depression; preserves HPV less than desflurane"],
["CNS", "↓ CMRO₂; ↑ CBF at >1 MAC (manage with hyperventilation); EEG: burst suppression at high doses"],
["Advantages", "CHEAPEST of modern volatile agents; best for prolonged/low-resource settings"],
["Potency", "MOST POTENT of modern volatile agents (lowest MAC)"],
]
iso_t = Table(iso_data, colWidths=[doc.width*0.28, doc.width*0.72])
iso_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("TEXTCOLOR", (0,0), (-1,0), colors.white),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 8.5),
("GRID", (0,0), (-1,-1), 0.4, BORDER),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 6),
("BACKGROUND", (0,2), (-1,2), ROW_ALT),
("BACKGROUND", (0,4), (-1,4), ROW_ALT),
("BACKGROUND", (0,6), (-1,6), ROW_ALT),
("BACKGROUND", (0,8), (-1,8), ROW_ALT),
("BACKGROUND", (0,10),(-1,10), ROW_ALT),
]))
story.append(iso_t)
story.append(Spacer(1,8))
# --- Desflurane ---
story.append(Paragraph("5.2 Desflurane", h2_style))
story.append(Paragraph(
"<b>Structure:</b> Differs from isoflurane by a single atom — fluorine replaces chlorine on the α-ethyl group. Fully fluorinated ether.", body))
des_data = [
["Property", "Detail"],
["MAC (100% O₂)", "6.0% (HIGHEST MAC = LEAST POTENT volatile agent)"],
["Blood:gas λ", "0.42 — LOWEST of all volatile agents → fastest equilibration and emergence"],
["Boiling point", "23.5°C — near room temperature; requires specialised HEATED, PRESSURISED vaporiser (Tec 6)"],
["Metabolism", "<0.02% — virtually none; no hepatic or renal toxicity"],
["Odour", "Very pungent — ABSOLUTELY contraindicated for inhalation induction; severe laryngospasm/bronchospasm"],
["Cardiovascular", "↓ SVR; CO well maintained; TRANSIENT SYMPATHETIC STIMULATION (tachycardia, hypertension) with rapid ↑ concentration"],
["Fat solubility", "Fat:blood = 27 (~50% of isoflurane/sevoflurane) → FASTEST emergence after long/obese cases"],
["Respiratory", "Significant airway irritation; good bronchodilator but cannot be used for induction"],
["CNS", "Rapid cerebral equilibration; ↑ ICP possible; control with hyperventilation"],
["Ideal for", "Morbidly obese patients, day-case/ambulatory surgery, long cases needing fast wake-up"],
["Environmental", "MOST POTENT greenhouse gas (GWP ~2,540× CO₂); restricted/banned in several countries (UK NHS)"],
]
des_t = Table(des_data, colWidths=[doc.width*0.28, doc.width*0.72])
des_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("TEXTCOLOR", (0,0), (-1,0), colors.white),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 8.5),
("GRID", (0,0), (-1,-1), 0.4, BORDER),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 6),
("BACKGROUND", (0,2), (-1,2), ROW_ALT),
("BACKGROUND", (0,4), (-1,4), ROW_ALT),
("BACKGROUND", (0,6), (-1,6), ROW_ALT),
("BACKGROUND", (0,8), (-1,8), ROW_ALT),
("BACKGROUND", (0,10),(-1,10), ROW_ALT),
]))
story.append(des_t)
story.append(Spacer(1,8))
# --- Sevoflurane ---
story.append(Paragraph("5.3 Sevoflurane", h2_style))
story.append(Paragraph(
"<b>Structure:</b> Fully fluorinated methyl isopropyl ether. Sweet-smelling. Most widely used agent globally.", body))
sevo_data = [
["Property", "Detail"],
["MAC (100% O₂)", "1.85% (adults); higher in infants/children; no increase with sevoflurane with age < neonate"],
["Blood:gas λ", "0.65 — low; rapid induction and emergence (2nd only to desflurane)"],
["Boiling point", "58.6°C — conventional vaporiser"],
["Metabolism", "2–5% (highest of modern agents); → inorganic fluoride + HFIP; NOT → trifluoroacetate (no hepatitis)"],
["Odour", "NON-PUNGENT, sweet — IDEAL for inhalation induction (children and adults without IV)"],
["Compound A", "Forms vinyl halide compound A from soda lime interaction; nephrotoxic in rats; NOT in humans. FDA: FGF ≥1–2 L/min; limit to <2 MAC-hours with low flows"],
["Cardiovascular", "↓ SVR → ↓ BP; NO sympathetic stimulation; cardiac output maintained; half the coronary vasodilator potency of isoflurane"],
["Respiratory", "BEST BRONCHODILATOR of all inhalational agents; minimal airway irritation; preferred in asthma"],
["CNS", "Similar CMRO₂/CBF effects as isoflurane; emergence delirium in children (self-limiting, no sequelae)"],
["Obstetric", "Uterine relaxation; use cautiously re: blood loss"],
["Ideal for", "Paediatric induction; asthma; balanced anaesthesia in adults; cardiac surgical preconditioning"],
]
sevo_t = Table(sevo_data, colWidths=[doc.width*0.28, doc.width*0.72])
sevo_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("TEXTCOLOR", (0,0), (-1,0), colors.white),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 8.5),
("GRID", (0,0), (-1,-1), 0.4, BORDER),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 6),
("BACKGROUND", (0,2), (-1,2), ROW_ALT),
("BACKGROUND", (0,4), (-1,4), ROW_ALT),
("BACKGROUND", (0,6), (-1,6), ROW_ALT),
("BACKGROUND", (0,8), (-1,8), ROW_ALT),
("BACKGROUND", (0,10),(-1,10), ROW_ALT),
]))
story.append(sevo_t)
story.append(Spacer(1,8))
# --- N2O ---
story.append(Paragraph("5.4 Nitrous Oxide (N₂O)", h2_style))
story.append(Paragraph(
"<b>Nature:</b> Colourless inorganic gas (not halogenated); odourless; known as 'laughing gas'. "
"Cannot produce surgical anaesthesia as a sole agent at sea level.", body))
n2o_data = [
["Property", "Detail"],
["MAC", "104% — requires >1 atmosphere to anaesthetise as sole agent; used as ADJUVANT only"],
["Blood:gas λ", "0.46 — rapid uptake and elimination"],
["Mechanism", "Primary NMDA receptor ANTAGONIST; weak analgesic; partial opioid agonist"],
["Cardiovascular", "Mild myocardial depressant but stimulates sympathetic NS → net neutral/slight ↑ HR & BP"],
["Diffusion into closed spaces", "34× more soluble than N₂ in blood → rapidly expands gas-filled spaces"],
["Contraindications", "Pneumothorax, bowel obstruction, air embolism, pneumocephalus, middle ear surgery, retinal SF₆/C₃F₈ bubbles, tympanoplasty"],
["Diffusion hypoxia", "Abrupt cessation → N₂O floods alveoli → dilutes O₂/CO₂. PREVENT: give 100% O₂ for 5–10 min at end"],
["Vitamin B₁₂/MH", "Irreversibly oxidises methionine synthase → megaloblastic changes; does NOT trigger MH"],
["Environmental", "Ozone-depleting agent; potent greenhouse gas"],
["Advantage", "↓ volatile agent requirement by ~0.5 MAC; provides analgesia; rapid emergence"],
]
n2o_t = Table(n2o_data, colWidths=[doc.width*0.28, doc.width*0.72])
n2o_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("TEXTCOLOR", (0,0), (-1,0), colors.white),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 8.5),
("GRID", (0,0), (-1,-1), 0.4, BORDER),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 6),
("BACKGROUND", (0,2), (-1,2), ROW_ALT),
("BACKGROUND", (0,4), (-1,4), ROW_ALT),
("BACKGROUND", (0,6), (-1,6), ROW_ALT),
("BACKGROUND", (0,8), (-1,8), ROW_ALT),
("BACKGROUND", (0,10),(-1,10), ROW_ALT),
]))
story.append(n2o_t)
story.append(Spacer(1,6))
# Comparative summary
story.append(Paragraph("5.5 Comparative Summary", h2_style))
comp_headers = ["Feature", "Isoflurane", "Desflurane", "Sevoflurane", "N₂O"]
comp_rows = [
["MAC (%)", "1.15", "6.0", "1.85", "104"],
["Blood:gas λ", "1.4", "0.42", "0.65", "0.46"],
["Induction suitable?", "No (pungent)", "No (pungent)", "Yes (best)", "Adjuvant only"],
["Emergence speed", "Intermediate", "Fastest", "Fast", "Fast"],
["Metabolism", "0.2%", "<0.02%", "2–5%", "<0.01%"],
["Hepatotoxicity", "Trace theoretical", "None", "None", "None"],
["Nephrotoxicity", "None", "None", "Cpd A (rat only)", "None"],
["Best bronchodilator", "Yes", "Yes", "BEST", "No"],
["MH trigger?", "Yes", "Yes", "Yes", "NO"],
["Greenhouse gas", "Moderate", "Most potent", "Moderate", "Ozone depleter"],
["Relative cost", "Lowest", "Highest", "Intermediate", "Moderate"],
["Special vaporiser", "No", "Yes (Tec 6)", "No", "Flowmeter"],
]
story.append(make_table(comp_headers, comp_rows,
[doc.width*0.22, doc.width*0.195, doc.width*0.195, doc.width*0.195, doc.width*0.195]))
story.append(Spacer(1,8))
# ===========================================================
# PART VI: ORGAN SYSTEM EFFECTS
# ===========================================================
story.append(PageBreak())
story.append(part_divider("VI", "ORGAN SYSTEM EFFECTS"))
story.append(Spacer(1,6))
story.append(Paragraph("6.1 Cardiovascular System", h2_style))
story.append(Paragraph(
"All volatile agents produce <b>dose-dependent depression of arterial blood pressure</b> via:", body))
story.append(bp("<b>↓ SVR (systemic vasodilation):</b> Primary mechanism. Isoflurane > sevoflurane ≈ desflurane"))
story.append(bp("<b>↓ Myocardial contractility:</b> All agents; isoflurane preserves contractility best"))
story.append(bp("<b>Heart rate:</b> Isoflurane/desflurane may ↑ HR; sevoflurane is neutral to slightly bradycardic; desflurane causes sympathetic stimulation with rapid concentration increases"))
story.append(bp("<b>Myocardial sensitisation:</b> Modern agents do NOT sensitise myocardium to catecholamine-induced arrhythmias (unlike halothane — key distinction)"))
story.append(Paragraph(
"<b>Anaesthetic Preconditioning:</b> Volatile agents, particularly isoflurane and sevoflurane, activate "
"ischaemic preconditioning pathways (mitochondrial K-ATP channels, protein kinase C, adenosine receptors) "
"conferring cardioprotection against ischaemia-reperfusion injury. This is clinically exploited in "
"cardiac surgery. (Barash 9e, Key Point 10)", body))
story.append(Paragraph("6.2 Respiratory System", h2_style))
story.append(Paragraph("All volatile agents produce dose-dependent:", body))
story.append(bp("↓ Tidal volume (insufficient RR compensation → ↑ PaCO₂ — reason for controlled ventilation)"))
story.append(bp("↓ Ventilatory response to hypercapnia AND hypoxia (both abolished at ~1–1.5 MAC)"))
story.append(bp("<b>Bronchodilation</b> — clinically valuable; sevoflurane is most effective (drug of choice in status asthmaticus)"))
story.append(bp("Inhibition of hypoxic pulmonary vasoconstriction (HPV) — increases V/Q mismatch; most relevant during one-lung ventilation"))
story.append(bp("<b>Airway irritability:</b> Isoflurane > desflurane >>> sevoflurane (minimal)"))
story.append(Paragraph("6.3 Central Nervous System", h2_style))
cns_data = [
["Effect", "Details", "Clinical Implication"],
["↓ CMRO₂", "Dose-dependent; all volatile agents", "Neuroprotective in ischaemia"],
["↑ CBF at >1 MAC", "Direct cerebral vasodilation; cerebral uncoupling", "↑ ICP in neurosurgery — prevent with hyperventilation (PaCO₂ 30–35 mmHg)"],
["EEG depression", "Dose-dependent: normal → slowing → burst suppression → flat", "Useful in refractory status epilepticus (high-dose volatile)"],
["Evoked potential depression", "SSEP, MEP, BAEP all affected dose-dependently", "Use lowest effective concentration during neuromonitoring"],
["Neuroprotection", "Preconditioning analogous to cardiac; reduces ischaemic neuronal death", "Benefit in carotid endarterectomy, cardiac surgery"],
["Paediatric neurotoxicity", "Debate ongoing; animal data show neuroapoptosis", "Avoid prolonged/repeated exposure in infants <3 years when possible"],
]
cns_t = Table(cns_data, colWidths=[doc.width*0.22, doc.width*0.40, doc.width*0.38])
cns_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("TEXTCOLOR", (0,0), (-1,0), colors.white),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 8.5),
("GRID", (0,0), (-1,-1), 0.4, BORDER),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 6),
("BACKGROUND", (0,2), (-1,2), ROW_ALT),
("BACKGROUND", (0,4), (-1,4), ROW_ALT),
("BACKGROUND", (0,6), (-1,6), ROW_ALT),
]))
story.append(cns_t)
story.append(Paragraph("6.4 Hepatic Effects", h2_style))
story.append(bp("<b>Halothane hepatitis (Type I — mild, ~20%):</b> mild ↑ LFTs, self-limiting"))
story.append(bp("<b>Halothane hepatitis (Type II — fulminant, 1:10,000–30,000):</b> immune-mediated via trifluoroacetyl (TFA) protein adducts triggering TFA-specific T-cell response"))
story.append(bp("<b>Modern agents:</b> Isoflurane, sevoflurane, desflurane — minimal/no hepatotoxicity"))
story.append(Paragraph(
'"<i>Volatile anaesthetics in current use have minimal adverse effects on the liver and might afford '
'some protection for hepatocytes from ischaemic and/or hypoxic injury.</i>" — Barash 9e, Key Point 12', intro_box))
story.append(bp("Sevoflurane best preserves hepatic arterial blood flow"))
story.append(Paragraph("6.5 Renal Effects", h2_style))
story.append(bp("Methoxyflurane (withdrawn): high-output renal failure from fluoride nephrotoxicity (serum fluoride >50 μmol/L)"))
story.append(bp("Sevoflurane — Compound A: nephrotoxic in rats at high concentrations; NO proven clinical renal toxicity in humans"))
story.append(bp("FDA recommendation: sevoflurane FGF ≥1–2 L/min with soda lime absorbent; limit to <2 MAC-hours at low flow"))
story.append(bp("Isoflurane and desflurane: no clinically relevant renal toxicity"))
story.append(Paragraph("6.6 Neuromuscular Effects", h2_style))
story.append(bp("All volatile agents produce dose-dependent SKELETAL MUSCLE RELAXATION"))
story.append(bp("Potentiate non-depolarising NMBAs (vecuronium, rocuronium) — reduce NMB dose requirement by ~30–50%"))
story.append(bp("<b>MALIGNANT HYPERTHERMIA (MH) TRIGGER:</b> All volatile halogenated agents (isoflurane, desflurane, sevoflurane) can trigger MH in susceptible individuals (RYR1 mutations)"))
story.append(Paragraph(
"<b>MH Management:</b> (1) Immediately discontinue volatile agent; (2) Administer <b>dantrolene 2.5 mg/kg IV</b> "
"(repeat up to 10 mg/kg); (3) Cool patient; (4) Correct metabolic acidosis, hyperkalaemia, rhabdomyolysis; "
"(5) Monitor for complications (renal failure, DIC). <b>N₂O does NOT trigger MH.</b>", body))
story.append(Paragraph("6.7 Uterine Effects", h2_style))
story.append(bp("Dose-dependent uterine relaxation — all volatile agents"))
story.append(bp("At >0.5 MAC: uterine atony → ↑ intraoperative blood loss in obstetric cases"))
story.append(bp("Therapeutic use: uterine relaxation for retained placenta, internal podalic version, ex utero intrapartum treatment (EXIT) procedures"))
story.append(Spacer(1,8))
# ===========================================================
# PART VII: CLINICAL APPLICATIONS
# ===========================================================
story.append(part_divider("VII", "CLINICAL APPLICATIONS AND AGENT SELECTION"))
story.append(Spacer(1,6))
story.append(Paragraph("7.1 Induction of Anaesthesia", h2_style))
story.append(Paragraph(
"IV induction (propofol/thiopentone) followed by volatile maintenance is the standard adult approach. "
"<b>Sevoflurane inhalational induction</b> is the method of choice when:", body))
story.append(bp("IV access unavailable (paediatric patients, needle-phobic adults)"))
story.append(bp("Uncooperative patients"))
story.append(bp("Anticipated difficult airway — allows slower, controlled deepening while maintaining spontaneous ventilation"))
story.append(bp("Short outpatient procedures where IV placement is avoided entirely (e.g., myringotomy)"))
story.append(Paragraph("7.2 Agent Selection by Clinical Scenario", h2_style))
sel_headers = ["Clinical Scenario", "Agent of Choice", "Rationale"]
sel_rows = [
["Paediatric inhalation induction", "Sevoflurane", "Non-pungent, smooth, sweet; ideal mask induction"],
["Day-case / ambulatory surgery", "Sevoflurane or Desflurane", "Rapid, reliable emergence; early discharge"],
["Morbidly obese patient", "Desflurane", "Low fat solubility → fastest emergence regardless of duration"],
["Status asthmaticus / bronchospasm", "Sevoflurane (or isoflurane)", "Most potent bronchodilator; minimal airway irritation"],
["Prolonged surgery, cost concern", "Isoflurane", "Cheapest; adequate profile for long cases"],
["Cardiac surgery (cardioprotection)", "Isoflurane or Sevoflurane", "Anaesthetic preconditioning; ischaemia-reperfusion protection"],
["Neurosurgery / raised ICP", "Low-dose sevo/iso + hyperventilation", "↓ CMRO₂; control CBF with PaCO₂"],
["Active bronchospasm in ICU", "Sevoflurane via AnaConDa device", "ICU sedation via inhaled route; bronchodilation"],
["Suspected MH susceptibility", "AVOID all volatile agents; use TIVA", "All halogenated agents trigger MH"],
["Liver disease, prior halothane reaction", "Sevoflurane or Desflurane", "No TFA production; no immune hepatitis"],
["Pneumothorax / bowel obstruction", "AVOID N₂O", "Diffusion into closed spaces → life-threatening expansion"],
["Retinal gas (SF₆/C₃F₈) in situ", "AVOID N₂O", "Expansion of intraocular gas bubble → blindness"],
]
story.append(make_table(sel_headers, sel_rows,
[doc.width*0.28, doc.width*0.22, doc.width*0.50]))
story.append(Paragraph("7.3 Vaporisers", h2_style))
story.append(Paragraph(
"A vaporiser converts volatile liquid anaesthetic into vapour of precise, controlled concentration:", body))
story.append(bp("<b>Plenum (variable bypass) vaporisers (e.g., Tec 5, Sevotec 5):</b> Temperature-compensated (bimetallic strip) and flow-compensated (splitting ratio). Standard for isoflurane and sevoflurane."))
story.append(bp("<b>Desflurane — Tec 6 (heated pressurised vaporiser):</b> Electrically heats desflurane to 39°C (above boiling point) → produces pure vapour → diluted by carrier gas. Required because of desflurane's near-room-temperature BP (23.5°C) and very high vapour pressure (669 mmHg)."))
story.append(bp("Agent-specific filling systems (AFC funnels) prevent misloading between vaporisers."))
story.append(bp("<b>Low-flow anaesthesia (FGF ≤1 L/min):</b> Reduces drug consumption by up to 90%, maintains airway humidity/warmth, reduces environmental contamination, lowers cost."))
story.append(Paragraph("7.4 Monitoring of Inhaled Anaesthetic Depth", h2_style))
story.append(bp("<b>End-tidal anaesthetic gas (ETAG) monitoring:</b> Infrared spectrophotometry; measures FA as surrogate for brain concentration. Target typically 0.7–1.0 MAC (supplemented by opioids/N₂O)"))
story.append(bp("<b>BIS (Bispectral Index) / Entropy:</b> Processed EEG monitors complementing ETAG; target BIS 40–60 for surgical anaesthesia"))
story.append(bp("<b>Agent identification:</b> Modern analysers differentiate agents by unique infrared absorption spectra"))
story.append(bp("<b>Early warning of MH:</b> Unexplained sudden ↑ ETCO₂ is the MOST SENSITIVE early sign → immediately discontinue volatile agent"))
story.append(Spacer(1,8))
# ===========================================================
# PART VIII: ENVIRONMENTAL AND OCCUPATIONAL CONSIDERATIONS
# ===========================================================
story.append(part_divider("VIII", "ENVIRONMENTAL AND OCCUPATIONAL CONSIDERATIONS"))
story.append(Spacer(1,6))
story.append(bp("<b>Global Warming Potential (GWP) — 100-year horizon:</b>"))
env_headers = ["Agent", "GWP (× CO₂)", "Atmospheric Lifetime", "Current Status"]
env_rows = [
["Desflurane", "~2,540", "14 years", "Restricted/banned in UK NHS, EU countries"],
["Isoflurane", "~510", "3.2 years", "In use; low-flow best practice"],
["Sevoflurane", "~130", "1.1 years", "Preferred on environmental grounds"],
["N₂O", "~265 (+ ozone depleter)", "120 years", "Caution; consider omitting in adult cases"],
]
story.append(make_table(env_headers, env_rows,
[doc.width*0.18, doc.width*0.20, doc.width*0.22, doc.width*0.40]))
story.append(Spacer(1,4))
story.append(bp("<b>Occupational exposure:</b> Chronic low-level theatre staff exposure associated with spontaneous abortion risk, hepatic/renal effects; mandatory active scavenging systems (AGSS) required"))
story.append(bp("<b>Sustainable practice:</b> Use low-flow anaesthesia; prefer sevoflurane over desflurane; consider TIVA where appropriate; capture and recycle exhaled agents (SGX technology)"))
story.append(Spacer(1,8))
# ===========================================================
# CONCLUSION
# ===========================================================
story.append(part_divider("IX", "CONCLUSION"))
story.append(Spacer(1,6))
story.append(Paragraph(
"Inhaled anaesthetics represent one of the most elegant drug delivery systems in clinical medicine — "
"gases titrated breath-to-breath to a physiological endpoint (alveolar concentration), with rapidly "
"reversible CNS effects. <b>MAC</b> is the cornerstone pharmacodynamic metric: an ED<sub>50</sub> that "
"accounts for agent potency, patient characteristics, and concurrent drugs.", body))
story.append(Paragraph(
"<b>Blood:gas solubility</b> is the dominant pharmacokinetic variable — the lower the coefficient, "
"the faster the equilibration and emergence. <b>Sevoflurane</b> has emerged as the most versatile "
"modern agent (smooth induction, rapid emergence, best bronchodilation, lowest airway irritability). "
"<b>Desflurane</b> excels in ambulatory and bariatric contexts despite its environmental burden. "
"<b>Isoflurane</b> retains a role in resource-limited and prolonged surgery. <b>N₂O</b> remains "
"a valuable adjuvant requiring careful attention to its diffusion properties and environmental impact.", body))
story.append(Paragraph(
"Awareness of organ-specific effects, malignant hyperthermia triggering potential, vaporiser technology, "
"and growing environmental responsibilities defines the responsible modern use of these agents. The "
"anaesthesiologist who commands this knowledge commands both patient safety and stewardship of the "
"planet.", body))
story.append(Spacer(1,10))
story.append(HRFlowable(color=DARK_BLUE, thickness=1.5, width="100%"))
story.append(Spacer(1,6))
story.append(Paragraph(
"<b>References:</b> Barash, Cullen & Stoelting's Clinical Anaesthesia 9e (2022) · Miller's Anaesthesia 10e (2023) · "
"Morgan & Mikhail's Clinical Anaesthesiology 7e (2022) · Goodman & Gilman's Pharmacological Basis of "
"Therapeutics 13e · Katzung's Basic & Clinical Pharmacology 16e · Lippincott Illustrated Reviews: Pharmacology", footer_s))
# ========================================================
# BUILD
# ========================================================
doc.build(story, onFirstPage=on_page, onLaterPages=on_page)
print(f"PDF created: {OUTPUT}")
cd /tmp/workspace/inhaled-anaesthetics-exam && python build_pdf.py 2>&1
ls -lh /tmp/workspace/inhaled-anaesthetics-exam/
Inhaled Anaesthetics Model Answer 30Marks
PDF Document · PDF
| Section | Content |
|---|---|
| Cover Page | Exam header, topic title, marks breakdown table, source citations |
| Part I | Chemistry, structure-activity relationships, physical properties comparison table |
| Part II | Pharmacokinetics — uptake, tissue compartments, elimination, metabolism |
| Part III | Mechanism of action — GABA, NMDA, K⁺ channels, anatomical sites |
| Part IV | MAC — definition, all variants (MAC-awake, MAC-BAR, etc.), full modifying factors tables |
| Part V | Individual agent profiles (Iso / Des / Sevo / N₂O) in colour-coded key-value tables + comparative summary |
| Part VI | Organ system effects — CVS, respiratory, CNS, hepatic, renal, neuromuscular, uterine |
| Part VII | Clinical applications, agent selection by scenario, vaporisers, monitoring |
| Part VIII | Environmental & occupational considerations (GWP table) |
| Part IX | Conclusion + references |