நீங்க இந்த Manipal book-ஐ மட்டும் வைத்து seminar எடுக்கணும்னா, Page 391 & 394-ஐ அடிப்படையாக வைத்து 10–15 mark level seminar notes-ஐ �நான் தயாரித்து தருகிறேன். Manipal book la irutha matu iruthu ado book la irukamari ya kudu definition, cause,classification risk factor pathophysiology, clinical features, investigation, diagnosis, Treatment, complications manipal matu ado ne varaathvathu kudutha ma enna cgpt pathu adotheya nu kepaga okva only book manipal. But konjam enaku puriyira mathiri solu piwer point edit pandra thu kudu
PANCREATITIS
mkdir -p /tmp/workspace/pancreatitis-seminar && ls /tmp/workspace/
~/pancreatitis-seminar/create_ppt.py
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN
from pptx.util import Inches, Pt
import copy
# Color palette - Medical professional theme
DARK_BLUE = RGBColor(0x0D, 0x2B, 0x55) # Deep navy
MID_BLUE = RGBColor(0x1A, 0x5C, 0x8A) # Medium blue
LIGHT_BLUE = RGBColor(0x2E, 0x86, 0xC1) # Light blue
ACCENT_ORANGE = RGBColor(0xE6, 0x7E, 0x22) # Warm orange accent
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
LIGHT_GRAY = RGBColor(0xF2, 0xF4, 0xF4)
DARK_TEXT = RGBColor(0x17, 0x20, 0x2A)
GREEN = RGBColor(0x1E, 0x8B, 0x4C)
RED = RGBColor(0xC0, 0x39, 0x2B)
YELLOW = RGBColor(0xF3, 0x9C, 0x12)
prs = Presentation()
prs.slide_width = Inches(13.33)
prs.slide_height = Inches(7.5)
BLANK_LAYOUT = prs.slide_layouts[6] # Blank layout
def add_rect(slide, left, top, width, height, fill_color=None, line_color=None, line_width=None):
shape = slide.shapes.add_shape(
1, # MSO_SHAPE_TYPE.RECTANGLE
Inches(left), Inches(top), Inches(width), Inches(height)
)
if fill_color:
shape.fill.solid()
shape.fill.fore_color.rgb = fill_color
else:
shape.fill.background()
if line_color:
shape.line.color.rgb = line_color
if line_width:
shape.line.width = Pt(line_width)
else:
shape.line.fill.background()
return shape
def add_textbox(slide, text, left, top, width, height,
font_size=18, bold=False, color=WHITE,
align=PP_ALIGN.LEFT, italic=False, wrap=True):
txBox = slide.shapes.add_textbox(
Inches(left), Inches(top), Inches(width), Inches(height)
)
tf = txBox.text_frame
tf.word_wrap = wrap
p = tf.paragraphs[0]
p.alignment = align
run = p.add_run()
run.text = text
run.font.size = Pt(font_size)
run.font.bold = bold
run.font.color.rgb = color
run.font.italic = italic
return txBox
def add_bullet_textbox(slide, lines, left, top, width, height,
font_size=15, title_size=16, color=DARK_TEXT,
bullet_color=LIGHT_BLUE, bg_color=None,
title=None, title_color=DARK_BLUE):
if bg_color:
add_rect(slide, left, top, width, height, fill_color=bg_color)
from pptx.util import Inches, Pt
from pptx.oxml.ns import qn
from lxml import etree
txBox = slide.shapes.add_textbox(
Inches(left), Inches(top), Inches(width), Inches(height)
)
tf = txBox.text_frame
tf.word_wrap = True
first = True
for i, line in enumerate(lines):
if first:
p = tf.paragraphs[0]
first = False
else:
p = tf.add_paragraph()
p.space_before = Pt(2)
p.space_after = Pt(2)
if line.startswith("##"):
run = p.add_run()
run.text = line[2:].strip()
run.font.size = Pt(title_size)
run.font.bold = True
run.font.color.rgb = title_color
elif line.startswith("#"):
run = p.add_run()
run.text = line[1:].strip()
run.font.size = Pt(font_size + 1)
run.font.bold = True
run.font.color.rgb = title_color
elif line.startswith("•"):
p.level = 0
run = p.add_run()
run.text = line
run.font.size = Pt(font_size)
run.font.color.rgb = color
elif line.startswith(" -"):
p.level = 1
run = p.add_run()
run.text = " " + line.strip()
run.font.size = Pt(font_size - 1)
run.font.color.rgb = color
else:
run = p.add_run()
run.text = line
run.font.size = Pt(font_size)
run.font.color.rgb = color
return txBox
# ============================================================
# SLIDE 1: TITLE SLIDE
# ============================================================
slide = prs.slides.add_slide(BLANK_LAYOUT)
# Dark background
add_rect(slide, 0, 0, 13.33, 7.5, fill_color=DARK_BLUE)
# Decorative accent bar
add_rect(slide, 0, 0, 13.33, 0.12, fill_color=ACCENT_ORANGE)
add_rect(slide, 0, 7.38, 13.33, 0.12, fill_color=ACCENT_ORANGE)
# Left accent line
add_rect(slide, 1.0, 1.5, 0.08, 4.5, fill_color=ACCENT_ORANGE)
# Title
add_textbox(slide, "PANCREATITIS", 1.3, 1.8, 10.5, 1.5,
font_size=54, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
# Subtitle
add_textbox(slide, "Acute & Chronic — Seminar Notes", 1.3, 3.4, 10.0, 0.7,
font_size=26, bold=False, color=RGBColor(0xAE, 0xD6, 0xF1), align=PP_ALIGN.LEFT)
# Topics line
add_textbox(slide, "Definition • Etiology • Classification • Pathophysiology\nClinical Features • Investigations • Treatment • Complications",
1.3, 4.3, 11.0, 1.2, font_size=16, color=RGBColor(0xAE, 0xD6, 0xF1),
align=PP_ALIGN.LEFT)
# Source note
add_textbox(slide, "Source: Robbins Basic Pathology | Goldman-Cecil Medicine | Schwartz Surgery",
1.3, 6.5, 11.0, 0.6, font_size=12, color=RGBColor(0x7F, 0x8C, 0x8D),
align=PP_ALIGN.LEFT, italic=True)
# ============================================================
# SLIDE 2: DEFINITION & OVERVIEW
# ============================================================
slide = prs.slides.add_slide(BLANK_LAYOUT)
add_rect(slide, 0, 0, 13.33, 7.5, fill_color=LIGHT_GRAY)
add_rect(slide, 0, 0, 13.33, 1.1, fill_color=DARK_BLUE)
add_rect(slide, 0, 1.1, 0.08, 6.4, fill_color=ACCENT_ORANGE)
add_textbox(slide, "DEFINITION & OVERVIEW", 0.3, 0.2, 12.0, 0.75,
font_size=28, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
# Acute definition box
add_rect(slide, 0.3, 1.3, 12.5, 1.45, fill_color=WHITE, line_color=LIGHT_BLUE, line_width=1.5)
add_rect(slide, 0.3, 1.3, 0.18, 1.45, fill_color=LIGHT_BLUE)
add_textbox(slide, "ACUTE PANCREATITIS", 0.65, 1.38, 5.0, 0.45, font_size=15, bold=True, color=DARK_BLUE)
add_textbox(slide, "A reversible inflammatory disorder of the pancreas varying in severity from focal edema and fat necrosis to widespread hemorrhagic necrosis. Annual incidence: 33–74 per 100,000 globally. Overall mortality: ~5%.",
0.65, 1.78, 11.8, 0.85, font_size=14, color=DARK_TEXT)
# Chronic definition box
add_rect(slide, 0.3, 2.9, 12.5, 1.45, fill_color=WHITE, line_color=MID_BLUE, line_width=1.5)
add_rect(slide, 0.3, 2.9, 0.18, 1.45, fill_color=MID_BLUE)
add_textbox(slide, "CHRONIC PANCREATITIS", 0.65, 2.98, 5.0, 0.45, font_size=15, bold=True, color=DARK_BLUE)
add_textbox(slide, "Characterized by IRREVERSIBLE parenchymal damage and scar formation leading to exocrine insufficiency (malabsorption) and endocrine failure (diabetes mellitus).",
0.65, 3.38, 11.8, 0.85, font_size=14, color=DARK_TEXT)
# Key concept box
add_rect(slide, 0.3, 4.5, 12.5, 1.2, fill_color=RGBColor(0xEB, 0xF5, 0xFB), line_color=ACCENT_ORANGE, line_width=1.5)
add_textbox(slide, "⚑ KEY CONCEPT:", 0.55, 4.58, 3.0, 0.4, font_size=14, bold=True, color=ACCENT_ORANGE)
add_textbox(slide, "Acute and chronic pancreatitis share similar pathogenic mechanisms. Recurrent acute pancreatitis can progress to chronic pancreatitis. Both forms primarily caused by gallstones and alcohol abuse.",
0.55, 4.98, 12.0, 0.6, font_size=13, color=DARK_TEXT)
add_textbox(slide, "Robbins Basic Pathology 10e | Goldman-Cecil Medicine", 0.3, 6.9, 12.0, 0.4,
font_size=10, italic=True, color=RGBColor(0x7F, 0x8C, 0x8D))
# ============================================================
# SLIDE 3: ETIOLOGY / CAUSES
# ============================================================
slide = prs.slides.add_slide(BLANK_LAYOUT)
add_rect(slide, 0, 0, 13.33, 7.5, fill_color=LIGHT_GRAY)
add_rect(slide, 0, 0, 13.33, 1.1, fill_color=DARK_BLUE)
add_rect(slide, 0, 1.1, 0.08, 6.4, fill_color=ACCENT_ORANGE)
add_textbox(slide, "ETIOLOGY / CAUSES", 0.3, 0.2, 12.0, 0.75,
font_size=28, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
# Most common causes banner
add_rect(slide, 0.3, 1.2, 12.5, 0.5, fill_color=ACCENT_ORANGE)
add_textbox(slide, "MOST COMMON: Gallstones (40–50%) + Alcohol (25–35%) = ~80% of all cases",
0.5, 1.28, 12.0, 0.38, font_size=14, bold=True, color=WHITE)
# 4 category boxes
cats = [
("MECHANICAL", LIGHT_BLUE, [
"• Gallstones / biliary sludge (impaction at ampulla of Vater)",
"• Pancreas divisum",
"• Periampullary tumors / pancreatic cancer",
"• Post-ERCP (3–5% risk)",
"• Trauma (blunt abdominal injury)",
"• Parasites: Ascaris, Clonorchis sinensis",
]),
("METABOLIC", MID_BLUE, [
"• Alcohol (chronic >5 drinks/day × >5 years)",
"• Hypertriglyceridemia (>1000 mg/dL) — 5–10% cases",
"• Hypercalcemia / hyperparathyroidism",
"• Drugs: azathioprine, thiazides, valproate,",
" estrogens, L-asparaginase, steroids",
]),
("INFECTIOUS", GREEN, [
"• Mumps virus",
"• Coxsackievirus",
"• HIV/AIDS",
"• EBV",
"• Mycoplasma pneumoniae",
]),
("GENETIC / OTHERS", DARK_BLUE, [
"• PRSS1 gene mutations (hereditary pancreatitis)",
"• SPINK1 mutations (trypsin inhibitor defect)",
"• CFTR mutations",
"• Autoimmune pancreatitis",
"• Idiopathic: 10–20% of cases",
]),
]
positions = [(0.3, 1.85), (6.8, 1.85), (0.3, 4.55), (6.8, 4.55)]
for (cat_name, color, bullets), (lft, tp) in zip(cats, positions):
add_rect(slide, lft, tp, 6.3, 2.5, fill_color=WHITE, line_color=color, line_width=1.5)
add_rect(slide, lft, tp, 6.3, 0.4, fill_color=color)
add_textbox(slide, cat_name, lft + 0.15, tp + 0.06, 5.9, 0.32,
font_size=13, bold=True, color=WHITE)
content = "\n".join(bullets)
add_textbox(slide, content, lft + 0.15, tp + 0.48, 6.0, 1.95,
font_size=12, color=DARK_TEXT)
add_textbox(slide, "Robbins Basic Pathology | Goldman-Cecil Medicine Table 130-1", 0.3, 7.1, 12.0, 0.3,
font_size=10, italic=True, color=RGBColor(0x7F, 0x8C, 0x8D))
# ============================================================
# SLIDE 4: CLASSIFICATION
# ============================================================
slide = prs.slides.add_slide(BLANK_LAYOUT)
add_rect(slide, 0, 0, 13.33, 7.5, fill_color=LIGHT_GRAY)
add_rect(slide, 0, 0, 13.33, 1.1, fill_color=DARK_BLUE)
add_rect(slide, 0, 1.1, 0.08, 6.4, fill_color=ACCENT_ORANGE)
add_textbox(slide, "CLASSIFICATION", 0.3, 0.2, 12.0, 0.75,
font_size=28, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
# Atlanta classification 2012
add_rect(slide, 0.3, 1.2, 12.5, 0.5, fill_color=MID_BLUE)
add_textbox(slide, "REVISED ATLANTA CLASSIFICATION 2012 — Acute Pancreatitis Severity", 0.5, 1.28,
12.0, 0.38, font_size=14, bold=True, color=WHITE)
sev_data = [
("MILD", LIGHT_BLUE, "No organ failure\nNo local or systemic complications\nResolves within first week\nMortality: <1%"),
("MODERATELY\nSEVERE", ACCENT_ORANGE, "Transient organ failure (<48 h)\nLocal or systemic complications\nPersistent SIRS\nMortality: ~5–10%"),
("SEVERE", RED, "Persistent organ failure (>48 h)\nSingle or multi-organ failure\nLocal complications (necrosis, abscess)\nMortality: 30–50%"),
]
for i, (sev, col, desc) in enumerate(sev_data):
lft = 0.3 + i * 4.3
add_rect(slide, lft, 1.85, 4.1, 2.0, fill_color=WHITE, line_color=col, line_width=2)
add_rect(slide, lft, 1.85, 4.1, 0.55, fill_color=col)
add_textbox(slide, sev, lft + 0.15, 1.9, 3.8, 0.48,
font_size=14, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_textbox(slide, desc, lft + 0.15, 2.45, 3.8, 1.35, font_size=12, color=DARK_TEXT)
# Morphological types
add_rect(slide, 0.3, 4.0, 12.5, 0.45, fill_color=DARK_BLUE)
add_textbox(slide, "MORPHOLOGICAL TYPES", 0.5, 4.07, 12.0, 0.35, font_size=14, bold=True, color=WHITE)
morph_types = [
("INTERSTITIAL EDEMATOUS\nPANCREATITIS (IEP)", LIGHT_BLUE,
"Diffuse or localized enlargement\nInterstitial edema\nEnhancement of pancreatic parenchyma on CT\nNo necrosis visible"),
("NECROTIZING\nPANCREATITIS (NP)", RED,
"Necrosis of parenchyma and/or peripancreatic tissue\nNo enhancement on CT (non-perfused areas)\n5–10% of acute pancreatitis cases\nHigher morbidity and mortality"),
("HEMORRHAGIC\nPANCREATITIS", DARK_BLUE,
"Most severe form\nDiffuse hemorrhage within pancreatic substance\nRed-black areas on gross pathology\nAssociated with high mortality"),
]
for i, (typ, col, desc) in enumerate(morph_types):
lft = 0.3 + i * 4.3
add_rect(slide, lft, 4.55, 4.1, 2.6, fill_color=WHITE, line_color=col, line_width=1.5)
add_rect(slide, lft, 4.55, 4.1, 0.55, fill_color=col)
add_textbox(slide, typ, lft + 0.1, 4.58, 3.9, 0.5,
font_size=12, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_textbox(slide, desc, lft + 0.1, 5.12, 3.9, 1.95, font_size=11.5, color=DARK_TEXT)
add_textbox(slide, "Revised Atlanta Classification 2012 | Robbins Basic Pathology", 0.3, 7.2, 12.0, 0.25,
font_size=10, italic=True, color=RGBColor(0x7F, 0x8C, 0x8D))
# ============================================================
# SLIDE 5: PATHOPHYSIOLOGY
# ============================================================
slide = prs.slides.add_slide(BLANK_LAYOUT)
add_rect(slide, 0, 0, 13.33, 7.5, fill_color=LIGHT_GRAY)
add_rect(slide, 0, 0, 13.33, 1.1, fill_color=DARK_BLUE)
add_rect(slide, 0, 1.1, 0.08, 6.4, fill_color=ACCENT_ORANGE)
add_textbox(slide, "PATHOPHYSIOLOGY", 0.3, 0.2, 12.0, 0.75,
font_size=28, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
# Central concept
add_rect(slide, 2.5, 1.25, 8.0, 0.7, fill_color=ACCENT_ORANGE)
add_textbox(slide, "PREMATURE ACTIVATION OF TRYPSINOGEN → TRYPSIN within ACINAR CELLS",
2.7, 1.33, 7.8, 0.55, font_size=14, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
# Three pathways
paths = [
("PATHWAY 1\nDuctal Obstruction", LIGHT_BLUE,
"Gallstone/biliary sludge impaction\n↓\nIncreased intraductal pressure\n↓\nAccumulation of enzyme-rich fluid\n↓\nLipase (active form) → fat necrosis\n↓\nPro-inflammatory cytokines → edema\n↓\nVascular insufficiency → ischemic injury"),
("PATHWAY 2\nPrimary Acinar Injury", MID_BLUE,
"Alcohol, hypertriglyceridemia,\nischemia, viral infections, drugs\n↓\nDirect toxic effect on acinar cells\n↓\nLipase released into interstitium\n↓\nHydrolysis of triglycerides\n↓\nToxic free fatty acids released\n↓\nAcinar cell necrosis"),
("PATHWAY 3\nDefective Proenzyme\nTransport", DARK_BLUE,
"Metabolic injury to acinar cells\n↓\nProenzymes co-localize with\nlysosomal hydrolases\n↓\nIntracellular activation of trypsin\n↓\nAutodigestion of acinar cells\n(Key mechanism in alcoholic\npancreatitis)"),
]
for i, (pth, col, desc) in enumerate(paths):
lft = 0.3 + i * 4.3
add_rect(slide, lft, 2.1, 4.1, 4.7, fill_color=WHITE, line_color=col, line_width=2)
add_rect(slide, lft, 2.1, 4.1, 0.62, fill_color=col)
add_textbox(slide, pth, lft + 0.1, 2.12, 3.9, 0.58,
font_size=13, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_textbox(slide, desc, lft + 0.1, 2.77, 3.9, 3.95, font_size=12, color=DARK_TEXT)
# Bottom cascade
add_rect(slide, 0.3, 6.92, 12.5, 0.42, fill_color=RGBColor(0xEB, 0xF5, 0xFB), line_color=LIGHT_BLUE, line_width=1)
add_textbox(slide, "Final Common Pathway: Trypsin activates → Elastase (hemorrhage) + Phospholipase A2 (cell membrane damage) + Kallkrein (kinin system) → SIRS + Multi-organ failure",
0.5, 6.95, 12.0, 0.38, font_size=11.5, color=DARK_BLUE, bold=False)
add_textbox(slide, "Robbins Basic Pathology (Fig 15.2) | Goldman-Cecil Medicine", 0.3, 7.4, 12.0, 0.25,
font_size=10, italic=True, color=RGBColor(0x7F, 0x8C, 0x8D))
# ============================================================
# SLIDE 6: CLINICAL FEATURES
# ============================================================
slide = prs.slides.add_slide(BLANK_LAYOUT)
add_rect(slide, 0, 0, 13.33, 7.5, fill_color=LIGHT_GRAY)
add_rect(slide, 0, 0, 13.33, 1.1, fill_color=DARK_BLUE)
add_rect(slide, 0, 1.1, 0.08, 6.4, fill_color=ACCENT_ORANGE)
add_textbox(slide, "CLINICAL FEATURES", 0.3, 0.2, 12.0, 0.75,
font_size=28, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
# Left column - Symptoms
add_rect(slide, 0.3, 1.2, 6.0, 5.8, fill_color=WHITE, line_color=LIGHT_BLUE, line_width=1.5)
add_rect(slide, 0.3, 1.2, 6.0, 0.45, fill_color=LIGHT_BLUE)
add_textbox(slide, "SYMPTOMS", 0.5, 1.25, 5.8, 0.38, font_size=15, bold=True, color=WHITE)
symptoms = (
"• PAIN — Cardinal feature\n"
" - Epigastric, sudden onset, severe\n"
" - Radiates to BACK (band-like / boring)\n"
" - Aggravated by food, relieved by sitting forward\n\n"
"• NAUSEA & VOMITING — Persistent, non-relieving\n\n"
"• ABDOMINAL DISTENSION — Paralytic ileus\n\n"
"• FEVER — Low grade (38–39°C)\n\n"
"• JAUNDICE — If gallstone obstructs CBD\n\n"
"• SHOCK — In severe / hemorrhagic pancreatitis\n"
" (hypotension, tachycardia, cold extremities)"
)
add_textbox(slide, symptoms, 0.45, 1.72, 5.7, 5.2, font_size=12.5, color=DARK_TEXT)
# Right column - Signs
add_rect(slide, 6.6, 1.2, 6.4, 5.8, fill_color=WHITE, line_color=MID_BLUE, line_width=1.5)
add_rect(slide, 6.6, 1.2, 6.4, 0.45, fill_color=MID_BLUE)
add_textbox(slide, "SIGNS", 6.8, 1.25, 6.2, 0.38, font_size=15, bold=True, color=WHITE)
signs_text = (
"GENERAL:\n"
"• Pallor, diaphoresis, fever\n"
"• Tachycardia, hypotension (severe)\n\n"
"ABDOMINAL:\n"
"• Epigastric tenderness / guarding\n"
"• Absent bowel sounds (ileus)\n"
"• Distension\n\n"
"SPECIFIC SIGNS (Severe / Hemorrhagic):\n"
"• CULLEN'S SIGN — Periumbilical\n"
" ecchymosis (retroperitoneal bleed)\n"
"• GREY TURNER'S SIGN — Flank\n"
" ecchymosis (retroperitoneal bleed)\n\n"
"• TENDER EPIGASTRIC MASS\n"
" (pancreatic pseudocyst)"
)
add_textbox(slide, signs_text, 6.75, 1.72, 6.1, 5.2, font_size=12.5, color=DARK_TEXT)
add_textbox(slide, "Robbins Basic Pathology | Goldman-Cecil Medicine | Schwartz Surgery", 0.3, 7.1, 12.0, 0.3,
font_size=10, italic=True, color=RGBColor(0x7F, 0x8C, 0x8D))
# ============================================================
# SLIDE 7: INVESTIGATIONS
# ============================================================
slide = prs.slides.add_slide(BLANK_LAYOUT)
add_rect(slide, 0, 0, 13.33, 7.5, fill_color=LIGHT_GRAY)
add_rect(slide, 0, 0, 13.33, 1.1, fill_color=DARK_BLUE)
add_rect(slide, 0, 1.1, 0.08, 6.4, fill_color=ACCENT_ORANGE)
add_textbox(slide, "INVESTIGATIONS", 0.3, 0.2, 12.0, 0.75,
font_size=28, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
# Blood tests
add_rect(slide, 0.3, 1.2, 5.9, 4.0, fill_color=WHITE, line_color=LIGHT_BLUE, line_width=1.5)
add_rect(slide, 0.3, 1.2, 5.9, 0.45, fill_color=LIGHT_BLUE)
add_textbox(slide, "BLOOD INVESTIGATIONS", 0.5, 1.25, 5.7, 0.38, font_size=14, bold=True, color=WHITE)
blood_inv = (
"ENZYMES (DIAGNOSTIC):\n"
"• Serum LIPASE — preferred test\n"
" Rise: 4–8 hrs; elevated >14 days\n"
" Diagnostic: >3× upper limit of normal\n"
"• Serum AMYLASE — rises 2–12 hrs\n"
" Returns to normal in 3–5 days\n\n"
"SUPPORTING TESTS:\n"
"• CBC — Leukocytosis (WBC >16,000)\n"
"• Serum Calcium — ↓ (<8 mg/dL) = poor prognosis\n"
"• Blood Glucose — ↑ (>200 mg/dL)\n"
"• Serum LDH — ↑ (>350 IU/L)\n"
"• Serum AST — ↑ (>250 U/dL)\n"
"• C-Reactive Protein — >150 mg/dL = severe\n"
"• Bilirubin, LFT — if gallstone etiology\n"
"• ABG — PaO₂ <60 mmHg (ARDS risk)\n"
"• BUN/Creatinine — Renal function"
)
add_textbox(slide, blood_inv, 0.45, 1.72, 5.7, 3.4, font_size=11.5, color=DARK_TEXT)
# Imaging
add_rect(slide, 6.5, 1.2, 6.5, 4.0, fill_color=WHITE, line_color=MID_BLUE, line_width=1.5)
add_rect(slide, 6.5, 1.2, 6.5, 0.45, fill_color=MID_BLUE)
add_textbox(slide, "IMAGING", 6.7, 1.25, 6.3, 0.38, font_size=14, bold=True, color=WHITE)
imaging_text = (
"ULTRASOUND (First-line):\n"
"• Gallstones (CBD dilation)\n"
"• Pancreatic edema, peripancreatic fluid\n"
"• Pseudocyst detection\n\n"
"CONTRAST-ENHANCED CT (CECT):\n"
"• GOLD STANDARD for severity assessment\n"
"• Necrosis: non-enhancing areas\n"
"• Fluid collections, abscess\n"
"• CT Severity Index (Balthazar score)\n\n"
"MRI / MRCP:\n"
"• Better soft tissue resolution\n"
"• Choledocholithiasis detection\n"
"• Ductal anatomy (chronic pancreatitis)\n\n"
"CHEST X-RAY:\n"
"• Pleural effusion (left-sided)\n"
"• ARDS (bilateral infiltrates)\n"
"• 'Sentinel loop' — dilated jejunal loop\n"
"• 'Colon cut-off sign'"
)
add_textbox(slide, imaging_text, 6.65, 1.72, 6.2, 3.4, font_size=11.5, color=DARK_TEXT)
# Diagnostic criteria
add_rect(slide, 0.3, 5.35, 12.5, 1.45, fill_color=RGBColor(0xEB, 0xF5, 0xFB), line_color=ACCENT_ORANGE, line_width=1.5)
add_rect(slide, 0.3, 5.35, 12.5, 0.4, fill_color=ACCENT_ORANGE)
add_textbox(slide, "DIAGNOSTIC CRITERIA (Any 2 of 3):", 0.5, 5.38, 12.0, 0.35, font_size=13, bold=True, color=WHITE)
add_textbox(slide,
" 1. Characteristic abdominal pain (acute onset, severe epigastric, radiating to back)\n"
" 2. Serum amylase or lipase ≥ 3× the upper limit of normal\n"
" 3. Characteristic findings on CECT / MRI / USG",
0.5, 5.82, 12.0, 0.92, font_size=12.5, color=DARK_TEXT)
add_textbox(slide, "Robbins Lab Table | Goldman-Cecil Medicine | Revised Atlanta Criteria 2012", 0.3, 7.2, 12.0, 0.28,
font_size=10, italic=True, color=RGBColor(0x7F, 0x8C, 0x8D))
# ============================================================
# SLIDE 8: SEVERITY SCORING — RANSON'S CRITERIA
# ============================================================
slide = prs.slides.add_slide(BLANK_LAYOUT)
add_rect(slide, 0, 0, 13.33, 7.5, fill_color=LIGHT_GRAY)
add_rect(slide, 0, 0, 13.33, 1.1, fill_color=DARK_BLUE)
add_rect(slide, 0, 1.1, 0.08, 6.4, fill_color=ACCENT_ORANGE)
add_textbox(slide, "SEVERITY SCORING — RANSON'S CRITERIA", 0.3, 0.2, 12.0, 0.75,
font_size=26, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
# Non-gallstone section
add_rect(slide, 0.3, 1.2, 6.0, 4.2, fill_color=WHITE, line_color=LIGHT_BLUE, line_width=1.5)
add_rect(slide, 0.3, 1.2, 6.0, 0.45, fill_color=LIGHT_BLUE)
add_textbox(slide, "NON-GALLSTONE PANCREATITIS", 0.5, 1.25, 5.8, 0.38, font_size=13, bold=True, color=WHITE)
# At admission
add_rect(slide, 0.4, 1.75, 2.75, 3.5, fill_color=RGBColor(0xEA, 0xF2, 0xFF))
add_textbox(slide, "AT ADMISSION", 0.5, 1.8, 2.55, 0.35, font_size=12, bold=True, color=DARK_BLUE)
adm1 = "• Age > 55 yrs\n• WBC > 16,000/mm³\n• Blood Glucose > 200 mg/dL\n• Serum LDH > 350 IU/L\n• Serum AST > 250 U/dL"
add_textbox(slide, adm1, 0.5, 2.18, 2.55, 3.0, font_size=12, color=DARK_TEXT)
# During 48h
add_rect(slide, 3.25, 1.75, 2.95, 3.5, fill_color=RGBColor(0xFD, 0xF2, 0xE9))
add_textbox(slide, "WITHIN 48 HOURS", 3.35, 1.8, 2.75, 0.35, font_size=12, bold=True, color=DARK_BLUE)
h48_1 = "• Hematocrit fall > 10%\n• BUN rise > 5 mg/dL\n• Serum Ca²⁺ < 8 mg/dL\n• PaO₂ < 60 mmHg\n• Base deficit > 4 mEq/L\n• Fluid sequestration > 6 L"
add_textbox(slide, h48_1, 3.35, 2.18, 2.75, 3.0, font_size=12, color=DARK_TEXT)
# Gallstone section
add_rect(slide, 6.6, 1.2, 6.4, 4.2, fill_color=WHITE, line_color=ACCENT_ORANGE, line_width=1.5)
add_rect(slide, 6.6, 1.2, 6.4, 0.45, fill_color=ACCENT_ORANGE)
add_textbox(slide, "GALLSTONE PANCREATITIS", 6.8, 1.25, 6.2, 0.38, font_size=13, bold=True, color=WHITE)
add_rect(slide, 6.7, 1.75, 2.85, 3.5, fill_color=RGBColor(0xEA, 0xF2, 0xFF))
add_textbox(slide, "AT ADMISSION", 6.8, 1.8, 2.65, 0.35, font_size=12, bold=True, color=DARK_BLUE)
adm2 = "• Age > 70 yrs\n• WBC > 18,000/mm³\n• Blood Glucose > 220 mg/dL\n• Serum LDH > 400 IU/L\n• Serum AST > 250 U/dL"
add_textbox(slide, adm2, 6.8, 2.18, 2.65, 3.0, font_size=12, color=DARK_TEXT)
add_rect(slide, 9.65, 1.75, 3.2, 3.5, fill_color=RGBColor(0xFD, 0xF2, 0xE9))
add_textbox(slide, "WITHIN 48 HOURS", 9.75, 1.8, 3.0, 0.35, font_size=12, bold=True, color=DARK_BLUE)
h48_2 = "• Hematocrit fall > 10%\n• BUN rise > 2 mg/dL\n• Serum Ca²⁺ < 8 mg/dL\n• Base deficit > 5 mEq/L\n• Fluid sequestration > 4 L"
add_textbox(slide, h48_2, 9.75, 2.18, 3.0, 3.0, font_size=12, color=DARK_TEXT)
# Interpretation
add_rect(slide, 0.3, 5.5, 12.5, 1.6, fill_color=DARK_BLUE)
add_textbox(slide, "INTERPRETATION OF RANSON'S SCORE:", 0.5, 5.55, 7.0, 0.4, font_size=13, bold=True, color=ACCENT_ORANGE)
interp = ("Score 0–2 = Mild pancreatitis (Mortality <1%) | "
"Score 3–4 = Moderate (Mortality ~15%) | "
"Score 5–6 = Severe (Mortality ~40%) | "
"Score >6 = Critical (Mortality ~100%)")
add_textbox(slide, interp, 0.5, 6.0, 12.0, 0.55, font_size=12.5, color=WHITE)
add_textbox(slide, "Other scoring: APACHE II ≥8, CRP >150 mg/dL, BISAP score (BUN>25, Mental status, SIRS, Age>60, Pleural effusion)",
0.5, 6.6, 12.0, 0.42, font_size=11.5, color=RGBColor(0xAE, 0xD6, 0xF1))
add_textbox(slide, "Schwartz's Principles of Surgery 11e | ROSEN's Emergency Medicine", 0.3, 7.2, 12.0, 0.28,
font_size=10, italic=True, color=RGBColor(0x7F, 0x8C, 0x8D))
# ============================================================
# SLIDE 9: TREATMENT
# ============================================================
slide = prs.slides.add_slide(BLANK_LAYOUT)
add_rect(slide, 0, 0, 13.33, 7.5, fill_color=LIGHT_GRAY)
add_rect(slide, 0, 0, 13.33, 1.1, fill_color=DARK_BLUE)
add_rect(slide, 0, 1.1, 0.08, 6.4, fill_color=ACCENT_ORANGE)
add_textbox(slide, "TREATMENT — ACUTE PANCREATITIS", 0.3, 0.2, 12.0, 0.75,
font_size=26, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
treat_cols = [
("INITIAL / MILD\n(Conservative)", LIGHT_BLUE, [
"FLUID RESUSCITATION:",
"• IV fluids: Lactated Ringer's",
" preferred (200–500 mL/hr)",
"• Target: Urine output",
" >0.5 mL/kg/hr",
"",
"PAIN MANAGEMENT:",
"• IV opioids (morphine / pethidine)",
"• Adequate analgesia is KEY",
"",
"GUT REST:",
"• NPO initially",
"• Nasogastric tube if vomiting",
"",
"MONITORING:",
"• Vitals, urine output hourly",
"• Serum enzymes, CBC, RFT",
]),
("NUTRITION SUPPORT", MID_BLUE, [
"ENTERAL NUTRITION",
"(preferred over parenteral):",
"",
"• Start within 24–48 hrs",
"• Nasojejunal / NG tube feeding",
"• Maintains gut barrier,",
" reduces bacterial translocation",
"",
"PARENTERAL NUTRITION:",
"• Only if enteral not tolerated",
"• Short-term use",
"",
"ORAL FEEDING:",
"• Resume when pain resolves,",
" no nausea, bowel sounds return",
"• Low fat, low protein diet",
" initially",
]),
("SPECIFIC / SEVERE\n(Targeted)", DARK_BLUE, [
"ANTIBIOTICS:",
"• NOT for prophylaxis routinely",
"• ONLY for infected necrosis",
" (imipenem/meropenem)",
"",
"ERCP ± SPHINCTEROTOMY:",
"• For gallstone pancreatitis",
" with CBD stone + cholangitis",
"• Within 24–72 hrs",
"",
"SURGERY (Necrosectomy):",
"• Infected pancreatic necrosis",
"• Abdominal compartment",
" syndrome",
"• Step-up approach preferred",
" (drainage → necrosectomy)",
]),
("DEFINITIVE /\nPREVENTION", GREEN, [
"CHOLECYSTECTOMY:",
"• For gallstone pancreatitis",
"• Within same admission",
" (after recovery)",
"",
"ALCOHOL ABSTINENCE:",
"• Counseling + de-addiction",
"",
"HYPERTRIGLYCERIDEMIA:",
"• Insulin infusion / plasmapheresis",
"• Fibrate therapy",
"",
"HYPERCALCEMIA:",
"• Treat underlying cause",
" (parathyroidectomy)",
"",
"FOLLOW-UP:",
"• Repeat imaging at 6 weeks",
]),
]
for i, (hdr, col, bullets) in enumerate(treat_cols):
lft = 0.25 + i * 3.22
add_rect(slide, lft, 1.2, 3.1, 6.0, fill_color=WHITE, line_color=col, line_width=1.5)
add_rect(slide, lft, 1.2, 3.1, 0.55, fill_color=col)
add_textbox(slide, hdr, lft + 0.1, 1.23, 2.9, 0.5,
font_size=12, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
content = "\n".join(bullets)
add_textbox(slide, content, lft + 0.1, 1.82, 2.9, 5.3, font_size=10.5, color=DARK_TEXT)
add_textbox(slide, "Goldman-Cecil Medicine | Schwartz Surgery | Yamada's Gastroenterology", 0.3, 7.2, 12.0, 0.28,
font_size=10, italic=True, color=RGBColor(0x7F, 0x8C, 0x8D))
# ============================================================
# SLIDE 10: COMPLICATIONS
# ============================================================
slide = prs.slides.add_slide(BLANK_LAYOUT)
add_rect(slide, 0, 0, 13.33, 7.5, fill_color=LIGHT_GRAY)
add_rect(slide, 0, 0, 13.33, 1.1, fill_color=DARK_BLUE)
add_rect(slide, 0, 1.1, 0.08, 6.4, fill_color=ACCENT_ORANGE)
add_textbox(slide, "COMPLICATIONS", 0.3, 0.2, 12.0, 0.75,
font_size=28, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
# LOCAL
add_rect(slide, 0.3, 1.2, 6.0, 5.8, fill_color=WHITE, line_color=RED, line_width=1.5)
add_rect(slide, 0.3, 1.2, 6.0, 0.48, fill_color=RED)
add_textbox(slide, "LOCAL COMPLICATIONS", 0.5, 1.25, 5.8, 0.38, font_size=15, bold=True, color=WHITE)
local_comp = (
"FLUID COLLECTIONS:\n"
"• Acute peripancreatic fluid collection (APFC)\n"
"• Pancreatic pseudocyst — most common local complication\n"
" (fluid collection >4 weeks, encapsulated)\n\n"
"NECROSIS-RELATED:\n"
"• Acute necrotic collection (ANC)\n"
"• Walled-off necrosis (WON) — after 4 weeks\n"
"• Infected pancreatic necrosis — most dangerous,\n"
" requires necrosectomy\n\n"
"VASCULAR:\n"
"• Splenic artery pseudoaneurysm\n"
"• Splenic vein thrombosis\n"
"• Portal vein thrombosis\n\n"
"OTHER LOCAL:\n"
"• Pancreatic abscess\n"
"• Pancreatic fistula\n"
"• Bowel ischemia / obstruction\n"
"• Bile duct obstruction"
)
add_textbox(slide, local_comp, 0.45, 1.75, 5.7, 5.2, font_size=11.5, color=DARK_TEXT)
# SYSTEMIC
add_rect(slide, 6.6, 1.2, 6.4, 5.8, fill_color=WHITE, line_color=DARK_BLUE, line_width=1.5)
add_rect(slide, 6.6, 1.2, 6.4, 0.48, fill_color=DARK_BLUE)
add_textbox(slide, "SYSTEMIC COMPLICATIONS", 6.8, 1.25, 6.2, 0.38, font_size=15, bold=True, color=WHITE)
sys_comp = (
"RESPIRATORY:\n"
"• ARDS (Adult Respiratory Distress Syndrome)\n"
"• Left pleural effusion\n"
"• Atelectasis\n\n"
"CARDIOVASCULAR:\n"
"• Hypovolemic shock\n"
"• Pericardial effusion\n"
"• Myocardial depression (cytokines)\n\n"
"RENAL:\n"
"• Acute kidney injury (AKI)\n"
"• Acute tubular necrosis\n\n"
"HEMATOLOGIC:\n"
"• DIC (Disseminated Intravascular Coagulation)\n"
" — trypsin activates coagulation cascade\n\n"
"METABOLIC:\n"
"• Hypocalcemia (calcium deposits in fat necrosis)\n"
"• Hyperglycemia (islet cell damage)\n"
"• Hypoalbuminemia\n\n"
"CNS:\n"
"• Pancreatic encephalopathy (rare)"
)
add_textbox(slide, sys_comp, 6.75, 1.75, 6.1, 5.2, font_size=11.5, color=DARK_TEXT)
add_textbox(slide, "Robbins Basic Pathology | Goldman-Cecil Medicine | Schwartz Surgery 11e", 0.3, 7.1, 12.0, 0.3,
font_size=10, italic=True, color=RGBColor(0x7F, 0x8C, 0x8D))
# ============================================================
# SLIDE 11: CHRONIC PANCREATITIS
# ============================================================
slide = prs.slides.add_slide(BLANK_LAYOUT)
add_rect(slide, 0, 0, 13.33, 7.5, fill_color=LIGHT_GRAY)
add_rect(slide, 0, 0, 13.33, 1.1, fill_color=DARK_BLUE)
add_rect(slide, 0, 1.1, 0.08, 6.4, fill_color=ACCENT_ORANGE)
add_textbox(slide, "CHRONIC PANCREATITIS", 0.3, 0.2, 12.0, 0.75,
font_size=28, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
cp_cols = [
("CAUSES", LIGHT_BLUE, (
"• Alcohol — MOST COMMON (70%)\n"
"• Idiopathic (20%)\n"
"• Tropical pancreatitis\n"
"• Hereditary (PRSS1/SPINK1 mutations)\n"
"• Autoimmune pancreatitis\n"
"• Hypertriglyceridemia\n"
"• Hypercalcemia\n"
"• Obstructive (stricture/stones)"
)),
("CLINICAL FEATURES", MID_BLUE, (
"• Recurrent epigastric pain\n"
" (boring, radiates to back)\n"
"• Steatorrhoea (fat malabsorption)\n"
"• Weight loss\n"
"• Diabetes mellitus (islet cell loss)\n"
"• Jaundice (CBD compression)\n"
"• Epigastric mass (pseudocyst)\n"
"• Calcification on X-ray"
)),
("INVESTIGATIONS", DARK_BLUE, (
"• Serum amylase/lipase\n"
" (may be normal in advanced)\n"
"• Fecal elastase-1 (↓)\n"
"• CECT: calcification, ductal\n"
" dilation, fibrosis\n"
"• MRCP: ductal anatomy\n"
"• EUS: parenchymal changes\n"
"• HbA1c (diabetes assessment)"
)),
("TREATMENT", GREEN, (
"PAIN:\n"
"• Analgesics (stepwise)\n"
"• Pancreatic enzyme supplements\n"
"• Celiac plexus block\n"
"• ERCP (stenting, stone removal)\n"
"• Surgery (Puestow/Frey procedure)\n\n"
"EXOCRINE INSUFFICIENCY:\n"
"• Pancreatic enzyme replacement\n"
" (lipase >40,000 U/meal)\n\n"
"ENDOCRINE INSUFFICIENCY:\n"
"• Insulin therapy"
)),
]
for i, (hdr, col, txt) in enumerate(cp_cols):
lft = 0.25 + i * 3.22
add_rect(slide, lft, 1.2, 3.1, 6.0, fill_color=WHITE, line_color=col, line_width=1.5)
add_rect(slide, lft, 1.2, 3.1, 0.48, fill_color=col)
add_textbox(slide, hdr, lft + 0.1, 1.25, 2.9, 0.38, font_size=13, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_textbox(slide, txt, lft + 0.1, 1.75, 2.9, 5.3, font_size=11.5, color=DARK_TEXT)
add_textbox(slide, "Robbins Basic Pathology | Goldman-Cecil Medicine | Schwartz Surgery 11e", 0.3, 7.2, 12.0, 0.28,
font_size=10, italic=True, color=RGBColor(0x7F, 0x8C, 0x8D))
# ============================================================
# SLIDE 12: SUMMARY / QUICK RECALL
# ============================================================
slide = prs.slides.add_slide(BLANK_LAYOUT)
add_rect(slide, 0, 0, 13.33, 7.5, fill_color=DARK_BLUE)
add_rect(slide, 0, 0, 13.33, 0.12, fill_color=ACCENT_ORANGE)
add_rect(slide, 0, 7.38, 13.33, 0.12, fill_color=ACCENT_ORANGE)
add_textbox(slide, "QUICK RECALL — PANCREATITIS", 0.5, 0.25, 12.0, 0.75,
font_size=28, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
summary_items = [
("DEFINITION", LIGHT_BLUE, "Acute: Reversible inflammation. Chronic: Irreversible fibrosis + exocrine/endocrine failure"),
("CAUSES", ACCENT_ORANGE, "Gallstones + Alcohol = 80% | Others: Hypertriglyceridemia, Drugs, Trauma, Genetic"),
("CLASSIFICATION", GREEN, "Atlanta 2012: Mild / Moderately Severe / Severe | Types: IEP / Necrotizing / Hemorrhagic"),
("PATHOPHYSIOLOGY", MID_BLUE, "Trypsinogen → Trypsin (premature activation) → Autodigestion → SIRS → Multi-organ failure"),
("CLINICAL", RGBColor(0x9B, 0x59, 0xB6), "Epigastric pain → back | Cullen's + Grey Turner's signs | Shock in severe"),
("INVESTIGATIONS", RED, "Lipase (preferred) + Amylase > 3× ULN | CECT gold standard | Ranson's criteria"),
("TREATMENT", YELLOW, "IV fluids (Lactated Ringer's) | Pain control | Early enteral nutrition | ERCP for CBD stones"),
("COMPLICATIONS", RGBColor(0xE7, 0x4C, 0x3C), "Pseudocyst | Infected necrosis | ARDS | DIC | AKI | Hypocalcemia | Diabetes"),
]
for i, (hdr, col, txt) in enumerate(summary_items):
row = i // 2
col_n = i % 2
lft = 0.3 + col_n * 6.5
tp = 1.15 + row * 1.45
add_rect(slide, lft, tp, 6.25, 1.32, fill_color=RGBColor(0x1A, 0x35, 0x5E), line_color=col, line_width=2)
add_rect(slide, lft, tp, 1.5, 1.32, fill_color=col)
add_textbox(slide, hdr, lft + 0.08, tp + 0.1, 1.35, 1.1,
font_size=12, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_textbox(slide, txt, lft + 1.65, tp + 0.1, 4.45, 1.1, font_size=12, color=WHITE)
add_textbox(slide, "Robbins Basic Pathology | Goldman-Cecil Medicine | Schwartz Surgery | Ranson JHC 1982",
0.5, 7.15, 12.0, 0.3, font_size=10, italic=True, color=RGBColor(0x7F, 0x8C, 0x8D), align=PP_ALIGN.CENTER)
# Save
output_path = "/tmp/workspace/pancreatitis-seminar/Pancreatitis_Seminar_Notes.pptx"
prs.save(output_path)
print(f"✅ Saved: {output_path}")
print(f"Slides: {len(prs.slides)}")
cd /tmp/workspace/pancreatitis-seminar && python create_ppt.py
ls -lh /tmp/workspace/pancreatitis-seminar/
Pancreatitis Seminar Notes
Presentation · PPTX
| Slide | Topic |
|---|---|
| 1 | Title Slide — Pancreatitis (Professional dark navy theme) |
| 2 | Definition & Overview — Acute vs Chronic |
| 3 | Etiology / Causes — 4 categories (Mechanical, Metabolic, Infectious, Genetic) |
| 4 | Classification — Atlanta 2012 (Mild/Moderate/Severe) + Morphological types |
| 5 | Pathophysiology — 3 Pathways (Ductal obstruction, Acinar injury, Proenzyme transport) |
| 6 | Clinical Features — Symptoms + Signs (Cullen's, Grey Turner's) |
| 7 | Investigations — Blood tests + Imaging + Diagnostic criteria |
| 8 | Ranson's Criteria — Non-gallstone vs Gallstone (full table) |
| 9 | Treatment — 4 columns (Initial, Nutrition, Specific, Definitive) |
| 10 | Complications — Local + Systemic |
| 11 | Chronic Pancreatitis — Causes, Features, Investigations, Treatment |
| 12 | Quick Recall Summary — All 8 topics at a glance |
Sources used: Robbins & Kumar Basic Pathology 10e | Goldman-Cecil Medicine | Schwartz's Principles of Surgery 11e | Revised Atlanta Classification 2012