Write short note dwtailed on diabetic nephropathy and make pdf
mkdir -p /home/daytona/workspace/diabetic-nephropathy && python3 << 'EOF' from reportlab.lib.pagesizes import A4 from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm from reportlab.lib.colors import HexColor, white, black from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether) from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY OUTPUT = "/home/daytona/workspace/diabetic-nephropathy/Diabetic_Nephropathy.pdf" doc = SimpleDocTemplate( OUTPUT, pagesize=A4, rightMargin=2.2*cm, leftMargin=2.2*cm, topMargin=2.5*cm, bottomMargin=2.2*cm ) W, H = A4 primary = HexColor("#1a5276") # dark blue accent = HexColor("#2980b9") # lighter blue bg_box = HexColor("#eaf4fb") # light blue bg section_bg= HexColor("#d6eaf8") table_hdr = HexColor("#2471a3") table_alt = HexColor("#eaf4fb") red_alert = HexColor("#c0392b") green_ok = HexColor("#1e8449") styles = getSampleStyleSheet() title_style = ParagraphStyle( "TitleStyle", parent=styles["Title"], fontSize=24, textColor=white, spaceAfter=4, fontName="Helvetica-Bold", alignment=TA_CENTER ) subtitle_style = ParagraphStyle( "SubTitle", parent=styles["Normal"], fontSize=11, textColor=HexColor("#d6eaf8"), spaceAfter=6, fontName="Helvetica", alignment=TA_CENTER ) h1 = ParagraphStyle( "H1", parent=styles["Heading1"], fontSize=14, textColor=white, fontName="Helvetica-Bold", spaceBefore=14, spaceAfter=4, backColor=primary, borderPad=5, leftIndent=-10, rightIndent=-10, leading=20 ) h2 = ParagraphStyle( "H2", parent=styles["Heading2"], fontSize=12, textColor=primary, fontName="Helvetica-Bold", spaceBefore=10, spaceAfter=3, borderPadding=(0,0,2,0) ) body = ParagraphStyle( "Body", parent=styles["Normal"], fontSize=10.5, leading=16, spaceAfter=6, fontName="Helvetica", alignment=TA_JUSTIFY, textColor=HexColor("#1c2833") ) bullet = ParagraphStyle( "Bullet", parent=body, leftIndent=16, bulletIndent=6, spaceAfter=4, spaceBefore=1 ) box_style = ParagraphStyle( "Box", parent=body, backColor=bg_box, borderPad=8, leftIndent=10, rightIndent=10, spaceBefore=4, spaceAfter=8 ) caption = ParagraphStyle( "Caption", parent=styles["Normal"], fontSize=8.5, textColor=HexColor("#5d6d7e"), alignment=TA_CENTER, spaceAfter=6, fontName="Helvetica-Oblique" ) footer_style = ParagraphStyle( "Footer", parent=styles["Normal"], fontSize=8, textColor=HexColor("#7f8c8d"), alignment=TA_CENTER ) def section_header(text): tbl = Table([[Paragraph(f" {text}", ParagraphStyle( "sh", fontSize=13, textColor=white, fontName="Helvetica-Bold", leading=18 ))]], colWidths=[doc.width + doc.leftMargin + doc.rightMargin - 4.4*cm]) tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), primary), ("TOPPADDING", (0,0), (-1,-1), 7), ("BOTTOMPADDING", (0,0), (-1,-1), 7), ("LEFTPADDING", (0,0), (-1,-1), 10), ])) return tbl story = [] # ── TITLE BLOCK ────────────────────────────────────────────────────────────── title_table = Table( [[Paragraph("DIABETIC NEPHROPATHY", title_style)], [Paragraph("A Detailed Short Note on Diabetic Kidney Disease", subtitle_style)]], colWidths=[doc.width] ) title_table.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), primary), ("TOPPADDING", (0,0), (-1,-1), 18), ("BOTTOMPADDING", (0,0), (-1,-1), 14), ("LEFTPADDING", (0,0), (-1,-1), 12), ("RIGHTPADDING", (0,0), (-1,-1), 12), ("ROUNDEDCORNERS", [6,6,6,6]), ])) story.append(title_table) story.append(Spacer(1, 12)) # Source credits box src = Table([[Paragraph( "Sources: Robbins Basic Pathology | Harrison's Principles of Internal Medicine 22E | " "Goldman-Cecil Medicine | Brenner & Rector's The Kidney | Harrison's 22E", ParagraphStyle("src", fontSize=8.5, textColor=HexColor("#2874a6"), alignment=TA_CENTER, fontName="Helvetica-Oblique") )]], colWidths=[doc.width]) src.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), section_bg), ("TOPPADDING", (0,0), (-1,-1), 6), ("BOTTOMPADDING", (0,0), (-1,-1), 6), ("BOX", (0,0), (-1,-1), 0.5, accent), ])) story.append(src) story.append(Spacer(1, 14)) # ── 1. DEFINITION & OVERVIEW ───────────────────────────────────────────────── story.append(section_header("1. DEFINITION AND OVERVIEW")) story.append(Spacer(1, 6)) story.append(Paragraph( "Diabetic nephropathy (DN), also called <b>diabetic kidney disease (DKD)</b>, is a " "microvascular complication of both type 1 and type 2 diabetes mellitus characterised " "by progressive proteinuria, declining glomerular filtration rate (GFR), and a high " "risk of end-stage kidney disease (ESKD). It is <b>the leading single cause of ESKD</b>, " "accounting for nearly 50 % of all patients requiring renal replacement therapy in the " "United States. Both incidence and prevalence continue to rise in parallel with the " "global obesity and type 2 diabetes epidemics.", body )) story.append(Paragraph( "Approximately <b>20-40 %</b> of patients with diabetes develop nephropathy. Risk is " "higher in Black, Native American, and Hispanic individuals, and strongly influenced " "by family history - first-degree relatives of type 1 diabetic patients with nephropathy " "have a >70 % lifetime risk of developing the condition themselves.", body )) story.append(Spacer(1, 8)) # ── 2. PATHOGENESIS ────────────────────────────────────────────────────────── story.append(section_header("2. PATHOGENESIS")) story.append(Spacer(1, 6)) story.append(Paragraph("<b>A. Haemodynamic Mechanisms</b>", h2)) story.append(Paragraph( "Chronic hyperglycaemia dilates the afferent arteriole preferentially, causing " "<b>glomerular hyperfiltration</b> (GFR elevated up to 50 % above normal) and raised " "intraglomerular capillary pressure. This haemodynamic stress accelerates glomerular " "injury. RAAS blockade and SGLT2 inhibitors exert nephroprotection partly by " "correcting this elevated intraglomerular pressure.", body )) story.append(Paragraph("<b>B. Metabolic and Molecular Mechanisms</b>", h2)) story.append(Paragraph( "Hyperglycaemia activates multiple intracellular pathways including:", body )) bullets_patho = [ "Advanced glycation end-products (AGEs) that cross-link basement membrane proteins", "Protein kinase C (PKC) activation - increases TGF-beta, VEGF, and endothelin", "Increased flux through the polyol pathway causing oxidative stress", "Hexosamine pathway activation promoting fibrosis", "Transforming growth factor-beta (TGF-beta): master mediator of matrix expansion and fibrosis", "Angiotensin II, endothelin, prostaglandins, and nitric oxide dysregulation", "Epigenetic modifications (metabolic memory) perpetuating injury even after glucose normalisation", ] for b in bullets_patho: story.append(Paragraph(f"• {b}", bullet)) story.append(Spacer(1, 6)) story.append(Paragraph("<b>C. Genetic Predisposition</b>", h2)) story.append(Paragraph( "Nephropathy does not occur in all patients despite poor glycaemic control, suggesting " "a strong genetic component. Polymorphisms in the ACE gene (DD genotype, associated " "with high ACE activity), IL-6, IL-10, and ICAM-1 genes have been linked to susceptibility. " "GWAS studies are ongoing to identify additional loci.", body )) story.append(Spacer(1, 8)) # ── 3. PATHOLOGY ───────────────────────────────────────────────────────────── story.append(section_header("3. PATHOLOGICAL LESIONS")) story.append(Spacer(1, 6)) story.append(Paragraph("<b>A. Glomerular Lesions</b>", h2)) story.append(Paragraph( "The kidney is a prime target of diabetic microvascular disease. Three major glomerular " "lesions are recognised:", body )) path_data = [ ["Lesion", "Description", "Significance"], ["GBM Thickening", "Uniform thickening of glomerular basement membrane detectable by EM within a few years of DM onset", "Earliest structural change; precedes clinical signs"], ["Diffuse Mesangial Sclerosis", "Increased mesangial matrix with mesangial cell proliferation; seen in most patients after >10 years of DM", "Leads to nephrotic syndrome when severe"], ["Nodular Glomerulosclerosis\n(Kimmelstiel-Wilson lesion)", "Ball-like laminated matrix deposits in glomerular periphery; seen in 15-30% of long-term diabetics", "VIRTUALLY PATHOGNOMONIC of diabetes; indicates advanced disease"], ] ptbl = Table(path_data, colWidths=[4.5*cm, 8*cm, 5.5*cm]) ptbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), table_hdr), ("TEXTCOLOR", (0,0), (-1,0), white), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 9.5), ("ROWBACKGROUNDS", (0,1), (-1,-1), [white, table_alt]), ("GRID", (0,0), (-1,-1), 0.5, HexColor("#aed6f1")), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 6), ("WORDWRAP", (0,0), (-1,-1), True), ])) story.append(ptbl) story.append(Spacer(1, 8)) story.append(Paragraph("<b>B. Vascular Lesions</b>", h2)) story.append(Paragraph( "Hyaline arteriolosclerosis affects <b>both afferent and efferent arterioles</b> - " "involvement of the efferent arteriole is virtually unique to diabetes. " "This vascular compromise plus glomerulosclerosis causes diffuse renal cortical scarring " "(nephrosclerosis), recognised as a finely granular cortical surface on gross examination.", body )) story.append(Paragraph("<b>C. Tubular and Interstitial Lesions</b>", h2)) story.append(Paragraph( "Glycogen accumulation in tubular epithelium (Armanni-Ebstein lesion), tubular basement " "membrane thickening, and progressive tubulointerstitial fibrosis occur. Tubulointerstitial " "fibrosis correlates most closely with functional decline in GFR. Pyelonephritis and " "necrotising papillitis are more common and severe in diabetics.", body )) story.append(Spacer(1, 8)) # ── 4. CLINICAL STAGES ─────────────────────────────────────────────────────── story.append(section_header("4. NATURAL HISTORY AND CLINICAL STAGES")) story.append(Spacer(1, 6)) story.append(Paragraph( "Diabetic nephropathy progresses through four recognised clinical stages (Goldman-Cecil Medicine):", body )) stages_data = [ ["Stage", "GFR", "Albuminuria", "BP", "Key Features"], ["I\n(Hyperfiltration)", "Elevated\n(up to +50%)", "None or transient\nmicro-albuminuria", "Normal\n(or mild rise in T2DM)", "Glomerular & tubular hypertrophy\nReversible with glycaemic control"], ["II\n(Silent)", "Normal or\nstill elevated", "Fixed microalbuminuria\n(30-300 mg/24h)", "Normal\n(T1DM)", "GBM thickening, mesangial expansion\nMicro-albuminuria by sensitive assay"], ["III\n(Overt / Incipient)", "Declining\n(eGFR < normal)", "Macro-albuminuria\n>300 mg/24h; dipstick+", "Rising", "Overt proteinuria (>500 mg total protein/24h)\nCreatinine may still be normal"], ["IV\n(Advanced / ESRD)", "Markedly\nreduced", "Nephrotic-range\n>3.5 g/24h", "Elevated;\nhard to control", "Progressive renal failure\nAnemia, uremic symptoms\nCardiovascular risk very high"], ] stbl = Table(stages_data, colWidths=[2.7*cm, 2.8*cm, 4.2*cm, 3.2*cm, 5.1*cm]) stbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), table_hdr), ("TEXTCOLOR", (0,0), (-1,0), white), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 9), ("ROWBACKGROUNDS", (0,1), (-1,-1), [white, table_alt]), ("GRID", (0,0), (-1,-1), 0.5, HexColor("#aed6f1")), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 5), ("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"), ("TEXTCOLOR", (0,1), (0,-1), primary), ])) story.append(stbl) story.append(Spacer(1, 8)) # ── 5. DIAGNOSIS ───────────────────────────────────────────────────────────── story.append(section_header("5. DIAGNOSIS AND SCREENING")) story.append(Spacer(1, 6)) story.append(Paragraph("<b>Screening Protocol (ADA / Harrison's 22E)</b>", h2)) screen_bullets = [ "<b>Type 1 DM:</b> Screen 5 years after diagnosis; annually thereafter", "<b>Type 2 DM:</b> Screen at time of diagnosis; annually thereafter", "<b>Urinary albumin-to-creatinine ratio (UACR)</b> on a spot specimen - preferred screening test", "<b>eGFR</b> should be assessed alongside UACR (some patients develop GFR decline without albuminuria)", "An elevated UACR should be confirmed on 2-3 occasions over 3-6 months", "Routine urinalysis dipstick does NOT detect low-level (micro-)albuminuria", ] for b in screen_bullets: story.append(Paragraph(f"• {b}", bullet)) story.append(Spacer(1, 8)) story.append(Paragraph("<b>Albuminuria Classification (ADA)</b>", h2)) alb_data = [ ["Category", "UACR (mg/g creatinine)"], ["Normal", "< 30"], ["Moderately increased (Microalbuminuria)", "30 - 299"], ["Severely increased (Macroalbuminuria)", "≥ 300"], ["Nephrotic-range", "> 2000-3500"], ] atbl = Table(alb_data, colWidths=[9*cm, 9*cm]) atbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), table_hdr), ("TEXTCOLOR", (0,0), (-1,0), white), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 10), ("ROWBACKGROUNDS", (0,1), (-1,-1), [white, table_alt]), ("GRID", (0,0), (-1,-1), 0.5, HexColor("#aed6f1")), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 8), ("ALIGN", (1,0), (1,-1), "CENTER"), ])) story.append(atbl) story.append(Spacer(1, 6)) story.append(Paragraph("<b>Diagnosis of Overt Diabetic Nephropathy (Three Criteria)</b>", h2)) dx_criteria = [ "1. Proteinuria in appropriate temporal frame (type 1 DM: 11-23 years; type 2 DM: variable)", "2. Presence of diabetic retinopathy (90-95% in T1DM; 60-65% in T2DM)", "3. Absence of other causes of nephrotic syndrome or renal insufficiency", ] for c in dx_criteria: story.append(Paragraph(c, bullet)) story.append(Spacer(1, 6)) story.append(Paragraph( "<b>Renal Biopsy:</b> Rarely required. Findings: diffuse or nodular (Kimmelstiel-Wilson) " "glomerulosclerosis, bilateral afferent AND efferent arteriolar hyalinosis (pathognomonic). " "Only ~25% of patients show the classic K-W nodular pattern. Consider biopsy if another " "aetiology (light-chain nephropathy, amyloidosis, MPGN) is suspected.", body )) story.append(Spacer(1, 8)) # ── 6. MANAGEMENT ──────────────────────────────────────────────────────────── story.append(section_header("6. MANAGEMENT")) story.append(Spacer(1, 6)) story.append(Paragraph("<b>A. Glycaemic Control</b>", h2)) story.append(Paragraph( "Target HbA1c <b>≤7.0 %</b> (unless significant co-morbidities or hypoglycaemia risk). " "Tight control reduces microvascular complications in both T1DM and T2DM. Note drug adjustments with declining GFR:", body )) glyc_adj = [ "Sulfonylureas: CONTRAINDICATED at eGFR <45 ml/min/1.73m² (CKD stage 3b) - risk of prolonged hypoglycaemia", "Metformin: Avoid if serum creatinine >1.7 mg/dL / eGFR <30 (risk of lactic acidosis)", "Insulin: Dose reduction needed as GFR falls (reduced renal insulin clearance)", ] for g in glyc_adj: story.append(Paragraph(f"• {g}", bullet)) story.append(Spacer(1, 6)) story.append(Paragraph("<b>B. Blood Pressure and RAAS Blockade</b>", h2)) story.append(Paragraph( "BP target: <b><130/80 mmHg</b>. ACE inhibitors or ARBs are first-line in proteinuric " "diabetic nephropathy. They reduce intraglomerular pressure, decrease proteinuria, and slow " "GFR decline independently of BP lowering. <b>Do not combine ACEi + ARB</b> (increased risk " "of hyperkalaemia and AKI without additive benefit).", body )) story.append(Spacer(1, 4)) story.append(Paragraph("<b>C. Novel Cardio-Renal Protective Agents</b>", h2)) rx_data = [ ["Drug Class", "Mechanism", "Renal Benefit", "Key Trials / Notes"], ["SGLT2 Inhibitors\n(e.g. empagliflozin,\ndapagliflozin, canagliflozin)", "Block glucose reabsorption;\nreduce intraglomerular pressure\nvia tubuloglomerular feedback", "Reduce proteinuria, slow\nGFR decline, reduce ESKD", "CREDENCE, DAPA-CKD, EMPA-KIDNEY\nFirst-line alongside RAAS blockade"], ["GLP-1 Receptor Agonists\n(e.g. semaglutide,\nliraglutide)", "Incretin hormone analogue;\nreduces weight, BP,\nglomerular hyperfiltration", "Reduce albuminuria;\ncardiovascular mortality benefit", "LEADER, SUSTAIN-6 trials\nSafe at reduced eGFR"], ["Nonsteroidal MRAs\n(finerenone)", "Mineralocorticoid receptor\nantagonist; anti-fibrotic\nand anti-inflammatory", "Reduces albuminuria, slows\nCKD progression, reduces\ncardiovascular events", "FIDELIO-DKD, FIGARO-DKD\nLower hyperkalaemia risk vs steroidal MRAs"], ] rtbl = Table(rx_data, colWidths=[4.2*cm, 4.5*cm, 4.3*cm, 5*cm]) rtbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), table_hdr), ("TEXTCOLOR", (0,0), (-1,0), white), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 9), ("ROWBACKGROUNDS", (0,1), (-1,-1), [white, table_alt]), ("GRID", (0,0), (-1,-1), 0.5, HexColor("#aed6f1")), ("VALIGN", (0,0), (-1,-1), "TOP"), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 5), ])) story.append(rtbl) story.append(Spacer(1, 8)) story.append(Paragraph("<b>D. Dietary and Lifestyle Measures</b>", h2)) diet_bullets = [ "Protein restriction: 0.8 g/kg/day (avoid high protein intake which increases glomerular pressure)", "Sodium restriction: <2.3 g/day (aids BP control and reduces albuminuria)", "Smoking cessation: smoking accelerates GFR decline", "Weight management: obesity aggravates glomerular hyperfiltration", "Regular aerobic exercise (reduces cardiovascular risk and improves insulin sensitivity)", ] for d in diet_bullets: story.append(Paragraph(f"• {d}", bullet)) story.append(Spacer(1, 6)) story.append(Paragraph("<b>E. Management of Complications</b>", h2)) comp_bullets = [ "Anaemia: erythropoiesis-stimulating agents (ESAs) + iron supplementation", "Hyperkalemia: dietary potassium restriction; sodium bicarbonate for acidosis; loop diuretics", "Type IV RTA (hyporeninemic hypoaldosteronism): monitor K+ carefully when using ACEi/ARB/MRA", "Radiocontrast nephrotoxicity: ensure adequate hydration; monitor creatinine 24-48h post-contrast", "Dyslipidaemia: statins for cardiovascular risk reduction", "Preparation for renal replacement therapy: refer to nephrology early (eGFR <30)", ] for c in comp_bullets: story.append(Paragraph(f"• {c}", bullet)) story.append(Spacer(1, 8)) # ── 7. RENAL REPLACEMENT THERAPY ───────────────────────────────────────────── story.append(section_header("7. END-STAGE KIDNEY DISEASE AND RENAL REPLACEMENT")) story.append(Spacer(1, 6)) story.append(Paragraph( "Patients progressing to ESKD require renal replacement therapy (RRT). Options include " "haemodialysis, peritoneal dialysis, and kidney transplantation. <b>Diabetic patients have " "worse outcomes on dialysis</b> compared with non-diabetic patients because of concurrent " "cardiovascular disease and other end-organ damage. Recurrence of diabetic nephropathy in " "renal allografts has been documented but is relatively uncommon within the typical " "transplant survival window.", body )) story.append(Spacer(1, 8)) # ── 8. SUMMARY BOX ─────────────────────────────────────────────────────────── story.append(section_header("8. KEY CLINICAL POINTS SUMMARY")) story.append(Spacer(1, 8)) summary_data = [ ["KEY POINT", "DETAIL"], ["Aetiology", "Microvascular complication of DM1 & DM2; ~30-40% of diabetics affected"], ["Pathognomonic lesion", "Kimmelstiel-Wilson nodular glomerulosclerosis (15-30% of long-term DM)"], ["Earliest structural change", "Glomerular BM thickening (EM) - may precede clinical change"], ["Earliest clinical marker", "Microalbuminuria (UACR 30-299 mg/g)"], ["Screening start", "T1DM: 5 years post-diagnosis | T2DM: at diagnosis; then annually"], ["BP target", "< 130/80 mmHg; ACEi or ARB first-line"], ["HbA1c target", "≤ 7.0 %"], ["Modern nephroprotective agents", "SGLT2 inhibitors, GLP-1 agonists, Finerenone (MRA)"], ["Avoid in CKD", "Sulfonylureas (eGFR <45); Metformin (eGFR <30)"], ["ESKD risk", "~50% of all dialysis patients in US have DM as underlying cause"], ] stbl2 = Table(summary_data, colWidths=[6*cm, 12*cm]) stbl2.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), table_hdr), ("TEXTCOLOR", (0,0), (-1,0), white), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 9.5), ("ROWBACKGROUNDS", (0,1), (-1,-1), [white, table_alt]), ("GRID", (0,0), (-1,-1), 0.5, HexColor("#aed6f1")), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 8), ("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"), ("TEXTCOLOR", (0,1), (0,-1), primary), ])) story.append(stbl2) story.append(Spacer(1, 14)) # ── FOOTER ──────────────────────────────────────────────────────────────────── story.append(HRFlowable(width="100%", thickness=1, color=accent)) story.append(Spacer(1, 4)) story.append(Paragraph( "Generated by Orris AI • Sources: Robbins Basic Pathology, Harrison's 22E, " "Goldman-Cecil Medicine, Brenner & Rector's The Kidney • July 2026", footer_style )) doc.build(story) print("PDF generated successfully:", OUTPUT) EOF
| Lesion | Features |
|---|---|
| GBM Thickening | Earliest change; detectable by EM years before clinical disease |
| Diffuse Mesangial Sclerosis | Mesangial matrix increase + cell proliferation; leads to nephrotic syndrome |
| Kimmelstiel-Wilson Nodules | Ball-like laminated deposits in glomerular periphery; seen in 15-30%; virtually pathognomonic of diabetes |
| Stage | GFR | Albuminuria | Key Features |
|---|---|---|---|
| I - Hyperfiltration | Elevated (+50%) | Nil or transient microalbuminuria | Glomerular hypertrophy; reversible |
| II - Silent | Normal/elevated | Fixed microalbuminuria (30-300 mg/24h) | BM thickening; mesangial expansion on biopsy |
| III - Overt | Declining | Macroalbuminuria >300 mg/24h; dipstick+ | Overt proteinuria; BP rising |
| IV - Advanced/ESRD | Markedly reduced | Nephrotic-range >3.5 g/24h | Uremia; uncontrolled HTN; CVD very high |
Diabetic Nephropathy
PDF Document · PDF