Parkisnason disease

Reading File
Finding Sources
Searching PubMed

"Parkinson disease"[MeSH Terms] AND treatment

Reading File
Reading File
Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Finding Sources
I now have comprehensive information from multiple authoritative textbooks. Let me compose the full answer.

Parkinson's Disease

Overview

Parkinson disease (PD) is the second most common neurodegenerative disorder after Alzheimer disease. It affects approximately 1 in 1,000 people in the general population and at least 1% of people over age 65. Men are slightly more affected than women (3:2). Prevalence is rising as populations age - age-adjusted mortality increased 2.4% per year between 1999 and 2019.

Pathophysiology

Core Mechanism

PD results from the progressive degeneration of pigmented dopaminergic neurons in the substantia nigra pars compacta (SNpc). These neurons project to the striatum (particularly the putamen) via the nigrostriatal pathway and are essential for motor control. Approximately 60% of these neurons are lost before classic motor symptoms emerge.
Loss of dopamine disrupts both the direct and indirect pathways of the basal ganglia circuitry (the cortico-striato-thalamo-cortical loop), leading to deficient thalamocortical drive and impaired motor cortex facilitation - the neurological basis of bradykinesia and other motor symptoms.

Lewy Bodies - The Pathological Hallmark

The defining histological feature is the Lewy body: a cytoplasmic, eosinophilic, round-to-elongated inclusion found in surviving neurons. Lewy bodies consist of fine filaments made of alpha-synuclein (α-synuclein), neurofilaments, and ubiquitin.
  • Grossly: pallor of the substantia nigra and locus coeruleus due to neuronal loss
  • Microscopically: loss of pigmented catecholaminergic neurons + gliosis + Lewy bodies
  • Lewy neurites - dystrophic neurites also containing aggregated α-synuclein - are also found

Molecular Pathogenesis

Key mechanisms include:
  • Abnormal α-synuclein aggregation - due to mutations in the SNCA gene or gene duplications/triplications
  • Defective autophagy/lysosomal degradation - mutations in Parkin, DJ-1, PINK1 affect endosomal trafficking and mitochondrial function
  • Mitochondrial dysfunction - oxidative stress (MPTP toxin inhibits Complex I of the electron transport chain)
  • Protein misfolding with prion-like spread - cell-to-cell transmission of toxic α-synuclein in a "permissive templating" fashion
(Robbins & Kumar Basic Pathology, p. 854; Goldman-Cecil Medicine, Chapter 378)

Etiology & Genetics

Most cases (~90%) are sporadic. Only about 10% have a defined genetic cause.
TypeGene/MutationInheritance
Most common autosomal dominantLRRK2 (leucine-rich repeat kinase 2)Autosomal dominant
Classic early-onsetParkin, DJ-1, PINK1Autosomal recessive
Rare dominant formsα-synuclein (SNCA) mutations, duplicationsAutosomal dominant
Risk factorGlucocerebrosidase (GBA1) mutationsHeterozygous risk
Environmental risk factors: pesticides, heavy metals, traumatic brain injury. The neurotoxin MPTP causes acute parkinsonism by selective destruction of dopaminergic neurons - a key model for understanding sporadic PD.
(Goldman-Cecil Medicine, Chapter 378)

Clinical Features

The Four Cardinal Motor Signs (TRAP)

1. Tremor
  • Classic resting "pill-rolling" tremor at 4-6 Hz
  • Diminishes with voluntary movement, worsens with mental stress
  • Present in only ~20% of PD patients at onset (not universal)
  • A higher-frequency (7-10 Hz) postural/kinetic tremor may also occur
2. Rigidity
  • Increased muscle tone on slow passive flexion/extension
  • "Cogwheel" rigidity when tremor is superimposed
  • "Lead pipe" rigidity when no tremor is present
  • Activated by asking the patient to move the contralateral limb
3. Akinesia/Bradykinesia The most functionally disabling feature, manifesting as:
  • Hypomimia - masked facies, reduced blinking ("reptilian stare")
  • Hypophonia - soft, monotonous speech
  • Micrographia - small handwriting
  • Reduced arm swing and shuffling gait
  • Difficulty arising from chairs, turning in bed
  • Freezing of gait - sudden arrest of movement
  • Sialorrhea (drooling) from impaired swallowing
4. Postural Disturbances
  • Stooped (flexed) posture
  • Postural instability - imbalance and falls
  • Festination - short, accelerating steps
  • Propulsion (forward) or retropulsion (backward)
  • Assessed with the pull test

