Act as a professional dietician Make a quick diet chart for 85 kg ty2 diabetic hypertensive patient with history of high uric acid and know case of fatty liver and constipation. Make it time wise like mentioning range of time of for each meals ( eg. Breakfast, lunch, tiffin, dinner, supper) . Reminder make the diet based on Indian Bengal foods which will be available in Murshidabad.

Searching the Web

Bengali diet chart type 2 diabetes hypertension uric acid fatty liver Indian foods

Searching the Web

Murshidabad Bengal seasonal vegetables fruits available low glycemic Indian diet diabetic

Now I have enough context. Let me build the full, detailed, Bengali/Murshidabad-specific diet chart.

πŸ₯— Diet Chart for 85 kg Patient

Conditions: Type 2 Diabetes | Hypertension | High Uric Acid | Fatty Liver (NAFLD) | Constipation Region: Murshidabad, West Bengal | Prepared by: Clinical Dietician Perspective

πŸ”‘ Core Dietary Principles (Before the Chart)

ConditionKey Rule
Type 2 DiabetesLow GI foods, no refined sugar, small frequent meals
HypertensionLow sodium (<2g/day), no pickle/papad, no extra salt
High Uric AcidAvoid red meat, organ meats, high-purine dal (masur, rajma), limit fish to small/low-purine varieties
Fatty Liver (NAFLD)No fried food, no maida, no excess oil (max 3 tsp/day), no alcohol
ConstipationHigh fiber (vegetables, fruits, whole grains), 8-10 glasses water/day
Weight (85 kg)Calorie target ~1600-1800 kcal/day, no second helpings

πŸ•” DAILY DIET CHART (Timings & Meals)


πŸŒ… 1. EARLY MORNING (6:00 AM - 6:30 AM) - Bhor Uthey

ItemQuantityNotes
Lukewarm water with lemon1 glass (250 ml)No sugar - helps uric acid flushing & liver
Methi (fenugreek) seeds soaked overnight1 tsp (chew the seeds)Reduces blood sugar & cholesterol
OR: Jeera water1 glassBoil 1 tsp jeera in water, cool slightly
Why: Fenugreek is proven to lower fasting blood glucose. Lemon water alkalizes urine and helps uric acid excretion.

πŸŒ„ 2. BREAKFAST (7:30 AM - 8:30 AM) - Jalpan / Subher Khabar

Option A (Monday, Wednesday, Friday):
ItemQuantityNotes
Lal chaler khichuri / red rice khichdi (mung dal + red rice)1 small katori (150g cooked)Low GI, fiber-rich - mung dal is LOW purine, safe
Stir-fried seasonal saag (notey saag / lal saag / pui saag)1 katoriAvailable easily in Murshidabad markets
Thinly sliced cucumber4-5 slicesAlkaline, good for uric acid
Option B (Tuesday, Thursday):
ItemQuantityNotes
Oats (dalia-style, made with water)1 bowlAdd pinch of jeera, no sugar
1 boiled egg white only1Yolk skipped - high fat for fatty liver
1 small guava (peyara)1 small (80g)Low GI fruit, high fiber - solves constipation
Option C (Saturday, Sunday):
ItemQuantityNotes
2 roti (atta/whole wheat, thin)2 smallNo maida, no paratha fried in oil
Uchhe (bitter gourd) / karela bhaja (dry, minimal oil)half katoriBest anti-diabetic vegetable, available locally
Low-fat doi (curd)1 small katoriProbiotic - helps constipation and liver
Avoid at Breakfast: Luchi, poori, kochuri, white bread, muri (puffed rice - high GI), banana

β˜€οΈ 3. MID-MORNING SNACK (10:30 AM - 11:00 AM) - Tiffin

ItemQuantityNotes
1 seasonal fruit (peyara/guava, amra/hog plum, amloki/amla, papaya/paka pepe)1 small serving (~100g)Low GI choices only
OR: Roasted chana (Bengal gram)1 small handful (30g)Not fried, no salt added
Plain water1-2 glassesStay hydrated - helps uric acid
Fruits available in Murshidabad (seasonal): Peyara (year-round), Papaya, Amloki (amla), Jamun (summer), Bel (summer), Green apple (market) Avoid: Mango (aam - high GI), litchi (lechu - high sugar), banana (kola)

🍽️ 4. LUNCH (1:00 PM - 2:00 PM) - Dupurer Bhojan

