Post nephrectomy care and management

Reading File
Finding Sources
Finding Sources
Searching the Web

post nephrectomy care and management clinical guidelines 2024

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

nephrectomy postoperative management outcomes

Reading File
Finding Sources
Reading File
Finding Sources
I now have enough information from multiple authoritative textbooks to compile a comprehensive answer. Let me now write up the full post-nephrectomy care and management guide.

Post-Nephrectomy Care and Management

Post-nephrectomy care encompasses immediate postoperative monitoring, complication prevention, analgesia, renal function management, and long-term oncologic surveillance. The principles differ slightly between radical nephrectomy (RN), partial nephrectomy (PN), donor nephrectomy, and simple nephrectomy, but share a common framework.

1. Immediate Postoperative Care (ICU/Ward)

Monitoring

  • Vital signs every 1-2 hours initially; urine output (target >0.5 mL/kg/hr)
  • Hemoglobin/hematocrit, serum creatinine, electrolytes at 6-12 hours
  • Drain output: serosanguinous is normal; bright red or >200 mL/hr warrants urgent review
  • Watch for signs of pneumothorax (particularly after open flank incisions breaching the pleura)

Fluid Management

  • Goal-directed fluid therapy to maintain euvolemia without fluid overload
  • After radical nephrectomy, anticipate a ~25% drop in GFR (remaining kidney adapts with compensatory hypertrophy and hyperfiltration, limiting total loss to ~25% rather than the expected 50%)
  • Avoid nephrotoxic drugs (NSAIDs, IV contrast without pre-hydration, aminoglycosides) in the early postoperative period
  • Drug dosing must be adjusted for the reduced GFR - Barash's Clinical Anesthesia notes this is a commonly overlooked step post-nephrectomy

Nasogastric Tube

  • Not routinely required; remove early as part of ERAS protocols
  • Resume oral fluids within 4-6 hours if laparoscopic; may be later after open surgery

2. Pain Management

Pain after nephrectomy (open or laparoscopic) is significant and requires a multimodal approach:
ModalityDetails
Epidural analgesiaPreferred for open flank/retroperitoneal approaches; provides excellent pain relief and reduces systemic opioid requirement
Thoracic paravertebral blockAlternative to epidural for open surgery
Spinal analgesiaFor select cases
IV opioids (PCA)Standard adjunct; titrate carefully given reduced renal clearance
Non-opioid adjunctsParacetamol (acetaminophen), gabapentinoids; avoid NSAIDs given single-kidney physiology
Local infiltrationWound infiltration with bupivacaine at port sites (laparoscopic)
Shoulder pain after laparoscopic surgery is a specific complaint caused by diaphragmatic irritation from residual CO₂; reassure patient, resolve with ambulation and analgesics. - Sabiston Textbook of Surgery

3. Enhanced Recovery After Surgery (ERAS)

ERAS protocols are increasingly applied to nephrectomy and have shown reduced hospital stay and complication rates. Key elements:
Preoperative:
  • Patient counseling and education
  • Carbohydrate loading up to 2 hours before surgery
  • Avoid prolonged fasting (light meal up to 6 hours prior)
  • VTE prophylaxis: subcutaneous heparin started preoperatively
Intraoperative:
  • Minimally invasive (laparoscopic/robotic) approach when possible (laparoscopic RN associated with 29% lower postoperative complication rate vs. open RN)
  • Goal-directed fluid management
  • Multimodal analgesia; truncal blocks or thoracic epidural
Postoperative:
  • Early mobilization - day 0 or day 1 (prevents atelectasis, DVT, ileus)
  • Early oral diet resumption
  • Avoid routine nasogastric intubation
  • Daily review of drain; remove when output <50 mL/24 hours (non-bloody)
- Barash, Cullen, and Stoelting's Clinical Anesthesia, 9e

4. Postoperative Complications

Early Complications

ComplicationNotes
HemorrhageMost common major complication; may require transfusion or re-exploration. More common after partial nephrectomy (18.6%) than radical (15.1%)
IleusMost common complication after donor nephrectomy; manage conservatively
Wound infectionSuperficial or deep; more risk with obesity (BMI >30)
AtelectasisEarly mobilization and physiotherapy essential
PneumothoraxAfter open flank approaches; chest X-ray if suspected
Urinary leak/urinomaEspecially after partial nephrectomy; drain creatinine >2x serum creatinine confirms
DVT/PEEarly mobilization + pharmacological prophylaxis mandatory
Adjacent organ injuryBowel, spleen, liver, diaphragm, pancreas injuries can complicate radical nephrectomy

Later Complications

  • Incisional hernia - more common with open approaches
  • Lymphocele - after extensive lymph node dissection
  • Hypertension - may worsen post-nephrectomy; requires drug optimization
  • Chronic kidney disease - the dominant long-term concern (see Section 6)
- Barash, Cullen, and Stoelting's Clinical Anesthesia, 9e; Campbell-Walsh-Wein Urology

5. Discharge Planning

  • Donor/laparoscopic nephrectomy: typically discharge by day 2-3 after ensuring pain control and spontaneous voiding
  • Open radical nephrectomy: typically day 4-7
  • Discharge criteria: adequate oral analgesia, tolerating diet, passing flatus/stool, ambulating independently
  • Wound care instructions; staples/sutures removal at 10-14 days if non-absorbable
  • Restrict heavy lifting (>5 kg) for 4-6 weeks
  • Return to work: laparoscopic 2-4 weeks; open 4-6 weeks
  • Sexual activity: typically resume at 4-6 weeks

6. Long-Term Renal Function Management

This is the most critical long-term concern after nephrectomy:

Physiology

  • After unilateral nephrectomy, the remaining kidney undergoes compensatory hypertrophy and hyperfiltration, typically recovering to ~70-75% of original two-kidney GFR (not 50% loss, but ~25% functional decline)
  • This hyperfiltration, while adaptive, predisposes to long-term glomerular injury

Monitoring

ParameterFrequency
Serum creatinine + eGFREvery 3-6 months for first year, then annually
Urinalysis / urine protein:creatinine ratioAnnually; proteinuria is an early marker of glomerular stress
Blood pressureEvery visit; hypertension accelerates CKD progression
ElectrolytesAnnually

