Could you take standard anatomy textbooks and tell me relations of fossa of rosenmuller and it’s relation to ICA and Eustachian tube
| Wall | Structure |
|---|---|
| Anterior wall | Posterior cushion (posterior lip) of the Eustachian tube opening - the torus tubarius |
| Posterolateral wall | Pharyngobasilar fascia (with parapharyngeal fat and ICA just beyond it) |
| Roof | Base of skull - anteromedial aspect of the foramen lacerum / petrous apex |
| Medial | Opens freely into the nasopharyngeal cavity |
"If the tube is missed, the Fossa of Rosenmüller can appear like a tubal orifice and lies immediately posterior to the Eustachian tube." - Shambaugh Surgery of the Ear

| Direction | Structure |
|---|---|
| Anterior | Torus tubarius / Eustachian tube orifice |
| Posterolateral (deep) | ICA (cervical, then petrous segment) - separated only by thin fibroconnective tissue |
| Lateral | Parapharyngeal space (fat, levator palatini, tensor veli palatini) |
| Superior/Roof | Pharyngobasilar fascia, foramen lacerum / petrous apex |
| Medial | Nasopharyngeal cavity |
| Posterior | Prevertebral fascia, retropharyngeal lymph nodes (of Rouvière) |
Give essay answer on subglottis stenosis in adults paediatric and neonates , give etiology clinical features diagnosis and management for each age group
Can you make a pdf of the whole content
ls -la /home/daytona/workspace/
mkdir -p /home/daytona/workspace/subglottic-stenosis
~/subglottic-stenosis/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, KeepTogether
)
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
from reportlab.platypus import ListFlowable, ListItem
OUTPUT = "/home/daytona/workspace/subglottic-stenosis/Subglottic_Stenosis_Essay.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=2.5*cm,
rightMargin=2.5*cm,
topMargin=2.5*cm,
bottomMargin=2.5*cm,
title="Subglottic Stenosis: A Comprehensive Essay",
author="Orris Medical AI",
)
styles = getSampleStyleSheet()
# Custom styles
title_style = ParagraphStyle(
"CustomTitle",
parent=styles["Title"],
fontSize=20,
leading=26,
spaceAfter=10,
textColor=colors.HexColor("#1a3a5c"),
alignment=TA_CENTER,
fontName="Helvetica-Bold",
)
subtitle_style = ParagraphStyle(
"Subtitle",
parent=styles["Normal"],
fontSize=11,
leading=14,
spaceAfter=20,
textColor=colors.HexColor("#555555"),
alignment=TA_CENTER,
fontName="Helvetica",
)
h1_style = ParagraphStyle(
"H1",
parent=styles["Heading1"],
fontSize=15,
leading=20,
spaceBefore=18,
spaceAfter=6,
textColor=colors.HexColor("#1a3a5c"),
fontName="Helvetica-Bold",
borderPad=4,
)
h2_style = ParagraphStyle(
"H2",
parent=styles["Heading2"],
fontSize=13,
leading=17,
spaceBefore=14,
spaceAfter=4,
textColor=colors.HexColor("#1f5c8b"),
fontName="Helvetica-Bold",
)
h3_style = ParagraphStyle(
"H3",
parent=styles["Heading3"],
fontSize=11,
leading=15,
spaceBefore=10,
spaceAfter=3,
textColor=colors.HexColor("#2e7d9c"),
fontName="Helvetica-BoldOblique",
)
body_style = ParagraphStyle(
"Body",
parent=styles["Normal"],
fontSize=10,
leading=15,
spaceAfter=6,
alignment=TA_JUSTIFY,
fontName="Helvetica",
)
bullet_style = ParagraphStyle(
"Bullet",
parent=styles["Normal"],
fontSize=10,
leading=14,
spaceAfter=3,
leftIndent=16,
bulletIndent=6,
fontName="Helvetica",
)
source_style = ParagraphStyle(
"Source",
parent=styles["Normal"],
fontSize=8,
leading=12,
spaceAfter=4,
textColor=colors.HexColor("#666666"),
fontName="Helvetica-Oblique",
leftIndent=0,
)
def h1(text): return Paragraph(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"\u2022 {text}", bullet_style)
def sp(n=1): return Spacer(1, n*0.3*cm)
def hr(): return HRFlowable(width="100%", thickness=0.5, color=colors.HexColor("#cccccc"), spaceAfter=6, spaceBefore=6)
def make_table(headers, rows, col_widths=None):
data = [headers] + rows
if col_widths is None:
available = 16*cm
col_widths = [available/len(headers)] * len(headers)
t = Table(data, colWidths=col_widths)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), colors.HexColor("#1a3a5c")),
("TEXTCOLOR", (0,0), (-1,0), colors.white),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 9),
("FONTSIZE", (0,1), (-1,-1), 9),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("ROWBACKGROUNDS", (0,1), (-1,-1), [colors.HexColor("#f5f8fc"), colors.white]),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#b0c4d8")),
("VALIGN", (0,0), (-1,-1), "TOP"),
("PADDING", (0,0), (-1,-1), 5),
("LEADING", (0,0), (-1,-1), 13),
("WORDWRAP", (0,0), (-1,-1), True),
]))
return t
story = []
# ── TITLE PAGE ──────────────────────────────────────────────────
story.append(Spacer(1, 2*cm))
story.append(Paragraph("Subglottic Stenosis", title_style))
story.append(Paragraph("A Comprehensive Medical Essay", subtitle_style))
story.append(Paragraph("Neonates · Paediatrics · Adults", subtitle_style))
story.append(Spacer(1, 0.5*cm))
story.append(HRFlowable(width="80%", thickness=1.5, color=colors.HexColor("#1a3a5c"),
hAlign="CENTER", spaceAfter=14, spaceBefore=4))
story.append(Paragraph(
"Etiology · Clinical Features · Diagnosis · Management",
ParagraphStyle("sub2", parent=subtitle_style, fontSize=10, textColor=colors.HexColor("#1a3a5c"))
))
story.append(Spacer(1, 0.5*cm))
story.append(Paragraph(
"Sources: Cummings Otolaryngology Head & Neck Surgery · Scott-Brown's ORL (Vols 1 & 2) · K.J. Lee's Essential Otolaryngology",
source_style
))
story.append(PageBreak())
# ── INTRODUCTION ────────────────────────────────────────────────
story.append(h1("Introduction and Anatomy"))
story.append(hr())
story.append(body(
"The subglottis extends from 1 cm below the true vocal cords to the lower border of the cricoid cartilage, or the first tracheal ring. "
"It is the narrowest fixed portion of the paediatric airway and is bounded circumferentially by the cricoid cartilage — the only complete "
"cartilaginous ring in the upper airway. This anatomical feature makes it uniquely vulnerable to pressure injury from endotracheal tubes. "
"The subglottic submucosa is composed of loose areolar tissue that swells rapidly, and the pseudostratified ciliated columnar epithelium "
"lining it is delicate and prone to ulceration under mechanical stress."
))
story.append(body(
"Subglottic stenosis (SGS) refers to any narrowing of this region and represents one of the most challenging problems in airway management. "
"It may be congenital or acquired, and its presentation and management differ substantially across three patient populations: neonates, "
"older children (paediatric), and adults."
))
story.append(sp(2))
# ── MYER-COTTON ─────────────────────────────────────────────────
story.append(h1("Classification: Myer-Cotton Grading System"))
story.append(hr())
story.append(body(
"The Myer-Cotton grading system (proposed 1994) is the universally accepted classification for SGS. It is based on endotracheal tube sizes "
"passed through the stenosis and estimates the degree of circumferential obstruction:"
))
story.append(sp())
mc_table = make_table(
["Grade", "Obstruction", "Clinical Significance"],
[
["Grade I", "0 – 50%", "Usually asymptomatic; watchful waiting"],
["Grade II", "51 – 70%", "Symptomatic on exertion or with URTI"],
["Grade III", "71 – 99%", "Severe; usually requires surgical intervention"],
["Grade IV", "100%", "Complete obstruction; tracheostomy required"],
],
col_widths=[3*cm, 4*cm, 9*cm]
)
story.append(mc_table)
story.append(sp())
story.append(body(
"This grading system helps predict surgical outcomes and guides the choice of intervention. For partial cricotracheal resection (PCTR), "
"grading is not a reliable predictor of success as the entire stenotic segment is excised."
))
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════
# PART I: NEONATAL
# ══════════════════════════════════════════════════════════════════
story.append(Paragraph(
"Part I: Neonatal Subglottic Stenosis",
ParagraphStyle("PartTitle", parent=h1_style, fontSize=16,
textColor=colors.white,
backColor=colors.HexColor("#1a3a5c"),
borderPad=8, spaceBefore=0, spaceAfter=12)
))
story.append(h2("Definition"))
story.append(body(
"In a full-term neonate, a subglottic diameter of <b>4 mm or less</b> is considered stenosed (normal: 4.5–5.5 mm). In premature neonates, "
"stenosis is defined as a diameter of <b>3.5 mm or less</b>. A 1 mm reduction in airway radius reduces the cross-sectional area by 40% "
"(area = πr²), illustrating how even minor narrowing causes profound obstruction in neonates."
))
story.append(h2("Etiology"))
story.append(body(
"Congenital SGS accounts for approximately 5% of all SGS but is the third most common congenital laryngeal anomaly after laryngomalacia "
"and vocal fold immobility. It arises from defective canalization of the cricoid cartilage and/or conus elasticus during embryological "
"development. Two morphological types are recognised:"
))
story.append(sp())
story.append(h3("1. Membranous (Soft Tissue) Type"))
story.append(body(
"Fibrous soft-tissue thickening of the subglottis caused by increased fibrous connective tissue or hyperplastic dilated mucous glands. "
"Typically circumferential, with the narrowest area 2–3 mm below the true vocal cords; may extend upward to involve the cords. No "
"inflammatory reaction is present."
))
story.append(h3("2. Cartilaginous Type"))
story.append(body(
"A thickening or deformity of the cricoid cartilage producing a shelf-like plate that partially fills the concave inner surface, "
"extending posteriorly as a solid rigid sheet. An elliptical cricoid is a variant classically associated with <b>trisomy 21 (Down syndrome)</b>. "
"Anterior vocal cord fusion with subglottic web extension is seen in <b>22q11 deletion syndrome</b>."
))
story.append(sp())
story.append(body(
"Many neonates with congenital SGS are intubated at birth before airway assessment, and are thus classified as acquired by default — "
"making true incidence difficult to determine. Many cases represent combined congenital + acquired stenosis."
))
story.append(sp())
story.append(h3("Acquired SGS in Neonates"))
story.append(body(
"Results overwhelmingly from <b>prolonged endotracheal intubation</b> in the NICU. Incidence was as high as 8% in the 1970s; "
"now 1–2% with improved NICU management. Risk factors include:"
))
for item in [
"Prematurity (smaller, more vulnerable cricoid)",
"Prolonged intubation duration",
"Repeated or traumatic intubations",
"Oversized endotracheal tube causing pressure necrosis",
"Tube movement with head motion and swallowing",
"Infection and perichondritis",
"Gastroesophageal reflux (GERD) — contributes to ongoing mucosal inflammation",
]:
story.append(bullet(item))
story.append(h2("Pathophysiology of Acquired SGS"))
story.append(body(
"The ETT causes pressure necrosis at the tube–tissue interface, leading to mucosal oedema and ulceration. Normal ciliary clearance is "
"interrupted, causing mucociliary stasis and secondary bacterial infection. This extends to perichondritis, chondritis, and cartilaginous "
"necrosis. Healing occurs by secondary intention with granulation tissue and fibrous deposition in the submucosa. The loose mobile subglottic "
"mucosa, poor cartilage vascularity, and constant laryngeal motion during swallowing all impair primary wound healing and promote hypertrophic "
"scar formation. Studies of intubated larynges in neonates of 22–40 weeks' gestation showed acute injury was almost invariable, with "
"up to 100% of subglottic epithelium lost within hours; however, healing usually completed by 30 days."
))
story.append(h2("Clinical Features"))
for item in [
"Respiratory distress at birth or within days to weeks (severe congenital cases)",
"Biphasic stridor (inspiratory and expiratory) — hallmark of fixed subglottic obstruction",
"Sternal and subcostal retractions",
"Failure to extubate despite resolution of the primary illness (acquired, NICU)",
"Recurrent episodes of respiratory distress with URTIs ('recurrent croup')",
"Abnormal or weak cry",
"Feeding difficulties and failure to thrive in moderate-severe cases",
]:
story.append(bullet(item))
story.append(h2("Diagnosis"))
story.append(h3("Flexible Fiberoptic Laryngoscopy"))
story.append(body(
"Performed in clinic; assesses vocal fold mobility but cannot fully visualise the subglottis."
))
story.append(h3("Microlaryngoscopy and Bronchoscopy (MLB) — Gold Standard"))
story.append(body("Direct visualisation under general anaesthesia. Allows:"))
for item in [
"Mapping of the stenosis: location, extent, upper and lower limits",
"Sizing by graded endotracheal tube passage (Myer-Cotton grading)",
"Assessment of vocal cord mobility",
"Tissue biopsy for histology",
"Counting normal tracheal rings above a tracheostoma",
]:
story.append(bullet(item))
story.append(h3("Imaging"))
for item in [
"High-kV AP soft-tissue neck radiograph: demonstrates the 'steeple sign'",
"CT larynx and trachea with 3D reconstruction: delineates extent, length, and cartilage anatomy",
"MRI: superior soft-tissue definition (requires GA in neonates)",
]:
story.append(bullet(item))
story.append(h2("Management"))
story.append(h3("Conservative"))
story.append(body(
"Grade I stenosis — especially congenital — may require no intervention as the airway enlarges with growth. Vigorous management of "
"URTIs (racemic epinephrine nebulisers, inhaled/systemic corticosteroids, antibiotics) is employed during infective exacerbations. "
"GERD treatment with proton pump inhibitors reduces ongoing mucosal inflammation."
))
story.append(h3("Anterior Cricoid Split (ACS)"))
story.append(body(
"Described in 1980 as an alternative to tracheostomy in neonates who fail extubation. The cricoid and first tracheal rings are divided "
"anteriorly in the midline, allowing cricoid expansion. The neonate returns to the ICU intubated (stent) for 5–7 days. "
"<b>Only suitable if the neonate does NOT require positive pressure ventilation.</b> Auricular, thyroid alar, or hyoid cartilage "
"grafts improve the success rate (range 35–88%). ACS is now rarely needed given the decline in NICU-acquired SGS."
))
story.append(h3("Tracheostomy"))
story.append(body(
"Required in severe Grade III or IV SGS when the airway is critically compromised and immediate definitive reconstruction is not feasible."
))
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════
# PART II: PAEDIATRIC
# ══════════════════════════════════════════════════════════════════
story.append(Paragraph(
"Part II: Paediatric Subglottic Stenosis",
ParagraphStyle("PartTitle2", parent=h1_style, fontSize=16,
textColor=colors.white,
backColor=colors.HexColor("#1f5c8b"),
borderPad=8, spaceBefore=0, spaceAfter=12)
))
story.append(h2("Etiology"))
story.append(body(
"Congenital types are as described in the neonatal section, presenting later with milder degrees of stenosis. "
"<b>Acquired SGS accounts for approximately 90% of all paediatric SGS.</b>"
))
story.append(sp())
for item in [
"<b>Post-intubation injury</b> — by far the most common cause; mechanism as described above",
"<b>External laryngeal trauma</b> — less common in children due to protective mandible and high larynx; falls, sports, clothesline injury, non-accidental injury",
"<b>Infective/inflammatory</b> — subglottic haemangioma (85% present by 6 months), recurrent respiratory papillomatosis, bacterial tracheitis, diphtheria",
"<b>Systemic inflammatory diseases</b> — GPA (Wegener's), sarcoidosis, relapsing polychondritis",
"<b>Iatrogenic</b> — previous endoscopic procedures, laser over-treatment, tracheostomy at wrong level",
"<b>GERD</b> — perpetuating factor associated with worse post-surgical outcomes",
"<b>Down syndrome (trisomy 21)</b> — high incidence due to elliptical cricoid morphology",
]:
story.append(bullet(item))
story.append(h2("Clinical Features"))
for item in [
"Biphasic stridor — hallmark of fixed subglottic obstruction",
"Mild cases: recurrent croup precipitated by URTIs; normal between episodes",
"Moderate: exertional dyspnoea, reduced exercise tolerance",
"Severe: resting dyspnoea, cyanosis, failure to thrive, feeding difficulties",
"Abnormal voice or cry (hoarseness, strain, aphonia)",
"Suprasternal and subcostal retractions",
"Recurrent lower respiratory tract infections or aspiration pneumonia",
"Acquired SGS symptoms appear 2–4 weeks after original intubation injury",
"Congenital SGS becomes symptomatic within 3 months due to increasing metabolic demands",
]:
story.append(bullet(item))
story.append(h2("Diagnosis"))
story.append(body(
"History: birth history, NICU stay, prior intubations, recurrent croup, feeding history, systemic illness."
))
story.append(body(
"<b>Flexible laryngoscopy</b> in clinic: assesses vocal fold mobility; only partially visualises the subglottis."
))
story.append(body(
"<b>Microlaryngoscopy and bronchoscopy (MLB)</b> under GA with TIVA and spontaneous ventilation: gold standard. "
"Measures location, length, nature (soft vs fibrotic vs cartilaginous), and Myer-Cotton grade."
))
story.append(body("<b>Imaging:</b>"))
for item in [
"AP high-kV soft-tissue neck X-ray: steeple sign",
"CT larynx and trachea: surgical planning",
"MRI: soft-tissue detail, avoids radiation, but requires GA in young children",
"Modified barium swallow: assess swallowing and aspiration pre-operatively",
]:
story.append(bullet(item))
story.append(h2("Management"))
story.append(h3("Grade I"))
story.append(body(
"Watchful waiting; conservative management during URTI episodes; annual surveillance MLB."
))
story.append(h3("Endoscopic Management (Grade II and Selected Grade III)"))
story.append(body(
"<b>Balloon dilation</b>: High-pressure non-compliant balloons exert purely radial force, minimising mucosal trauma. "
"Has reduced the need for open surgery by up to 80% in some series. Repeated dilations at 1–3 week intervals (up to 4–5 sessions). "
"Best results with thin, soft, immature scar. <b>Unsuitable for cartilaginous stenosis or long stenoses.</b>"
))
story.append(body(
"<b>CO2 laser + radial incisions</b>: Three or four radial cuts at 12, 3, and 9 o'clock through scar tissue (cricoid cartilage left intact), "
"followed by balloon dilation. Aggressive laser ablation is specifically contraindicated as it worsens subsequent stenosis."
))
story.append(body(
"<b>Adjuvants</b>: Intralesional corticosteroid injection (up to 3 mL methylprednisolone acetate); topical mitomycin-C (evidence conflicting); "
"proton pump inhibitors for GERD."
))
story.append(h3("Open Laryngotracheal Reconstruction (LTR)"))
story.append(body(
"The mainstay of open repair. Uses costal cartilage grafts (right 5th or 6th rib) to expand the laryngotracheal framework:"
))
for item in [
"<b>Anterior cricoid split + anterior graft</b>: Grade II; widens anterior subglottis",
"<b>Posterior cricoid split + posterior graft</b>: Grade II–III with posterior narrowing",
"<b>Combined anterior + posterior grafts</b>: Severe Grade III (pinhole airway) and Grade IV",
"<b>Single-stage LTR (SSLTR)</b>: No tracheostomy; ETT used as stent for 5–7 days in ICU. For less severe cases with good pulmonary function.",
"<b>Double-stage LTR (DSLTR)</b>: Tracheostomy in place before surgery; decannulation weeks to months later. For severe cases, unstable patients, multilevel stenosis.",
]:
story.append(bullet(item))
story.append(body(
"Success rates from experienced centres: >90% decannulation for Grade I–II; 80–90% for Grade III–IV."
))
story.append(h3("Partial Cricotracheal Resection (PCTR)"))
story.append(body(
"Complete resection of the stenotic segment with end-to-end tracheal stump–to–thyroid cartilage anastomosis. Introduced to paediatrics "
"by Monnier in the early 1990s. Achieves decannulation rates of <b>98%</b> (primary) and <b>94%</b> (salvage after failed LTR) in the "
"most experienced centres. LTR remains the final option after failed PCTR."
))
story.append(h3("Congenital Cartilaginous Stenosis"))
story.append(body(
"<b>Strict contraindication to dilation or laser.</b> LTR with submucosal resection ('coring out') of the thickened anterior cricoid "
"ring is required, combined with stenting."
))
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════
# PART III: ADULT
# ══════════════════════════════════════════════════════════════════
story.append(Paragraph(
"Part III: Adult Subglottic Stenosis",
ParagraphStyle("PartTitle3", parent=h1_style, fontSize=16,
textColor=colors.white,
backColor=colors.HexColor("#2e7d9c"),
borderPad=8, spaceBefore=0, spaceAfter=12)
))
story.append(h2("Etiology"))
story.append(body(
"Adult SGS has a different epidemiological and etiological profile. The <b>posterior glottis</b> is more commonly injured than the "
"subglottis following intubation in adults (unlike children where the subglottis is the primary site)."
))
story.append(sp())
story.append(h3("1. Post-Intubation Stenosis (Most Common Acquired Cause)"))
story.append(body(
"Prolonged or difficult endotracheal intubation in ICU settings. Mechanism identical to neonatal/paediatric disease. Risk factors: "
"ICU ventilation, traumatic intubation, oversized tube, hypotensive episodes, GERD, infection."
))
story.append(h3("2. Post-Tracheostomy Stenosis"))
story.append(body(
"Over-resection or fracturing of tracheal rings during tracheostomy produces a 'lambda-shaped' 1–2 ring stenosis at the stoma site "
"following decannulation."
))
story.append(h3("3. Idiopathic Subglottic Stenosis (ISS)"))
story.append(body(
"A distinct entity: rare, slowly progressive fibro-inflammatory process of unknown aetiology affecting the subglottis and proximal trachea "
"(first and second rings). Diagnostic criteria (all must be met):"
))
for item in [
"Predominantly affects <b>post-pubertal women</b> (Caucasian predominance; rare in males)",
"No history of intubation or tracheostomy in the last 2 years",
"No neck trauma, surgery, or radiotherapy",
"ANCA and ACE levels repeatedly negative (exclude GPA, sarcoidosis)",
"Tissue histology negative for other inflammatory conditions or low-grade neoplasm",
"ISS is a diagnosis of exclusion — primarily a mucosal disease over healthy perichondrium and cartilage",
]:
story.append(bullet(item))
story.append(h3("4. Systemic/Inflammatory Causes"))
for item in [
"<b>Granulomatosis with polyangiitis (GPA/Wegener's)</b>: Subglottic granulomatous inflammation; check c-ANCA/PR3",
"<b>Sarcoidosis</b>: Non-caseating granulomas; check serum ACE, CXR, tissue biopsy",
"<b>Relapsing polychondritis</b>: Episodic cartilage destruction; ears, nose, trachea; anti-type II collagen antibodies",
"<b>Amyloidosis, SLE</b>: rare causes",
]:
story.append(bullet(item))
story.append(h3("5. External Trauma"))
story.append(body(
"More common in adults than children. Motor vehicle accidents, clothesline injuries, sports injuries, penetrating neck trauma. "
"Laryngeal fracture with thyroid or cricoid disruption leads to scar formation."
))
story.append(h3("6. Other Causes"))
for item in [
"<b>Iatrogenic</b>: Repeated endoscopic laser procedures; partial laryngectomy; radiotherapy (late fibrosis)",
"<b>Infective</b>: Tuberculosis, histoplasmosis, blastomycosis, syphilis (rare/historical)",
"<b>Neoplastic</b>: Subglottic carcinoma, chondrosarcoma, carcinoid, metastasis — must be excluded",
]:
story.append(bullet(item))
story.append(h2("Clinical Features"))
for item in [
"Insidious, progressive dyspnoea on exertion — often misdiagnosed as asthma for years (especially ISS)",
"Biphasic stridor (fixed obstruction); may not develop until airway reduced to ~50% of normal lumen",
"Chronic dry cough, voice change, hoarseness",
"Recurrent respiratory infections",
"In severe/acute cases: stridor at rest, severe dyspnoea, orthopnoea, accessory muscle use",
"ISS: no fever, no systemic symptoms; slow progression; women of childbearing age",
"GPA: saddle nose, sinusitis, otitis media, haematuria, pulmonary infiltrates",
"Post-intubation: history of ICU admission, tracheostomy, or prolonged mechanical ventilation",
]:
story.append(bullet(item))
story.append(h2("Diagnosis"))
story.append(h3("Clinical Assessment"))
story.append(body(
"Thorough history: prior intubation, trauma, systemic illness, medications, precise characterisation of symptoms."
))
story.append(h3("Flexible Fiberoptic Laryngoscopy"))
story.append(body(
"In clinic (awake): assesses vocal fold mobility, supraglottic anatomy; partially visualises the subglottis; insufficient alone."
))
story.append(h3("Suspension Microlaryngoscopy — Gold Standard"))
story.append(body(
"Under GA with high-frequency jet ventilation (HFJV). Maps the stenosis (distance from vocal cords, length using endoscope markings + ruler), "
"characterises the lesion (fibro-inflammatory vs fibrotic vs cartilaginous), enables Myer-Cotton grading, and takes deep tissue biopsy "
"(mandatory — to exclude malignancy, GPA, sarcoidosis)."
))
story.append(h3("Imaging"))
for item in [
"CT larynx and trachea with 3D reconstruction (preferred): extent, cartilage involvement, length, relation to vocal cords",
"MRI: superior soft-tissue assessment",
"CXR: pulmonary infiltrates (GPA, sarcoidosis)",
]:
story.append(bullet(item))
story.append(h3("Laboratory Workup"))
for item in [
"ANCA (c-ANCA/PR3 for GPA; p-ANCA/MPO for MPA)",
"Serum ACE, calcium (sarcoidosis)",
"ANA, dsDNA (lupus)",
"Anti-type II collagen antibodies (relapsing polychondritis)",
"FBC, ESR, CRP",
"Urine microscopy and protein (GPA renal involvement)",
]:
story.append(bullet(item))
story.append(h3("Pulmonary Function Tests"))
story.append(body(
"Show a fixed upper-airway obstruction pattern: blunted (plateau) inspiratory AND expiratory limbs on the flow-volume loop — "
"distinguishing it from variable obstruction in asthma or COPD."
))
story.append(h2("Management"))
story.append(h3("Medical Management of Underlying Disease"))
for item in [
"GPA: systemic immunosuppression (rituximab, cyclophosphamide, corticosteroids)",
"Sarcoidosis: systemic corticosteroids; intralesional steroid injection",
"GERD: proton pump inhibitors mandatory as adjunct to all surgical management",
"ISS: no proven systemic treatment; repeated endoscopic surgery is the standard of care",
]:
story.append(bullet(item))
story.append(h3("Endoscopic Management (Primary Treatment for Most Adults)"))
story.append(body(
"Appropriate for fibro-inflammatory lesions, short stenoses (<1 cm), and soft/immature scar. The standard protocol "
"(Scott-Brown's suspension microlaryngoscopy approach):"
))
for i, item in enumerate([
"Examination under anaesthesia (EUA) with suspension laryngoscopy and supraglottic HFJV",
"Intralesional steroid injection: up to 3 mL methylprednisolone acetate (40 mg/mL)",
"Radial CO2 laser incisions: 3–4 radial cuts at 8–10 W via operating microscope",
"Balloon dilation: pulmonary balloon dilator system, dilate to 15–16 mm",
"Deep tissue biopsy at each procedure (histological surveillance)",
"Topical mitomycin-C application via pledgets (evidence conflicting but widely used)",
], 1):
story.append(bullet(f"<b>Step {i}:</b> {item}"))
story.append(body(
"<b>Aggressive laser ablation is specifically contraindicated</b> — it causes worse recurrent stenosis. "
"This endoscopic approach is successful in approximately <b>two-thirds</b> of post-intubation LTS cases. "
"Procedures are repeated every 3–4 weeks until the airway stabilises. After the third procedure, success or failure of endoscopic "
"treatment is usually evident."
))
story.append(body("<b>Failure of endoscopic treatment occurs with:</b>"))
for item in [
"Cartilage framework damage",
"Stenosis length >3 cm",
"Obesity",
"Persistent aspiration/swallowing impairment",
"Mature, dense fibrosis",
]:
story.append(bullet(item))
story.append(h3("Open Surgical Management"))
story.append(body(
"<b>Note on rib cartilage grafts in adults:</b> These carry a high risk of ischaemic necrosis in adults; quality and quantity of "
"rib cartilage diminish with age. Tracheal/cricotracheal resection is therefore preferred over LTR-style grafting in adults."
))
for item in [
"<b>Tracheal resection and end-to-end anastomosis</b>: For isolated tracheal/cricotracheal stenosis; maximum resectable length 4–6 cm",
"<b>Cricotracheal resection (CTR)</b>: Definitive cure for most post-intubation SGS; resects cricoid with trachea–thyroid anastomosis",
"<b>ISS-specific approach (Scott-Brown's)</b>: Laryngofissure + posterior cricoid split; stenosed mucosa removed; costal cartilage spacer placed in split; preferred over CTR due to voice concerns, glottic extension, and disease being mucosal over healthy cartilage",
"<b>Hyoid-sternohyoid muscle interposition graft</b>: Vascularised segment; useful for combined subglottic + anterior glottic + upper tracheal stenosis; decannulation ~60% in adults",
"<b>Thyroid cartilage-sternothyroid pedicle composite graft</b>: Larger cartilage with internal perichondrial lining; requires stenting",
"<b>Tracheostomy</b>: Palliation when all else fails, or bridge in acute compromise",
]:
story.append(bullet(item))
story.append(PageBreak())
# ── COMPARATIVE TABLE ────────────────────────────────────────────
story.append(h1("Comparative Summary"))
story.append(hr())
story.append(sp())
comp_table = make_table(
["Feature", "Neonate", "Paediatric", "Adult"],
[
["Primary cause", "Congenital / NICU intubation", "Post-intubation (90%)", "Post-intubation, ISS, trauma, systemic disease"],
["Defining diameter", "<4 mm (term); <3.5 mm (preterm)", "Myer-Cotton grading", "Myer-Cotton grading"],
["Typical presentation","Failure to extubate; biphasic stridor at birth","Recurrent croup; biphasic stridor","Progressive exertional dyspnoea; stridor; misdiagnosed asthma"],
["Key investigation", "MLB under GA", "MLB under GA + CT", "MLB + CT + laboratory workup; PFTs"],
["First-line treatment","Conservative (Gr. I); ACS or tracheostomy (severe)","Balloon dilation; CO2 laser radial cuts","Endoscopic: CO2 laser + balloon dilation + intralesional steroid"],
["Open repair", "LTR with costal cartilage graft (± PCTR)", "LTR or PCTR", "Cricotracheal/tracheal resection"],
["Special consideration","ACS only if no ventilator dependence","Down syndrome high risk; congenital = no dilation","ISS: repeated endoscopic preferred; CTR controversial"],
],
col_widths=[3.8*cm, 3.8*cm, 4.2*cm, 4.2*cm]
)
story.append(comp_table)
story.append(sp(2))
# ── PREVENTION ──────────────────────────────────────────────────
story.append(h1("Preventive Measures"))
story.append(hr())
for item in [
"Use the smallest ETT allowing adequate ventilation (leak at 15–25 cm H₂O preferred in paediatrics)",
"Avoid repeated traumatic intubations",
"Secure and immobilise the ETT to minimise movement",
"Consider early tracheostomy for prolonged ventilation in high-risk neonates",
"Treat GERD aggressively in intubated patients",
"Use uncuffed tubes in children under 8 years (modern microcuff designs are currently under evaluation)",
"NICU protocol optimisation: appropriate tube sizing, minimal tube manipulation, infection control",
]:
story.append(bullet(item))
story.append(sp(2))
# ── SOURCES ─────────────────────────────────────────────────────
story.append(hr())
story.append(Paragraph("Sources", h2_style))
for src in [
"Cummings Otolaryngology Head & Neck Surgery — Chapters 206, 209",
"Scott-Brown's Otorhinolaryngology Head & Neck Surgery — Chapter 76 (post-intubation LTS, ISS)",
"Scott-Brown's Otorhinolaryngology Head & Neck Surgery Vol. 2 — Chapter 30 (congenital laryngeal anomalies), Chapter 31 (acquired laryngeal stenosis)",
"K.J. Lee's Essential Otolaryngology — Paediatric airway chapter",
"Scott-Brown's Otorhinolaryngology Head & Neck Surgery Vol. 1 — Anterior skull base / LTS",
]:
story.append(Paragraph(f"\u2022 {src}", source_style))
story.append(sp(2))
story.append(Paragraph(
"Generated by Orris Medical AI · For educational purposes only · Always refer to current clinical guidelines for patient management",
ParagraphStyle("disclaimer", parent=source_style, fontSize=8, alignment=TA_CENTER,
textColor=colors.HexColor("#999999"))
))
doc.build(story)
print("PDF created successfully:", OUTPUT)
python3 /home/daytona/workspace/subglottic-stenosis/generate_pdf.py
ls -lh /home/daytona/workspace/subglottic-stenosis/Subglottic_Stenosis_Essay.pdf
Subglottic Stenosis Essay
PDF Document · PDF