A 60 year male patient is come our clinic 1 month ago wth complain of urine not pass then i inserted catheterisation adv psa usg psa range 11 usg showing 3rd grade prostamegaly and chronic cysties i injection Monoceff 1 gm bd for 7 days cap silodal d od 1 month now patient catheter remove and urination pass easy but what i do again i repeat usg same problem showing

Reading File
Finding Sources
Finding Sources
Searching PubMed

benign prostatic hyperplasia urinary retention alpha blocker 5-alpha reductase inhibitor

Reading File
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading Article

PMID: 42095477

I now have enough information to give a thorough, structured clinical response. Let me compile it.

Clinical Assessment & Next Steps

Summary of your case:
  • 60-year male, acute urinary retention (AUR) 1 month ago
  • PSA = 11 ng/mL (elevated)
  • USG: Grade 3 prostatomegaly + chronic cystitis
  • Treated: Ceftriaxone 1g BD x 7 days (for cystitis) + Silodal-D (silodosin + dutasteride) x 1 month
  • Catheter removed - voiding now
  • Repeat USG: same findings persist
This is an expected and important clinical picture. Here is what to do now:

1. The USG Findings Will NOT Change in 1 Month

Do NOT be alarmed that the repeat USG looks the same. This is normal.
  • Grade 3 prostatomegaly is structural enlargement of the gland - it does not shrink in 1 month. 5-alpha reductase inhibitors (dutasteride in Silodal-D) take 3-6 months to produce measurable prostate volume reduction (typically 20-25% reduction).
  • Chronic cystitis is a bladder wall change (trabeculation, thickening) from years of outflow obstruction - it resolves slowly or may be permanent.
  • A repeat USG at this stage adds no diagnostic value. Repeat at 6 months to assess gland size reduction.

2. The PSA of 11 is the Most Important Issue You Must Address

PSA = 11 ng/mL in a 60-year-old male is significantly elevated and cannot be attributed to BPH alone without ruling out prostate cancer.
Key points from Campbell Walsh Wein Urology:
  • PSA 4-10 ng/mL: NCCN recommends biopsy consideration based on patient risk-benefit
  • PSA >10 ng/mL: biopsy is strongly indicated, especially with a palpable nodule on DRE
  • PSA is organ-specific but NOT cancer-specific - BPH can raise PSA, but Grade 3 prostatomegaly with PSA 11 requires cancer exclusion
  • A PSA density (PSA/gland volume) calculation may help stratify risk
What to do for PSA = 11:
  1. Perform Digital Rectal Examination (DRE) - if not already done. Any nodule/induration = immediate urology referral
  2. Repeat PSA in 6 weeks after the acute retention/infection episode has settled (UTI and catheterisation can falsely elevate PSA)
  3. If repeat PSA remains >10 (or >4 with high free-to-total PSA ratio <10%) → refer to urologist for TRUS-guided prostate biopsy
  4. Consider free PSA ratio (free PSA/total PSA): <10% suggests cancer, >25% more likely BPH

3. Continue and Upgrade Medical Therapy

The current Silodal-D (silodosin + dutasteride) is the correct combination for a large prostate - this is supported by Bailey & Love's Surgery and the 2026 AUA Guideline:
"Combination therapy (alpha-blocker and 5-alpha-reductase inhibitor) is better for the larger gland... combination therapy has a better outcome in glands bigger than 35g." - Bailey & Love's Short Practice of Surgery, 28th Ed.
Continue Silodal-D for minimum 6 months. Do NOT stop at 1 month.
Additional measures:
  • Advise patient on fluid management (no large fluid binge, reduce caffeine and alcohol, no late-night fluids)
  • Monitor post-void residual urine (PVR) on follow-up USG
  • Monitor creatinine and renal function (Grade 3 prostatomegaly can cause back-pressure and renal impairment)
  • Continue monitoring for complications: hydronephrosis, vesical calculi, recurrent UTI

4. Indications to Refer for Surgery (TURP)

According to Bailey & Love, refer for prostatectomy (TURP or HoLEP) if:
  • AUR recurs after catheter removal
  • Post-void residual urine >200 mL on repeat USG
  • Renal impairment / hydroureter / hydronephrosis develops
  • Symptoms fail to improve after 3-6 months of combination therapy
  • Maximum urinary flow rate remains <10 mL/s (if uroflowmetry done)

5. Action Plan Summary

PriorityActionTimeframe
UrgentDRE examinationNow
UrgentRepeat PSA (after infection settled)4-6 weeks
ImportantFree PSA ratio if PSA still >4With repeat PSA
ImportantUrology referral for biopsy if PSA >10 persistsAfter repeat PSA
ContinueSilodal-D (silodosin + dutasteride)Minimum 6 months
ContinueRenal function tests (creatinine, urea)Now + 3 months
Follow-upUSG with post-void residualAt 6 months
Symptomatic monitoringUroflowmetry if availableAt 3 months

Bottom line: The treatment you gave is correct. But PSA = 11 in this patient cannot be ignored - it needs to be repeated once the acute episode has settled, and if it remains elevated, a urology referral for prostate biopsy is mandatory to rule out prostate cancer. The USG findings showing persistent prostatomegaly are expected and should not prompt treatment changes at 1 month.
Sources: Bailey & Love's Short Practice of Surgery 28th Ed., pp. 1548-1549; Campbell Walsh Wein Urology (prostate biopsy indications); AUA Guideline 2026 - LUTS/BPH Medical Management (PMID 42095477); Meta-analysis: Tamsulosin + Dutasteride vs monotherapy (PMID 40922439)

A 60 year Male patient came 1 month back with acute urinary retention and suprapubic pain. He was diagnosed with prostatomegaly and underwent per urethral catheterization. After that, he was started on Silodosin. PSA was done which came 11 ng/ml. After around 10 days of catheterization, patient developed fever. TLC was 19000. Suspected catheter associated UTI and treated with Ceftriaxone 1 gm BD IV for 7 days. Patient improved clinically, fever subsided. Catheter was removed. Now patient is able to pass urine. No pain, only mild difficulty in urination. USG shows Grade III prostatomegaly with features of chronic cystitis. Query: Further management? Whether PSA should be repeated after some time and need to rule out malignancy vs benign cause.

Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Searching PubMed

PSA elevation urinary tract infection catheterization repeat testing

Finding Sources
Searching PubMed

PSA elevation benign prostate conditions prostatitis BPH confounders repeat testing

Finding Sources
Searching PubMed

prostate specific antigen BPH acute urinary retention management

Finding Sources
Searching PubMed

PSA after urinary tract infection repeat interval prostate cancer screening

Searching the Web

PSA repeat after UTI catheterization how long to wait prostate cancer evaluation guidelines

Searching PubMed

PSA prostate specific antigen false elevation urinary retention acute prostatitis interval repeat