Asymmetric Onset

Symptoms typically begin unilaterally (one limb or one side), and this asymmetry often persists into later stages - a distinguishing feature from secondary parkinsonism.

Non-Motor Features (often precede motor symptoms by years)

Premotor/prodromal phase (years before diagnosis):
  • REM sleep behavior disorder (RBD) - strongest predictor
  • Anosmia (loss of smell) - early involvement of olfactory system
  • Constipation - enteric nervous system involvement
  • Depression and anxiety
  • Restless leg syndrome
Later non-motor features:
  • Autonomic dysfunction: orthostatic hypotension, urinary urgency, male erectile dysfunction
  • Cognitive impairment progressing to dementia (in up to 80% over disease course)
  • When dementia occurs within 1 year of motor onset = Lewy body dementia (LBD)
  • Sensory disturbances, fatigue, pain
(Goldman-Cecil Medicine, Chapter 378; Bradley and Daroff's Neurology)

Differential Diagnosis (Parkinsonism)

CategoryExamples
NeurodegenerativeProgressive supranuclear palsy (PSP), Multiple system atrophy (MSA), Corticobasal degeneration, Dementia with Lewy bodies
Drug-inducedNeuroleptics, metoclopramide, prochlorperazine, tetrabenazine, reserpine, flunarizine
ToxicMPTP, manganese, carbon monoxide
VascularAtherosclerosis, amyloid angiopathy
InfectiousEncephalitis lethargica, HIV encephalitis
StructuralNormal pressure hydrocephalus, brain tumors
MetabolicWilson disease
Red flags against idiopathic PD: early falls, absent tremor, symmetric onset, rapid progression, poor levodopa response, early dementia, eye movement abnormalities.

Diagnosis

PD remains a clinical diagnosis based on the presence of parkinsonism with typical features (asymmetric onset, resting tremor, good levodopa response). There is no definitive biomarker test.
  • Genetic testing: indicated with strong family history, early onset, or patient interest (LRRK2, GBA1, Parkin, PINK1)
  • Neuroimaging (DaTscan/SPECT): shows reduced dopamine transporter activity in the striatum - helps differentiate from essential tremor
  • MRI brain: mainly to exclude secondary causes
  • Response to levodopa is both diagnostic and therapeutic

Treatment

Pharmacological

1. Levodopa (L-DOPA) + Carbidopa - Gold standard
  • L-DOPA is converted to dopamine in the brain; carbidopa prevents peripheral conversion (reduces side effects)
  • Most effective for bradykinesia and rigidity
  • Limitations over time: wearing-off phenomenon, "on-off" fluctuations, levodopa-induced dyskinesias (LID)
  • Does NOT slow disease progression
2. Dopamine Agonists (pramipexole, ropinirole, rotigotine patch)
  • Used as monotherapy in younger patients to delay levodopa initiation
  • Higher risk of impulse control disorders, hallucinations, somnolence
3. MAO-B Inhibitors (selegiline, rasagiline, safinamide)
  • Inhibit dopamine breakdown; mild symptomatic benefit
  • May have neuroprotective properties (under investigation)
4. COMT Inhibitors (entacapone, tolcapone, opicapone)
  • Used as adjuncts to levodopa to extend its duration
  • Reduce "wearing off"
5. Anticholinergics (trihexyphenidyl, benztropine)
  • Mainly for tremor; used cautiously (cognitive side effects in elderly)
6. Amantadine
  • Helps with dyskinesias; NMDA receptor antagonist

Surgical: Deep Brain Stimulation (DBS)

For patients with advanced PD and motor fluctuations refractory to optimal medical therapy. Electrodes implanted in:
  • Subthalamic nucleus (STN): slightly larger benefit in medication-off state; allows larger medication reductions; higher neuropsychiatric risk
  • Globus pallidus internus (GPi): better dyskinesia suppression; safer neuropsychiatric profile; good for "brittle" dyskinesia
Both STN and GPi DBS show similar overall motor outcomes. DBS does not halt disease progression but significantly improves quality of life.
(Bradley and Daroff's Neurology; Goldman-Cecil Medicine, Chapter 378)

Non-Pharmacological

  • Physiotherapy (balance, gait training)
  • Speech therapy (voice, swallowing)
  • Occupational therapy
  • Exercise (shown to slow functional decline)
  • Dietary adjustments for dysphagia management

Complications & Disease Progression

The disease progresses over 10-15 years, eventually causing severe motor disability. Common late-stage problems:
ProblemExamples
Motor (treatment-resistant)Dysarthria, freezing, postural instability, falls
Motor (drug-induced)Dyskinesias, wearing-off, on-off fluctuations
Non-motorDementia, psychosis (hallucinations), depression, autonomic failure, dysphagia
Death often results from aspiration pneumonia (due to dysphagia - present in up to 82% objectively) or trauma from falls.

Key Points Summary

FeatureDetail
Core pathologyLoss of dopaminergic neurons in substantia nigra
Hallmark inclusionLewy body (α-synuclein)
Cardinal signsTremor, Rigidity, Akinesia, Postural instability (TRAP)
Earliest symptomsRBD, anosmia, constipation, depression
First-line treatmentLevodopa + Carbidopa
Surgical optionDeep brain stimulation (STN or GPi)
Progression10-15 years; death from aspiration or falls

Sources: Goldman-Cecil Medicine (Chapter 378) | Robbins & Kumar Basic Pathology (p. 854) | Bradley and Daroff's Neurology in Clinical Practice
Recent evidence note: A 2025 meta-analysis (PMID 40335465) using machine learning found significant gut microbiome alterations associated with PD, supporting the gut-brain axis hypothesis and reinforcing the relevance of the prodromal GI symptoms. Research on GBA1 variants (PMID 39927608) continues to refine genotype-phenotype relationships in familial PD.

Convert in pdf

Reading File
Running Command

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

Writing File

~/parkinsons_disease.py

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

OUTPUT_PATH = "/home/daytona/workspace/Parkinsons_Disease.pdf"

doc = SimpleDocTemplate(
    OUTPUT_PATH,
    pagesize=A4,
    leftMargin=2*cm, rightMargin=2*cm,
    topMargin=2.5*cm, bottomMargin=2.5*cm,
    title="Parkinson's Disease - Comprehensive Overview",
    author="Orris Medical"
)

styles = getSampleStyleSheet()

# Custom styles
title_style = ParagraphStyle(
    'CustomTitle', parent=styles['Title'],
    fontSize=26, textColor=colors.HexColor('#1a3c6e'),
    spaceAfter=6, alignment=TA_CENTER, fontName='Helvetica-Bold'
)
subtitle_style = ParagraphStyle(
    'Subtitle', parent=styles['Normal'],
    fontSize=11, textColor=colors.HexColor('#4a6fa5'),
    spaceAfter=20, alignment=TA_CENTER, fontName='Helvetica-Oblique'
)
h1_style = ParagraphStyle(
    'H1', parent=styles['Heading1'],
    fontSize=14, textColor=colors.white,
    backColor=colors.HexColor('#1a3c6e'),
    spaceBefore=14, spaceAfter=6,
    fontName='Helvetica-Bold', leftIndent=-5, rightIndent=-5,
    borderPad=5
)
h2_style = ParagraphStyle(
    'H2', parent=styles['Heading2'],
    fontSize=12, textColor=colors.HexColor('#1a3c6e'),
    spaceBefore=10, spaceAfter=4,
    fontName='Helvetica-Bold',
    borderPad=2
)
h3_style = ParagraphStyle(
    'H3', parent=styles['Heading3'],
    fontSize=11, textColor=colors.HexColor('#2e5fa3'),
    spaceBefore=8, spaceAfter=3,
    fontName='Helvetica-Bold'
)
body_style = ParagraphStyle(
    'Body', parent=styles['Normal'],
    fontSize=10, textColor=colors.HexColor('#1a1a1a'),
    spaceAfter=6, leading=14, alignment=TA_JUSTIFY,
    fontName='Helvetica'
)
bullet_style = ParagraphStyle(
    'Bullet', parent=styles['Normal'],
    fontSize=10, textColor=colors.HexColor('#1a1a1a'),
    spaceAfter=3, leading=13,
    leftIndent=15, bulletIndent=5,
    fontName='Helvetica'
)
source_style = ParagraphStyle(
    'Source', parent=styles['Normal'],
    fontSize=8, textColor=colors.HexColor('#666666'),
    spaceAfter=4, leading=11, fontName='Helvetica-Oblique',
    alignment=TA_CENTER
)
note_style = ParagraphStyle(
    'Note', parent=styles['Normal'],
    fontSize=9, textColor=colors.HexColor('#555555'),
    spaceAfter=4, leading=12, fontName='Helvetica-Oblique',
    leftIndent=10
)

def section(title):
    return [Paragraph(title, h1_style), Spacer(1, 4)]

def h2(title):
    return [Paragraph(title, h2_style)]

def h3(title):
    return [Paragraph(title, h3_style)]

def body(text):
    return [Paragraph(text, body_style)]

def bullet(text):
    return [Paragraph(f"• {text}", bullet_style)]

def hr():
    return [HRFlowable(width="100%", thickness=0.5, color=colors.HexColor('#cccccc'), spaceAfter=6, spaceBefore=6)]

story = []

# ─── TITLE PAGE ────────────────────────────────────────────────────────────────
story.append(Spacer(1, 2*cm))
story.append(Paragraph("Parkinson's Disease", title_style))
story.append(Paragraph("A Comprehensive Medical Overview", subtitle_style))
story.append(HRFlowable(width="60%", thickness=2, color=colors.HexColor('#1a3c6e'), spaceAfter=10))
story.append(Spacer(1, 0.5*cm))

# Quick-ref key facts box
key_facts = [
    ["Prevalence", "~1 in 1,000 general population; ≥1% in >65 yrs"],
    ["Sex ratio", "Men > Women (3:2)"],
    ["Core pathology", "Loss of dopaminergic neurons in substantia nigra"],
    ["Hallmark", "Lewy body (α-synuclein inclusions)"],
    ["Cardinal signs", "Tremor, Rigidity, Akinesia, Postural instability (TRAP)"],
    ["First-line Rx", "Levodopa + Carbidopa"],
    ["Surgical option", "Deep Brain Stimulation (STN or GPi)"],
    ["Progression", "10–15 years; death from aspiration or falls"],
]
kf_table = Table(key_facts, colWidths=[4.5*cm, 12*cm])
kf_table.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (0,-1), colors.HexColor('#e8f0fb')),
    ('BACKGROUND', (1,0), (1,-1), colors.HexColor('#f9fbff')),
    ('TEXTCOLOR', (0,0), (0,-1), colors.HexColor('#1a3c6e')),
    ('FONTNAME', (0,0), (0,-1), 'Helvetica-Bold'),
    ('FONTNAME', (1,0), (1,-1), 'Helvetica'),
    ('FONTSIZE', (0,0), (-1,-1), 9.5),
    ('ROWBACKGROUNDS', (0,0), (-1,-1), [colors.HexColor('#eef3fb'), colors.HexColor('#f9fbff')]),
    ('BOX', (0,0), (-1,-1), 0.8, colors.HexColor('#4a6fa5')),
    ('INNERGRID', (0,0), (-1,-1), 0.3, colors.HexColor('#c0d0ea')),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('TOPPADDING', (0,0), (-1,-1), 5),
    ('BOTTOMPADDING', (0,0), (-1,-1), 5),
    ('LEFTPADDING', (0,0), (-1,-1), 7),
]))
story.append(kf_table)
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("Sources: Goldman-Cecil Medicine (Ch. 378) | Robbins & Kumar Basic Pathology (p. 854) | Bradley and Daroff's Neurology in Clinical Practice", source_style))
story.append(PageBreak())

