difference between dose limits and constraints
dose limits vs dose constraints radiation protection ICRP difference
| Feature | Detail |
|---|---|
| Nature | Legally binding regulatory values |
| Purpose | Set a hard ceiling - doses above this are NOT permitted |
| Set by | National regulatory bodies (based on ICRP recommendations) |
| Applies to | Occupational and public exposures in planned situations only |
| Does NOT apply to | Medical exposures of patients (diagnosis/treatment) |
| Consequence of exceeding | Regulatory violation - unlawful |
| Scope | Cumulative dose from ALL sources combined |
| Feature | Detail |
|---|---|
| Nature | Prospective, non-binding planning tool |
| Purpose | Upper bound used during optimization (ALARA/ALARP) for a single specific source |
| Set by | Operator, employer, or regulatory body - source-specific |
| Applies to | Planned, emergency, and existing exposure situations |
| Significance in medical exposure | Particularly important here since dose limits don't apply to patients |
| Consequence of exceeding | Triggers a review/follow-up action - NOT a legal violation |
| Scope | Single source only (not cumulative from all sources) |
| Dimension | Dose Limit | Dose Constraint |
|---|---|---|
| Binding? | Yes - regulatory/legal | No - operational/planning tool |
| When applied? | Retrospectively checked for compliance | Prospectively used in design/optimization |
| Source scope | All sources combined | Per-source (one source at a time) |
| Role in ICRP framework | 3rd principle: Dose Limitation | 2nd principle: Optimization of Protection |
| Exceeding triggers... | Non-compliance/legal breach | Review and corrective action |
| Applies in emergencies? | No (reference levels used instead) | Yes (adapted form) |
| Applies to patients? | No | Yes (in absence of dose limits) |
i dont know how to report fdg brain pet ct in case of autoimmune encephalitis. give me a detailed list of what i need to look for and wat are the different types of AIE and how to interpret each
FDG PET brain reporting autoimmune encephalitis anti-NMDA LGI1 GABA patterns hypometabolism hypermetabolism
https://pmc.ncbi.nlm.nih.gov/articles/PMC9996532
FDG PET brain autoimmune encephalitis hypermetabolism hypometabolism pattern

This diagnostic image displays 18F-FDG PET (fluorodeoxyglucose positron emission tomography) brain scans from a 60-year-old male presenting with seizures and memory impairment. The figure includes two rows of multi-planar reconstructions: the top row shows absolute metabolic uptake maps (SSP PET), and the bottom row displays corresponding semi-quantitative Z-score maps (SSP Z-Score) comparing the patient to a normative database. Visualized planes include lateral and medial surface views, as well as anterior, posterior, superior, and inferior projections. The Z-score maps utilize a colorimetric scale where cool colors (blue/green) represent hypometabolism and warm colors (red/orange) represent hypermetabolism. Significant bilateral hypometabolism is noted in the lateral and medial prefrontal lobes, posterior cingulate gyrus, precuneus, inferior parietal lobes, and lateral occipital regions, including the primary visual cortex. In contrast, prominent focal hypermetabolism is demonstrated in the bilateral medial temporal lobes. This metabolic pattern—diffuse cortical hypometabolism with localized medial temporal hypermetabolism—is clinically relevant in the evaluation of autoimmune encephalitides, such as LGI1-antibody encephalitis, where PET can detect functional abnormalities even when structural MRI is unremarkable.