Management of CKD Post-Nephrectomy

  • BP control: Target <130/80 mmHg; ACE inhibitor or ARB preferred (antiproteinuric, reno-protective) - particularly if proteinuria develops
  • Avoid nephrotoxins: NSAIDs, IV contrast (use CO₂ or dilute contrast with pre-hydration when needed), aminoglycosides
  • Diet: Moderate protein intake (0.8 g/kg/day); avoid high-sodium diet; stay well-hydrated
  • Referral to nephrology if eGFR <45 or persistent proteinuria
  • Risk of requiring dialysis after unilateral nephrectomy in a previously normal individual is low but increases significantly if there is pre-existing diabetes, hypertension, or contralateral renal disease
- Brenner and Rector's The Kidney; Barash Clinical Anesthesia

7. Oncologic Surveillance After Nephrectomy for RCC

Based on NCCN 2024/2025 guidelines and standard urologic practice:

Stage I (pT1) - Low Risk

  • History, physical exam, metabolic panel every 6 months x 2 years, then annually
  • Chest X-ray annually
  • Abdominal CT/MRI (with/without contrast): baseline within 3-12 months post-op, then annually for up to 5 years
  • CT chest: if chest X-ray abnormal or symptoms develop

Stage II (pT2)

  • Same as Stage I but abdominal CT/MRI every 6 months for 2 years, then annually for up to 5 years

Stage III (pT3-T4 or N+)

  • More intensive surveillance: CT chest/abdomen/pelvis every 3-6 months for 3 years, then annually
  • PET/CT or bone scan if symptomatic

After Partial Nephrectomy

  • Same surveillance as radical nephrectomy by pathologic stage
  • Optional CT abdomen at 3 months postoperatively to evaluate residual renal appearance and rule out local recurrence at resection bed
  • Annual renal ultrasound is optional for lower-risk patients

Sites of Metastatic Recurrence to Monitor

SiteMedian Time to Recurrence
Lung67 months
Liver97 months
Bone144 months
- NCCN Kidney Cancer Guidelines v1.2025; Campbell-Walsh-Wein Urology; PMC follow-up guidelines

8. Specific Situations

Donor Nephrectomy (Living Donor)

  • Postoperative care as above; discharge by day 2
  • Long-term: annual BP, creatinine, urinalysis for life
  • Living donors have slightly increased lifetime CKD risk but overall mortality comparable to matched non-donors due to selection bias (healthy donor effect)
  • FDA black-box warning: Hem-o-lok clips are contraindicated on the renal artery at nephrectomy; staplers are the standard

Radical Nephrectomy for Hypertension (Simple Nephrectomy)

  • Up to 86% of patients with renovascular hypertension and uncorrectable unilateral renal artery disease show improved BP control after simple nephrectomy
  • Continue antihypertensive medications postoperatively; titrate down as BP allows with close monitoring

Adjuvant Therapy After RCC Nephrectomy

  • Adjuvant pembrolizumab (KEYNOTE-564): FDA-approved for high-risk clear cell RCC (pT2 G4, pT3+, pT4, or M1 NED) - significantly improved disease-free survival (31.4 vs. 25.2 months)
  • Sunitinib-based adjuvant therapy is less favored due to toxicity without consistent OS benefit
  • Cytoreductive nephrectomy for metastatic RCC: currently undergoing re-evaluation in the immunotherapy era; NORDIC-SUN and PROBE trials ongoing

Summary Table: Post-Nephrectomy Care Timeline

TimeframeKey Actions
Day 0-1Vitals monitoring, fluid balance, analgesia, early mobilization, VTE prophylaxis
Day 1-2Resume oral diet, remove NG/nasogastric if present, ambulate
Day 2-3 (lap) / Day 4-7 (open)Discharge if criteria met
2-4 weeksWound review, suture removal, activity restriction
3 monthsFirst oncologic imaging (CT abdomen); renal function check
6 monthsRenal function (creatinine/eGFR/urinalysis), BP check
AnnuallyRenal function panel, BP, urinalysis, surveillance imaging per stage
Long-termNephrology referral if eGFR <45 or proteinuria; lifelong BP optimization

Key references:
  • Barash, Cullen, and Stoelting's Clinical Anesthesia, 9e - postoperative considerations, ERAS, renal function
  • Campbell-Walsh-Wein Urology, 3-Volume Set - surgical complications, laparoscopic outcomes
  • Sabiston Textbook of Surgery - donor nephrectomy postoperative course
  • Brenner and Rector's The Kidney, 2-Volume Set - compensatory hypertrophy, CKD after nephrectomy
  • NCCN Kidney Cancer Guidelines v1.2025 - oncologic surveillance
  • Recent systematic review (PMID 40658472): Management and optimization of chronic renal insufficiency in kidney cancer setting (2025)

Generate pdf of post radical nephrectomy management and care

Reading File
Running Command

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

Running Command