This is the main meal of the day.
ItemQuantityNotes
Lal chaler bhat (red/hand-pounded rice)1 small bowl (150g cooked)NOT white polished rice - use lal chaal or parboiled rice available in Murshidabad
Macher jhol (fish curry - LIGHT)1 medium pieceUse: Rohu (rui), Katla (moderate), Tilapia (tilapia) - small portions; AVOID: Hilsa/ilish (high purine), prawns, dried fish/shutki
Moong dal (yellow mung dal)1 katori thin dalLow purine - safe for uric acid
2 vegetable dishes (choose from list below)1 katori eachDry or lightly cooked in minimal oil
Raw salad1 small plateKakdi, tomato, onion (no salt/minimal)
Water1-2 glasses before/after mealDo not drink cold water with meal
Vegetable choices for Murshidabad (seasonal, available locally):
  • Uchhe (bitter gourd) - best for diabetes
  • Potol (pointed gourd / parwal)
  • Jhinge (ridge gourd)
  • Lau (bottle gourd) - excellent for hypertension & liver
  • Kumro (pumpkin - small quantity, slightly high GI)
  • Begun (brinjal/eggplant - bhate or baked, not fried)
  • Dharosh (okra/bhindi) - excellent fiber for constipation
  • Notey saag, Lal saag, Pui saag, Pata kopi (cabbage)
  • Sim (hyacinth beans), Sheem phool
  • Kakrol (spine gourd)
Oil for cooking: Mustard oil (sarshon tel) - max 1 tsp per dish. Total daily oil = 3 teaspoons (15 ml) No: Fried bhaja, deep-fried anything, coconut milk gravies

🌀️ 5. AFTERNOON TIFFIN (4:00 PM - 4:30 PM) - Bikeler Tiffin

ItemQuantityNotes
Green tea (without sugar) OR light lemon water1 cupGreen tea reduces liver fat (studies confirm)
One of the following:
Makhana (fox nuts / lotus seeds) - dry roasted15-20 piecesLow cal, low purine, filling
OR: 4-5 whole wheat crackers (not fried)4-5 small
OR: 1 boiled sweet potato (small)1 small (50g)Moderate GI - only occasional
OR: Roasted chana (plain, no masala)1 handful
Small seasonal fruit1 (if not taken at 10:30 AM)
Avoid: Chanachur (high sodium), namkeen, biscuits, singara, jilipi, mishti doi, sandesh, rasgolla (all avoided strictly)

πŸŒ™ 6. DINNER (7:30 PM - 8:30 PM) - Rater Khabar

Lighter than lunch. No rice or minimal rice.
ItemQuantityNotes
2 whole wheat rotis (thin, no ghee/butter)2 smallOR half bowl red rice if not tolerated without rice
Dal (moong or masur - moong preferred for uric acid)1 katoriLight, no tadka with too much oil
1-2 vegetable dishes (from the list above)1 katori
Doi / low-fat yogurt1 small katoriEvening curd is okay - helps gut motility
Soup (if preferred)1 bowlClear vegetable soup - lau/lauki soup, moong soup excellent
No rice at dinner - this is ideal. If the patient insists, limit to half katori. No fish/meat at dinner - easier on liver. Finish dinner by 8:30 PM - no late eating (important for fatty liver & blood sugar).

🌜 7. SUPPER / BEDTIME (10:00 PM - 10:30 PM) - Rater Supper

ItemQuantityNotes
Warm low-fat milk (without sugar)1 small glass (150 ml)OR skip if blood sugar tends to spike at night
OR: 1-2 walnut halves (akhrot)1-2 piecesOmega-3, liver-friendly
OR: Isabgol (psyllium husk) in water1 tsp in warm waterEXCELLENT for constipation - take 30 min before sleep
Isabgol at bedtime is highly recommended for constipation management. Drink immediately after mixing.

🚫 STRICT FOODS TO AVOID

CategoryAvoid
DiabetesWhite rice (large portions), maida, luchi/kochuri, sugar, mishti, rasgolla, sandesh, mango juice, cold drinks, sweetened tea
HypertensionExtra salt, pickle (achar), papad, salted chips, dried fish (shutki), processed foods, fried snacks, packaged namkeen
High Uric AcidHilsa (ilish), prawn (chingri), dried fish (shutki), red meat (mutton/beef), organ meats (liver/kidney), masur dal (large quantities), rajma, spinach in excess, tomato in excess, alcohol
Fatty LiverFried foods, deep-fried fish, oil-heavy curries, coconut milk, refined flour (maida), alcohol, excess sugar, trans fats
ConstipationRefined flour (maida), white bread, excess non-veg, low water intake, no-fiber meals

βœ… SPECIALLY RECOMMENDED LOCAL MURSHIDABAD FOODS

FoodBenefit
Lal chaal (red/brown rice)Lower GI than white rice, more fiber
Uchhe (bitter gourd)Best natural blood sugar controller
Lau (bottle gourd)Excellent for BP, liver, and weight
Peyara (guava)Low GI, high fiber, vitamin C
Moong dalLow purine, high protein, liver-friendly
Dharosh (okra)High fiber - excellent for constipation & blood sugar
Notey/lal saagIron, fiber, antioxidants
Amloki (amla/gooseberry)Liver protection, vitamin C, uric acid clearance
Bel (wood apple)Natural laxative - ideal for constipation
Doi (homemade curd)Probiotic - gut health, liver support
Jeera, turmeric (haldi), ginger (ada)Anti-inflammatory, liver-protective spices
Mustard oil (sarshon tel) - SMALL quantityOmega-3, heart-friendly

