Urinary bladder carcinoma for surgery resident essy
"Urinary Bladder Neoplasms"[MeSH Terms] AND surgery
EAU Guidelines 2026 muscle invasive metastatic bladder cancer radical cystectomy urinary diversion
diagram bladder cancer staging transurethral resection muscle invasive bladder wall
https://uroweb.org/guidelines/muscle-invasive-and-metastatic…
| Type | Approximate frequency and associations |
|---|---|
| Urothelial carcinoma | >90% in most regions; papillary or flat carcinoma in situ |
| Squamous-cell carcinoma | Chronic irritation, schistosomiasis, indwelling catheter |
| Adenocarcinoma | Primary vesical adenocarcinoma, urachal tumor, chronic irritation |
| Small-cell/neuroendocrine carcinoma | Rare, aggressive |
| Others | Sarcoma, lymphoma, metastasis |
| Category | Description |
|---|---|
| Ta | Noninvasive papillary carcinoma |
| Tis | Flat carcinoma in situ |
| T1 | Invades lamina propria/subepithelial connective tissue |
| T2a | Invades inner half of muscularis propria |
| T2b | Invades outer half of muscularis propria |
| T3a | Microscopic perivesical fat invasion |
| T3b | Macroscopic extravesical mass |
| T4a | Invades prostatic stroma, uterus, or vagina |
| T4b | Invades pelvic wall or abdominal wall |
| N1-N3 | Regional nodal metastases |
| M1 | Distant metastasis |
| Patient | Standard extirpative procedure |
|---|---|
| Male | Bladder, prostate, seminal vesicles, distal ureters, and usually proximal urethra as indicated |
| Female | Bladder, urethra, distal ureters, anterior vaginal wall, uterus/cervix, and adnexa as appropriate |
| Both | Bilateral pelvic lymph-node dissection |
Include diagrams nd flowcharts
EAU non-muscle invasive bladder cancer guideline 2026 risk stratification flowchart TURBT BCG
"Urinary Bladder Neoplasms"[MeSH Terms] AND "Transurethral Resection of Prostate"

BLADDER LUMEN
│
▼
┌─────────────────────────────┐
│ Urothelium │ Ta = Papillary, non-invasive
│ │ Tis = Flat carcinoma in situ
├─────────────────────────────┤
│ Lamina propria │ T1 = Invades lamina propria
├─────────────────────────────┤
│ Muscularis propria │ T2 = Muscle-invasive
│ • Inner half = T2a │
│ • Outer half = T2b │
├─────────────────────────────┤
│ Perivesical fat │ T3 = Perivesical tissue invasion
├─────────────────────────────┤
│ Adjacent organs │ T4 = Prostate/seminal vesicle,
│ │ uterus/vagina, pelvic wall
└─────────────────────────────┘
Painless visible hematuria
│
▼
History + examination
Urinalysis/culture + CBC + renal function
│
▼
CT urography / CT abdomen-pelvis
│
▼
Flexible cystoscopy
│
┌──────┴────────┐
│ │
No lesion Bladder lesion
│ │
Investigate ▼
other causes TURBT + bimanual examination under anesthesia
│
▼
Histology: grade, stage, CIS, variant histology,
lymphovascular invasion, detrusor muscle present?
│
▼
Risk-stratified definitive management
TURBT histopathology
│
├──────────────────────────────────────────┐
│ │
▼ ▼
NMIBC: Ta, T1, Tis MIBC: T2 or greater
│ │
▼ ▼
Risk stratification Staging CT chest,
low / intermediate / high / very high abdomen and pelvis
│ │
├─────────────┬──────────────┬─────────────┘
│ │ │
▼ ▼ ▼
Low risk Intermediate risk High-risk / CIS / T1 high grade
│ │ │
Complete TURBT TURBT + intravesical Repeat TURBT if indicated
+ immediate chemotherapy or BCG │
single-dose ▼
intravesical Induction + maintenance BCG
chemotherapy │
│ ├─────────────┐
▼ │ │
Cystoscopic follow-up Response BCG-unresponsive /
very-high-risk disease
│
▼
Early radical cystectomy
Initial TURBT
│
▼
Is any of the following present?
│
├─ Incomplete initial resection
├─ T1 tumor
├─ High-grade Ta tumor
├─ No detrusor muscle in specimen
└─ Doubt regarding stage or completeness
│
▼
YES ─────────► Repeat TURBT in 2-6 weeks
│
▼
Restage and decide intravesical therapy
versus early radical cystectomy
│
NO ──────────► Risk-adapted adjuvant treatment and surveillance

