This my ppt for seminar on surgical anatomy of head and neck, i want you to create a blueprint outline consisting of very basics to advanced level understanding of all the structures associated with this topic, every minute details, every approach applied aspects in omfs, make sure I dont miss any information, new techniques, extract information from relevant articles and standard textbooks, tell me how to present it so that i myself first understand it clearly and later i can explain it to my professors and colleagues, provide relevant diagrams as wel,
surgical anatomy head neck OMFS oral maxillofacial surgery applied anatomy 2024 2025
"head and neck" anatomy "oral and maxillofacial surgery" surgical approaches
https://pocketdentistry.com/10-applied-surgical-anatomy-of-tβ¦
facial nerve anatomy surgical approaches parotid
| Layer | Also Called | What It Encloses | OMFS Relevance |
|---|---|---|---|
| Superficial (investing) | Outer | SCM, trapezius, masseter, parotid | Roof of anterior & posterior triangles |
| Middle (pretracheal/visceral) | Muscular + visceral parts | Infrahyoid muscles, thyroid, trachea, esophagus, pharynx | Connects to mediastinum - danger for deep space infections |
| Deep (prevertebral) | Alar layer + prevertebral proper | Prevertebral muscles, vertebral column | Danger space between alar + prevertebral = direct route to posterior mediastinum |
| Muscle | Origin | Insertion | Action | OMFS Note |
|---|---|---|---|---|
| Masseter | Zygomatic arch | Lateral ramus/angle | Elevation | Masseter hypertrophy; access in ramus surgery |
| Temporalis | Temporal fossa (inferior temporal line) | Coronoid process and anterior ramus | Elevation + retraction | Temporalis flap; coronoidectomy for trismus |
| Medial pterygoid | Medial surface of lateral pterygoid plate, pyramidal process of palatine | Medial surface of ramus/angle (mirror of masseter) | Elevation + side-to-side | "Pterygoid sling" with masseter |
| Lateral pterygoid - superior head | Greater wing of sphenoid, infratemporal crest | Articular disc + capsule | Pulls disc forward | Disc displacement |
| Lateral pterygoid - inferior head | Lateral surface of lateral pterygoid plate | Condylar neck (pterygoid fovea) | Protrusion + opening | Unilateral = contralateral excursion |
| Muscle | Origin | Insertion | Nerve | Action |
|---|---|---|---|---|
| Digastric - anterior belly | Digastric fossa of mandible | Intermediate tendon on hyoid | V3 (mylohyoid nerve) | Opens mouth, elevates hyoid |
| Digastric - posterior belly | Mastoid notch | Intermediate tendon | CN VII | Elevates hyoid |
| Mylohyoid | Mylohyoid line of mandible | Body of hyoid + median raphe | V3 (mylohyoid nerve) | Floor of mouth; elevates floor, depresses mandible |
| Geniohyoid | Inferior genial tubercles | Body of hyoid | C1 via CN XII | Elevates/protracts hyoid |
| Stylohyoid | Styloid process | Body of hyoid | CN VII | Elevates/retracts hyoid |