Two axial slices of an 18-Fluorodeoxyglucose Positron Emission Tomography (FDG-PET) scan of the brain demonstrating a characteristic metabolic pattern. The primary visual finding is strong, focal hypermetabolism in the bilateral basal ganglia (caudate and putamen), represented by intense red and orange color mapping. In contrast, the surrounding cerebral cortex exhibits diffuse hypometabolism, visualized through a spectrum of yellow, green, and purple shades, indicating significantly lower glucose uptake compared to the basal ganglia. These metabolic findings are indicative of neurological or autoimmune processes, such as anti-GAD antibody-associated encephalitis or chorea-related conditions, where deep gray matter structures show disproportionately high activity against a background of cortical suppression.
| Region | What to Look For |
|---|---|
| Medial temporal lobes (hippocampus, amygdala) | Hypermetabolism (most common finding in AIE) - often asymmetric |
| Basal ganglia (caudate, putamen) | Hypermetabolism - very characteristic, especially in LGI1 |
| Frontal lobes (prefrontal cortex) | Hypometabolism in anti-NMDAR; hypermetabolism in some |
| Parietal lobes (inferior parietal, precuneus) | Hypometabolism, especially in anti-NMDAR |
| Occipital lobes | Hypometabolism, especially "wedge-shaped" in anti-NMDAR |
| Posterior cingulate / precuneus | Hypometabolism (can mimic Alzheimer's pattern - deafferentation from temporal pathology) |
| Cerebellum | Hypermetabolism OR hypometabolism - present in ~70% of AIE cases |
| Thalamus/brainstem | Hypermetabolism can occur, note asymmetry |
| Insular cortex | Occasional involvement in limbic encephalitis |


| AIE Subtype | Hypermetabolic | Hypometabolic | Key Feature |
|---|---|---|---|
| Anti-NMDAR | Frontotemporal (variable) | Parietal, occipital (diffuse), posterior cingulate | Diffuse cortical hypometabolism, "wedge-shaped" occipital |
| Anti-LGI1 | Basal ganglia, MTL (asymmetric) | Frontal | BG hypermetabolism is hallmark; asymmetry |
| Anti-CASPR2 | MTL, basal ganglia | Bilateral occipital | MTL + BG + occipital hypometabolism |
| Anti-GABA-B | Bilateral hippocampus (intense), temporal | Parietal | High hippocampal SUV |
| Anti-GABA-A | Multifocal (seizure-related) | Variable | Correlate with EEG |
| Anti-GAD65 | MTL (mild-moderate) | Cerebellar, temporal | Fewer findings; cerebellar involvement |
| Paraneoplastic (Hu/Ma2) | Bilateral MTL (intense), striatum | Association cortex | Most consistent MTL hypermetabolism |
what is meant by anterior posterior gradient?
FDG PET anteroposterior gradient anti-NMDA encephalitis frontal hypermetabolism occipital hypometabolism
FRONT (Frontal) --> BACK (Parietal/Occipital)
Higher metabolism Lower metabolism
Relatively "hot" Relatively "cold"
| Subtype | Anteroposterior Gradient |
|---|---|
| Anti-NMDAR | Yes - classic, most prominent and diffuse |
| Anti-CASPR2 | Yes - described in all 4 patients in one series |
| Anti-LGI1 | Less prominent; pattern is more about basal ganglia + MTL hypermetabolism |
| GAD65 / GABA-B | Not a defining feature |
In anti-NMDAR encephalitis, the brain is "front-heavy" on FDG PET - the frontal lobe lights up relatively more, while the parietal and occipital lobes go quiet. Front is hot, back is cold - that slope from front to back is the anteroposterior gradient.
what is limbic encephalitis?
limbic encephalitis definition causes clinical features diagnosis treatment 2024
limbic encephalitis MRI hippocampus T2 FLAIR hyperintensity medial temporal

This diagnostic image set consists of four MRI brain sequences—(a) Coronal T2, (b) Axial T2-FLAIR, (c) Apparent Diffusion Coefficient (ADC) map, and (d) Coronal T1 post-contrast—demonstrating characteristic findings of medial temporal lobe encephalitis. Yellow arrows across all sequences highlight pathology in the left hippocampus and medial temporal lobe. The Coronal T2 and Axial FLAIR images show abnormal high signal intensity and mild swelling of the hippocampus and parahippocampal gyrus. The ADC map reveals facilitated diffusion (hyperintensity) in the corresponding region, indicating vasogenic edema rather than acute infarction. The T1 post-contrast image displays patchy parenchymal enhancement within the affected medial temporal structures, suggesting blood-brain barrier breakdown or inflammation. These findings are clinically significant for diagnosing encephalitis patterns, such as those associated with viral infections (including SARS-CoV-2) or autoimmune etiologies, targeting the limbic system.

This composite diagnostic image displays neuroimaging findings in a patient with anti-LGI1 limbic encephalitis. Panels A and B are coronal T2-weighted Fluid-Attenuated Inversion Recovery (T2W FLAIR) MRI scans. Panel A demonstrates abnormal hyperintensities within the left medial temporal lobe and hippocampus, while Panel B reveals moderate hippocampal atrophy, classified as Medial Temporal Lobe Atrophy (MTA) score 3. Panels C and D provide functional assessment via 18F-FDG PET/CT. Panel C (axial view) shows hypometabolism, indicated by a partial absence of radioactivity (cool blue tones) in the left medial temporal cortex and hippocampus compared to the contralateral side. Panel D (coronal view) highlights markedly reduced tracer uptake in the head of the left caudate nucleus. Collectively, these images illustrate the correlation between structural MRI changes (hyperintensity and atrophy) and functional PET deficits (hypometabolism) characteristic of autoimmune limbic encephalitis involving the medial temporal lobes and basal ganglia.

**Imaging Modality:** Magnetic Resonance Imaging (MRI), axial section.
Memory loss + Psychiatric/behavioural change + Seizures - developing subacutely over days to weeks
| Structure Inflamed | Symptom Produced |
|---|---|
| Hippocampus | Short-term memory loss, anterograde amnesia |
| Amygdala | Fear, anxiety, agitation, personality change |
| Parahippocampal cortex | Spatial disorientation, complex partial seizures |
| Cingulate gyrus | Behavioural disturbance, emotional dysregulation |
| Hypothalamus | Hyperthermia, autonomic instability, hypersomnia |
| Antibody | Associated Tumor | Key Feature |
|---|---|---|
| Anti-Hu | SCLC (most common) | Often part of widespread encephalomyelitis |
| Anti-Ma2 | Testicular germ cell tumor (young men) | Upper brainstem involvement, vertical gaze palsy |
| Anti-CV2/CRMP5 | SCLC, thymoma | Also causes chorea, cerebellar ataxia, optic neuritis |
| Anti-amphiphysin | Breast cancer, SCLC | Can coexist with stiff-person syndrome |
| Antibody | Key Features |
|---|---|
| Anti-LGI1 | Older men, FBDS (faciobrachial dystonic seizures), hyponatremia |
| Anti-CASPR2 | Morvan syndrome, autonomic dysfunction, neuromyotonia |
| Anti-GABA-B | Refractory seizures, SCLC association |
| Anti-AMPA | Prominent psychiatric features, lung/breast cancer |
| Anti-NMDAR | Young women, ovarian teratoma, psychiatric onset (technically wider than just limbic) |
| Anti-GAD65 | Non-paraneoplastic, associated with T1DM/autoimmune disorders |


| Condition | How to Differentiate |
|---|---|
| HSV encephalitis | Often unilateral, involves insula + orbitofrontal cortex, restricted diffusion on DWI, fever, PCR positive |
| Creutzfeldt-Jakob disease | Rapidly progressive, "cortical ribboning" on DWI, EEG triphasic waves |
| Alzheimer's disease | Gradual onset over years, not subacute; posterior cortical hypometabolism on PET |
| Psychiatric illness (first-break psychosis) | Normal MRI, EEG, CSF - always exclude LE in new-onset psychosis |
| Status epilepticus | Peri-ictal MRI changes in temporal lobes can mimic LE - correlate with EEG |
What is the difference between paraneoplastic vs autoimmune limbic encephalitis?

| Feature | Paraneoplastic LE | Autoimmune LE |
|---|---|---|
| Antibody target location | Intracellular (inside the neuron - nucleus, cytoplasm) | Cell surface / synaptic (on the neuronal membrane, accessible) |
| Example antibodies | Anti-Hu, Anti-Ma2, Anti-CV2/CRMP5, Anti-amphiphysin, Anti-Yo | Anti-NMDAR, Anti-LGI1, Anti-CASPR2, Anti-GABA-B, Anti-AMPA, Anti-GAD65 |
| Tumor association | Always - by definition, the tumor triggers the immune response | Variable - may or may not have a tumor |
| Common tumors | SCLC (Hu), Testicular germ cell (Ma2), Thymoma (CV2), Ovarian teratoma | SCLC (GABA-B ~50%), Thymoma (LGI1 <20%), Ovarian teratoma (NMDAR ~50% females) |
| Primary immune mechanism | Cytotoxic T-cell mediated - T cells directly kill neurons; antibodies are biomarkers, NOT the effectors | Antibody-mediated - antibodies directly bind, crosslink, internalize, or block receptors → receptor dysfunction |
| Can antibodies cause damage? | No - the intracellular antigen is inaccessible to circulating antibodies | Yes - antibodies directly alter receptor structure and function |
| Neuropathology | Neuronal loss + dense T-cell infiltrates (perforin/granzyme mechanisms) | Moderate inflammation, plasma cells, IgG deposits, minimal neuronal loss |
| Reversibility | Largely irreversible - neurons are destroyed by T cells; structural damage persists | Largely reversible - antibody removal restores receptor function; neurons mostly intact |
| Response to immunotherapy | Poor - removing antibodies doesn't stop T-cell damage; ~1/3 improve with tumor treatment | Good - steroids, IVIG, plasma exchange, rituximab are effective |
| Treatment priority | Treat the tumor first - this is the definitive treatment | Immunotherapy first - tumor treatment secondary if applicable |
| Prognosis | Generally poor; significant residual neurological disability common | Generally good with early treatment; full recovery possible |
| Relapse | Less common (tumor drives the immune response; treat the tumor, stop the trigger) | Can relapse, especially if no tumor found or maintenance immunotherapy stopped |

| Clue | Suggests Paraneoplastic | Suggests Autoimmune |
|---|---|---|
| Age | Older (Hu, CV2 - middle-aged to elderly) | Younger (NMDAR - young women; LGI1 - older men but responds) |
| Known cancer / smoking history | Strong pointer | Less likely |
| Rapid deterioration, not responding to immunotherapy | Paraneoplastic (T-cell damage ongoing) | Autoimmune would usually show some response |
| Multifocal neurological deficits (cerebellar + limbic + PNS) | Paraneoplastic encephalomyelitis (Hu) | Less typical |
| Prominent psychiatric onset | Less typical | Anti-NMDAR (very common) |
| Faciobrachial dystonic seizures | Not typical | Anti-LGI1 (pathognomonic) |
| Autonomic dysfunction + neuromyotonia | Less typical | Anti-CASPR2 (Morvan) |
| Hyponatremia | Not specific | LGI1 (common) |
| Whole-body PET shows avid primary tumor | Strong pointer | May be incidental |
| CSF: heavy pleocytosis, T-cell dominant | Paraneoplastic | Autoimmune usually milder pleocytosis |
show all pet images of AIE
FDG PET LGI1 CASPR2 limbic encephalitis basal ganglia medial temporal hypermetabolism
PET scan encephalitis striatum caudate putamen hypermetabolism cortical hypometabolism
paraneoplastic limbic encephalitis FDG PET mesiotemporal hypermetabolism whole body tumor
FDG PET brain encephalitis surface projection SSP Z-score map temporal frontal occipital metabolism




| Image | Subtype | Dominant PET Finding |
|---|---|---|
| Image 1 | Paraneoplastic (Anti-Hu) | Bilateral MTL hypermetabolism |
| Image 2 | Anti-LGI1 | MTL + frontal hyper; posterior cortex hypo |
| Image 3 | Anti-GAD / chorea-type AIE | Basal ganglia hyper + cortical hypo |
| Image 4 | Anti-NMDAR | Occipital/parietal hypo + variable temporal; resolves with Rx |
Create a quick reference PET pattern checklist for reporting each AIE subtype
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace/aie-checklist
mkdir -p /tmp/workspace/aie-checklist && cat > /tmp/workspace/aie-checklist/generate_checklist.py << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.units import cm, mm from reportlab.platypus import (SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer, HRFlowable) from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_RIGHT from reportlab.platypus import KeepTogether from reportlab.graphics.shapes import Drawing, Rect, String, Line from reportlab.graphics import renderPDF W, H = A4 # 595.27 x 841.89 pts # ── Color palette ────────────────────────────────────────────────────────────── NAVY = colors.HexColor('#1A2E4A') STEEL = colors.HexColor('#2C5F8A') TEAL = colors.HexColor('#1A7A7A') ORANGE = colors.HexColor('#E05A00') PURPLE = colors.HexColor('#5B2D8E') GREEN = colors.HexColor('#1A7A3A') CRIMSON = colors.HexColor('#8B0000') GOLD = colors.HexColor('#B8860B') SLATE = colors.HexColor('#4A5568') LIGHT_BG = colors.HexColor('#F0F4F8') WHITE = colors.white PALE_GOLD = colors.HexColor('#FFF8E7') PALE_TEAL = colors.HexColor('#E6F4F4') PALE_PURP = colors.HexColor('#F3EEFF') PALE_ORAN = colors.HexColor('#FFF0E6') PALE_CRIM = colors.HexColor('#FFF0F0') PALE_GREE = colors.HexColor('#EFF8F0') PALE_BLUE = colors.HexColor('#EEF4FF') PALE_NAVY = colors.HexColor('#E8EDF4') DIVIDER = colors.HexColor('#CBD5E0') styles = getSampleStyleSheet() def S(name, **kw): """Quick paragraph style factory""" base = styles['Normal'] ps = ParagraphStyle(name, parent=base, **kw) return ps title_style = S('Title', fontSize=16, fontName='Helvetica-Bold', textColor=NAVY, spaceAfter=2, leading=20) subtitle_style = S('Subtitle', fontSize=9, fontName='Helvetica', textColor=SLATE, spaceAfter=6, leading=12) section_hdr = S('SecHdr', fontSize=8.5, fontName='Helvetica-Bold', textColor=WHITE, spaceAfter=0, leading=11, alignment=TA_LEFT) body_sm = S('BodySm', fontSize=7.5, fontName='Helvetica', textColor=colors.black, leading=10) body_bold = S('BodyBold', fontSize=7.5, fontName='Helvetica-Bold', textColor=colors.black, leading=10) caption = S('Cap', fontSize=7, fontName='Helvetica-Oblique', textColor=SLATE, leading=9) check_style = S('Chk', fontSize=7.5, fontName='Helvetica', leading=10) footer_style = S('Ftr', fontSize=6.5, fontName='Helvetica-Oblique', textColor=SLATE, alignment=TA_CENTER) label_style = S('Lbl', fontSize=7, fontName='Helvetica-Bold', textColor=WHITE, leading=9, alignment=TA_CENTER) CHECKBOX = "☐" HYPER = "▲ HYPER" HYPO = "▼ HYPO" NORMAL = "– NORMAL" VAR = "~ VARIABLE" def cb(text, bold=False): st = body_bold if bold else body_sm return Paragraph(f"{CHECKBOX} {text}", st) def region_row(region, finding, note=""): icon = "" if "HYPER" in finding: icon = "🔴" elif "HYPO" in finding: icon = "🔵" elif "VARIABLE" in finding: icon = "🟡" else: icon = "⚪" note_txt = f" <i><font color='#666666' size='6.5'>{note}</font></i>" if note else "" return [Paragraph(f"{CHECKBOX} {region}", body_sm), Paragraph(f"<b>{finding}</b>{note_txt}", body_sm)] def make_subtype_table(title, color, pale, rows, clinical_note, abbrev): """Build one subtype block as a table""" # Header row header = Table( [[Paragraph(f" {abbrev}", label_style), Paragraph(f" {title}", section_hdr), Paragraph(f" {clinical_note}", caption)]], colWidths=[1.4*cm, 8.0*cm, 7.4*cm] ) header.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), color), ('VALIGN', (0,0), (-1,0), 'MIDDLE'), ('TOPPADDING', (0,0), (-1,0), 4), ('BOTTOMPADDING', (0,0), (-1,0), 4), ('LEFTPADDING', (0,0), (-1,0), 6), ('GRID', (0,0),(-1,0), 0.3, colors.white), ])) # Data rows data = [] for r in rows: data.append(r) tbl = Table(data, colWidths=[8.5*cm, 8.3*cm]) tbl.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), pale), ('TOPPADDING', (0,0),(-1,-1), 3), ('BOTTOMPADDING', (0,0),(-1,-1), 3), ('LEFTPADDING', (0,0),(-1,-1), 8), ('RIGHTPADDING', (0,0),(-1,-1), 6), ('ROWBACKGROUNDS',(0,0),(-1,-1), [pale, colors.white]), ('GRID', (0,0),(-1,-1), 0.2, DIVIDER), ('VALIGN',(0,0),(-1,-1),'MIDDLE'), ])) return KeepTogether([header, tbl, Spacer(1, 4)]) # ── Build document ───────────────────────────────────────────────────────────── doc = SimpleDocTemplate( '/tmp/workspace/aie-checklist/AIE_FDG_PET_Checklist.pdf', pagesize=A4, leftMargin=1.5*cm, rightMargin=1.5*cm, topMargin=1.5*cm, bottomMargin=1.5*cm, title="FDG PET/CT Brain – AIE Reporting Checklist", author="Orris Clinical AI" ) story = [] # ── TITLE BLOCK ──────────────────────────────────────────────────────────────── title_tbl = Table( [[Paragraph("FDG Brain PET/CT", title_style), Paragraph("Autoimmune Encephalitis – Reporting Checklist", subtitle_style)]], colWidths=[7*cm, 9.8*cm] ) title_tbl.setStyle(TableStyle([ ('VALIGN',(0,0),(-1,-1),'BOTTOM'), ('LEFTPADDING',(0,0),(-1,-1),0), ('BOTTOMPADDING',(0,0),(-1,-1),0), ])) story.append(title_tbl) story.append(HRFlowable(width='100%', thickness=2, color=NAVY, spaceAfter=6)) # ── PRE-REPORT CHECKLIST ─────────────────────────────────────────────────────── pre_hdr = Table([[Paragraph(" PRE-REPORT CHECKLIST", section_hdr)]], colWidths=[16.8*cm]) pre_hdr.setStyle(TableStyle([ ('BACKGROUND',(0,0),(-1,-1), NAVY), ('TOPPADDING',(0,0),(-1,-1), 4), ('BOTTOMPADDING',(0,0),(-1,-1), 4), ('LEFTPADDING',(0,0),(-1,-1), 6), ])) pre_data = [ [cb("Patient age & sex noted (guides differential)"), cb("Blood glucose at injection < 150–180 mg/dL")], [cb("Subacute clinical onset confirmed (days–weeks)"), cb("Recent seizure activity checked (EEG timing)")], [cb("Known antibody status recorded if available"), cb("Sedation / intubation noted (can cause diffuse hypometabolism)")], [cb("Time from symptom onset to scan noted"), cb("CT component reviewed for occult malignancy / structural lesion")], ] pre_tbl = Table(pre_data, colWidths=[8.4*cm, 8.4*cm]) pre_tbl.setStyle(TableStyle([ ('BACKGROUND',(0,0),(-1,-1), PALE_NAVY), ('TOPPADDING',(0,0),(-1,-1), 3), ('BOTTOMPADDING',(0,0),(-1,-1), 3), ('LEFTPADDING',(0,0),(-1,-1), 6), ('GRID',(0,0),(-1,-1), 0.2, DIVIDER), ('VALIGN',(0,0),(-1,-1),'MIDDLE'), ('ROWBACKGROUNDS',(0,0),(-1,-1),[PALE_NAVY, colors.white]), ])) story.append(KeepTogether([pre_hdr, pre_tbl, Spacer(1,5)])) # ── LEGEND ───────────────────────────────────────────────────────────────────── legend_data = [[ Paragraph("🔴 ▲ HYPER = Hypermetabolism (increased FDG uptake vs background)", body_sm), Paragraph("🔵 ▼ HYPO = Hypometabolism (decreased FDG uptake vs background)", body_sm), Paragraph("🟡 ~ VARIABLE", body_sm), Paragraph("⚪ – NORMAL / not a defining feature", body_sm), ]] legend_tbl = Table(legend_data, colWidths=[5.2*cm, 5.2*cm, 2.8*cm, 3.6*cm]) legend_tbl.setStyle(TableStyle([ ('BACKGROUND',(0,0),(-1,-1), colors.HexColor('#F7FAFC')), ('BOX',(0,0),(-1,-1), 0.5, DIVIDER), ('TOPPADDING',(0,0),(-1,-1), 3), ('BOTTOMPADDING',(0,0),(-1,-1), 3), ('LEFTPADDING',(0,0),(-1,-1), 5), ('VALIGN',(0,0),(-1,-1),'MIDDLE'), ])) story.append(legend_tbl) story.append(Spacer(1, 5)) # ══════════════════════════════════════════════════════════════════════════════ # SUBTYPE BLOCKS # ══════════════════════════════════════════════════════════════════════════════ # 1. Anti-NMDAR story.append(make_subtype_table( title = "Anti-NMDAR Encephalitis", color = STEEL, pale = PALE_BLUE, abbrev = "NMDAR", clinical_note = "Young women | Ovarian teratoma | Psychiatric onset → seizures → autonomic dysfunction", rows = [ region_row("Occipital lobes", HYPO, '"Wedge-shaped" bilateral hypometabolism – MOST characteristic'), region_row("Parietal lobes / Precuneus", HYPO, "Diffuse; often simultaneous with occipital dropout"), region_row("Posterior cingulate cortex", HYPO, "Deafferentation pattern – can mimic Alzheimer's"), region_row("Frontal lobes", VAR, "Relatively preserved or mildly hyper → creates anteroposterior gradient"), region_row("Temporal lobes (lateral)", HYPO, "Variable; less consistent than occipital"), region_row("Medial temporal lobes (MTL)", VAR, "Less prominent than in LGI1/CASPR2; may be hypo or normal"), region_row("Basal ganglia", VAR, "May show relative hypermetabolism against cortical background"), region_row("Cerebellum", NORMAL, "Usually spared"), [Paragraph("☑ Overall pattern", body_bold), Paragraph("<b>ANTEROPOSTERIOR GRADIENT</b> – front warm, back cold. Diffuse cortical hypometabolism " "is the defining feature. MRI often NORMAL – PET is especially valuable here.", body_sm)], ] )) # 2. Anti-LGI1 story.append(make_subtype_table( title = "Anti-LGI1 Encephalitis", color = TEAL, pale = PALE_TEAL, abbrev = "LGI1", clinical_note = "Older men (~57y) | Faciobrachial dystonic seizures (FBDS) | Hyponatremia | Thymoma <20%", rows = [ region_row("Basal ganglia (caudate + putamen)", HYPER, "HALLMARK – present in 87–100%; often bilateral"), region_row("Medial temporal lobes (hippocampus)", HYPER, "75–82%; ASYMMETRIC in many cases"), region_row("Temporal lobes (lateral)", HYPER, "Common accompaniment"), region_row("Cerebellum", HYPER, "Frequent; may be hypermetabolic"), region_row("Frontal lobes", HYPO, "Frontal hypometabolism as counterpart to limbic hypermetabolism"), region_row("Posterior cingulate / Parietal", HYPO, "Variable, less prominent than in NMDAR"), [Paragraph("☑ Overall pattern", body_bold), Paragraph("<b>Bilateral (asymmetric) MTL + Basal Ganglia HYPER</b> with frontal HYPO. " "Most 'classic' AIE pattern. Asymmetry is a useful clue.", body_sm)], ] )) # 3. Anti-CASPR2 story.append(make_subtype_table( title = "Anti-CASPR2 Encephalitis", color = PURPLE, pale = PALE_PURP, abbrev = "CASPR2", clinical_note = "Middle-aged men | Morvan syndrome | Autonomic dysfunction | Neuromyotonia | Thymoma", rows = [ region_row("Medial temporal lobes", HYPER, "Most frequent – present in ~100% of cases"), region_row("Basal ganglia", HYPER, "100%; similar to LGI1 pattern"), region_row("Bilateral occipital lobes", HYPO, "75% – MORE prominent than in LGI1"), region_row("Frontal lobes", HYPO, "Variable"), region_row("Cerebellum", HYPO, "Can occur – cerebellar hypometabolism"), [Paragraph("☑ Overall pattern", body_bold), Paragraph("<b>MTL + BG HYPER</b> (like LGI1) <b>BUT with prominent bilateral occipital HYPO</b>. " "Anteroposterior gradient also seen. Consider CASPR2 when occipital dropout is striking.", body_sm)], ] )) # 4. Anti-GABA-B story.append(make_subtype_table( title = "Anti-GABA-B Receptor Encephalitis", color = ORANGE, pale = PALE_ORAN, abbrev = "GABA-B", clinical_note = "SCLC in ~50% | Refractory seizures as dominant feature | Middle-aged to elderly", rows = [ region_row("Bilateral hippocampus / amygdala", HYPER, "INTENSE – higher SUVs than other AIE subtypes"), region_row("Temporal lobes", HYPER, "Medial + lateral temporal hypermetabolism"), region_row("Left supramarginal gyrus", HYPO, "Statistically significant vs other subtypes"), region_row("Right parietal lobe", HYPO, "Significant in GABA-B vs anti-Hu group"), region_row("Basal ganglia", NORMAL, "Less prominent than LGI1"), [Paragraph("☑ Overall pattern", body_bold), Paragraph("<b>Intense bilateral hippocampal HYPER</b> (highest SUV of all AIE subtypes) " "+ parietal HYPO. Think GABA-B when seizures are the dominant symptom " "and hippocampal uptake is strikingly bright.", body_sm)], ] )) # 5. Anti-GAD65 story.append(make_subtype_table( title = "Anti-GAD65 Encephalitis", color = GREEN, pale = PALE_GREE, abbrev = "GAD65", clinical_note = "Non-paraneoplastic | Young women | Associated T1DM / autoimmune | Stiff-person / cerebellar ataxia", rows = [ region_row("Medial temporal lobes", HYPER, "54% – less consistent than LGI1/CASPR2"), region_row("Basal ganglia", HYPER, "~10% – less prominent"), region_row("Cerebellum", HYPO, "CHARACTERISTIC when cerebellar ataxia is present"), region_row("Temporal lobes", HYPO, "Temporal hypometabolism can occur"), region_row("Cortex (general)", HYPO, "~35% – mild and less dramatic than NMDAR"), [Paragraph("☑ Overall pattern", body_bold), Paragraph("<b>Fewest PET abnormalities of all AIE subtypes.</b> " "MTL hypermetabolism present but mild. Cerebellar hypometabolism is " "the key differentiating feature when present.", body_sm)], ] )) # 6. Paraneoplastic (Anti-Hu / Anti-Ma2) story.append(make_subtype_table( title = "Paraneoplastic LE – Anti-Hu / Anti-Ma2 (Intracellular Antibodies)", color = CRIMSON, pale = PALE_CRIM, abbrev = "PLE", clinical_note = "Anti-Hu: SCLC | Anti-Ma2: Testicular GCT (young men) | T-cell mediated | Poor Rx response", rows = [ region_row("Bilateral medial temporal lobes", HYPER, "MOST CONSISTENT & INTENSE of all LE types; often striking"), region_row("Striatum / basal ganglia", HYPER, "Common accompaniment"), region_row("Cerebellum", HYPER, "Can be hypermetabolic"), region_row("Brainstem", HYPER, "Especially anti-Ma2; upper brainstem"), region_row("Association cortices", HYPO, "Posterior cingulate, precuneus, frontal – variable"), region_row("Whole-body PET/CT", "⚠ MANDATORY", "Screen for primary tumor in ALL cases"), [Paragraph("☑ Overall pattern", body_bold), Paragraph("<b>Bilateral MTL HYPER is most intense and consistent here vs surface-Ab LE.</b> " "Key distinction: intracellular Ab = T-cell mediated = irreversible. " "Always search for primary tumor on whole-body scan.", body_sm)], ] )) # ── GENERAL PITFALLS BOX ──────────────────────────────────────────────────────── pit_hdr = Table([[Paragraph(" ⚠ PITFALLS & IMPORTANT NOTES", section_hdr)]], colWidths=[16.8*cm]) pit_hdr.setStyle(TableStyle([ ('BACKGROUND',(0,0),(-1,-1), GOLD), ('TOPPADDING',(0,0),(-1,-1), 4), ('BOTTOMPADDING',(0,0),(-1,-1), 4), ('LEFTPADDING',(0,0),(-1,-1), 6), ])) pitfalls = [ [cb("Peri-ictal scan: Seizure within hours → focal HYPERMETABOLISM at seizure focus – always check EEG timing before calling it AIE"), cb("Recovery phase: Mesiotemporal HYPERMETABOLISM may convert to HYPOMETABOLISM = irreversible post-inflammatory damage (NOT treatment failure)")], [cb("MRI often normal (especially anti-NMDAR): Negative MRI does NOT exclude AIE – PET detects abnormality in 78–100% vs MRI 42–63%"), cb("Posterior cingulate HYPO: Can mimic Alzheimer's disease due to deafferentation – always correlate with clinical context and age of onset")], [cb("Seronegative AIE: PET still abnormal in ~93%; frontal/temporal hypermetabolism supports diagnosis even without antibody confirmation"), cb("Blood glucose: Hyperglycaemia redistributes FDG away from brain → artefactual cortical hypometabolism – note glucose at injection")], [cb("Sedation/ventilation: Diffuse cortical hypometabolism – state of consciousness must be documented"), cb("Use SSP / Z-score maps: Voxel-based analysis detects extra-limbic hypermetabolism missed on visual axial reading alone")], ] pit_tbl = Table(pitfalls, colWidths=[8.4*cm, 8.4*cm]) pit_tbl.setStyle(TableStyle([ ('BACKGROUND',(0,0),(-1,-1), PALE_GOLD), ('TOPPADDING',(0,0),(-1,-1), 3), ('BOTTOMPADDING',(0,0),(-1,-1), 3), ('LEFTPADDING',(0,0),(-1,-1), 6), ('GRID',(0,0),(-1,-1), 0.2, DIVIDER), ('VALIGN',(0,0),(-1,-1),'MIDDLE'), ('ROWBACKGROUNDS',(0,0),(-1,-1),[PALE_GOLD, colors.white]), ])) story.append(KeepTogether([pit_hdr, pit_tbl, Spacer(1,5)])) # ── QUICK REFERENCE SUMMARY TABLE ────────────────────────────────────────────── sum_hdr = Table([[Paragraph(" QUICK REFERENCE SUMMARY", section_hdr)]], colWidths=[16.8*cm]) sum_hdr.setStyle(TableStyle([ ('BACKGROUND',(0,0),(-1,-1), SLATE), ('TOPPADDING',(0,0),(-1,-1), 4), ('BOTTOMPADDING',(0,0),(-1,-1), 4), ('LEFTPADDING',(0,0),(-1,-1), 6), ])) sum_col_hdr = [ Paragraph("<b>Subtype</b>", body_bold), Paragraph("<b>Hypermetabolic</b>", body_bold), Paragraph("<b>Hypometabolic</b>", body_bold), Paragraph("<b>Key Differentiator</b>", body_bold), ] sum_rows = [ sum_col_hdr, [Paragraph("Anti-NMDAR", S('X', parent=body_sm, textColor=STEEL, fontName='Helvetica-Bold')), Paragraph("Frontal (relative)", body_sm), Paragraph("Occipital, Parietal, Post.Cing.", body_sm), Paragraph("Diffuse cortical HYPO; wedge occipital; MRI often normal", caption)], [Paragraph("Anti-LGI1", S('X', parent=body_sm, textColor=TEAL, fontName='Helvetica-Bold')), Paragraph("Basal ganglia ✦, MTL (asymmetric)", body_sm), Paragraph("Frontal lobes", body_sm), Paragraph("BG hypermetabolism virtually universal; asymmetry is key", caption)], [Paragraph("Anti-CASPR2", S('X', parent=body_sm, textColor=PURPLE, fontName='Helvetica-Bold')), Paragraph("MTL, Basal ganglia", body_sm), Paragraph("Bilateral occipital ✦, Cerebellar", body_sm), Paragraph("Like LGI1 but prominent occipital HYPO; A-P gradient", caption)], [Paragraph("Anti-GABA-B", S('X', parent=body_sm, textColor=ORANGE, fontName='Helvetica-Bold')), Paragraph("Hippocampus (intense ✦)", body_sm), Paragraph("Parietal, Supramarginal gyrus", body_sm), Paragraph("Highest hippocampal SUV; refractory seizures; look for SCLC", caption)], [Paragraph("Anti-GAD65", S('X', parent=body_sm, textColor=GREEN, fontName='Helvetica-Bold')), Paragraph("MTL (mild)", body_sm), Paragraph("Cerebellum ✦, Temporal", body_sm), Paragraph("Fewest findings; cerebellar HYPO when ataxia present", caption)], [Paragraph("Paraneoplastic\n(Hu/Ma2)", S('X', parent=body_sm, textColor=CRIMSON, fontName='Helvetica-Bold')), Paragraph("Bilateral MTL (most intense ✦)", body_sm), Paragraph("Association cortices", body_sm), Paragraph("Most striking MTL HYPER; whole-body PET mandatory for tumor", caption)], ] sum_tbl = Table(sum_rows, colWidths=[2.6*cm, 3.6*cm, 4.2*cm, 6.4*cm]) sum_tbl.setStyle(TableStyle([ ('BACKGROUND',(0,0),(-1,0), colors.HexColor('#4A5568')), ('TEXTCOLOR',(0,0),(-1,0), WHITE), ('ROWBACKGROUNDS',(0,1),(-1,-1),[colors.HexColor('#F7FAFC'), WHITE]), ('TOPPADDING',(0,0),(-1,-1), 3), ('BOTTOMPADDING',(0,0),(-1,-1), 3), ('LEFTPADDING',(0,0),(-1,-1), 5), ('GRID',(0,0),(-1,-1), 0.3, DIVIDER), ('VALIGN',(0,0),(-1,-1),'MIDDLE'), ('LINEBELOW',(0,0),(-1,0), 1, SLATE), ])) story.append(KeepTogether([sum_hdr, sum_tbl, Spacer(1,5)])) # ── FOOTER ───────────────────────────────────────────────────────────────────── story.append(HRFlowable(width='100%', thickness=0.5, color=DIVIDER, spaceBefore=4, spaceAfter=3)) story.append(Paragraph( "Sources: Bradley & Daroff's Neurology in Clinical Practice; Harrison's Principles of Internal Medicine 22e; " "Solnes et al. J Nucl Med 2017; Baumgartner et al. 2013; Brain Metabolic Alterations in AE (MDPI 2023) | " "Generated by Orris Clinical AI – For educational/reporting reference use only", footer_style )) doc.build(story) print("PDF created successfully.") PYEOF python3 /tmp/workspace/aie-checklist/generate_checklist.py
~/aie-checklist/generate_checklist.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/aie-checklist/generate_checklist.py'
python3 /tmp/workspace/aie-checklist/generate_checklist.py
AIE FDG PET Checklist
PDF Document · PDF
| Subtype | Colour |
|---|---|
| Anti-NMDAR | Blue |
| Anti-LGI1 | Teal |
| Anti-CASPR2 | Purple |
| Anti-GABA-B | Orange |
| Anti-GAD65 | Green |
| Paraneoplastic (Hu/Ma2) | Crimson |
1-5 questions answers please
What topic should the Q&A cover? · What format do you want?
previous questions which were asked to select before these questions