Prepare a good and decent one or 2 slode wxplaning everything about the cresentric nephritic syndrome related to pediatricts mbbs final year . I have presentation on the topic nephric and nephrotic syndrome please prepare according to that.
crescentic glomerulonephritis histology microscopy

Renal biopsy histology image captured with light microscopy after Hematoxylin and Eosin staining. The section highlights a renal glomerulus embedded in renal cortex, with Bowman’s capsule clearly visible. Within the glomerulus there is marked cellular proliferation, with numerous densely packed nuclei suggestive of intraglomerular inflammation. A prominent cellular crescent occupies Bowman's space, formed by parietal epithelial cells and infiltrating leukocytes; this crescent partially compresses the capillary tuft. Surrounding tubulointerstitial tissue shows mild edema and scattered inflammatory cells. The basement membranes appear thickened in places, and there is focal endocapillary hypercellularity. Overall architecture suggests acute glomerular injury with crescent formation, compatible with rapidly progressive glomerulonephritis. The image serves as a morphologic correlate for nephritic syndrome and abrupt loss of renal function, guiding urgent diagnostic workup. Immunofluorescence and electron microscopy would assist etiologic classification (pauci-immune, anti-GBM, or immune complex), as would serologic testing for anti–neutrophil cytoplasmic antibodies, anti-GBM antibodies, and complements. Clinically, such histology is associated with rapidly progressive renal failure, hematuria, proteinuria, and hypertension. This representation supports differential diagnoses including anti-GBM disease, immune complex GN, and pauci-immune GN, and is valuable for education, research, and clinical correlation in nephrology. These features emphasize urgent management, biopsy interpretation, and multidisciplinary care planning strategies.

This diagnostic image shows a direct immunofluorescence (DIF) microscopy of a percutaneous kidney biopsy specimen at 20X magnification. The image demonstrates a hallmark pathognomonic finding: strong, continuous, linear immunofluorescence staining along the glomerular basement membrane (GBM). The staining outlines the capillary loops of the glomerulus with high intensity and uniformity, indicating the deposition of immunoglobulin G (IgG) antibodies directly against the basement membrane. The surrounding mesangial regions and Bowman's space show significantly less fluorescence, creating a sharp contrast that emphasizes the linear pattern. This visual presentation is characteristic of anti-glomerular basement membrane (anti-GBM) antibody disease, often associated with Goodpasture syndrome or rapidly progressive (crescentic) glomerulonephritis. The clinical significance of this finding is the confirmation of autoimmune-mediated renal damage where autoantibodies target Type IV collagen within the GBM.

