Write a 30 marks answer for Anaesthesia postgraduate exam on the topic of Difficult Airway and Management

Reading File
Finding Sources
Finding Sources
Searching the Web

difficult airway management anaesthesia postgraduate exam 2024 guidelines ASA DAA

Reading File
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Reading File
Finding Sources
Reading File
Finding Sources
I now have comprehensive material from the textbooks and guidelines. Let me write the full 30-mark postgraduate exam answer.

Difficult Airway and Management

Postgraduate Anaesthesia Examination - 30 Marks


1. Definition and Incidence (2 marks)

The difficult airway is defined by the American Society of Anesthesiologists (ASA, 2022) as the clinical situation in which a conventionally trained anaesthesiologist experiences difficulty with face mask ventilation, difficulty with tracheal intubation, or both.
  • Difficult mask ventilation: 1.4-7.5% of patients; impossible ventilation 0.15%
  • Difficult laryngoscopy (Cormack-Lehane grade III/IV): approximately 5-8%
  • Failed intubation: 1 in 2,000 elective cases; 1 in 300 obstetric cases
  • "Cannot Intubate - Cannot Oxygenate" (CICO): approximately 1 in 50,000 cases

2. Preoperative Airway Assessment (6 marks)

History

  • Previous anaesthetic records - prior documented difficulty is the single most important predictor
  • Symptoms of airway obstruction: stridor, dysphagia, hoarseness, positional dyspnoea
  • Relevant conditions: obstructive sleep apnoea, rheumatoid arthritis, ankylosing spondylitis, diabetes mellitus ("prayer sign" - stiff joint syndrome)
  • Recent infections, tumours, or radiation to the head and neck

Clinical Predictors of Difficult Laryngoscopy

LEMON assessment (widely used mnemonic):
ComponentAssessment
L - Look externallyFacial trauma, large incisors, beard, obesity, large tongue
E - Evaluate 3-3-2 ruleInterincisor distance <3 cm, hyoid-to-chin <3 cm, floor of mouth-to-thyroid notch <2 cm
M - MallampatiClass III/IV (poor oropharyngeal view)
O - ObstructionEpiglottitis, peritonsillar abscess, Ludwig's angina
N - Neck mobilityExtension <35° predicts difficult laryngoscopy
Mallampati Classification (performed sitting, mouth open, tongue protruded, no phonation):
  • Class I: Soft palate, uvula, fauces, tonsillar pillars visible
  • Class II: Soft palate, uvula, fauces visible
  • Class III: Soft palate, base of uvula visible
  • Class IV: Only hard palate visible
  • Class III and IV correlate with Cormack-Lehane grade III/IV laryngoscopy
Cormack-Lehane Laryngoscopic Grading:
  • Grade I: Full view of glottis
  • Grade II: Only posterior commissure visible
  • Grade III: Only epiglottis visible
  • Grade IV: Neither epiglottis nor glottis visible
Other Measurements:
  • Thyromental distance (TMD): <6.5 cm predicts difficult laryngoscopy
  • Sternomental distance: <12.5 cm (with full neck extension and mouth closed)
  • Inter-incisor gap: <3 cm (2 finger-breadths) suggests difficulty
  • Neck circumference: >40 cm associated with difficult mask ventilation
Predictors of Difficult Mask Ventilation (OBESE mnemonic):
  • Obese (BMI >26 kg/m²)
  • Beard
  • Edentulous
  • Snoring / sleep apnoea
  • Elderly (>55 years)
Conditions Associated with Difficult Intubation (from Morgan and Mikhail):
  • Tumours: cystic hygroma, hemangioma, hematoma
  • Infections: submandibular abscess, peritonsillar abscess, epiglottitis
  • Congenital anomalies: Pierre Robin syndrome, Treacher Collins syndrome, Goldenhar syndrome
  • Trauma: laryngeal fracture, mandibular/maxillary fracture, inhalation burn, cervical spine injury
  • Systemic: obesity, rheumatoid arthritis, ankylosing spondylitis
  • Anatomic variations: micrognathia, prognathism, macroglossia, arched palate, short neck, prominent upper incisors

3. The ASA Difficult Airway Algorithm (2022) (6 marks)

The ASA 2022 guidelines provide a structured decision tree for managing the difficult airway. The algorithm branches at two key decision points:

Step 1: Assess the likelihood of difficulty with:

  1. Patient cooperation
  2. Mask ventilation
  3. Supraglottic airway (SGA) placement
  4. Laryngoscopy
  5. Intubation
  6. Surgical airway

Step 2: Awake vs. Asleep Intubation

