Can you make low potassium and low phosphate low protein diet chart for ckd patient

Checking Date & Time
Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Finding Sources
Asking for Preferences
Reading File
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || mkdir -p /home/daytona/workspace/ckd-diet && echo "created"

Running Command

mkdir -p /home/daytona/workspace/ckd-diet && python3 -c "from reportlab.lib import colors; print('reportlab ok')"

Writing File

~/ckd-diet/generate_ckd_diet.py

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
from reportlab.lib.colors import HexColor

OUTPUT = "/home/daytona/workspace/ckd-diet/CKD_Diet_Chart.pdf"

# ── Colour palette ──────────────────────────────────────────────────────────
TEAL      = HexColor("#1A6B72")
LIGHT_TEAL= HexColor("#D0EFF1")
AMBER     = HexColor("#E67E22")
LIGHT_AMB = HexColor("#FDEBD0")
RED       = HexColor("#C0392B")
LIGHT_RED = HexColor("#FADBD8")
GREEN     = HexColor("#1E8449")
LIGHT_GRN = HexColor("#D5F5E3")
GREY_HDR  = HexColor("#2C3E50")
LIGHT_GRY = HexColor("#F2F3F4")
WHITE     = colors.white

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=1.5*cm, rightMargin=1.5*cm,
    topMargin=1.5*cm,  bottomMargin=1.5*cm,
)

W = A4[0] - 3*cm   # usable width

styles = getSampleStyleSheet()

title_style = ParagraphStyle(
    "Title", fontName="Helvetica-Bold", fontSize=18,
    textColor=WHITE, alignment=TA_CENTER, spaceAfter=4,
)
sub_style = ParagraphStyle(
    "Sub", fontName="Helvetica", fontSize=10,
    textColor=LIGHT_TEAL, alignment=TA_CENTER, spaceAfter=2,
)
section_style = ParagraphStyle(
    "Section", fontName="Helvetica-Bold", fontSize=12,
    textColor=WHITE, alignment=TA_CENTER,
)
cell_bold = ParagraphStyle(
    "CB", fontName="Helvetica-Bold", fontSize=9, textColor=GREY_HDR,
)
cell_body = ParagraphStyle(
    "Cbody", fontName="Helvetica", fontSize=8.5, textColor=GREY_HDR, leading=12,
)
note_style = ParagraphStyle(
    "Note", fontName="Helvetica-Oblique", fontSize=8,
    textColor=GREY_HDR, leftIndent=4,
)
footer_style = ParagraphStyle(
    "Footer", fontName="Helvetica", fontSize=7.5,
    textColor=HexColor("#7F8C8D"), alignment=TA_CENTER,
)

story = []

# ══════════════════════════════════════════════════════════════════════════════
# HEADER BANNER
# ══════════════════════════════════════════════════════════════════════════════
header_data = [[
    Paragraph("CKD RENAL DIET CHART", title_style),
]]
header_sub = [[
    Paragraph("Low Protein β€’ Low Potassium β€’ Low Phosphate   |   For Chronic Kidney Disease (CKD) Stages 3–5", sub_style),
]]
banner = Table(
    [
        [Paragraph("CKD RENAL DIET CHART", title_style)],
        [Paragraph("Low Protein  β€’  Low Potassium  β€’  Low Phosphate   |   CKD Stages 3–5", sub_style)],
    ],
    colWidths=[W],
)
banner.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), TEAL),
    ("ROUNDEDCORNERS", [8]),
    ("TOPPADDING",    (0,0), (-1,-1), 10),
    ("BOTTOMPADDING", (0,0), (-1,-1), 10),
    ("LEFTPADDING",   (0,0), (-1,-1), 12),
    ("RIGHTPADDING",  (0,0), (-1,-1), 12),
]))
story.append(banner)
story.append(Spacer(1, 6*mm))

# ══════════════════════════════════════════════════════════════════════════════
# DAILY NUTRIENT TARGETS BOX
# ══════════════════════════════════════════════════════════════════════════════
def section_header(text, bg=TEAL):
    t = Table([[Paragraph(text, section_style)]], colWidths=[W])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 8),
    ]))
    return t