mkdir -p /tmp/workspace/nephrectomy-pdf && cat > /tmp/workspace/nephrectomy-pdf/generate_pdf.py << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm, mm from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether ) from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from reportlab.platypus import PageBreak OUTPUT = "/tmp/workspace/nephrectomy-pdf/Post_Radical_Nephrectomy_Management.pdf" # ── Page setup ────────────────────────────────────────────────────────────── doc = SimpleDocTemplate( OUTPUT, pagesize=A4, leftMargin=2*cm, rightMargin=2*cm, topMargin=2.5*cm, bottomMargin=2.5*cm, title="Post Radical Nephrectomy Management and Care", author="Orris Medical Reference", ) W, H = A4 CONTENT_W = W - 4*cm # ── Colour palette ─────────────────────────────────────────────────────────── TEAL = colors.HexColor("#1A6B6B") TEAL_LIGHT = colors.HexColor("#E6F2F2") TEAL_MID = colors.HexColor("#4EAAA5") AMBER = colors.HexColor("#D97706") AMBER_LIGHT= colors.HexColor("#FEF3C7") SLATE = colors.HexColor("#334155") SLATE_LIGHT= colors.HexColor("#F1F5F9") WHITE = colors.white GREY_LINE = colors.HexColor("#CBD5E1") RED_LIGHT = colors.HexColor("#FEE2E2") RED = colors.HexColor("#DC2626") GREEN_LIGHT= colors.HexColor("#DCFCE7") GREEN = colors.HexColor("#16A34A") # ── Styles ─────────────────────────────────────────────────────────────────── styles = getSampleStyleSheet() def make_style(name, parent="Normal", **kw): s = ParagraphStyle(name, parent=styles[parent], **kw) styles.add(s) return s # Title / header styles TITLE = make_style("DocTitle", fontSize=22, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER, leading=28, spaceAfter=4) SUBTITLE = make_style("DocSubtitle", fontSize=11, fontName="Helvetica", textColor=colors.HexColor("#B2DFDB"), alignment=TA_CENTER, leading=16) # Section heading SEC = make_style("Section", fontSize=13, fontName="Helvetica-Bold", textColor=WHITE, leading=18, spaceBefore=6, spaceAfter=4) # Sub-section SUBSEC = make_style("SubSection", fontSize=11, fontName="Helvetica-Bold", textColor=TEAL, leading=15, spaceBefore=8, spaceAfter=3) # Body text BODY = make_style("Body", fontSize=9.5, fontName="Helvetica", textColor=SLATE, leading=14, spaceAfter=4, alignment=TA_JUSTIFY) BODY_B = make_style("BodyBold", parent="Body", fontName="Helvetica-Bold", textColor=SLATE) # Bullet BULLET = make_style("Bullet", fontSize=9.5, fontName="Helvetica", textColor=SLATE, leading=13, leftIndent=14, firstLineIndent=-10, spaceAfter=2) # Small caption / footnote CAPTION = make_style("Caption", fontSize=8, fontName="Helvetica-Oblique", textColor=colors.HexColor("#64748B"), alignment=TA_CENTER) # Warning box text WARN = make_style("Warn", fontSize=9.5, fontName="Helvetica-Bold", textColor=RED, leading=13) NOTE = make_style("Note", fontSize=9.5, fontName="Helvetica", textColor=colors.HexColor("#92400E"), leading=13) # ── Helper functions ───────────────────────────────────────────────────────── def section_header(text, number=None): label = f"{number}. {text}" if number else text tbl = Table([[Paragraph(label, SEC)]], colWidths=[CONTENT_W]) tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), TEAL), ("ROUNDEDCORNERS", [4,4,4,4]), ("TOPPADDING", (0,0), (-1,-1), 6), ("BOTTOMPADDING",(0,0),(-1,-1), 6), ("LEFTPADDING", (0,0), (-1,-1), 10), ])) return tbl def callout(text, style="info"): bg = AMBER_LIGHT if style == "warn" else TEAL_LIGHT border = AMBER if style == "warn" else TEAL_MID p = Paragraph(text, NOTE if style == "warn" else BODY) tbl = Table([[p]], colWidths=[CONTENT_W-4]) tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), bg), ("LINECOLOR", (0,0),(-1,-1), border), # keep for reference ("BOX", (0,0),(-1,-1), 1.2, border), ("LEFTPADDING", (0,0),(-1,-1), 10), ("RIGHTPADDING", (0,0),(-1,-1), 10), ("TOPPADDING", (0,0),(-1,-1), 7), ("BOTTOMPADDING",(0,0),(-1,-1), 7), ])) return tbl def two_col(left_items, right_items, header_left="", header_right=""): """Two-column info box.""" lp = [Paragraph(f"• {i}", BULLET) for i in left_items] rp = [Paragraph(f"• {i}", BULLET) for i in right_items] # pad to equal length diff = len(lp) - len(rp) if diff > 0: rp += [Spacer(1,1)]*diff else: lp += [Spacer(1,1)]*(-diff) col_w = (CONTENT_W-6)/2 data = [[Paragraph(header_left, SUBSEC), Paragraph(header_right, SUBSEC)]] for l, r in zip(lp, rp): data.append([l, r]) tbl = Table(data, colWidths=[col_w, col_w], hAlign="LEFT") tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(1,0), TEAL_LIGHT), ("BACKGROUND", (0,1),(1,-1), SLATE_LIGHT), ("LINEBELOW", (0,0),(1,0), 1, TEAL), ("LINEAFTER", (0,0),(0,-1), 0.5, GREY_LINE), ("TOPPADDING", (0,0),(-1,-1), 4), ("BOTTOMPADDING", (0,0),(-1,-1), 4), ("LEFTPADDING", (0,0),(-1,-1), 6), ("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, SLATE_LIGHT]), ])) return tbl def data_table(headers, rows, col_widths=None, row_colors=True): if col_widths is None: n = len(headers) col_widths = [CONTENT_W/n]*n data = [[Paragraph(str(h), make_style(f"th_{h}", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE, leading=12)) for h in headers]] for row in rows: data.append([Paragraph(str(c), BODY) for c in row]) tbl = Table(data, colWidths=col_widths, hAlign="LEFT", repeatRows=1) ts = [ ("BACKGROUND", (0,0),(-1,0), TEAL), ("GRID", (0,0),(-1,-1), 0.4, GREY_LINE), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING",(0,0),(-1,-1),5), ("LEFTPADDING",(0,0),(-1,-1),6), ("VALIGN", (0,0),(-1,-1),"TOP"), ] if row_colors: for i in range(1, len(data)): bg = WHITE if i % 2 else SLATE_LIGHT ts.append(("BACKGROUND", (0,i),(-1,i), bg)) tbl.setStyle(TableStyle(ts)) return tbl def hr(): return HRFlowable(width=CONTENT_W, thickness=0.5, color=GREY_LINE, spaceAfter=4, spaceBefore=4) def sp(h=6): return Spacer(1, h) def b(text): return f"<b>{text}</b>" def bullet(items, bold_first=None): """Return list of Paragraph bullets.""" out = [] for item in items: if bold_first and item.startswith(bold_first): txt = f"<b>{item}</b>" else: txt = item out.append(Paragraph(f"• {txt}", BULLET)) return out # ── Cover page builder ──────────────────────────────────────────────────────── def cover_page(canvas, doc): canvas.saveState() # Full-width teal banner canvas.setFillColor(TEAL) canvas.rect(0, H-9*cm, W, 9*cm, fill=1, stroke=0) # Accent stripe canvas.setFillColor(TEAL_MID) canvas.rect(0, H-9*cm-0.5*cm, W, 0.5*cm, fill=1, stroke=0) # Bottom bar canvas.setFillColor(SLATE) canvas.rect(0, 0, W, 2*cm, fill=1, stroke=0) # Footer text canvas.setFillColor(GREY_LINE) canvas.setFont("Helvetica", 8) canvas.drawCentredString(W/2, 0.8*cm, "Orris Medical Reference | Post Radical Nephrectomy Management | July 2026") canvas.restoreState() def later_pages(canvas, doc): canvas.saveState() # Header line canvas.setFillColor(TEAL) canvas.rect(0, H-1.5*cm, W, 1.5*cm, fill=1, stroke=0) canvas.setFillColor(WHITE) canvas.setFont("Helvetica-Bold", 9) canvas.drawString(2*cm, H-0.9*cm, "Post Radical Nephrectomy — Management & Care") canvas.setFont("Helvetica", 9) canvas.drawRightString(W-2*cm, H-0.9*cm, f"Page {doc.page}") # Footer canvas.setFillColor(TEAL) canvas.rect(0, 0, W, 0.8*cm, fill=1, stroke=0) canvas.setFillColor(GREY_LINE) canvas.setFont("Helvetica", 7.5) canvas.drawCentredString(W/2, 0.26*cm, "Orris Medical Reference | For educational use only | July 2026") canvas.restoreState() # ═══════════════════════════════════════════════════════════════════════════════ # STORY # ═══════════════════════════════════════════════════════════════════════════════ story = [] # ── Cover content (first page uses cover_page template) ─────────────────────── story.append(sp(110)) # push below header banner story.append(Paragraph("Post Radical Nephrectomy", TITLE)) story.append(Paragraph("Management and Care", TITLE)) story.append(sp(8)) story.append(Paragraph("A Clinical Reference Guide", SUBTITLE)) story.append(sp(6)) story.append(Paragraph("Urology · Nephrology · Perioperative Medicine", SUBTITLE)) story.append(sp(80)) # Summary box on cover cover_info = [ ["Scope", "Immediate postoperative through long-term oncologic surveillance"], ["Applies to", "Radical nephrectomy (open & laparoscopic/robotic)"], ["Key domains", "Monitoring · Analgesia · ERAS · Complications · Renal function · Surveillance"], ["Guidelines", "NCCN 2025 · EAU · AUA · Campbell-Walsh Urology · Brenner & Rector's Kidney"], ["Updated", "July 2026"], ] tbl_cover = Table(cover_info, colWidths=[4*cm, CONTENT_W-4*cm]) tbl_cover.setStyle(TableStyle([ ("BACKGROUND", (0,0),(0,-1), TEAL_LIGHT), ("BACKGROUND", (1,0),(1,-1), SLATE_LIGHT), ("GRID", (0,0),(-1,-1), 0.4, GREY_LINE), ("FONTNAME", (0,0),(0,-1), "Helvetica-Bold"), ("FONTSIZE", (0,0),(-1,-1), 9), ("TEXTCOLOR", (0,0),(0,-1), TEAL), ("TOPPADDING", (0,0),(-1,-1), 6), ("BOTTOMPADDING", (0,0),(-1,-1), 6), ("LEFTPADDING", (0,0),(-1,-1), 8), ])) story.append(tbl_cover) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 1 – Immediate Postoperative Care # ═══════════════════════════════════════════════════════════════════════════════ story.append(section_header("IMMEDIATE POSTOPERATIVE CARE", "1")) story.append(sp(6)) story.append(Paragraph("1.1 Monitoring Parameters", SUBSEC)) mon_headers = ["Parameter", "Target / Action", "Frequency"] mon_rows = [ ["Vital signs", "HR, BP, SpO₂, Temperature", "Every 30–60 min (ICU); every 2 hr (ward)"], ["Urine output", ">0.5 mL/kg/hr; alert if <0.3 mL/kg/hr for 2 hrs", "Hourly via urinary catheter"], ["Drain output", "Serosanguinous normal; bright red >200 mL/hr → urgent review", "Every shift"], ["Hemoglobin / Hct", "Transfuse if Hb <7 g/dL (symptomatic) or <8 g/dL (cardiac risk)", "At 6 h, 24 h, then PRN"], ["Serum creatinine / eGFR", "Expect ~25% rise vs. baseline (compensatory adaptation)", "6 h, 24 h, 48 h post-op"], ["Electrolytes (K⁺, Na⁺)", "Correct hyperkalaemia promptly", "6 h, then daily"], ["Chest X-ray", "Rule out haemothorax / pneumothorax (especially open flank)", "Day 0 or Day 1"], ] story.append(data_table(mon_headers, mon_rows, col_widths=[3.5*cm, 7*cm, 5.5*cm])) story.append(sp(6)) story.append(Paragraph("1.2 Fluid Management", SUBSEC)) story += bullet([ "Use <b>goal-directed fluid therapy</b>; target euvolemia — avoid both hypovolaemia and fluid overload.", "Anticipate a modest ~25% GFR decline (remaining kidney compensates via hypertrophy/hyperfiltration — not the expected 50% loss).", "Adjust drug dosing for reduced GFR immediately post-op (opioids, antibiotics, contrast agents).", "IV crystalloids: Balanced salt solutions (PlasmaLyte / Hartmann's) preferred over 0.9% NaCl to minimise hyperchloraemic acidosis.", ]) story.append(sp(4)) story.append(callout( "⚠ Avoid nephrotoxins: NSAIDs, aminoglycosides, IV iodinated contrast without adequate hydration, " "and ACE inhibitors/ARBs in the immediate postoperative period (risk of AKI in a single-kidney state).", style="warn")) story.append(sp(8)) story.append(Paragraph("1.3 Respiratory Care", SUBSEC)) story += bullet([ "Incentive spirometry every 1–2 hours while awake — reduces atelectasis risk.", "Chest physiotherapy for open flank incisions.", "Early ambulation (Day 0 or 1) — best single intervention to prevent pulmonary complications.", "If pleural entry was made intraoperatively: monitor for pneumothorax; chest drain only if significant.", ]) story.append(sp(4)) story.append(hr()) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 2 – Pain Management # ═══════════════════════════════════════════════════════════════════════════════ story.append(sp(4)) story.append(section_header("PAIN MANAGEMENT", "2")) story.append(sp(6)) story.append(Paragraph( "Pain after radical nephrectomy — open or laparoscopic — is significant and requires a <b>multimodal strategy</b> " "to minimise systemic opioid use and facilitate early recovery.", BODY)) story.append(sp(6)) pain_headers = ["Modality", "Technique / Drug", "Notes"] pain_rows = [ ["Thoracic Epidural", "T8–T10 insertion; local anaesthetic ± opioid infusion", "Preferred for open flank; superior analgesia, reduces opioid need"], ["Paravertebral Block", "Unilateral multi-level or single injection", "Alternative to epidural; lower hypotension risk"], ["Wound / Port Infiltration", "Bupivacaine 0.25–0.5% at incision/port sites", "Effective for laparoscopic approach"], ["IV PCA (Opioids)", "Morphine or Fentanyl PCA", "Titrate carefully — reduced renal clearance; avoid NSAIDs"], ["Paracetamol (Acetaminophen)", "1 g IV/oral every 6 hours", "Safe opioid-sparing agent; use routinely"], ["Gabapentinoids", "Gabapentin 300 mg or Pregabalin 75 mg pre- and post-op", "Reduces opioid consumption; caution in elderly"], ["Diaphragm Irritation (lap)", "Shoulder pain from residual CO₂", "Reassure; resolves with ambulation; analgesics PRN"], ] story.append(data_table(pain_headers, pain_rows, col_widths=[3.8*cm, 5.5*cm, 6.7*cm])) story.append(sp(6)) story.append(callout( "🚫 <b>NSAIDs are contraindicated</b> post-nephrectomy — prostaglandin inhibition impairs renal autoregulation " "in the remaining solitary kidney, risking acute kidney injury.", style="warn")) story.append(sp(4)) story.append(hr()) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 3 – ERAS Protocol # ═══════════════════════════════════════════════════════════════════════════════ story.append(PageBreak()) story.append(section_header("ENHANCED RECOVERY AFTER SURGERY (ERAS)", "3")) story.append(sp(6)) story.append(Paragraph( "ERAS protocols reduce hospital stay, complication rates, and time to return of gastrointestinal function. " "Laparoscopic/robotic radical nephrectomy is associated with a <b>29% lower complication rate</b> vs open approach.", BODY)) story.append(sp(8)) eras_data = [ ["PREOPERATIVE", "INTRAOPERATIVE", "POSTOPERATIVE"], ["• Patient counselling & education\n• Carbohydrate loading up to 2 h pre-op\n• Light meal up to 6 h pre-op\n• No prolonged mechanical bowel prep\n• Subcutaneous heparin (VTE prophylaxis)\n• Multimodal analgesic pre-medication\n• Prehabilitation (optimise fitness)", "• Minimally invasive approach (lap/robotic)\n• Goal-directed fluid management\n• Thoracic epidural or truncal block\n• Avoid hypothermia (warming blanket)\n• Minimise surgical stress response\n• Short-acting anaesthetic agents", "• Remove NGT immediately if used\n• Oral fluids Day 0; diet by Day 1\n• Mobilise Day 0 or Day 1\n• No routine urinary catheter beyond Day 2\n• Remove drain when <50 mL/24 h\n• Target discharge Day 2–3 (laparoscopic)\n• Discharge Day 4–7 (open)"], ] eras_tbl = Table(eras_data, colWidths=[(CONTENT_W)/3]*3) eras_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), TEAL), ("TEXTCOLOR", (0,0),(-1,0), WHITE), ("FONTNAME", (0,0),(-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0),(-1,-1), 8.5), ("BACKGROUND", (0,1),(0,1), TEAL_LIGHT), ("BACKGROUND", (1,1),(1,1), SLATE_LIGHT), ("BACKGROUND", (2,1),(2,1), colors.HexColor("#F0FDF4")), ("GRID", (0,0),(-1,-1), 0.4, GREY_LINE), ("VALIGN", (0,0),(-1,-1), "TOP"), ("TOPPADDING", (0,0),(-1,-1), 7), ("BOTTOMPADDING", (0,0),(-1,-1), 7), ("LEFTPADDING", (0,0),(-1,-1), 6), ("ALIGN", (0,0),(-1,0), "CENTER"), ("FONTSIZE", (0,0),(-1,0), 9.5), ])) story.append(eras_tbl) story.append(sp(4)) story.append(hr()) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 4 – Postoperative Complications # ═══════════════════════════════════════════════════════════════════════════════ story.append(sp(4)) story.append(section_header("POSTOPERATIVE COMPLICATIONS", "4")) story.append(sp(6)) story.append(Paragraph("4.1 Early Complications (within 30 days)", SUBSEC)) early_headers = ["Complication", "Incidence", "Management"] early_rows = [ ["Haemorrhage", "Most common major complication", "Transfuse if Hb <7–8; interventional radiology / re-exploration if haemodynamically unstable"], ["Ileus", "Most common after donor nephrectomy; ~11% radical nephrectomy", "Conservative: NBM, IV fluids, early mobilisation, NG decompression if persistent"], ["Atelectasis / Pneumonia", "~1.2% laparoscopic series", "Incentive spirometry, early mobilisation, physiotherapy, antibiotics if pneumonia confirmed"], ["Wound Infection", "~1.4% laparoscopic; higher open", "Wound care, oral/IV antibiotics; higher risk BMI >30"], ["Pneumothorax", "Open flank approach risk", "CXR; drain if >20% or symptomatic; otherwise observe"], ["Urinary Leak / Urinoma", "Rare after radical nephrectomy", "Drain creatinine >2× serum creatinine confirms; percutaneous drainage"], ["DVT / PE", "Major risk without prophylaxis", "LMWH started 6–12 h postop + graduated compression stockings; early ambulation"], ["Adjacent Organ Injury", "Bowel, spleen, liver, diaphragm, pancreas", "Intraoperative repair; delayed recognition may need re-exploration"], ["Acute Kidney Injury", "Risk in pre-existing CKD, DM, hypertension", "Avoid nephrotoxins; optimise volume; nephrology consult if creatinine doubles"], ] story.append(data_table(early_headers, early_rows, col_widths=[3.8*cm, 4*cm, 8.2*cm])) story.append(sp(8)) story.append(Paragraph("4.2 Late Complications (>30 days)", SUBSEC)) late_headers = ["Complication", "Notes"] late_rows = [ ["Incisional Hernia", "More common open approach; repair if symptomatic or large"], ["Chronic Kidney Disease", "Dominant long-term concern — see Section 6"], ["Hypertension", "May worsen post-nephrectomy; requires drug optimisation"], ["Lymphocele", "After extensive LN dissection; symptomatic → percutaneous drainage"], ["Tumour Recurrence", "Managed per oncologic surveillance protocol — Section 7"], ] story.append(data_table(late_headers, late_rows, col_widths=[5*cm, 11*cm])) story.append(sp(4)) story.append(hr()) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 5 – Discharge Criteria & Instructions # ═══════════════════════════════════════════════════════════════════════════════ story.append(PageBreak()) story.append(section_header("DISCHARGE CRITERIA AND INSTRUCTIONS", "5")) story.append(sp(6)) story.append(Paragraph("5.1 Discharge Criteria", SUBSEC)) dc_left = [ "Adequate pain control on oral analgesia", "Tolerating oral diet and fluids", "Passing flatus / bowel open", "Ambulating independently", ] dc_right = [ "Afebrile >24 h; stable haemoglobin", "No evidence of active bleeding", "Wound clean and dry", "Creatinine stable or improving", ] story.append(two_col(dc_left, dc_right, "Clinical Criteria (Left)", "Clinical Criteria (Right)")) story.append(sp(6)) story.append(Paragraph("5.2 Expected Discharge Timing", SUBSEC)) disc_tbl = data_table( ["Approach", "Expected Discharge"], [["Laparoscopic / Robotic radical nephrectomy", "Day 2–3"], ["Open (flank / midline) radical nephrectomy", "Day 4–7"], ["Open with vena cava thrombectomy", "Day 5–10 (ICU Day 1–2)"]], col_widths=[10*cm, 6*cm] ) story.append(disc_tbl) story.append(sp(6)) story.append(Paragraph("5.3 Patient Discharge Instructions", SUBSEC)) disc_instruct = [ ["Activity restriction", "No heavy lifting >5 kg for 4–6 weeks; avoid strenuous exercise for 6 weeks"], ["Driving", "Avoid for 2–4 weeks (laparoscopic) or 4–6 weeks (open); check with insurer"], ["Return to work", "Desk work: 2–4 weeks (lap), 4–6 weeks (open); manual labour: 6–8 weeks"], ["Sexual activity", "Resume at 4–6 weeks or when comfortable"], ["Wound care", "Keep dry for 48 h; non-absorbable sutures/staples removed at 10–14 days"], ["Medications", "Continue BP medications; avoid NSAIDs; do not restart anticoagulants without GP/surgeon advice"], ["Hydration", "Drink ≥2 L water/day to support remaining kidney"], ["Return to ED if…", "Fever >38°C, heavy bleeding, no urine for 8 h, severe uncontrolled pain, leg swelling"], ] d_tbl = Table(disc_instruct, colWidths=[4.5*cm, 11.5*cm]) d_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(0,-1), TEAL_LIGHT), ("FONTNAME", (0,0),(0,-1), "Helvetica-Bold"), ("FONTSIZE", (0,0),(-1,-1), 9), ("TEXTCOLOR", (0,0),(0,-1), TEAL), ("GRID", (0,0),(-1,-1), 0.3, GREY_LINE), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING", (0,0),(-1,-1), 5), ("LEFTPADDING", (0,0),(-1,-1), 6), ("VALIGN", (0,0),(-1,-1), "TOP"), ("ROWBACKGROUNDS",(0,0),(-1,-1),[WHITE, SLATE_LIGHT]), ])) story.append(d_tbl) story.append(sp(4)) story.append(hr()) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 6 – Renal Function Management # ═══════════════════════════════════════════════════════════════════════════════ story.append(sp(4)) story.append(section_header("LONG-TERM RENAL FUNCTION MANAGEMENT", "6")) story.append(sp(6)) story.append(Paragraph("6.1 Physiological Basis", SUBSEC)) story.append(Paragraph( "After unilateral nephrectomy, the remaining kidney undergoes <b>compensatory hypertrophy and hyperfiltration</b>. " "GFR typically recovers to 70–75% of the original two-kidney GFR (a ~25% net decline, not the expected 50%). " "This sustained hyperfiltration, while adaptive, predisposes to long-term glomerular stress, proteinuria, " "and progressive CKD — particularly in patients with pre-existing diabetes, hypertension, or contralateral disease.", BODY)) story.append(sp(6)) story.append(Paragraph("6.2 Monitoring Schedule", SUBSEC)) mon2_headers = ["Parameter", "Timing"] mon2_rows = [ ["Serum creatinine + eGFR", "3 months, 6 months, then annually (or every 6 months if CKD)"], ["Urinalysis + urine protein:creatinine ratio (UPCR)", "Annually; earlier if symptoms or high-risk"], ["Blood pressure", "Every clinical visit; target <130/80 mmHg"], ["Electrolytes (K⁺, Na⁺, HCO₃⁻)", "Annually (or more frequently if eGFR <45)"], ["Lipid profile + HbA1c", "Annually (CKD risk factors)"], ] story.append(data_table(mon2_headers, mon2_rows, col_widths=[6.5*cm, 9.5*cm])) story.append(sp(6)) story.append(Paragraph("6.3 Management of CKD Post-Nephrectomy", SUBSEC)) ckd_rows = [ ["BP Control", "Target <130/80 mmHg\n• ACE inhibitor or ARB: first-line (antiproteinuric + reno-protective)\n• Add CCB or thiazide if not controlled"], ["Proteinuria", "ACE inhibitor / ARB if UPCR >0.1 g/mmol\nRepeat UPCR in 3 months to confirm response"], ["Nephrotoxin Avoidance", "NSAIDs, aminoglycosides, IV contrast (pre-hydrate if essential), high-dose diuretics"], ["Diet", "Moderate protein: 0.8 g/kg/day; low sodium (<2 g/day); high fluid intake ≥2 L/day"], ["Diabetes Management", "Tight glycaemic control (HbA1c <53 mmol/mol); SGLT-2 inhibitors have additional nephroprotective effect"], ["Nephrology Referral", "eGFR <45 mL/min/1.73m² or persistent proteinuria (UPCR >0.1) or rapidly declining GFR (>5 mL/yr)"], ["Anaemia", "If Hb <10 g/dL and eGFR <45: check iron stores; EPO-stimulating agents if iron-replete"], ] ckd_tbl = Table(ckd_rows, colWidths=[4*cm, 12*cm]) ckd_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(0,-1), TEAL_LIGHT), ("FONTNAME", (0,0),(0,-1), "Helvetica-Bold"), ("FONTSIZE", (0,0),(-1,-1), 9), ("TEXTCOLOR", (0,0),(0,-1), TEAL), ("GRID", (0,0),(-1,-1), 0.3, GREY_LINE), ("ROWBACKGROUNDS",(0,0),(-1,-1),[WHITE, SLATE_LIGHT]), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING", (0,0),(-1,-1), 5), ("LEFTPADDING", (0,0),(-1,-1), 6), ("VALIGN", (0,0),(-1,-1), "TOP"), ])) story.append(ckd_tbl) story.append(sp(4)) story.append(hr()) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 7 – Oncologic Surveillance # ═══════════════════════════════════════════════════════════════════════════════ story.append(PageBreak()) story.append(section_header("ONCOLOGIC SURVEILLANCE AFTER RADICAL NEPHRECTOMY FOR RCC", "7")) story.append(sp(6)) story.append(Paragraph( "Surveillance schedule is stratified by pathologic stage, based on <b>NCCN Kidney Cancer Guidelines v1.2025</b> " "and EAU/AUA recommendations. Recurrence can occur years to decades after surgery; adherence to protocol is essential.", BODY)) story.append(sp(6)) story.append(Paragraph("7.1 Surveillance by Stage", SUBSEC)) surv_headers = ["Stage", "History & Exam", "Labs (CMP, eGFR)", "Chest Imaging", "Abdominal CT/MRI"] surv_rows = [ ["Stage I (pT1)", "6-monthly ×2 yr,\nthen annually", "Annually", "CXR annually", "CT/MRI at 3–12 months post-op,\nthen annually ×5 yr"], ["Stage II (pT2)", "6-monthly ×2 yr,\nthen annually", "Annually", "CXR every 6 months ×2 yr", "CT/MRI every 6 months ×2 yr,\nthen annually ×5 yr"], ["Stage III (pT3–T4 / N+)", "Every 3–4 months ×3 yr,\nthen 6-monthly", "Every 6 months", "CT chest every 3–6 months ×3 yr", "CT abdomen/pelvis every\n3–6 months ×3 yr, then annually"], ["M1 NED (post-cytoreductive NX)", "Every 3 months ×2 yr", "Every 3 months", "CT chest every 3 months", "CT abdomen/pelvis every\n3–6 months"], ] story.append(data_table(surv_headers, surv_rows, col_widths=[2.5*cm, 3*cm, 2.5*cm, 3.5*cm, 4.5*cm])) story.append(sp(6)) story.append(Paragraph("7.2 Common Sites of Metastatic Recurrence", SUBSEC)) met_tbl = data_table( ["Site", "Median Time to Recurrence", "Surveillance Implication"], [ ["Lung (most common)", "~67 months", "Routine chest imaging at each visit"], ["Liver", "~97 months", "Abdominal CT includes liver windows"], ["Bone", "~144 months", "Bone scan / MRI spine only if symptomatic"], ["Brain", "Late; uncommon", "MRI brain only if neurological symptoms"], ["Local (renal fossa)", "Variable; early", "Abdominal CT protocol covers renal fossa"], ], col_widths=[3.5*cm, 4.5*cm, 8*cm] ) story.append(met_tbl) story.append(sp(6)) story.append(Paragraph("7.3 Adjuvant Systemic Therapy Considerations", SUBSEC)) story.append(callout( "🔹 <b>Adjuvant Pembrolizumab (KEYNOTE-564)</b> — FDA approved for high-risk clear cell RCC after radical nephrectomy:\n" "Indications: pT2 G4, pT3 any G, pT4 any G, or M1 NED (resected metastases). " "1-year course of pembrolizumab improves disease-free survival (31.4 vs 25.2 months vs placebo). " "Discuss with patients meeting criteria within 3 months of surgery.", style="info")) story.append(sp(4)) story.append(Paragraph( "Sunitinib-based adjuvant therapy is not routinely recommended due to toxicity without consistent OS benefit. " "For metastatic RCC, cytoreductive nephrectomy decisions should be made in multidisciplinary tumour board — " "role is being re-evaluated in the immunotherapy era (NORDIC-SUN, PROBE trials ongoing).", BODY)) story.append(sp(4)) story.append(hr()) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 8 – Follow-up Timeline Summary # ═══════════════════════════════════════════════════════════════════════════════ story.append(sp(4)) story.append(section_header("FOLLOW-UP CARE TIMELINE SUMMARY", "8")) story.append(sp(6)) timeline_headers = ["Timeframe", "Key Actions"] timeline_rows = [ ["Day 0–1\n(ICU/Ward)", "Vitals + urine output monitoring, haemoglobin check, IV analgesia, VTE prophylaxis, incentive spirometry, mobilise"], ["Day 1–2", "Resume oral diet, remove NGT, step down analgesia to oral, ambulate TID, remove urinary catheter"], ["Day 2–3 (lap)\nDay 4–7 (open)", "Discharge if criteria met; patient education, wound care instructions, discharge medications"], ["2 weeks", "GP review: wound inspection, suture removal (if non-absorbable), blood pressure check, creatinine"], ["6–12 weeks", "Surgeon review, baseline abdominal CT/MRI (post-nephrectomy for RCC stage I); renal function panel"], ["3 months", "Oncology visit: labs + imaging per stage; assess for adjuvant pembrolizumab eligibility"], ["6 months", "Renal function (eGFR, UPCR, electrolytes), BP check, surveillance imaging per stage"], ["Annually", "Creatinine/eGFR, urinalysis/UPCR, BP, lipids, HbA1c; chest X-ray ± CT; nephrology if eGFR <45"], ["Long-term\n(>5 years)", "Annual creatinine + BP for life; continued oncologic surveillance per clinician judgement; nephrology co-management if CKD"], ] story.append(data_table(timeline_headers, timeline_rows, col_widths=[3.5*cm, 12.5*cm])) story.append(sp(6)) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 9 – Special Considerations # ═══════════════════════════════════════════════════════════════════════════════ story.append(sp(4)) story.append(section_header("SPECIAL CONSIDERATIONS", "9")) story.append(sp(6)) spec_data = [ ["HYPERTENSION POST-NEPHRECTOMY", "DIABETES AND CKD RISK", "ELDERLY PATIENTS"], ["• Up to 86% of patients with renovascular hypertension improve after nephrectomy\n" "• Continue antihypertensives post-op; titrate down as BP allows\n" "• First-line: ACE inhibitor / ARB if proteinuria present\n" "• Target <130/80 mmHg\n" "• Aldosterone antagonists (spironolactone) in resistant hypertension", "• Diabetic patients: highest risk of progressive CKD after nephrectomy\n" "• SGLT-2 inhibitors: reno-protective + cardiometabolic benefit; use if eGFR ≥25\n" "• Tight glycaemic control (HbA1c <53 mmol/mol)\n" "• GLP-1 agonists if obese + diabetic\n" "• Avoid metformin if eGFR <30", "• Higher complication rates post-operatively\n" "• More aggressive VTE prophylaxis\n" "• CKD progression faster with age-related nephron loss\n" "• Consider dose adjustment for all renally-cleared drugs\n" "• Falls risk: avoid sedating medications\n" "• Geriatric review if frail"], ] spec_tbl = Table(spec_data, colWidths=[(CONTENT_W)/3]*3) spec_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), TEAL), ("TEXTCOLOR", (0,0),(-1,0), WHITE), ("FONTNAME", (0,0),(-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0),(-1,-1), 8.5), ("BACKGROUND", (0,1),(0,1), TEAL_LIGHT), ("BACKGROUND", (1,1),(1,1), AMBER_LIGHT), ("BACKGROUND", (2,1),(2,1), SLATE_LIGHT), ("GRID", (0,0),(-1,-1), 0.4, GREY_LINE), ("VALIGN", (0,0),(-1,-1), "TOP"), ("TOPPADDING", (0,0),(-1,-1), 7), ("BOTTOMPADDING", (0,0),(-1,-1), 7), ("LEFTPADDING", (0,0),(-1,-1), 6), ("ALIGN", (0,0),(-1,0), "CENTER"), ("FONTSIZE", (0,0),(-1,0), 9.5), ])) story.append(spec_tbl) story.append(sp(8)) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 10 – References # ═══════════════════════════════════════════════════════════════════════════════ story.append(hr()) story.append(sp(4)) story.append(Paragraph("REFERENCES AND SOURCES", SUBSEC)) story.append(sp(4)) refs = [ "Barash, Cullen & Stoelting's Clinical Anesthesia, 9th Edition — Postoperative Considerations (Nephrectomy), p.4284–4285", "Campbell-Walsh-Wein Urology, 3-Volume Set — Complications of Laparoscopic Renal Surgery", "Sabiston Textbook of Surgery — Donor Nephrectomy Postoperative Course", "Brenner and Rector's The Kidney, 2-Volume Set — Compensatory Hypertrophy and CKD After Nephrectomy", "Comprehensive Clinical Nephrology, 7th Edition — Partial vs Radical Nephrectomy and Renal Function", "NCCN Clinical Practice Guidelines in Oncology: Kidney Cancer v1.2025 (updated July 2024)", "Cobb JK et al. Management and optimization of chronic renal insufficiency in kidney cancer. Int Braz J Urol. 2025 [PMID: 40658472]", "Liu Y et al. Perioperative, functional, and oncological outcomes after cryoablation or partial nephrectomy for small renal masses. BMC Urol. 2024 [PMID: 38268005]", "Follow-up guidelines after radical or partial nephrectomy for localized RCC. PMC2645874", ] for i, r in enumerate(refs, 1): story.append(Paragraph(f"{i}. {r}", make_style(f"Ref{i}", fontSize=8.5, fontName="Helvetica", textColor=SLATE, leading=12, leftIndent=12, firstLineIndent=-12, spaceAfter=4))) story.append(sp(6)) story.append(callout( "This document is intended for educational and reference purposes only. " "Clinical decisions should always be made in the context of individual patient presentation, " "local institutional protocols, and current specialist guidelines.", style="info")) # ── Build ───────────────────────────────────────────────────────────────────── doc.build(story, onFirstPage=cover_page, onLaterPages=later_pages) print(f"PDF generated: {OUTPUT}") PYEOF echo "Script written successfully"