Awake intubation is preferred when:
  • Anticipated difficult intubation AND difficult mask ventilation
  • Full stomach / aspiration risk with anticipated difficult airway
  • Haemodynamic instability combined with difficult airway
  • Patient refuses general anaesthesia
  • Upper airway obstruction (Ludwig's angina, angioedema, large goitre)
Proceed with induction if:
  • Airway likely manageable
  • Appropriate backup is available

The Algorithm Pathways:

A. Awake Intubation Pathway:
  1. Topicalise and/or regional airway blocks
  2. Awake flexible scope intubation (gold standard)
  3. Awake video laryngoscopy
  4. Awake optical stylet / Bonfils
  5. Retrograde wire-guided intubation (rarely used)
  6. If all fail → surgical airway (tracheostomy)
B. Anaesthetised Patient - Intubation Fails:
  • After induction, if intubation fails:
    1. Call for help
    2. Limit attempts to 3 (+ 1 by senior with higher skill)
    3. Maintain oxygenation - return to mask ventilation between attempts
    4. Consider SGA (LMA, i-gel, ProSeal LMA)
C. CICO (Cannot Intubate - Cannot Oxygenate) - Emergency Pathway:
  • Declare CICO immediately and call for help
  • Maximise oxygenation: two-person BMV, oral/nasal airway, SGA
  • Proceed immediately to Emergency Front-of-Neck Access (eFONA)

4. Airway Management Techniques (8 marks)

4a. Flexible Scope Intubation (FSI) / Awake Fibreoptic Intubation (AFOI)

The gold standard for anticipated difficult airway. Technique:
  1. Preparation: Glycopyrrolate 0.2-0.4 mg IM/IV (antisialagogue) 30-60 min prior
  2. Topical anaesthesia:
    • Nasal route: Cocaine 4% or lignocaine 4% + xylometazoline (vasoconstriction)
    • Oral route: Lignocaine 10% spray + glossopharyngeal nerve block
  3. Nerve blocks:
    • Superior laryngeal nerve block: 3 mL of 2% lignocaine, 1 cm below greater cornu of hyoid
    • Transtracheal block: 4 mL of 4% lignocaine injected through CTM at end-expiration
    • Glossopharyngeal nerve block: 2 mL LA into base of palatoglossal arch bilaterally
  4. Sedation: Dexmedetomidine 0.5-1 mcg/kg over 10 min (preserves airway tone and respiratory drive); ketamine (sub-dissociative) is an alternative
  5. Scope technique: Pass scope through nares or oropharynx under direct vision to cords → advance ETT over scope → confirm with capnography and direct vision
Indications for AFOI: Anticipated difficult airway, unstable cervical spine, TMJ ankylosis, obstructing masses, failed asleep intubation when patient still awake
Contraindications: Patient refusal, uncooperative patient, severe pharyngeal bleeding/secretions, extremely urgently required airway (relative)

4b. Video Laryngoscopy (VL)

  • Devices: GlideScope, C-MAC, McGrath, Airtraq, King Vision
  • Provides indirect laryngeal view with up to 90-degree blade curvature
  • Improves Cormack-Lehane view by 1-2 grades compared to direct laryngoscopy (DL)
  • Hyperangulated blades (GlideScope, McGrath): better view in difficult airway but require stylet and may make passage of ETT difficult despite excellent view
  • Standard geometry blades (C-MAC Macintosh-profile): allow same technique as DL plus video capability
  • First-line rescue device after failed DL in the 2022 ASA and 2025 DAS guidelines
  • Note: Improved view does not guarantee successful intubation - "look-say-do" gap

4c. Supraglottic Airways (SGAs) as Rescue Devices

  • LMA Classic/Unique: 1st generation, no gastric drain, not suitable for full stomach
  • LMA ProSeal / LMA Supreme / i-gel: 2nd generation with gastric drain port - better aspiration protection, higher seal pressure
  • Intubating LMA (ILMA/Fastrach): Designed for blind or fibreoptic-guided intubation through the device; useful in CICO as conduit to intubation
  • SGAs provide oxygenation and can convert CICO to "can oxygenate" pending definitive airway
  • SGA success rate in CICO: ~95% for oxygenation, ~80-85% for intubation through SGA

4d. Optical Stylets / Rigid Intubation Scopes

  • Bonfils intubating fiberscope, Shikani Optical Stylet
  • Useful for limited mouth opening where fibreoptic scope is difficult to navigate
  • Retromolar approach allows access despite trismus

4e. Surgical and Invasive Airways

Cricothyroidotomy (eFONA - Emergency Front-of-Neck Access):
Indication: CICO situation - failure of all non-surgical techniques with deteriorating oxygenation
Anatomy: CTM is located between thyroid cartilage (above) and cricoid cartilage (below); mean width 22 mm, height 9-14 mm in adults; avascular in midline
Scalpel-Bougie-Tube technique (DAS recommended standard for eFONA):
  1. Extend neck, palpate CTM (FONA landmarks: Finger-palpation first, then incision)
  2. Horizontal stab incision through skin and CTM
  3. Hook finger to stabilise larynx; insert bougie with caudal angulation
  4. Railroad size 6.0 cuffed ETT (or 6.0 tracheostomy tube) over bougie
  5. Inflate cuff, confirm position, ventilate
Needle cricothyroidotomy + jet ventilation:
  • 14G IV cannula through CTM
  • High-pressure jet ventilation (50 psi, I:E 1:4) - oxygenation only, no CO2 clearance
  • Maximum duration: 30-45 minutes before barotrauma/air trapping
  • Not recommended as primary eFONA in DAS 2025 guidelines (high failure rate)
Surgical tracheostomy:
  • Used in elective anticipated difficult airway (especially with supraglottic pathology)
  • Awake tracheostomy under local anaesthesia: safe definitive airway before induction

5. Difficult Airway Society (DAS) 2025 Unanticipated Difficult Airway Guidelines (4 marks)

The updated DAS 2025 guidelines for unanticipated difficult intubation in adults provide a 4-plan structured approach:
PlanInterventionMax Attempts
Plan ADirect laryngoscopy ± adjuncts (external laryngeal manipulation, bougie, BURP); optimise head position, introduce videolaryngoscopy3 attempts maximum
Plan BSupraglottic airway device (2nd generation SGA preferred) as primary oxygenation rescue2 attempts
Plan CFace mask ventilation (two-person technique with oral and nasal airways)Temporary oxygenation
Plan DEmergency surgical airway - eFONA via scalpel-bougie techniqueImmediate on CICO declaration
Key principles of DAS 2025:
  • Early declaration of difficulty and escalation - cognitive aid use recommended
  • Limit total laryngoscopy attempts - repeated failed attempts cause trauma and convert to CICO
  • Video laryngoscopy should be introduced from Plan A if anticipated or after one failed DL
  • Maintain oxygenation as the primary goal at every step
  • eFONA is a life-saving procedure and must not be delayed

6. Extubation of the Difficult Airway (2 marks)

Extubation carries significant risk when the patient was difficult to intubate. The DAS extubation guidelines recommend:
Risk stratification before extubation:
  • Low risk: straightforward re-intubation if needed
  • High risk: remediable factors (posture, secretions) vs. non-remediable (fixed anatomy, oedema, surgery)
Techniques:
  • Airway exchange catheter (AEC): Leave in situ after extubation; allows jet ventilation and re-intubation guidance for 30-60 minutes; patient tolerates if warned
  • Staged extubation with SGA: Remove ETT with SGA in situ; allows rescue ventilation
  • Awake extubation: Only when patient is cooperative, protective reflexes intact, muscle relaxation fully reversed
  • Avoid extubation in theatre until full reversal confirmed (TOF ratio >0.9)

7. Special Situations (2 marks)

Obesity

  • Ramped position ("ear to sternal notch") improves laryngoscopic view and safe apnoea time
  • High-flow nasal oxygen (HFNO) at 30-70 L/min during apnoeic period extends safe apnoea time significantly
  • CPAP preoxygenation achieves higher EtO₂ in morbid obesity vs. face mask alone

Obstetrics

  • Failed intubation rate 1 in 300 vs. 1 in 2,000 in general population
  • Airway oedema, breast engorgement limiting neck extension, full stomach, rapid desaturation
  • Waking the patient is a safe option if maternal/fetal condition permits
  • Regional anaesthesia preferred where feasible

Paediatric

  • Awake intubation poorly tolerated - inhalational induction with sevoflurane preferred
  • Uncuffed tubes traditionally used in children <8 years (cuffed tubes now acceptable with pressure monitoring)
  • Surgical airway landmarks more difficult - needle cricothyroidotomy preferred in children <8 years

Unstable Cervical Spine

  • Manual in-line stabilisation (MILS) - reduces neck movement during laryngoscopy
  • MILS does not improve and may worsen laryngoscopic view - VL preferred
  • AFOI remains gold standard

8. Documentation and Follow-Up (1 mark)

After management of a difficult airway, the ASA and DAS both mandate:
  • Full documentation of airway findings, techniques, devices used, and number of attempts in the anaesthetic record
  • Written communication to the patient (e.g., difficult airway letter, MedicAlert bracelet referral)
  • Communication to referring team and primary care physician
  • Evaluation for complications: mucosal injury, dental damage, aspiration, tracheal trauma, airway oedema

Summary Table: Key Equipment for Difficult Airway Trolley

CategoryEquipment
Basic adjunctsOral airways, nasal airways, McGill forceps
Mask ventilationVarious mask sizes, 2-person technique aids
SGAsLMA Classic, i-gel (sizes 3, 4, 5), ILMA/Fastrach
Intubation aidsBougies (multiple sizes), ETT stylets
Video laryngoscopesC-MAC or GlideScope (hyperangulated + standard blade)
Flexible scopeFlexible intubation scope (fibreoptic bronchoscope)
Surgical airwayScalpel, bougie, 6.0 cuffed ETT, Melker kit, needle CTM kit
OxygenationHFNO device (Optiflow), jet ventilation circuit

References:

Marking Guidance:
SectionMarks
Definition and incidence2
Preoperative airway assessment (history, LEMON, Mallampati, measurements, conditions)6
ASA/DAS algorithm (awake vs asleep, steps, CICO)6
Management techniques (AFOI, VL, SGA, eFONA with technique detail)8
DAS 2025 four-plan approach4
Extubation of difficult airway2
Special situations + documentation2
Total30

Convert the above answer to a pdf

Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null || mkdir -p /home/daytona/workspace

Running Command

mkdir -p /home/daytona/workspace/difficult-airway && ls /home/daytona/workspace/difficult-airway/

Writing File

~/difficult-airway/generate_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.lib import colors
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, PageBreak
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY

OUTPUT = "/home/daytona/workspace/difficult-airway/Difficult_Airway_PG_Exam.pdf"

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=2*cm,
    rightMargin=2*cm,
    topMargin=2*cm,
    bottomMargin=2*cm,
)

styles = getSampleStyleSheet()

# Custom styles
title_style = ParagraphStyle(
    "TitleStyle",
    parent=styles["Title"],
    fontSize=16,
    textColor=colors.HexColor("#1a3a5c"),
    spaceAfter=4,
    alignment=TA_CENTER,
)
subtitle_style = ParagraphStyle(
    "SubtitleStyle",
    parent=styles["Normal"],
    fontSize=11,
    textColor=colors.HexColor("#2c5282"),
    spaceAfter=2,
    alignment=TA_CENTER,
)
h1_style = ParagraphStyle(
    "H1Style",
    parent=styles["Heading1"],
    fontSize=13,
    textColor=colors.white,
    backColor=colors.HexColor("#1a3a5c"),
    spaceBefore=12,
    spaceAfter=6,
    leftIndent=-6,
    rightIndent=-6,
    borderPad=4,
)
h2_style = ParagraphStyle(
    "H2Style",
    parent=styles["Heading2"],
    fontSize=11,
    textColor=colors.HexColor("#1a3a5c"),
    spaceBefore=8,
    spaceAfter=4,
    borderPad=2,
)
h3_style = ParagraphStyle(
    "H3Style",
    parent=styles["Heading3"],
    fontSize=10,
    textColor=colors.HexColor("#2c5282"),
    spaceBefore=6,
    spaceAfter=3,
    fontName="Helvetica-Bold",
)
body_style = ParagraphStyle(
    "BodyStyle",
    parent=styles["Normal"],
    fontSize=9.5,
    leading=14,
    spaceAfter=4,
    alignment=TA_JUSTIFY,
)
bullet_style = ParagraphStyle(
    "BulletStyle",
    parent=styles["Normal"],
    fontSize=9.5,
    leading=13,
    leftIndent=14,
    spaceAfter=2,
    bulletIndent=4,
)
sub_bullet_style = ParagraphStyle(
    "SubBulletStyle",
    parent=styles["Normal"],
    fontSize=9,
    leading=12,
    leftIndent=28,
    spaceAfter=2,
    bulletIndent=18,
)
marks_style = ParagraphStyle(
    "MarksStyle",
    parent=styles["Normal"],
    fontSize=9,
    textColor=colors.HexColor("#6b7280"),
    italic=True,
    spaceAfter=6,
)
note_style = ParagraphStyle(
    "NoteStyle",
    parent=styles["Normal"],
    fontSize=9,
    textColor=colors.HexColor("#374151"),
    backColor=colors.HexColor("#eff6ff"),
    borderPad=6,
    spaceBefore=4,
    spaceAfter=6,
    leading=13,
    leftIndent=6,
    rightIndent=6,
)

def h1(text): return Paragraph(f"&nbsp;&nbsp;{text}", h1_style)
def h2(text): return Paragraph(text, h2_style)
def h3(text): return Paragraph(text, h3_style)
def body(text): return Paragraph(text, body_style)
def bullet(text): return Paragraph(f"&#8226; {text}", bullet_style)
def sub_bullet(text): return Paragraph(f"&#9702; {text}", sub_bullet_style)
def marks(text): return Paragraph(text, marks_style)
def note(text): return Paragraph(text, note_style)
def sp(h=4): return Spacer(1, h)
def hr(): return HRFlowable(width="100%", thickness=0.5, color=colors.HexColor("#cbd5e0"), spaceAfter=6, spaceBefore=6)