# ─── 1. OVERVIEW ───────────────────────────────────────────────────────────────
story += section("1. Overview")
story += body("Parkinson disease (PD) is the second most common neurodegenerative disorder after Alzheimer disease. It occurs in approximately 1 in 1,000 in the general population and in at least 1% of people older than 65 years. Men are slightly more often affected than women (3:2). The prevalence is rising with an aging global population — age-adjusted mortality increased 2.4% per year between 1999 and 2019.")
story.append(Spacer(1, 8))

# ─── 2. PATHOPHYSIOLOGY ────────────────────────────────────────────────────────
story += section("2. Pathophysiology")
story += h2("Core Mechanism")
story += body("PD results from the progressive degeneration of pigmented dopaminergic neurons in the substantia nigra pars compacta (SNpc). These neurons project to the striatum (particularly the putamen) via the nigrostriatal pathway. Approximately 60% of these neurons are lost before classic motor symptoms emerge.")
story += body("Loss of dopamine disrupts both the direct and indirect basal ganglia pathways (the cortico-striato-thalamo-cortical loop), leading to deficient thalamocortical drive — the neurological basis of bradykinesia and other motor symptoms.")
story.append(Spacer(1, 4))

story += h2("Lewy Bodies — The Pathological Hallmark")
story += body("The defining histological feature is the Lewy body: a cytoplasmic, eosinophilic, round-to-elongated inclusion in surviving neurons, composed of fine filaments of alpha-synuclein (α-synuclein), neurofilaments, and ubiquitin.")