MIBC: cT2-T4a N0 M0
│
▼
Multidisciplinary assessment
Fitness, renal function, performance status,
histology, imaging, patient preference
│
├──────────────────────────────────────┐
│ │
▼ ▼
Cisplatin-fit Cisplatin-unfit
│ │
▼ ▼
Neoadjuvant cisplatin-based Radical cystectomy or
systemic therapy selected trimodality therapy
│ │
└───────────────────┬──────────────────┘
▼
Radical cystectomy + bilateral pelvic lymph-node dissection
│
▼
Appropriate urinary diversion
┌─────────────────┼──────────────────┐
▼ ▼ ▼
Ileal conduit Orthotopic neobladder Continent reservoir
│
▼
Final histopathology → consider adjuvant systemic treatment,
surveillance, rehabilitation
Radical cystectomy
│
┌────────────────┴─────────────────┐
│ │
▼ ▼
Male patient Female patient
Bladder + prostate + Bladder + urethra +
seminal vesicles + distal ureters + anterior
distal ureters vaginal wall ± uterus/adnexa
│ │
└────────────────┬─────────────────┘
▼
Bilateral pelvic lymph-node dissection
│
▼
Urinary diversion
┌───────────────────┼────────────────────┐
│ │ │
▼ ▼ ▼
Ileal conduit Orthotopic ileal Continent cutaneous
(incontinent) neobladder reservoir
(voiding per urethra) (intermittent catheterization)
| Diversion | Main indication | Important limitation |
|---|---|---|
| Ileal conduit | Most patients, frail patients, simplest reliable diversion | External stoma appliance |
| Orthotopic neobladder | Motivated, fit patient with negative urethral margin | Continence/retention issues; may require self-catheterization |
| Continent cutaneous pouch | Patient unable to have neobladder but able to catheterize | Requires regular clean intermittent catheterization |
MIBC patient requests bladder preservation
│
▼
Assess suitability
│
├─ Solitary/unifocal tumor?
├─ Complete or maximal TURBT feasible?
├─ No extensive CIS?
├─ No severe hydronephrosis?
├─ Functional bladder with adequate capacity?
├─ Suitable for chemotherapy and radiotherapy?
└─ Will comply with close surveillance?
│
┌────────┴─────────┐
│ │
▼ ▼
Suitable Unsuitable
│ │
▼ ▼
Maximal TURBT + Radical cystectomy +
concurrent pelvic lymph-node dissection +
chemoradiation urinary diversion
│
▼
Cystoscopy, cytology and imaging surveillance
│
├─ Complete response → continue surveillance
│
└─ Persistent/recurrent invasive tumor → salvage cystectomy
HEMATURIA → CYSTOSCOPY → TURBT WITH MUSCLE → HISTOPATHOLOGY
│
┌─────────────────────┴──────────────────────┐
▼ ▼
NMIBC: Ta/T1/Tis MIBC: ≥T2
│ │
Risk stratify: low/intermediate/high Stage with CT
│ │
┌─────────────┼──────────────┐ ┌────────┴─────────┐
▼ ▼ ▼ ▼ ▼
Low risk Intermediate High risk Fit for cystectomy Selected candidate
TURBT + TURBT + chemo Repeat TURBT + Neoadjuvant therapy for trimodality
single or BCG BCG or early RC + radical cystectomy TURBT + CRT
instillation
│ │
└──────────────► Lifelong surveillance ◄─────┘
Make a presentation on bladder carcinoma
~/
2026 EAU guidelines bladder cancer non-muscle invasive muscle invasive management TURBT BCG radical cystectomy
mkdir -p "/tmp/workspace/bladder-carcinoma-presentation/assets" "/tmp/workspace/bladder-carcinoma-presentation/output" "/tmp/workspace/bladder-carcinoma-presentation/src" && python /tmp/skills/shared/scripts/fetch_images.py "https://cdn.orris.care/cdss_images/BAILY_1760535111430_feadb8b1-7e4e-49a2-a674-f52a30042c0f.png" "https://cdn.orris.care/cdss_images/GLGCA_4543173_1766512484420_69729039-1cef-4d77-bee7-5da78f530dbc_b93d4941-eb72-41b1-b45f-83d6032dbd64.png" > "/tmp/workspace/bladder-carcinoma-presentation/assets/images.json"
~/bladder-carcinoma-presentation/src/create_presentation.py
import json, base64, os
from io import BytesIO
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
from pptx.enum.shapes import MSO_SHAPE, MSO_CONNECTOR
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.enum.dml import MSO_THEME_COLOR
OUT='/tmp/workspace/bladder-carcinoma-presentation/output/Bladder_Carcinoma_Surgery_Resident.pptx'
ASSETS='/tmp/workspace/bladder-carcinoma-presentation/assets'
W,H=13.333,7.5
NAVY=RGBColor(16,43,67); TEAL=RGBColor(0,122,130); CYAN=RGBColor(49,181,192); LIGHT=RGBColor(240,247,248)
DARK=RGBColor(28,40,51); GREY=RGBColor(100,116,130); RED=RGBColor(177,55,60); GREEN=RGBColor(52,137,95); GOLD=RGBColor(210,151,42); WHITE=RGBColor(255,255,255)
prs=Presentation(); prs.slide_width=Inches(W); prs.slide_height=Inches(H)
blank=prs.slide_layouts[6]
# image assets
with open(os.path.join(ASSETS,'images.json')) as f: imgdata=json.load(f)
imgs=[]
for i,x in enumerate(imgdata):
if x.get('base64'):
mime,b64=x['base64'].split(',',1)
path=os.path.join(ASSETS,f'img_{i}.png')
with open(path,'wb') as g:g.write(base64.b64decode(b64))
imgs.append(path)
staging_img=imgs[0] if imgs else None
mibc_img=imgs[1] if len(imgs)>1 else None
def bg(slide, dark=False):
fill=slide.background.fill; fill.solid(); fill.fore_color.rgb=NAVY if dark else WHITE
# top bar
sh=slide.shapes.add_shape(MSO_SHAPE.RECTANGLE,0,0,Inches(W),Inches(.14)); sh.fill.solid(); sh.fill.fore_color.rgb=CYAN; sh.line.fill.background()
def text(slide,x,y,w,h,s,size=18,color=DARK,bold=False,align=PP_ALIGN.LEFT, font='Aptos', valign=MSO_ANCHOR.TOP):
tb=slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h)); tf=tb.text_frame; tf.clear(); tf.word_wrap=True; tf.margin_left=0; tf.margin_right=0; tf.margin_top=0; tf.margin_bottom=0; tf.vertical_anchor=valign
for j,line in enumerate(s.split('\n')):
p=tf.paragraphs[0] if j==0 else tf.add_paragraph(); p.text=line; p.alignment=align; p.space_after=Pt(4)
for r in p.runs: r.font.name=font; r.font.size=Pt(size); r.font.bold=bold; r.font.color.rgb=color
return tb
def title(slide,t,sub=None,dark=False):
text(slide,.55,.35,12.1,.55,t,28,WHITE if dark else NAVY,True)
if sub:text(slide,.57,.97,12,.3,sub,11,CYAN if dark else TEAL,False)
def footer(slide,n,dark=False):
text(slide,.55,7.15,7,.18,'Bladder carcinoma | Surgery resident teaching deck',9,RGBColor(182,207,211) if dark else GREY)
text(slide,12.2,7.15,.55,.18,str(n),9,RGBColor(182,207,211) if dark else GREY,True,PP_ALIGN.RIGHT)
def box(slide,x,y,w,h,label,fill=LIGHT,line=TEAL,fs=16,tc=DARK, radius=True):
shape=slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE if radius else MSO_SHAPE.RECTANGLE, Inches(x), Inches(y), Inches(w), Inches(h))
shape.fill.solid(); shape.fill.fore_color.rgb=fill; shape.line.color.rgb=line; shape.line.width=Pt(1.25)
text(slide,x+.14,y+.08,w-.28,h-.16,label,fs,tc,False,PP_ALIGN.CENTER,valign=MSO_ANCHOR.MIDDLE)
return shape
def arrow(slide,x1,y1,x2,y2,color=TEAL):
ln=slide.shapes.add_connector(MSO_CONNECTOR.STRAIGHT,Inches(x1), Inches(y1), Inches(x2), Inches(y2)); ln.line.color.rgb=color; ln.line.width=Pt(2); ln.line.end_arrowhead=True
def bullet_slide(t,sub,bullets,accent=TEAL):
s=prs.slides.add_slide(blank); bg(s); title(s,t,sub); y=1.45
for head,body in bullets:
box(s,.65,y,11.95,.77,'',RGBColor(248,251,252),RGBColor(212,225,228),12)
text(s,.9,y+.12,2.65,.24,head,16,accent,True)
text(s,3.45,y+.1,8.8,.44,body,14,DARK)
y+=.92
return s
# 1
s=prs.slides.add_slide(blank); bg(s,True)
text(s,.7,1.1,7.8,1.15,'CARCINOMA OF\nTHE URINARY BLADDER',34,WHITE,True)
text(s,.74,2.45,6.9,.55,'Surgery resident teaching presentation',19,RGBColor(194,229,232))
text(s,.75,3.18,5.6,.55,'Diagnosis • TURBT • risk-adapted NMIBC • radical cystectomy • diversion',15,RGBColor(194,229,232))
# visual simplified bladder
shape=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(9.2),Inches(1.35),Inches(2.7),Inches(3.0));shape.fill.solid();shape.fill.fore_color.rgb=RGBColor(50,139,149);shape.line.color.rgb=CYAN;shape.line.width=Pt(2)
for x in [9.52,10.65]:
l=s.shapes.add_connector(MSO_CONNECTOR.STRAIGHT,Inches(x),Inches(.72),Inches(x+.25),Inches(1.45));l.line.color.rgb=CYAN;l.line.width=Pt(4)
l=s.shapes.add_connector(MSO_CONNECTOR.STRAIGHT,Inches(10.55),Inches(4.25),Inches(10.55),Inches(5.18));l.line.color.rgb=CYAN;l.line.width=Pt(5)
text(s,.75,6.6,7,.22,'A practical, exam-oriented surgical approach',13,RGBColor(194,229,232))
footer(s,1,True)
# 2
s=bullet_slide('Learning objectives','By the end, the resident should be able to:',[
('Recognize','Identify risk factors, presentation, and red flags for advanced disease.'),
('Stage','Explain TURBT requirements and TNM depth of invasion.'),
('Treat NMIBC','Select repeat TURBT, intravesical chemotherapy/BCG, or early cystectomy.'),
('Treat MIBC','Plan staging, perioperative therapy, radical cystectomy, and urinary diversion.'),
('Follow up','Anticipate surveillance and diversion-specific postoperative issues.')]); footer(s,2)
# 3
s=bullet_slide('Epidemiology and risk factors','Urothelial carcinoma is the dominant histology in most regions.',[
('Most important','Cigarette smoking.'),('Occupational','Aromatic amines: dye, rubber, leather, paint, printing and chemical exposure.'),('Chronic irritation','Long-term catheter, calculi, chronic infection; schistosomiasis favors squamous carcinoma.'),('Iatrogenic','Cyclophosphamide and pelvic radiation.'),('Field change','Urothelial tumors can coexist in renal pelvis, ureters, bladder and urethra.')]); footer(s,3)
# 4
s=prs.slides.add_slide(blank); bg(s); title(s,'Clinical presentation and initial assessment','Painless visible hematuria is bladder carcinoma until proved otherwise.')
box(s,.7,1.55,3.5,1.1,'Painless visible hematuria\n± clots / anemia',RGBColor(253,241,241),RED,18,RED)
box(s,4.92,1.55,3.5,1.1,'Irritative LUTS\nconsider CIS',RGBColor(242,248,252),TEAL,18,TEAL)
box(s,9.13,1.55,3.5,1.1,'Flank pain, edema, bone pain\nthink advanced disease',RGBColor(253,248,239),GOLD,17,GOLD)
text(s,.75,3.15,3.5,.3,'Core assessment',18,NAVY,True)
for i,(h,b) in enumerate([('History','Smoking, exposure, radiation, cyclophosphamide, prior tumors.'),('Examination','Abdominal/pelvic mass, nodes, edema; bimanual exam under anesthesia.'),('Tests','Urinalysis/culture, CBC, renal function, cytology when high-grade/CIS suspected.')]):
box(s,.75,3.7+i*.78,11.85,.58,h+' | '+b,RGBColor(248,251,252),RGBColor(210,226,229),14)
footer(s,4)
#5 staging
s=prs.slides.add_slide(blank); bg(s); title(s,'Pathology and T staging','Depth of invasion determines treatment.')
if staging_img: s.shapes.add_picture(staging_img,Inches(.6),Inches(1.35),width=Inches(6.4),height=Inches(5.35))
text(s,7.35,1.5,5.2,.35,'Key pathological categories',20,NAVY,True)
for i,(h,b,c) in enumerate([('Ta / Tis','Non-muscle-invasive papillary tumor / flat CIS',TEAL),('T1','Lamina propria invasion',GOLD),('T2','Muscularis propria invasion = MIBC',RED),('T3','Perivesical fat invasion',RED),('T4','Adjacent organ or pelvic/abdominal wall invasion',RED)]):
box(s,7.35,2.0+i*.75,5.1,.57,h+' | '+b,RGBColor(249,251,252),c,13)
text(s,7.35,6.08,5.1,.4,'TURBT specimen should contain detrusor muscle whenever staging requires it.',14,RED,True)
footer(s,5)
#6 diagnostic
s=prs.slides.add_slide(blank); bg(s); title(s,'Diagnostic pathway','Cystoscopy and TURBT establish the diagnosis. Cross-sectional imaging stages disease.')
steps=[('Hematuria / symptoms','History, urinalysis, CBC, renal function'),('CT urography','Upper tracts, renal parenchyma, nodes'),('Cystoscopy','Map tumor, assess urethra and bladder'),('TURBT','Complete resection + separate deep specimen'),('Histology + imaging','Grade, stage, CIS, variants, LVI; chest CT for MIBC')]
for i,(a,b) in enumerate(steps):
x=.7+i*2.5; box(s,x,2.3,2.0,1.35,a+'\n'+b,RGBColor(243,250,251),TEAL,13)
if i<4: arrow(s,x+2.0,2.97,x+2.45,2.97)
text(s,.78,5.15,11.5,.7,'Bimanual examination under anesthesia before and after TURBT helps assess fixation and local extension. Positive cytology is most useful for high-grade disease and CIS.',17,DARK)
footer(s,6)
#7 turbt
s=bullet_slide('TURBT: the pivotal surgical procedure','Diagnostic, staging and therapeutic for non-muscle-invasive disease.',[
('Objectives','Complete visible resection, obtain detrusor muscle, define grade/stage and control bleeding.'),
('Technique','Inspect systematically; resect exophytic tumor then deep base separately; label specimens.'),
('Lateral wall','Anticipate obturator reflex. Use meticulous technique and consider obturator nerve block.'),
('Complications','Hematuria, clot retention, bladder perforation, ureteric injury and infection.'),
('Repeat TURBT','Incomplete resection, T1, high-grade Ta, absent detrusor muscle, or uncertain staging.')],GOLD); footer(s,7)
#8 NMIBC
s=prs.slides.add_slide(blank); bg(s); title(s,'NMIBC: risk-adapted management','Ta, T1 and CIS require risk stratification after adequate TURBT.')
box(s,.6,1.45,2.35,.85,'TURBT\nwith muscle when indicated',LIGHT,TEAL,15); arrow(s,2.96,1.87,3.45,1.87)
box(s,3.5,1.45,2.35,.85,'Risk group\nlow / intermediate / high',LIGHT,TEAL,15); arrow(s,5.86,1.87,6.35,1.87)
box(s,6.4,1.45,2.35,.85,'Repeat TURBT?\nT1 / incomplete / no muscle',LIGHT,GOLD,14); arrow(s,8.76,1.87,9.25,1.87)
box(s,9.3,1.45,3.3,.85,'Adjuvant intravesical strategy',LIGHT,TEAL,15)
for i,(a,b,c) in enumerate([('LOW RISK','Single immediate intravesical chemotherapy when safe; cystoscopic follow-up.',GREEN),('INTERMEDIATE','Intravesical chemotherapy or 1 year BCG based on recurrence/progression risk.',GOLD),('HIGH / VERY HIGH','BCG maintenance 1-3 years; discuss immediate RC. BCG-unresponsive disease: early RC.',RED)]):
box(s,.72,3.05+i*1.05,11.85,.78,a+' | '+b,RGBColor(250,252,252),c,14)
text(s,.75,6.42,11.5,.3,'Do not give immediate intravesical chemotherapy if perforation, extensive resection, or significant bleeding is suspected.',13,RED,True)
footer(s,8)
#9 MIBC
s=prs.slides.add_slide(blank); bg(s); title(s,'Muscle-invasive disease: cT2-T4a N0M0','Management should be decided in a multidisciplinary team.')
if mibc_img: s.shapes.add_picture(mibc_img,Inches(.62),Inches(1.3),width=Inches(5.65),height=Inches(5.55))
for i,(h,b,c) in enumerate([('1. Stage','CT chest, abdomen and pelvis; assess local extent and renal function.',TEAL),('2. Systemic treatment','Cisplatin-based neoadjuvant therapy when fit; current perioperative regimens evolve.',GOLD),('3. Local control','Radical cystectomy + bilateral pelvic lymph-node dissection is standard.',RED),('Alternative','Trimodality therapy for selected, compliant candidates.',GREEN)]):
box(s,6.65,1.42+i*1.15,5.9,.88,h+'\n'+b,RGBColor(249,252,252),c,14)
footer(s,9)
#10 RC
s=prs.slides.add_slide(blank); bg(s); title(s,'Radical cystectomy: oncological principles','Complete extirpation, pelvic lymph-node dissection and reconstruction in one planned pathway.')
box(s,.7,1.45,3.45,1.05,'Male extirpation\nBladder + prostate + seminal vesicles + distal ureters',RGBColor(242,249,251),TEAL,15)
box(s,4.95,1.45,3.45,1.05,'Female extirpation\nBladder + urethra + distal ureters ± anterior vaginal wall/gynecologic organs',RGBColor(242,249,251),TEAL,14)
box(s,9.2,1.45,3.45,1.05,'Both\nBilateral pelvic lymph-node dissection',RGBColor(253,247,239),GOLD,15)
text(s,.75,3.1,11.5,.35,'Operative sequence',20,NAVY,True)
for i,t in enumerate(['Exploration and resectability','Ureteric mobilization and division','Lymph-node dissection','Vascular pedicle control','Posterior and anterior dissection','Urethral division, specimen removal','Urinary diversion and drains']):
x=.7+(i%4)*3.1; y=3.75+(i//4)*1.05; box(s,x,y,2.75,.68,str(i+1)+'. '+t,RGBColor(248,251,252),RGBColor(199,220,224),13)
footer(s,10)
#11 diversion
s=prs.slides.add_slide(blank); bg(s); title(s,'Urinary diversion after cystectomy','Choice is individualized and must be discussed before surgery.')
items=[('Ileal conduit','Reliable, shorter reconstruction; external stoma appliance. Suitable for many patients.',TEAL),('Orthotopic neobladder','Negative urethral margin, fit and motivated patient; may have nocturnal leakage or retention.',GREEN),('Continent cutaneous pouch','Catheterizable reservoir; requires reliable intermittent self-catheterization.',GOLD)]
for i,(h,b,c) in enumerate(items):
x=.65+i*4.2; box(s,x,1.55,3.85,2.45,h+'\n\n'+b,RGBColor(248,251,252),c,17)
text(s,.75,4.65,11.6,.3,'Selection factors',20,NAVY,True)
for i,t in enumerate(['Renal and hepatic function','Bowel disease / prior irradiation','Urethral involvement and margin','Dexterity, cognition and preference','Performance status and oncological prognosis']):
box(s,.75+(i%3)*4.0,5.15+(i//3)*.72,3.55,.48,t,RGBColor(243,250,251),TEAL,13)
footer(s,11)
#12 TMT
s=prs.slides.add_slide(blank); bg(s); title(s,'Bladder preservation: trimodality therapy','Not simply radiotherapy instead of surgery: selection and surveillance determine success.')
box(s,.7,1.55,2.5,.9,'Maximal TURBT',LIGHT,TEAL,20); arrow(s,3.2,2.0,3.72,2.0)
box(s,3.78,1.55,2.7,.9,'Concurrent\nchemoradiation',LIGHT,TEAL,19); arrow(s,6.48,2.0,7.0,2.0)
box(s,7.06,1.55,2.6,.9,'Intensive\nsurveillance',LIGHT,TEAL,19); arrow(s,9.67,2.0,10.18,2.0)
box(s,10.23,1.55,2.4,.9,'Salvage RC\nif invasive recurrence',RGBColor(253,242,242),RED,16,RED)
text(s,.75,3.15,5.7,.35,'Favorable candidate',19,NAVY,True)
for i,t in enumerate(['Solitary or unifocal tumor','Complete/near-complete TURBT feasible','No extensive CIS','No severe hydronephrosis','Functional bladder and adherence to follow-up']): box(s,.75,3.65+i*.52,5.65,.4,'• '+t,RGBColor(248,251,252),RGBColor(210,225,228),13)
text(s,7.0,3.15,5,.35,'Not appropriate when',19,NAVY,True)
for i,t in enumerate(['Bulky unresectable disease','Poor bladder function','Extensive CIS or multifocal disease','Unable to tolerate chemoradiation','Cannot comply with surveillance']): box(s,7.0,3.65+i*.52,5.55,.4,'• '+t,RGBColor(253,249,249),RGBColor(237,209,211),13)
footer(s,12)
#13 f/u
s=bullet_slide('Follow-up and postoperative priorities','Recurrence and treatment complications demand long-term surveillance.',[
('NMIBC','Cystoscopy at 3 months; interval thereafter is risk-adapted. Use cytology in high-risk disease.'),
('After cystectomy','Cross-sectional imaging for recurrence, renal function, hydronephrosis and upper tract surveillance.'),
('Diversion issues','Stoma care, ureteroenteric stricture, renal decline, electrolytes/acidosis and vitamin B12 deficiency.'),
('Functional outcomes','Continence, sexual function, body image, self-catheterization and rehabilitation.'),
('Metastatic disease','Systemic therapy is primary; TURBT, radiation, diversion and nephrostomy may palliate symptoms.')]); footer(s,13)
#14 summary
s=prs.slides.add_slide(blank); bg(s,True); title(s,'Take-home messages',None,True)
messages=['Painless visible hematuria needs prompt cystoscopy and upper-tract evaluation.','TURBT must be complete and include detrusor muscle when staging requires it.','NMIBC treatment is risk-adapted: repeat TURBT, intravesical therapy, or early cystectomy.','MIBC standard local therapy is radical cystectomy with bilateral pelvic lymph-node dissection.','Cisplatin-based perioperative therapy and trimodality treatment require multidisciplinary selection.','Diversion and surveillance planning are part of cancer surgery, not an afterthought.']
for i,m in enumerate(messages):
box(s,.82,1.33+i*.84,11.7,.58,str(i+1)+'. '+m,RGBColor(28,66,90),CYAN,16,WHITE)
text(s,.82,6.6,11.5,.25,'Teaching sources: Bailey & Love’s Short Practice of Surgery, 28e; Campbell-Walsh-Wein Urology; EAU NMIBC and MIBC Guidelines, 2026.',11,RGBColor(191,218,222))
footer(s,14,True)
prs.save(OUT)
print(OUT)
python "/tmp/workspace/bladder-carcinoma-presentation/src/create_presentation.py" && python -c "from pptx import Presentation; p=Presentation('/tmp/workspace/bladder-carcinoma-presentation/output/Bladder_Carcinoma_Surgery_Resident.pptx'); print('slides',len(p.slides)); print([(i+1, sum(1 for sh in s.shapes if getattr(sh,'has_text_frame',False) and sh.text.strip())) for i,s in enumerate(p.slides)])"
python - <<'PY' from pptx import Presentation p=Presentation('/tmp/workspace/bladder-carcinoma-presentation/output/Bladder_Carcinoma_Surgery_Resident.pptx') issues=[] for si,s in enumerate(p.slides,1): for sh in s.shapes: if sh.has_text_frame: # basic bounds validation if sh.left+sh.width > p.slide_width or sh.top+sh.height > p.slide_height: issues.append((si,sh.name,'out of bounds')) print('slides=',len(p.slides),'issues=',issues) PY