πŸ’§ WATER & FLUID INTAKE

  • Minimum 8-10 glasses of plain water per day (2-2.5 liters)
  • Coconut water (daab) - 1 small glass occasionally (watch potassium if on BP meds)
  • Green tea - 1-2 cups/day (no sugar) - helps fatty liver
  • Avoid: Fruit juices (even "natural"), cold drinks, packaged drinks, excess tea/coffee with sugar

πŸ“Š SAMPLE WEEKLY QUICK SUMMARY

MealMon-FriSaturday-Sunday
MorningMethi water + lemonMethi water + lemon
BreakfastOats/Red rice khichdi/Roti + saagRoti + sabzi + doi
Mid-morningGuava / roasted chanaPapaya / makhana
LunchLal chaal + rui macher jhol + moong dal + 2 sabziSame pattern
AfternoonGreen tea + makhanaGreen tea + crackers
Dinner2 rotis + dal + sabzi + doiRotis + soup + sabzi
SupperIsabgol water OR warm milkSame

⚠️ IMPORTANT NOTES FOR DOCTOR/PATIENT

  1. All medications to be taken as prescribed - this diet chart is a supportive tool, not a substitute for medication.
  2. Purine restriction (for uric acid) means avoiding ilish, chingri, shutki entirely - rohu and katla in moderate amounts (1 piece/day max) are acceptable.
  3. Oil limit is strict: 3 teaspoons total per day across all cooking. Use mustard oil only.
  4. Salt limit: No extra salt at the table. Use minimal salt in cooking. No papad, pickle, or packaged snacks.
  5. Exercise: 30-minute brisk walk daily (morning or evening) is as important as diet for all 4 conditions.
  6. Monitor blood sugar: Fasting + 2-hour post-meal readings weekly. Adjust food if readings remain high.
  7. Isabgol (psyllium husk) at bedtime daily until constipation resolves, then 3x/week for maintenance.
  8. Liver check: Repeat USG abdomen and LFT every 6 months to track fatty liver improvement.
  9. Uric acid: Drink water throughout the day. Avoid fasting for more than 4-5 hours (skipping meals causes uric acid spikes).
  10. Weight goal: Target gradual loss of 3-5 kg over 3 months - this alone significantly improves all 4 conditions.

This diet chart is prepared based on standard clinical dietetics guidelines for multi-morbidity management, adapted for Bengali/Murshidabad food culture and seasonal availability. Please consult your treating physician before making changes to medications.

Create a printable diet PDF I can share with the patient

Reading File
Reading File
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"

Running Command

mkdir -p /home/daytona/workspace/diet-chart-bengali

Writing File

~/diet-chart-bengali/generate_diet_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import mm
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, KeepTogether
)
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_RIGHT
from reportlab.platypus import PageBreak

OUTPUT = "/home/daytona/workspace/diet-chart-bengali/Bengali_Diet_Chart.pdf"

# ── Colour palette ──────────────────────────────────────────────────────────
GREEN_DARK   = colors.HexColor("#1a6b3c")
GREEN_MED    = colors.HexColor("#2d9152")
GREEN_LIGHT  = colors.HexColor("#e8f5ee")
GREEN_PALE   = colors.HexColor("#f4fbf7")
ORANGE       = colors.HexColor("#e07b1a")
ORANGE_PALE  = colors.HexColor("#fff3e0")
RED_PALE     = colors.HexColor("#fff0f0")
RED_DARK     = colors.HexColor("#c0392b")
GOLD         = colors.HexColor("#f0c040")
GREY_LIGHT   = colors.HexColor("#f5f5f5")
GREY_MED     = colors.HexColor("#cccccc")
WHITE        = colors.white
DARK_TEXT    = colors.HexColor("#212121")
BLUE_PALE    = colors.HexColor("#e8f0fe")
BLUE_DARK    = colors.HexColor("#1a4a8a")

# ── Document setup ──────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=15*mm, rightMargin=15*mm,
    topMargin=12*mm, bottomMargin=12*mm,
)
W, H = A4

# ── Styles ───────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()

def S(name, **kw):
    return ParagraphStyle(name, **kw)

sTitle = S("sTitle",
    fontName="Helvetica-Bold", fontSize=18, textColor=WHITE,
    alignment=TA_CENTER, leading=24, spaceAfter=2)
sSubTitle = S("sSubTitle",
    fontName="Helvetica", fontSize=10, textColor=WHITE,
    alignment=TA_CENTER, leading=14)
sPatientInfo = S("sPatientInfo",
    fontName="Helvetica", fontSize=9, textColor=DARK_TEXT,
    alignment=TA_LEFT, leading=13)
sSectionHead = S("sSectionHead",
    fontName="Helvetica-Bold", fontSize=11, textColor=WHITE,
    alignment=TA_LEFT, leading=16, leftIndent=4)
sMealHead = S("sMealHead",
    fontName="Helvetica-Bold", fontSize=10, textColor=GREEN_DARK,
    leading=14, spaceAfter=2)
sNote = S("sNote",
    fontName="Helvetica-Oblique", fontSize=8, textColor=colors.HexColor("#555555"),
    leading=11, leftIndent=4)