lewy_data = [
    ["Gross finding", "Pallor of the substantia nigra and locus coeruleus"],
    ["Microscopic", "Loss of pigmented catecholaminergic neurons + gliosis + Lewy bodies"],
    ["Lewy neurites", "Dystrophic neurites also containing aggregated α-synuclein"],
]
lt = Table(lewy_data, colWidths=[4*cm, 12.5*cm])
lt.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (0,-1), colors.HexColor('#fff3e0')),
    ('FONTNAME', (0,0), (0,-1), 'Helvetica-Bold'),
    ('FONTNAME', (1,0), (1,-1), 'Helvetica'),
    ('FONTSIZE', (0,0), (-1,-1), 9.5),
    ('BOX', (0,0), (-1,-1), 0.6, colors.HexColor('#f0a030')),
    ('INNERGRID', (0,0), (-1,-1), 0.3, colors.HexColor('#ffe0a0')),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('TOPPADDING', (0,0), (-1,-1), 5),
    ('BOTTOMPADDING', (0,0), (-1,-1), 5),
    ('LEFTPADDING', (0,0), (-1,-1), 7),
    ('ROWBACKGROUNDS', (0,0), (-1,-1), [colors.HexColor('#fff8ee'), colors.HexColor('#fffdf5')]),
]))
story.append(lt)
story.append(Spacer(1, 6))

