Tell me some important facts and figure regarding hypertension in indian population and also tell me some preventive measures
hypertension prevalence India epidemiology
hypertension statistics India 2024 prevalence facts figures prevention
hypertension India awareness treatment control
PMID: 38379011
PMID: 39367179
| Parameter | Women | Men |
|---|---|---|
| Aware of diagnosis | ~57% | ~38% |
| Receiving treatment | Fraction of those diagnosed | Fraction of those diagnosed |
| Overall BP control rate | ~15% (both sexes combined) |
Make a summary PDF on DASH diet adapted for Indian cuisine
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or not founโฆ
mkdir -p /home/daytona/workspace/dash-diet-india && echo "Directory created"
~/dash-diet-india/create_pdf.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, TA_JUSTIFY
from reportlab.platypus import PageBreak
OUTPUT = "/home/daytona/workspace/dash-diet-india/DASH_Diet_Indian_Cuisine.pdf"
# --- Colour palette ---
SAFFRON = colors.HexColor("#E8630A") # Indian saffron
GREEN = colors.HexColor("#138808") # India-flag green
NAVY = colors.HexColor("#1A3C6B") # Deep navy
TEAL = colors.HexColor("#0B7A75") # Teal accent
LIGHT_BG = colors.HexColor("#FFF8F0") # Warm cream
LIGHT_GREEN = colors.HexColor("#E8F5E9")
LIGHT_ORANGE = colors.HexColor("#FFF3E0")
LIGHT_TEAL = colors.HexColor("#E0F4F3")
LIGHT_NAVY = colors.HexColor("#EEF2F8")
WHITE = colors.white
DARK_TEXT = colors.HexColor("#222222")
MID_TEXT = colors.HexColor("#444444")
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=2*cm, leftMargin=2*cm,
topMargin=2*cm, bottomMargin=2*cm
)
W, H = A4
CONTENT_W = W - 4*cm
styles = getSampleStyleSheet()
def style(name, **kwargs):
return ParagraphStyle(name, **kwargs)
title_style = style("Title",
fontSize=26, leading=32, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER, spaceAfter=4)
subtitle_style = style("Subtitle",
fontSize=13, leading=18, textColor=colors.HexColor("#FFE0B2"),
fontName="Helvetica", alignment=TA_CENTER, spaceAfter=2)
section_header = style("SectionH",
fontSize=14, leading=18, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_LEFT,
spaceBefore=6, spaceAfter=4)
body = style("Body",
fontSize=9.5, leading=14, textColor=DARK_TEXT,
fontName="Helvetica", alignment=TA_JUSTIFY,
spaceBefore=2, spaceAfter=2)
body_bold = style("BodyBold",
fontSize=9.5, leading=14, textColor=DARK_TEXT,
fontName="Helvetica-Bold", alignment=TA_LEFT,
spaceBefore=2, spaceAfter=2)
bullet = style("Bullet",
fontSize=9.5, leading=14, textColor=DARK_TEXT,
fontName="Helvetica", leftIndent=14, bulletIndent=4,
spaceBefore=1, spaceAfter=1)
small_caption = style("SmallCap",
fontSize=8, leading=11, textColor=MID_TEXT,
fontName="Helvetica-Oblique", alignment=TA_CENTER)
table_header_style = style("TH",
fontSize=9, leading=12, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER)
table_cell_style = style("TC",
fontSize=8.5, leading=12, textColor=DARK_TEXT,
fontName="Helvetica", alignment=TA_LEFT)
table_cell_center = style("TCC",
fontSize=8.5, leading=12, textColor=DARK_TEXT,
fontName="Helvetica", alignment=TA_CENTER)
highlight_style = style("Highlight",
fontSize=10, leading=14, textColor=NAVY,
fontName="Helvetica-Bold", alignment=TA_CENTER,
spaceBefore=3, spaceAfter=3)
# ===================== HELPER FUNCTIONS =====================
def section_box(title, bg_color=NAVY):
"""Returns a coloured section header table."""
return Table(
[[Paragraph(title, section_header)]],
colWidths=[CONTENT_W],
style=TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg_color),
("ROUNDEDCORNERS", (0,0), (-1,-1), [6,6,6,6]),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING", (0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 12),
("RIGHTPADDING", (0,0), (-1,-1), 12),
])
)
def info_box(text, bg=LIGHT_BG, text_color=NAVY, bold=False):
st = style("IB",
fontSize=9.5, leading=14, textColor=text_color,
fontName="Helvetica-Bold" if bold else "Helvetica",
alignment=TA_JUSTIFY)
return Table(
[[Paragraph(text, st)]],
colWidths=[CONTENT_W],
style=TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING", (0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 12),
("RIGHTPADDING", (0,0), (-1,-1), 12),
("BOX", (0,0), (-1,-1), 1, colors.HexColor("#CCCCCC")),
])
)
def bullet_item(text, emoji="โข"):
return Paragraph(f"{emoji} {text}", bullet)
# ===================== CONTENT =====================
story = []
# โโ COVER BANNER โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
cover_data = [[
Paragraph("DASH Diet", title_style),
Paragraph("Adapted for Indian Cuisine", subtitle_style),
Paragraph("A Practical Guide to Lowering Blood Pressure Through Everyday Indian Foods", subtitle_style),
]]
cover_table = Table(
[[Paragraph("DASH Diet", title_style)],
[Paragraph("Adapted for Indian Cuisine", subtitle_style)],
[Paragraph("A Practical Guide to Lowering Blood Pressure\nThrough Everyday Indian Foods", subtitle_style)]],
colWidths=[CONTENT_W],
style=TableStyle([
("BACKGROUND", (0,0), (-1,-1), SAFFRON),
("TOPPADDING", (0,0), (-1,-1), 18),
("BOTTOMPADDING", (0,0), (-1,-1), 12),
("LEFTPADDING", (0,0), (-1,-1), 20),
("RIGHTPADDING", (0,0), (-1,-1), 20),
("ROUNDEDCORNERS", (0,0), (-1,-1), [10,10,10,10]),
])
)
story.append(cover_table)
story.append(Spacer(1, 0.4*cm))
# Tagline strip
tag_table = Table(
[[Paragraph("Evidence-based nutrition | India-specific food choices | Hypertension management", small_caption)]],
colWidths=[CONTENT_W],
style=TableStyle([
("BACKGROUND", (0,0), (-1,-1), GREEN),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
])
)
story.append(tag_table)
story.append(Spacer(1, 0.35*cm))
# โโ WHAT IS DASH? โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_box("๐ฅ What Is the DASH Diet?", NAVY))
story.append(Spacer(1, 0.2*cm))
story.append(info_box(
"<b>DASH (Dietary Approaches to Stop Hypertension)</b> is a clinically proven eating pattern "
"developed specifically to lower blood pressure. In the landmark DASH-Sodium trial, combining "
"the DASH plan with reduced sodium intake lowered systolic BP by up to <b>20.8 mmHg</b> in "
"people with SBP โฅ 150 mmHg โ comparable to a single antihypertensive drug. It is recommended "
"as first-line therapy for hypertension by major global guidelines.",
bg=LIGHT_NAVY
))
story.append(Spacer(1, 0.25*cm))
# Two-column key facts
kf_data = [
[Paragraph("SBP reduction\n(DASH alone)", highlight_style),
Paragraph("SBP reduction\n(DASH + low sodium)", highlight_style),
Paragraph("BP benefit\nwithout weight loss?", highlight_style),
Paragraph("Recommended by", highlight_style)],
[Paragraph("โ11 mmHg\n(feeding studies)", table_cell_center),
Paragraph("โ7/4 mmHg\n(7 systolic, 4 diastolic)", table_cell_center),
Paragraph("Yes โ\n(proven)", table_cell_center),
Paragraph("ACC/AHA, WHO,\nISH India 2024", table_cell_center)],
]
kf_table = Table(kf_data, colWidths=[CONTENT_W/4]*4,
style=TableStyle([
("BACKGROUND", (0,0), (-1,0), TEAL),
("BACKGROUND", (0,1), (-1,1), LIGHT_TEAL),
("ALIGN", (0,0), (-1,-1), "CENTER"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("BOX", (0,0), (-1,-1), 1, TEAL),
("INNERGRID", (0,0), (-1,-1), 0.5, colors.HexColor("#AAAAAA")),
])
)
story.append(kf_table)
story.append(Spacer(1, 0.35*cm))
# โโ CORE PRINCIPLES โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_box("๐ Core Principles of DASH", TEAL))
story.append(Spacer(1, 0.2*cm))
principles = [
("๐ฅฌ", "High in fruits & vegetables", "Rich source of potassium, magnesium, and fibre โ all BP-lowering nutrients."),
("๐ฅ", "Low-fat dairy", "Provides calcium; low-fat options keep saturated fat in check."),
("๐พ", "Whole grains", "Brown rice, oats, whole wheat โ high fibre, low glycaemic load."),
("๐ฅ", "Nuts, seeds & legumes", "Dal, rajma, chana โ protein + potassium + magnesium, no cholesterol."),
("๐", "Lean protein", "Fish, skinless poultry, pulses preferred over red/processed meat."),
("๐ง", "Low sodium (<1500 mg/day)", "Reducing salt is the single most impactful dietary change for BP."),
("๐ฌ", "Limit sweets & sugary drinks", "Minimise refined carbohydrates, sugared chai, packaged juices."),
("๐ง", "Limit saturated & trans fats", "Reduce ghee, butter, vanaspati; use mustard or olive oil in moderation."),
]
for emoji, title_txt, desc in principles:
row = Table(
[[Paragraph(f"{emoji} <b>{title_txt}</b>", body_bold),
Paragraph(desc, body)]],
colWidths=[5.5*cm, CONTENT_W - 5.5*cm],
style=TableStyle([
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 6),
])
)
story.append(row)
story.append(Spacer(1, 0.3*cm))
# โโ SODIUM GUIDANCE โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_box("๐ง Sodium โ The Critical Number", SAFFRON))
story.append(Spacer(1, 0.2*cm))
sodium_data = [
[Paragraph("Target", table_header_style), Paragraph("Daily Limit", table_header_style),
Paragraph("SBP Reduction", table_header_style)],
[Paragraph("Optimal", table_cell_center), Paragraph("< 1,500 mg/day\n(~ยพ tsp salt)", table_cell_center),
Paragraph("โ5/6 mmHg", table_cell_center)],
[Paragraph("Minimum goal", table_cell_center), Paragraph("Reduce by โฅ1,000 mg/day", table_cell_center),
Paragraph("โ2/3 mmHg", table_cell_center)],
[Paragraph("WHO recommendation", table_cell_center), Paragraph("< 2,000 mg/day (5 g salt)", table_cell_center),
Paragraph("Significant benefit", table_cell_center)],
]
sodium_table = Table(sodium_data, colWidths=[CONTENT_W/3]*3,
style=TableStyle([
("BACKGROUND", (0,0), (-1,0), SAFFRON),
("BACKGROUND", (0,1), (-1,1), LIGHT_ORANGE),
("BACKGROUND", (0,2), (-1,2), WHITE),
("BACKGROUND", (0,3), (-1,3), LIGHT_ORANGE),
("ALIGN", (0,0), (-1,-1), "CENTER"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("BOX", (0,0), (-1,-1), 1, SAFFRON),
("INNERGRID", (0,0), (-1,-1), 0.5, colors.HexColor("#CCCCCC")),
])
)
story.append(sodium_table)
story.append(Spacer(1, 0.15*cm))
story.append(info_box(
"<b>High-sodium Indian foods to watch:</b> Pickles (achar), papad, namkeen, chips, "
"packaged masala, ready-to-eat meals, extra salt during cooking, salty chutneys, "
"commercial sauces & ketchup.",
bg=colors.HexColor("#FFF3E0"), text_color=colors.HexColor("#8B1A00")
))
story.append(Spacer(1, 0.3*cm))
# โโ INDIAN FOOD SUBSTITUTIONS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_box("๐ฎ๐ณ DASH-Friendly Indian Food Choices", GREEN))
story.append(Spacer(1, 0.2*cm))
food_headers = [
Paragraph("DASH Category", table_header_style),
Paragraph("Traditional Indian Foods โ", table_header_style),
Paragraph("What to Limit โ", table_header_style),
Paragraph("Potassium/BP Benefit", table_header_style),
]
food_rows = [
food_headers,
[Paragraph("Vegetables\n(5โ9 servings/day)", table_cell_style),
Paragraph("Palak, methi, lauki, tinda, turai, bhindi, torai, karela, brinjal, capsicum, drumstick, cabbage, cauliflower", table_cell_style),
Paragraph("Deep-fried sabzi, chips, potato bhajia", table_cell_style),
Paragraph("High Kโบ, Mgยฒโบ, fibre; โ4/5 mmHg SBP", table_cell_style)],
[Paragraph("Fruits\n(4โ5 servings/day)", table_cell_style),
Paragraph("Banana, amla, guava, papaya, chiku, pomegranate, sitaphal, watermelon, mango (moderate)", table_cell_style),
Paragraph("Sugary fruit juices, canned fruits in syrup", table_cell_style),
Paragraph("Banana = 422 mg Kโบ; amla = Vit C + antioxidants", table_cell_style)],
[Paragraph("Whole Grains\n(6โ8 servings/day)", table_cell_style),
Paragraph("Brown rice, whole wheat chapati/roti, jowar/bajra/ragi rotla, oats daliya, poha (whole grain)", table_cell_style),
Paragraph("Maida (white flour), biscuits, white bread, puri, bhatura", table_cell_style),
Paragraph("Lowers glycaemic load; supports weight control", table_cell_style)],
[Paragraph("Legumes & Dals\n(4โ5/week)", table_cell_style),
Paragraph("Moong dal, toor dal, chana, rajma, masoor, lobiya, moth, urad (moderate), sprouts", table_cell_style),
Paragraph("Heavily salted or fried dal preparations", table_cell_style),
Paragraph("~400โ600 mg Kโบ/cup; plant protein; no cholesterol", table_cell_style)],
[Paragraph("Low-Fat Dairy\n(2โ3 servings/day)", table_cell_style),
Paragraph("Skimmed milk, low-fat dahi (curd), chaas (buttermilk without salt), paneer (from skim milk)", table_cell_style),
Paragraph("Full-fat paneer, malai, cream, khoa-based sweets", table_cell_style),
Paragraph("Calcium lowers BP; avoid adding salt to chaas", table_cell_style)],
[Paragraph("Lean Protein\n(2 or fewer/day)", table_cell_style),
Paragraph("Fish (rohu, katla, pomfret), egg whites, skinless chicken, tofu", table_cell_style),
Paragraph("Red meat, mutton, organ meats, processed meats (sausage, salami)", table_cell_style),
Paragraph("Fish omega-3 reduces CVD risk independently", table_cell_style)],
[Paragraph("Nuts & Seeds\n(4โ5/week)", table_cell_style),
Paragraph("Almonds, walnuts, flaxseeds (alsi), sunflower seeds, pumpkin seeds, til (sesame)", table_cell_style),
Paragraph("Salted cashews, fried peanuts, commercial namkeen", table_cell_style),
Paragraph("Mgยฒโบ + Kโบ + healthy fats; unsalted preferred", table_cell_style)],
[Paragraph("Cooking Fats\n(2โ3 tsp/day max)", table_cell_style),
Paragraph("Mustard oil, cold-pressed groundnut oil, rice bran oil (in moderation)", table_cell_style),
Paragraph("Ghee in excess, vanaspati (partially hydrogenated), coconut oil in large amounts", table_cell_style),
Paragraph("Reduce saturated fat โ lower CVD risk", table_cell_style)],
]
col_widths = [3.2*cm, 5.0*cm, 4.0*cm, 4.5*cm]
food_table = Table(food_rows, colWidths=col_widths,
style=TableStyle([
("BACKGROUND", (0,0), (-1,0), GREEN),
("ROWBACKGROUNDS", (0,1), (-1,-1), [LIGHT_GREEN, WHITE]),
("ALIGN", (0,0), (-1,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 5),
("BOX", (0,0), (-1,-1), 1, GREEN),
("INNERGRID", (0,0), (-1,-1), 0.4, colors.HexColor("#CCCCCC")),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
])
)
story.append(food_table)
story.append(Spacer(1, 0.35*cm))
# โโ SAMPLE MEAL PLAN โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_box("๐ฝ๏ธ Sample 1-Day Indian DASH Meal Plan", NAVY))
story.append(Spacer(1, 0.2*cm))
meal_data = [
[Paragraph("Meal", table_header_style), Paragraph("What to Eat", table_header_style),
Paragraph("DASH Elements", table_header_style)],
[Paragraph("๐
Early Morning", table_cell_style),
Paragraph("1 glass warm water + 4โ5 soaked almonds or walnuts", table_cell_style),
Paragraph("Nuts serving, hydration", table_cell_style)],
[Paragraph("โ๏ธ Breakfast", table_cell_style),
Paragraph("1 cup oats daliya / poha with vegetables OR 2 bajra/jowar rotis with low-fat dahi; 1 fruit (banana or guava); 1 cup skimmed milk or unsweetened green tea", table_cell_style),
Paragraph("Whole grain, dairy, fruit, no added salt", table_cell_style)],
[Paragraph("๐ Mid-Morning", table_cell_style),
Paragraph("Seasonal fruit (papaya, pomegranate) OR a handful of unsalted peanuts/til chikki (jaggery-based, no salt)", table_cell_style),
Paragraph("Fruit + nuts serving", table_cell_style)],
[Paragraph("๐ Lunch", table_cell_style),
Paragraph("2 whole wheat rotis + 1 cup moong/toor dal (lightly salted) + 1 cup sabzi (palak/bhindi/lauki) + 1 cup low-fat dahi/chaas (no salt) + salad (cucumber, tomato, carrot)", table_cell_style),
Paragraph("Legumes, vegetables, whole grain, dairy, low sodium", table_cell_style)],
[Paragraph("๐ค๏ธ Evening Snack", table_cell_style),
Paragraph("Sprout chaat (moong/chana sprouts, lemon, raw onion, tomato, minimal salt) OR roasted makhana; 1 cup unsweetened chaas", table_cell_style),
Paragraph("Legumes, dairy, no frying", table_cell_style)],
[Paragraph("๐ Dinner", table_cell_style),
Paragraph("1 cup brown rice OR 2 bajra rotis + 1 cup rajma/chana masala (low salt) + 1 cup stir-fried mixed vegetables (minimal oil) + small bowl salad; 1 cup warm skimmed milk before bed", table_cell_style),
Paragraph("Whole grain, legumes, vegetables, dairy, potassium-rich", table_cell_style)],
]
meal_table = Table(meal_data, colWidths=[3.2*cm, 8.5*cm, 5.0*cm],
style=TableStyle([
("BACKGROUND", (0,0), (-1,0), NAVY),
("ROWBACKGROUNDS", (0,1), (-1,-1), [LIGHT_NAVY, WHITE]),
("ALIGN", (0,0), (-1,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 5),
("BOX", (0,0), (-1,-1), 1, NAVY),
("INNERGRID", (0,0), (-1,-1), 0.4, colors.HexColor("#CCCCCC")),
])
)
story.append(meal_table)
story.append(Spacer(1, 0.35*cm))
# โโ COOKING TIPS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_box("๐จโ๐ณ Indian DASH Cooking Tips", TEAL))
story.append(Spacer(1, 0.2*cm))
tips = [
("๐ซ", "Tempering (tadka)", "Use mustard oil or minimal ghee; add curry leaves, mustard seeds, jeera, hing for flavour without excess fat."),
("๐ง", "Flavour without salt", "Use lime/lemon juice, amchur, imli, coriander leaves, pudina, jeera powder โ they enhance taste without raising BP."),
("๐ซ", "Avoid pickles & papad", "Replace achar and papad with fresh salad, chutneys from fresh herbs (pudina chutney, low salt), or raita."),
("๐ช", "Steam, boil, stir-fry", "Prefer steaming idli, boiling sabzi lightly, or pressure-cooking dal โ avoid deep frying (pakora, puri, samosa)."),
("๐ณ", "Control cooking oil", "Use a measured teaspoon (not ladleful) of oil; spray-oil pans when possible. Total fat <27% of calories."),
("๐ฆ", "Read packaged food labels", "Check sodium per 100 g โ anything >400 mg Na/100 g is high sodium. Avoid instant noodles, salty snacks, ready-mixes."),
("๐ซ", "Limit sugary beverages", "Replace sugary chai with green tea, tulsi tea, or unsweetened herbal drinks; avoid packaged juices."),
("๐ฅฃ", "Fermented foods", "Idli, dosa, dhokla made without excess salt are excellent low-fat, probiotic options aligned with DASH."),
]
for emoji, tip_title, tip_desc in tips:
row = Table(
[[Paragraph(f"{emoji} <b>{tip_title}</b>", body_bold),
Paragraph(tip_desc, body)]],
colWidths=[4.5*cm, CONTENT_W - 4.5*cm],
style=TableStyle([
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 3),
("BOTTOMPADDING", (0,0), (-1,-1), 3),
])
)
story.append(row)
story.append(Spacer(1, 0.3*cm))
# โโ POTASSIUM-RICH INDIAN FOODS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_box("๐ช Potassium-Rich Indian Foods (BP-Lowering)", GREEN))
story.append(Spacer(1, 0.2*cm))
potassium_data = [
[Paragraph("Food", table_header_style), Paragraph("Potassium (mg)", table_header_style),
Paragraph("Food", table_header_style), Paragraph("Potassium (mg)", table_header_style)],
[Paragraph("Banana (1 medium)", table_cell_style), Paragraph("422 mg", table_cell_center),
Paragraph("Rajma / Kidney beans (1 cup)", table_cell_style), Paragraph("~607 mg", table_cell_center)],
[Paragraph("Amla / Indian gooseberry", table_cell_style), Paragraph("~200 mg/100g", table_cell_center),
Paragraph("Moong dal (cooked, 1 cup)", table_cell_style), Paragraph("~537 mg", table_cell_center)],
[Paragraph("Palak / Spinach (1 cup)", table_cell_style), Paragraph("~840 mg", table_cell_center),
Paragraph("Guava (1 medium)", table_cell_style), Paragraph("~417 mg", table_cell_center)],
[Paragraph("Drumstick / Moringa leaves", table_cell_style), Paragraph("~337 mg/100g", table_cell_center),
Paragraph("Pomegranate (1 cup seeds)", table_cell_style), Paragraph("~410 mg", table_cell_center)],
[Paragraph("Potato (baked, with skin)", table_cell_style), Paragraph("~926 mg", table_cell_center),
Paragraph("Coconut water (1 cup)", table_cell_style), Paragraph("~600 mg", table_cell_center)],
]
pot_table = Table(potassium_data, colWidths=[5*cm, 3.5*cm, 5*cm, 3.5*cm],
style=TableStyle([
("BACKGROUND", (0,0), (-1,0), GREEN),
("ROWBACKGROUNDS", (0,1), (-1,-1), [LIGHT_GREEN, WHITE]),
("ALIGN", (0,0), (-1,-1), "LEFT"),
("ALIGN", (1,0), (1,-1), "CENTER"),
("ALIGN", (3,0), (3,-1), "CENTER"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("BOX", (0,0), (-1,-1), 1, GREEN),
("INNERGRID", (0,0), (-1,-1), 0.4, colors.HexColor("#CCCCCC")),
])
)
story.append(pot_table)
story.append(Spacer(1, 0.15*cm))
story.append(info_box(
"โ ๏ธ <b>Caution:</b> Patients with Chronic Kidney Disease (CKD) or on ACE inhibitors/ARBs "
"should consult their doctor before significantly increasing potassium intake.",
bg=colors.HexColor("#FFF8E1"), text_color=colors.HexColor("#7B3F00")
))
story.append(Spacer(1, 0.3*cm))
# โโ LIFESTYLE SYNERGY โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_box("๐ Lifestyle Synergy: Maximising BP Reduction", SAFFRON))
story.append(Spacer(1, 0.2*cm))
synergy_data = [
[Paragraph("Intervention", table_header_style),
Paragraph("Expected SBP Drop\n(with Hypertension)", table_header_style),
Paragraph("Expected SBP Drop\n(Normal BP)", table_header_style)],
[Paragraph("DASH diet", table_cell_style), Paragraph("โ11 mmHg (feeding)\nโ4/5 mmHg (real-world)", table_cell_center), Paragraph("โ2/3 mmHg", table_cell_center)],
[Paragraph("Weight loss (per 1 kg)", table_cell_style), Paragraph("~โ1 mmHg per kg", table_cell_center), Paragraph("โ0.5 mmHg per kg", table_cell_center)],
[Paragraph("Weight loss (5 kg)", table_cell_style), Paragraph("โ5 mmHg", table_cell_center), Paragraph("โ2/3 mmHg", table_cell_center)],
[Paragraph("Dietary sodium reduction", table_cell_style), Paragraph("โ5/6 mmHg", table_cell_center), Paragraph("โ2/3 mmHg", table_cell_center)],
[Paragraph("Increased potassium intake", table_cell_style), Paragraph("โ4/5 mmHg", table_cell_center), Paragraph("โ2 mmHg", table_cell_center)],
[Paragraph("Regular aerobic exercise", table_cell_style), Paragraph("โ4/5 mmHg", table_cell_center), Paragraph("โ2/3 mmHg", table_cell_center)],
[Paragraph("Limit alcohol consumption", table_cell_style), Paragraph("โ4 mmHg", table_cell_center), Paragraph("โ2 mmHg", table_cell_center)],
[Paragraph("โ
Combination (all above)", table_cell_style),
Paragraph("โฅ โ10 mmHg\n(clinically significant)", table_cell_center),
Paragraph("Prevents progression to HTN", table_cell_center)],
]
syn_table = Table(synergy_data, colWidths=[5.5*cm, 5.5*cm, 5.5*cm],
style=TableStyle([
("BACKGROUND", (0,0), (-1,0), SAFFRON),
("ROWBACKGROUNDS", (0,1), (-1,-2), [LIGHT_ORANGE, WHITE]),
("BACKGROUND", (0,-1), (-1,-1), colors.HexColor("#E8F5E9")),
("FONTNAME", (0,-1), (-1,-1), "Helvetica-Bold"),
("ALIGN", (0,0), (-1,-1), "CENTER"),
("ALIGN", (0,0), (0,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("BOX", (0,0), (-1,-1), 1, SAFFRON),
("INNERGRID", (0,0), (-1,-1), 0.4, colors.HexColor("#CCCCCC")),
])
)
story.append(syn_table)
story.append(Spacer(1, 0.35*cm))
# โโ SPECIAL POPULATIONS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_box("๐ฅ Special Considerations for India", NAVY))
story.append(Spacer(1, 0.2*cm))
sp_items = [
("Vegetarians & Vegans", "The standard DASH diet is easily adapted โ India's plant-based tradition is naturally DASH-compatible. Focus on dal, rajma, chana, tofu, sprouts, and a variety of seasonal vegetables for protein and micronutrients."),
("Diabetics (very common in India)", "Prefer low-glycaemic whole grains (bajra, jowar, ragi over white rice). The DASH diet also improves insulin sensitivity, making it doubly beneficial."),
("Young adults & urban population", "Limit cafรฉ beverages, packaged snacks, fast food, and restaurant salt. Young-onset hypertension is rising sharply in urban India."),
("Rural populations", "Traditional diets based on millet rotis, dal, and seasonal vegetables are inherently DASH-friendly โ the main intervention is reducing pickle/papad/extra salt use."),
("Pregnant women & elderly", "Maintain adequate calcium (dairy, ragi, sesame), iron (palak, horse gram), and potassium. Consult a physician regarding sodium limits if on medications."),
("CKD patients", "Potassium and phosphorus restriction may be needed โ individualise with a renal dietitian. Do NOT follow high-potassium DASH recommendations without medical guidance."),
]
for i, (title_txt, desc) in enumerate(sp_items):
bg = LIGHT_NAVY if i % 2 == 0 else WHITE
row = Table(
[[Paragraph(f"<b>{title_txt}</b>", body_bold),
Paragraph(desc, body)]],
colWidths=[4.5*cm, CONTENT_W - 4.5*cm],
style=TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("BOX", (0,0), (-1,-1), 0.5, colors.HexColor("#CCCCCC")),
])
)
story.append(row)
story.append(Spacer(1, 0.35*cm))
# โโ KEY TAKEAWAYS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_box("โ
Key Takeaways", GREEN))
story.append(Spacer(1, 0.2*cm))
takeaways = [
"The DASH diet is proven to lower blood pressure โ in India, traditional plant-based diets are naturally aligned with its core principles.",
"Salt reduction is the single most impactful change โ target <5 g/day (1 tsp); eliminate pickles, papad, and excess cooking salt.",
"Eat more potassium: bananas, palak, rajma, dal, coconut water, guava โ all common Indian foods that actively lower BP.",
"Choose whole grains: bajra, jowar, ragi, brown rice, whole wheat roti over maida-based preparations.",
"Combine diet with 150 minutes of aerobic exercise per week โ this combination can reduce SBP by >10 mmHg.",
"India's low hypertension control rate (~15%) makes dietary self-management critically important alongside medication adherence.",
"Consult your physician or dietitian before making major dietary changes, especially if you have CKD, diabetes, or are on medications.",
]
for i, tk in enumerate(takeaways):
story.append(bullet_item(tk, emoji=f"{i+1}."))
story.append(Spacer(1, 0.3*cm))
# โโ FOOTER / REFERENCES โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(HRFlowable(width=CONTENT_W, thickness=1, color=colors.HexColor("#CCCCCC")))
story.append(Spacer(1, 0.1*cm))
refs_style = style("Refs",
fontSize=7.5, leading=11, textColor=MID_TEXT,
fontName="Helvetica-Oblique", alignment=TA_LEFT)
story.append(Paragraph(
"<b>References:</b> Fuster & Hurst's The Heart 15th Ed., pp. 249โ250 | "
"Harrison's Principles of Internal Medicine 22e, pp. 1900โ1901 | "
"Maheshwari A et al. J Hum Hypertens 2024 (PMID: 39367179) | "
"Gupta R et al. Hypertens Res 2024 (PMID: 38379011) | "
"ACC/AHA 2018 Hypertension Guidelines | WHO Salt Reduction Guidelines",
refs_style
))
story.append(Spacer(1, 0.05*cm))
story.append(Paragraph(
"This document is for educational purposes only. It does not constitute medical advice. "
"Always consult a qualified healthcare professional for personalised guidance.",
refs_style
))
# โโ BUILD โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /home/daytona/workspace/dash-diet-india && python create_pdf.py 2>&1
ls -lh /home/daytona/workspace/dash-diet-india/DASH_Diet_Indian_Cuisine.pdf
DASH Diet Indian Cuisine
PDF Document ยท PDF
| Section | Content |
|---|---|
| What Is DASH? | Evidence summary โ up to โ11 mmHg SBP reduction, key stats |
| Core Principles | 8 DASH pillars explained with relevance to Indian diet |
| Sodium Guidance | Daily targets, SBP reduction table, list of high-sodium Indian foods to avoid |
| Indian Food Choices Table | Category-by-category: vegetables, fruits, grains, dals, dairy, protein, nuts, fats โ with Indian examples and what to limit |
| 1-Day Indian Meal Plan | Early morning โ breakfast โ mid-morning โ lunch โ evening snack โ dinner |
| Cooking Tips | 8 India-specific tips: tadka without excess fat, flavouring without salt, fermented foods, label reading |
| Potassium-Rich Indian Foods | Table with mg values for banana, palak, rajma, coconut water, guava, amla, etc. |
| Lifestyle Synergy Table | All 6 interventions with expected SBP drops (adapted from ACC/AHA guidelines) |
| Special Populations | Vegetarians, diabetics, urban youth, rural populations, elderly, CKD patients |
| Key Takeaways | 7 actionable points |
| References | Harrison's 22e, Fuster & Hurst's The Heart, ISH India 2024, Gupta et al. 2024 |
Generate a PowerPoint presentation on DASH diet for patient education