# --- TABLE HELPER ---
def make_table(headers, rows, col_widths=None, header_bg="#1a3a5c"):
    data = [headers] + rows
    if col_widths is None:
        col_widths = [17*cm / len(headers)] * len(headers)
    t = Table(data, colWidths=col_widths)
    style = TableStyle([
        ("BACKGROUND", (0, 0), (-1, 0), colors.HexColor(header_bg)),
        ("TEXTCOLOR",  (0, 0), (-1, 0), colors.white),
        ("FONTNAME",   (0, 0), (-1, 0), "Helvetica-Bold"),
        ("FONTSIZE",   (0, 0), (-1, 0), 9),
        ("FONTNAME",   (0, 1), (-1, -1), "Helvetica"),
        ("FONTSIZE",   (0, 1), (-1, -1), 9),
        ("ROWBACKGROUNDS", (0, 1), (-1, -1), [colors.white, colors.HexColor("#f7fafc")]),
        ("GRID",       (0, 0), (-1, -1), 0.4, colors.HexColor("#cbd5e0")),
        ("VALIGN",     (0, 0), (-1, -1), "TOP"),
        ("TOPPADDING", (0, 0), (-1, -1), 4),
        ("BOTTOMPADDING", (0, 0), (-1, -1), 4),
        ("LEFTPADDING", (0, 0), (-1, -1), 6),
        ("RIGHTPADDING", (0, 0), (-1, -1), 6),
    ])
    t.setStyle(style)
    return t

# ==================== BUILD CONTENT ====================
story = []

# --- COVER / HEADER ---
story.append(sp(8))
story.append(Paragraph("POSTGRADUATE ANAESTHESIA EXAMINATION", subtitle_style))
story.append(sp(4))
story.append(Paragraph("Difficult Airway and Management", title_style))
story.append(sp(4))
story.append(Paragraph("Model Answer &nbsp;|&nbsp; 30 Marks", subtitle_style))
story.append(sp(2))
story.append(HRFlowable(width="60%", thickness=2, color=colors.HexColor("#1a3a5c"),
                         hAlign="CENTER", spaceAfter=8, spaceBefore=8))
story.append(sp(4))

# ==================== SECTION 1 ====================
story.append(h1("1. Definition and Incidence  [2 marks]"))
story.append(sp(4))
story.append(body(
    "The <b>difficult airway</b> is defined by the American Society of Anesthesiologists (ASA, 2022) as "
    "the clinical situation in which a conventionally trained anaesthesiologist experiences difficulty "
    "with face mask ventilation, difficulty with tracheal intubation, or both."
))
story.append(sp(2))

inc_table = make_table(
    ["Parameter", "Incidence"],
    [
        ["Difficult mask ventilation", "1.4–7.5%"],
        ["Impossible mask ventilation", "~0.15%"],
        ["Difficult laryngoscopy (C-L grade III/IV)", "~5–8%"],
        ["Failed intubation (elective)", "1 in 2,000"],
        ["Failed intubation (obstetrics)", "1 in 300"],
        ["Cannot Intubate - Cannot Oxygenate (CICO)", "~1 in 50,000"],
    ],
    col_widths=[10*cm, 7*cm]
)
story.append(inc_table)
story.append(sp(6))

# ==================== SECTION 2 ====================
story.append(h1("2. Preoperative Airway Assessment  [6 marks]"))
story.append(sp(4))

story.append(h2("2a. History"))
for t in [
    "Previous anaesthetic records — prior documented difficulty is the single most important predictor",
    "Symptoms of airway obstruction: stridor, dysphagia, hoarseness, positional dyspnoea",
    "Relevant conditions: obstructive sleep apnoea, rheumatoid arthritis, ankylosing spondylitis, diabetes mellitus ('prayer sign' — stiff joint syndrome)",
    "Recent infections, tumours, or radiation to the head and neck",
]:
    story.append(bullet(t))
story.append(sp(4))

story.append(h2("2b. LEMON Assessment"))
lemon_table = make_table(
    ["Letter", "Component", "Details"],
    [
        ["L", "Look externally", "Facial trauma, large incisors, beard, obesity, large tongue"],
        ["E", "Evaluate 3-3-2 rule", "Interincisor gap <3 cm, hyoid-to-chin <3 cm, floor of mouth to thyroid notch <2 cm"],
        ["M", "Mallampati", "Class III/IV — poor oropharyngeal view"],
        ["O", "Obstruction", "Epiglottitis, peritonsillar abscess, Ludwig's angina"],
        ["N", "Neck mobility", "Extension <35° predicts difficult laryngoscopy"],
    ],
    col_widths=[1.5*cm, 4*cm, 11.5*cm]
)
story.append(lemon_table)
story.append(sp(4))

story.append(h2("2c. Mallampati Classification"))
story.append(body(
    "Performed with patient seated, mouth fully open, tongue maximally protruded, no phonation:"
))
mallampati_table = make_table(
    ["Class", "Structures Visible", "Significance"],
    [
        ["Class I", "Soft palate, uvula, fauces, tonsillar pillars", "Easy intubation expected"],
        ["Class II", "Soft palate, uvula, fauces", "Relatively easy"],
        ["Class III", "Soft palate, base of uvula only", "Difficult intubation likely"],
        ["Class IV", "Hard palate only", "Very difficult intubation"],
    ],
    col_widths=[2.5*cm, 8*cm, 6.5*cm]
)
story.append(mallampati_table)
story.append(sp(4))

story.append(h2("2d. Cormack–Lehane Grading (at Laryngoscopy)"))
cl_table = make_table(
    ["Grade", "View"],
    [
        ["Grade I", "Full view of glottis"],
        ["Grade II", "Only posterior commissure visible"],
        ["Grade III", "Only epiglottis visible (no glottic structures)"],
        ["Grade IV", "Neither epiglottis nor glottis visible"],
    ],
    col_widths=[3*cm, 14*cm]
)
story.append(cl_table)
story.append(sp(4))

story.append(h2("2e. Key Measurements"))
story.append(make_table(
    ["Measurement", "Threshold", "Significance"],
    [
        ["Thyromental distance (TMD)", "<6.5 cm", "Predicts difficult laryngoscopy"],
        ["Sternomental distance", "<12.5 cm (full extension, mouth closed)", "Difficult laryngoscopy"],
        ["Inter-incisor gap", "<3 cm (2 finger-breadths)", "Difficult instrument placement"],
        ["Neck extension", "<35°", "Difficult laryngoscopy"],
        ["Neck circumference", ">40 cm", "Difficult mask ventilation"],
        ["Mandible to hyoid bone", "<7 cm", "Difficult laryngoscopy"],
    ],
    col_widths=[5*cm, 6.5*cm, 5.5*cm]
))
story.append(sp(4))

story.append(h2("2f. Predictors of Difficult Mask Ventilation (OBESE)"))
for t in [
    "<b>O</b>bese — BMI >26 kg/m²",
    "<b>B</b>eard",
    "<b>E</b>dentulous",
    "<b>S</b>noring / obstructive sleep apnoea",
    "<b>E</b>lderly (>55 years)",
]:
    story.append(bullet(t))
story.append(sp(4))

story.append(h2("2g. Conditions Associated with Difficult Intubation"))
story.append(make_table(
    ["Category", "Examples"],
    [
        ["Tumours", "Cystic hygroma, hemangioma, haematoma"],
        ["Infections", "Ludwig's angina, peritonsillar abscess, epiglottitis"],
        ["Congenital anomalies", "Pierre Robin, Treacher Collins, Goldenhar syndrome, laryngeal atresia"],
        ["Trauma", "Laryngeal fracture, mandibular/maxillary fracture, inhalation burn, C-spine injury"],
        ["Systemic disease", "Obesity, rheumatoid arthritis (arytenoid involvement), ankylosing spondylitis"],
        ["Anatomic variants", "Micrognathia, prognathism, macroglossia, arched palate, short neck, prominent incisors"],
    ],
    col_widths=[4.5*cm, 12.5*cm]
))
story.append(sp(6))

# ==================== SECTION 3 ====================
story.append(h1("3. ASA Difficult Airway Algorithm (2022)  [6 marks]"))
story.append(sp(4))

story.append(h2("3a. Step 1 — Assess likelihood of difficulty with:"))
for t in [
    "Patient cooperation and consent",
    "Face mask ventilation",
    "Supraglottic airway (SGA) placement",
    "Laryngoscopy",
    "Tracheal intubation",
    "Surgical airway access",
]:
    story.append(bullet(t))
story.append(sp(4))

story.append(h2("3b. Step 2 — Awake vs. Asleep Intubation Decision"))
story.append(h3("Awake intubation is PREFERRED when:"))
for t in [
    "Anticipated difficult intubation AND difficult mask ventilation",
    "Full stomach/aspiration risk with anticipated difficult airway",
    "Haemodynamic instability combined with difficult airway",
    "Upper airway obstruction (Ludwig's angina, angioedema, large goitre)",
    "Patient unable to tolerate even brief apnoea",
]:
    story.append(bullet(t))

story.append(h3("Proceed with GA induction if:"))
for t in [
    "Airway predicted to be manageable",
    "Appropriate backup, equipment, and personnel are available",
    "Patient refuses awake intubation",
]:
    story.append(bullet(t))
story.append(sp(4))

story.append(h2("3c. Algorithm Pathways"))
story.append(h3("A. Awake Intubation Pathway:"))
numbered = [
    "Topicalise airway ± regional nerve blocks",
    "Awake flexible scope intubation (gold standard)",
    "Awake video laryngoscopy",
    "Awake optical stylet / Bonfils intubating scope",
    "Retrograde wire-guided intubation (rarely)",
    "<b>If all fail → awake surgical tracheostomy</b>",
]
for i, t in enumerate(numbered, 1):
    story.append(Paragraph(f"{i}. {t}", bullet_style))