targets = [
    ["Nutrient", "Daily Target", "Rationale"],
    ["Protein",      "0.6–0.8 g/kg body weight/day\n(~40–50 g/day for 60 kg patient)", "Reduces uraemic toxin load; slows CKD progression"],
    ["Potassium",    "2,000–2,500 mg/day\n(<2,000 mg if serum K⁺ > 5.5 mmol/L)",      "Prevents hyperkalaemia, cardiac arrhythmias"],
    ["Phosphate",    "800–1,000 mg/day",                                                 "Prevents hyperphosphataemia, secondary hyperparathyroidism"],
    ["Sodium",       "1,500–2,000 mg/day (~1 tsp salt)",                                 "Controls BP, oedema, fluid retention"],
    ["Fluid",        "As per physician advice\n(urine output + 500 mL, typically 1–1.5 L/day)", "Prevents fluid overload"],
    ["Calories",     "30–35 kcal/kg body weight/day",                                   "Prevents protein-calorie malnutrition"],
]

col_w = [W*0.22, W*0.38, W*0.40]
t_targets = Table(targets, colWidths=col_w, repeatRows=1)
t_targets.setStyle(TableStyle([
    ("BACKGROUND",   (0,0), (-1,0), GREY_HDR),
    ("TEXTCOLOR",    (0,0), (-1,0), WHITE),
    ("FONTNAME",     (0,0), (-1,0), "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,0), 9),
    ("ALIGN",        (0,0), (-1,0), "CENTER"),
    ("FONTNAME",     (0,1), (-1,-1), "Helvetica"),
    ("FONTSIZE",     (0,1), (-1,-1), 8.5),
    ("ROWBACKGROUNDS", (0,1), (-1,-1), [LIGHT_TEAL, WHITE]),
    ("GRID",         (0,0), (-1,-1), 0.5, HexColor("#BDC3C7")),
    ("TOPPADDING",   (0,0), (-1,-1), 4),
    ("BOTTOMPADDING",(0,0), (-1,-1), 4),
    ("LEFTPADDING",  (0,0), (-1,-1), 5),
    ("VALIGN",       (0,0), (-1,-1), "MIDDLE"),
]))
story.append(section_header("πŸ“‹  DAILY NUTRIENT TARGETS"))
story.append(t_targets)
story.append(Spacer(1, 5*mm))

# ══════════════════════════════════════════════════════════════════════════════
# WEEKLY MEAL PLAN  (Breakfast | Lunch | Dinner | Snack)
# ══════════════════════════════════════════════════════════════════════════════
meals = [
    # Day, Breakfast, Lunch, Dinner, Snack
    [
        "MON",
        "White bread (2 sl)\n+ Unsalted butter\n+ Apple (small)\n+ Tea / black coffee",
        "Plain white rice (1 cup)\n+ Stir-fried cabbage\n+ 1 egg (boiled)\n+ Cucumber slices",
        "Chapati x 2 (low-salt)\n+ Bottle gourd (lauki) sabzi\n+ Plain curd (small)",
        "Rice crackers\n+ Pear",
    ],
    [
        "TUE",
        "Semolina (suji) upma\n(no tomato/potato)\n+ Lemon water",
        "White pasta\n+ Stir-fried zucchini\n+ Boiled chicken 60 g",
        "Plain rice\n+ Ridge gourd curry\n+ Green beans sautΓ©",
        "Apple slices\n+ Plain rice puffs",
    ],
    [
        "WED",
        "Cornflakes (low-K cereal)\n+ Rice milk\n+ Peeled apple",
        "Chapati x 2\n+ Tinda (round gourd) curry\n+ Small boiled egg",
        "Plain white rice\n+ Cauliflower (leached)\n+ Boiled chicken 60 g",
        "Unsalted popcorn\n+ Grapes (small bunch)",
    ],
    [
        "THU",
        "White bread\n+ Cream cheese\n+ Watermelon slice\n+ Herbal tea",
        "Plain rice\n+ Bitter melon (karela)\n+ 1 egg omelette (no salt)",
        "Chapati x 2\n+ Turnip sabzi\n+ Plain boiled fish 60 g",
        "Rice cake\n+ Blueberries",
    ],
    [
        "FRI",
        "Idli x 2 (low-salt batter)\n+ Coconut chutney (small)\n+ Lemon water",
        "Plain white rice\n+ Stir-fried cabbage\n+ Boiled chicken 60 g",
        "Chapati x 2\n+ Snake gourd curry\n+ Tossed salad (cucumber, lettuce)",
        "Pear\n+ Plain rice crackers",
    ],
    [
        "SAT",
        "Vermicelli (seviyan) upma\n+ Peeled pear\n+ Black coffee",
        "Plain rice\n+ Ash gourd (petha) sabzi\n+ Boiled egg",
        "Chapati x 2\n+ Mixed low-K veg stir-fry\n+ Boiled fish 60 g",
        "Watermelon\n+ Unsalted crackers",
    ],
    [
        "SUN",
        "White bread french toast\n(no added salt)\n+ Apple\n+ Herbal tea",
        "Plain rice\n+ Leached potatoes\n+ Boiled chicken 60 g",
        "Chapati x 2\n+ Drumstick (moringa) leaves sabzi (small)\n+ Plain curd (small)",
        "Grapes\n+ Rice puffs",
    ],
]

meal_header = ["Day", "Breakfast", "Lunch", "Dinner", "Snack"]
meal_col_w  = [W*0.07, W*0.23, W*0.24, W*0.24, W*0.22]

meal_table_data = [meal_header] + meals
mt = Table(meal_table_data, colWidths=meal_col_w, repeatRows=1)
row_colors = [LIGHT_TEAL, WHITE]
mt.setStyle(TableStyle([
    ("BACKGROUND",   (0,0), (-1,0), GREY_HDR),
    ("TEXTCOLOR",    (0,0), (-1,0), WHITE),
    ("FONTNAME",     (0,0), (-1,0), "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,0), 9),
    ("ALIGN",        (0,0), (0,-1), "CENTER"),
    ("FONTNAME",     (0,1), (-1,-1), "Helvetica"),
    ("FONTSIZE",     (0,1), (-1,-1), 8),
    ("ROWBACKGROUNDS", (0,1), (-1,-1), [LIGHT_TEAL, WHITE]),
    ("GRID",         (0,0), (-1,-1), 0.4, HexColor("#BDC3C7")),
    ("TOPPADDING",   (0,0), (-1,-1), 4),
    ("BOTTOMPADDING",(0,0), (-1,-1), 4),
    ("LEFTPADDING",  (0,0), (-1,-1), 4),
    ("VALIGN",       (0,0), (-1,-1), "TOP"),
]))

story.append(section_header("πŸ—“  7-DAY MEAL PLAN"))
story.append(mt)
story.append(Spacer(1, 5*mm))

# ══════════════════════════════════════════════════════════════════════════════
# FOODS ALLOWED vs AVOID  (two-column side-by-side)
# ══════════════════════════════════════════════════════════════════════════════
allowed_hdr = Table(
    [[Paragraph("βœ…  FOODS ALLOWED (Low K⁺ / Low POβ‚„ / Low Protein)", ParagraphStyle("ah", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE, alignment=TA_CENTER))]],
    colWidths=[(W-4*mm)*0.5],
)
allowed_hdr.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), GREEN),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
]))