story += h2("Molecular Pathogenesis")
for b in [
    "<b>Abnormal α-synuclein aggregation</b> — mutations in SNCA gene or gene duplications/triplications",
    "<b>Defective autophagy/lysosomal degradation</b> — Parkin, DJ-1, PINK1 mutations affect mitochondrial function",
    "<b>Mitochondrial dysfunction & oxidative stress</b> — MPTP toxin inhibits Complex I of the electron transport chain",
    "<b>Prion-like spread</b> — cell-to-cell transmission of toxic α-synuclein via 'permissive templating'",
]:
    story += bullet(b)
story.append(Spacer(1, 8))

# ─── 3. ETIOLOGY & GENETICS ────────────────────────────────────────────────────
story += section("3. Etiology & Genetics")
story += body("Most cases (~90%) are sporadic. Only ~10% have a defined genetic cause. Environmental risk factors include pesticides, heavy metals, and traumatic brain injury.")

gen_data = [
    ["Gene / Mutation", "Inheritance", "Notes"],
    ["LRRK2", "Autosomal Dominant", "Most common cause of autosomal dominant PD"],
    ["α-synuclein (SNCA)", "Autosomal Dominant", "Mutations or duplications/triplications"],
    ["Parkin, DJ-1, PINK1", "Autosomal Recessive", "Typically early-onset parkinsonism"],
    ["GBA1 (Glucocerebrosidase)", "Heterozygous risk", "Associated with faster progression & dementia"],
]
gt = Table(gen_data, colWidths=[5*cm, 5*cm, 6.5*cm])
gt.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3c6e')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTNAME', (0,1), (-1,-1), 'Helvetica'),
    ('FONTSIZE', (0,0), (-1,-1), 9.5),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f0f4fb'), colors.white]),
    ('BOX', (0,0), (-1,-1), 0.8, colors.HexColor('#1a3c6e')),
    ('INNERGRID', (0,0), (-1,-1), 0.3, colors.HexColor('#c0d0ea')),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('TOPPADDING', (0,0), (-1,-1), 5),
    ('BOTTOMPADDING', (0,0), (-1,-1), 5),
    ('LEFTPADDING', (0,0), (-1,-1), 7),
    ('ALIGN', (0,0), (-1,-1), 'LEFT'),
]))
story.append(gt)
story.append(Spacer(1, 8))

# ─── 4. CLINICAL FEATURES ──────────────────────────────────────────────────────
story += section("4. Clinical Features")
story += h2("The Four Cardinal Motor Signs — TRAP")