sTableHead = S("sTableHead",
    fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE,
    alignment=TA_CENTER, leading=11)
sTableCell = S("sTableCell",
    fontName="Helvetica", fontSize=8.5, textColor=DARK_TEXT,
    leading=12, leftIndent=2)
sTableCellC = S("sTableCellC",
    fontName="Helvetica", fontSize=8.5, textColor=DARK_TEXT,
    alignment=TA_CENTER, leading=12)
sFooter = S("sFooter",
    fontName="Helvetica-Oblique", fontSize=7.5, textColor=colors.HexColor("#777777"),
    alignment=TA_CENTER, leading=10)
sBullet = S("sBullet",
    fontName="Helvetica", fontSize=8.5, textColor=DARK_TEXT,
    leading=12, leftIndent=8, firstLineIndent=-6)
sWarning = S("sWarning",
    fontName="Helvetica-Bold", fontSize=8.5, textColor=RED_DARK,
    leading=12, leftIndent=4)
sTip = S("sTip",
    fontName="Helvetica-Oblique", fontSize=8, textColor=BLUE_DARK,
    leading=11, leftIndent=6)

story = []

# ═══════════════════════════════════════════════════════════════════
# HEADER BANNER
# ═══════════════════════════════════════════════════════════════════
header_data = [[
    Paragraph("PERSONALISED DIET CHART", sTitle),
]]
header_table = Table(header_data, colWidths=[180*mm])
header_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), GREEN_DARK),
    ("ROWPADDING", (0,0), (-1,-1), 8),
    ("ROUNDEDCORNERS", [6]),
    ("BOX", (0,0), (-1,-1), 0, GREEN_DARK),
]))
story.append(header_table)
story.append(Spacer(1, 2*mm))

sub_data = [[
    Paragraph("Bengali Diet Plan | Murshidabad Region", sSubTitle),
]]
sub_table = Table(sub_data, colWidths=[180*mm])
sub_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), GREEN_MED),
    ("ROWPADDING", (0,0), (-1,-1), 5),
    ("BOX", (0,0), (-1,-1), 0, GREEN_MED),
]))
story.append(sub_table)
story.append(Spacer(1, 3*mm))

# Patient info box
patient_data = [
    [
        Paragraph("<b>Patient Weight:</b> 85 kg", sPatientInfo),
        Paragraph("<b>Conditions:</b> Type 2 Diabetes  |  Hypertension  |  High Uric Acid  |  Fatty Liver  |  Constipation", sPatientInfo),
        Paragraph("<b>Date:</b> June 2026", sPatientInfo),
    ]
]
pt = Table(patient_data, colWidths=[38*mm, 110*mm, 32*mm])
pt.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), BLUE_PALE),
    ("BOX", (0,0), (-1,-1), 0.8, BLUE_DARK),
    ("ROWPADDING", (0,0), (-1,-1), 5),
    ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(pt)
story.append(Spacer(1, 4*mm))

# ═══════════════════════════════════════════════════════════════════
# KEY RULES BANNER
# ═══════════════════════════════════════════════════════════════════
def section_header(text, color=GREEN_DARK):
    d = [[Paragraph(text, sSectionHead)]]
    t = Table(d, colWidths=[180*mm])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), color),
        ("ROWPADDING", (0,0), (-1,-1), 5),
        ("BOX", (0,0), (-1,-1), 0, color),
    ]))
    return t

story.append(section_header("  CORE DIETARY RULES"))
story.append(Spacer(1, 2*mm))

rules = [
    ("Type 2 Diabetes", "Low GI foods | No refined sugar | Small frequent meals | No white rice in large qty"),
    ("Hypertension", "Low sodium (<2g/day) | No pickle/papad | No extra salt at table"),
    ("High Uric Acid", "Avoid hilsa/prawn/shutki/red meat | Use moong dal | Drink 8-10 glasses water daily"),
    ("Fatty Liver (NAFLD)", "No fried foods | No maida | Max 3 tsp oil/day | No alcohol | No excess sugar"),
    ("Constipation", "High fiber diet | Seasonal vegetables | Isabgol at bedtime | 2-2.5L water/day"),
    ("Weight Goal", "Target -3 to -5 kg in 3 months | ~1600-1800 kcal/day | 30-min walk daily"),
]
rules_data = [[
    Paragraph("<b>" + r[0] + "</b>", sTableCell),
    Paragraph(r[1], sTableCell)
] for r in rules]