story.append(h3("B. Anaesthetised Patient — Intubation Fails:"))
for t in [
    "Call for help immediately",
    "Limit laryngoscopy attempts to 3 (+ 1 by a more experienced operator)",
    "Maintain oxygenation — return to mask ventilation between attempts",
    "Consider SGA (i-gel, ProSeal LMA, ILMA) as rescue oxygenation device",
    "Video laryngoscopy as primary rescue after one failed direct laryngoscopy",
]:
    story.append(bullet(t))

story.append(h3("C. CICO (Cannot Intubate – Cannot Oxygenate) — Emergency Pathway:"))
story.append(note(
    "<b>CICO is a life-threatening emergency. Declare it immediately and call for help.</b><br/>"
    "1. Maximise oxygenation: two-person BMV, oral/nasal airway, SGA attempt<br/>"
    "2. If SGA fails or oxygenation remains inadequate — proceed <b>immediately</b> to <b>Emergency Front-of-Neck Access (eFONA)</b><br/>"
    "3. Do NOT delay eFONA with repeated failed instrumentation attempts"
))
story.append(sp(6))

# ==================== SECTION 4 ====================
story.append(h1("4. Airway Management Techniques  [8 marks]"))
story.append(sp(4))

story.append(h2("4a. Awake Fibreoptic Intubation (AFOI) — Gold Standard for Anticipated Difficult Airway"))
story.append(h3("Preparation:"))
story.append(bullet("Glycopyrrolate 0.2–0.4 mg IM/IV 30–60 min prior (antisialagogue — reduces secretions without CNS crossing)"))
story.append(bullet("Informed consent, psychological preparation, explanation of each step to the patient"))

story.append(h3("Topical Anaesthesia:"))
story.append(bullet("<b>Nasal route:</b> Cocaine 4% or lignocaine 4% + xylometazoline (vasoconstriction)"))
story.append(bullet("<b>Oral route:</b> Lignocaine 10% spray to oropharynx"))

story.append(h3("Nerve Blocks:"))
story.append(bullet("<b>Glossopharyngeal nerve block:</b> 2 mL 2% lignocaine injected into base of palatoglossal arch bilaterally — blocks posterior tongue and oropharynx"))
story.append(bullet("<b>Superior laryngeal nerve block:</b> 3 mL of 2% lignocaine 1 cm below the greater cornu of hyoid, where the internal branch penetrates the thyrohyoid membrane — anaesthetises supraglottic larynx"))
story.append(bullet("<b>Transtracheal block:</b> 4 mL of 4% lignocaine injected through CTM at end-expiration — cough distributes LA throughout the trachea — anaesthetises subglottic larynx and trachea"))

story.append(h3("Sedation:"))
story.append(bullet("Dexmedetomidine 0.5–1 mcg/kg over 10 min — preserves airway tone and spontaneous ventilation, anxiolytic, cooperative patient"))
story.append(bullet("Ketamine sub-dissociative 0.3–0.5 mg/kg — maintains pharyngeal tone, analgesic, bronchodilator"))
story.append(bullet("Avoid benzodiazepines/opioids as primary agents — risk of airway loss"))

story.append(h3("Technique:"))
for t in [
    "Pass flexible scope through nares or oropharynx under direct vision",
    "Navigate past turbinates, epiglottis, identify vocal cords",
    "Advance scope through cords into trachea — confirm tracheal rings",
    "Railroads ETT over scope into trachea",
    "Confirm position with capnography and fibreoptic view of carina",
]:
    story.append(sub_bullet(t))
story.append(sp(4))

story.append(h2("4b. Video Laryngoscopy (VL)"))
story.append(bullet("Devices: GlideScope, C-MAC, McGrath MAC, Airtraq, King Vision"))
story.append(bullet("Indirect glottic view with blade curvatures up to 90 degrees — improves C-L grade by 1–2 grades vs. direct laryngoscopy"))
story.append(bullet("<b>Hyperangulated blades</b> (GlideScope, McGrath): best glottic view in difficult anatomy — require pre-shaped stylet; 'look-say-do' gap between excellent view and successful tube passage"))
story.append(bullet("<b>Standard geometry blades</b> (C-MAC Macintosh profile): allows same technique as DL plus video assistance — preferred for routine use and training"))
story.append(bullet("First-line rescue after failed direct laryngoscopy in DAS 2025 and ASA 2022 guidelines"))
story.append(bullet("Can be used for awake intubation with appropriate topicalisation"))
story.append(sp(4))

story.append(h2("4c. Supraglottic Airways (SGAs)"))
story.append(make_table(
    ["Device", "Generation", "Features", "Role in Difficult Airway"],
    [
        ["LMA Classic / Unique", "1st", "No gastric port, low seal pressure (~18 cmH₂O)", "Temporary oxygenation rescue"],
        ["LMA ProSeal / Supreme\ni-gel", "2nd", "Gastric drain port, higher seal pressure (25–30 cmH₂O)", "Rescue oxygenation in CICO — preferred"],
        ["ILMA / Fastrach", "Intubating", "Rigid handle, designed for blind or fibreoptic-guided intubation", "Conduit for definitive intubation in CICO"],
    ],
    col_widths=[3.5*cm, 2.5*cm, 6*cm, 5*cm]
))
story.append(bullet("SGA oxygenation success rate in CICO: ~95%; intubation through SGA: ~80–85%"))
story.append(sp(4))

story.append(h2("4d. Optical Stylets and Rigid Intubation Scopes"))
story.append(bullet("Bonfils intubating fiberscope, Shikani Optical Stylet"))
story.append(bullet("Particularly useful for limited mouth opening where flexible scope navigation is difficult"))
story.append(bullet("Retromolar approach allows access despite trismus (TMJ limitation)"))
story.append(sp(4))

story.append(h2("4e. Emergency Front-of-Neck Access (eFONA) — Cricothyroidotomy"))
story.append(note(
    "<b>Indication:</b> CICO — failure of all non-surgical techniques with deteriorating oxygenation. "
    "This is a life-saving procedure and must NOT be delayed."
))
story.append(h3("Anatomy:"))
story.append(bullet("Cricothyroid membrane (CTM) between thyroid cartilage (above) and cricoid cartilage (below)"))
story.append(bullet("Mean width 22 mm, height 9–14 mm in adults; midline is avascular"))
story.append(bullet("Palpation: move finger from thyroid notch downward — first firm ridge is the CTM"))

story.append(h3("Scalpel-Bougie-Tube Technique (DAS 2025 recommended standard):"))
numbered2 = [
    "Extend neck; identify and palpate CTM (finger stabilisation)",
    "Horizontal stab incision through skin and CTM (scalpel blade #22 or #15)",
    "Hook finger into the incision to stabilise larynx and maintain opening",
    "Insert bougie with caudal (downward) angulation into trachea",
    "Railroad a size 6.0 cuffed ETT (or 6.0 cuffed tracheostomy tube) over the bougie",
    "Inflate cuff, ventilate, confirm with capnography",
]
for i, t in enumerate(numbered2, 1):
    story.append(Paragraph(f"{i}. {t}", bullet_style))

story.append(h3("Needle Cricothyroidotomy + Jet Ventilation (not primary eFONA):"))
story.append(bullet("14G IV cannula through CTM — high-pressure jet ventilation (50 psi, I:E 1:4)"))
story.append(bullet("Oxygenation only; no CO₂ clearance — maximum 30–45 min before barotrauma"))
story.append(bullet("<b>Not recommended</b> as primary eFONA in DAS 2025 (high failure rate in adults)"))
story.append(bullet("Preferred in children <8 years (surgical CTM landmarks less reliable)"))
story.append(sp(6))

# ==================== SECTION 5 ====================
story.append(h1("5. DAS 2025 Four-Plan Approach (Unanticipated Difficult Airway)  [4 marks]"))
story.append(sp(4))
story.append(make_table(
    ["Plan", "Intervention", "Attempts", "Key Points"],
    [
        ["Plan A", "Direct laryngoscopy ± videolaryngoscopy\nAdjuncts: bougie, BURP, ELM\nOptimise position (ear to sternal notch)", "Max 3", "Introduce VL after 1 failed DL attempt\nLimit trauma with each attempt"],
        ["Plan B", "2nd-generation SGA insertion\n(i-gel or LMA ProSeal preferred)", "Max 2", "Secure oxygenation as primary goal\nConfirm seal and ventilation"],
        ["Plan C", "Two-person face mask ventilation\nInsert oral and nasal airways\nMaximise neuromuscular blockade", "Temporary", "Bridge to decision: wake vs eFONA\nDo not persist if SpO₂ falling"],
        ["Plan D", "Emergency Front-of-Neck Access\nScalpel-bougie-tube technique\nDeclare CICO, call for surgical help", "Immediate", "Life-saving — must not be delayed\nSurgeon should be scrubbed and ready"],
    ],
    col_widths=[1.5*cm, 7.5*cm, 2.5*cm, 5.5*cm]
))
story.append(sp(4))
story.append(note(
    "<b>Key principles DAS 2025:</b> (1) Declare difficulty early and call for help; (2) Use cognitive aids/algorithms; "
    "(3) Limit total attempts — repeated failure causes trauma and escalates to CICO; "
    "(4) Maintain oxygenation as the primary goal at every step; "
    "(5) eFONA is not a failure — it is the correct management of CICO."
))
story.append(sp(6))