| Sinus | Drains Into | OMFS Significance |
|---|---|---|
| Maxillary | Middle meatus (via semilunar hiatus, inferomedial to ostium) | Oro-antral communication (OAC) from upper molar extraction; Caldwell-Luc procedure |
| Frontal | Middle meatus (via frontonasal duct/recess) | Frontal sinus fracture management |
| Anterior ethmoid | Middle meatus | Orbital cellulitis from ethmoid sinusitis |
| Posterior ethmoid | Superior meatus | Optic nerve proximity |
| Sphenoid | Sphenoethmoidal recess | ICA + optic nerve in lateral wall |
| Approach | Indication | Key Anatomical Risk |
|---|---|---|
| Risdon (submandibular) | Mandibular angle/body fracture, subcondylar | Marginal mandibular nerve |
| Intraoral vestibular | Mandibular symphysis/parasymphysis, body | Mentalis muscle disruption (button hole) |
| Retromandibular (transparotid) | Subcondylar/condylar fracture | Facial nerve, parotid tissue |
| Preauricular | TMJ, condylar head, zygomatic arch | Temporal branch CN VII, STA, auriculotemporal nerve |
| Coronal (bicoronal) | Frontal, orbito-zygomatic, craniofacial | Supraorbital nerve, temporal branch CN VII (at zygomatic arch level) |
| Subciliary/transconjunctival | Orbital floor, ZMC, Le Fort | ION, inferior rectus, nasolacrimal duct |
| Intraoral maxillary vestibular | Le Fort I, midface, zygomatic body | ASA, infraorbital nerve, nasolacrimal duct |
| Weber-Ferguson | Maxillectomy, infrastructure/total | Infraorbital nerve, anterior skin blood supply |
| Visor flap | Anterior mandible bilateral | Mental nerves bilaterally |
| Mandibulotomy (median, paramedian, lateral) | Access to oropharynx, tongue base, parapharyngeal | IAN, mental nerve, lingual nerve |
| Lip split + mandibulotomy | Oropharyngeal tumors | Labial blood supply, mental nerve |
| Supraomohyoid neck dissection | Levels I-III, oral cavity SCC | CN XI, marginal mandibular, hypoglossal, IJV |
| Modified radical neck dissection | Levels I-V, preserving CN XI, IJV, SCM | CN XI (Level V), phrenic nerve, thoracic duct (left) |
| Radical neck dissection | Levels I-V with sacrifice of CN XI, IJV, SCM | Shoulder dysfunction (CN XI sacrifice) |
| Flap | Pedicle | Territory | OMFS Use |
|---|---|---|---|
| Nasolabial flap | Angular/lateral nasal artery (facial artery territory) | Nasolabial cheek | Anterior floor of mouth, buccal |
| Buccal fat pad | Buccal artery (from maxillary artery) | Buccal fat | OAC closure, palatal fistula |
| Palatal island flap | Greater palatine artery | Hard palate mucosa | OAC, alveolar defects |
| Submental island flap | Submental artery (branch of facial artery) | Submental skin + platysma | Oral cavity reconstruction |
| Pectoralis major (PMMC) | Pectoral branch of thoracoacromial artery | Pectoralis major + skin | Mandibular reconstruction (before free flaps), salvage |
| Temporalis muscle/fascia | Deep temporal arteries (from maxillary artery) | Temporalis muscle | TMJ reconstruction, orbital/skull base |
| Sternocleidomastoid | Occipital artery (superior), superior thyroid (middle), suprascapular (inferior) | SCM muscle Β± skin | Parotid bed, oral cavity (limited use due to variable blood supply) |
| Flap | Pedicle | Best Use |
|---|---|---|
| Fibula free flap (FFF) | Peroneal artery | Mandible reconstruction (gold standard) |
| Radial forearm free flap (RFFF) | Radial artery | Tongue, floor of mouth, soft tissue |
| Anterolateral thigh (ALT) | Lateral circumflex femoral (descending branch) | Large soft tissue defects, pharynx |
| Deep circumflex iliac artery (DCIA/iliac crest) | Deep circumflex iliac artery | Maxillary reconstruction, short mandibular defects |
| Scapular/parascapular | Circumflex scapular artery | Lateral mandible, combined bone+skin |
?
Generate a study guide PDF with diagrams
Medical anatomy diagram showing the external carotid artery and all 8 branches labeled: superior thyroid, ascending pharyngeal, lingual, facial, occipital, posterior auricular, maxillary (internal maxillary), and superficial temporal arteries. Clean anatomical illustration with clear labels and arrows, white background, educational style suitable for medical students.
Detailed medical anatomy diagram of the facial nerve (CN VII) branching pattern in the parotid gland. Show the main trunk exiting the stylomastoid foramen, the pes anserinus division, and all 5 terminal branches: temporal, zygomatic, buccal, marginal mandibular, and cervical. Include surgical landmarks: tragal pointer, tympanomastoid suture, posterior belly of digastric. Label the parotid gland, superficial and deep lobes. Clean white background, educational medical illustration style.
Medical anatomy diagram showing a cross-sectional view of the neck at the level of thyroid cartilage, illustrating the three layers of deep cervical fascia: investing layer, pretracheal (visceral) layer, and prevertebral layer. Show the deep neck spaces including parapharyngeal space, retropharyngeal space, danger space 4, carotid sheath with ICA, IJV, vagus nerve. Label all structures clearly. Clean educational style, white background.
Medical anatomy diagram showing cervical lymph node levels I through VI for neck dissection in head and neck surgery. Show lateral view of neck with levels clearly delineated by boundaries: Level I (submental and submandibular), Level II (upper jugular), Level III (mid jugular), Level IV (lower jugular), Level V (posterior triangle), Level VI (central compartment). Use different colors for each level, label boundaries (hyoid bone, cricoid cartilage, SCM). Educational OMFS study guide illustration.
mkdir -p /home/daytona/workspace/omfs-head-neck && ls /home/daytona/workspace/omβ¦
cd /home/daytona/workspace/omfs-head-neck && python3 -c " import urllib.request,β¦
~/omfs-head-neck/build_pdf.py
#!/usr/bin/env python3
"""
Surgical Anatomy of the Head & Neck - OMFS Study Guide PDF Builder
Uses ReportLab for rich PDF generation with images, tables, and styled text.
"""
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.lib import colors
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Image, Table, TableStyle,
PageBreak, HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import ListFlowable, ListItem
from PIL import Image as PILImage
import os
# βββββββββββββββββββββββββββββββββββββββββββββ
# Document setup
# βββββββββββββββββββββββββββββββββββββββββββββ
OUTPUT = "/home/daytona/workspace/omfs-head-neck/Surgical_Anatomy_HeadNeck_OMFS_StudyGuide.pdf"
IMG_DIR = "/home/daytona/workspace/omfs-head-neck"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=2*cm, leftMargin=2*cm,
topMargin=2.2*cm, bottomMargin=2.2*cm,
title="Surgical Anatomy of the Head & Neck β OMFS Study Guide",
author="OMFS Seminar Series",
)
W, H = A4
CONTENT_W = W - 4*cm
# βββββββββββββββββββββββββββββββββββββββββββββ
# Color palette
# βββββββββββββββββββββββββββββββββββββββββββββ
DARK_BLUE = colors.HexColor("#1a3a5c")
MED_BLUE = colors.HexColor("#2e6da4")
LIGHT_BLUE = colors.HexColor("#d6e8f7")
ACCENT_RED = colors.HexColor("#c0392b")
ACCENT_GOLD = colors.HexColor("#d4a017")
TABLE_HDR = colors.HexColor("#1a3a5c")
TABLE_ALT = colors.HexColor("#eaf2fb")
TABLE_WHITE = colors.white
LIGHT_GREY = colors.HexColor("#f5f5f5")
DARK_GREY = colors.HexColor("#333333")
BOX_BG = colors.HexColor("#fef9e7")
# βββββββββββββββββββββββββββββββββββββββββββββ
# Styles
# βββββββββββββββββββββββββββββββββββββββββββββ
styles = getSampleStyleSheet()
# Cover / Title
COVER_TITLE = ParagraphStyle("cover_title",
fontName="Helvetica-Bold", fontSize=28, textColor=colors.white,
alignment=TA_CENTER, spaceAfter=8, leading=34)
COVER_SUBTITLE = ParagraphStyle("cover_sub",
fontName="Helvetica", fontSize=14, textColor=colors.HexColor("#d6e8f7"),
alignment=TA_CENTER, spaceAfter=6, leading=20)
COVER_INFO = ParagraphStyle("cover_info",
fontName="Helvetica-Oblique", fontSize=10, textColor=colors.HexColor("#aacce8"),
alignment=TA_CENTER, spaceAfter=4, leading=14)
# Module / Section headings
MOD_HEADING = ParagraphStyle("mod_heading",
fontName="Helvetica-Bold", fontSize=16, textColor=colors.white,
spaceBefore=12, spaceAfter=6, leading=20)
SEC_HEADING = ParagraphStyle("sec_heading",
fontName="Helvetica-Bold", fontSize=13, textColor=DARK_BLUE,
spaceBefore=10, spaceAfter=4, leading=16, borderPad=4)
SUB_HEADING = ParagraphStyle("sub_heading",
fontName="Helvetica-Bold", fontSize=11, textColor=MED_BLUE,
spaceBefore=6, spaceAfter=3, leading=14)
# Body text
BODY = ParagraphStyle("body",
fontName="Helvetica", fontSize=9.5, textColor=DARK_GREY,
spaceBefore=2, spaceAfter=3, leading=14, alignment=TA_JUSTIFY)
BODY_SMALL = ParagraphStyle("body_small",
fontName="Helvetica", fontSize=8.5, textColor=DARK_GREY,
spaceBefore=1, spaceAfter=2, leading=12)
# Bullet
BULLET = ParagraphStyle("bullet",
fontName="Helvetica", fontSize=9.5, textColor=DARK_GREY,
spaceBefore=1, spaceAfter=2, leading=13,
leftIndent=14, firstLineIndent=-10)
BULLET_RED = ParagraphStyle("bullet_red",
fontName="Helvetica-Bold", fontSize=9.5, textColor=ACCENT_RED,
spaceBefore=1, spaceAfter=2, leading=13,
leftIndent=14, firstLineIndent=-10)
# Mnemonic box
MNEMONIC = ParagraphStyle("mnemonic",
fontName="Helvetica-Bold", fontSize=10.5, textColor=DARK_BLUE,
spaceBefore=3, spaceAfter=3, leading=15, alignment=TA_CENTER)
# Caption
CAPTION = ParagraphStyle("caption",
fontName="Helvetica-Oblique", fontSize=8, textColor=colors.HexColor("#555555"),
spaceBefore=2, spaceAfter=6, alignment=TA_CENTER)
# βββββββββββββββββββββββββββββββββββββββββββββ
# Helper: scale image to fit width
# βββββββββββββββββββββββββββββββββββββββββββββ
def img_scaled(path, max_w=CONTENT_W, max_h=12*cm):
pi = PILImage.open(path)
iw, ih = pi.size
ratio = iw / ih
w = min(max_w, max_h * ratio)
h = w / ratio
if h > max_h:
h = max_h; w = h * ratio
return Image(path, width=w, height=h)
# βββββββββββββββββββββββββββββββββββββββββββββ
# Helper: module header bar
# βββββββββββββββββββββββββββββββββββββββββββββ
def module_header(title, subtitle=""):
data = [[Paragraph(title, MOD_HEADING)]]
if subtitle:
data.append([Paragraph(subtitle, ParagraphStyle("mhsub",
fontName="Helvetica-Oblique", fontSize=10, textColor=colors.HexColor("#a8d0ef"),
leading=14))])
t = Table(data, colWidths=[CONTENT_W])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING",(0,0),(-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 12),
("RIGHTPADDING",(0,0), (-1,-1), 12),
("LINEBELOW", (0,-1),(-1,-1), 2, ACCENT_GOLD),
]))
return t
# Helper: section box
def sec_box(title):
t = Table([[Paragraph(title, SEC_HEADING)]], colWidths=[CONTENT_W])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), LIGHT_BLUE),
("LEFTPADDING",(0,0),(-1,-1), 8),
("TOPPADDING", (0,0),(-1,-1), 4),
("BOTTOMPADDING",(0,0),(-1,-1), 4),
("LINEBELOW", (0,0),(-1,-1), 1.5, MED_BLUE),
]))
return t
# Helper: mnemonic box
def mnemonic_box(title, content):
inner = [
[Paragraph(f"<b>MNEMONIC: {title}</b>", ParagraphStyle("mnt",
fontName="Helvetica-Bold", fontSize=10, textColor=DARK_BLUE, leading=14))],
[Paragraph(content, ParagraphStyle("mnc",
fontName="Helvetica", fontSize=9.5, textColor=DARK_GREY, leading=14))],
]
t = Table(inner, colWidths=[CONTENT_W - 1*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), BOX_BG),
("BOX", (0,0),(-1,-1), 1, ACCENT_GOLD),
("TOPPADDING", (0,0),(-1,-1), 6),
("BOTTOMPADDING",(0,0),(-1,-1), 6),
("LEFTPADDING", (0,0),(-1,-1), 10),
]))
return t
# Helper: clinical pearl box
def pearl_box(content):
inner = [[Paragraph(f"<b>CLINICAL PEARL</b> {content}", ParagraphStyle("pearl",
fontName="Helvetica", fontSize=9, textColor=colors.HexColor("#6e2400"),
leading=13))]]
t = Table(inner, colWidths=[CONTENT_W - 1*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), colors.HexColor("#fdf2e9")),
("LINEBELOW", (0,0),(-1,-1), 1.5, ACCENT_RED),
("LEFTPADDING", (0,0),(-1,-1), 10),
("TOPPADDING", (0,0),(-1,-1), 5),
("BOTTOMPADDING",(0,0),(-1,-1), 5),
]))
return t
# Helper: standard data table
def data_table(headers, rows, col_widths=None):
if col_widths is None:
n = len(headers)
col_widths = [CONTENT_W / n] * n
data = [[Paragraph(h, ParagraphStyle("th", fontName="Helvetica-Bold",
fontSize=8.5, textColor=colors.white, leading=11)) for h in headers]]
for i, row in enumerate(rows):
data.append([Paragraph(str(c), ParagraphStyle("td", fontName="Helvetica",
fontSize=8, textColor=DARK_GREY, leading=11)) for c in row])
t = Table(data, colWidths=col_widths, repeatRows=1)
style = [
("BACKGROUND", (0,0), (-1,0), TABLE_HDR),
("ROWBACKGROUNDS",(0,1),(-1,-1),[TABLE_WHITE, TABLE_ALT]),
("GRID", (0,0),(-1,-1), 0.4, colors.HexColor("#c0c0c0")),
("TOPPADDING", (0,0),(-1,-1), 4),
("BOTTOMPADDING", (0,0),(-1,-1), 4),
("LEFTPADDING", (0,0),(-1,-1), 5),
("VALIGN", (0,0),(-1,-1), "TOP"),
]
t.setStyle(TableStyle(style))
return t
# βββββββββββββββββββββββββββββββββββββββββββββ
# COVER PAGE
# βββββββββββββββββββββββββββββββββββββββββββββ
def cover_page():
items = []
# Blue header block
header_data = [
[Paragraph("SURGICAL ANATOMY", COVER_TITLE)],
[Paragraph("HEAD & NECK", COVER_TITLE)],
[Paragraph("OMFS Study Guide", COVER_SUBTITLE)],
[Paragraph("Basics to Advanced | Seminar Edition", COVER_INFO)],
[Spacer(1, 0.3*cm)],
[Paragraph("Sources: Gray's Anatomy for Students Β· Fischer's Mastery of Surgery Β· Cummings Otolaryngology Β· Scott-Brown's ENT Β· KJ Lee's Essential Otolaryngology Β· Pocket Dentistry OMFS", COVER_INFO)],
]
t = Table(header_data, colWidths=[CONTENT_W])
t.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), DARK_BLUE),
("TOPPADDING", (0,0),(-1,-1), 14),
("BOTTOMPADDING",(0,0),(-1,-1), 14),
("LEFTPADDING", (0,0),(-1,-1), 20),
("RIGHTPADDING", (0,0),(-1,-1), 20),
("LINEABOVE", (0,0),(-1,0), 4, ACCENT_GOLD),
("LINEBELOW", (0,-1),(-1,-1),4, ACCENT_GOLD),
]))
items.append(t)
items.append(Spacer(1, 0.5*cm))
# Cover image - triangles of neck
img_path = os.path.join(IMG_DIR, "triangles_neck.png")
if os.path.exists(img_path):
items.append(img_scaled(img_path, max_w=CONTENT_W, max_h=9*cm))
items.append(Paragraph("Fig. Anterior & Posterior Triangles of the Neck (Gray's Anatomy for Students)", CAPTION))
items.append(Spacer(1, 0.4*cm))
# TOC preview
toc_data = [
["Module", "Topic", "Page"],
["1", "Bony Scaffold β Skull, Mandible, Maxilla, Zygoma", "2"],
["2", "Fascial Layers & Deep Neck Spaces", "5"],
["3", "Muscles of Head & Neck", "7"],
["4", "Triangles of the Neck", "10"],
["5", "Neurovascular Anatomy (CN V, VII, XII, Arteries, Veins, Lymphatics)", "12"],
["6", "Regional Applied Anatomy (TMJ, Parotid, Floor of Mouth, Orbit, Pharynx)", "18"],
["7", "OMFS Surgical Approaches & Nerve Blocks", "24"],
["8", "New Techniques: Robotics, Navigation, SLNB, Free Flaps", "28"],
["9", "Quick Revision Mnemonics & Clinical Pearls", "30"],
]
toc = Table(toc_data, colWidths=[1.5*cm, 12*cm, 1.5*cm])
toc.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,0), TABLE_HDR),
("TEXTCOLOR", (0,0),(-1,0), colors.white),
("FONTNAME", (0,0),(-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0),(-1,-1), 8.5),
("ROWBACKGROUNDS",(0,1),(-1,-1),[TABLE_WHITE, TABLE_ALT]),
("GRID", (0,0),(-1,-1), 0.4, colors.HexColor("#c0c0c0")),
("TOPPADDING", (0,0),(-1,-1), 4),
("BOTTOMPADDING",(0,0),(-1,-1), 4),
("LEFTPADDING", (0,0),(-1,-1), 6),
]))
items.append(toc)
items.append(PageBreak())
return items
# βββββββββββββββββββββββββββββββββββββββββββββ
# MODULE 1 β BONY SCAFFOLD
# βββββββββββββββββββββββββββββββββββββββββββββ
def module1():
s = []
s.append(module_header("MODULE 1 β BONY SCAFFOLD OF THE HEAD & NECK",
"Skull Β· Mandible Β· Maxilla Β· Zygomatic Bone Β· Temporal Bone Β· Sphenoid"))
s.append(Spacer(1, 0.3*cm))
s.append(sec_box("1A. Skull β Cranium & Facial Skeleton"))
s.append(Spacer(1,0.2*cm))
s.append(Paragraph("<b>Calvaria (vault):</b> Frontal, parietal (Γ2), temporal (Γ2), parts of sphenoid & occipital. "
"Three layers: outer cortex β diploΓ« (cancellous) β inner cortex. "
"<b>Inner table is thinner</b> β fractures more easily and demands neurosurgical evaluation.", BODY))
s.append(Paragraph("<b>Sutures:</b> Coronal, sagittal, lambdoid, squamosal. Fusion timing critical in craniofacial surgery.", BODY))
s.append(Spacer(1,0.15*cm))
s.append(Paragraph("<b>Base of Skull β Key Foramina for OMFS:</b>", SUB_HEADING))
skull_data = [
["Foramen", "Transmits", "Clinical Relevance"],
["Cribriform plate", "Olfactory nerve (CN I)", "CSF rhinorrhoea; anosmia in anterior fossa fractures"],
["Optic canal", "CN II + ophthalmic artery", "Optic nerve injury in orbital/frontal fractures"],
["Superior orbital fissure", "CN III, IV, V1, VI + sup. ophthalmic vein", "SOF syndrome β complete ophthalmoplegia"],
["Foramen rotundum", "V2 (maxillary nerve)", "V2 blocks; midface surgery"],
["Foramen ovale", "V3 + accessory meningeal a.", "IAN block reference; V3 schwannoma access"],
["Foramen spinosum", "Middle meningeal artery", "Extradural haematoma (pterion fracture)"],
["Stylomastoid foramen", "CN VII exits", "Parotidectomy landmark; retroauricular dissection"],
["Jugular foramen", "CN IX, X, XI + IJV", "Jugular foramen tumours; post-op dysphagia"],
["Hypoglossal canal", "CN XII", "Posterior fossa approach; tongue weakness"],
]
s.append(data_table(skull_data[0], skull_data[1:],
col_widths=[3.8*cm, 4.5*cm, 6.7*cm]))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("1B. Mandible β OMFS Workhorse Bone"))
s.append(Paragraph(
"<b>Parts:</b> Condyle β condylar neck β ramus β coronoid process β angle β body β symphysis / parasymphysis β alveolus. "
"Dense outer + inner cortical tables with central cancellous bone.", BODY))
mandible_data = [
["Landmark", "Location", "OMFS Significance"],
["Mental foramen", "Below 2nd PM apex (adults); higher in children, lower in elderly edentulous", "Mental nerve exit; varies with age β confirm on OPG before implants"],
["Mandibular foramen (lingula)", "Medial ramus, at occlusal plane", "IAN block target; lingula = pterygomandibular space"],
["Mylohyoid groove", "Antero-inferior from mandibular foramen", "Mylohyoid nerve & vessels; sublingual space infection route"],
["Coronoid process", "Anterior superior ramus", "Temporalis attachment; coronoidectomy for trismus"],
["Condylar neck (pterygoid fovea)", "Anterior surface of neck", "Lateral pterygoid inserts here; subcondylar fractures here"],
["Genial tubercles", "Inner midline symphysis", "Superior = genioglossus, Inferior = geniohyoid attachment"],
]
s.append(data_table(mandible_data[0], mandible_data[1:],
col_widths=[3.5*cm, 5.5*cm, 6*cm]))
s.append(Spacer(1, 0.2*cm))
s.append(pearl_box(
"Rood & Shehab criteria on OPG predict close IAN-root contact: "
"darkening of root apex, diversion of canal, narrowing of root, "
"interruption of white line of canal. β Consider coronectomy or nerve lateralization."))
s.append(Spacer(1, 0.3*cm))
s.append(sec_box("1C. Maxilla & Midface β Le Fort Fracture Anatomy"))
s.append(Paragraph(
"<b>Key processes:</b> Frontal, zygomatic, palatine, alveolar. "
"<b>Infraorbital foramen:</b> 1 cm below infraorbital rim in mid-pupillary line (ION exit = V2 terminal). "
"<b>Nasolacrimal duct</b> opens at inferior meatus β at risk in Le Fort I osteotomy.", BODY))
lefort_data = [
["Le Fort Level", "Fracture Line", "Pterygoid Plates", "Key Clinical Feature"],
["Le Fort I", "Through lower maxilla, piriform aperture, pterygomaxillary junction", "Always fractured", "Floating palate; step at ZM buttress"],
["Le Fort II", "Through infraorbital rim, naso-frontal suture, pterygomaxillary junction", "Always fractured", "Pyramidal fracture; CSF rhinorrhoea"],
["Le Fort III", "Through zygomatic arch, lateral/medial orbital walls, naso-frontal suture", "Always fractured", "Craniofacial dysjunction; dish-face deformity"],
]
s.append(data_table(lefort_data[0], lefort_data[1:],
col_widths=[2.5*cm, 5.5*cm, 3*cm, 4*cm]))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("1Dβ1F. Zygomatic, Temporal & Sphenoid Bones"))
zts = [
("Zygomatic bone", "4 processes: frontal, temporal, orbital, maxillary. "
"Zygomaticofacial foramen = ZF nerve. "
"<b>Gillies approach</b> to reduce depressed zygomatic arch via temporal fascial plane. "
"Key risk: <b>superficial temporal artery</b> must be avoided."),
("Temporal bone", "Parts: squamous, petrous, tympanic, mastoid. "
"<b>Pterion</b> (junction of frontal-parietal-temporal-sphenoid) = thinnest skull point, "
"overlies middle meningeal artery. Fracture here β extradural haematoma. "
"<b>Stylomastoid foramen</b>: CN VII exits; landmark for parotidectomy."),
("Sphenoid bone", "Greater wings, lesser wings, pterygoid plates. "
"Medial pterygoid plate ends in <b>hamulus</b> (tensor veli palatini wraps around it). "
"<b>Pterygopalatine fossa (PPF)</b>: communicates with orbit (IOF), nasal cavity "
"(sphenopalatine F.), middle cranial fossa (foramen rotundum), "
"infratemporal fossa (pterygomaxillary fissure), oral cavity (greater/lesser palatine canals). "
"Contains: pterygopalatine ganglion, V2 terminal branches, maxillary artery 3rd part."),
]
for bone, text in zts:
s.append(Paragraph(f"<b>{bone}:</b> {text}", BULLET))
s.append(PageBreak())
return s
# βββββββββββββββββββββββββββββββββββββββββββββ
# MODULE 2 β FASCIAL LAYERS & SPACES
# βββββββββββββββββββββββββββββββββββββββββββββ
def module2():
s = []
s.append(module_header("MODULE 2 β FASCIAL LAYERS & DEEP NECK SPACES",
"Deep Cervical Fascia Β· Neck Spaces Β· Ludwig's Angina"))
s.append(Spacer(1,0.3*cm))
# Neck fascia cross section image
img_path = os.path.join(IMG_DIR, "neck_fascia_cross_section.png")
if os.path.exists(img_path):
s.append(img_scaled(img_path, max_w=CONTENT_W, max_h=9*cm))
s.append(Paragraph(
"Fig. Cross-section of neck showing 3 layers of deep cervical fascia, "
"carotid sheath, and deep neck spaces", CAPTION))
s.append(sec_box("2A. Deep Cervical Fascia β 3 Layers"))
fascia_data = [
["Layer", "Also Called", "Encloses", "OMFS / Clinical Relevance"],
["Superficial (investing)", "Outer layer", "SCM, trapezius, masseter, parotid gland", "Roof of ant. & post. triangles; parotid capsule derived from this"],
["Middle (pretracheal/visceral)", "Muscular + visceral portions", "Strap muscles, thyroid, trachea, esophagus, pharynx", "Connects to mediastinum via pretracheal space β route for descending infection"],
["Deep (prevertebral)", "Alar layer + prevertebral proper", "Prevertebral muscles, vertebral column", "Danger space 4 between alar + prevertebral β direct access to posterior mediastinum"],
]
s.append(data_table(fascia_data[0], fascia_data[1:],
col_widths=[3.2*cm, 3*cm, 4*cm, 4.8*cm]))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("2B. Deep Neck Spaces β Critical for OMFS Infections"))
spaces = [
("<b>Parapharyngeal Space (PPS)</b>", "Inverted pyramid shape. Lateral = medial pterygoid, medial = pharynx, roof = skull base. "
"<b>Prestyloid:</b> fat, minor salivary tissue β no major structures. "
"<b>Retrostyloid (carotid space):</b> ICA, IJV, CN IX/X/XI/XII, sympathetic chain. "
"PPS infections track from pterygomandibular space."),
("<b>Masticator Space</b>", "Contains ramus/posterior body of mandible, masseter, pterygoid muscles, IAN. "
"Enclosed by splitting of investing fascia. 3rd molar infections spread here."),
("<b>Parotid Space</b>", "Parotid gland, facial nerve (superficial), retromandibular vein, ECA (deep), parotid LNs."),
("<b>Submandibular Space</b>", "Submandibular gland, Wharton's duct, hypoglossal nerve, lingual nerve. "
"Connected to sublingual space around mylohyoid."),
("<b>Sublingual Space</b>", "Sublingual gland, sublingual vessels, CN XII, lingual nerve. "
"Above mylohyoid. Communicates freely with submandibular space."),
("<b>Buccal Space</b>", "Between buccinator (medial) and skin (lateral). Contains buccal fat pad, buccal nerve, parotid duct."),
("<b>Retropharyngeal Space</b>", "Between posterior pharynx and prevertebral fascia. Skull base β T3. "
"Contains RouviΓ¨re's nodes (drainage of nasopharynx) β first nodal station for NPC."),
("<b>Danger Space 4</b>", "Between alar and prevertebral fascia. Skull base β posterior mediastinum / diaphragm. "
"Route for <b>descending necrotizing mediastinitis (DNM)</b> β mortality up to 40%."),
]
for title, desc in spaces:
s.append(Paragraph(f"β’ {title}: {desc}", BULLET))
s.append(Spacer(1,0.2*cm))
s.append(pearl_box(
"<b>Ludwig's Angina:</b> Bilateral submandibular + sublingual + submental space infection. "
"Source: 80% lower molar roots below mylohyoid line. "
"Priority = AIRWAY (awake fiberoptic intubation / surgical airway). "
"Incision: Horseshoe (bilateral submandibular + submental) + sublingual drainage. "
"Organisms: Mixed aerobic/anaerobic (Streptococcus, Bacteroides, Fusobacterium)."))
s.append(Spacer(1,0.2*cm))
s.append(Paragraph(
"<b>Mylohyoid Line Rule (OMFS):</b> Root apex above mylohyoid line β sublingual space infection. "
"Root apex below mylohyoid line β submandibular space infection. "
"Lower 3rd molar roots almost always lie below β submandibular Β± masticator space.", BODY))
s.append(PageBreak())
return s
# βββββββββββββββββββββββββββββββββββββββββββββ
# MODULE 3 β MUSCLES
# βββββββββββββββββββββββββββββββββββββββββββββ
def module3():
s = []
s.append(module_header("MODULE 3 β MUSCLES OF HEAD & NECK",
"Mastication Β· Facial Expression Β· Suprahyoid Β· Infrahyoid"))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("3A. Muscles of Mastication (all: V3 motor)"))
mast_data = [
["Muscle", "Origin", "Insertion", "Action", "OMFS Note"],
["Masseter", "Zygomatic arch", "Lateral ramus & angle", "Elevation (powerful)", "Masseter hypertrophy; access in ORIF ramus"],
["Temporalis", "Temporal fossa (inf. temporal line)", "Coronoid & ant. ramus", "Elevation + retraction", "Temporalis flap; coronoidectomy for trismus"],
["Medial pterygoid", "Medial surface of lat. pterygoid plate + pyramidal palatine", "Medial ramus & angle", "Elevation + side-to-side", "Forms 'pterygoid sling' with masseter"],
["Lateral pterygoid β sup. head", "Greater wing infratemporal crest", "Articular disc + capsule", "Pulls disc anterior on opening", "Disc displacement pathology"],
["Lateral pterygoid β inf. head", "Lateral surface of lat. pterygoid plate", "Pterygoid fovea (condylar neck)", "Protrusion; contralateral excursion (unilateral)", "Condylar fracture displaces medially due to this"],
]
s.append(data_table(mast_data[0], mast_data[1:],
col_widths=[3*cm, 3.5*cm, 3*cm, 2.5*cm, 3*cm]))
s.append(Spacer(1,0.3*cm))
s.append(Paragraph(
"<b>Pterygomandibular raphe:</b> fibrous band between hamulus (medial pterygoid plate) and "
"posterior end of mylohyoid line (mandible). IAN block landmark. "
"Buccinator attaches anteriorly; superior pharyngeal constrictor attaches posteriorly.", BODY))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("3B. Muscles of Facial Expression (all: CN VII)"))
s.append(Paragraph(
"All derived from second branchial arch mesoderm. All innervated by branches of CN VII.", BODY))
facial_risk = [
("Temporal branch", "Frontalis, orbicularis oculi, corrugator supercilii",
"Crosses zygomatic arch within temporoparietal fascia. AT RISK in preauricular/coronal approaches if dissection is superficial to superficial layer of temporalis fascia."),
("Zygomatic branch", "Orbicularis oculi (lower), zygomaticus",
"Runs with parotid duct at level of tragus to mid-upper lip."),
("Buccal branch", "Buccinator, orbicularis oris, zygomaticus minor",
"Multiple anastomoses β injury rarely causes permanent deficit."),
("Marginal mandibular", "Depressor anguli oris, depressor labii, mentalis",
"Runs BELOW mandibular border in ~20%. Deep to platysma, superficial to facial vessels. "
"AT RISK in Risdon incision, submandibular gland excision, Level I dissection. "
"Always retract superiorly with superficial flap."),
("Cervical branch", "Platysma",
"Least clinically significant; injury causes minor neck skin changes."),
]
for branch, muscles, risk in facial_risk:
s.append(Paragraph(f"<b>β’ {branch}:</b> Supplies {muscles}. <font color='red'>Risk: {risk}</font>", BULLET))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("3C. Suprahyoid Muscles"))
supra_data = [
["Muscle", "Origin", "Insertion", "Nerve", "OMFS Significance"],
["Digastric β ant. belly", "Digastric fossa, mandible", "Intermediate tendon on hyoid", "V3 (mylohyoid n.)", "Boundary of submental triangle"],
["Digastric β post. belly", "Mastoid notch", "Intermediate tendon", "CN VII", "Surgical landmark for CN XII and ECA"],
["Mylohyoid", "Mylohyoid line, mandible", "Body of hyoid + median raphe", "V3 (mylohyoid n.)", "Floor of mouth; space separator; at risk in floor of mouth surgery"],
["Geniohyoid", "Inferior genial tubercles", "Body of hyoid", "C1 via CN XII", "Elevates and protracts hyoid"],
["Stylohyoid", "Styloid process", "Body of hyoid", "CN VII", "Splits around intermediate tendon of digastric"],
]
s.append(data_table(supra_data[0], supra_data[1:],
col_widths=[3.2*cm, 3.2*cm, 3*cm, 2.5*cm, 3.1*cm]))
s.append(PageBreak())
return s
# βββββββββββββββββββββββββββββββββββββββββββββ
# MODULE 4 β TRIANGLES
# βββββββββββββββββββββββββββββββββββββββββββββ
def module4():
s = []
s.append(module_header("MODULE 4 β TRIANGLES OF THE NECK",
"Anterior Β· Posterior Β· Subdivisions Β· Contents"))
s.append(Spacer(1,0.3*cm))
# Posterior triangle deep image
img_path = os.path.join(IMG_DIR, "posterior_triangle_deep.png")
if os.path.exists(img_path):
s.append(img_scaled(img_path, max_w=CONTENT_W, max_h=9*cm))
s.append(Paragraph(
"Fig. Posterior triangle (deep layer) showing CN XI, phrenic nerve, brachial plexus, "
"scalene muscles β Fischer's Mastery of Surgery", CAPTION))
s.append(sec_box("4A. Anterior Triangle"))
s.append(Paragraph(
"<b>Boundaries:</b> Median vertical line of neck | Inferior border of mandible | Anterior border of SCM. "
"Divided into 4 sub-triangles by digastric and omohyoid muscles.", BODY))
ant_data = [
["Sub-triangle", "Boundaries", "Key Contents", "OMFS Drainage / Relevance"],
["Submental (unpaired)", "Ant. bellies of digastric (Γ2) + hyoid", "Submental lymph nodes, small vessels", "Submental incision for floor of mouth drainage; Level Ia nodes"],
["Submandibular (digastric)", "Ant. + post. belly of digastric + inferior mandible", "Submandibular gland, facial artery/vein, lingual nerve, hypoglossal nerve, Wharton's duct", "Risdon incision; Level Ib dissection; submandibular gland excision"],
["Carotid", "Post. belly digastric + ant. belly omohyoid + SCM", "CCA bifurcation, ICA, ECA, IJV, CN X, CN XII, ansa cervicalis", "Carotid body tumour resection; emergency vascular control"],
["Muscular", "Midline + sup. belly omohyoid + SCM", "Strap muscles, thyroid/parathyroid, larynx, trachea, esophagus", "Thyroidectomy, tracheostomy, Level VI neck dissection"],
]
s.append(data_table(ant_data[0], ant_data[1:],
col_widths=[3*cm, 4*cm, 5*cm, 3*cm]))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("4B. Posterior Triangle"))
s.append(Paragraph(
"<b>Boundaries:</b> Posterior border of SCM | Anterior border of trapezius | Middle third of clavicle. "
"<b>Floor:</b> Prevertebral fascia over scalenes, levator scapulae, splenius capitis. "
"<b>Divided</b> by inferior belly of omohyoid into: Occipital triangle (superior, larger) + "
"Omoclavicular/subclavian triangle (inferior, smaller).", BODY))
post_data = [
["Structure", "Level in Triangle", "Clinical Risk"],
["Spinal accessory nerve (CN XI)", "Emerges posterior to SCM at Erb's point (upper/middle junction), crosses to trapezius", "Level V dissection; posterior triangle node biopsy β shoulder drop"],
["Erb's point (nerve point of neck)", "Junction upper & middle thirds of SCM, posterior border", "4 cutaneous branches emerge: lesser occipital, great auricular, transverse cervical, supraclavicular"],
["Brachial plexus roots", "Floor (between anterior and middle scalene)", "At risk in Level V dissection; traction injury"],
["Phrenic nerve (C3,4,5)", "On anterior scalene, deep to prevertebral fascia", "Radical neck dissection; sacrifice β diaphragm paralysis"],
["Subclavian artery (3rd part)", "Floor of subclavian triangle", "Major haemorrhage risk in radical neck dissection"],
["External jugular vein", "Crosses SCM diagonally (from angle of mandible to mid-clavicle)", "EJV used as flap pedicle; cosmetic access point"],
["Transverse cervical & suprascapular vessels", "Floor of triangle", "Ligate during radical neck dissection"],
]
s.append(data_table(post_data[0], post_data[1:],
col_widths=[3.5*cm, 6.5*cm, 5*cm]))
# Posterior triangle superficial image
img_path2 = os.path.join(IMG_DIR, "posterior_triangle_superficial.png")
if os.path.exists(img_path2):
s.append(Spacer(1,0.3*cm))
s.append(img_scaled(img_path2, max_w=CONTENT_W, max_h=9*cm))
s.append(Paragraph(
"Fig. Posterior triangle (superficial layer) showing CN XI, great auricular nerve, "
"external jugular vein β Fischer's Mastery of Surgery", CAPTION))
s.append(PageBreak())
return s
# βββββββββββββββββββββββββββββββββββββββββββββ
# MODULE 5 β NEUROVASCULAR
# βββββββββββββββββββββββββββββββββββββββββββββ
def module5():
s = []
s.append(module_header("MODULE 5 β NEUROVASCULAR ANATOMY",
"CN V Β· CN VII Β· CN XII Β· Arteries Β· Veins Β· Lymphatics"))
s.append(Spacer(1,0.3*cm))
# Facial nerve image
img_path = os.path.join(IMG_DIR, "facial_nerve_parotid.png")
if os.path.exists(img_path):
s.append(img_scaled(img_path, max_w=CONTENT_W, max_h=9*cm))
s.append(Paragraph(
"Fig. Facial nerve (CN VII) branching in parotid gland with surgical landmarks "
"for parotidectomy", CAPTION))
s.append(sec_box("5A. Trigeminal Nerve (CN V) β The OMFS Nerve"))
v_data = [
["Division", "Foramen", "Key Branches", "OMFS Block / Risk"],
["V1 β Ophthalmic", "Superior orbital fissure", "Frontal (supraorbital, supratrochlear), lacrimal, nasociliary", "Corneal reflex afferent; SOF syndrome"],
["V2 β Maxillary", "Foramen rotundum β infraorbital canal β IOF", "PSA, MSA, ASA; greater palatine, lesser palatine, nasopalatine; infraorbital nerve", "ION block; GP block (limit depth <1 cm β orbital apex risk); NP block at incisive foramen"],
["V3 β Mandibular", "Foramen ovale", "Motor: masseteric, deep temporal, pterygoids; Sensory: buccal, auriculotemporal, lingual, inferior alveolar β mental", "IAN block, Gow-Gates, Akinosi techniques"],
]
s.append(data_table(v_data[0], v_data[1:],
col_widths=[2.5*cm, 3.5*cm, 5*cm, 4*cm]))
s.append(Spacer(1,0.2*cm))
nerve_notes = [
"Lingual nerve: Lateral to medial pterygoid β hooks under Wharton's duct β medial (supplies tongue). "
"Injury in 3rd molar surgery. Chorda tympani joins here carrying taste (ant 2/3 tongue) + submandibular/sublingual secretomotor.",
"Auriculotemporal nerve: 2 roots embrace middle meningeal artery. Carries parasympathetic secretomotor fibers from otic ganglion β parotid. "
"Frey's syndrome post-parotidectomy = misdirected regeneration into sympathetic sweat gland fibers. Manage with SMAS flap or botulinum toxin.",
"Otic ganglion: Just below foramen ovale, medial to V3. Relay for parotid secretion. Preganglionic: CN IX β lesser petrosal nerve β otic ganglion β postganglionic via auriculotemporal β parotid.",
]
for n in nerve_notes:
s.append(Paragraph(f"β’ {n}", BULLET))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("5B. Facial Nerve (CN VII) β Extracranial Course & Surgical Landmarks"))
s.append(Paragraph(
"<b>Course after stylomastoid foramen:</b> Posterior auricular nerve branches off β enters posterior surface of parotid "
"superficial to ECA and retromandibular vein β divides at <b>pes anserinus</b> into temporofacial (upper) + "
"cervicofacial (lower) β 5 terminal branches: <b>T</b>emporal, <b>Z</b>ygomatic, <b>B</b>uccal, "
"<b>M</b>arginal mandibular, <b>C</b>ervical.", BODY))
s.append(mnemonic_box("CN VII Branches", "To Zanzibar By Motor Car (Temporal | Zygomatic | Buccal | Marginal mandibular | Cervical)"))
s.append(Spacer(1,0.2*cm))
landmarks = [
"Tragal pointer: nerve is ~1 cm deep and inferior to the tip of cartilaginous tragus",
"Tympanomastoid suture: nerve is just deep when exiting stylomastoid foramen",
"Posterior belly of digastric: nerve is ~1 cm superior and anterior to its superior border",
"Styloid process: nerve is just lateral/anterior to it",
]
for i, l in enumerate(landmarks, 1):
s.append(Paragraph(f"<b>Landmark {i}:</b> {l}", BULLET))
s.append(Spacer(1,0.3*cm))
# ECA branches image
img_path = os.path.join(IMG_DIR, "eca_branches.png")
if os.path.exists(img_path):
s.append(img_scaled(img_path, max_w=CONTENT_W, max_h=8*cm))
s.append(Paragraph("Fig. External Carotid Artery β all 8 branches", CAPTION))
s.append(sec_box("5C. External Carotid Artery (ECA) β 8 Branches"))
s.append(mnemonic_box("ECA Branches",
"Some Angry Ladies Found Our Past Medical Students\n"
"Superior thyroid Β· Ascending pharyngeal Β· Lingual Β· Facial Β· Occipital Β· "
"Posterior auricular Β· Maxillary Β· Superficial temporal"))
s.append(Spacer(1,0.15*cm))
eca_data = [
["Branch", "Territory", "OMFS Significance"],
["Superior thyroid", "Thyroid, larynx", "1st ECA branch (anteromedial); ligate in thyroidectomy"],
["Ascending pharyngeal", "Pharynx, meninges", "Only medial branch; posterior; tonsil blood supply partial"],
["Lingual", "Tongue (deep lingual), sublingual gland, floor of mouth", "Passes deep to hyoglossus; at risk in floor of mouth excision"],
["Facial", "Face (labial, nasal, angular arteries)", "Winds around inferior mandible border anterior to masseter; angular anastomoses with ophthalmic territory"],
["Occipital", "Posterior scalp", "Lies near CN XI in carotid triangle; occipital nerve nearby"],
["Posterior auricular", "Ear, scalp behind ear", "Joins post. retromandibular β EJV; retroauricular flap supply"],
["Maxillary (internal)", "Deep face, teeth, dura (middle meningeal)", "3 parts around lateral pterygoid. 2nd part gives middle meningeal artery β extradural haematoma"],
["Superficial temporal", "Temporal scalp, face", "Palpable in front of tragus; Gillies approach risk; runs in temporoparietal fascia"],
]
s.append(data_table(eca_data[0], eca_data[1:],
col_widths=[3.5*cm, 4.5*cm, 7*cm]))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("5D. Lymph Node Levels β Neck Dissection (AJCC Classification)"))
# Lymph node levels image
img_path = os.path.join(IMG_DIR, "lymph_node_levels.png")
if os.path.exists(img_path):
s.append(img_scaled(img_path, max_w=CONTENT_W, max_h=9*cm))
s.append(Paragraph("Fig. Cervical lymph node levels IβVI for neck dissection (OMFS)", CAPTION))
lymph_data = [
["Level", "Name", "Boundaries", "Primary Drainage"],
["Ia", "Submental", "Between anterior bellies of digastric bilaterally + hyoid", "Lower lip, chin, floor of mouth anterior, lower incisors"],
["Ib", "Submandibular", "Body of mandible, anterior & posterior belly of digastric", "Upper/lower lip, cheek, nose, anterior tongue, lower gingiva"],
["IIa/IIb", "Upper deep cervical", "Skull base to hyoid; IIa = anterior to CN XI; IIb = posterior", "Oral cavity, oropharynx, nasal cavity, parotid"],
["III", "Mid deep cervical", "Hyoid to cricoid, around IJV", "Oral cavity, oropharynx, hypopharynx"],
["IV", "Lower deep cervical", "Cricoid to clavicle", "Hypopharynx, larynx, thyroid, cervical esophagus"],
["Va/Vb", "Posterior triangle", "Va: along CN XI; Vb: transverse cervical vessels", "Nasopharynx, oropharynx, posterior scalp"],
["VI", "Central compartment", "Hyoid to sternal notch, between carotid sheaths", "Thyroid, larynx, trachea, cervical esophagus, piriform sinus"],
]
s.append(data_table(lymph_data[0], lymph_data[1:],
col_widths=[1.5*cm, 3*cm, 5*cm, 5.5*cm]))
s.append(Spacer(1,0.2*cm))
s.append(pearl_box(
"Skip metastasis: Tongue SCC can skip Level II to involve Level III or IV (~15% of cases). "
"This is why elective neck dissection or SLNB covers at minimum Levels IβIII for oral tongue SCC. "
"SENT trial (2015): SLNB sensitivity 86%, NPV 94% for T1/T2 N0 oral SCC."))
s.append(PageBreak())
return s
# βββββββββββββββββββββββββββββββββββββββββββββ
# MODULE 6 β REGIONAL ANATOMY
# βββββββββββββββββββββββββββββββββββββββββββββ
def module6():
s = []
s.append(module_header("MODULE 6 β REGIONAL APPLIED ANATOMY",
"TMJ Β· Parotid Β· Submandibular Β· Floor of Mouth Β· Orbit Β· Pharynx"))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("6A. Temporomandibular Joint (TMJ)"))
s.append(Paragraph(
"<b>Unique features:</b> Articular surfaces covered by <b>fibrocartilage</b> (not hyaline). "
"Condylar head articular surface is on <b>anterior slope</b> (not apex). "
"Glenoid (mandibular) fossa roof = floor of middle cranial fossa (thin!). "
"Articular eminence (posterior slope) = actual weight-bearing surface during function.", BODY))
s.append(Paragraph(
"<b>Articular disc:</b> Biconcave fibrocartilage. Anterior band | Intermediate zone (thinnest) | Posterior band. "
"<b>Bilaminar zone (posterior attachment):</b> Upper lamina = elastic (to tympanic plate), Lower lamina = collagenous (to condylar neck). "
"Upper joint space: <b>translation</b>. Lower joint space: <b>rotation</b>.", BODY))
s.append(Paragraph(
"<b>Superior head of lateral pterygoid</b> β disc + capsule (pulls disc anteriorly). "
"<b>Inferior head</b> β condylar neck (protrudes condyle). "
"Anteriorly: maxillary artery, auriculotemporal nerve, pterygoid plexus of veins.", BODY))
tmj_lig = [
("Temporomandibular (lateral) ligament",
"Outer oblique + inner horizontal portions. PRIMARY restraining ligament. Outer oblique limits mouth opening; inner horizontal limits posterior condyle movement."),
("Sphenomandibular ligament",
"Spine of sphenoid β lingula. Remnant of Meckel's cartilage (perichondrium). Does not limit jaw movement significantly."),
("Stylomandibular ligament",
"Styloid process β mandibular angle. Thickening of investing fascia. Separates parotid from submandibular gland."),
]
for name, desc in tmj_lig:
s.append(Paragraph(f"<b>β’ {name}:</b> {desc}", BULLET))
s.append(Spacer(1,0.2*cm))
s.append(Paragraph("<b>Surgical Approaches to TMJ:</b>", SUB_HEADING))
tmj_approaches = [
["Approach", "Incision", "Layer Dissection", "Key Anatomical Risk"],
["Preauricular (Al-Kayat & Bramley)", "Preauricular crease + temporal hairline", "Skin β SMAS β superficial temporal fascia; at zygomatic arch: BETWEEN superficial and deep layers of temporalis fascia", "Temporal branch CN VII (at arch); STA; auriculotemporal nerve"],
["Endaural (periauricular)", "Within external ear cartilage", "Through cartilage to periosteum of EAC", "Superb cosmesis; good for arthrotomy/discectomy"],
["Retromandibular (transparotid)", "Behind mandible, inferior to ear lobule", "Through parotid tissue β facial nerve plane", "Facial nerve (marginal mandibular + cervical); parotid tissue"],
["Arthroscopy", "2 portals: anterolateral + anteromedial", "Trocar through skin β capsule β upper joint space", "Damage to EAC, facial nerve, auriculotemporal nerve, maxillary artery"],
]
s.append(data_table(tmj_approaches[0], tmj_approaches[1:],
col_widths=[3*cm, 3.5*cm, 4*cm, 4.5*cm]))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("6B. Parotid Region"))
s.append(Paragraph(
"<b>Largest salivary gland; serous secretion.</b> Capsule from investing fascia. "
"Superficial lobe (above facial nerve plane) + deep lobe (deep to nerve). "
"<b>Stensen's duct:</b> exits anterior surface, crosses masseter, pierces buccinator at upper 2nd molar. "
"Duct runs along line from tragus to midpoint of philtrum.", BODY))
s.append(Paragraph(
"<b>Parotid contents (superficial β deep):</b> "
"1. Facial nerve (most superficial) β 2. Retromandibular vein β 3. External carotid artery (deepest). "
"<b>Mnemonic: FRE (Facial-Retromandibular-External carotid)</b>", BODY))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("6C. Orbit β Surgical Anatomy for Blowout Fracture / ZMC"))
orbital_data = [
["Wall", "Bones", "Thickness", "OMFS Risk"],
["Roof", "Frontal + lesser sphenoid wing", "Moderate", "Frontal sinus; supraorbital nerve"],
["Floor", "Maxilla + zygomatic + palatine", "Thinnest β most common blowout site", "Inferior rectus entrapment; ION hypesthesia; enophthalmos"],
["Medial wall", "Ethmoid (lamina papyracea), lacrimal, maxilla frontal process", "Paper thin (lamina papyracea)", "Orbital cellulitis from ethmoid sinusitis; medial blowout"],
["Lateral wall", "Zygomatic + greater sphenoid wing", "Thickest", "ZMC fractures; SOF at posterior lateral wall"],
]
s.append(data_table(orbital_data[0], orbital_data[1:],
col_widths=[2.5*cm, 4.5*cm, 3*cm, 5*cm]))
s.append(Spacer(1,0.2*cm))
s.append(Paragraph(
"<b>Orbital approaches (OMFS):</b> "
"Subciliary/infraciliary (risk: ectropion) | Subtarsal mid-lid (crease, less ectropion) | "
"Transconjunctival Β± lateral canthotomy (no scar, best cosmesis; preseptal or retroseptal). "
"<b>White-eye blowout (paediatric):</b> Greenstick trapdoor fracture with inferior rectus entrapment β "
"oculocardiac reflex (bradycardia/nausea/vomiting) β SURGICAL EMERGENCY within 24β48 h.", BODY))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("6D. Floor of Mouth & Sublingual Region"))
s.append(Paragraph(
"<b>Mylohyoid</b> forms the muscular floor. Separates sublingual (above) from submandibular (below) space. "
"<b>Sublingual gland:</b> Numerous ducts of Rivinus β some open directly, some join Wharton's duct. "
"<b>Wharton's duct:</b> Runs from deep part of submandibular gland, passes between mylohyoid and hyoglossus, "
"opens at sublingual caruncle. Lingual nerve hooks under Wharton's duct. CN XII deep to duct.", BODY))
s.append(Paragraph(
"<b>Ranula:</b> Pseudocyst from sublingual gland. Plunging ranula herniates through mylohyoid β neck. "
"<b>Sialolithiasis:</b> 80% in Wharton's duct. Most calcifiable β visible on mandibular occlusal X-ray. "
"Treatment: sialendoscopy (conservative) β floor of mouth incision β submandibular gland excision.", BODY))
s.append(PageBreak())
return s
# βββββββββββββββββββββββββββββββββββββββββββββ
# MODULE 7 β SURGICAL APPROACHES & NERVE BLOCKS
# βββββββββββββββββββββββββββββββββββββββββββββ
def module7():
s = []
s.append(module_header("MODULE 7 β OMFS SURGICAL APPROACHES & NERVE BLOCKS",
"Incisions Β· Dissection Layers Β· Nerve Block Anatomy"))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("7A. Surgical Approaches β Summary"))
approach_data = [
["Approach", "Indication", "Key Layer / Landmark", "Critical Risk"],
["Risdon (submandibular)", "Mandibular angle/body ORIF, subcondylar Fx", "1.5β2 cm below mandibular border; through platysma", "Marginal mandibular nerve β retract superiorly"],
["Intraoral vestibular (lower)", "Symphysis/parasymphysis/body ORIF, mentoplasty", "Incise through mentalis muscle; reconstruct in 2 layers", "Mentalis muscle disruption β chin ptosis if not repaired"],
["Retromandibular (transparotid)", "Subcondylar/condylar neck fractures", "Through parotid tissue anterior to ear lobule", "Facial nerve (marginal + buccal branches)"],
["Preauricular", "TMJ, condylar head, zygomatic arch", "Between superficial and deep temporalis fascia at zygomatic arch", "Temporal branch CN VII; superficial temporal artery"],
["Coronal (bicoronal)", "Frontal, craniofacial, panfacial Fx", "Within hair-bearing scalp; sub-galeal/sub-pericranial plane", "Supraorbital nerve; temporal branch CN VII at arch"],
["Subciliary / transconjunctival", "Orbital floor, ZMC, Le Fort", "Below lash line / through conjunctiva; avoid orbital fat herniation", "ION injury; inferior rectus; nasolacrimal duct"],
["Weber-Ferguson", "Total / infrastructure maxillectomy", "Facial incision splitting upper lip + alar base", "ASA/PSA; infraorbital nerve; anterior facial skin supply"],
["Mandibulotomy (paramedian)", "Access to oropharynx, tongue base, PPS", "Between central incisor and canine / lateral to midline", "Mental nerve; lingual nerve; IAN; dental roots"],
["Supraomohyoid ND (Levels IβIII)", "Oral cavity SCC elective/therapeutic neck", "SCM retracted; IJV identified; posterior triangle avoided", "Marginal mandibular, hypoglossal, lingual nerves"],
["MRND (Levels IβV, preserve XI/IJV/SCM)", "Clinically positive nodes N1βN2", "CN XI preserved along trapezius, IJV preserved", "CN XI (Level V); phrenic nerve; thoracic duct (left)"],
]
s.append(data_table(approach_data[0], approach_data[1:],
col_widths=[3*cm, 3.5*cm, 4.5*cm, 4*cm]))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("7B. Nerve Blocks β Precise Anatomical Basis"))
block_data = [
["Block", "Target Space / Nerve", "Technique", "Volume / Needle"],
["Inferior alveolar (IAN)", "Pterygomandibular space β mandibular foramen", "1 cm above occlusal plane, medial to pterygomandibular raphe, advance to bone (medial ramus), withdraw 1 mm", "1.5β2 mL; 27G long"],
["Lingual nerve", "Given during IAN block", "Small deposition while withdrawing needle from pterygomandibular space β lingual nerve is anterior to IAN", "0.5 mL during withdrawal"],
["Buccal nerve", "Buccal space (anterior to ramus)", "At level of retromolar pad, lateral to pterygomandibular raphe into buccal mucosa", "0.5 mL; 27G short"],
["Mental nerve", "Mental foramen (between PM roots)", "Buccal sulcus between PM roots, direct needle toward foramen; do NOT enter foramen", "0.5β1 mL; 27G short"],
["Infraorbital (ION / V2 terminal)", "Infraorbital foramen", "Intraoral: buccal sulcus above 2nd PM apex, aim toward mid-pupillary 1 cm below infraorbital rim", "1β2 mL; 27G long"],
["Greater palatine", "Greater palatine foramen (opp. 3rd molar)", "2 mm from gingival margin at junction of horizontal + alveolar process; max depth 1 cm", "0.5 mL; 27G short"],
["Nasopalatine", "Incisive (nasopalatine) foramen", "Just posterior to central incisors at papilla; partial insertion only", "0.2β0.3 mL; 27G short"],
["Gow-Gates (entire V3)", "Condylar neck below articular surface", "At maxillary 2nd molar cusp height; advance to condylar neck; wait 3β5 min", "1.8 mL; 27G long"],
["Akinosi (closed mouth)", "Pterygomandibular space (blind)", "Parallel to occlusal plane at mucogingival junction of upper 2nd molar", "1.5 mL; 27G long"],
]
s.append(data_table(block_data[0], block_data[1:],
col_widths=[3*cm, 3.5*cm, 5.5*cm, 3*cm]))
s.append(Spacer(1,0.2*cm))
s.append(pearl_box(
"Greater palatine block: NEVER exceed 1 cm depth. Retrograde tracking through pterygopalatine fossa "
"can reach orbital apex (via inferior orbital fissure) β orbital compartment syndrome, "
"blindness, ophthalmoplegia (orbital apex syndrome). Use short 27G needle and limit depth."))
s.append(PageBreak())
return s
# βββββββββββββββββββββββββββββββββββββββββββββ
# MODULE 8 β NEW TECHNIQUES
# βββββββββββββββββββββββββββββββββββββββββββββ
def module8():
s = []
s.append(module_header("MODULE 8 β NEW TECHNIQUES & EMERGING CONCEPTS",
"Robotics Β· Navigation Β· SLNB Β· Free Flaps Β· VSP"))
s.append(Spacer(1,0.3*cm))
techniques = [
("Transoral Robotic Surgery (TORS)",
"Da Vinci robot for base of tongue, tonsil, soft palate, hypopharynx. "
"Avoids mandibulotomy. Key anatomy: lingual artery and hypoglossal nerve at risk. "
"Significant blood loss risk from lingual artery division. "
"Now standard of care for HPV+ oropharyngeal SCC in many centres."),
("Robot-assisted neck dissection / parotidectomy",
"Retroauricular hairline approach. No visible scar. "
"Deep lobe parotid via retroauricular access feasible (PMID 39326092, Oral Oncol 2024). "
"Longer operative time but comparable oncological outcomes."),
("Intraoperative Navigation Surgery",
"CT/CBCT-integrated navigation for midface fractures, ZMC reconstruction, orbital surgery. "
"Reduces need for over-correction. Real-time feedback on implant/bone position. "
"Particularly useful for complex panfacial fractures and fibula free flap adaptation."),
("Virtual Surgical Planning (VSP) + 3D Printing",
"Pre-operative digital design of osteotomies, fibula segments, titanium plates. "
"Custom cutting guides and reconstruction plates. Now standard for fibula free flap mandibular reconstruction. "
"Reduces operative time, improves accuracy of condylar positioning in orthognathic surgery."),
("Sentinel Lymph Node Biopsy (SLNB)",
"Indication: T1/T2 N0 oral SCC. "
"Technique: Technetium-99m sulphur colloid injection peri-tumourally 24h before surgery + "
"patent blue dye intraoperatively + gamma probe detection. Add SPECT-CT for 3D mapping. "
"SENT trial (2015, Bilde et al.): 415 patients; sensitivity 86%, NPV 94%. "
"Replaces elective supraomohyoid neck dissection in selected patients. "
"Narrowing application to HPV+ oropharyngeal SCC under investigation."),
("Endoscopic Approaches",
"Endoscopic-assisted condylar ORIF (Hinds approach with endoscope): hidden scars, direct visualisation. "
"Transoral endoscopic thyroidectomy via vestibular approach (TOETVA): no neck scar. "
"Endoscopic sinus surgery (FESS): key anatomy = ostiomeatal complex, uncinate process, middle turbinate. "
"Endoscopic parotidectomy: emerging; requires mastery of facial nerve identification."),
("Free Flap Reconstruction",
"<b>Fibula free flap (FFF):</b> Gold standard for mandibular reconstruction. Peroneal artery pedicle. "
"Up to 25 cm bone. Multiple osteotomies. VSP + titanium reconstruction plate guidance. "
"<b>Radial forearm free flap (RFFF):</b> Radial artery pedicle. Thin, pliable. Best for tongue, FOM soft tissue. "
"<b>Anterolateral thigh (ALT):</b> Lateral circumflex femoral (descending branch). "
"Large soft tissue defects, pharyngeal reconstruction. Perforator mapping with Doppler pre-op. "
"<b>DCIA (iliac crest):</b> For maxillary / short mandibular defects. Deep circumflex iliac artery pedicle."),
("Ultrasound-guided Regional Anaesthesia",
"US-guided IAN block: direct visualization of pterygomandibular space, medial pterygoid, nerve. "
"Particularly useful in obese, paediatric, or trismus patients. "
"Reduces volume needed and improves block success rate. Emerging evidence supporting routine use."),
]
for title, desc in techniques:
s.append(KeepTogether([
Paragraph(f"<b>{title}</b>", SUB_HEADING),
Paragraph(desc, BODY),
Spacer(1, 0.1*cm),
]))
s.append(PageBreak())
return s
# βββββββββββββββββββββββββββββββββββββββββββββ
# MODULE 9 β MNEMONICS & PEARLS
# βββββββββββββββββββββββββββββββββββββββββββββ
def module9():
s = []
s.append(module_header("MODULE 9 β MNEMONICS, PEARLS & PRESENTATION STRATEGY",
"Quick Revision Β· Self-Study Method Β· Seminar Delivery Tips"))
s.append(Spacer(1,0.3*cm))
s.append(sec_box("Quick Revision Mnemonics"))
mnemonics = [
("ECA 8 Branches", "Some Angry Ladies Found Our Past Medical Students",
"Superior thyroid | Ascending pharyngeal | Lingual | Facial | Occipital | Posterior auricular | Maxillary | Superficial temporal"),
("CN VII Terminal Branches", "To Zanzibar By Motor Car",
"Temporal | Zygomatic | Buccal | Marginal mandibular | Cervical"),
("Neck Dissection Levels", "I Stand Making Cake Very Carefully",
"I=submental/submandibular | II=upper jugular | III=mid jugular | IV=lower jugular | V=posterior triangle | VI=central compartment"),
("Parotid Contents (sup to deep)", "FRE",
"Facial nerve | Retromandibular vein | External carotid artery"),
("Pterygomandibular Space", "RICE",
"Ramus (lateral) | IAN (contents) | Constrictor-medial pterygoid (medial) | Elastic stylomandibular ligament (posterolateral)"),
("TMJ Preauricular Approach Layers", "SSTTPC",
"Skin | Subcutaneous | Temporoparietal fascia (SMAS) | Temporalis fascia | Periosteum/Capsule"),
("Lingual Nerve Course", "Lateral-Under-Medial",
"Lateral to medial pterygoid β loops Under Wharton's duct β Medial to enter tongue"),
("Base of Skull Foramina V3 level", "OOSS",
"Ovale (V3) | Ovale (accessory meningeal) | Spinosum (middle meningeal) | Spinosum (smallest nerve to tensor tympani)"),
]
for title, mnem, expand in mnemonics:
t = Table([
[Paragraph(f"<b>{title}</b>", ParagraphStyle("mnt2", fontName="Helvetica-Bold",
fontSize=9.5, textColor=DARK_BLUE, leading=13))],
[Paragraph(f"<i>{mnem}</i>", ParagraphStyle("mni", fontName="Helvetica-Oblique",
fontSize=10, textColor=ACCENT_RED, leading=14))],
[Paragraph(expand, ParagraphStyle("mne", fontName="Helvetica",
fontSize=9, textColor=DARK_GREY, leading=12))],
], colWidths=[CONTENT_W - 0.5*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), BOX_BG),
("BOX", (0,0),(-1,-1), 0.8, ACCENT_GOLD),
("TOPPADDING", (0,0),(-1,-1), 4),
("BOTTOMPADDING",(0,0),(-1,-1), 4),
("LEFTPADDING", (0,0),(-1,-1), 8),
]))
s.append(t)
s.append(Spacer(1, 0.15*cm))
s.append(Spacer(1, 0.3*cm))
s.append(sec_box("Clinical Pearls β Must Know for OMFS"))
pearls = [
"Pterion = thinnest skull point (junction frontal-parietal-temporal-sphenoid). Overlies middle meningeal artery. Fracture β extradural haematoma (lucid interval pattern).",
"Inner cortical table of skull is thinner than outer. Fractures of inner table alone demand urgent neurosurgical evaluation regardless of clinical symptoms.",
"Rood & Shehab OPG signs (3rd molar / IAN proximity): darkening of root, diversion of canal, narrowing of root, interruption of white canal line β consider coronectomy.",
"Marginal mandibular nerve runs BELOW mandibular border in 20% cases. Always make Risdon incision 1.5β2 cm below the border, not at the border.",
"Lingual nerve hooks under Wharton's duct: during submandibular gland excision, dividing the duct too posteriorly can injure the lingual nerve as it loops medially.",
"Auriculotemporal syndrome (Frey's): gustatory sweating after parotidectomy. Mechanism = misdirected regeneration of parasympathetic fibers into sympathetic sweat gland supply. Prevention = SMAS flap interposition between parotid bed and skin.",
"Danger space 4 (between alar and prevertebral fascia) extends from skull base to DIAPHRAGM β descending necrotizing mediastinitis. Mortality 40%. Requires surgical drainage Β± thoracotomy.",
"Greater palatine nerve block depth limit = 1 cm. Deeper injection β pterygopalatine fossa β orbital apex syndrome (via inferior orbital fissure) β blindness.",
"Orbital compartment syndrome = ophthalmic emergency. Retrobulbar haematoma β raised intraorbital pressure β central retinal artery occlusion. Perform lateral canthotomy + inferior cantholysis at bedside within 90β120 minutes.",
"Thoracic duct enters left venous angle (IJV + subclavian junction). At risk in left Level IV dissection. Injury = chylous fistula (milky drainage, increases with feeding). Manage: NPO + TPN; re-explore if persistent.",
"White-eye blowout fracture in children = surgical emergency. Trapdoor inferior rectus entrapment triggers oculocardiac reflex (bradycardia, nausea). Repair within 24β48 hours.",
"SLNB (SENT trial, 2015): Sensitivity 86%, NPV 94% for T1/T2 N0 oral SCC. Technique: Tc-99m peri-tumour injection + SPECT-CT + intraoperative gamma probe + patent blue dye.",
]
for p in pearls:
s.append(pearl_box(p))
s.append(Spacer(1, 0.1*cm))
s.append(Spacer(1, 0.3*cm))
s.append(sec_box("How to Present This Seminar β Delivery Guide"))
delivery = [
("Opening hook (5 min)",
"Start with a real case: a patient with facial nerve palsy after parotid surgery OR IAN damage "
"after third molar removal. Show the clinical photo. Ask: 'Why did this happen?' "
"Then say: 'The answer is in the anatomy we're about to cover.'"),
("Framework slide (3 min)",
"Show the 9-module roadmap. Tell the audience: "
"'By the end, you will be able to plan any head and neck surgical approach without injuring a nerve.'"),
("Layer-by-layer teaching method",
"Bony scaffold first (blank skull) β overlay fascia diagram β add muscles β add neurovascular. "
"Build the anatomy like building a person. Draw each layer on the whiteboard as you go."),
("The 3R Rule (for each structure)",
"Region β where is it? | Relations β what is next to it? | Risk β what happens if you cut it? "
"This anchors anatomy to surgery every time."),
("OMFS pivot after each section",
"After each anatomical section, ask the audience: 'If you're doing [procedure], what layers are you cutting through and what could you damage?' "
"This keeps professors and colleagues engaged and shows clinical application."),
("Closing quiz (5 min)",
"5-question applied MCQ quiz for the audience. Example: 'A patient develops inability to close the eye after parotidectomy β which branch was injured, and at which landmark?' "
"Shows you understand the material deeply enough to test others."),
]
for step, desc in delivery:
s.append(Paragraph(f"<b>β’ {step}:</b> {desc}", BULLET))
s.append(Spacer(1, 0.08*cm))
s.append(Spacer(1, 0.3*cm))
s.append(sec_box("References & Textbook Sources"))
refs = [
"Gray's Anatomy for Students (6th ed.) β Skull, triangles, orbital anatomy",
"Fischer's Mastery of Surgery (8th ed.) β Posterior triangle, neck dissection anatomy",
"Cummings Otolaryngology Head & Neck Surgery β Infratemporal fossa, fascial spaces",
"Scott-Brown's Otorhinolaryngology H&N Surgery β Deep cervical fascia, neck spaces",
"K.J. Lee's Essential Otolaryngology (10th ed.) β Infratemporal fossa, cervical triangles",
"Peterson's Principles of Oral and Maxillofacial Surgery (Pocket Dentistry) β Applied surgical anatomy, TMJ, orbital approaches",
"Netter's Atlas of Human Anatomy β Visual anatomical reference",
"PMID 39101852 β Surgical incisions for parotid tumours (Ann Plast Surg 2024)",
"PMID 41904021 β Surgical approaches to gingivobuccal cancers (Oral Maxillofac Surg Clin North Am 2026)",
"SENT Trial (Bilde et al., 2015) β Sentinel lymph node biopsy in oral SCC (T1/T2 N0), Head & Neck",
]
for i, r in enumerate(refs, 1):
s.append(Paragraph(f"{i}. {r}", BODY_SMALL))
return s
# βββββββββββββββββββββββββββββββββββββββββββββ
# PAGE NUMBERING
# βββββββββββββββββββββββββββββββββββββββββββββ
def add_page_number(canvas, doc):
canvas.saveState()
# Header bar
canvas.setFillColor(DARK_BLUE)
canvas.rect(0, H - 1.5*cm, W, 1.5*cm, fill=1, stroke=0)
canvas.setFillColor(colors.white)
canvas.setFont("Helvetica-Bold", 9)
canvas.drawString(2*cm, H - 1*cm, "SURGICAL ANATOMY OF HEAD & NECK β OMFS STUDY GUIDE")
canvas.setFont("Helvetica", 8)
canvas.drawRightString(W - 2*cm, H - 1*cm, f"Page {doc.page}")
# Footer
canvas.setFillColor(DARK_BLUE)
canvas.rect(0, 0, W, 1.2*cm, fill=1, stroke=0)
canvas.setFillColor(ACCENT_GOLD)
canvas.rect(0, 1.2*cm, W, 0.15*cm, fill=1, stroke=0)
canvas.setFillColor(colors.HexColor("#aacce8"))
canvas.setFont("Helvetica-Oblique", 7.5)
canvas.drawCentredString(W/2, 0.45*cm, "For educational use only Β· Sources: Gray's Anatomy, Fischer's Mastery of Surgery, Cummings Otolaryngology, Scott-Brown's, KJ Lee's, Pocket Dentistry OMFS")
canvas.restoreState()
# βββββββββββββββββββββββββββββββββββββββββββββ
# BUILD
# βββββββββββββββββββββββββββββββββββββββββββββ
story = []
story += cover_page()
story += module1()
story += module2()
story += module3()
story += module4()
story += module5()
story += module6()
story += module7()
story += module8()
story += module9()
doc.build(story, onFirstPage=add_page_number, onLaterPages=add_page_number)
print(f"PDF built: {OUTPUT}")
print(f"File size: {os.path.getsize(OUTPUT):,} bytes")
cd /home/daytona/workspace/omfs-head-neck && python3 build_pdf.py 2>&1
Whatβs happened
Surgical Anatomy HeadNeck OMFS StudyGuide
PDF Document Β· PDF
| Module | Content |
|---|---|
| 1 | Bony scaffold - skull, mandible, maxilla, zygoma, temporal, sphenoid + Le Fort fracture table |
| 2 | Deep cervical fascia (3 layers), all deep neck spaces, Ludwig's Angina |
| 3 | Muscles of mastication, facial expression, suprahyoid/infrahyoid |
| 4 | Triangles of the neck - anterior & posterior, all contents |
| 5 | CN V/VII/XII, ECA branches, lymph node levels I-VI |
| 6 | TMJ, parotid, orbit, floor of mouth, pharynx |
| 7 | Surgical approaches + nerve blocks with anatomical basis |
| 8 | New techniques: TORS, navigation, VSP, SLNB, free flaps |
| 9 | Mnemonics, clinical pearls, seminar delivery guide |
I think this lacks a pot of information, and also doesnβt match my ppt
.pptx file into the chat!This my ppt analyse this snd create a fullproof blueprint outline covering all aspects from basic to advanced levels in detail, with diagrams, tske reference from standard textbooks and articles
cd /home/daytona/workspace/attachments/00c5a4c5-4274-4b72-8a9f-81d7e2e94027 && pβ¦
Detailed medical anatomy diagram showing the 7 layers of the scalp in cross-section: Skin, Connective tissue (dense), Aponeurosis (galea), Loose areolar tissue (danger layer), Pericranium. Show emissary veins connecting to dural sinuses. Label each layer clearly with SCALP mnemonic letters. Educational medical illustration, clean white background, suitable for OMFS surgical anatomy study guide.
Medical anatomy diagram showing the temporal region in 7 layers cross-section: skin, subcutaneous tissue with superficial temporal artery and auriculotemporal nerve, temporoparietal fascia (containing frontal branch CN VII), loose areolar plane, deep temporal fascia splitting over zygomatic arch to enclose superficial temporal fat pad, temporalis muscle, periosteum and bone. Mark Pitanguy's line from tragus to 1.5cm above lateral eyebrow showing frontal branch course. Educational surgical anatomy diagram.
Medical anatomy illustration showing Sunderland and Seddon nerve injury classification side by side. Seddon: Neuropraxia (conduction block, intact axon), Axonotmesis (axon disrupted, endoneurium intact), Neurotmesis (complete disruption). Sunderland grades 1-5 showing progressive loss of nerve layers. Clean educational diagram with arrows and labels, white background, suitable for OMFS study guide.
Medical anatomy diagram of the mandible showing: mental foramen below 2nd premolar, mandibular foramen with lingula, antilingula, external oblique ridge, coronoid process with temporalis attachment, condylar head and neck with lateral pterygoid attachment, IAN canal path, muscle displacement vectors in fractures (masseter/temporalis/medial pterygoid pulling posterior fragment up, digastric/mylohyoid pulling anterior fragment down). Label all landmarks used in BSSO, ORIF, IAN blocks. Educational OMFS illustration.
Medical anatomy cross-section diagram of the floor of mouth showing hyoglossus muscle as central landmark: SUPERFICIAL to hyoglossus = lingual nerve (superior), Wharton's duct, hypoglossal nerve CN XII, sublingual gland. DEEP to hyoglossus = lingual artery, CN IX glossopharyngeal, lingual vein. Also show mylohyoid muscle dividing sublingual space (above) from submandibular space (below). Label genioglossus, geniohyoid, digastric. Educational OMFS study guide diagram.
Medical anatomy diagram showing Le Fort fracture lines I, II and III on a skull. Le Fort I = horizontal line through lower maxilla, piriform aperture, pterygomaxillary junction (floating palate). Le Fort II = pyramidal line through nasofrontal suture, infraorbital rim, pterygomaxillary junction. Le Fort III = craniofacial disjunction through zygomatic arch, lateral orbital wall, nasofrontal suture. Color each level differently. Also show pterygoid plates fracturing in all three. Educational OMFS illustration.
400, message: Got more than 4194304 bytes when reading: b'data: {"candidates": [{"content": {"role": "model","parts": [{"inlineData": {"mimeType": "image/png"...'.
We encountered an error while processing your request. Please try again or reach out to us for help.
?
cd /home/daytona/workspace/omfs-head-neck && python3 -c " import urllib.request,β¦
Surgical anatomy diagram of floor of mouth cross-section showing hyoglossus as central landmark. Superficial to hyoglossus: lingual nerve (top), Wharton's duct, hypoglossal nerve CN XII, sublingual gland. Deep to hyoglossus: lingual artery, lingual vein. Mylohyoid divides sublingual space above from submandibular space below. Label all structures clearly. Medical educational illustration white background.
Mandible anatomy diagram for OMFS showing all surgical landmarks: mental foramen below 2nd premolar, mandibular foramen with lingula on medial ramus, antilingula on lateral ramus, external oblique ridge, coronoid process, condylar head and neck. Show IAN canal path inside bone. Displacement vectors for fractures with arrows: masseter and temporalis pulling posterior fragment superiorly, digastric and mylohyoid pulling anterior fragment inferiorly. Label Champy ideal osteosynthesis lines. Clean educational illustration.
cd /home/daytona/workspace/omfs-head-neck && python3 -c " import urllib.request,β¦
What happened
?
If it not happening dont waste my time
?
Whatβs happening
ls /home/daytona/workspace/omfs-head-neck/*.png | wc -l && echo "Images ready" &β¦
?