rules_table = Table(rules_data, colWidths=[42*mm, 138*mm])
rules_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (0,-1), GREEN_LIGHT),
    ("BACKGROUND", (1,0), (1,-1), WHITE),
    ("ROWBACKGROUNDS", (0,0), (-1,-1), [GREEN_PALE, WHITE]),
    ("BOX", (0,0), (-1,-1), 0.5, GREEN_MED),
    ("INNERGRID", (0,0), (-1,-1), 0.3, GREY_MED),
    ("ROWPADDING", (0,0), (-1,-1), 4),
    ("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(rules_table)
story.append(Spacer(1, 5*mm))

# ═══════════════════════════════════════════════════════════════════
# MEAL PLAN TABLE  (main visual element)
# ═══════════════════════════════════════════════════════════════════
story.append(section_header("  DAILY MEAL PLAN - TIME SCHEDULE"))
story.append(Spacer(1, 2*mm))

meal_hdr = [
    Paragraph("Meal", sTableHead),
    Paragraph("Time", sTableHead),
    Paragraph("Food Items (Bengali / Murshidabad)", sTableHead),
    Paragraph("Quantity", sTableHead),
    Paragraph("Key Benefit", sTableHead),
]

def mp(text): return Paragraph(text, sTableCell)
def mc(text): return Paragraph(text, sTableCellC)

meal_rows = [
    # Early morning
    [mc("Early Morning\nBhor Uthey"), mc("6:00 - 6:30\nAM"),
     mp("Lukewarm water with lemon (no sugar)\n+ Methi (fenugreek) seeds soaked overnight"),
     mc("1 glass\n1 tsp methi"),
     mp("Flushes uric acid, lowers fasting sugar")],

    # Breakfast A
    [mc("Breakfast\nOption A\n(Mon/Wed/Fri)"), mc("7:30 - 8:30\nAM"),
     mp("Lal chaler khichdi (red rice + moong dal)\nStir-fried seasonal saag (notey / lal / pui)\nSliced cucumber"),
     mc("150g cooked\n1 katori\n4-5 slices"),
     mp("Low GI, high fiber, low purine")],

    # Breakfast B
    [mc("Breakfast\nOption B\n(Tue/Thu)"), mc("7:30 - 8:30\nAM"),
     mp("Oats cooked in water (pinch jeera, no sugar)\n1 boiled egg white only\nSmall guava (peyara)"),
     mc("1 bowl\n1 white\n1 small (80g)"),
     mp("Fiber-rich; egg white = protein without fat")],

    # Breakfast C
    [mc("Breakfast\nOption C\n(Sat/Sun)"), mc("7:30 - 8:30\nAM"),
     mp("2 thin whole wheat rotis (no ghee)\nUchhe bhaja (bitter gourd, minimal oil, dry)\nHomemade low-fat doi (curd)"),
     mc("2 small\nhalf katori\n1 katori"),
     mp("Uchhe = best natural blood sugar control")],

    # Mid-morning
    [mc("Mid-Morning\nTiffin"), mc("10:30 - 11:00\nAM"),
     mp("1 seasonal fruit: Peyara / Papaya / Amloki / Jamun\nOR: Roasted Bengal gram (no salt)\nPlain water"),
     mc("~100g fruit\nOR 30g chana\n1-2 glasses"),
     mp("Fiber + vitamins; uric acid clearance via water")],

    # Lunch
    [mc("Lunch\nDupurer\nBhojan"), mc("1:00 - 2:00\nPM"),
     mp("Lal chaal (red/parboiled rice) bhat\nMoong dal (thin, light)\nRui / Katla macher jhol (light)\n2 vegetable dishes (see list below)\nRaw salad (kakdi, tomato)"),
     mc("150g cooked\n1 katori\n1 medium piece\n1 katori each\n1 small plate"),
     mp("Main meal; balanced protein + carbs + fiber")],

    # Afternoon tiffin
    [mc("Afternoon\nTiffin\nBikeler Khabar"), mc("4:00 - 4:30\nPM"),
     mp("Green tea (no sugar)\n+ Makhana dry roasted\nOR 4-5 whole wheat crackers\nOR roasted chana (plain)"),
     mc("1 cup\n15-20 pieces\nOR 4-5\nOR 1 handful"),
     mp("Green tea reduces liver fat; low-cal snack")],

    # Dinner
    [mc("Dinner\nRater Bhojan"), mc("7:30 - 8:30\nPM"),
     mp("2 whole wheat rotis (thin, no ghee)\nMoong dal (light)\n1-2 vegetable dishes (from list)\nHomemade doi (curd)\nOR: Clear vegetable soup (lau / moong)"),
     mc("2 small\n1 katori\n1 katori each\n1 katori\n1 bowl"),
     mp("Lighter than lunch; finish by 8:30 PM")],

    # Supper / bedtime
    [mc("Supper /\nBedtime"), mc("10:00 - 10:30\nPM"),
     mp("Isabgol (psyllium husk) in warm water -- DAILY\nOR: Warm low-fat milk (no sugar)\nOR: 1-2 walnut halves (akhrot)"),
     mc("1 tsp isabgol\nOR 150ml milk\nOR 1-2 pieces"),
     mp("Isabgol = best remedy for constipation; walnut = liver support")],
]

meal_table_data = [meal_hdr] + meal_rows

col_w = [28*mm, 20*mm, 73*mm, 28*mm, 31*mm]
meal_table = Table(meal_table_data, colWidths=col_w, repeatRows=1)

row_bg = []
for i in range(1, len(meal_table_data)):
    bg = GREEN_PALE if i % 2 == 0 else WHITE
    row_bg.append(("BACKGROUND", (0, i), (-1, i), bg))

meal_table.setStyle(TableStyle([
    # Header row
    ("BACKGROUND", (0,0), (-1,0), GREEN_DARK),
    ("TEXTCOLOR", (0,0), (-1,0), WHITE),
    ("ROWPADDING", (0,0), (-1,-1), 5),
    ("VALIGN", (0,0), (-1,-1), "TOP"),
    ("BOX", (0,0), (-1,-1), 0.8, GREEN_DARK),
    ("INNERGRID", (0,0), (-1,-1), 0.3, GREY_MED),
    # Alternating row backgrounds
    *row_bg,
    # Meal name column styling
    ("BACKGROUND", (0,1), (0,-1), GREEN_LIGHT),
    ("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"),
    ("FONTSIZE", (0,1), (0,-1), 8),
    ("TEXTCOLOR", (0,1), (0,-1), GREEN_DARK),
    ("ALIGN", (0,0), (1,-1), "CENTER"),
    ("ALIGN", (3,0), (3,-1), "CENTER"),
]))

story.append(meal_table)
story.append(Spacer(1, 5*mm))

# ═══════════════════════════════════════════════════════════════════
# VEGETABLES LIST
# ═══════════════════════════════════════════════════════════════════
story.append(KeepTogether([
    section_header("  RECOMMENDED VEGETABLES (MURSHIDABAD - SEASONAL)"),
    Spacer(1, 2*mm),
]))

vegs = [
    ("Uchhe (Bitter Gourd)", "Best anti-diabetic vegetable - controls blood sugar"),
    ("Lau (Bottle Gourd)", "Excellent for BP, liver health, and weight loss"),
    ("Potol (Pointed Gourd)", "Low calorie, easy to digest, available year-round"),
    ("Jhinge (Ridge Gourd)", "High fiber, low GI, good for constipation"),
    ("Dharosh (Okra / Bhindi)", "Excellent fiber - controls sugar & relieves constipation"),
    ("Begun (Brinjal/Eggplant)", "Baked or bhate (steamed) ONLY - not fried"),
    ("Kumro (Pumpkin)", "Small quantity only - slightly higher GI"),
    ("Notey / Lal / Pui Saag", "High fiber leafy greens - antioxidants, iron"),
    ("Pata Kopi (Cabbage)", "High fiber, anti-inflammatory, readily available"),
    ("Kakrol (Spine Gourd)", "Very low calorie, available locally in Murshidabad"),
    ("Sim / Sheem (Hyacinth Bean)", "Protein + fiber - good substitute when dal is limited"),
]

veg_data = [[Paragraph("<b>Vegetable</b>", sTableHead), Paragraph("<b>Why It Helps</b>", sTableHead)]]
for v, d in vegs:
    veg_data.append([Paragraph(v, sTableCell), Paragraph(d, sTableCell)])

veg_table = Table(veg_data, colWidths=[55*mm, 125*mm])
veg_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,0), GREEN_MED),
    ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, GREEN_PALE]),
    ("BOX", (0,0), (-1,-1), 0.5, GREEN_MED),
    ("INNERGRID", (0,0), (-1,-1), 0.3, GREY_MED),
    ("ROWPADDING", (0,0), (-1,-1), 4),
    ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(veg_table)