trap_data = [
    ["Sign", "Description"],
    ["T — Tremor", "Resting 'pill-rolling' tremor at 4–6 Hz; diminishes with movement; only ~20% at onset"],
    ["R — Rigidity", "Cogwheel rigidity (with tremor) or lead pipe rigidity (without); slow passive joint movement"],
    ["A — Akinesia/Bradykinesia", "Masked facies, hypophonia, micrographia, shuffling gait, freezing, sialorrhea, reduced arm swing"],
    ["P — Postural instability", "Stooped posture, festination, propulsion/retropulsion; assessed with pull test"],
]
tt = Table(trap_data, colWidths=[5.5*cm, 11*cm])
tt.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#2e5fa3')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTNAME', (0,1), (0,-1), 'Helvetica-Bold'),
    ('FONTNAME', (1,1), (1,-1), 'Helvetica'),
    ('FONTSIZE', (0,0), (-1,-1), 9.5),
    ('BACKGROUND', (0,1), (0,-1), colors.HexColor('#dce8fb')),
    ('ROWBACKGROUNDS', (1,1), (1,-1), [colors.HexColor('#f5f8ff'), colors.white]),
    ('BOX', (0,0), (-1,-1), 0.8, colors.HexColor('#2e5fa3')),
    ('INNERGRID', (0,0), (-1,-1), 0.3, colors.HexColor('#aabbdd')),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('TOPPADDING', (0,0), (-1,-1), 6),
    ('BOTTOMPADDING', (0,0), (-1,-1), 6),
    ('LEFTPADDING', (0,0), (-1,-1), 8),
]))
story.append(tt)
story.append(Spacer(1, 8))

story += h2("Asymmetric Onset")
story += body("Symptoms typically begin unilaterally (one limb or one side) and this asymmetry often persists into later stages — a distinguishing feature from secondary parkinsonism.")
story.append(Spacer(1, 4))

story += h2("Non-Motor Features")
story += h3("Premotor / Prodromal Phase (years before motor diagnosis):")
for b in [
    "<b>REM sleep behavior disorder (RBD)</b> — strongest early predictor",
    "<b>Anosmia</b> — loss of smell due to early olfactory system involvement",
    "<b>Constipation</b> — enteric nervous system involvement",
    "<b>Depression and anxiety</b>",
    "Restless leg syndrome",
]:
    story += bullet(b)

story.append(Spacer(1, 4))
story += h3("Later Non-Motor Features:")
for b in [
    "Autonomic dysfunction: orthostatic hypotension, urinary urgency, male erectile dysfunction",
    "Cognitive impairment progressing to <b>dementia</b> (up to 80% over disease course)",
    "When dementia occurs within 1 year of motor onset = <b>Lewy body dementia (LBD)</b>",
    "Sensory disturbances, fatigue, pain, hallucinations",
]:
    story += bullet(b)
story.append(Spacer(1, 8))

# ─── 5. DIFFERENTIAL DIAGNOSIS ─────────────────────────────────────────────────
story += section("5. Differential Diagnosis of Parkinsonism")

diff_data = [
    ["Category", "Examples"],
    ["Neurodegenerative", "PSP, MSA, Corticobasal degeneration, DLB, Alzheimer disease"],
    ["Drug-induced", "Neuroleptics, metoclopramide, prochlorperazine, tetrabenazine, reserpine, flunarizine"],
    ["Toxic", "MPTP, manganese, carbon monoxide, mercury"],
    ["Vascular", "Atherosclerosis, amyloid angiopathy"],
    ["Infectious", "Encephalitis lethargica, HIV encephalitis, CJD"],
    ["Structural", "Normal pressure hydrocephalus, brain tumor"],
    ["Metabolic", "Wilson disease (copper), Fahr disease (calcium)"],
]
dt = Table(diff_data, colWidths=[5*cm, 11.5*cm])
dt.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3c6e')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTNAME', (0,1), (0,-1), 'Helvetica-Bold'),
    ('FONTNAME', (1,1), (1,-1), 'Helvetica'),
    ('FONTSIZE', (0,0), (-1,-1), 9.5),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f0f4fb'), colors.white]),
    ('BOX', (0,0), (-1,-1), 0.8, colors.HexColor('#1a3c6e')),
    ('INNERGRID', (0,0), (-1,-1), 0.3, colors.HexColor('#c0d0ea')),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('TOPPADDING', (0,0), (-1,-1), 5),
    ('BOTTOMPADDING', (0,0), (-1,-1), 5),
    ('LEFTPADDING', (0,0), (-1,-1), 7),
]))
story.append(dt)
story.append(Spacer(1, 6))
story += body("<b>Red flags against idiopathic PD:</b> Early falls, absent tremor, symmetric onset, rapid progression, poor levodopa response, early dementia, eye movement abnormalities.")
story.append(Spacer(1, 8))