Running Command

cd /tmp/workspace/nephrectomy-pdf && python generate_pdf.py 2>&1

Editing File

~/nephrectomy-pdf/generate_pdf.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/nephrectomy-pdf/generate_pdf.py'
Running Command

cd /tmp/workspace/nephrectomy-pdf && python generate_pdf.py 2>&1

Editing File

~/nephrectomy-pdf/generate_pdf.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/nephrectomy-pdf/generate_pdf.py'
Running Command

cd /tmp/workspace/nephrectomy-pdf && python generate_pdf.py 2>&1

Running Command

ls -lh /tmp/workspace/nephrectomy-pdf/Post_Radical_Nephrectomy_Management.pdf

Your PDF is ready for download:

Post Radical Nephrectomy Management

PDF Document · PDF


What's included in the PDF (9 sections, A4, ~29 KB):
SectionContent
Cover pageTitle banner with scope, guidelines, and date
1. Immediate Postoperative CareMonitoring table (vitals, UO, drain, labs), fluid management, respiratory care
2. Pain ManagementMultimodal analgesia table (epidural, PCA, paracetamol, gabapentinoids); NSAID contraindication callout
3. ERAS ProtocolThree-column pre/intra/post-operative ERAS actions
4. ComplicationsEarly and late complications with incidence and management
5. DischargeDischarge criteria, timing (lap vs open), and patient instructions
6. Renal FunctionPhysiology of compensatory hypertrophy, monitoring schedule, CKD management table
7. Oncologic SurveillanceNCCN stage-based imaging schedule, metastatic sites table, adjuvant pembrolizumab
8. Timeline SummaryDay 0 through long-term follow-up at a glance
9. Special ConsiderationsHypertension, diabetes/CKD risk, elderly patients
References9 cited sources (textbooks + PubMed)
This is a shared conversation. Sign in to Orris to start your own chat.