I now have comprehensive, guideline-backed information to give a thorough and well-structured clinical response. Let me compile it.

Further Management - Structured Clinical Response


Understanding the Clinical Picture

This patient had acute urinary retention (AUR) in the setting of Grade III prostatomegaly, complicated by a catheter-associated UTI (fever + TLC 19,000) during catheterization, now successfully treated. He is currently voiding with mild difficulty on Silodosin, and USG findings persist.
There are two separate issues that must be addressed independently:
  1. PSA of 11 ng/mL - interpretation and next steps
  2. Ongoing BPH management

Issue 1 - The PSA of 11 ng/mL: Should It Be Repeated?

Yes - absolutely. This PSA result is currently unreliable and must not be acted upon.

Why this PSA is confounded

The PSA was drawn in the context of:
  • Acute urinary retention - mechanical trauma and bladder outflow obstruction disrupt the prostatic ductal architecture and cause PSA leakage into the bloodstream
  • Catheterization - urethral instrumentation itself causes a transient PSA spike
  • Active UTI with fever and TLC 19,000 - infection/inflammation in and around the prostate (even without frank prostatitis) significantly elevates PSA
"Clinicians should also recognize that urinary tract infections and instrumentation (e.g., recent bladder catheterization, prostate biopsy or cystoscopy, urinary retention) cause transient increases in PSA. PSA elevations in these settings should be repeated after appropriate time periods to allow for PSA to reach baseline level."
Furthermore, the AUA/SUO guideline also notes that in patients with a newly elevated PSA, 17-25% will normalize on repeat testing - and this patient had THREE simultaneous confounders at the time of his PSA draw.

When to repeat PSA

Based on NHS Scotland Referral Guidelines and EAU 2024 recommendations:
Confounding factor presentRecommended wait before repeat PSA
UTI alone (mild)6 weeks after completing antibiotics
UTI + catheterization6-8 weeks after resolution
UTI + fever + urinary retention + catheterization (this patient)8-12 weeks after full resolution
For this patient: repeat PSA at 8-12 weeks after the fever resolved and catheter was removed, under standardized conditions (no recent ejaculation, no urinary symptoms, no active infection, same laboratory method).

Issue 2 - After Repeat PSA, How to Interpret It?

If repeat PSA is still elevated (>4 ng/mL):

Do not panic or biopsy immediately. Use PSA adjuncts to differentiate BPH from malignancy:
TestFavors BPHFavors Malignancy
Free PSA % (free/total PSA ratio)>25%<10%
PSA density (PSA ÷ prostate volume in mL)<0.15 ng/mL/mL>0.15 ng/mL/mL
Digital Rectal Examination (DRE)Smooth, rubbery, symmetricHard nodule, asymmetry, fixation
Large Grade III prostates (often >60 mL volume) will naturally generate higher PSA from sheer gland bulk. The key is PSA density - if the prostate is very large (say 80 mL on USG), a PSA of 11 may still be attributable to BPH (PSA density = 11/80 = 0.14, borderline).

NCCN biopsy thresholds (from Campbell Walsh Wein Urology):

  • PSA 4-10 ng/mL: biopsy based on patient risk-benefit, shared decision-making
  • PSA >10 ng/mL: biopsy strongly recommended, especially if:
    • DRE is abnormal
    • Free PSA% <10%
    • PSA density >0.15
  • Any PSA + abnormal DRE: biopsy regardless of PSA level

Algorithm for this patient after 8-12 weeks:

Repeat PSA at 8-12 weeks
        |
   PSA normalized (<4)?    ─── Yes ──► Continue BPH management, 
        |                              annual PSA monitoring
        No
        |
   Perform DRE
   Check Free PSA% + PSA density
        |
   Low-risk (free PSA >25%, density <0.15, normal DRE)
        ─── Consider MRI prostate before biopsy decision
   High-risk (free PSA <10%, density >0.15, or abnormal DRE)
        ─── Refer Urology: mpMRI prostate ± TRUS/MRI-fusion biopsy
MRI prostate (multiparametric MRI / mpMRI) before biopsy is now recommended by EAU and most guidelines as it improves detection of clinically significant cancer and avoids unnecessary biopsies in low-risk patients.

Issue 3 - Ongoing BPH Management

Current therapy: Silodosin alone

Silodosin is a highly selective alpha-1A adrenergic blocker. It is appropriate for symptom relief but alone is insufficient for a patient with Grade III prostatomegaly who has had AUR.
Add a 5-alpha reductase inhibitor (5-ARI):
From Bailey & Love's Surgery 28th Edition:
"Combination therapy (alpha-blocker and 5-alpha-reductase inhibitor) is better for the larger gland... combination therapy has a better outcome in glands bigger than 35g."
The 2025 meta-analysis (PMID 40922439) confirms combination therapy is superior to alpha-blocker monotherapy for symptom score improvement, flow rates, and prevention of AUR recurrence in large prostates.
Recommendation:
  • Add Dutasteride 0.5 mg OD (or Finasteride 5 mg OD) to the existing Silodosin
  • Duration: minimum 12 months (5-ARIs take 3-6 months to begin volume reduction and 6-12 months for full effect)
  • Note: 5-ARIs lower PSA by approximately 50% after 6 months - this must be accounted for when interpreting repeat PSA values (double the measured PSA value to get the true estimate if on 5-ARI for >6 months)

Lifestyle modifications (add to medical therapy):

  • Avoid fluids 2-3 hours before bedtime
  • Reduce caffeinated drinks and alcohol
  • Void by the clock (timed voiding every 3-4 hours)
  • Avoid constipation (Valsalva worsens obstruction)

Monitoring:

  • Post-void residual (PVR) on USG: aim for <150 mL
  • Renal function (creatinine, urea): Grade III prostatomegaly can cause back-pressure nephropathy
  • Serum creatinine now and at 3-6 months
  • Uroflowmetry if available: target Qmax >10-12 mL/s

When to Refer to Urology - Indications for Surgery (TURP/HoLEP)

Refer if any of the following develop (Bailey & Love, 28th Ed.):
  • AUR recurs
  • PVR persistently >200 mL
  • Hydronephrosis or impaired renal function
  • Bladder stones, recurrent UTI, or haematuria
  • Symptoms fail to improve after 6-12 months of combination medical therapy
  • Qmax persistently <10 mL/s

Summary Action Plan

PriorityActionTiming
ImmediateDRE examinationNow
ImmediateAdd Dutasteride 0.5 mg OD to SilodosinNow
ImmediateRenal function tests (Cr, urea, eGFR)Now
ImportantRepeat PSA (same lab, standardized conditions)8-12 weeks post-resolution
ImportantFree PSA% and PSA density at repeat testingWith repeat PSA
ImportantmpMRI prostate if PSA remains elevatedAfter repeat PSA
Urology referralIf PSA still >10 + density >0.15 or abnormal DREAfter repeat PSA
Follow-upUSG with PVR, uroflowmetry3-6 months
Follow-upRecheck renal function3 months