# ─── 6. DIAGNOSIS ──────────────────────────────────────────────────────────────
story += section("6. Diagnosis")
story += body("PD remains a <b>clinical diagnosis</b> based on the presence of parkinsonism with typical features (asymmetric onset, resting tremor, good levodopa response). There is no definitive biomarker test.")
for b in [
    "<b>Genetic testing</b>: Indicated with strong family history, early-onset disease, or patient interest (LRRK2, GBA1, Parkin, PINK1)",
    "<b>DaTscan / SPECT</b>: Reduced dopamine transporter activity in striatum — helps differentiate from essential tremor",
    "<b>MRI brain</b>: Mainly to exclude secondary causes (vascular, structural)",
    "<b>Levodopa trial</b>: Response is both diagnostic and therapeutic",
]:
    story += bullet(b)
story.append(Spacer(1, 8))

# ─── 7. TREATMENT ──────────────────────────────────────────────────────────────
story += section("7. Treatment")
story += h2("Pharmacological Management")

pharm_data = [
    ["Drug Class", "Examples", "Key Notes"],
    ["Levodopa + Carbidopa", "Sinemet, Duopa", "Gold standard. Most effective for bradykinesia/rigidity. Does NOT slow progression. Causes dyskinesias over time."],
    ["Dopamine Agonists", "Pramipexole, Ropinirole, Rotigotine", "Monotherapy in younger patients to delay levodopa. Risk of impulse control disorders, hallucinations."],
    ["MAO-B Inhibitors", "Selegiline, Rasagiline, Safinamide", "Inhibit dopamine breakdown. Mild symptomatic benefit. Possible neuroprotective properties."],
    ["COMT Inhibitors", "Entacapone, Tolcapone, Opicapone", "Adjuncts to levodopa. Extend levodopa duration. Reduce wearing-off."],
    ["Anticholinergics", "Trihexyphenidyl, Benztropine", "Mainly for tremor. Use cautiously in elderly (cognitive side effects)."],
    ["Amantadine", "Amantadine", "NMDA receptor antagonist. Helpful for levodopa-induced dyskinesias."],
]
pt = Table(pharm_data, colWidths=[4.5*cm, 4*cm, 8*cm])
pt.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3c6e')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTNAME', (0,1), (0,-1), 'Helvetica-Bold'),
    ('FONTNAME', (1,1), (-1,-1), 'Helvetica'),
    ('FONTSIZE', (0,0), (-1,-1), 9),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f0f4fb'), colors.white]),
    ('BOX', (0,0), (-1,-1), 0.8, colors.HexColor('#1a3c6e')),
    ('INNERGRID', (0,0), (-1,-1), 0.3, colors.HexColor('#c0d0ea')),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('TOPPADDING', (0,0), (-1,-1), 5),
    ('BOTTOMPADDING', (0,0), (-1,-1), 5),
    ('LEFTPADDING', (0,0), (-1,-1), 7),
    ('WORDWRAP', (0,0), (-1,-1), True),
]))
story.append(pt)
story.append(Spacer(1, 10))

story += h2("Surgical: Deep Brain Stimulation (DBS)")
story += body("Indicated for patients with advanced PD and motor fluctuations refractory to optimal medical therapy. Electrodes implanted in:")

dbs_data = [
    ["Target", "Advantages", "Disadvantages"],
    ["STN (Subthalamic Nucleus)", "Larger benefit in medication-off state; allows larger dopamine medication reductions", "Higher neuropsychiatric risk; equal or greater cognitive side effects vs GPi"],
    ["GPi (Globus Pallidus Internus)", "Better dyskinesia suppression; better long-term flexibility; safer neuropsychiatric profile; preferred for 'brittle' dyskinesia", "Less medication reduction possible vs STN"],
]
dbst = Table(dbs_data, colWidths=[4.5*cm, 7*cm, 5*cm])
dbst.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#2e5fa3')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTNAME', (0,1), (0,-1), 'Helvetica-Bold'),
    ('FONTNAME', (1,1), (-1,-1), 'Helvetica'),
    ('FONTSIZE', (0,0), (-1,-1), 9),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f0f4fb'), colors.white]),
    ('BOX', (0,0), (-1,-1), 0.8, colors.HexColor('#2e5fa3')),
    ('INNERGRID', (0,0), (-1,-1), 0.3, colors.HexColor('#aabbdd')),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('TOPPADDING', (0,0), (-1,-1), 5),
    ('BOTTOMPADDING', (0,0), (-1,-1), 5),
    ('LEFTPADDING', (0,0), (-1,-1), 7),
]))
story.append(dbst)
story.append(Spacer(1, 6))
story += body("DBS does not halt disease progression but significantly improves quality of life and reduces motor fluctuations.")
story.append(Spacer(1, 6))