# ==================== SECTION 6 ====================
story.append(h1("6. Extubation of the Difficult Airway  [2 marks]"))
story.append(sp(4))
story.append(body(
    "Extubation carries significant risk when the patient was difficult to intubate. "
    "The DAS extubation guidelines mandate pre-extubation risk stratification."
))
story.append(h3("Risk Stratification:"))
story.append(bullet("<b>Low risk:</b> Straightforward re-intubation if needed; standard extubation acceptable"))
story.append(bullet("<b>High risk:</b> Further divided into — remediable factors (secretions, posture, residual block) vs. non-remediable (fixed anatomy, airway oedema, prolonged surgery, neck haematoma)"))

story.append(h3("Techniques for High-Risk Extubation:"))
story.append(bullet("<b>Airway exchange catheter (AEC):</b> Leave in situ post-extubation for 30–60 min; allows jet ventilation and re-intubation guidance; warn patient to expect coughing"))
story.append(bullet("<b>Staged extubation with SGA in situ:</b> Remove ETT with LMA already placed as rescue airway"))
story.append(bullet("<b>Awake extubation:</b> Only when protective reflexes fully intact, full neuromuscular reversal confirmed (TOF ratio >0.9), patient cooperative"))
story.append(bullet("Extubate in theatre environment with senior anaesthetist present, not in recovery bay"))
story.append(sp(6))

# ==================== SECTION 7 ====================
story.append(h1("7. Special Situations  [2 marks]"))
story.append(sp(4))

story.append(h2("Obesity"))
story.append(bullet("'Ramped' position (ear to sternal notch) improves laryngoscopic view and safe apnoea time"))
story.append(bullet("High-flow nasal oxygen (HFNO/Optiflow) at 30–70 L/min during apnoea significantly extends safe apnoea time (apnoeic oxygenation)"))
story.append(bullet("CPAP preoxygenation achieves higher EtO₂ than face mask alone in morbid obesity"))
story.append(bullet("Rapid desaturation — shorter safe apnoea time; pre-oxygenation to EtO₂ >90% mandatory"))

story.append(h2("Obstetrics"))
story.append(bullet("Failed intubation rate 1 in 300 (10× general surgical population)"))
story.append(bullet("Compounding factors: airway oedema (especially in pre-eclampsia), engorged breasts, full stomach, rapid desaturation, physiological anaemia"))
story.append(bullet("Waking the patient is a valid management option if maternal/fetal condition permits"))
story.append(bullet("Regional anaesthesia (spinal/epidural) preferred whenever clinically feasible"))

story.append(h2("Paediatric Difficult Airway"))
story.append(bullet("Awake intubation poorly tolerated — inhalational induction with sevoflurane (maintaining spontaneous ventilation) preferred"))
story.append(bullet("Cuffed ETTs now acceptable in children <8 years with cuff pressure monitoring (<20 cmH₂O)"))
story.append(bullet("Surgical airway landmarks difficult — needle cricothyroidotomy preferred in children <8 years"))
story.append(bullet("Subglottic diameter smallest part of paediatric airway (cf. adults: glottis)"))

story.append(h2("Unstable Cervical Spine"))
story.append(bullet("Manual in-line stabilisation (MILS) — one person holds head, preventing cervical movement"))
story.append(bullet("MILS does NOT improve and may worsen laryngoscopic view — VL strongly preferred"))
story.append(bullet("Awake fibreoptic intubation remains gold standard for confirmed/suspected C-spine injury"))
story.append(sp(6))

# ==================== SECTION 8 ====================
story.append(h1("8. Documentation and Follow-Up  [included in marks]"))
story.append(sp(4))
story.append(body(
    "Both the ASA 2022 and DAS guidelines mandate structured follow-up after every difficult airway encounter:"
))
story.append(make_table(
    ["Action", "Details"],
    [
        ["Anaesthetic record", "Document findings, techniques used, devices, number of attempts, complications"],
        ["Patient communication", "Written 'difficult airway letter'; advise of clinical signs of complications; MedicAlert bracelet referral"],
        ["Team communication", "Inform surgical team, recovery staff, ICU if applicable, and primary care physician"],
        ["Complications follow-up", "Monitor for: mucosal injury, dental damage, aspiration, airway oedema, tracheal trauma, recurrent laryngeal nerve injury"],
    ],
    col_widths=[5*cm, 12*cm]
))
story.append(sp(6))

# ==================== EQUIPMENT TABLE ====================
story.append(h1("Appendix: Difficult Airway Trolley — Minimum Contents"))
story.append(sp(4))
story.append(make_table(
    ["Category", "Equipment"],
    [
        ["Basic adjuncts", "Oral airways (Guedel sizes 2–5), nasal airways, McGill forceps, lubricant"],
        ["Mask ventilation", "Various face mask sizes, two-person technique connectors"],
        ["Supraglottic airways", "LMA Classic (sizes 3, 4, 5), i-gel (sizes 3, 4, 5), ILMA/Fastrach"],
        ["Intubation adjuncts", "Gum-elastic bougie (multiple sizes), ETT stylets, tube exchangers (AEC)"],
        ["Video laryngoscopes", "C-MAC (standard + D-blade) or GlideScope, spare batteries/power"],
        ["Flexible intubation scope", "Fibreoptic bronchoscope/flexible intubation scope + light source"],
        ["Jet ventilation", "High-pressure jet ventilation circuit (Manujet), 14G cannulae"],
        ["Surgical airway kit", "Scalpel, gum-elastic bougie, 6.0 cuffed ETT, Melker cricothyrotomy kit"],
        ["Monitoring", "Capnography (waveform), pulse oximeter, CO₂ detector colorimetric"],
        ["Drugs", "Lignocaine 4%, cocaine 4%, glycopyrrolate, dexmedetomidine, ketamine, sugammadex"],
    ],
    col_widths=[5*cm, 12*cm]
))
story.append(sp(6))

# ==================== MARKING SCHEME ====================
story.append(h1("Marking Scheme"))
story.append(sp(4))
story.append(make_table(
    ["Section", "Topic", "Marks"],
    [
        ["1", "Definition and incidence", "2"],
        ["2", "Preoperative airway assessment (history, LEMON, Mallampati, C-L grading, measurements, conditions)", "6"],
        ["3", "ASA Difficult Airway Algorithm 2022 (awake vs asleep, CICO pathway)", "6"],
        ["4", "Management techniques (AFOI, VL, SGA, eFONA with surgical technique detail)", "8"],
        ["5", "DAS 2025 four-plan approach", "4"],
        ["6", "Extubation of difficult airway", "2"],
        ["7", "Special situations + documentation and follow-up", "2"],
        ["", "TOTAL", "30"],
    ],
    col_widths=[2*cm, 12*cm, 3*cm]
))
story.append(sp(4))

# ==================== REFERENCES ====================
story.append(hr())
story.append(Paragraph("<b>Key References</b>", h3_style))
refs = [
    "ASA Task Force. Practice Guidelines for Management of the Difficult Airway. <i>Anesthesiology</i> 2022;136:31–81.",
    "Difficult Airway Society. Unanticipated Difficult Intubation in Adults. DAS Guidelines 2025. das.uk.com",
    "All India Difficult Airway Association (AIDAA) 2025 Guidelines for unanticipated difficult airway in adults under general anaesthesia. <i>Indian J Anaesth</i> 2025.",
    "Morgan GE, Mikhail MS. <i>Clinical Anesthesiology</i>, 7th ed. Chapter 19: Airway Management.",
    "Miller RD et al. <i>Miller's Anesthesia</i>, 10th ed. Chapter 40: Airway Management.",
    "Barash PG et al. <i>Clinical Anesthesia</i>, 9th ed. Chapter 28: Flexible Intubation Scope.",
]
for r in refs:
    story.append(Paragraph(f"&#8226; {r}", ParagraphStyle(
        "ref", parent=styles["Normal"], fontSize=8.5, leading=12,
        leftIndent=10, spaceAfter=3
    )))

story.append(sp(12))
story.append(HRFlowable(width="100%", thickness=0.5, color=colors.HexColor("#cbd5e0")))
story.append(Paragraph(
    "Generated by Orris AI &nbsp;|&nbsp; Postgraduate Anaesthesia Examination Preparation &nbsp;|&nbsp; June 2026",
    ParagraphStyle("footer", parent=styles["Normal"], fontSize=8,
                   textColor=colors.HexColor("#9ca3af"), alignment=TA_CENTER, spaceBefore=4)
))

# ==================== BUILD ====================
doc.build(story)
print(f"PDF created: {OUTPUT}")
Editing File

~/difficult-airway/generate_pdf.py

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/difficult-airway/generate_pdf.py'
Running Command