Key teaching point: The PSA of 11 drawn during acute urinary retention + active UTI + catheterization is a triple-confounded result and should not trigger immediate biopsy. Repeat it at 8-12 weeks under standardized conditions, combine with DRE, free PSA%, and PSA density - and only then decide about urology referral or biopsy. Simultaneously, upgrade his BPH medical therapy to combination (alpha-blocker + 5-ARI) which is the evidence-based standard for large prostates and reduces risk of AUR recurrence.
Sources: AUA/SUO Prostate Cancer Early Detection Guideline 2023; NHS Scotland Prostate Cancer Referral Guidelines; AUA Guideline 2026 - BPH Medical Management (PMID 42095477); Meta-analysis: combination vs monotherapy for BPH (PMID 40922439); Bailey & Love's Short Practice of Surgery, 28th Ed.; Campbell Walsh Wein Urology - Indications for Prostate Biopsy

Now tell what i do next step

Based on everything already discussed, here is your clear, step-by-step next action plan — in order of priority:

What To Do Right Now (Today's Visit)

1. Do a Digital Rectal Examination (DRE)

This is the most important thing you have not yet mentioned doing.
  • Feel for: size, consistency, symmetry, nodules, fixation
  • Smooth, rubbery, enlarged = favors BPH
  • Hard, nodular, irregular, asymmetric = suspicious for malignancy → refer urology urgently regardless of PSA value

2. Add Dutasteride 0.5 mg OD

Silodosin alone is not enough for Grade III prostatomegaly with a history of AUR.
  • Silodosin relieves symptoms now (alpha-blocker)
  • Dutasteride shrinks the prostate over 3-6 months and prevents future AUR (5-ARI)
  • This combination is the standard of care for large prostates

3. Order Renal Function Tests

  • Serum creatinine, urea, eGFR
  • Grade III prostatomegaly can cause silent back-pressure on kidneys
  • You need a baseline now

At 4 Weeks

4. Review patient symptom response

  • Is voiding improving? Any recurrence of difficulty?
  • Any new symptoms: haematuria, pain, fever?
  • Check compliance with medications

At 8-12 Weeks (Most Important Step)

5. Repeat PSA - under clean conditions

The PSA of 11 was drawn during:
  • Active UTI with fever
  • Urinary retention
  • Indwelling catheter
All three falsely elevate PSA. That result cannot be used to make any cancer decision.
Repeat PSA at 8-12 weeks after catheter removal and fever resolution, with:
  • No active UTI (send urine culture before PSA if any doubt)
  • No ejaculation for 48 hours before test
  • Same laboratory, same assay method

6. At the same time, order Free PSA

  • Calculate Free PSA % = (Free PSA ÷ Total PSA) × 100
  • Free PSA >25% → strongly favors BPH
  • Free PSA <10% → raises concern for malignancy

7. Calculate PSA Density from the USG report

  • PSA Density = PSA value ÷ prostate volume (mL) from USG
  • <0.15 ng/mL/mL → likely BPH
  • 0.15 ng/mL/mL → higher cancer risk, consider biopsy

Decision Point After Repeat PSA

ResultWhat to Do
PSA normalized (<4 ng/mL)Continue BPH medications, annual PSA monitoring
PSA 4-10 + normal DRE + free PSA >25% + density <0.15Active surveillance, repeat PSA in 6 months
PSA 4-10 + any suspicious featureOrder mpMRI prostate before deciding on biopsy
PSA still >10 OR abnormal DRE OR free PSA <10%Refer to Urology for mpMRI ± prostate biopsy

Ongoing (Every 3-6 Months)

  • USG with post-void residual (PVR): target PVR <150 mL
  • Renal function repeat at 3 months
  • Uroflowmetry if available (target Qmax >10 mL/s)
  • Counsel patient on lifestyle: reduce night fluids, avoid caffeine/alcohol, avoid constipation

Red Flags - Send to Urology Immediately If:

  • AUR recurs
  • PVR >200 mL on USG
  • Hydronephrosis seen on USG
  • Renal function worsens (rising creatinine)
  • Blood in urine (haematuria)
  • Abnormal DRE finding
  • Recurrent UTI despite treatment

In Short - Your Next 3 Actions Today:

1. Do DRE now 2. Add Dutasteride 0.5 mg OD 3. Send creatinine/urea and book repeat PSA + Free PSA at 8-12 weeks
Everything else follows from those three steps.

Create a management flowchart/protocol for this BPH case to share with staff

Running Command

ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "workspace ready"

Running Command

mkdir -p /tmp/workspace/bhp-flowchart && python3 << 'EOF' import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import matplotlib.patches as mpatches from matplotlib.patches import FancyBboxPatch, FancyArrowPatch import matplotlib.patheffects as pe fig, ax = plt.subplots(1, 1, figsize=(18, 26)) ax.set_xlim(0, 18) ax.set_ylim(0, 26) ax.axis('off') fig.patch.set_facecolor('#F7F9FC') # ─── COLOR PALETTE ─── C_HEADER = '#1A3A5C' # dark navy C_BLUE = '#2471A3' # mid blue – assessment boxes C_GREEN = '#1E8449' # dark green – action/treatment C_ORANGE = '#D35400' # orange – warning / urgent C_RED = '#C0392B' # red – refer / emergency C_PURPLE = '#6C3483' # purple – decision diamonds C_TEAL = '#117A65' # teal – monitoring C_YELLOW = '#F4D03F' # yellow highlight accent C_LIGHT = '#EBF5FB' # very light blue background C_TEXT = '#1C2833' # near-black text def rounded_box(ax, x, y, w, h, text, facecolor, textcolor='white', fontsize=9.5, bold=False, radius=0.35, alpha=1.0, sublabel=None, sublabel_color='#FFEB99', border_color=None): fc = facecolor ec = border_color if border_color else facecolor box = FancyBboxPatch((x - w/2, y - h/2), w, h, boxstyle=f"round,pad=0.0,rounding_size={radius}", facecolor=fc, edgecolor=ec, linewidth=1.8, alpha=alpha, zorder=3) ax.add_patch(box) weight = 'bold' if bold else 'normal' ya = y + 0.15 if sublabel else y ax.text(x, ya, text, ha='center', va='center', fontsize=fontsize, color=textcolor, weight=weight, zorder=4, wrap=True, multialignment='center', linespacing=1.35) if sublabel: ax.text(x, y - 0.32, sublabel, ha='center', va='center', fontsize=7.8, color=sublabel_color, style='italic', zorder=4) def diamond(ax, x, y, w, h, text, facecolor=C_PURPLE, textcolor='white', fontsize=9): pts = [(x, y+h/2), (x+w/2, y), (x, y-h/2), (x-w/2, y)] patch = plt.Polygon(pts, closed=True, facecolor=facecolor, edgecolor='white', linewidth=1.8, zorder=3) ax.add_patch(patch) ax.text(x, y, text, ha='center', va='center', fontsize=fontsize, color=textcolor, weight='bold', zorder=4, multialignment='center') def arrow(ax, x1, y1, x2, y2, label='', color='#2E4057', lw=1.8): ax.annotate('', xy=(x2, y2), xytext=(x1, y1), arrowprops=dict(arrowstyle='->', color=color, lw=lw, connectionstyle='arc3,rad=0.0'), zorder=2) if label: mx, my = (x1+x2)/2, (y1+y2)/2 ax.text(mx+0.12, my, label, fontsize=8, color=color, va='center', style='italic', zorder=5) def h_arrow(ax, x1, y1, x2, y2, label='', color='#2E4057', lw=1.8): ax.annotate('', xy=(x2, y2), xytext=(x1, y1), arrowprops=dict(arrowstyle='->', color=color, lw=lw, connectionstyle='arc3,rad=0.0'), zorder=2) if label: mx, my = (x1+x2)/2 + 0.1, (y1+y2)/2 + 0.15 ax.text(mx, my, label, fontsize=8, color=color, va='center', ha='center', style='italic', zorder=5) # ══════════════════════════════════════════════ # TITLE BANNER # ══════════════════════════════════════════════ title_box = FancyBboxPatch((0.3, 24.7), 17.4, 1.1, boxstyle="round,pad=0.0,rounding_size=0.4", facecolor=C_HEADER, edgecolor='none', zorder=3) ax.add_patch(title_box) ax.text(9, 25.33, 'BPH with Acute Urinary Retention — Clinical Management Protocol', ha='center', va='center', fontsize=14, color='white', weight='bold', zorder=4) ax.text(9, 24.95, 'For a 60-year Male • Grade III Prostatomegaly • PSA 11 ng/mL • Catheter-Associated UTI', ha='center', va='center', fontsize=9, color='#AED6F1', zorder=4) # ══════════════════════════════════════════════ # PHASE LABELS (left sidebar) # ══════════════════════════════════════════════ def phase_label(ax, y, text, color): ax.text(0.55, y, text, ha='center', va='center', fontsize=7.5, color='white', weight='bold', rotation=90, bbox=dict(boxstyle='round,pad=0.3', facecolor=color, edgecolor='none', alpha=0.9), zorder=5) phase_label(ax, 23.2, 'PHASE 1\nPRESENTATION', C_BLUE) phase_label(ax, 20.5, 'PHASE 2\nIMM. MGMT', C_GREEN) phase_label(ax, 17.0, 'PHASE 3\nCOMPLICATION', C_ORANGE) phase_label(ax, 13.8, 'PHASE 4\nPSA REPEAT', C_PURPLE) phase_label(ax, 10.2, 'PHASE 5\nDECISION', C_RED) phase_label(ax, 6.8, 'PHASE 6\nFOLLOW-UP', C_TEAL) phase_label(ax, 3.2, 'RED FLAGS', C_RED) # ══════════════════════════════════════════════ # PHASE 1: PRESENTATION # ══════════════════════════════════════════════ rounded_box(ax, 9, 23.5, 14, 0.85, '60M • Acute Urinary Retention (AUR) • Suprapubic Pain • Grade III Prostatomegaly on USG', C_BLUE, fontsize=9.5, bold=True) arrow(ax, 9, 23.08, 9, 22.72) rounded_box(ax, 9, 22.42, 14, 0.55, 'Per-Urethral Catheterization performed • Urine drained • Patient stabilized', C_BLUE, fontsize=9, alpha=0.85) arrow(ax, 9, 22.15, 9, 21.72) # PSA + Silodosin started rounded_box(ax, 5.5, 21.42, 6.2, 0.55, 'Silodosin (alpha-blocker) started\nfor symptom relief', C_GREEN, fontsize=9) rounded_box(ax, 12.5, 21.42, 6.2, 0.55, 'PSA sent: Result = 11 ng/mL\n⚠ Drawn during AUR + catheter — CONFOUNDED', '#7D6608', textcolor='#FDFEFE', fontsize=9) ax.annotate('', xy=(5.5, 21.7), xytext=(9, 21.72), arrowprops=dict(arrowstyle='->', color='#2E4057', lw=1.5), zorder=2) ax.annotate('', xy=(12.5, 21.7), xytext=(9, 21.72), arrowprops=dict(arrowstyle='->', color='#2E4057', lw=1.5), zorder=2) # ══════════════════════════════════════════════ # PHASE 2: IMMEDIATE MANAGEMENT (TODAY) # ══════════════════════════════════════════════ rounded_box(ax, 9, 20.5, 16, 0.6, '▼ IMMEDIATE ACTIONS — TODAY ▼', C_HEADER, fontsize=10, bold=True) # 3 action boxes rounded_box(ax, 3.5, 19.55, 4.8, 0.95, '① DIGITAL RECTAL EXAM (DRE)\nSmooth/rubbery → BPH likely\nNodule/hard → Urgent Urology referral', C_GREEN, fontsize=8.5) rounded_box(ax, 9, 19.55, 4.8, 0.95, '② ADD DUTASTERIDE 0.5 mg OD\nCombine with Silodosin\n(alpha-blocker + 5-ARI = gold standard for large gland)', C_GREEN, fontsize=8.5) rounded_box(ax, 14.5, 19.55, 4.8, 0.95, '③ RENAL FUNCTION TESTS\nSerum Creatinine + Urea + eGFR\n(Back-pressure nephropathy screen)', C_GREEN, fontsize=8.5) for bx in [3.5, 9, 14.5]: arrow(ax, bx, 20.2, bx, 20.03) # ══════════════════════════════════════════════ # PHASE 3: COMPLICATION (UTI) # ══════════════════════════════════════════════ rounded_box(ax, 9, 18.45, 16, 0.6, '▼ CATHETER-ASSOCIATED UTI (Day ~10 post-catheter) ▼', C_ORANGE, fontsize=9.5, bold=True) rounded_box(ax, 6, 17.55, 7, 0.85, 'Fever + TLC 19,000\nDiagnosis: CA-UTI\nCeftriaxone 1g BD IV × 7 days', C_ORANGE, fontsize=9) rounded_box(ax, 13, 17.55, 7, 0.85, 'Clinical improvement\nFever resolved • Catheter removed\nPatient now voiding (mild difficulty only)', C_GREEN, fontsize=9) arrow(ax, 6, 18.15, 6, 17.98) arrow(ax, 13, 18.15, 13, 17.98) ax.annotate('', xy=(13, 17.98), xytext=(9, 18.15), arrowprops=dict(arrowstyle='->', color='#2E4057', lw=1.5), zorder=2) ax.annotate('', xy=(6, 17.98), xytext=(9, 18.15), arrowprops=dict(arrowstyle='->', color='#2E4057', lw=1.5), zorder=2) arrow(ax, 9, 17.13, 9, 16.72) # ══════════════════════════════════════════════ # PHASE 4: PSA REPEAT — key decision # ══════════════════════════════════════════════ rounded_box(ax, 9, 16.42, 16, 0.6, '▼ PSA INTERPRETATION & REPEAT PLAN ▼', C_PURPLE, fontsize=10, bold=True) # Why PSA is confounded rounded_box(ax, 9, 15.42, 15, 0.85, 'PSA of 11 ng/mL is UNRELIABLE — 3 simultaneous confounders at time of draw:\n' '① Acute Urinary Retention ② Urethral Catheterization ③ Active UTI with Fever (TLC 19,000)', '#4A235A', textcolor='#FDFEFE', fontsize=9) arrow(ax, 9, 15.0, 9, 14.62) rounded_box(ax, 9, 14.32, 15, 0.55, '⏱ REPEAT PSA at 8–12 WEEKS after catheter removal + fever resolution\n' '(Same lab • Same assay • No UTI • No ejaculation 48h prior)', C_PURPLE, fontsize=9, bold=True) arrow(ax, 9, 14.05, 9, 13.65) # Also order simultaneously rounded_box(ax, 5.5, 13.35, 6.5, 0.55, 'Free PSA %\n(Free PSA ÷ Total PSA × 100)', '#884EA0', fontsize=9) rounded_box(ax, 12.5, 13.35, 6.5, 0.55, 'PSA Density\n(PSA ÷ Prostate Volume mL)', '#884EA0', fontsize=9) ax.annotate('', xy=(5.5, 13.63), xytext=(9, 13.65), arrowprops=dict(arrowstyle='->', color='#6C3483', lw=1.5), zorder=2) ax.annotate('', xy=(12.5, 13.63), xytext=(9, 13.65), arrowprops=dict(arrowstyle='->', color='#6C3483', lw=1.5), zorder=2) # ══════════════════════════════════════════════ # PHASE 5: DECISION TREE # ══════════════════════════════════════════════ rounded_box(ax, 9, 12.6, 16, 0.5, '▼ DECISION AFTER REPEAT PSA ▼', C_RED, fontsize=10, bold=True) diamond(ax, 9, 11.7, 5.5, 1.0, 'Repeat PSA\nresult?', C_PURPLE, fontsize=9.5) # Branch LEFT: PSA normalized rounded_box(ax, 3, 10.3, 4.8, 0.85, 'PSA < 4 ng/mL\n(Normalized)', C_GREEN, fontsize=9, bold=True) ax.annotate('', xy=(3.2, 10.73), xytext=(6.75, 11.45), arrowprops=dict(arrowstyle='->', color=C_GREEN, lw=1.8), zorder=2) ax.text(4.5, 11.25, 'Normalized', fontsize=8, color=C_GREEN, style='italic') rounded_box(ax, 3, 9.3, 4.8, 0.75, 'Continue BPH meds\nAnnual PSA monitoring', C_TEAL, fontsize=9) arrow(ax, 3, 9.88, 3, 9.68) # Branch MIDDLE: PSA 4-10 rounded_box(ax, 9, 10.3, 4.8, 0.85, 'PSA 4–10 ng/mL\n+ Normal DRE\n+ Free PSA >25%\n+ Density <0.15', '#D4AC0D', textcolor=C_TEXT, fontsize=8.5, bold=True) ax.annotate('', xy=(9, 10.73), xytext=(9, 11.2), arrowprops=dict(arrowstyle='->', color='#D4AC0D', lw=1.8), zorder=2) ax.text(9.15, 11.0, 'Intermediate', fontsize=8, color='#7D6608', style='italic') rounded_box(ax, 9, 9.3, 4.8, 0.75, 'mpMRI Prostate\nthen reassess biopsy need', C_BLUE, fontsize=9) arrow(ax, 9, 9.88, 9, 9.68) # Branch RIGHT: PSA >10 or high risk rounded_box(ax, 15, 10.3, 4.8, 0.85, 'PSA still >10\nOR Abnormal DRE\nOR Free PSA <10%\nOR Density >0.15', C_RED, textcolor='white', fontsize=8.5, bold=True) ax.annotate('', xy=(14.8, 10.73), xytext=(11.25, 11.45), arrowprops=dict(arrowstyle='->', color=C_RED, lw=1.8), zorder=2) ax.text(13.3, 11.25, 'High Risk', fontsize=8, color=C_RED, style='italic') rounded_box(ax, 15, 9.3, 4.8, 0.75, '⚠ REFER UROLOGY\nmpMRI ± TRUS/MRI-fusion Biopsy', C_RED, fontsize=9, bold=True) arrow(ax, 15, 9.88, 15, 9.68) # ══════════════════════════════════════════════ # PHASE 6: ONGOING MONITORING # ══════════════════════════════════════════════ rounded_box(ax, 9, 8.45, 16, 0.5, '▼ ONGOING MONITORING (All Patients) ▼', C_TEAL, fontsize=10, bold=True) rounded_box(ax, 3.5, 7.5, 4.8, 0.95, '📅 1 MONTH\nSymptom review\nMedication compliance\nSide effects of dutasteride', C_TEAL, fontsize=8.5) rounded_box(ax, 9, 7.5, 4.8, 0.95, '📅 3 MONTHS\nRepeat renal function\nUroflowmetry (Qmax target >10 mL/s)\nPVR on USG (target <150 mL)', C_TEAL, fontsize=8.5) rounded_box(ax, 14.5, 7.5, 4.8, 0.95, '📅 6 MONTHS\nUSG prostate volume\n(expect 20-25% reduction)\nRepeat PSA if still elevated', C_TEAL, fontsize=8.5) for bx in [3.5, 9, 14.5]: arrow(ax, bx, 8.2, bx, 7.98) # ══════════════════════════════════════════════ # SURGERY INDICATIONS # ══════════════════════════════════════════════ rounded_box(ax, 9, 6.35, 16, 0.5, '▼ INDICATIONS TO REFER FOR SURGERY (TURP / HoLEP) ▼', C_HEADER, fontsize=9.5, bold=True) surg_items = [ (2.2, 'AUR\nRecurs'), (5.3, 'PVR\n>200 mL'), (8.0, 'Hydronephrosis\nor ↑ Creatinine'), (11.2, 'Recurrent UTI\nor Haematuria'), (14.2, 'Failed Medical Rx\nat 6–12 months'), (16.8, 'Qmax\n<10 mL/s'), ] for sx, st in surg_items: rounded_box(ax, sx, 5.55, 2.7, 0.85, st, C_ORANGE, fontsize=8.3) arrow(ax, sx, 6.1, sx, 5.98) # ══════════════════════════════════════════════ # RED FLAG BANNER # ══════════════════════════════════════════════ red_box = FancyBboxPatch((0.3, 3.85), 17.4, 0.85, boxstyle="round,pad=0.0,rounding_size=0.3", facecolor=C_RED, edgecolor='none', zorder=3) ax.add_patch(red_box) ax.text(9, 4.28, '🚨 RED FLAGS — Immediate Urology Referral / Emergency: ' 'AUR Recurrence • Anuric / Oliguria • Hydronephrosis • ' 'Rising Creatinine • Haematuria • Hard Nodule on DRE • Suspected Cancer', ha='center', va='center', fontsize=9, color='white', weight='bold', zorder=4) # ══════════════════════════════════════════════ # PSA GUIDE LEGEND BOX # ══════════════════════════════════════════════ legend_box = FancyBboxPatch((0.3, 1.05), 17.4, 2.55, boxstyle="round,pad=0.0,rounding_size=0.3", facecolor='#EBF5FB', edgecolor=C_BLUE, linewidth=1.5, zorder=3) ax.add_patch(legend_box) ax.text(9, 3.32, 'PSA INTERPRETATION GUIDE & MEDICATION NOTES', ha='center', va='center', fontsize=10, color=C_HEADER, weight='bold', zorder=4) guide_cols = [ (2.5, ' PSA Confounders\n(Falsely elevate PSA):\n• Acute urinary retention\n• Urethral catheterization\n• UTI / prostatitis\n• Prostate biopsy\n• Vigorous DRE / cycling\n• Ejaculation within 48h'), (7.2, ' Free PSA % Guide:\n• >25% → Likely BPH\n• 10–25% → Intermediate\n• <10% → Suspicious,\n consider biopsy\n\n PSA Density Guide:\n• <0.15 → Likely BPH\n• >0.15 → Higher cancer risk'), (12.0, ' 5-ARI Effect on PSA:\nDutasteride/Finasteride\nreduce PSA by ~50%\nafter 6 months.\nDouble the measured PSA\nto estimate true value\nif on 5-ARI for >6 months.'), (16.2, ' Combination Therapy:\nAlpha-blocker (Silodosin)\n+ 5-ARI (Dutasteride)\n= Standard of care for\nlarge prostate (>35 mL).\nContinue minimum\n12 months.'), ] for gx, gt in guide_cols: ax.text(gx, 2.45, gt, ha='left', va='center', fontsize=8.2, color=C_TEXT, zorder=4, linespacing=1.4) # ══════════════════════════════════════════════ # FOOTER # ══════════════════════════════════════════════ ax.text(9, 0.72, 'Sources: AUA/SUO Guideline 2023 (Early Detection of Prostate Cancer) • AUA Guideline 2026 (LUTS/BPH) • EAU Guidelines 2024 • Bailey & Love\'s Surgery 28th Ed. • Campbell Walsh Wein Urology', ha='center', va='center', fontsize=7.5, color='#5D6D7E', zorder=4) ax.text(9, 0.42, 'This protocol is for clinical guidance purposes. Individual patient decisions should involve shared decision-making and specialist input where indicated.', ha='center', va='center', fontsize=7.2, color='#85929E', style='italic', zorder=4) plt.tight_layout(pad=0.3) plt.savefig('/tmp/workspace/bhp-flowchart/BHP_Management_Protocol.pdf', format='pdf', bbox_inches='tight', dpi=200, facecolor=fig.get_facecolor()) plt.savefig('/tmp/workspace/bhp-flowchart/BHP_Management_Protocol.png', format='png', bbox_inches='tight', dpi=180, facecolor=fig.get_facecolor()) print("Saved successfully.") plt.close() EOF

Running Command

python3 << 'EOF' import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import matplotlib.patches as mpatches from matplotlib.patches import FancyBboxPatch import warnings warnings.filterwarnings('ignore') fig, ax = plt.subplots(1, 1, figsize=(18, 26)) ax.set_xlim(0, 18) ax.set_ylim(0, 26) ax.axis('off') fig.patch.set_facecolor('#F7F9FC') C_HEADER = '#1A3A5C' C_BLUE = '#2471A3' C_GREEN = '#1E8449' C_ORANGE = '#D35400' C_RED = '#C0392B' C_PURPLE = '#6C3483' C_TEAL = '#117A65' C_TEXT = '#1C2833' def rbox(ax, x, y, w, h, text, fc, tc='white', fs=9.5, bold=False, r=0.32, lw=1.8, ec=None): ec = ec or fc p = FancyBboxPatch((x-w/2, y-h/2), w, h, boxstyle=f"round,pad=0.0,rounding_size={r}", facecolor=fc, edgecolor=ec, linewidth=lw, zorder=3) ax.add_patch(p) ax.text(x, y, text, ha='center', va='center', fontsize=fs, color=tc, weight='bold' if bold else 'normal', zorder=4, multialignment='center', linespacing=1.35) def diamond(ax, x, y, w, h, text, fc=C_PURPLE, tc='white', fs=9.5): pts = [(x, y+h/2), (x+w/2, y), (x, y-h/2), (x-w/2, y)] ax.add_patch(plt.Polygon(pts, closed=True, facecolor=fc, edgecolor='white', linewidth=1.8, zorder=3)) ax.text(x, y, text, ha='center', va='center', fontsize=fs, color=tc, weight='bold', zorder=4, multialignment='center') def arr(ax, x1, y1, x2, y2, col='#2E4057', lw=1.8, label='', lpos='right'): ax.annotate('', xy=(x2,y2), xytext=(x1,y1), arrowprops=dict(arrowstyle='->', color=col, lw=lw), zorder=2) if label: mx = (x1+x2)/2 + (0.15 if lpos=='right' else -0.15) my = (y1+y2)/2 ax.text(mx, my, label, fontsize=8, color=col, style='italic', va='center', ha='left' if lpos=='right' else 'right', zorder=5) def phase_bar(ax, y, text, color): ax.text(0.52, y, text, ha='center', va='center', fontsize=7, color='white', weight='bold', rotation=90, bbox=dict(boxstyle='round,pad=0.28', facecolor=color, edgecolor='none', alpha=0.92), zorder=5) # ── TITLE ────────────────────────────────────────────── tb = FancyBboxPatch((0.3,24.7),17.4,1.1, boxstyle="round,pad=0.0,rounding_size=0.4", facecolor=C_HEADER, edgecolor='none', zorder=3) ax.add_patch(tb) ax.text(9,25.33,'BPH with Acute Urinary Retention — Clinical Management Protocol', ha='center',va='center',fontsize=14,color='white',weight='bold',zorder=4) ax.text(9,24.93,'60-Year Male | Grade III Prostatomegaly | PSA 11 ng/mL | Catheter-Associated UTI', ha='center',va='center',fontsize=9,color='#AED6F1',zorder=4) # ── PHASE LABELS ────────────────────────────────────── phase_bar(ax, 23.2, 'PHASE 1\nPRESENTATION', C_BLUE) phase_bar(ax, 20.55,'PHASE 2\nTODAY', C_GREEN) phase_bar(ax, 17.8, 'PHASE 3\nCA-UTI', C_ORANGE) phase_bar(ax, 14.0, 'PHASE 4\nPSA REPEAT', C_PURPLE) phase_bar(ax, 10.4, 'PHASE 5\nDECISION', C_RED) phase_bar(ax, 6.9, 'PHASE 6\nFOLLOW-UP', C_TEAL) phase_bar(ax, 4.85, 'SURGERY\nINDICATIONS', C_ORANGE) phase_bar(ax, 3.3, 'RED FLAGS', C_RED) # ── PHASE 1: PRESENTATION ───────────────────────────── rbox(ax, 9, 23.5, 14, 0.78, '60M | Acute Urinary Retention (AUR) | Suprapubic Pain\nGrade III Prostatomegaly on USG | Per-Urethral Catheterization Performed', C_BLUE, fs=9.5, bold=True) arr(ax, 9,23.11, 9,22.74) rbox(ax, 9,22.44, 14, 0.55, 'PSA sent during catheterization + active UTI => PSA = 11 ng/mL (CONFOUNDED — see Phase 4)\n' 'Silodosin started for alpha-blocker symptom relief', '#2471A3', tc='#FDFEFE', fs=9) # ── PHASE 2: IMMEDIATE ACTIONS TODAY ────────────────── arr(ax, 9,22.16, 9,21.76) rbox(ax, 9,21.46, 16, 0.56, 'IMMEDIATE ACTIONS — TODAY', C_HEADER, fs=10.5, bold=True) for bx,bt in [ (3.5, 'ACTION 1: DIGITAL RECTAL EXAM\nSmooth & rubbery -> BPH favored\nHard nodule / asymmetry -> Urgent Urology'), (9, 'ACTION 2: ADD DUTASTERIDE 0.5 mg OD\nSilodosin + Dutasteride = Combination therapy\nGold standard for Grade III / large prostate'), (14.5,'ACTION 3: RENAL FUNCTION TESTS\nSerum Creatinine + Urea + eGFR\nRule out back-pressure nephropathy'), ]: arr(ax, bx,21.18, bx,20.98) rbox(ax, bx,20.55, 4.85, 0.85, bt, C_GREEN, fs=8.6) # ── PHASE 3: CA-UTI ─────────────────────────────────── arr(ax, 9,20.13, 9,19.73) rbox(ax, 9,19.43, 16, 0.56, 'COMPLICATION: Catheter-Associated UTI (~Day 10 post-catheter)', C_ORANGE, fs=10, bold=True) rbox(ax, 5.5,18.5, 7, 0.85, 'Fever | TLC 19,000\nDiagnosis: CA-UTI\nTx: Ceftriaxone 1g BD IV x 7 days', C_ORANGE, fs=9) rbox(ax, 12.5,18.5, 7, 0.85, 'Fever resolved | TLC normalized\nCatheter removed\nNow voiding (mild difficulty only)', C_GREEN, fs=9) for bx in [5.5,12.5]: arr(ax, bx,19.15, bx,18.93) # ── PHASE 4: PSA REPEAT ─────────────────────────────── arr(ax, 9,18.08, 9,17.68) rbox(ax, 9,17.38, 16, 0.56, 'PSA INTERPRETATION & REPEAT STRATEGY', C_PURPLE, fs=10.5, bold=True) rbox(ax, 9,16.5, 15.5, 0.78, 'PSA of 11 ng/mL is UNRELIABLE — drawn with THREE simultaneous confounders:\n' '(1) Acute Urinary Retention (2) Urethral Catheterization (3) Active UTI + Fever', '#4A235A', tc='#FDFEFE', fs=9.2) arr(ax, 9,16.11, 9,15.71) rbox(ax, 9,15.41, 15.5, 0.56, 'REPEAT PSA at 8-12 WEEKS after catheter removal + fever resolution\n' 'Conditions: no active UTI | same lab & assay | no ejaculation 48h prior', C_PURPLE, fs=9.2, bold=True) arr(ax, 9,15.13, 9,14.73) rbox(ax, 5.5,14.43, 6.5, 0.56, 'Simultaneously: Order FREE PSA %\n(Free PSA / Total PSA x 100)', '#884EA0', fs=9) rbox(ax, 12.5,14.43, 6.5, 0.56, 'Simultaneously: Calculate PSA DENSITY\n(PSA value / Prostate Volume in mL)', '#884EA0', fs=9) for bx in [5.5,12.5]: ax.annotate('', xy=(bx,14.71), xytext=(9,14.73), arrowprops=dict(arrowstyle='->', color='#6C3483', lw=1.5), zorder=2) # ── PHASE 5: DECISION ───────────────────────────────── arr(ax, 9,14.15, 9,13.75) rbox(ax, 9,13.45, 16, 0.56, 'DECISION TREE — AFTER REPEAT PSA', C_RED, fs=10.5, bold=True) diamond(ax, 9,12.3, 5.5, 1.1, 'Repeat\nPSA Result?', C_PURPLE, fs=9.5) # LEFT: normalized ax.annotate('', xy=(3.2,11.65), xytext=(6.75,12.05), arrowprops=dict(arrowstyle='->', color=C_GREEN, lw=1.8), zorder=2) ax.text(4.7,12.05,'Normalized',fontsize=8,color=C_GREEN,style='italic',ha='center') rbox(ax, 3,11.28, 4.85, 0.7, 'PSA < 4 ng/mL\n(Normalized)', C_GREEN, fs=9, bold=True) arr(ax, 3,10.93, 3,10.6) rbox(ax, 3,10.3, 4.85, 0.56, 'Continue BPH meds\nAnnual PSA monitoring', C_TEAL, fs=9) # MIDDLE: borderline ax.annotate('', xy=(9,11.75), xytext=(9,11.85), arrowprops=dict(arrowstyle='->', color='#D4AC0D', lw=1.8), zorder=2) ax.text(9.15,11.7,'Borderline',fontsize=8,color='#7D6608',style='italic') rbox(ax, 9,11.28, 4.85, 0.7, 'PSA 4-10\nNormal DRE + Free PSA >25%\n+ Density <0.15', '#D4AC0D', tc=C_TEXT, fs=8.3, bold=True) arr(ax, 9,10.93, 9,10.6) rbox(ax, 9,10.3, 4.85, 0.56, 'Order mpMRI Prostate\nthen reassess biopsy need', C_BLUE, fs=9) # RIGHT: high risk ax.annotate('', xy=(14.8,11.65), xytext=(11.25,12.05), arrowprops=dict(arrowstyle='->', color=C_RED, lw=1.8), zorder=2) ax.text(13.3,12.1,'High Risk',fontsize=8,color=C_RED,style='italic',ha='center') rbox(ax, 15,11.28, 4.85, 0.7, 'PSA still >10 OR Abnormal DRE\nFree PSA <10% OR Density >0.15', C_RED, fs=8.3, bold=True) arr(ax, 15,10.93, 15,10.6) rbox(ax, 15,10.3, 4.85, 0.56, 'REFER UROLOGY\nmpMRI +/- TRUS/MRI-Fusion Biopsy', C_RED, fs=9, bold=True) # ── PHASE 6: MONITORING ─────────────────────────────── arr(ax, 9,10.02, 9,9.62) rbox(ax, 9,9.32, 16, 0.56, 'ONGOING MONITORING (All Patients Continue)', C_TEAL, fs=10.5, bold=True) for bx,bt in [ (3.5, '1 MONTH REVIEW\nSymptom response\nMedication compliance\nSide effects check'), (9, '3 MONTHS REVIEW\nRepeat renal function\nUroflowmetry (Qmax >10 mL/s)\nUSG post-void residual (<150 mL)'), (14.5,'6 MONTHS REVIEW\nUSG prostate volume\n(expect 20-25% reduction)\nRepeat PSA if still elevated'), ]: arr(ax, bx,9.04, bx,8.85) rbox(ax, bx,8.45, 4.85, 0.82, bt, C_TEAL, fs=8.6) # ── SURGICAL INDICATIONS ────────────────────────────── arr(ax, 9,8.04, 9,7.64) rbox(ax, 9,7.34, 16, 0.56, 'REFER FOR SURGERY (TURP / HoLEP) if any of the following:', C_ORANGE, fs=10, bold=True) surg = [ (2.0, 'AUR\nRecurrence'), (5.0, 'Post-Void\nResidual >200 mL'), (8.0, 'Hydronephrosis\nor Rising Creatinine'), (11.0,'Recurrent UTI\nor Haematuria'), (14.0,'Failed Medical Rx\nat 6-12 months'), (16.8,'Qmax\n< 10 mL/s'), ] for sx,st in surg: arr(ax, sx,7.06, sx,6.95) rbox(ax, sx,6.6, 2.65, 0.82, st, C_ORANGE, fs=8.3) # ── RED FLAG BANNER ─────────────────────────────────── rb = FancyBboxPatch((0.3,3.88),17.4,0.8, boxstyle="round,pad=0.0,rounding_size=0.3", facecolor=C_RED, edgecolor='none', zorder=3) ax.add_patch(rb) ax.text(9,4.28, 'RED FLAGS — Immediate Urology Referral / Emergency:\n' 'AUR Recurrence | Anuric/Oliguria | Hydronephrosis | ' 'Rising Creatinine | Haematuria | Hard Nodule on DRE | Suspected Malignancy', ha='center',va='center',fontsize=9,color='white',weight='bold',zorder=4, multialignment='center', linespacing=1.4) # ── REFERENCE / LEGEND BOX ──────────────────────────── lb = FancyBboxPatch((0.3,0.8),17.4,2.88, boxstyle="round,pad=0.0,rounding_size=0.3", facecolor='#EBF5FB', edgecolor=C_BLUE, linewidth=1.4, zorder=3) ax.add_patch(lb) ax.text(9,3.42,'PSA INTERPRETATION QUICK REFERENCE', ha='center',va='center',fontsize=10,color=C_HEADER,weight='bold',zorder=4) cols = [ (2.0, 'PSA Confounders\n(Falsely raise PSA):\n- Acute urinary retention\n- Catheterization\n- UTI / prostatitis\n- Prostate biopsy\n- Vigorous DRE\n- Ejaculation <48h'), (6.5, 'Free PSA % Guide:\n>25% => Likely BPH\n10-25% => Intermediate\n<10% => Suspicious\n (consider biopsy)\n\nPSA Density Guide:\n<0.15 => Likely BPH\n>0.15 => Higher cancer risk'), (11.2,'5-ARI Effect on PSA:\nDutasteride/Finasteride\nreduce PSA by ~50%\nafter 6 months of use.\nIf on 5-ARI >6 months:\nDouble the PSA value\nto get true estimate.'), (15.8,'Combination Therapy:\nAlpha-blocker (Silodosin)\n+ 5-ARI (Dutasteride)\n= Standard of care for\ngrade III / large prostate\n(>35 mL volume).\nMin. 12 months duration.'), ] for cx,ct in cols: ax.text(cx,2.2,ct,ha='left',va='center',fontsize=8.3, color=C_TEXT,zorder=4,linespacing=1.45) ax.text(9,0.6, 'Sources: AUA/SUO Guideline 2023 (Early Detection of Prostate Cancer) | AUA Guideline 2026 (LUTS/BPH) | EAU Guidelines 2024 | NHS Scotland Referral Guidelines | Bailey & Love Surgery 28th Ed. | Campbell Walsh Wein Urology', ha='center',va='center',fontsize=7.2,color='#5D6D7E',zorder=4) ax.text(9,0.32, 'This protocol is for clinical guidance purposes. Individual management decisions should incorporate shared decision-making and specialist input where indicated.', ha='center',va='center',fontsize=6.8,color='#85929E',style='italic',zorder=4) plt.tight_layout(pad=0.3) out_pdf = '/tmp/workspace/bhp-flowchart/BHP_Management_Protocol.pdf' out_png = '/tmp/workspace/bhp-flowchart/BHP_Management_Protocol.png' plt.savefig(out_pdf, format='pdf', bbox_inches='tight', dpi=200, facecolor=fig.get_facecolor()) plt.savefig(out_png, format='png', bbox_inches='tight', dpi=180, facecolor=fig.get_facecolor()) print("Done:", out_pdf) plt.close() EOF

Your protocol flowchart is ready. Download it here:
PDF (print-ready, A3/A4 landscape):

BHP Management Protocol

PDF Document · PDF

PNG (for sharing digitally / WhatsApp / email):

BHP Management Protocol

Image · PNG


What the flowchart covers (6 phases + reference panel):

PhaseContent
Phase 1Initial presentation - AUR, catheterization, PSA drawn
Phase 2Immediate actions today - DRE, add Dutasteride, renal function
Phase 3CA-UTI management - Ceftriaxone, recovery, catheter removal
Phase 4PSA strategy - why 11 is confounded, when and how to repeat
Phase 5Decision tree - 3 branches based on repeat PSA result
Phase 6Monitoring schedule - 1, 3 and 6 month reviews
SurgeryTURP/HoLEP referral indications
Red flagsEmergency referral triggers
Legend boxPSA confounders, Free PSA%, PSA density guide, 5-ARI effect
Suitable to print and post in your clinic, share with nursing staff, or use as a teaching reference.
This is a shared conversation. Sign in to Orris to start your own chat.