story.append(Spacer(1, 5*mm))

# ═══════════════════════════════════════════════════════════════════
# FOODS TO AVOID
# ═══════════════════════════════════════════════════════════════════
story.append(KeepTogether([
    section_header("  FOODS TO STRICTLY AVOID", color=RED_DARK),
    Spacer(1, 2*mm),
]))

avoid_data = [
    [Paragraph("<b>Category</b>", sTableHead), Paragraph("<b>Foods to Avoid - Why</b>", sTableHead)],
    [Paragraph("For Diabetes", sTableCell),
     Paragraph("White rice (large qty) | Maida/luchi/kochuri | Sugar/mishti | Rasgolla/sandesh | Mango juice | Cold drinks | Sweetened tea", sTableCell)],
    [Paragraph("For Hypertension", sTableCell),
     Paragraph("Extra salt | Achar (pickle) | Papad | Shutki (dried fish - very high sodium) | Salted namkeen/chips | Packaged/processed foods", sTableCell)],
    [Paragraph("For High Uric Acid", sTableCell),
     Paragraph("Ilish/Hilsa | Chingri (prawns) | Shutki (dried fish) | Mutton/beef/pork | Organ meats (liver/kidney) | Masur dal (excess) | Rajma | Alcohol", sTableCell)],
    [Paragraph("For Fatty Liver", sTableCell),
     Paragraph("All fried foods (deep-fried fish, bhaja) | Oil-heavy curries | Coconut milk | Maida | Excess sugar | Trans fats | Alcohol (strictly zero)", sTableCell)],
    [Paragraph("For Constipation", sTableCell),
     Paragraph("Refined flour (maida) | White bread | Excess non-veg | Low water intake | Skipping meals | Sedentary lifestyle", sTableCell)],
]