cat > /home/daytona/workspace/difficult-airway/generate_pdf.py << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm from reportlab.lib import colors from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, PageBreak ) from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY OUTPUT = "/home/daytona/workspace/difficult-airway/Difficult_Airway_PG_Exam.pdf" doc = SimpleDocTemplate( OUTPUT, pagesize=A4, leftMargin=2*cm, rightMargin=2*cm, topMargin=2*cm, bottomMargin=2*cm, ) styles = getSampleStyleSheet() title_style = ParagraphStyle("TitleStyle", parent=styles["Title"], fontSize=16, textColor=colors.HexColor("#1a3a5c"), spaceAfter=4, alignment=TA_CENTER) subtitle_style = ParagraphStyle("SubtitleStyle", parent=styles["Normal"], fontSize=11, textColor=colors.HexColor("#2c5282"), spaceAfter=2, alignment=TA_CENTER) h1_style = ParagraphStyle("H1Style", parent=styles["Heading1"], fontSize=12, textColor=colors.white, backColor=colors.HexColor("#1a3a5c"), spaceBefore=12, spaceAfter=6, leftIndent=-6, rightIndent=-6, borderPad=5) h2_style = ParagraphStyle("H2Style", parent=styles["Heading2"], fontSize=10.5, textColor=colors.HexColor("#1a3a5c"), spaceBefore=8, spaceAfter=4, fontName="Helvetica-Bold") h3_style = ParagraphStyle("H3Style", parent=styles["Heading3"], fontSize=10, textColor=colors.HexColor("#2c5282"), spaceBefore=5, spaceAfter=3, fontName="Helvetica-Bold") body_style = ParagraphStyle("BodyStyle", parent=styles["Normal"], fontSize=9.5, leading=14, spaceAfter=4, alignment=TA_JUSTIFY) bullet_style = ParagraphStyle("BulletStyle", parent=styles["Normal"], fontSize=9.5, leading=13, leftIndent=14, spaceAfter=2, bulletIndent=4) sub_bullet_style = ParagraphStyle("SubBulletStyle", parent=styles["Normal"], fontSize=9, leading=12, leftIndent=28, spaceAfter=2) note_style = ParagraphStyle("NoteStyle", parent=styles["Normal"], fontSize=9, textColor=colors.HexColor("#374151"), backColor=colors.HexColor("#eff6ff"), borderPad=6, spaceBefore=4, spaceAfter=6, leading=13, leftIndent=6, rightIndent=6) footer_style = ParagraphStyle("footer", parent=styles["Normal"], fontSize=8, textColor=colors.HexColor("#9ca3af"), alignment=TA_CENTER, spaceBefore=4) ref_style = ParagraphStyle("ref", parent=styles["Normal"], fontSize=8.5, leading=12, leftIndent=10, spaceAfter=3) def h1(text): return Paragraph(f" {text}", h1_style) def h2(text): return Paragraph(text, h2_style) def h3(text): return Paragraph(text, h3_style) def body(text): return Paragraph(text, body_style) def bullet(text): return Paragraph(f"&#8226; {text}", bullet_style) def sub_bullet(text): return Paragraph(f" {text}", sub_bullet_style) def note(text): return Paragraph(text, note_style) def sp(h=4): return Spacer(1, h) def hr(): return HRFlowable(width="100%", thickness=0.5, color=colors.HexColor("#cbd5e0"), spaceAfter=6, spaceBefore=6) def make_table(headers, rows, col_widths=None, hbg="#1a3a5c"): data = [headers] + rows if col_widths is None: col_widths = [17*cm / len(headers)] * len(headers) t = Table(data, colWidths=col_widths) style = TableStyle([ ("BACKGROUND", (0,0), (-1,0), colors.HexColor(hbg)), ("TEXTCOLOR", (0,0), (-1,0), colors.white), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,0), 9), ("FONTNAME", (0,1), (-1,-1), "Helvetica"), ("FONTSIZE", (0,1), (-1,-1), 9), ("ROWBACKGROUNDS", (0,1), (-1,-1), [colors.white, colors.HexColor("#f7fafc")]), ("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#cbd5e0")), ("VALIGN", (0,0), (-1,-1), "TOP"), ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 6), ("RIGHTPADDING", (0,0), (-1,-1), 6), ]) t.setStyle(style) return t story = [] # Cover header story += [sp(8), Paragraph("POSTGRADUATE ANAESTHESIA EXAMINATION", subtitle_style), sp(4), Paragraph("Difficult Airway and Management", title_style), sp(4), Paragraph("Model Answer | 30 Marks", subtitle_style), sp(2), HRFlowable(width="60%", thickness=2, color=colors.HexColor("#1a3a5c"), hAlign="CENTER", spaceAfter=8, spaceBefore=8), sp(4)] # ---- SECTION 1 ---- story.append(h1("1. Definition and Incidence [2 marks]")) story.append(sp(4)) story.append(body( "The <b>difficult airway</b> is defined by the American Society of Anesthesiologists (ASA, 2022) " "as the clinical situation in which a conventionally trained anaesthesiologist experiences difficulty " "with face mask ventilation, difficulty with tracheal intubation, or both.")) story.append(sp(2)) story.append(make_table(["Parameter", "Incidence"], [ ["Difficult mask ventilation", "1.4 - 7.5%"], ["Impossible mask ventilation", "~0.15%"], ["Difficult laryngoscopy (C-L grade III/IV)", "~5 - 8%"], ["Failed intubation (elective)", "1 in 2,000"], ["Failed intubation (obstetrics)", "1 in 300"], ["Cannot Intubate - Cannot Oxygenate (CICO)", "~1 in 50,000"], ], col_widths=[10*cm, 7*cm])) story.append(sp(6)) # ---- SECTION 2 ---- story.append(h1("2. Preoperative Airway Assessment [6 marks]")) story.append(sp(4)) story.append(h2("2a. History")) for t in [ "Previous anaesthetic records - prior documented difficulty is the single most important predictor", "Symptoms of obstruction: stridor, dysphagia, hoarseness, positional dyspnoea", "Relevant conditions: obstructive sleep apnoea, rheumatoid arthritis, ankylosing spondylitis, diabetes ('prayer sign')", "Recent infections, tumours, or radiation to head and neck", ]: story.append(bullet(t)) story.append(sp(4)) story.append(h2("2b. LEMON Assessment")) story.append(make_table(["Letter", "Component", "Details"], [ ["L", "Look externally", "Facial trauma, large incisors, beard, obesity, macroglossia"], ["E", "Evaluate 3-3-2 rule", "Interincisor gap <3 cm, hyoid-chin distance <3 cm, floor of mouth to thyroid notch <2 cm"], ["M", "Mallampati", "Class III/IV - poor oropharyngeal view"], ["O", "Obstruction", "Epiglottitis, peritonsillar abscess, Ludwig's angina"], ["N", "Neck mobility", "Extension <35 degrees predicts difficult laryngoscopy"], ], col_widths=[1.5*cm, 4*cm, 11.5*cm])) story.append(sp(4)) story.append(h2("2c. Mallampati Classification")) story.append(body("Performed with patient seated, mouth fully open, tongue maximally protruded, no phonation:")) story.append(make_table(["Class", "Structures Visible", "Significance"], [ ["Class I", "Soft palate, uvula, fauces, tonsillar pillars", "Easy intubation expected"], ["Class II", "Soft palate, uvula, fauces", "Relatively easy"], ["Class III", "Soft palate, base of uvula only", "Difficult intubation likely"], ["Class IV", "Hard palate only", "Very difficult intubation"], ], col_widths=[2.5*cm, 8*cm, 6.5*cm])) story.append(sp(4)) story.append(h2("2d. Cormack-Lehane Grading (at Laryngoscopy)")) story.append(make_table(["Grade", "View"], [ ["Grade I", "Full view of glottis"], ["Grade II", "Only posterior commissure visible"], ["Grade III", "Only epiglottis visible (no glottic structures)"], ["Grade IV", "Neither epiglottis nor glottis visible"], ], col_widths=[3*cm, 14*cm])) story.append(sp(4)) story.append(h2("2e. Key Airway Measurements")) story.append(make_table(["Measurement", "Threshold", "Significance"], [ ["Thyromental distance (TMD)", "<6.5 cm", "Predicts difficult laryngoscopy"], ["Sternomental distance", "<12.5 cm (full extension, mouth closed)", "Difficult laryngoscopy"], ["Inter-incisor gap", "<3 cm (2 finger-breadths)", "Difficult instrument placement"], ["Neck extension", "<35 degrees", "Difficult laryngoscopy"], ["Neck circumference", ">40 cm", "Difficult mask ventilation"], ["Mandible to hyoid bone", "<7 cm", "Difficult laryngoscopy"], ], col_widths=[5*cm, 6.5*cm, 5.5*cm])) story.append(sp(4)) story.append(h2("2f. Predictors of Difficult Mask Ventilation (OBESE)")) for t in ["Obese (BMI >26 kg/m2)", "Beard", "Edentulous", "Snoring / obstructive sleep apnoea", "Elderly (>55 years)"]: story.append(bullet(t)) story.append(sp(4)) story.append(h2("2g. Conditions Associated with Difficult Intubation")) story.append(make_table(["Category", "Examples"], [ ["Tumours", "Cystic hygroma, hemangioma, haematoma"], ["Infections", "Ludwig's angina, peritonsillar abscess, epiglottitis"], ["Congenital anomalies", "Pierre Robin, Treacher Collins, Goldenhar syndrome, laryngeal atresia"], ["Trauma", "Laryngeal fracture, mandibular fracture, inhalation burn, C-spine injury"], ["Systemic disease", "Obesity, rheumatoid arthritis (arytenoid involvement), ankylosing spondylitis"], ["Anatomic variants", "Micrognathia, prognathism, macroglossia, arched palate, short neck, prominent incisors"], ], col_widths=[4.5*cm, 12.5*cm])) story.append(sp(6)) # ---- SECTION 3 ---- story.append(h1("3. ASA Difficult Airway Algorithm (2022) [6 marks]")) story.append(sp(4)) story.append(h2("3a. Step 1 - Assess likelihood of difficulty with:")) for t in ["Patient cooperation and consent", "Face mask ventilation", "Supraglottic airway (SGA) placement", "Laryngoscopy", "Tracheal intubation", "Surgical airway access"]: story.append(bullet(t)) story.append(sp(4)) story.append(h2("3b. Step 2 - Awake vs. Asleep Intubation Decision")) story.append(h3("Awake intubation is PREFERRED when:")) for t in [ "Anticipated difficult intubation AND difficult mask ventilation", "Full stomach/aspiration risk with anticipated difficult airway", "Haemodynamic instability combined with difficult airway", "Upper airway obstruction (Ludwig's angina, angioedema, large goitre)", "Patient unable to tolerate even brief apnoea", ]: story.append(bullet(t)) story.append(h3("Proceed with GA induction if:")) for t in ["Airway predicted to be manageable", "Appropriate backup, equipment, and personnel available", "Patient refuses awake intubation"]: story.append(bullet(t)) story.append(sp(4)) story.append(h2("3c. Algorithm Pathways")) story.append(h3("A. Awake Intubation Pathway:")) for i, t in enumerate([ "Topicalise airway +/- regional nerve blocks", "Awake flexible scope intubation (gold standard)", "Awake video laryngoscopy", "Awake optical stylet / Bonfils intubating scope", "Retrograde wire-guided intubation (rarely used)", "If all fail - awake surgical tracheostomy under local anaesthesia", ], 1): story.append(Paragraph(f"{i}. {t}", bullet_style)) story.append(h3("B. Anaesthetised Patient - Intubation Fails:")) for t in [ "Call for help immediately", "Limit laryngoscopy attempts to 3 (+ 1 by a more experienced operator)", "Maintain oxygenation - return to mask ventilation between every attempt", "Consider SGA (i-gel, LMA ProSeal, ILMA) as rescue oxygenation device", "Video laryngoscopy as primary rescue after one failed direct laryngoscopy", ]: story.append(bullet(t)) story.append(h3("C. CICO (Cannot Intubate - Cannot Oxygenate) - Emergency Pathway:")) story.append(note( "<b>CICO is a life-threatening emergency. Declare it immediately and call for help.</b><br/>" "1. Maximise oxygenation: two-person BMV, oral/nasal airway adjuncts, SGA attempt<br/>" "2. If SGA fails or oxygenation remains inadequate - proceed <b>immediately</b> to <b>Emergency Front-of-Neck Access (eFONA)</b><br/>" "3. Do NOT delay eFONA with repeated failed instrumentation attempts" )) story.append(sp(6)) # ---- SECTION 4 ---- story.append(h1("4. Airway Management Techniques [8 marks]")) story.append(sp(4)) story.append(h2("4a. Awake Fibreoptic Intubation (AFOI) - Gold Standard for Anticipated Difficult Airway")) story.append(h3("Preparation:")) story.append(bullet("Glycopyrrolate 0.2-0.4 mg IM/IV 30-60 min prior (antisialagogue - reduces secretions, does not cross BBB)")) story.append(bullet("Informed consent; psychological preparation and explanation of each step")) story.append(h3("Topical Anaesthesia:")) story.append(bullet("<b>Nasal route:</b> Cocaine 4% or lignocaine 4% + xylometazoline (vasoconstriction) applied to nasal mucosa")) story.append(bullet("<b>Oral route:</b> Lignocaine 10% spray to oropharynx + nebulised lignocaine")) story.append(h3("Nerve Blocks:")) story.append(bullet("<b>Glossopharyngeal nerve block:</b> 2 mL 2% lignocaine into base of palatoglossal arch bilaterally - anaesthetises posterior tongue and oropharynx")) story.append(bullet("<b>Superior laryngeal nerve block:</b> 3 mL 2% lignocaine 1 cm below greater cornu of hyoid, through thyrohyoid membrane - anaesthetises supraglottic larynx")) story.append(bullet("<b>Transtracheal block:</b> 4 mL 4% lignocaine through CTM at end-expiration; cough distributes LA - anaesthetises subglottic larynx and trachea")) story.append(h3("Sedation:")) story.append(bullet("Dexmedetomidine 0.5-1 mcg/kg over 10 min - preserves airway tone and spontaneous ventilation; cooperative, sedated patient")) story.append(bullet("Ketamine sub-dissociative 0.3-0.5 mg/kg - maintains pharyngeal tone, analgesic, bronchodilator")) story.append(bullet("Avoid benzodiazepines/opioids as primary agents due to risk of airway loss")) story.append(h3("Technique:")) for t in [ "Pass flexible scope through nares or oropharynx under direct vision", "Navigate past turbinates/epiglottis, identify vocal cords", "Advance scope through cords into trachea - confirm tracheal rings and carina", "Railroad ETT over scope into trachea", "Confirm position with capnography and fibreoptic view of carina before withdrawing scope", ]: story.append(sub_bullet(t)) story.append(sp(4)) story.append(h2("4b. Video Laryngoscopy (VL)")) for t in [ "Devices: GlideScope, C-MAC, McGrath MAC, Airtraq, King Vision", "Indirect glottic view with blade curvatures up to 90 degrees - improves C-L grade by 1-2 grades vs. direct laryngoscopy", "<b>Hyperangulated blades</b> (GlideScope, McGrath): best glottic view in difficult anatomy; require pre-shaped stylet; note 'look-say-do' gap between excellent view and successful tube passage", "<b>Standard geometry blades</b> (C-MAC Macintosh profile): allows same technique as DL plus video assistance - preferred for routine use and training", "First-line rescue after failed direct laryngoscopy per DAS 2025 and ASA 2022 guidelines", "Can be used for awake intubation with appropriate topicalisation", ]: story.append(bullet(t)) story.append(sp(4)) story.append(h2("4c. Supraglottic Airways (SGAs)")) story.append(make_table(["Device", "Generation", "Features", "Role in Difficult Airway"], [ ["LMA Classic/Unique", "1st", "No gastric port; seal ~18 cmH2O", "Temporary oxygenation rescue"], ["LMA ProSeal / Supreme\ni-gel", "2nd", "Gastric drain port; seal 25-30 cmH2O", "Rescue oxygenation in CICO - preferred 2nd gen"], ["ILMA / Fastrach", "Intubating", "Rigid handle; designed for blind or FOB-guided intubation", "Conduit for definitive intubation in CICO"], ], col_widths=[3.5*cm, 2.5*cm, 5.5*cm, 5.5*cm])) story.append(bullet("SGA oxygenation success in CICO: ~95%; intubation through SGA: ~80-85%")) story.append(sp(4)) story.append(h2("4d. Optical Stylets and Rigid Intubation Scopes")) for t in [ "Bonfils intubating fiberscope, Shikani Optical Stylet", "Particularly useful for limited mouth opening where flexible scope navigation is difficult", "Retromolar approach allows access despite trismus (TMJ limitation)", ]: story.append(bullet(t)) story.append(sp(4)) story.append(h2("4e. Emergency Front-of-Neck Access (eFONA) - Cricothyroidotomy")) story.append(note("<b>Indication:</b> CICO - failure of all non-surgical techniques with deteriorating oxygenation. " "This is a life-saving procedure and must NOT be delayed.")) story.append(h3("Anatomy of the Cricothyroid Membrane (CTM):")) story.append(bullet("Located between thyroid cartilage (above) and cricoid cartilage (below)")) story.append(bullet("Mean width 22 mm, height 9-14 mm in adults; midline is avascular")) story.append(bullet("Palpation: from thyroid notch move inferiorly - first firm ridge below the cartilage is the CTM")) story.append(h3("Scalpel-Bougie-Tube Technique (DAS 2025 recommended standard for eFONA):")) for i, t in enumerate([ "Extend neck; identify and palpate CTM (finger stabilisation of larynx)", "Horizontal stab incision through skin and CTM (scalpel blade #22 or #15)", "Hook finger into incision to stabilise larynx and maintain opening", "Insert gum-elastic bougie with caudal (downward) angulation into trachea", "Railroad a size 6.0 cuffed ETT (or 6.0 cuffed tracheostomy tube) over the bougie", "Inflate cuff, ventilate, confirm with capnography", ], 1): story.append(Paragraph(f"{i}. {t}", bullet_style)) story.append(h3("Needle Cricothyroidotomy + Jet Ventilation:")) for t in [ "14G IV cannula through CTM - high-pressure jet ventilation (50 psi, I:E ratio 1:4)", "Oxygenation only; no CO2 clearance - maximum 30-45 min before barotrauma/air trapping", "<b>Not recommended</b> as primary eFONA technique in DAS 2025 (high failure rate in adults)", "Preferred surgical airway in children <8 years (surgical CTM landmarks less reliable)", ]: story.append(bullet(t)) story.append(sp(6)) # ---- SECTION 5 ---- story.append(h1("5. DAS 2025 Four-Plan Approach [4 marks]")) story.append(sp(4)) story.append(make_table(["Plan", "Intervention", "Attempts", "Key Points"], [ ["Plan A", "Direct laryngoscopy +/- videolaryngoscopy\nAdjuncts: bougie, BURP, ELM\nOptimise: sniffing/ramped position", "Max 3", "Introduce VL after 1 failed DL\nLimit trauma per attempt"], ["Plan B", "2nd-generation SGA\n(i-gel or LMA ProSeal preferred)", "Max 2", "Secure oxygenation as primary goal\nConfirm seal and adequate ventilation"], ["Plan C", "Two-person face mask ventilation\nOral and nasal airways\nMaximise NMB (rocuronium/suxamethonium)", "Temporary", "Bridge to decision: wake vs eFONA\nDo not persist if SpO2 falling"], ["Plan D", "eFONA: scalpel-bougie-tube\nDeclare CICO, call for surgical help", "Immediate", "Life-saving - must not be delayed\nSurgeon should be scrubbed and ready"], ], col_widths=[1.5*cm, 7.5*cm, 2.5*cm, 5.5*cm])) story.append(sp(4)) story.append(note( "<b>Key principles DAS 2025:</b> (1) Declare difficulty early and call for help. " "(2) Use cognitive aids/laminated algorithms in theatre. " "(3) Limit total attempts - repeated failure causes oedema/bleeding, escalating to CICO. " "(4) Maintain oxygenation as the primary goal at every plan. " "(5) eFONA is not a failure - it is the correct management of CICO." )) story.append(sp(6)) # ---- SECTION 6 ---- story.append(h1("6. Extubation of the Difficult Airway [2 marks]")) story.append(sp(4)) story.append(body("Extubation carries significant risk when the patient was difficult to intubate. " "The DAS extubation guidelines mandate pre-extubation risk stratification.")) story.append(h3("Risk Stratification:")) story.append(bullet("<b>Low risk:</b> Straightforward re-intubation if needed - standard extubation acceptable")) story.append(bullet("<b>High risk - remediable factors:</b> Secretions, posture, residual neuromuscular block - correct before extubation")) story.append(bullet("<b>High risk - non-remediable:</b> Fixed anatomy, airway oedema, haematoma, prolonged surgery - requires advanced extubation strategy")) story.append(h3("Techniques for High-Risk Extubation:")) story.append(bullet("<b>Airway exchange catheter (AEC):</b> Leave in situ post-extubation for 30-60 min; enables jet ventilation and guides re-intubation; warn patient of expected coughing")) story.append(bullet("<b>Staged extubation with SGA:</b> Place LMA/i-gel before removing ETT; allows rescue ventilation if re-obstruction occurs")) story.append(bullet("<b>Awake extubation:</b> Only when protective reflexes fully intact, full neuromuscular reversal confirmed (TOF ratio >0.9), and patient cooperative")) story.append(bullet("Extubate in theatre environment with senior anaesthesiologist present, not in recovery bay")) story.append(sp(6)) # ---- SECTION 7 ---- story.append(h1("7. Special Situations and Documentation [2 marks]")) story.append(sp(4)) story.append(h2("Obesity")) for t in [ "Ramped position ('ear to sternal notch') improves laryngoscopic view and extends safe apnoea time", "High-flow nasal oxygen (HFNO) at 30-70 L/min during apnoea significantly extends apnoeic oxygenation", "CPAP preoxygenation achieves higher EtO2 than face mask alone in morbid obesity", "Rapid desaturation - preoxygenation to EtO2 >90% mandatory before induction", ]: story.append(bullet(t)) story.append(h2("Obstetrics")) for t in [ "Failed intubation rate 1 in 300 (10 times the general surgical population)", "Compounding factors: airway oedema (pre-eclampsia), engorged breasts, full stomach, rapid desaturation", "Waking the patient is a valid management option if maternal/fetal condition permits", "Regional anaesthesia (spinal/epidural) preferred whenever clinically feasible", ]: story.append(bullet(t)) story.append(h2("Paediatric Difficult Airway")) for t in [ "Awake intubation poorly tolerated - inhalational induction with sevoflurane (maintaining spontaneous ventilation) preferred", "Cuffed ETTs acceptable in children <8 years with cuff pressure monitoring (<20 cmH2O)", "Needle cricothyroidotomy preferred surgical airway in children <8 years", "Subglottic diameter is the narrowest part of the paediatric airway (cf. adults: glottis)", ]: story.append(bullet(t)) story.append(h2("Unstable Cervical Spine")) for t in [ "Manual in-line stabilisation (MILS) - one assistant holds head preventing cervical movement", "MILS does NOT improve and may worsen laryngoscopic view - video laryngoscopy strongly preferred", "Awake fibreoptic intubation remains gold standard for confirmed/suspected C-spine injury", ]: story.append(bullet(t)) story.append(sp(4)) story.append(h2("Documentation and Follow-Up (ASA 2022 / DAS Guidelines)")) story.append(make_table(["Action", "Details"], [ ["Anaesthetic record", "Document findings, techniques used, devices, number of attempts, complications"], ["Patient communication", "Written difficult airway letter; advise of signs/symptoms of complications; MedicAlert bracelet referral"], ["Team communication", "Inform surgical team, recovery staff, ICU (if applicable), and primary care physician"], ["Complications follow-up", "Mucosal injury, dental damage, aspiration, airway oedema, tracheal trauma, recurrent laryngeal nerve injury"], ], col_widths=[5*cm, 12*cm])) story.append(sp(6)) # ---- EQUIPMENT APPENDIX ---- story.append(h1("Appendix: Difficult Airway Trolley - Minimum Contents")) story.append(sp(4)) story.append(make_table(["Category", "Equipment"], [ ["Basic adjuncts", "Oral airways (Guedel sizes 2-5), nasal airways, McGill forceps, lubricant"], ["Mask ventilation", "Various face mask sizes, two-person technique connectors, non-rebreather mask"], ["Supraglottic airways", "LMA Classic (sizes 3, 4, 5), i-gel (sizes 3, 4, 5), ILMA/Fastrach"], ["Intubation adjuncts", "Gum-elastic bougie (multiple sizes), ETT stylets, airway exchange catheters (AEC)"], ["Video laryngoscopes", "C-MAC (standard + D-blade hyperangulated) or GlideScope, spare batteries/power source"], ["Flexible intubation scope", "Fibreoptic bronchoscope/flexible intubation scope + light source, anti-fog agent"], ["Jet ventilation circuit", "High-pressure jet ventilation circuit (Manujet), multiple 14G IV cannulae"], ["Surgical airway kit", "Scalpel (size 22), gum-elastic bougie, 6.0 cuffed ETT, Melker cricothyrotomy kit"], ["Monitoring/confirmation", "Waveform capnography, pulse oximeter, colorimetric CO2 detector"], ["Drugs", "Lignocaine 4%, cocaine 4%, glycopyrrolate, dexmedetomidine, ketamine, sugammadex"], ], col_widths=[5*cm, 12*cm])) story.append(sp(6)) # ---- MARKING SCHEME ---- story.append(h1("Marking Scheme")) story.append(sp(4)) story.append(make_table(["Section", "Topic", "Marks"], [ ["1", "Definition and incidence", "2"], ["2", "Preoperative assessment (history, LEMON, Mallampati, C-L grading, measurements, conditions)", "6"], ["3", "ASA Algorithm 2022 (awake vs asleep decision, CICO pathway)", "6"], ["4", "Management techniques (AFOI, video laryngoscopy, SGA, eFONA with detail)", "8"], ["5", "DAS 2025 four-plan approach", "4"], ["6", "Extubation of difficult airway", "2"], ["7", "Special situations + documentation and follow-up", "2"], ["", "TOTAL", "30"], ], col_widths=[2*cm, 12.5*cm, 2.5*cm])) story.append(sp(4)) # ---- REFERENCES ---- story.append(hr()) story.append(Paragraph("<b>Key References</b>", h3_style)) for r in [ "ASA Task Force. Practice Guidelines for Management of the Difficult Airway. <i>Anesthesiology</i> 2022;136:31-81.", "Difficult Airway Society. Unanticipated Difficult Intubation in Adults - DAS Guidelines 2025. www.das.uk.com", "All India Difficult Airway Association (AIDAA). 2025 Guidelines for unanticipated difficult airway in adults under general anaesthesia. <i>Indian J Anaesth</i> 2025.", "Morgan GE, Mikhail MS. <i>Clinical Anesthesiology</i>, 7th ed. McGraw-Hill. Chapter 19: Airway Management.", "Miller RD et al. <i>Miller's Anesthesia</i>, 10th ed. Elsevier. Chapter 40: Airway Assessment and Management.", "Barash PG et al. <i>Clinical Anesthesia</i>, 9th ed. Wolters Kluwer. Chapter 28: Flexible Intubation Scope.", ]: story.append(Paragraph(f"&#8226; {r}", ref_style)) story.append(sp(12)) story.append(HRFlowable(width="100%", thickness=0.5, color=colors.HexColor("#cbd5e0"))) story.append(Paragraph( "Generated by Orris AI | Postgraduate Anaesthesia Examination Preparation | June 2026", footer_style )) doc.build(story) print(f"PDF created successfully: {OUTPUT}") PYEOF echo "Script written successfully"

Running Command

cd /home/daytona/workspace/difficult-airway && python generate_pdf.py

Running Command

ls -lh /home/daytona/workspace/difficult-airway/Difficult_Airway_PG_Exam.pdf

Your PDF is ready. Here's the download link:

Difficult Airway PG Exam

PDF Document · PDF

What's included in the PDF:
  • Formatted with a professional title header and section dividers
  • All 8 sections with colour-coded headings (navy blue theme)
  • Structured tables throughout: incidence data, LEMON, Mallampati, Cormack-Lehane, key measurements, conditions, SGA comparison, DAS 4-plan approach, equipment trolley, and marking scheme
  • Highlighted note boxes for critical points (CICO declaration, eFONA indications)
  • Step-by-step numbered technique descriptions for AFOI and scalpel-bougie-tube cricothyroidotomy
  • Marking scheme table at the end (30 marks breakdown)
  • Reference list and footer
This is a shared conversation. Sign in to Orris to start your own chat.