Provide a shortnotes on Disconnection syndrome
Adams and Victor's Principles of Neurology: "The anatomic basis for most of these so-called disconnection syndromes is only partly defined. The concept is an interesting one and emphasizes the importance of afferent, intercortical, and efferent connections of the language mechanisms."
| Tract | Function | Syndrome if Disrupted |
|---|---|---|
| Arcuate fasciculus | Connects Wernicke's area to Broca's area | Conduction aphasia |
| Splenium of corpus callosum | Transfers visual information between hemispheres | Alexia without agraphia |
| Anterior corpus callosum | Transfers motor/praxis commands from left to right hemisphere | Anterior disconnection syndrome |
| Left auditory white matter | Connects bilateral Heschl gyri to Wernicke's area | Pure word deafness |
| Entire corpus callosum (surgically divided) | Interhemispheric integration | Split-brain / callosal syndrome |
Bradley and Daroff's Neurology: "Conduction aphasia has been advanced as a classical disconnection syndrome. Wernicke originally postulated that a lesion disconnecting the Wernicke and Broca areas would produce this syndrome. Geschwind later pointed to the arcuate fasciculus..."

Localization in Clinical Neurology: "The interhemispheric disconnection does not interfere with most activities of daily living but becomes apparent in the failure, by a left hemisphere-dominant individual, to perform tasks such as [naming objects in the left visual hemifield, imitating hand positions, naming objects palpated by the left hand...]"
Bradley and Daroff's Neurology: "Pure word deafness is thus an example of a 'disconnection syndrome,' in which the deficit results from loss of white matter connections rather than of gray matter language centers."
| Syndrome | Key Tract Severed | Hallmark Deficit | Preserved |
|---|---|---|---|
| Conduction aphasia | Arcuate fasciculus | Repetition | Comprehension, fluency |
| Alexia without agraphia | Splenium + left occipital | Reading | Writing, speech |
| Anterior disconnection | Anterior corpus callosum | Left-hand apraxia/agraphia | Speech, right-hand praxis |
| Split-brain syndrome | Entire corpus callosum | Intermanual transfer; alien hand | Daily ADLs largely intact |
| Pure word deafness | Auditory to Wernicke connection | Auditory word comprehension | Pure tone hearing, speech, reading |
Create a summary PDF of disconnection syndromes for clinical reference
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace does not exist"
mkdir -p /home/daytona/workspace/disconnection-syndrome && python3 -c "import re…
~/disconnection-syndrome/generate_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import mm, cm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import PageBreak
OUTPUT = "/home/daytona/workspace/disconnection-syndrome/Disconnection_Syndromes_Clinical_Reference.pdf"
# ── Colour palette ──────────────────────────────────────────────
NAVY = colors.HexColor("#1a2a4a")
TEAL = colors.HexColor("#0d6e8a")
LIGHT_BG = colors.HexColor("#eef5f8")
ACCENT = colors.HexColor("#c0392b")
TABLE_HDR = colors.HexColor("#0d6e8a")
TABLE_ALT = colors.HexColor("#f0f7fa")
WHITE = colors.white
DARK_TXT = colors.HexColor("#1a1a2e")
MID_GREY = colors.HexColor("#5a6a7a")
W, H = A4
# ── Styles ───────────────────────────────────────────────────────
styles = getSampleStyleSheet()
def S(name, **kw):
return ParagraphStyle(name, **kw)
cover_title = S("CoverTitle",
fontSize=28, leading=34, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER, spaceAfter=6)
cover_sub = S("CoverSub",
fontSize=13, leading=17, textColor=colors.HexColor("#cfe8f0"),
fontName="Helvetica", alignment=TA_CENTER, spaceAfter=4)
cover_tag = S("CoverTag",
fontSize=9, leading=12, textColor=colors.HexColor("#a0c4d8"),
fontName="Helvetica-Oblique", alignment=TA_CENTER)
section_title = S("SectionTitle",
fontSize=14, leading=18, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_LEFT,
spaceBefore=14, spaceAfter=6,
backColor=NAVY,
leftIndent=-14, rightIndent=-14,
borderPad=5)
subsec = S("SubSec",
fontSize=11, leading=14, textColor=TEAL,
fontName="Helvetica-Bold",
spaceBefore=10, spaceAfter=3,
borderPad=2)
body = S("Body",
fontSize=9.5, leading=14, textColor=DARK_TXT,
fontName="Helvetica", alignment=TA_JUSTIFY,
spaceAfter=5)
bullet = S("Bullet",
fontSize=9.5, leading=13, textColor=DARK_TXT,
fontName="Helvetica", leftIndent=12, bulletIndent=4,
spaceBefore=1, spaceAfter=1)
note_style = S("Note",
fontSize=8.5, leading=12, textColor=MID_GREY,
fontName="Helvetica-Oblique",
leftIndent=10, spaceBefore=4, spaceAfter=6,
backColor=LIGHT_BG, borderPad=5)
key_point = S("KeyPoint",
fontSize=9.5, leading=13, textColor=DARK_TXT,
fontName="Helvetica",
leftIndent=12, bulletIndent=4,
spaceBefore=2, spaceAfter=2)
footer_style = S("Footer",
fontSize=7.5, leading=10, textColor=MID_GREY,
fontName="Helvetica", alignment=TA_CENTER)
page_num_style = S("PageNum",
fontSize=8, textColor=MID_GREY,
fontName="Helvetica", alignment=TA_CENTER)
# ── Canvas callbacks ─────────────────────────────────────────────
def on_page(canvas, doc):
canvas.saveState()
# Top rule
canvas.setStrokeColor(TEAL)
canvas.setLineWidth(2)
canvas.line(14*mm, H - 10*mm, W - 14*mm, H - 10*mm)
# Bottom bar
canvas.setFillColor(NAVY)
canvas.rect(0, 0, W, 12*mm, fill=1, stroke=0)
# Footer text
canvas.setFillColor(WHITE)
canvas.setFont("Helvetica", 7)
canvas.drawCentredString(W/2, 4*mm,
"Disconnection Syndromes | Clinical Neurology Reference | Sources: Bradley & Daroff, Adams & Victor, Localization in Clinical Neurology")
# Page number
canvas.setFillColor(colors.HexColor("#a0c4d8"))
canvas.setFont("Helvetica-Bold", 8)
canvas.drawRightString(W - 14*mm, 4*mm, f"Page {doc.page}")
canvas.restoreState()
def cover_page_cb(canvas, doc):
"""Full-colour cover page."""
canvas.saveState()
# Navy background
canvas.setFillColor(NAVY)
canvas.rect(0, 0, W, H, fill=1, stroke=0)
# Teal accent strip
canvas.setFillColor(TEAL)
canvas.rect(0, H*0.38, W, 6*mm, fill=1, stroke=0)
canvas.rect(0, H*0.62, W, 6*mm, fill=1, stroke=0)
# Bottom band
canvas.setFillColor(colors.HexColor("#0a1929"))
canvas.rect(0, 0, W, 28*mm, fill=1, stroke=0)
# Source note
canvas.setFillColor(colors.HexColor("#7aadcc"))
canvas.setFont("Helvetica", 7.5)
canvas.drawCentredString(W/2, 10*mm,
"Sources: Bradley & Daroff's Neurology | Adams & Victor's Principles of Neurology |"
" Localization in Clinical Neurology | Kaplan & Sadock's Psychiatry | Kandel's Principles of Neural Science")
canvas.restoreState()
# ── Helper builders ──────────────────────────────────────────────
def hr(color=TEAL, width=0.5):
return HRFlowable(width="100%", thickness=width, color=color, spaceAfter=4, spaceBefore=4)
def sec(text):
return [
Spacer(1, 4*mm),
Table([[Paragraph(text, section_title)]],
colWidths=[W - 28*mm],
style=TableStyle([
("BACKGROUND", (0,0), (-1,-1), NAVY),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING",(0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 10),
])),
Spacer(1, 3*mm),
]
def subsection(text):
return [Paragraph(text, subsec)]
def para(text):
return [Paragraph(text, body)]
def bul(items):
out = []
for item in items:
out.append(Paragraph(f"<bullet>\u2022</bullet> {item}", bullet))
return out
def note(text):
return [Paragraph(f"<i>{text}</i>", note_style)]
def keypoints(items):
out = [Paragraph("<b>Key Points</b>", subsec)]
for i, item in enumerate(items, 1):
out.append(Paragraph(f"<bullet><b>{i}.</b></bullet> {item}", key_point))
return out
# ── CONTENT ──────────────────────────────────────────────────────
story = []
# ===== COVER PAGE =====
from reportlab.platypus import BaseDocTemplate, Frame, PageTemplate
# We'll use SimpleDocTemplate and fake the cover with a big table
story.append(Spacer(1, 42*mm))
story.append(Paragraph("DISCONNECTION", cover_title))
story.append(Paragraph("SYNDROMES", cover_title))
story.append(Spacer(1, 8*mm))
story.append(Paragraph("Clinical Neurology Reference", cover_sub))
story.append(Spacer(1, 4*mm))
story.append(Paragraph(
"A concise evidence-based summary for clinical practice, examinations and ward rounds",
cover_tag))
story.append(Spacer(1, 60*mm))
story.append(Paragraph(
"Norman Geschwind (1965) | Dejerine (1892) | Wernicke (1874)",
cover_tag))
story.append(PageBreak())
# ===== PAGE 1: DEFINITION & BACKGROUND =====
story += sec("1. DEFINITION AND CONCEPTUAL BACKGROUND")
story += para(
"A <b>disconnection syndrome</b> is a neurological deficit arising from interruption of white matter "
"tracts that connect functionally distinct cortical or subcortical regions, rather than from "
"destruction of the cortical 'centers' themselves. The affected gray matter remains structurally "
"intact, but loss of connectivity produces a characteristic clinical picture."
)
story += para(
"The concept was systematized by <b>Norman Geschwind (1965)</b> building on 19th-century work by "
"<b>Dejerine (1892)</b> - who described alexia without agraphia - and <b>Wernicke (1874)</b>, who "
"predicted conduction aphasia from theoretical disconnection of his sensory speech area from "
"Broca's motor speech area."
)
story += note(
'"The anatomic basis for most of these so-called disconnection syndromes is only partly defined. '
'The concept emphasizes the importance of afferent, intercortical, and efferent connections of '
'the language mechanisms." - Adams & Victor\'s Principles of Neurology, 12th ed.'
)
story += subsection("White Matter Tracts Most Commonly Implicated")
tract_data = [
["Tract", "Function", "Syndrome if Disrupted"],
["Arcuate fasciculus", "Connects Wernicke's to Broca's area", "Conduction aphasia"],
["Splenium of corpus callosum", "Transfers visual info between hemispheres", "Alexia without agraphia"],
["Anterior corpus callosum", "Transfers motor/praxis commands L→R hemisphere", "Anterior disconnection syndrome"],
["Left auditory white matter", "Connects bilateral Heschl gyri to Wernicke's area", "Pure word deafness"],
["Entire corpus callosum", "Interhemispheric integration (all modalities)", "Split-brain / Callosal syndrome"],
]
col_w = [(W - 28*mm) * p for p in [0.28, 0.40, 0.32]]
t = Table(tract_data, colWidths=col_w, repeatRows=1)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), TABLE_HDR),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 9),
("BACKGROUND", (0,1), (-1,-1), WHITE),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, TABLE_ALT]),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 8.5),
("TEXTCOLOR", (0,1), (-1,-1), DARK_TXT),
("ALIGN", (0,0), (-1,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#c8dce8")),
("ROUNDEDCORNERS",(0,0), (-1,-1), 2),
]))
story.append(t)
story.append(Spacer(1, 4*mm))
# ===== PAGE 2: CONDUCTION APHASIA =====
story += sec("2. CONDUCTION APHASIA")
story += subsection("Pathophysiology")
story += para(
"The <b>prototype disconnection syndrome</b>. Wernicke's and Broca's areas are intact, but "
"the white matter bridge connecting them - the <b>arcuate fasciculus</b> - is severed. Wernicke "
"predicted this syndrome theoretically in 1874 before it was clinically demonstrated; Geschwind "
"later localized it to the arcuate fasciculus and its deep parietal course."
)
story += subsection("Lesion Site")
story += bul([
"Arcuate fasciculus (deep to supramarginal gyrus, superior temporal-parietal region)",
"Usually also involves left supramarginal gyrus and/or superior temporal cortex",
"Vascular territory: parietal or posterior temporal branch of the left MCA (typically embolic occlusion)",
"Cortex and subcortical white matter in upper bank of the left Sylvian fissure",
])
story += subsection("Clinical Features")
ca_data = [
["Feature", "Finding"],
["Spontaneous speech", "Fluent, with literal (phonemic) paraphasias; frequent hesitation for self-correction"],
["Repetition", "SEVERELY impaired - hallmark; disproportionate to other deficits"],
["Auditory comprehension", "Relatively preserved (better than Wernicke's aphasia)"],
["Naming", "Moderately impaired"],
["Reading aloud", "Impaired (shares same phonological difficulty as repetition)"],
["Reading comprehension", "Largely intact"],
["Writing", "Variable; often mildly impaired"],
["Self-awareness", "Patient painfully aware of own errors; successive corrections often fail"],
["Associated signs", "± Left limb apraxia, mild right hemiparesis, right hemisensory loss, ± right hemianopia"],
]
col_ca = [(W - 28*mm) * p for p in [0.28, 0.72]]
t2 = Table(ca_data, colWidths=col_ca, repeatRows=1)
t2.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), TABLE_HDR),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 9),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, TABLE_ALT]),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 8.5),
("FONTNAME", (1,2), (1,2), "Helvetica-Bold"),
("TEXTCOLOR", (1,2), (1,2), ACCENT),
("ALIGN", (0,0), (-1,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#c8dce8")),
]))
story.append(t2)
story += note(
'"Conduction aphasia has been advanced as a classical disconnection syndrome. Wernicke originally '
'postulated that a lesion disconnecting the Wernicke and Broca areas would produce this syndrome. '
'Geschwind later pointed to the arcuate fasciculus." - Bradley & Daroff\'s Neurology in Clinical Practice'
)
# ===== PAGE 3: ALEXIA WITHOUT AGRAPHIA =====
story += sec("3. ALEXIA WITHOUT AGRAPHIA (Pure Alexia / Posterior Disconnection)")
story += subsection("Historical Note")
story += para(
"First described by <b>Dejerine in 1892</b> - the earliest callosal disconnection syndrome on record. "
"The paradox: a patient who can write perfectly but cannot read even their own writing."
)
story += subsection("Pathophysiology")
story += para(
"Left posterior cerebral artery (PCA) occlusion produces two simultaneous lesions: "
"(1) <b>Left occipital cortex infarction</b> - destroys the left visual cortex, causing right "
"homonymous hemianopia. All visual input must now enter via the right occipital cortex. "
"(2) <b>Splenium of corpus callosum infarction</b> - severs the callosal fibers that normally "
"transfer visual information from the right occipital cortex to the left hemisphere language areas "
"(angular gyrus). Result: language cortices are 'word-blind' - they receive no visual input at all."
)
story += subsection("Clinical Features")
awa_data = [
["Feature", "Finding"],
["Reading", "Impossible - cannot read words, sentences, or own handwriting"],
["Writing", "NORMAL - the defining paradox of this syndrome"],
["Spontaneous speech", "Intact"],
["Repetition", "Intact"],
["Auditory comprehension", "Intact"],
["Naming", "± Impaired, especially for colors (color anomia)"],
["Visual field", "Right homonymous hemianopia (virtually always present)"],
["Letter-by-letter reading", "Some patients can slowly identify single letters"],
["Verbal spelling", "Can understand words spelled aloud to them"],
]
col_awa = [(W - 28*mm) * p for p in [0.30, 0.70]]
t3 = Table(awa_data, colWidths=col_awa, repeatRows=1)
t3.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), TABLE_HDR),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 9),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, TABLE_ALT]),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 8.5),
("FONTNAME", (1,2), (1,2), "Helvetica-Bold"),
("TEXTCOLOR", (1,2), (1,2), ACCENT),
("ALIGN", (0,0), (-1,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#c8dce8")),
]))
story.append(t3)
story += note(
"Mechanism mnemonic: The right eye's nasal field and left eye's temporal field both project to "
"the right occipital cortex (intact). This cortex CAN see - but cannot 'tell' the left language "
"areas what it sees because the splenial bridge is destroyed."
)
# ===== PAGE 4: ANTERIOR + CALLOSAL SYNDROMES =====
story += sec("4. ANTERIOR DISCONNECTION SYNDROME")
story += subsection("Lesion")
story += para(
"<b>Anterior corpus callosum</b> - typically from anterior cerebral artery (ACA) occlusion "
"causing anterior callosal infarction. The right hemisphere is deprived of verbal commands and "
"praxis programs originating in the left hemisphere."
)
story += subsection("Clinical Features")
story += bul([
"<b>Left-hand ideomotor apraxia</b> - left hand cannot execute verbal commands (e.g., 'wave goodbye', 'pretend to hammer')",
"<b>Left-hand agraphia</b> - cannot write with the left hand",
"<b>Unilateral tactile anomia</b> - cannot name objects palpated by the left hand (kept out of view)",
"<b>Right-hand constructional apraxia</b> - right hand is clearly outperformed by left hand in copying designs",
"Speech, reading, auditory comprehension, and right-hand functions remain intact",
])
story.append(Spacer(1, 4*mm))
story += sec("5. SPLIT-BRAIN SYNDROME (Callosal / Interhemispheric Disconnection)")
story += subsection("Context")
story += para(
"Seen after surgical <b>corpus callosotomy</b> (for intractable epilepsy) or from trauma/infarction "
"of the entire corpus callosum. Most activities of daily living are unaffected. Deficits "
"emerge only on specific testing."
)
story += subsection("Clinical Features")
sb_data = [
["Sign", "Description", "Mechanism"],
["Double hemianopia", "Fails to point to stimuli in each hemifield depending on which hand is used", "Visual transfer lost between hemispheres"],
["Left hemialexia", "Cannot read words flashed exclusively to the left visual hemifield", "Right occipital input cannot reach left language areas"],
["Unilateral tactile anomia", "Cannot name objects palpated by the left hand (out of view)", "Left-hand somatosensory input cannot access left language areas"],
["Left-hand agraphia", "Cannot write with the left hand", "Left hand motor cortex lacks verbal programming"],
["Left ideomotor apraxia", "Cannot pantomime commands with left hand; can with right", "Left praxis programs cannot cross to right motor cortex"],
["Alien hand sign", "Left hand acts independently of the patient's volition, may oppose right hand", "Callosal + mesial frontal damage; mid-corpus callosum lesion"],
["Right-hand constructional apraxia", "Left hand outperforms right hand in copying complex designs", "Right hemisphere visuospatial superiority unmasked"],
]
col_sb = [(W - 28*mm) * p for p in [0.25, 0.40, 0.35]]
t4 = Table(sb_data, colWidths=col_sb, repeatRows=1)
t4.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), TABLE_HDR),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 8.5),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, TABLE_ALT]),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 8),
("ALIGN", (0,0), (-1,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#c8dce8")),
]))
story.append(t4)
story += note(
'"The interhemispheric disconnection does not interfere with most activities of daily living but '
'becomes apparent in the failure, by a left hemisphere-dominant individual, to perform tasks such '
'as naming an object briefly presented to the left hemifield..." - Localization in Clinical Neurology, 8th ed.'
)
# ===== PAGE 5: PURE WORD DEAFNESS =====
story += sec("6. PURE WORD DEAFNESS")
story += subsection("Lesion")
story += para(
"Bilateral temporal lesions that isolate <b>Wernicke's area from both primary auditory cortices "
"(Heschl gyri)</b>. Less commonly, a strategically placed unilateral left temporal lesion that "
"disconnects Wernicke's area from bilateral auditory input."
)
story += subsection("Clinical Features")
story += bul([
"<b>Isolated loss of auditory comprehension and repetition</b>",
"Hearing for pure tones and non-verbal sounds (environmental sounds, music) is intact",
"Speech output, naming, reading, and writing are preserved",
"Patient is 'word-deaf' but not deaf",
"Most cases have some mild paraphasic speech errors",
])
story += note(
'"Pure word deafness is thus an example of a disconnection syndrome, in which the deficit results '
'from loss of white matter connections rather than of gray matter language centers." - Bradley & Daroff\'s Neurology'
)
story.append(Spacer(1, 3*mm))
# ===== PAGE 6: TRANSCORTICAL APHASIAS (brief) =====
story += sec("7. TRANSCORTICAL APHASIAS (Isolation Syndromes)")
story += para(
"Transcortical aphasias result from lesions that <b>isolate the perisylvian language areas</b> "
"(Broca's + Wernicke's + arcuate fasciculus) from the surrounding cortex, while sparing the core "
"language network itself. The key feature is <b>preserved repetition</b> (the Broca-arcuate-Wernicke "
"loop is intact), contrasting with impaired spontaneous speech or comprehension."
)
tc_data = [
["Type", "Spontaneous Speech", "Comprehension", "Repetition", "Lesion"],
["Transcortical Motor (TCMA)", "Non-fluent, reduced", "Intact", "INTACT", "Anterior to Broca's area\n(ACA territory, SMA)"],
["Transcortical Sensory (TCSA)", "Fluent, echolalic, paraphasic", "Impaired", "INTACT", "Posterior to Wernicke's area\n(PCA / watershed)"],
["Mixed Transcortical\n(Isolation syndrome)", "Non-fluent; echolalia", "Impaired", "INTACT", "Watershed zone infarction\n(bilateral; hypoperfusion)"],
]
col_tc = [(W - 28*mm) * p for p in [0.22, 0.19, 0.16, 0.14, 0.29]]
t5 = Table(tc_data, colWidths=col_tc, repeatRows=1)
t5.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), TABLE_HDR),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 8.5),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, TABLE_ALT]),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 8),
("FONTNAME", (3,1), (3,3), "Helvetica-Bold"),
("TEXTCOLOR", (3,1), (3,3), TEAL),
("ALIGN", (0,0), (-1,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#c8dce8")),
]))
story.append(t5)
# ===== PAGE 7: MASTER COMPARISON TABLE =====
story += sec("8. MASTER COMPARISON TABLE")
master_data = [
["Syndrome", "Key Tract Severed", "Hallmark Deficit", "What is PRESERVED", "Vascular Territory"],
["Conduction Aphasia",
"Arcuate fasciculus\n(+ supramarginal gyrus)",
"Repetition (severe)",
"Comprehension,\nfluent speech",
"Parietal/post-temporal\nbranch of left MCA"],
["Alexia without Agraphia\n(Pure Alexia)",
"Splenium of CC\n+ left occipital cortex",
"Reading (all modalities)",
"Writing, speech,\ncomprehension",
"Left PCA\n(posterior territory)"],
["Anterior Disconnection",
"Anterior corpus callosum",
"Left-hand apraxia\n& agraphia",
"Speech, right-hand\nfunctions",
"Anterior cerebral\nartery (ACA)"],
["Split-Brain / Callosal\nSyndrome",
"Entire corpus callosum\n(surgical or traumatic)",
"Intermanual transfer;\nalien hand sign",
"Most ADLs;\nright-hand language tasks",
"Surgical callosotomy\nor bilateral infarcts"],
["Pure Word Deafness",
"Auditory cortex to\nWernicke's area connection",
"Auditory word\ncomprehension + repetition",
"Pure tone hearing,\nspeech, reading, writing",
"Bilateral temporal\n(HTN/emboli)"],
["Transcortical Aphasias",
"Perisylvian isolation\n(surrounding cortex cut off)",
"Speech or comprehension\n(type-dependent)",
"Repetition\n(distinguishing feature)",
"Watershed zones;\nACA/PCA border"],
]
col_m = [(W - 28*mm) * p for p in [0.18, 0.20, 0.18, 0.19, 0.25]]
t6 = Table(master_data, colWidths=col_m, repeatRows=1)
t6.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), NAVY),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 8),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, TABLE_ALT]),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 7.5),
("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"),
("TEXTCOLOR", (0,1), (0,-1), NAVY),
("ALIGN", (0,0), (-1,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 5),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#b0ccdc")),
]))
story.append(t6)
story.append(Spacer(1, 5*mm))
# ===== KEY POINTS =====
story += sec("9. KEY CLINICAL POINTS")
story += keypoints([
"<b>Disconnection ≠ cortical destruction.</b> The 'centers' are structurally intact; it is the white matter highways between them that are disrupted.",
"<b>Alexia without agraphia</b> = pathognomonic of left PCA territory stroke (left occipital cortex + splenium). The paradox of writing but not reading one's own writing is clinically unmistakable.",
"<b>Conduction aphasia</b>: repetition is the WORST modality; comprehension is relatively spared. Think: arcuate fasciculus damage.",
"<b>Alien hand sign</b> = callosal + mesial frontal damage (specifically mid-portion of corpus callosum). The left hand 'has a mind of its own.'",
"<b>Preserved repetition</b> distinguishes transcortical aphasias (isolation syndromes) from Broca's and Wernicke's aphasia.",
"<b>Congenital agenesis of the corpus callosum</b> does NOT produce the same disconnection symptoms as acquired lesional interruption - compensatory subcortical pathways develop before birth.",
"<b>Pure word deafness</b>: the patient hears environmental sounds normally but cannot decode spoken words - 'speech sounds like a foreign language.'",
"Surgical corpus callosotomy produces a <b>transient</b> disconnection syndrome initially (mutism, apathy, left-hand apraxia) that largely resolves, leaving only specific inter-hemispheric transfer deficits.",
"The locale of a lesion that causes loss of a language function does <b>not</b> automatically localize that language function itself (Hughlings Jackson's warning).",
])
story.append(Spacer(1, 6*mm))
story += note(
"Sources: Bradley & Daroff's Neurology in Clinical Practice | Adams & Victor's Principles of Neurology, 12th ed. | "
"Localization in Clinical Neurology, 8th ed. | Kaplan & Sadock's Comprehensive Textbook of Psychiatry | "
"Kandel's Principles of Neural Science, 6th ed."
)
# ── Build PDF ─────────────────────────────────────────────────────
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=14*mm,
leftMargin=14*mm,
topMargin=16*mm,
bottomMargin=18*mm,
title="Disconnection Syndromes - Clinical Reference",
author="Orris Medical AI",
subject="Clinical Neurology",
)
# We need two different page templates: cover vs inner
# SimpleDocTemplate uses one callback; we handle it with a flag trick
class SmartDoc(SimpleDocTemplate):
def handle_pageBegin(self):
super().handle_pageBegin()
doc.build(
story,
onFirstPage=cover_page_cb,
onLaterPages=on_page,
)
print(f"PDF created: {OUTPUT}")
python3 /home/daytona/workspace/disconnection-syndrome/generate_pdf.py 2>&1
ls -lh /home/daytona/workspace/disconnection-syndrome/Disconnection_Syndromes_Cl…
Disconnection Syndromes Clinical Reference
PDF Document · PDF
| Section | Content |
|---|---|
| Cover page | Full navy/teal design with title and historical attributions |
| 1. Definition & Background | Concept, Geschwind/Dejerine/Wernicke history; white matter tract table |
| 2. Conduction Aphasia | Pathophysiology, arcuate fasciculus, full clinical features table (repetition highlighted) |
| 3. Alexia Without Agraphia | PCA mechanism, splenium-occipital explanation, clinical table with the writing paradox |
| 4. Anterior Disconnection | ACA territory, left-hand apraxia/agraphia features |
| 5. Split-Brain / Callosal Syndrome | Alien hand, hemialexia, tactile anomia - full features table |
| 6. Pure Word Deafness | Bilateral auditory disconnection; 'word-deaf not deaf' |
| 7. Transcortical Aphasias | Isolation syndromes; preserved repetition as the key differentiator |
| 8. Master Comparison Table | All syndromes side-by-side: tract, hallmark deficit, preserved function, vascular territory |
| 9. Key Clinical Points | 9 high-yield exam/ward points including the Hughlings Jackson warning |