story += h2("Non-Pharmacological")
for b in [
    "Physiotherapy — balance training, gait rehabilitation",
    "Speech therapy — voice (LSVT LOUD), swallowing management",
    "Occupational therapy — adaptive strategies for daily living",
    "Exercise — aerobic and resistance training shown to slow functional decline",
    "Dietary adjustments — high-fiber diet for constipation; texture modifications for dysphagia",
]:
    story += bullet(b)
story.append(Spacer(1, 8))

# ─── 8. COMPLICATIONS & PROGNOSIS ──────────────────────────────────────────────
story += section("8. Complications & Prognosis")
story += body("The disease progresses over 10–15 years, eventually causing severe motor disability. Common late-stage problems:")

comp_data = [
    ["Problem Category", "Examples"],
    ["Motor (treatment-resistant)", "Dysarthria, freezing of gait, postural instability, falls"],
    ["Motor (drug-induced)", "Dyskinesias, wearing-off, on-off fluctuations"],
    ["Non-motor", "Dementia, psychosis (hallucinations), depression, autonomic failure"],
    ["Complications", "Aspiration pneumonia (dysphagia in 82% objectively), fractures from falls"],
]
ct = Table(comp_data, colWidths=[6*cm, 10.5*cm])
ct.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#8b0000')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTNAME', (0,1), (0,-1), 'Helvetica-Bold'),
    ('FONTNAME', (1,1), (1,-1), 'Helvetica'),
    ('FONTSIZE', (0,0), (-1,-1), 9.5),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#fff0f0'), colors.white]),
    ('BOX', (0,0), (-1,-1), 0.8, colors.HexColor('#8b0000')),
    ('INNERGRID', (0,0), (-1,-1), 0.3, colors.HexColor('#ffaaaa')),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('TOPPADDING', (0,0), (-1,-1), 5),
    ('BOTTOMPADDING', (0,0), (-1,-1), 5),
    ('LEFTPADDING', (0,0), (-1,-1), 7),
]))
story.append(ct)
story.append(Spacer(1, 6))
story += body("<b>Death</b> often results from <b>aspiration pneumonia</b> (dysphagia present in up to 82% of patients objectively) or trauma from falls caused by postural instability.")
story.append(Spacer(1, 8))

# ─── 9. RECENT EVIDENCE ────────────────────────────────────────────────────────
story += section("9. Recent Research Highlights (2025)")
story += body("A 2025 machine-learning meta-analysis (Romano et al., <i>Nature Communications</i>) identified significant gut microbiome alterations associated with PD, providing further support for the gut-brain axis hypothesis and the relevance of prodromal GI symptoms.")
story += body("A 2025 MDSGene systematic review (Rossi et al., <i>Movement Disorders</i>) refined genotype-phenotype relationships for GBA1 variants in familial PD, with implications for risk stratification and targeted therapies.")
story.append(Spacer(1, 8))

# ─── FOOTER ────────────────────────────────────────────────────────────────────
story += hr()
story.append(Paragraph(
    "Sources: Goldman-Cecil Medicine (Chapter 378) | Robbins & Kumar Basic Pathology (p. 854) | "
    "Bradley and Daroff's Neurology in Clinical Practice | PubMed (PMID: 40335465, 39927608)",
    source_style
))
story.append(Paragraph("Generated by Orris Medical AI | For educational purposes only | June 2026", source_style))

# Build PDF
doc.build(story)
print(f"PDF created: {OUTPUT_PATH}")
Running Command

cd /home/daytona/workspace && python parkinsons_disease.py

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

Parkinsons Disease

PDF Document · PDF

The PDF includes all 9 sections from the overview with nicely formatted tables and color-coded sections:
  1. Overview & Epidemiology
  2. Pathophysiology (core mechanism, Lewy bodies, molecular pathogenesis)
  3. Etiology & Genetics (gene table)
  4. Clinical Features (TRAP table, motor & non-motor)
  5. Differential Diagnosis table
  6. Diagnosis
  7. Treatment (pharmacology table + DBS comparison table)
  8. Complications & Prognosis
  9. Recent Research Highlights (2025)
This is a shared conversation. Sign in to Orris to start your own chat.