avoid_table = Table(avoid_data, colWidths=[38*mm, 142*mm])
avoid_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,0), RED_DARK),
    ("TEXTCOLOR", (0,0), (-1,0), WHITE),
    ("ROWBACKGROUNDS", (0,1), (-1,-1), [RED_PALE, WHITE]),
    ("BOX", (0,0), (-1,-1), 0.5, RED_DARK),
    ("INNERGRID", (0,0), (-1,-1), 0.3, GREY_MED),
    ("ROWPADDING", (0,0), (-1,-1), 5),
    ("VALIGN", (0,0), (-1,-1), "TOP"),
    ("BACKGROUND", (0,1), (0,-1), colors.HexColor("#fce4e4")),
    ("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"),
    ("TEXTCOLOR", (0,1), (0,-1), RED_DARK),
]))
story.append(avoid_table)
story.append(Spacer(1, 5*mm))

# ═══════════════════════════════════════════════════════════════════
# SPECIAL LOCAL SUPERFOODS
# ═══════════════════════════════════════════════════════════════════
story.append(KeepTogether([
    section_header("  LOCAL MURSHIDABAD SUPERFOODS - USE DAILY"),
    Spacer(1, 2*mm),
]))

sf_data = [
    [Paragraph("<b>Food</b>", sTableHead), Paragraph("<b>Benefit</b>", sTableHead),
     Paragraph("<b>How to Use</b>", sTableHead)],
    [mp("Lal Chaal (Red/Brown Rice)"), mp("Lower GI than white rice, more fiber"), mp("Use as staple instead of white rice")],
    [mp("Amloki (Amla / Indian Gooseberry)"), mp("Liver protection, vitamin C, uric acid clearance"), mp("Raw, or juice with water, daily")],
    [mp("Bel (Wood Apple)"), mp("Natural laxative - best for constipation"), mp("Bel sherbet (no sugar) in afternoon")],
    [mp("Peyara (Guava)"), mp("Low GI, high fiber, vitamin C"), mp("Mid-morning or afternoon snack")],
    [mp("Moong Dal (Yellow Mung)"), mp("Low purine, high protein, liver-friendly"), mp("At lunch or dinner as thin dal")],
    [mp("Doi (Homemade Curd / Yogurt)"), mp("Probiotic - gut health, liver support"), mp("With lunch or evening meal")],
    [mp("Isabgol (Psyllium Husk)"), mp("Best fiber supplement for constipation"), mp("1 tsp in warm water before bed - DAILY")],
    [mp("Haldi (Turmeric)"), mp("Liver-protective anti-inflammatory"), mp("Add to all dal and sabzi cooking")],
    [mp("Ada (Ginger)"), mp("Anti-inflammatory, aids digestion"), mp("Add to tea (no sugar) or cooking")],
]

