Classify Acute kidney injury. Write a notes on this topic for my MD Anaesthesiology exam notes
| Category | GFR/Creatinine Criteria | Urine Output |
|---|---|---|
| Risk | ↑ SCr ×1.5-2 or GFR fall >25% | <0.5 mL/kg/h × 6h |
| Injury | ↑ SCr ×2-3 or GFR fall >50% | <0.5 mL/kg/h × 12h |
| Failure | ↑ SCr ×3 or SCr ≥4 mg/dL (acute rise ≥0.5) or GFR fall >75% | <0.3 mL/kg/h × 24h or anuria ×12h |
| Loss | Persistent ARF = complete loss of renal function >4 weeks | - |
| ESKD | End-stage kidney disease >3 months | - |
| Stage | Serum Creatinine | Urine Output |
|---|---|---|
| 1 | 1.5-1.9× baseline OR ≥0.3 mg/dL absolute rise | <0.5 mL/kg/h for 6-12 h |
| 2 | 2.0-2.9× baseline | <0.5 mL/kg/h for ≥12 h |
| 3 | 3× baseline OR SCr ≥4.0 mg/dL OR initiation of RRT OR (in patients <18 yrs) eGFR <35 mL/min/1.73m² | <0.3 mL/kg/h for ≥24 h OR anuria for ≥12 h |
| Test | Strength | Weakness |
|---|---|---|
| Serum creatinine | Cheap, available | Late marker, confounded by muscle mass/fluid status |
| BUN | Cheap, available | Confounded by GI bleed, liver disease, hypovolemia |
| FeNa | Cheap | Unreliable with diuretics/CKD |
| Urine microscopy | Non-invasive, informative (e.g., RBC casts in GN) | Operator-dependent |
| Novel biomarkers (NGAL, KIM-1, TIMP-2, IGFBP7, IL-18) | Detect AKI before creatinine rise | Costly, not routine |
While making pdf plz maintain riffle criteria in a proper chart
/tmp/workspace
mkdir -p /tmp/workspace/aki-notes && cat > /tmp/workspace/aki-notes/make_pdf.py << 'EOF' from reportlab.lib.pagesizes import A4 from reportlab.lib.units import cm from reportlab.lib import colors from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, PageBreak, ListFlowable, ListItem) from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_CENTER, TA_LEFT doc = SimpleDocTemplate("/tmp/workspace/aki-notes/AKI_Classification_Notes_MD_Anaesthesiology.pdf", pagesize=A4, topMargin=1.5*cm, bottomMargin=1.5*cm, leftMargin=1.5*cm, rightMargin=1.5*cm) styles = getSampleStyleSheet() title_style = ParagraphStyle('TitleX', parent=styles['Title'], fontSize=18, spaceAfter=4, textColor=colors.HexColor('#1a3c6e')) subtitle_style = ParagraphStyle('SubtitleX', parent=styles['Normal'], fontSize=11, textColor=colors.HexColor('#555555'), spaceAfter=14) h1 = ParagraphStyle('H1', parent=styles['Heading1'], fontSize=14, textColor=colors.HexColor('#1a3c6e'), spaceBefore=14, spaceAfter=6) h2 = ParagraphStyle('H2', parent=styles['Heading2'], fontSize=12, textColor=colors.HexColor('#2a5a9c'), spaceBefore=10, spaceAfter=4) body = ParagraphStyle('Body', parent=styles['Normal'], fontSize=10, leading=14, spaceAfter=6, alignment=TA_LEFT) bullet_style = ParagraphStyle('Bullet', parent=styles['Normal'], fontSize=10, leading=13.5, leftIndent=12, spaceAfter=3) small_note = ParagraphStyle('SmallNote', parent=styles['Normal'], fontSize=8.5, leading=11, textColor=colors.HexColor('#444444'), spaceAfter=6) table_cell = ParagraphStyle('TableCell', parent=styles['Normal'], fontSize=8.5, leading=10.5) table_header = ParagraphStyle('TableHeader', parent=styles['Normal'], fontSize=9, leading=11, textColor=colors.white, alignment=TA_CENTER, fontName='Helvetica-Bold') table_stagecell = ParagraphStyle('StageCell', parent=styles['Normal'], fontSize=9, leading=11, fontName='Helvetica-Bold', alignment=TA_CENTER) elements = [] elements.append(Paragraph("Acute Kidney Injury (AKI)", title_style)) elements.append(Paragraph("Classification & Notes for MD Anaesthesiology Exam", subtitle_style)) # ---------------- 1. Definition ---------------- elements.append(Paragraph("1. Definition", h1)) elements.append(Paragraph( "AKI (previously 'acute renal failure') is an abrupt decline (within 48 hours to 7 days) in glomerular " "filtration rate (GFR), with accumulation of nitrogenous waste products (urea, creatinine) and disturbance " "of fluid, electrolyte, and acid-base homeostasis. It occurs in 5-25% of hospitalized patients, with " "mortality up to 50-80% in ICU settings when severe. <i>(Miller's Anesthesia, 10e)</i>", body)) # ---------------- 2. Classification ---------------- elements.append(Paragraph("2. Classification of AKI", h1)) elements.append(Paragraph("A. By Staging / Severity Criteria — RIFLE, AKIN, KDIGO", h2)) elements.append(Paragraph( "Three consensus staging systems evolved sequentially: <b>RIFLE (2004) → AKIN (2007) → KDIGO (2012)</b>. " "KDIGO is now the current standard used in anaesthesia and critical care practice.", body)) elements.append(Paragraph("RIFLE Criteria (Risk, Injury, Failure, Loss, End-stage kidney disease)", h2)) rifle_data = [ [Paragraph("Category", table_header), Paragraph("Serum Creatinine / GFR Criteria", table_header), Paragraph("Urine Output Criteria", table_header)], [Paragraph("<b>R</b> - Risk", table_stagecell), Paragraph("↑ SCr ×1.5-2 from baseline, or GFR fall >25%", table_cell), Paragraph("<0.5 mL/kg/h × 6 h", table_cell)], [Paragraph("<b>I</b> - Injury", table_stagecell), Paragraph("↑ SCr ×2-3 from baseline, or GFR fall >50%", table_cell), Paragraph("<0.5 mL/kg/h × 12 h", table_cell)], [Paragraph("<b>F</b> - Failure", table_stagecell), Paragraph("↑ SCr ×3 from baseline, or SCr ≥4 mg/dL (with acute rise ≥0.5 mg/dL), or GFR fall >75%", table_cell), Paragraph("<0.3 mL/kg/h × 24 h, or anuria × 12 h", table_cell)], [Paragraph("<b>L</b> - Loss", table_stagecell), Paragraph("Persistent ARF = complete loss of renal function > 4 weeks", table_cell), Paragraph("-", table_cell)], [Paragraph("<b>E</b> - ESKD", table_stagecell), Paragraph("End-stage kidney disease > 3 months", table_cell), Paragraph("-", table_cell)], ] rifle_table = Table(rifle_data, colWidths=[3.2*cm, 8.8*cm, 4.5*cm]) rifle_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3c6e')), ('BACKGROUND', (0,1), (-1,1), colors.HexColor('#eaf1fb')), ('BACKGROUND', (0,2), (-1,2), colors.HexColor('#d4e4f7')), ('BACKGROUND', (0,3), (-1,3), colors.HexColor('#b8d3f0')), ('BACKGROUND', (0,4), (-1,4), colors.HexColor('#f5f5f5')), ('BACKGROUND', (0,5), (-1,5), colors.HexColor('#e8e8e8')), ('GRID', (0,0), (-1,-1), 0.75, colors.HexColor('#8ca6c9')), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ('ALIGN', (0,0), (0,-1), 'CENTER'), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 6), ('RIGHTPADDING', (0,0), (-1,-1), 6), ])) elements.append(rifle_table) elements.append(Paragraph("<i>RIFLE = Risk, Injury, Failure, Loss, End-stage kidney disease (Acute Dialysis Quality Initiative, 2004)</i>", small_note)) elements.append(Paragraph("Comparison: RIFLE vs AKIN vs KDIGO Staging", h2)) cmp_data = [ [Paragraph("", table_header), Paragraph("RIFLE", table_header), Paragraph("AKIN", table_header), Paragraph("KDIGO", table_header), Paragraph("Urine Output<br/>(common to all)", table_header)], [Paragraph("Definition of AKI", table_stagecell), Paragraph("As per Risk criterion below", table_cell), Paragraph("↑ SCr ≥0.3 mg/dL (≥26.4 µmol/L) OR ≥50% (1.5-fold) rise in 48 h", table_cell), Paragraph("↑ SCr ≥26.5 µmol/L in ≤48 h, OR ≥1.5× baseline within prior 7 days", table_cell), Paragraph("-", table_cell)], [Paragraph("Stage 1", table_stagecell), Paragraph("<b>Risk:</b> SCr ×1.5-2, or GFR fall >25%", table_cell), Paragraph("SCr ↑ ≥0.3 mg/dL or ×1.5-2 baseline", table_cell), Paragraph("SCr ×1.5-1.9 baseline OR ↑ ≥0.3 mg/dL", table_cell), Paragraph("<0.5 mL/kg/h × 6-12 h", table_cell)], [Paragraph("Stage 2", table_stagecell), Paragraph("<b>Injury:</b> SCr ×2-3, or GFR fall >50%", table_cell), Paragraph("SCr ×2-3 baseline", table_cell), Paragraph("SCr ×2.0-2.9 baseline", table_cell), Paragraph("<0.5 mL/kg/h × ≥12 h", table_cell)], [Paragraph("Stage 3", table_stagecell), Paragraph("<b>Failure:</b> SCr ×3, or SCr ≥4 mg/dL (acute ↑≥0.5), or GFR fall >75%", table_cell), Paragraph("SCr ×>3 baseline, or SCr ≥4 mg/dL, or RRT initiated", table_cell), Paragraph("SCr ×3.0 baseline, or SCr ≥4.0 mg/dL, or RRT initiated", table_cell), Paragraph("<0.3 mL/kg/h × ≥24 h, or anuria ≥12 h", table_cell)], [Paragraph("Outcome<br/>categories", table_stagecell), Paragraph("<b>Loss</b> (>4 wk), <b>ESKD</b> (>3 mo)", table_cell), Paragraph("Not included", table_cell), Paragraph("Not included", table_cell), Paragraph("-", table_cell)], ] cmp_table = Table(cmp_data, colWidths=[2.2*cm, 4.0*cm, 3.7*cm, 3.7*cm, 2.9*cm]) cmp_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3c6e')), ('BACKGROUND', (0,1), (-1,1), colors.HexColor('#fdf3d6')), ('BACKGROUND', (0,2), (-1,2), colors.HexColor('#eaf1fb')), ('BACKGROUND', (0,3), (-1,3), colors.HexColor('#d4e4f7')), ('BACKGROUND', (0,4), (-1,4), colors.HexColor('#b8d3f0')), ('BACKGROUND', (0,5), (-1,5), colors.HexColor('#f5f5f5')), ('GRID', (0,0), (-1,-1), 0.75, colors.HexColor('#8ca6c9')), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ('ALIGN', (0,0), (0,-1), 'CENTER'), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 5), ('RIGHTPADDING', (0,0), (-1,-1), 5), ('FONTSIZE', (0,0), (-1,-1), 8), ])) elements.append(cmp_table) elements.append(Paragraph( "<i>AKIN dropped RIFLE's Loss/ESKD categories but added sensitivity for small absolute creatinine rises " "(≥0.3 mg/dL). KDIGO (current standard) merges RIFLE and AKIN, using whichever of creatinine or urine " "output gives the worse stage. (Table 31-3, Morgan & Mikhail's Clinical Anesthesiology, 7e; Table 38.1, " "Miller's Anesthesia, 10e)</i>", small_note)) elements.append(Paragraph( "<b>Exam tip:</b> KDIGO stage is assigned by whichever criterion (creatinine OR urine output) gives the " "higher/worse stage. Milder AKI (Stage 1) is far more common than Stage 3 and carries lower mortality - " "but even small creatinine rises independently increase mortality risk, which is why sensitive criteria " "replaced the older 'need for dialysis' definition.", body)) # ---------------- B. Etiological classification ---------------- elements.append(Paragraph("B. By Anatomical / Etiological Site", h2)) elements.append(Paragraph("<b>1. Prerenal AKI (~55-60%)</b> - most common perioperatively; due to renal hypoperfusion without parenchymal damage, reversible if corrected early.", body)) prerenal_items = [ "Hypovolemia: hemorrhage, GI losses, third-spacing", "Decreased cardiac output: CHF, cardiogenic shock", "Systemic vasodilation: sepsis, anaphylaxis, anesthetic-induced vasodilation", "Renal vasoconstriction: NSAIDs, ACE-I/ARB with volume depletion, hepatorenal syndrome", "Intraoperative hypotension from anesthetic agents (negative inotropy/chronotropy + vasodilation)", ] elements.append(ListFlowable([ListItem(Paragraph(x, bullet_style)) for x in prerenal_items], bulletType='bullet', start='circle', leftIndent=18)) elements.append(Paragraph("<b>2. Intrinsic (Intrarenal) AKI (~35-40%)</b>", body)) intrinsic_items = [ "Acute Tubular Necrosis (ATN) - commonest intrinsic cause perioperatively; from ischemia-reperfusion injury or nephrotoxic injury (contrast, aminoglycosides, NSAIDs, myoglobin from rhabdomyolysis, hemoglobin from hemolysis/transfusion reaction, cisplatin)", "Acute interstitial nephritis (drug-induced - penicillins, NSAIDs, PPIs)", "Glomerulonephritis / vasculitis", "Vascular causes: atheroembolism, renal artery/vein thrombosis", "Common perioperative triggers: hypoperfusion, inflammation (sepsis/SIRS, CPB), atheroembolism", ] elements.append(ListFlowable([ListItem(Paragraph(x, bullet_style)) for x in intrinsic_items], bulletType='bullet', start='circle', leftIndent=18)) elements.append(Paragraph("<b>3. Postrenal AKI (~5-10%)</b> - obstruction to urine flow; important to exclude first (bladder scan/USG KUB) as it is rapidly reversible.", body)) postrenal_items = [ "Ureteric: stones, tumor, retroperitoneal fibrosis", "Bladder outlet: BPH, blood clot, neurogenic bladder", "Urethral: stricture, blocked catheter", ] elements.append(ListFlowable([ListItem(Paragraph(x, bullet_style)) for x in postrenal_items], bulletType='bullet', start='circle', leftIndent=18)) elements.append(Paragraph("C. By Duration/Course", h2)) duration_items = [ "<b>AKI:</b> dysfunction present <7 days", "<b>Acute Kidney Disease (AKD):</b> 7-90 days", "<b>Chronic Kidney Disease (CKD):</b> >90 days", ] elements.append(ListFlowable([ListItem(Paragraph(x, bullet_style)) for x in duration_items], bulletType='bullet', start='circle', leftIndent=18)) elements.append(PageBreak()) # ---------------- 3. Pathophysiology ---------------- elements.append(Paragraph("3. Pathophysiology - Phases of ATN", h1)) phases = [ "<b>Initiation phase:</b> renal blood flow falls → ATP depletion or toxin-induced injury; cytokine upregulation begins.", "<b>Extension phase:</b> necrosis/apoptosis progress, GFR continues to fall; inflammatory infiltration peaks - the window for therapeutic intervention.", "<b>Maintenance phase:</b> blood flow normalizes, GFR stabilizes, cellular repair begins.", "<b>Recovery phase:</b> tubular epithelial re-differentiation, restoration of function.", ] elements.append(ListFlowable([ListItem(Paragraph(x, bullet_style)) for x in phases], bulletType='bullet', start='circle', leftIndent=18)) elements.append(Paragraph("<i>(Source: Brenner and Rector's The Kidney, 2-Volume Set)</i>", small_note)) # ---------------- 4. Anaesthesia specific ---------------- elements.append(Paragraph("4. Perioperative / Anaesthesia-Specific Points", h1)) elements.append(Paragraph("Risk Factors", h2)) rf_items = [ "<b>Preoperative:</b> pre-existing CKD, diabetes, advanced age, heart failure, jaundice, anemia, contrast exposure", "<b>Intraoperative:</b> hypotension, hypovolemia, high-risk surgery (cardiac, aortic, major vascular), prolonged aortic cross-clamp, cardiopulmonary bypass, nephrotoxic drug exposure, rhabdomyolysis", "<b>Postoperative:</b> sepsis, ongoing hypoperfusion, continued nephrotoxin exposure", ] elements.append(ListFlowable([ListItem(Paragraph(x, bullet_style)) for x in rf_items], bulletType='bullet', start='circle', leftIndent=18)) elements.append(Paragraph("<i>(Fig 38.1, Miller's Anesthesia, 10e)</i>", small_note)) elements.append(Paragraph("Anaesthetic Drug Considerations", h2)) drug_items = [ "<b>Compound A</b> (sevoflurane breakdown product with low-flow anesthesia + soda lime) - nephrotoxic in animal models; clinical significance in humans remains debated", "Both general and neuraxial anaesthesia reversibly reduce renal blood flow, GFR, urine flow and sodium excretion - AKI is less likely purely from anaesthesia itself than from surgical/hemodynamic insults", "<b>Morphine</b> (morphine-6-glucuronide) and <b>meperidine</b> (normeperidine) metabolites accumulate in renal failure → prolonged respiratory depression; normeperidine may cause seizures", "<b>Succinylcholine</b> is safe in renal failure provided no baseline hyperkalemia", "Prefer <b>controlled ventilation</b> in renal failure under GA - avoid hypercarbia/respiratory acidosis which worsens hyperkalemia and acidemia", "Delayed gastric emptying (uremic autonomic neuropathy) increases aspiration risk", ] elements.append(ListFlowable([ListItem(Paragraph(x, bullet_style)) for x in drug_items], bulletType='bullet', start='circle', leftIndent=18)) elements.append(Paragraph("<i>(Morgan and Mikhail's Clinical Anesthesiology, 7e - Key Concepts)</i>", small_note)) elements.append(Paragraph("Diagnostic Workup", h2)) diag_data = [ [Paragraph("Test", table_header), Paragraph("Strength", table_header), Paragraph("Weakness", table_header)], [Paragraph("Serum creatinine", table_cell), Paragraph("Cheap, widely available", table_cell), Paragraph("Late marker; confounded by muscle mass, fluid status, drugs", table_cell)], [Paragraph("Blood urea nitrogen", table_cell), Paragraph("Cheap, widely available", table_cell), Paragraph("Confounded by GI bleed, liver disease, hypovolemia", table_cell)], [Paragraph("FeNa", table_cell), Paragraph("Cheap, available", table_cell), Paragraph("Unreliable with diuretics or pre-existing CKD", table_cell)], [Paragraph("Urine microscopy", table_cell), Paragraph("Non-invasive; informative (e.g. RBC casts in GN)", table_cell), Paragraph("Operator-dependent, needs training", table_cell)], [Paragraph("Renal histology", table_cell), Paragraph("Definitive cause + chronicity assessment", table_cell), Paragraph("Invasive, bleeding risk", table_cell)], [Paragraph("Novel biomarkers (NGAL, KIM-1, TIMP-2, IGFBP7, IL-18)", table_cell), Paragraph("Detect AKI before creatinine rise", table_cell), Paragraph("Costly, not routine", table_cell)], ] diag_table = Table(diag_data, colWidths=[4.5*cm, 6.0*cm, 6.0*cm]) diag_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3c6e')), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#eaf1fb'), colors.white]), ('GRID', (0,0), (-1,-1), 0.75, colors.HexColor('#8ca6c9')), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 5), ('RIGHTPADDING', (0,0), (-1,-1), 5), ('FONTSIZE', (0,0), (-1,-1), 8.5), ])) elements.append(diag_table) elements.append(Paragraph("Management Principles", h2)) mgmt_items = [ "Identify and treat the underlying cause: correct hypovolemia/hypotension, relieve obstruction, stop nephrotoxins", "Optimize renal perfusion pressure", "Avoid further nephrotoxic insults (contrast, NSAIDs, aminoglycosides)", "Maintain euvolemia - avoid both under- and over-resuscitation", "Treat hyperkalemia and metabolic acidosis", "Initiate renal replacement therapy (RRT) when indicated - refractory hyperkalemia, fluid overload, severe acidosis, uremic complications, or KDIGO Stage 3", ] elements.append(ListFlowable([ListItem(Paragraph(x, bullet_style)) for x in mgmt_items], bulletType='bullet', start='circle', leftIndent=18)) elements.append(Spacer(1, 14)) elements.append(Paragraph( "<i>Compiled from: Morgan and Mikhail's Clinical Anesthesiology 7e; Miller's Anesthesia 10e; Brenner and " "Rector's The Kidney 2-Vol Set; National Kidney Foundation Primer on Kidney Diseases 8e.</i>", small_note)) doc.build(elements) print("PDF created successfully") EOF python3 /tmp/workspace/aki-notes/make_pdf.py
ls -la /tmp/workspace/aki-notes/
AKI Classification Notes MD Anaesthesiology
PDF Document · PDF