avoid_hdr = Table(
    [[Paragraph("❌  FOODS TO AVOID (High K⁺ / High POβ‚„ / High Protein)", ParagraphStyle("avh", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE, alignment=TA_CENTER))]],
    colWidths=[(W-4*mm)*0.5],
)
avoid_hdr.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), RED),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
]))

allowed_rows = [
    ["Category", "Examples"],
    ["Grains",      "White rice, white bread, plain pasta,\nmaida chapati, semolina, cornflakes"],
    ["Vegetables\n(leach before cook)", "Cabbage, cauliflower, cucumber, bottle gourd,\nridge gourd, zucchini, turnip, green beans"],
    ["Fruits",      "Apple, pear, grapes, watermelon,\nblueberries, cranberries"],
    ["Protein\n(limited portions)", "Egg white (1–2/day), chicken breast 60 g,\nwhite fish 60 g (avoid skin)"],
    ["Dairy",       "Plain curd/yogurt (Β½ cup/day),\nrice milk, cream cheese (small)"],
    ["Fats/Oils",   "Unsalted butter, olive oil, canola oil"],
    ["Beverages",   "Water, herbal tea, lemon water, black coffee\n(limit to 1 cup/day)"],
    ["Condiments",  "Lemon juice, herbs (fresh basil, coriander),\nwhite vinegar (no salt/ketchup)"],
]