sf_table = Table(sf_data, colWidths=[48*mm, 74*mm, 58*mm])
sf_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,0), GREEN_DARK),
    ("TEXTCOLOR", (0,0), (-1,0), WHITE),
    ("ROWBACKGROUNDS", (0,1), (-1,-1), [GREEN_PALE, WHITE]),
    ("BOX", (0,0), (-1,-1), 0.5, GREEN_MED),
    ("INNERGRID", (0,0), (-1,-1), 0.3, GREY_MED),
    ("ROWPADDING", (0,0), (-1,-1), 4),
    ("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(sf_table)
story.append(Spacer(1, 5*mm))

# ═══════════════════════════════════════════════════════════════════
# COOKING GUIDELINES & WATER
# ═══════════════════════════════════════════════════════════════════
story.append(KeepTogether([
    section_header("  COOKING GUIDELINES & FLUIDS"),
    Spacer(1, 2*mm),
]))

cg_data = [
    ["Oil", "Mustard oil (sarshon tel) only. MAX 3 teaspoons (15 ml) per day total across ALL cooking."],
    ["Salt", "Minimal in cooking. NO extra salt at the table. No papad, pickle, or packaged snacks."],
    ["Cooking method", "Bhate (steam), boil, light stir-fry. No deep frying, no heavy gravies."],
    ["Water", "8-10 glasses of plain water daily (2-2.5 litres). Helps flush uric acid and supports liver."],
    ["Tea/Coffee", "Max 1-2 cups/day. NO sugar. Green tea preferred (1-2 cups/day reduces liver fat)."],
    ["Coconut water", "1 small glass occasionally (monitor if on potassium-restricting BP medications)."],
    ["Avoid", "Fruit juices, cold drinks, packaged beverages, sweetened lassi, sweetened chai."],
]

cg_table = Table(
    [[Paragraph("<b>"+r[0]+"</b>", sTableCell), Paragraph(r[1], sTableCell)] for r in cg_data],
    colWidths=[36*mm, 144*mm]
)
cg_table.setStyle(TableStyle([
    ("ROWBACKGROUNDS", (0,0), (-1,-1), [GREY_LIGHT, WHITE]),
    ("BOX", (0,0), (-1,-1), 0.5, GREY_MED),
    ("INNERGRID", (0,0), (-1,-1), 0.3, GREY_MED),
    ("ROWPADDING", (0,0), (-1,-1), 5),
    ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(cg_table)
story.append(Spacer(1, 5*mm))

# ═══════════════════════════════════════════════════════════════════
# IMPORTANT CLINICAL NOTES
# ═══════════════════════════════════════════════════════════════════
story.append(KeepTogether([
    section_header("  IMPORTANT NOTES FOR PATIENT & FAMILY", color=BLUE_DARK),
    Spacer(1, 2*mm),
]))

notes = [
    "All prescribed medications must be continued as directed by your doctor. This diet chart is SUPPORTIVE - not a replacement for medication.",
    "URIC ACID: Avoid ilish (hilsa), chingri (prawn), shutki (dried fish), mutton, and organ meats completely. Rui or Katla fish is allowed - 1 medium piece/day maximum.",
    "FATTY LIVER: Oil limit is STRICT - 3 teaspoons total per day. Turmeric and ginger in daily cooking helps liver healing. Repeat USG abdomen + LFT every 6 months.",
    "CONSTIPATION: Take 1 teaspoon isabgol in warm water every night before bed. Eat fiber-rich vegetables at every meal. Do not skip meals - fasting worsens constipation AND raises uric acid.",
    "BLOOD SUGAR MONITORING: Check fasting + 2-hour post-meal readings weekly. Report persistent high readings to your doctor.",
    "EXERCISE: 30-minute brisk walk every day (morning or evening). Exercise is as important as diet for ALL your conditions.",
    "MEAL TIMING: Never skip meals. Do not gap meals by more than 4-5 hours. Finish dinner by 8:30 PM - late eating worsens fatty liver and blood sugar control.",
    "WEIGHT GOAL: Losing just 3-5 kg over 3 months will significantly improve blood sugar, blood pressure, uric acid levels AND reduce liver fat.",
]

notes_data = [[Paragraph(str(i+1)+". " + n, sBullet)] for i, n in enumerate(notes)]
notes_table = Table(notes_data, colWidths=[180*mm])
notes_table.setStyle(TableStyle([
    ("ROWBACKGROUNDS", (0,0), (-1,-1), [BLUE_PALE, WHITE]),
    ("BOX", (0,0), (-1,-1), 0.5, BLUE_DARK),
    ("INNERGRID", (0,0), (-1,-1), 0.3, GREY_MED),
    ("ROWPADDING", (0,0), (-1,-1), 5),
]))
story.append(notes_table)
story.append(Spacer(1, 5*mm))

# ═══════════════════════════════════════════════════════════════════
# FOOTER
# ═══════════════════════════════════════════════════════════════════
story.append(HRFlowable(width="100%", thickness=1, color=GREEN_MED))
story.append(Spacer(1, 2*mm))
story.append(Paragraph(
    "This diet chart is prepared based on standard clinical dietetics guidelines for multi-morbidity management, "
    "adapted for Bengali / Murshidabad food culture and seasonal availability. "
    "Please consult your treating physician before making any changes to your medications or diet.",
    sFooter
))
story.append(Spacer(1, 1*mm))
story.append(Paragraph(
    "Prepared by: Clinical Dietician | Date: June 2026 | For: Murshidabad Region Patient",
    sFooter
))

# ═══════════════════════════════════════════════════════════════════
# BUILD
# ═══════════════════════════════════════════════════════════════════
doc.build(story)
print(f"PDF saved to: {OUTPUT}")
Running Command

cd /home/daytona/workspace/diet-chart-bengali && python generate_diet_pdf.py

Running Command

ls -lh /home/daytona/workspace/diet-chart-bengali/Bengali_Diet_Chart.pdf

The PDF is ready. Here's your download link:

Bengali Diet Chart

PDF Document Β· PDF


What's included in the PDF (print-ready, A4 format):
  • Header banner with patient details (85 kg, all 5 conditions listed, date)
  • Core Dietary Rules table - one rule per condition (Diabetes, Hypertension, Uric Acid, Fatty Liver, Constipation)
  • Full Meal Schedule - color-coded table with all 7 meal slots (Early Morning to Supper), timings, exact Bengali food names, quantities, and key benefits
  • Recommended Vegetables - 11 Murshidabad-specific vegetables with reasons to eat them
  • Foods to Strictly Avoid - red-highlighted table organized by condition
  • Local Superfoods table (Lal chaal, Amloki, Bel, Peyara, Isabgol, Haldi, etc.)
  • Cooking Guidelines - oil limit (3 tsp/day), salt rules, water intake, cooking methods
  • 8 Clinical Notes for patient and family (medication reminders, monitoring, exercise)
  • Footer disclaimer in professional clinical format
The design uses green/white/red color coding for easy reading, and all Bengali food names are written alongside English names so the patient's family can identify them easily.
This is a shared conversation. Sign in to Orris to start your own chat.