This diagnostic image shows a renal biopsy specimen examined under immunofluorescence microscopy. The focus is a single glomerulus against a dark background, illustrating negative immunofluorescence for linear immunoglobulin G (IgG). Instead of the continuous, smooth, 'ribbon-like' linear staining characteristic of anti-glomerular basement membrane (anti-GBM) disease, this image displays weak, irregular, and interrupted green fluorescence along the capillary loops. The distribution is sparse and non-specific, lacking the defined morphology expected in positive cases. Clinically, this visual finding is significant in the context of crescentic glomerulonephritis; despite the presence of circulating anti-GBM antibodies in the patient, this specific immunofluorescence study does not demonstrate the classic pathognomonic linear deposition of antibodies on the glomerular basement membrane, likely due to technical factors related to paraffin-embedded material processing.
mkdir -p /tmp/workspace/crescentic-nephritis && ls /tmp/workspace/
~/crescentic-nephritis/build_slides.py
import subprocess, json, base64, io
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.oxml.ns import qn
from lxml import etree
# ── helpers ──────────────────────────────────────────────────────────────────
def rgb(r,g,b): return RGBColor(r,g,b)
# Colour palette (dark navy theme matching a medical presentation)
NAVY = rgb(0x00, 0x2B, 0x5C) # slide header bg
TEAL = rgb(0x00, 0x87, 0x87) # accent / borders
GOLD = rgb(0xFF, 0xC0, 0x00) # highlight
WHITE = rgb(0xFF, 0xFF, 0xFF)
LGREY = rgb(0xF4, 0xF6, 0xFA) # card bg
DGREY = rgb(0x33, 0x33, 0x33) # body text
RED = rgb(0xC0, 0x20, 0x20)
GREEN = rgb(0x1A, 0x73, 0x4A)
W = Inches(13.333)
H = Inches(7.5)
prs = Presentation()
prs.slide_width = W
prs.slide_height = H
blank = prs.slide_layouts[6]
# ─────────────────────────────────────────────────────────────────────────────
# UTILITY: add a filled rectangle
# ─────────────────────────────────────────────────────────────────────────────
def add_rect(slide, x, y, w, h, fill_color, border_color=None, border_pt=0):
shape = slide.shapes.add_shape(1, x, y, w, h) # MSO_SHAPE_TYPE.RECTANGLE = 1
shape.fill.solid()
shape.fill.fore_color.rgb = fill_color
if border_color:
shape.line.color.rgb = border_color
shape.line.width = Pt(border_pt)
else:
shape.line.fill.background()
return shape
# ─────────────────────────────────────────────────────────────────────────────
# UTILITY: add a textbox with full control
# ─────────────────────────────────────────────────────────────────────────────
def add_textbox(slide, x, y, w, h, text, font_size, bold=False, italic=False,
color=DGREY, align=PP_ALIGN.LEFT, wrap=True,
v_anchor=MSO_ANCHOR.TOP, margins=None):
tb = slide.shapes.add_textbox(x, y, w, h)
tf = tb.text_frame
tf.word_wrap = wrap
tf.vertical_anchor = v_anchor
if margins == 0:
tf.margin_left = tf.margin_right = tf.margin_top = tf.margin_bottom = 0
p = tf.paragraphs[0]
p.alignment = align
r = p.add_run()
r.text = text
r.font.name = "Calibri"
r.font.size = Pt(font_size)
r.font.bold = bold
r.font.italic = italic
r.font.color.rgb = color
return tf
def add_para(tf, text, font_size, bold=False, italic=False, color=DGREY,
align=PP_ALIGN.LEFT, space_before=0):
from pptx.util import Pt as PPt
p = tf.add_paragraph()
p.alignment = align
p.space_before = PPt(space_before)
r = p.add_run()
r.text = text
r.font.name = "Calibri"
r.font.size = PPt(font_size)
r.font.bold = bold
r.font.italic = italic
r.font.color.rgb = color
return p
# ─────────────────────────────────────────────────────────────────────────────
# SLIDE 1: Definition | Etiology | Pathogenesis | Morphology | Clinical Features
# ─────────────────────────────────────────────────────────────────────────────
slide1 = prs.slides.add_slide(blank)
# ── header bar ───────────────────────────────────────────────────────────────
add_rect(slide1, 0, 0, W, Inches(0.85), NAVY)
# slide counter chip
add_rect(slide1, W - Inches(0.7), 0, Inches(0.7), Inches(0.85), TEAL)
add_textbox(slide1, W - Inches(0.7), Inches(0.05), Inches(0.7), Inches(0.75),
"1/2", 14, bold=True, color=WHITE, align=PP_ALIGN.CENTER, margins=0)
# presentation title (small, top-left)
add_textbox(slide1, Inches(0.25), Inches(0.06), Inches(9), Inches(0.32),
"NEPHRITIC & NEPHROTIC SYNDROME | Pediatrics — MBBS Final Year",
9.5, italic=True, color=rgb(0xAA,0xCC,0xFF), margins=0)
# slide heading
add_textbox(slide1, Inches(0.25), Inches(0.35), Inches(10), Inches(0.45),
"CRESCENTIC (RAPIDLY PROGRESSIVE) GLOMERULONEPHRITIS — RPGN",
17, bold=True, color=WHITE, margins=0)
# gold underline
add_rect(slide1, Inches(0.25), Inches(0.82), Inches(6), Inches(0.04), GOLD)
# ── background (light) ───────────────────────────────────────────────────────
add_rect(slide1, 0, Inches(0.85), W, H - Inches(0.85), LGREY)
# ── LEFT COLUMN (x=0.18) ─────────────────────────────────────────────────────
LX = Inches(0.18)
CW = Inches(4.15)
# --- CARD 1: Definition & Overview ---
add_rect(slide1, LX, Inches(0.95), CW, Inches(1.38), WHITE, TEAL, 1)
# card header
add_rect(slide1, LX, Inches(0.95), CW, Inches(0.34), NAVY)
add_textbox(slide1, LX + Inches(0.08), Inches(0.97), CW, Inches(0.3),
"DEFINITION & OVERVIEW", 10.5, bold=True, color=GOLD, margins=0)
tb = slide1.shapes.add_textbox(LX + Inches(0.1), Inches(1.32), CW - Inches(0.2), Inches(0.98))
tf1 = tb.text_frame; tf1.word_wrap = True
def mini(tf, text, sz=9.5, bold=False, color=DGREY, bullet=True):
p = tf.add_paragraph()
r = p.add_run()
r.text = ("• " if bullet else "") + text
r.font.name = "Calibri"; r.font.size = Pt(sz)
r.font.bold = bold; r.font.color.rgb = color
# seed first paragraph
p0 = tf1.paragraphs[0]; r0 = p0.add_run()
r0.text = "• Clinical syndrome: acute renal failure + nephritic features + oliguria"
r0.font.name="Calibri"; r0.font.size=Pt(9.5); r0.font.color.rgb=DGREY
mini(tf1,"Renal biopsy → glomerular crescents (>50% glomeruli)")
mini(tf1,"Also called: Crescentic GN / RPGN")
mini(tf1,"EMERGENCY — weeks to irreversible ESKD if untreated", color=RED)
# --- CARD 2: Etiology / Types ---
add_rect(slide1, LX, Inches(2.38), CW, Inches(2.26), WHITE, TEAL, 1)
add_rect(slide1, LX, Inches(2.38), CW, Inches(0.34), NAVY)
add_textbox(slide1, LX + Inches(0.08), Inches(2.40), CW, Inches(0.3),
"ETIOLOGY — 3 TYPES (by IF Pattern)", 10.5, bold=True, color=GOLD, margins=0)
tb2 = slide1.shapes.add_textbox(LX + Inches(0.1), Inches(2.76), CW - Inches(0.2), Inches(1.82))
tf2 = tb2.text_frame; tf2.word_wrap = True
rows = [
("TYPE I — Anti-GBM (Goodpasture)", "Linear IgG on IF; anti-GBM Ab+; ± pulmonary haemorrhage", RED),
("TYPE II — Immune Complex", "Granular IF; post-infectious GN, SLE, IgA nephropathy, HSP (most common in children)", TEAL),
("TYPE III — Pauci-Immune (ANCA+)", "Negative IF; ANCA+; GPA / MPA; vasculitis", GREEN),
]
first=True
for title, detail, col in rows:
p = tf2.paragraphs[0] if first else tf2.add_paragraph()
first=False
r = p.add_run(); r.text = title
r.font.name="Calibri"; r.font.size=Pt(9.8); r.font.bold=True; r.font.color.rgb=col
p2 = tf2.add_paragraph()
r2 = p2.add_run(); r2.text = " " + detail
r2.font.name="Calibri"; r2.font.size=Pt(9); r2.font.color.rgb=DGREY
p2.space_after = Pt(2)
# --- CARD 3: Clinical Features ---
add_rect(slide1, LX, Inches(4.69), CW, Inches(1.52), WHITE, TEAL, 1)
add_rect(slide1, LX, Inches(4.69), CW, Inches(0.34), NAVY)
add_textbox(slide1, LX + Inches(0.08), Inches(4.71), CW, Inches(0.3),
"CLINICAL FEATURES", 10.5, bold=True, color=GOLD, margins=0)
tb3 = slide1.shapes.add_textbox(LX + Inches(0.1), Inches(5.07), CW - Inches(0.2), Inches(1.08))
tf3 = tb3.text_frame; tf3.word_wrap = True
p0b = tf3.paragraphs[0]; r0b = p0b.add_run()
r0b.text = "• Haematuria (smoky/cola urine) + RBC casts in urine"
r0b.font.name="Calibri"; r0b.font.size=Pt(9.5); r0b.font.color.rgb=DGREY
mini(tf3,"Oliguria / anuria — rapidly worsening")
mini(tf3,"Oedema, hypertension, proteinuria (may reach nephrotic range)")
mini(tf3,"Rapid rise in serum creatinine / BUN over days–weeks")
mini(tf3,"Systemic features if associated disease (rash, arthritis, haemoptysis)")
# ── MIDDLE COLUMN ─────────────────────────────────────────────────────────────
MX = Inches(4.52)
MW = Inches(4.15)
# --- CARD 4: Pathogenesis ---
add_rect(slide1, MX, Inches(0.95), MW, Inches(1.68), WHITE, TEAL, 1)
add_rect(slide1, MX, Inches(0.95), MW, Inches(0.34), NAVY)
add_textbox(slide1, MX + Inches(0.08), Inches(0.97), MW, Inches(0.3),
"PATHOGENESIS", 10.5, bold=True, color=GOLD, margins=0)
tb4 = slide1.shapes.add_textbox(MX + Inches(0.1), Inches(1.32), MW - Inches(0.2), Inches(1.26))
tf4 = tb4.text_frame; tf4.word_wrap = True
p0c = tf4.paragraphs[0]; r0c = p0c.add_run()
r0c.text = "• Severe glomerular injury → breaks in GBM → fibrin leaks into Bowman's space"
r0c.font.name="Calibri"; r0c.font.size=Pt(9.5); r0c.font.color.rgb=DGREY
mini(tf4,"Parietal epithelial cells + monocytes proliferate → CRESCENT")
mini(tf4,"Crescent fills & obliterates Bowman's space → compresses capillary tuft")
mini(tf4,"Crescents scar → progressive glomerulosclerosis → ESKD")
mini(tf4,"Trigger: immune-mediated (anti-GBM Ab / immune complexes / ANCA)")
# --- CARD 5: Morphology ---
add_rect(slide1, MX, Inches(2.68), MW, Inches(2.10), WHITE, TEAL, 1)
add_rect(slide1, MX, Inches(2.68), MW, Inches(0.34), NAVY)
add_textbox(slide1, MX + Inches(0.08), Inches(2.70), MW, Inches(0.3),
"MORPHOLOGY (Biopsy Findings)", 10.5, bold=True, color=GOLD, margins=0)
tb5 = slide1.shapes.add_textbox(MX + Inches(0.1), Inches(3.06), MW - Inches(0.2), Inches(1.65))
tf5 = tb5.text_frame; tf5.word_wrap = True
p0d = tf5.paragraphs[0]; r0d = p0d.add_run()
r0d.text = "Light Microscopy:"
r0d.font.name="Calibri"; r0d.font.size=Pt(9.8); r0d.font.bold=True; r0d.font.color.rgb=NAVY
mini(tf5,"Cellular crescents (epithelial + monocyte proliferation) in Bowman's space", bullet=True)
mini(tf5,"Segmental capillary necrosis; GBM breaks", bullet=True)
mini(tf5,"Fibrin deposition", bullet=True)
p2b = tf5.add_paragraph()
r2b = p2b.add_run(); r2b.text = "Immunofluorescence:"
r2b.font.name="Calibri"; r2b.font.size=Pt(9.8); r2b.font.bold=True; r2b.font.color.rgb=NAVY
mini(tf5,"Type I → Linear IgG + C3 along GBM", bullet=True)
mini(tf5,"Type II → Granular IgG/C3 (mesangium & GBM)", bullet=True)
mini(tf5,"Type III → Negative (pauci-immune)", bullet=True)
pem = tf5.add_paragraph()
rem = pem.add_run(); rem.text = "Electron Microscopy: GBM ruptures; subepithelial/subendothelial deposits (Type II)"
rem.font.name="Calibri"; rem.font.size=Pt(9); rem.font.color.rgb=DGREY
# --- CARD 6: Investigations ---
add_rect(slide1, MX, Inches(4.83), MW, Inches(1.38), WHITE, TEAL, 1)
add_rect(slide1, MX, Inches(4.83), MW, Inches(0.34), NAVY)
add_textbox(slide1, MX + Inches(0.08), Inches(4.85), MW, Inches(0.3),
"INVESTIGATIONS", 10.5, bold=True, color=GOLD, margins=0)
tb6 = slide1.shapes.add_textbox(MX + Inches(0.1), Inches(5.21), MW - Inches(0.2), Inches(0.94))
tf6 = tb6.text_frame; tf6.word_wrap = True
p0e = tf6.paragraphs[0]; r0e = p0e.add_run()
r0e.text = "• Urinalysis: RBC casts, proteinuria, haematuria (nephritic sediment)"
r0e.font.name="Calibri"; r0e.font.size=Pt(9.5); r0e.font.color.rgb=DGREY
mini(tf6,"Serology: ANCA (PR3/MPO), Anti-GBM Ab, ANA/dsDNA, C3/C4, ASO titre")
mini(tf6,"Renal function: ↑ Cr, ↑ BUN, ↓ GFR (rapidly deteriorating)")
mini(tf6,"RENAL BIOPSY — gold standard (urgent)", bold=True, color=RED)
# ── RIGHT COLUMN — Image + Key Facts ────────────────────────────────────────
RX = Inches(8.87)
RW = Inches(4.25)
# HISTOLOGY IMAGE card
add_rect(slide1, RX, Inches(0.95), RW, Inches(2.95), WHITE, TEAL, 1)
add_rect(slide1, RX, Inches(0.95), RW, Inches(0.34), NAVY)
add_textbox(slide1, RX + Inches(0.08), Inches(0.97), RW, Inches(0.3),
"HISTOLOGY — Crescent Formation (H&E)", 10.5, bold=True, color=GOLD, margins=0)
# Download image
result = json.loads(subprocess.check_output([
"python", "/tmp/skills/shared/scripts/fetch_images.py",
"https://cdn.orris.care/cdss_images/Pathology_1760055322521_a9db5896-4abe-4396-b007-9fb56d4583ce.jpg"
]))
if result[0]["base64"]:
raw = base64.b64decode(result[0]["base64"].split(",",1)[1])
slide1.shapes.add_picture(io.BytesIO(raw),
RX + Inches(0.12), Inches(1.32),
width=RW - Inches(0.24), height=Inches(2.22))
add_textbox(slide1, RX + Inches(0.1), Inches(3.56), RW - Inches(0.2), Inches(0.26),
"▲ Cellular crescent compressing capillary tuft — hallmark of RPGN",
8, italic=True, color=DGREY, margins=0)
# QUICK COMPARISON TABLE
add_rect(slide1, RX, Inches(3.95), RW, Inches(2.26), WHITE, TEAL, 1)
add_rect(slide1, RX, Inches(3.95), RW, Inches(0.34), NAVY)
add_textbox(slide1, RX + Inches(0.08), Inches(3.97), RW, Inches(0.3),
"CRESCENT = DANGER SIGN", 10.5, bold=True, color=GOLD, margins=0)
# Draw table manually as text boxes
rows2 = [
("Feature", "RPGN / Crescentic GN", True),
("Onset", "Days to weeks", False),
("% Crescents", ">50% glomeruli on biopsy", False),
("Key symptom", "Rapidly worsening renal function", False),
("Urine", "RBC casts, heavy haematuria", False),
("Biopsy (urgency)", "URGENT — within 24–48 h", False),
("If untreated", "ESKD / dialysis-dependent", False),
]
y_off = Inches(4.32)
for feat, val, hdr in rows2:
add_rect(slide1, RX + Inches(0.08), y_off, Inches(1.55), Inches(0.265),
NAVY if hdr else LGREY, TEAL, 0.5)
add_rect(slide1, RX + Inches(1.63), y_off, RW - Inches(1.71), Inches(0.265),
NAVY if hdr else WHITE, TEAL, 0.5)
add_textbox(slide1, RX + Inches(0.1), y_off + Inches(0.03), Inches(1.5), Inches(0.23),
feat, 8.5, bold=hdr, color=WHITE if hdr else DGREY, margins=0)
add_textbox(slide1, RX + Inches(1.65), y_off + Inches(0.03), RW - Inches(1.75), Inches(0.23),
val, 8.5, bold=hdr, color=WHITE if hdr else DGREY, margins=0)
y_off += Inches(0.265)
# ── footer ───────────────────────────────────────────────────────────────────
add_rect(slide1, 0, H - Inches(0.23), W, Inches(0.23), NAVY)
add_textbox(slide1, Inches(0.3), H - Inches(0.22), Inches(9), Inches(0.2),
"Sources: Robbins Basic Pathology 10e | Comprehensive Clinical Nephrology 7e | Brenner & Rector's The Kidney",
7, italic=True, color=rgb(0xAA,0xCC,0xFF), margins=0)
# ═════════════════════════════════════════════════════════════════════════════
# SLIDE 2: Management | Prognosis | Pediatric Pearls | Summary
# ═════════════════════════════════════════════════════════════════════════════
slide2 = prs.slides.add_slide(blank)
add_rect(slide2, 0, 0, W, Inches(0.85), NAVY)
add_rect(slide2, W - Inches(0.7), 0, Inches(0.7), Inches(0.85), TEAL)
add_textbox(slide2, W - Inches(0.7), Inches(0.05), Inches(0.7), Inches(0.75),
"2/2", 14, bold=True, color=WHITE, align=PP_ALIGN.CENTER, margins=0)
add_textbox(slide2, Inches(0.25), Inches(0.06), Inches(9), Inches(0.32),
"NEPHRITIC & NEPHROTIC SYNDROME | Pediatrics — MBBS Final Year",
9.5, italic=True, color=rgb(0xAA,0xCC,0xFF), margins=0)
add_textbox(slide2, Inches(0.25), Inches(0.35), Inches(10), Inches(0.45),
"CRESCENTIC GN — MANAGEMENT, PROGNOSIS & PEDIATRIC PEARLS",
17, bold=True, color=WHITE, margins=0)
add_rect(slide2, Inches(0.25), Inches(0.82), Inches(6), Inches(0.04), GOLD)
add_rect(slide2, 0, Inches(0.85), W, H - Inches(0.85), LGREY)
# ── LEFT COLUMN ──────────────────────────────────────────────────────────────
# CARD: Management — General Principles
add_rect(slide2, LX, Inches(0.95), CW, Inches(2.48), WHITE, TEAL, 1)
add_rect(slide2, LX, Inches(0.95), CW, Inches(0.34), NAVY)
add_textbox(slide2, LX + Inches(0.08), Inches(0.97), CW, Inches(0.3),
"MANAGEMENT — General Principles", 10.5, bold=True, color=GOLD, margins=0)
tb7 = slide2.shapes.add_textbox(LX + Inches(0.1), Inches(1.32), CW - Inches(0.2), Inches(2.06))
tf7 = tb7.text_frame; tf7.word_wrap = True
p0f = tf7.paragraphs[0]; r0f = p0f.add_run()
r0f.text = "STEP 1 — Urgent Renal Biopsy (confirm diagnosis, classify type)"
r0f.font.name="Calibri"; r0f.font.size=Pt(9.8); r0f.font.bold=True; r0f.font.color.rgb=RED
mini(tf7,"STEP 2 — Pulse IV Methylprednisolone 500–1000 mg/day × 3 days", bold=True, color=NAVY)
mini(tf7," Then oral Prednisolone 1 mg/kg/day (taper over months)")
mini(tf7,"STEP 3 — Cyclophosphamide (oral or IV pulse) — especially Type II/III", bold=True, color=NAVY)
mini(tf7,"STEP 4 — Plasmapheresis/TPE — TYPE I (anti-GBM) & severe ANCA+", bold=True, color=NAVY)
mini(tf7," Removes circulating anti-GBM Ab / ANCA rapidly")
mini(tf7,"STEP 5 — Supportive: antihypertensives, diuretics, fluid management")
mini(tf7,"STEP 6 — Dialysis if severe AKI / oliguria unresponsive to treatment", color=RED)
# CARD: Type-specific treatment
add_rect(slide2, LX, Inches(3.48), CW, Inches(1.80), WHITE, TEAL, 1)
add_rect(slide2, LX, Inches(3.48), CW, Inches(0.34), NAVY)
add_textbox(slide2, LX + Inches(0.08), Inches(3.50), CW, Inches(0.3),
"TYPE-SPECIFIC TREATMENT", 10.5, bold=True, color=GOLD, margins=0)
tb8 = slide2.shapes.add_textbox(LX + Inches(0.1), Inches(3.86), CW - Inches(0.2), Inches(1.35))
tf8 = tb8.text_frame; tf8.word_wrap = True
rows3=[
("Type I (Anti-GBM):", "Steroids + Cyclophosphamide + PLASMAPHERESIS (essential)", RED),
("Type II (Immune Cx):", "Steroids ± Cyclophosphamide; treat underlying disease (SLE/HSP/post-infect)", TEAL),
("Type III (ANCA+):", "Steroids + Cyclophosphamide (or Rituximab); Plasmapheresis if dialysis-dependent", GREEN),
]
first2=True
for t, d, c in rows3:
p = tf8.paragraphs[0] if first2 else tf8.add_paragraph()
first2=False
r = p.add_run(); r.text = t
r.font.name="Calibri"; r.font.size=Pt(9.8); r.font.bold=True; r.font.color.rgb=c
p2=tf8.add_paragraph(); r2=p2.add_run(); r2.text=" "+d
r2.font.name="Calibri"; r2.font.size=Pt(9); r2.font.color.rgb=DGREY
# CARD: Prognosis
add_rect(slide2, LX, Inches(5.33), CW, Inches(1.38), WHITE, TEAL, 1)
add_rect(slide2, LX, Inches(5.33), CW, Inches(0.34), NAVY)
add_textbox(slide2, LX + Inches(0.08), Inches(5.35), CW, Inches(0.3),
"PROGNOSIS", 10.5, bold=True, color=GOLD, margins=0)
tb9 = slide2.shapes.add_textbox(LX + Inches(0.1), Inches(5.71), CW - Inches(0.2), Inches(0.94))
tf9 = tb9.text_frame; tf9.word_wrap = True
p0g = tf9.paragraphs[0]; r0g = p0g.add_run()
r0g.text = "• If initial Cr < 5.7 mg/dL → renal recovery in ~50–94% with treatment"
r0g.font.name="Calibri"; r0g.font.size=Pt(9.5); r0g.font.color.rgb=DGREY
mini(tf9,"If dialysis-dependent at onset → recovery very unlikely (0–18%)", color=RED)
mini(tf9,"Untreated → ESKD within weeks to months")
mini(tf9,"Crescents >80% → poor prognosis regardless of treatment", color=RED)
mini(tf9,"Children (Type II) generally have better outcomes than adults")
# ── MIDDLE COLUMN ─────────────────────────────────────────────────────────────
# CARD: Pediatric Pearls
add_rect(slide2, MX, Inches(0.95), MW, Inches(2.48), WHITE, TEAL, 1)
add_rect(slide2, MX, Inches(0.95), MW, Inches(0.34), NAVY)
add_textbox(slide2, MX + Inches(0.08), Inches(0.97), MW, Inches(0.3),
"PEDIATRIC PEARLS", 10.5, bold=True, color=GOLD, margins=0)
tb10 = slide2.shapes.add_textbox(MX + Inches(0.1), Inches(1.32), MW - Inches(0.2), Inches(2.06))
tf10 = tb10.text_frame; tf10.word_wrap = True
p0h = tf10.paragraphs[0]; r0h = p0h.add_run()
r0h.text = "Most common cause in children:"
r0h.font.name="Calibri"; r0h.font.size=Pt(9.8); r0h.font.bold=True; r0h.font.color.rgb=NAVY
mini(tf10,"Type II (Immune Complex) — especially post-streptococcal GN with crescents, HSP nephritis, SLE")
mini(tf10,"Type I (Anti-GBM/Goodpasture) — rare in children", color=DGREY)
pstar = tf10.add_paragraph()
rstar = pstar.add_run(); rstar.text = "Key distinguishing features in children:"
rstar.font.name="Calibri"; rstar.font.size=Pt(9.8); rstar.font.bold=True; rstar.font.color.rgb=NAVY
mini(tf10,"HSP nephritis (IgA vasculitis) — most common RPGN in children; purpura, arthritis, GI")
mini(tf10,"Post-streptococcal GN → rarely progresses to RPGN (crescentic variant)")
mini(tf10,"SLE nephritis Class IV → immune complex crescentic GN")
mini(tf10,"ANCA vasculitis — rare in children; check PR3/MPO-ANCA")
mini(tf10,"Always check: ASO titre, C3/C4, ANA, ANCA, anti-GBM Ab, urine R/E")
# CARD: Differentiating Nephritic vs RPGN
add_rect(slide2, MX, Inches(3.48), MW, Inches(1.90), WHITE, TEAL, 1)
add_rect(slide2, MX, Inches(3.48), MW, Inches(0.34), NAVY)
add_textbox(slide2, MX + Inches(0.08), Inches(3.50), MW, Inches(0.3),
"NEPHRITIC vs. RPGN — KEY DIFFERENCES", 10.5, bold=True, color=GOLD, margins=0)
cols_hdr = ["Feature", "Nephritic Syn.", "RPGN/Crescentic"]
cols_data = [
["Renal function", "Mildly impaired", "Rapidly worsening"],
["Oliguria", "Mild", "Severe / Anuria"],
["Time course", "Days–weeks (stable)", "Days → ESKD"],
["Biopsy", "Endocapillary prolif.", ">50% Crescents"],
["Proteinuria", "Non-nephrotic", "May be nephrotic"],
["Outcome", "Usually recovers", "Poor if untreated"],
]
y2 = Inches(3.85)
col_widths = [Inches(1.3), Inches(1.35), Inches(1.42)]
col_starts = [MX + Inches(0.08), MX + Inches(1.38), MX + Inches(2.73)]
for ci,(ch,bh) in enumerate(zip(cols_hdr, [True,True,True])):
add_rect(slide2, col_starts[ci], y2, col_widths[ci], Inches(0.28), NAVY, TEAL, 0.5)
add_textbox(slide2, col_starts[ci]+Inches(0.04), y2+Inches(0.03),
col_widths[ci], Inches(0.22), ch, 8.5, bold=True, color=GOLD, margins=0)
for row in cols_data:
y2 += Inches(0.28)
for ci, cell in enumerate(row):
bg = LGREY if ci==0 else WHITE
add_rect(slide2, col_starts[ci], y2, col_widths[ci], Inches(0.26), bg, TEAL, 0.5)
add_textbox(slide2, col_starts[ci]+Inches(0.04), y2+Inches(0.02),
col_widths[ci], Inches(0.22), cell, 8, bold=(ci==0), color=DGREY if ci>0 else NAVY, margins=0)
# CARD: Mnemonics / Exam Tips
add_rect(slide2, MX, Inches(5.43), MW, Inches(1.28), WHITE, GOLD, 1.5)
add_rect(slide2, MX, Inches(5.43), MW, Inches(0.34), rgb(0xB8, 0x86, 0x00))
add_textbox(slide2, MX + Inches(0.08), Inches(5.45), MW, Inches(0.3),
"EXAM MNEMONICS", 10.5, bold=True, color=WHITE, margins=0)
tb11 = slide2.shapes.add_textbox(MX + Inches(0.1), Inches(5.81), MW - Inches(0.2), Inches(0.85))
tf11 = tb11.text_frame; tf11.word_wrap = True
p0i = tf11.paragraphs[0]; r0i = p0i.add_run()
r0i.text = '"CRESCENT = CATASTROPHE" — >50% crescents on biopsy = RPGN = emergency'
r0i.font.name="Calibri"; r0i.font.size=Pt(9.5); r0i.font.bold=True; r0i.font.color.rgb=RED
mini(tf11,"IF Pattern: Linear=Anti-GBM | Granular=Immune Cx | Negative=Pauci-Immune")
mini(tf11,"Children: TYPE II most common (post-strep, HSP, SLE) | Tx: steroids + CTX")
# ── RIGHT COLUMN — IF image + Summary Box ────────────────────────────────────
# IF image
add_rect(slide2, RX, Inches(0.95), RW, Inches(2.46), WHITE, TEAL, 1)
add_rect(slide2, RX, Inches(0.95), RW, Inches(0.34), NAVY)
add_textbox(slide2, RX + Inches(0.08), Inches(0.97), RW, Inches(0.3),
"IMMUNOFLUORESCENCE — Linear IgG (Type I/Anti-GBM)", 10.5, bold=True, color=GOLD, margins=0)
result2 = json.loads(subprocess.check_output([
"python", "/tmp/skills/shared/scripts/fetch_images.py",
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_3ff78042c376e405449dce44d3f6b32346757a632a1b9928ae67a4ddeb49c5e2.jpg"
]))
if result2[0]["base64"]:
raw2 = base64.b64decode(result2[0]["base64"].split(",",1)[1])
slide2.shapes.add_picture(io.BytesIO(raw2),
RX + Inches(0.12), Inches(1.32),
width=RW - Inches(0.24), height=Inches(1.76))
add_textbox(slide2, RX + Inches(0.1), Inches(3.1), RW - Inches(0.2), Inches(0.26),
"▲ Linear IgG staining along GBM — pathognomonic for Type I RPGN",
8, italic=True, color=DGREY, margins=0)
# SUMMARY / MEMORY BOX
add_rect(slide2, RX, Inches(3.45), RW, Inches(3.26), WHITE, GOLD, 1.5)
add_rect(slide2, RX, Inches(3.45), RW, Inches(0.36), rgb(0xB8,0x86,0x00))
add_textbox(slide2, RX + Inches(0.08), Inches(3.47), RW, Inches(0.32),
"SUMMARY — HIGH-YIELD POINTS", 11, bold=True, color=WHITE, margins=0)
tb12 = slide2.shapes.add_textbox(RX + Inches(0.12), Inches(3.85), RW - Inches(0.24), Inches(2.78))
tf12 = tb12.text_frame; tf12.word_wrap = True
summary_points = [
("1.", "RPGN = nephritic syndrome + rapidly worsening renal failure over days to weeks", False),
("2.", "Histological hallmark = glomerular CRESCENTS (>50% glomeruli)", True),
("3.", "3 types by immunofluorescence: Linear (anti-GBM) | Granular (IC) | Negative (Pauci)", False),
("4.", "In CHILDREN: Type II (IC) most common — HSP, post-strep GN, SLE", True),
("5.", "Diagnosis: URGENT renal biopsy + ANCA, anti-GBM Ab, C3/C4, ANA", False),
("6.", "Treatment: Pulse Methylprednisolone + Cyclophosphamide ± Plasmapheresis", True),
("7.", "Prognosis: Depends on % crescents and Cr at presentation; untreated → ESKD", False),
("8.", "REMEMBER: If Cr ≥ 5.7 mg/dL at presentation → renal recovery very unlikely", True),
]
fp=True
for num, pt, hl in summary_points:
p = tf12.paragraphs[0] if fp else tf12.add_paragraph()
fp=False
r1=p.add_run(); r1.text=num+" "
r1.font.name="Calibri"; r1.font.size=Pt(9.5); r1.font.bold=True
r1.font.color.rgb = RED if hl else TEAL
r2=p.add_run(); r2.text=pt
r2.font.name="Calibri"; r2.font.size=Pt(9.5); r2.font.bold=hl
r2.font.color.rgb = DGREY
# ── footer ───────────────────────────────────────────────────────────────────
add_rect(slide2, 0, H - Inches(0.23), W, Inches(0.23), NAVY)
add_textbox(slide2, Inches(0.3), H - Inches(0.22), Inches(9), Inches(0.2),
"Sources: Robbins Basic Pathology 10e | Comprehensive Clinical Nephrology 7e | Brenner & Rector's The Kidney",
7, italic=True, color=rgb(0xAA,0xCC,0xFF), margins=0)
# ── SAVE ─────────────────────────────────────────────────────────────────────
out = "/tmp/workspace/crescentic-nephritis/Crescentic_Nephritis_Pediatrics.pptx"
prs.save(out)
print("Saved:", out)
cd /tmp/workspace/crescentic-nephritis && python build_slides.py 2>&1
find /tmp/skills -name "fetch_images.py" 2>/dev/null; ls /tmp/skills/
~/crescentic-nephritis/build_slides.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/crescentic-nephritis/build_slides.py'
~/crescentic-nephritis/build_slides.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/crescentic-nephritis/build_slides.py'
~/crescentic-nephritis/build_slides.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/crescentic-nephritis/build_slides.py'
cd /tmp/workspace/crescentic-nephritis && python build_slides.py 2>&1
cd /tmp/workspace/crescentic-nephritis && python3 -c " import requests, io from PIL import Image # Convert WEBP -> PNG in memory and patch the script url1 = 'https://cdn.orris.care/cdss_images/Pathology_1760055322521_a9db5896-4abe-4396-b007-9fb56d4583ce.jpg' r = requests.get(url1, timeout=15) img = Image.open(io.BytesIO(r.content)).convert('RGB') img.save('/tmp/workspace/crescentic-nephritis/histo.png', 'PNG') print('Saved histo.png', img.size) url2 = 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_3ff78042c376e405449dce44d3f6b32346757a632a1b9928ae67a4ddeb49c5e2.jpg' r2 = requests.get(url2, timeout=15) img2 = Image.open(io.BytesIO(r2.content)).convert('RGB') img2.save('/tmp/workspace/crescentic-nephritis/if.png', 'PNG') print('Saved if.png', img2.size) " 2>&1
~/crescentic-nephritis/build_slides.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/crescentic-nephritis/build_slides.py'
~/crescentic-nephritis/build_slides.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/crescentic-nephritis/build_slides.py'
cd /tmp/workspace/crescentic-nephritis && python build_slides.py 2>&1
Crescentic Nephritis Pediatrics
Presentation · PPTX
| Section | Key Content |
|---|---|
| Definition & Overview | Acute renal failure + nephritic features; crescents on biopsy; "weeks to ESKD" warning |
| Etiology - 3 Types | Type I (Anti-GBM/Goodpasture) - linear IF; Type II (Immune Complex - most common in children) - granular IF; Type III (Pauci-immune/ANCA+) - negative IF |
| Pathogenesis | GBM breaks → fibrin in Bowman's space → parietal epithelial + monocyte proliferation → CRESCENT → scarring → ESKD |
| Morphology (Biopsy) | LM: crescents, capillary necrosis, fibrin; IF pattern by type; EM: GBM ruptures, immune deposits |
| Clinical Features | Haematuria with RBC casts, oliguria, hypertension, rapidly rising creatinine |
| Investigations | Urinalysis, ANCA/Anti-GBM/ANA/C3/C4/ASO, urgent renal biopsy (gold standard) |
| Histology image | Real H&E biopsy photo showing cellular crescent compressing capillary tuft |
| Quick comparison table | Feature-by-feature: RPGN vs typical nephritic syndrome |
| Section | Key Content |
|---|---|
| Management (6 steps) | Urgent biopsy → Pulse IV methylprednisolone × 3 days → Cyclophosphamide → Plasmapheresis (Type I & severe ANCA) → Supportive → Dialysis if needed |
| Type-specific treatment | Type I: steroids + CTX + plasmapheresis (essential); Type II: steroids ± CTX + treat cause; Type III: steroids + CTX/Rituximab ± plasma exchange |
| Prognosis | Cr <5.7 mg/dL → 50-94% recovery; dialysis-dependent at onset → very unlikely recovery; crescents >80% = poor prognosis |
| Pediatric Pearls | Type II most common in children (HSP nephritis, post-strep GN, SLE Class IV); rare Type I; always check ASO, C3/C4, ANA, ANCA, anti-GBM Ab |
| Nephritic vs RPGN table | 6-row comparison: renal function, oliguria, time course, biopsy findings, proteinuria, outcome |
| Exam Mnemonics | "CRESCENT = CATASTROPHE"; IF pattern: Linear=Anti-GBM / Granular=Immune Complex / Negative=Pauci-immune |
| Summary - 8 high-yield points | Complete exam-ready bullet summary with key numbers |
| IF image | Real immunofluorescence photo showing linear IgG staining along GBM (Type I pattern) |
Refer from op ghai pediatricts book only