avoid_rows = [
    ["Category", "Examples"],
    ["High-K Veg",   "Potato (unleached), tomato, spinach,\nbroccoli, mushrooms, avocado, pumpkin"],
    ["High-K Fruits","Banana, orange, mango, kiwi,\ndried fruits, coconut water"],
    ["High-POβ‚„\nFoods",   "Dairy (milk, cheese, paneer), nuts, seeds,\ndark cola drinks, processed meats"],
    ["High-Protein", "Red meat, organ meats (liver, kidney),\npaneer, legumes (dal, rajma, chana)"],
    ["Whole Grains\n(high P)", "Brown rice, whole wheat, oats,\nbran cereals, multigrain bread"],
    ["Salt/Sodium",  "Table salt, pickles, papads, sauces,\ncanned/processed foods, salted snacks"],
    ["Other",        "Dark chocolate, cocoa, beer/wine,\nenergy drinks, packaged juices"],
]

def food_table(rows, bg_hdr, bg_row):
    cw = [(W-4*mm)*0.5*0.32, (W-4*mm)*0.5*0.68]
    t = Table(rows, colWidths=cw)
    t.setStyle(TableStyle([
        ("BACKGROUND",   (0,0), (-1,0), GREY_HDR),
        ("TEXTCOLOR",    (0,0), (-1,0), WHITE),
        ("FONTNAME",     (0,0), (-1,0), "Helvetica-Bold"),
        ("FONTSIZE",     (0,0), (-1,-1), 8),
        ("ROWBACKGROUNDS", (0,1), (-1,-1), [bg_row, WHITE]),
        ("GRID",         (0,0), (-1,-1), 0.4, HexColor("#BDC3C7")),
        ("TOPPADDING",   (0,0), (-1,-1), 3),
        ("BOTTOMPADDING",(0,0), (-1,-1), 3),
        ("LEFTPADDING",  (0,0), (-1,-1), 4),
        ("VALIGN",       (0,0), (-1,-1), "MIDDLE"),
        ("FONTNAME",     (0,1), (0,-1), "Helvetica-Bold"),
    ]))
    return t

allowed_t = food_table(allowed_rows, GREEN, LIGHT_GRN)
avoid_t   = food_table(avoid_rows,   RED,   LIGHT_RED)

combined_hdr = Table(
    [[allowed_hdr, Spacer(4*mm, 1), avoid_hdr]],
    colWidths=[(W-4*mm)*0.5, 4*mm, (W-4*mm)*0.5],
)
combined_hdr.setStyle(TableStyle([
    ("LEFTPADDING",  (0,0), (-1,-1), 0),
    ("RIGHTPADDING", (0,0), (-1,-1), 0),
    ("TOPPADDING",   (0,0), (-1,-1), 0),
    ("BOTTOMPADDING",(0,0), (-1,-1), 0),
]))

combined_body = Table(
    [[allowed_t, Spacer(4*mm, 1), avoid_t]],
    colWidths=[(W-4*mm)*0.5, 4*mm, (W-4*mm)*0.5],
)
combined_body.setStyle(TableStyle([
    ("LEFTPADDING",  (0,0), (-1,-1), 0),
    ("RIGHTPADDING", (0,0), (-1,-1), 0),
    ("TOPPADDING",   (0,0), (-1,-1), 0),
    ("BOTTOMPADDING",(0,0), (-1,-1), 0),
    ("VALIGN",       (0,0), (-1,-1), "TOP"),
]))

story.append(combined_hdr)
story.append(combined_body)
story.append(Spacer(1, 5*mm))

# ══════════════════════════════════════════════════════════════════════════════
# LEACHING TECHNIQUE BOX
# ══════════════════════════════════════════════════════════════════════════════
leach_style = ParagraphStyle("leach", fontName="Helvetica", fontSize=8.5, textColor=GREY_HDR, leading=13, leftIndent=6)
leach_title = ParagraphStyle("lt", fontName="Helvetica-Bold", fontSize=10, textColor=TEAL)

leach_content = [
    [
        Paragraph("πŸ₯¦  LEACHING TECHNIQUE (Reduces Potassium in Vegetables)", leach_title),
        Paragraph(" ", leach_style),
        Paragraph("1. Peel and cut vegetables into small, thin pieces.", leach_style),
        Paragraph("2. Rinse under running cold water for 1–2 minutes.", leach_style),
        Paragraph("3. Soak in warm water for 2–4 hours (or overnight in refrigerator).", leach_style),
        Paragraph("4. Drain soaking water completely β€” discard it.", leach_style),
        Paragraph("5. Rinse again, then cook in a LARGE volume of unsalted water.", leach_style),
        Paragraph("6. Drain cooking water before eating.", leach_style),
        Paragraph("⚠  Leaching reduces K⁺ by 30–70% but does NOT eliminate it β€” portion size still matters.", note_style),
    ]
]

leach_t = Table([[
    Paragraph("πŸ₯¦  LEACHING TECHNIQUE β€” Reduces Potassium in Vegetables by 30–70%", leach_title),
]], colWidths=[W])
leach_t.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), LIGHT_TEAL),
    ("TOPPADDING",    (0,0), (-1,-1), 4),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
    ("LEFTPADDING",   (0,0), (-1,-1), 8),
]))
story.append(leach_t)

leach_steps = Table([
    [Paragraph("1. Peel & cut veg into small thin pieces.\n"
               "2. Rinse under cold running water 1–2 min.\n"
               "3. Soak in warm water 2–4 hours (or overnight in fridge).\n"
               "4. Drain & discard soaking water.\n"
               "5. Cook in large volume of unsalted water β€” drain before eating.\n"
               "⚠  Still observe portion limits β€” leaching reduces K⁺ but doesn't eliminate it.",
               note_style)],
], colWidths=[W])
leach_steps.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), LIGHT_TEAL),
    ("TOPPADDING",    (0,0), (-1,-1), 2),
    ("BOTTOMPADDING", (0,0), (-1,-1), 6),
    ("LEFTPADDING",   (0,0), (-1,-1), 16),
]))
story.append(leach_steps)
story.append(Spacer(1, 5*mm))

# ══════════════════════════════════════════════════════════════════════════════
# PRACTICAL TIPS
# ══════════════════════════════════════════════════════════════════════════════
tips = [
    "Avoid salt substitutes (KCl) β€” they are very high in potassium.",
    "Read food labels: avoid products listing phosphate additives (e.g. sodium phosphate, calcium phosphate).",
    "Limit dairy (milk, cheese, paneer) to small amounts β€” high in phosphorus.",
    "Prefer egg whites over whole eggs (yolk is high in phosphorus).",
    "Avoid dark cola drinks, beer, packaged juices β€” all very high in phosphate.",
    "Choose fresh or frozen (plain) foods over canned/processed (high sodium & phosphate).",
    "Small, frequent meals help maintain energy without overloading protein intake.",
    "Monitor weight daily β€” sudden gain (>1 kg/day) may indicate fluid retention.",
    "Take phosphate binders as prescribed, with meals (not on empty stomach).",
    "Do NOT self-medicate with herbal supplements β€” many contain high potassium.",
]

tip_title = Table([[Paragraph("πŸ’‘  PRACTICAL DIETARY TIPS", section_style)]], colWidths=[W])
tip_title.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), AMBER),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 8),
]))
story.append(tip_title)

tip_style = ParagraphStyle("tip", fontName="Helvetica", fontSize=8.5, textColor=GREY_HDR, leading=13, leftIndent=4)
tip_rows = [[Paragraph(f"β€’ {t}", tip_style)] for t in tips]
tips_t = Table(tip_rows, colWidths=[W])
tips_t.setStyle(TableStyle([
    ("ROWBACKGROUNDS", (0,0), (-1,-1), [LIGHT_AMB, WHITE]),
    ("GRID",         (0,0), (-1,-1), 0.3, HexColor("#BDC3C7")),
    ("TOPPADDING",   (0,0), (-1,-1), 3),
    ("BOTTOMPADDING",(0,0), (-1,-1), 3),
    ("LEFTPADDING",  (0,0), (-1,-1), 8),
]))
story.append(tips_t)
story.append(Spacer(1, 5*mm))

# ══════════════════════════════════════════════════════════════════════════════
# WARNING / FOOTER
# ══════════════════════════════════════════════════════════════════════════════
warn_t = Table([[Paragraph(
    "⚠  IMPORTANT: This diet chart is a general guide only. Dietary requirements vary by CKD stage, lab values "
    "(serum K⁺, phosphate, albumin, GFR), dialysis status, and individual health status. Always follow the "
    "specific advice of your nephrologist and registered renal dietitian. Lab values must be monitored regularly "
    "and the diet adjusted accordingly.",
    ParagraphStyle("warn", fontName="Helvetica-Oblique", fontSize=8, textColor=HexColor("#922B21"), leading=12),
)]], colWidths=[W])
warn_t.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), LIGHT_RED),
    ("TOPPADDING",    (0,0), (-1,-1), 6),
    ("BOTTOMPADDING", (0,0), (-1,-1), 6),
    ("LEFTPADDING",   (0,0), (-1,-1), 10),
    ("RIGHTPADDING",  (0,0), (-1,-1), 10),
    ("BOX",           (0,0), (-1,-1), 1, RED),
]))
story.append(warn_t)
story.append(Spacer(1, 3*mm))
story.append(Paragraph(
    "References: Smith & Tanagho's General Urology 19e; Goldman-Cecil Medicine 2-Vol Set; KDIGO CKD Guidelines 2022  |  Generated by Orris Medical AI β€’ April 2026",
    footer_style,
))

# ── Build ───────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF saved β†’ {OUTPUT}")
Running Command

python3 /home/daytona/workspace/ckd-diet/generate_ckd_diet.py

Your CKD diet chart PDF is ready:

CKD Diet Chart

PDF Document Β· PDF


Here's a summary of what's included in the chart:

πŸ“‹ What's Inside

Daily Nutrient Targets

NutrientTarget
Protein0.6–0.8 g/kg/day (~40–50 g for 60 kg patient)
Potassium2,000–2,500 mg/day (<2,000 if K⁺ >5.5 mmol/L)
Phosphate800–1,000 mg/day
Sodium1,500–2,000 mg/day
Calories30–35 kcal/kg/day

7-Day Meal Plan

Each day includes Breakfast, Lunch, Dinner, and a Snack β€” using safe renal-friendly foods like white rice/bread, low-potassium vegetables (cabbage, bottle gourd, zucchini), low-potassium fruits (apple, pear, grapes), and limited lean protein (boiled chicken/fish 60 g, egg white).

Foods Allowed vs. Avoid

Side-by-side color-coded tables covering grains, vegetables, fruits, protein, dairy, condiments, and beverages.

Leaching Technique

Step-by-step instructions to reduce potassium in vegetables by 30–70% through soaking and cooking.

Practical Tips

10 key tips including avoiding salt substitutes (which contain KCl), reading labels for phosphate additives, taking phosphate binders with meals, and avoiding herbal supplements.

Note: Dietary requirements must be individualized based on CKD stage, serum electrolytes (K⁺, POβ‚„), GFR, and dialysis status. Always have a registered renal dietitian tailor this plan to the specific patient's lab values. β€” Smith & Tanagho's General Urology 19e; Goldman-Cecil Medicine

Can you add my name in the pdf. Dr Vishnumoorthy Aithal

Reading File
Editing File

~/ckd-diet/generate_ckd_diet.py

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/ckd-diet/generate_ckd_diet.py'
Editing File

~/ckd-diet/generate_ckd_diet.py

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/ckd-diet/generate_ckd_diet.py'
Running Command

python3 /home/daytona/workspace/ckd-diet/generate_ckd_diet.py

Done! Your name has been added in two places:
  1. Header banner β€” "Prepared by: Dr Vishnumoorthy Aithal" displayed prominently below the chart title
  2. Footer β€” included alongside the references at the bottom of the page

CKD Diet Chart

PDF Document Β· PDF

This is a shared conversation. Sign in to Orris to start your own chat.