Low cast nutrition of dm
"diabetes mellitus" AND "dietary management" AND "low cost"
low cost nutrition for diabetes mellitus affordable diet plan
https://www.cdc.gov/diabetes/healthy-eating/6-tips-eating-he…
| Food | Why it Works | Cost Level |
|---|---|---|
| Lentils & beans (dal, rajma, chana) | High fiber, low GI, slow glucose release | Very cheap |
| Whole oats | Beta-glucan fiber, lowers post-meal glucose | Cheap |
| Brown rice / millets (jowar, bajra, ragi) | Lower GI than white rice, more fiber | Cheap |
| Whole wheat chapati | Better GI than white bread | Cheap |
| Sweet potato (boiled) | Moderate GI, filling, nutritious | Cheap |
| Food | Benefit | Cost Level |
|---|---|---|
| Eggs | High quality protein, minimal glucose impact | Cheap |
| Lentils / dals | Protein + fiber combo | Very cheap |
| Low-fat curd/yogurt | Protein + probiotics | Cheap |
| Canned fish / dried fish | Omega-3s, protein | Cheap |
| Soy (tofu, soy milk) | Plant protein, low GI | Cheap |
| Avoid | Why |
|---|---|
| White rice in large portions | High GI, rapid glucose spike |
| Maida (refined flour) products | High GI, low fiber |
| Sugary drinks, packaged juices | Rapid sugar spikes |
| Deep-fried snacks (samosa, puri, bhujia) | High calories, poor glycemic control |
| White bread, instant noodles | High GI |
| Meal | Options | Approx. Cost |
|---|---|---|
| Breakfast | Oatmeal with a few nuts + 1 egg (boiled) | Low |
| Mid-morning | 1 guava or small fruit | Very low |
| Lunch | 2 whole wheat chapatis + moong dal + spinach sabzi | Very low |
| Evening snack | Roasted chana (chickpeas) + buttermilk | Very low |
| Dinner | Brown rice (small portion) + rajma or dal + salad (cucumber, tomato) | Low |
Give ppt
mkdir -p /tmp/workspace/dm-nutrition-ppt && ls /tmp/workspace/dm-nutrition-ppt/
~/dm-nutrition-ppt/create_ppt.py
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from io import BytesIO
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
blank = prs.slide_layouts[6]
# ─── COLORS ───
GREEN_DARK = RGBColor(0x1B, 0x5E, 0x20) # deep green
GREEN_MID = RGBColor(0x2E, 0x7D, 0x32) # medium green
GREEN_LIGHT = RGBColor(0xA5, 0xD6, 0xA7) # light green accent
ORANGE = RGBColor(0xE6, 0x5C, 0x00) # accent orange
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
DARK_GRAY = RGBColor(0x21, 0x21, 0x21)
LIGHT_BG = RGBColor(0xF1, 0xF8, 0xE9) # very light green bg
AMBER = RGBColor(0xFF, 0x8F, 0x00)
def add_rect(slide, x, y, w, h, fill_rgb, line_rgb=None, line_width=0):
shape = slide.shapes.add_shape(1, Inches(x), Inches(y), Inches(w), Inches(h))
shape.fill.solid()
shape.fill.fore_color.rgb = fill_rgb
if line_rgb:
shape.line.color.rgb = line_rgb
shape.line.width = Pt(line_width)
else:
shape.line.fill.background()
return shape
def add_text(slide, text, x, y, w, h, size, bold=False, color=DARK_GRAY,
align=PP_ALIGN.LEFT, italic=False, wrap=True):
tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
tf = tb.text_frame
tf.word_wrap = wrap
tf.margin_left = Pt(4)
tf.margin_right = Pt(4)
tf.margin_top = Pt(2)
tf.margin_bottom = Pt(2)
p = tf.paragraphs[0]
p.alignment = align
run = p.add_run()
run.text = text
run.font.size = Pt(size)
run.font.bold = bold
run.font.italic = italic
run.font.color.rgb = color
run.font.name = "Calibri"
return tf
def add_multiline(slide, lines, x, y, w, h, size, color=DARK_GRAY, bold_first=False,
line_spacing=1.15, wrap=True):
"""lines: list of (text, bold, color_override_or_None)"""
tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
tf = tb.text_frame
tf.word_wrap = wrap
tf.margin_left = Pt(4)
tf.margin_right = Pt(4)
tf.margin_top = Pt(2)
tf.margin_bottom = Pt(2)
for i, item in enumerate(lines):
text, bold, col = item
if i == 0:
p = tf.paragraphs[0]
else:
p = tf.add_paragraph()
p.space_after = Pt(2)
run = p.add_run()
run.text = text
run.font.size = Pt(size)
run.font.bold = bold
run.font.color.rgb = col if col else color
run.font.name = "Calibri"
return tf
# ════════════════════════════════════════════════
# SLIDE 1 – TITLE
# ════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
# Full background
add_rect(slide, 0, 0, 13.333, 7.5, GREEN_DARK)
# Bottom accent strip
add_rect(slide, 0, 6.5, 13.333, 1.0, GREEN_MID)
# Decorative box top right
add_rect(slide, 10.5, 0, 2.833, 2.5, GREEN_MID)
# Orange accent line
add_rect(slide, 0, 6.3, 13.333, 0.08, ORANGE)
add_text(slide, "Low-Cost Nutrition", 1, 1.5, 10, 1.5, 54, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
add_text(slide, "for Diabetes Mellitus (DM)", 1, 2.9, 10, 1.0, 36, bold=False, color=GREEN_LIGHT, align=PP_ALIGN.LEFT)
add_text(slide, "Practical, Affordable Dietary Strategies for Blood Sugar Control", 1, 4.1, 10, 0.7, 18, bold=False, color=WHITE, align=PP_ALIGN.LEFT, italic=True)
add_text(slide, "Medical Nutrition Therapy | Evidence-Based Guidelines", 1, 6.55, 11, 0.6, 14, bold=False, color=WHITE, align=PP_ALIGN.LEFT)
# ════════════════════════════════════════════════
# SLIDE 2 – WHAT IS MEDICAL NUTRITION THERAPY
# ════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(slide, 0, 0, 13.333, 1.15, GREEN_DARK)
add_rect(slide, 0, 1.15, 0.07, 6.35, ORANGE)
add_text(slide, "What is Medical Nutrition Therapy (MNT)?", 0.3, 0.15, 12, 0.85, 28, bold=True, color=WHITE)
cards = [
("🎯 Goal", "Achieve adequate nutrition, maintain ideal body weight, and control blood glucose.", GREEN_DARK),
("📉 Caloric Restriction", "1,000–1,500 kcal/day (women)\n1,200–1,800 kcal/day (men)\nTarget ≥5% weight loss if overweight.", GREEN_MID),
("🥗 Eating Patterns", "Mediterranean, Plant-based, DASH, or Low-Carbohydrate diets all achieve similar glycemic goals.", GREEN_DARK),
("🚫 Key Avoidance", "Avoid sugar-sweetened beverages.\nOptimize non-starchy vegetables & whole grains.", ORANGE),
]
col_x = [0.25, 3.55, 6.85, 10.15]
for i, (title, body, col) in enumerate(cards):
add_rect(slide, col_x[i], 1.5, 2.9, 5.0, col)
add_rect(slide, col_x[i], 1.5, 2.9, 0.7, RGBColor(0,0,0)) # darker header strip
add_text(slide, title, col_x[i]+0.1, 1.55, 2.7, 0.6, 15, bold=True, color=WHITE)
add_text(slide, body, col_x[i]+0.1, 2.3, 2.7, 3.9, 13, color=WHITE, wrap=True)
add_text(slide, "Source: Washington Manual of Medical Therapeutics, p.885", 0.25, 7.1, 12, 0.35, 10, italic=True, color=GREEN_MID)
# ════════════════════════════════════════════════
# SLIDE 3 – LOW-COST CARBOHYDRATE CHOICES
# ════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(slide, 0, 0, 13.333, 1.15, GREEN_DARK)
add_rect(slide, 0, 1.15, 0.07, 6.35, GREEN_LIGHT)
add_text(slide, "Affordable Carbohydrate Sources (Low Glycemic Index)", 0.3, 0.15, 12, 0.85, 26, bold=True, color=WHITE)
add_text(slide, "Choose slow-digesting carbs that cause gradual glucose rise", 0.3, 1.25, 12, 0.5, 15, italic=True, color=GREEN_DARK)
headers = ["Food", "Why It Helps", "GI Level", "Cost"]
rows = [
("Lentils & Beans\n(Dal, Rajma, Chana)", "High fiber + protein;\nslow glucose release", "Low (29–45)", "Very Cheap"),
("Whole Oats", "Beta-glucan fiber;\nlowers post-meal glucose", "Low (55)", "Cheap"),
("Millets\n(Jowar, Bajra, Ragi)", "Higher fiber than white rice;\nmicronutrient-rich", "Low–Medium", "Very Cheap"),
("Whole Wheat Chapati", "Better GI than white bread;\nlow cost staple", "Medium (52)", "Cheap"),
("Sweet Potato (boiled)", "Filling, nutritious;\nmoderate GI", "Medium (63)", "Cheap"),
]
col_widths = [2.8, 3.5, 2.2, 2.0]
col_xs = [0.3, 3.1, 6.65, 8.9]
row_ys = [2.0, 2.85, 3.65, 4.5, 5.35]
# Header row
for j, (hdr, cx, cw) in enumerate(zip(headers, col_xs, col_widths)):
add_rect(slide, cx, 1.85, cw-0.07, 0.55, GREEN_MID)
add_text(slide, hdr, cx+0.05, 1.87, cw-0.1, 0.5, 13, bold=True, color=WHITE)
# Data rows
for i, row in enumerate(rows):
bg = LIGHT_BG if i % 2 == 0 else RGBColor(0xC8, 0xE6, 0xC9)
for j, (cell, cx, cw) in enumerate(zip(row, col_xs, col_widths)):
add_rect(slide, cx, row_ys[i], cw-0.07, 0.77, bg, line_rgb=GREEN_LIGHT, line_width=0.5)
add_text(slide, cell, cx+0.06, row_ys[i]+0.04, cw-0.12, 0.7, 11.5, color=DARK_GRAY, wrap=True)
add_rect(slide, 0.3, 6.3, 11.0, 0.65, GREEN_DARK)
add_text(slide, "💡 Tip: Boiling/steaming lowers GI further compared to frying or pressure cooking at high heat.", 0.4, 6.33, 10.8, 0.6, 12, color=WHITE)
# ════════════════════════════════════════════════
# SLIDE 4 – PROTEIN & VEGETABLES
# ════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(slide, 0, 0, 13.333, 1.15, GREEN_DARK)
add_rect(slide, 0, 1.15, 0.07, 6.35, ORANGE)
add_text(slide, "Cheap Protein & Vegetable Sources for DM", 0.3, 0.15, 12, 0.85, 26, bold=True, color=WHITE)
# LEFT – Proteins
add_rect(slide, 0.25, 1.3, 6.1, 5.7, WHITE, line_rgb=GREEN_LIGHT, line_width=1)
add_rect(slide, 0.25, 1.3, 6.1, 0.55, GREEN_MID)
add_text(slide, "💪 Cheap Protein Sources", 0.35, 1.32, 5.9, 0.5, 16, bold=True, color=WHITE)
protein_items = [
"🥚 Eggs – high quality protein, minimal glucose impact",
"🫘 Lentils/Dal – protein + fiber combined; very cheap",
"🥛 Low-fat curd / yogurt – protein + probiotics",
"🐟 Canned/dried fish – omega-3 fatty acids + protein",
"🌱 Soy / Tofu – plant protein, low GI",
"🥜 Groundnuts (peanuts) – protein + healthy fats; cheap",
]
for i, item in enumerate(protein_items):
add_text(slide, item, 0.4, 2.0 + i * 0.72, 5.8, 0.65, 12.5, color=DARK_GRAY, wrap=True)
# RIGHT – Vegetables
add_rect(slide, 6.85, 1.3, 6.1, 5.7, WHITE, line_rgb=GREEN_LIGHT, line_width=1)
add_rect(slide, 6.85, 1.3, 6.1, 0.55, GREEN_DARK)
add_text(slide, "🥦 Best Non-Starchy Vegetables", 6.95, 1.32, 5.9, 0.5, 16, bold=True, color=WHITE)
veg_items = [
"Spinach, Methi (fenugreek), Palak",
"Cabbage, Cauliflower, Brinjal",
"Bitter gourd (Karela) – lowers glucose",
"Tomatoes, Onions, Cucumber",
"Bottle gourd (Lauki), Ridge gourd (Turai)",
"✅ All are affordable & blood-sugar friendly",
]
for i, item in enumerate(veg_items):
bold = (i == 5)
col = GREEN_DARK if i == 5 else DARK_GRAY
add_text(slide, item, 7.0, 2.0 + i * 0.72, 5.8, 0.65, 12.5, color=col, bold=bold, wrap=True)
add_text(slide, "Aim: 1 meatless meal/day → lower cost + less saturated fat", 0.3, 7.1, 12, 0.35, 11, italic=True, color=GREEN_MID)
# ════════════════════════════════════════════════
# SLIDE 5 – FOODS TO AVOID
# ════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(slide, 0, 0, 13.333, 1.15, RGBColor(0xB7, 0x1C, 0x1C))
add_rect(slide, 0, 1.15, 0.07, 6.35, ORANGE)
add_text(slide, "Foods to AVOID in Diabetes", 0.3, 0.15, 12, 0.85, 28, bold=True, color=WHITE)
avoid_data = [
("🥤 Sugar-Sweetened\nBeverages", "Rapid blood glucose spike;\nzero nutritional value", "Very High GI"),
("🍞 White Bread &\nRefined Flour (Maida)", "High GI; stripped of fiber;\nrapid glucose rise", "High GI (75+)"),
("🍚 Large portions of\nWhite Rice", "High GI when eaten alone;\nportion control is key", "High GI (72)"),
("🍟 Deep-Fried Snacks\n(Samosa, Puri, Bhujia)", "High calorie, poor glycemic\ncontrol, promotes weight gain", "High GI + fat"),
("🍜 Instant Noodles &\nProcessed Snacks", "Refined carbs + sodium;\nno fiber", "High GI"),
("🧃 Packaged Fruit Juices", "No fiber; rapid sugar\nabsorption same as soda", "Very High GI"),
]
red_bg = RGBColor(0xFF, 0xEB, 0xEB)
red_hdr = RGBColor(0xB7, 0x1C, 0x1C)
col_xs = [0.25, 2.5, 4.75, 7.0, 9.25, 11.5]
cw = 2.1
for i, (food, reason, gi) in enumerate(avoid_data):
cx = col_xs[i]
add_rect(slide, cx, 1.4, cw, 5.5, red_bg, line_rgb=RGBColor(0xFF, 0xCC, 0xCC), line_width=0.8)
add_rect(slide, cx, 1.4, cw, 0.9, red_hdr)
add_text(slide, food, cx+0.08, 1.42, cw-0.12, 0.85, 12.5, bold=True, color=WHITE, wrap=True)
add_text(slide, reason, cx+0.08, 2.38, cw-0.12, 2.2, 11.5, color=DARK_GRAY, wrap=True)
add_rect(slide, cx, 4.65, cw, 0.5, RGBColor(0xFF, 0xCC, 0xBC))
add_text(slide, gi, cx+0.08, 4.67, cw-0.12, 0.45, 11, bold=True, color=ORANGE, align=PP_ALIGN.CENTER)
add_rect(slide, 0.3, 5.35, 12.7, 0.75, RGBColor(0xB7, 0x1C, 0x1C))
add_text(slide, "💡 Eat whole fruit INSTEAD of fruit juice — fiber slows sugar absorption significantly.", 0.5, 5.38, 12.3, 0.65, 13, color=WHITE)
# ════════════════════════════════════════════════
# SLIDE 6 – SAMPLE MEAL PLAN
# ════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(slide, 0, 0, 13.333, 1.15, GREEN_DARK)
add_rect(slide, 0, 1.15, 0.07, 6.35, GREEN_LIGHT)
add_text(slide, "Sample Low-Cost 1-Day Meal Plan (~1,500 kcal)", 0.3, 0.15, 12, 0.85, 26, bold=True, color=WHITE)
meals = [
("🌅 Breakfast", "Oatmeal (½ cup oats) with a few nuts\n+ 1 boiled egg\n+ Unsweetened tea/coffee"),
("🍎 Mid-Morning", "1 whole guava OR small seasonal fruit\n(No fruit juice)"),
("🍱 Lunch", "2 whole wheat chapatis\n+ 1 cup moong dal\n+ Spinach/methi sabzi\n+ Salad (cucumber, tomato)"),
("🌤 Evening Snack", "Roasted chana (¼ cup)\n+ Buttermilk (low-fat)\nOR handful of peanuts"),
("🌙 Dinner", "¾ cup brown rice OR 2 chapatis\n+ Rajma / dal\n+ Mixed vegetable sabzi"),
]
meal_xs = [0.25, 2.85, 5.45, 8.05, 10.65]
for i, (title, content) in enumerate(meals):
cx = meal_xs[i]
add_rect(slide, cx, 1.4, 2.45, 5.4, WHITE, line_rgb=GREEN_LIGHT, line_width=0.8)
add_rect(slide, cx, 1.4, 2.45, 0.6, GREEN_MID)
add_text(slide, title, cx+0.08, 1.42, 2.28, 0.55, 13, bold=True, color=WHITE)
add_text(slide, content, cx+0.08, 2.1, 2.28, 4.5, 12, color=DARK_GRAY, wrap=True)
add_rect(slide, 0.25, 7.0, 12.7, 0.4, GREEN_DARK)
add_text(slide, "Target: High fiber | Low GI | Balanced macros | No added sugar | ~₹60–₹100/day (approx.)", 0.4, 7.02, 12.3, 0.35, 12, color=WHITE, bold=True)
# ════════════════════════════════════════════════
# SLIDE 7 – BUDGET SMART TIPS
# ════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(slide, 0, 0, 13.333, 1.15, GREEN_DARK)
add_rect(slide, 0, 1.15, 0.07, 6.35, AMBER)
add_text(slide, "Budget-Smart Practical Tips", 0.3, 0.15, 12, 0.85, 28, bold=True, color=WHITE)
tips = [
("1", "Plan Weekly Meals", "Reduces impulse buys, cuts waste, saves 15–25% of food cost."),
("2", "Buy in Bulk", "Dry lentils, oats, whole grains — much cheaper per kg when bought in bulk."),
("3", "Buy Frozen/Canned Veggies", "Equally nutritious as fresh; choose water-packed, no added salt or sugar."),
("4", "Cook at Home", "Restaurant & packaged foods cost more and are harder to control for diabetes."),
("5", "One Meatless Meal Daily", "Dal-based meals cut cost AND reduce saturated fat intake."),
("6", "Grow Kitchen Garden", "Methi, spinach, tomatoes, chilli — easy to grow; nearly free nutrition."),
("7", "Buy Generic Brands", "Store/generic brands save 20–30% vs. branded; same nutritional quality."),
("8", "Stretch Recipes", "Large batch soups, dals, vegetable stews last multiple days; cost-effective."),
]
tip_xs = [0.25, 4.6, 8.95]
tip_ys = [1.4, 2.9, 4.4, 5.9]
for i, (num, title, desc) in enumerate(tips):
row = i % 3 # actually 3 per row, 3 columns
col = i // 3
# rearrange as 3 cols x 3 rows (last cell empty)
pass
# Lay out as 2 columns x 4 rows
lx = [0.25, 6.85]
ly = [1.4, 2.75, 4.1, 5.45]
for i, (num, title, desc) in enumerate(tips):
cx = lx[i % 2]
ry = ly[i // 2]
add_rect(slide, cx, ry, 6.2, 1.1, WHITE, line_rgb=GREEN_LIGHT, line_width=0.6)
add_rect(slide, cx, ry, 0.55, 1.1, AMBER)
add_text(slide, num, cx+0.05, ry+0.2, 0.45, 0.7, 20, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_text(slide, title, cx+0.65, ry+0.06, 5.4, 0.4, 13, bold=True, color=GREEN_DARK)
add_text(slide, desc, cx+0.65, ry+0.5, 5.4, 0.55, 11.5, color=DARK_GRAY, wrap=True)
add_text(slide, "Source: CDC Diabetes Healthy Eating on a Budget Guidelines", 0.25, 7.1, 12, 0.35, 10, italic=True, color=GREEN_MID)
# ════════════════════════════════════════════════
# SLIDE 8 – KEY TAKEAWAYS
# ════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, GREEN_DARK)
add_rect(slide, 0, 6.3, 13.333, 1.2, GREEN_MID)
add_rect(slide, 0, 6.28, 13.333, 0.08, ORANGE)
add_text(slide, "Key Takeaways", 0.5, 0.25, 12, 0.85, 32, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
add_rect(slide, 0.5, 1.05, 12.3, 0.06, GREEN_LIGHT)
takeaways = [
("✅", "Expensive 'diabetic foods' are NOT required — affordable whole foods work equally well."),
("✅", "Focus on fiber, portion control, and reducing refined carbs above all else."),
("✅", "Lentils, millets, oats, eggs, and non-starchy vegetables are the cheapest diabetes-friendly staples."),
("✅", "Avoid sugar-sweetened beverages — this single change has the highest impact on blood glucose."),
("✅", "Carbohydrate counting helps patients on insulin therapy adjust doses accurately."),
("🏃", "Exercise (150 min/week moderate activity) enhances diet effects and is completely FREE."),
]
for i, (icon, text) in enumerate(takeaways):
ry = 1.3 + i * 0.88
add_rect(slide, 0.5, ry, 0.55, 0.72, GREEN_MID)
add_text(slide, icon, 0.52, ry+0.06, 0.5, 0.6, 18, align=PP_ALIGN.CENTER, color=WHITE)
add_text(slide, text, 1.15, ry+0.07, 11.5, 0.6, 14, color=WHITE, wrap=True)
add_text(slide, "Washington Manual of Medical Therapeutics | CDC Diabetes | Harrison's Principles of Internal Medicine 22E", 0.5, 6.38, 12.3, 0.6, 11, italic=True, color=WHITE, align=PP_ALIGN.CENTER)
# ─── SAVE ───
out_path = "/tmp/workspace/dm-nutrition-ppt/LowCost_Nutrition_DM.pptx"
buf = BytesIO()
prs.save(buf)
with open(out_path, "wb") as f:
f.write(buf.getvalue())
print(f"Saved: {out_path}")
python /tmp/workspace/dm-nutrition-ppt/create_ppt.py
LowCost Nutrition DM
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title Slide |
| 2 | What is Medical Nutrition Therapy (MNT)? |
| 3 | Affordable Carbohydrate Sources (Low GI table) |
| 4 | Cheap Protein & Vegetable Sources |
| 5 | Foods to AVOID in Diabetes |
| 6 | Sample Low-Cost 1-Day Meal Plan |
| 7 | Budget-Smart Practical Tips (8 tips) |
| 8 | Key Takeaways |
What means high gi
| GI Level | Score | What Happens |
|---|---|---|
| Low GI | ≤ 55 | Slow, gradual glucose rise - good for DM |
| Medium GI | 56–69 | Moderate glucose rise |
| High GI | ≥ 70 | Rapid, sharp glucose spike - bad for DM |
| Food | GI Score |
|---|---|
| White bread | 75 |
| White rice (cooked) | 72 |
| Sugary drinks / soda | 65–80 |
| Corn flakes / puffed rice | 80–87 |
| Watermelon | 76 |
| Instant noodles | 65–70 |
| Potato (baked) | 85 |
| Food | GI Score |
|---|---|
| Lentils / dal | 29–45 |
| Whole oats | 55 |
| Apple | 36 |
| Whole wheat chapati | 52 |
| Brown rice | 50–55 |
| Chickpeas | 28 |
The more processed and refined a food is, the higher its GI. The more fiber it has, the lower its GI.
What is glycemic index
glycemic index blood glucose curve comparison diagram

This composite figure presents a four-panel comparison (a-d) of continuous glucose monitoring (CGM) data and corresponding coronary intravascular ultrasound (IVUS) imaging. On the left side of each panel, line graphs illustrate blood glucose level fluctuations (mg/dl) over 24-hour cycles for five consecutive days. These graphs demonstrate varying degrees of glycemic variability, quantified by the mean amplitude of glycemic excursion (MAGE). On the right side of each panel, iMap-coronary IVUS cross-sectional images characterize plaque morphology and composition in the coronary artery. The iMap analysis utilizes color-coding to visualize tissue components: green represents fibrotic tissue, yellow indicates lipidic tissue, pink/red denotes necrotic tissue, and white signifies calcified tissue. The visual data highlights the clinical association between high glycemic excursion (seen in panels a and c) and increased necrotic or lipidic plaque components compared to patients with more stable glucose levels (panel b) or different inflammatory profiles (panel d). This educational material demonstrates the relationship between metabolic control and atherosclerosis progression.

A multi-panel line graph and bar chart illustrating glycemic control (GC) results for a single virtual patient ('Patient C') over a 70-hour period. The top panel displays blood glucose (BG) levels in mmol/L, comparing two treatment protocols: STAR-6H (blue) and STAR-ULC-6H (red). A target glycemic band of 4.4–8.0 mmol/L is indicated by horizontal dashed lines, with an upper limit of 8.5 mmol/L. Both protocols maintain the patient within the target band for the majority of the duration, though excursions are noted initially and toward the end of the simulation. The middle panel shows insulin administration rates in Units per hour (U/h), with STAR-6H generally requiring higher, more frequent doses (blue bars) compared to the conservative dosing of STAR-ULC-6H (red bars). The bottom panel tracks enteral nutrition rates (solid lines) as a percentage of goal feed (%GF) and dextrose boluses (bars) in grams. This comparison highlights the trade-offs in clinical workload, insulin sensitivity modeling, and glycemic variability between standard and modified stochastic glycemic control algorithms in an intensive care context.

This Comparison Chart displays nine sequential time-series records (labeled Record 1 to 9) representing continuous blood glucose monitoring (CGM) data from patients ten months post-implantation of a Duodenal-Jejunal Bypass Liner (DJBL). The records are arranged vertically as individual line graphs against a horizontal 'Sample' axis ranging from 0 to over 1500 units, representing a minimum duration of six days. Each graph illustrates the dynamic fluctuations, amplitude, and frequency of glucose levels over time. Distinctive visual features include varying degrees of complexity and volatility across the records; for instance, Records 1 and 6 show pronounced spikes and oscillations, whereas Records 7 and 8 demonstrate more stable physiological trends. This visual dataset is used in endocrine research to evaluate glucose variability and metabolic control through entropy-based metrics (SampEn and FuzzyEn). The image serves as a clinical reference for physiological signal processing and the longitudinal assessment of glycemic regulation following metabolic surgical interventions in obese, diabetic populations.
"Glycemic index provides an assessment of the carbohydrate content of a food in terms of its effect on postprandial (after-meal) glucose levels in the blood." - Sleisenger & Fordtran's Gastrointestinal and Liver Disease, p.2002
GI = (AUC of test food ÷ AUC of glucose) × 100
| Category | GI Score | Effect on Blood Sugar |
|---|---|---|
| Low GI | ≤ 55 | Slow, gradual rise - GOOD for DM |
| Medium GI | 56–69 | Moderate rise |
| High GI | ≥ 70 | Rapid, sharp spike - BAD for DM |
| Factor | Lower GI | Higher GI |
|---|---|---|
| Starch type | More amylose | More amylopectin |
| Processing | Whole grain, raw | Refined flour, cooked/mashed |
| Fiber content | High fiber | Low fiber |
| Fruit ripeness | Unripe | Very ripe |
| Food form | Whole food | Liquid/juice form |
"The ability to control blood glucose levels after a carbohydrate meal... is better achieved with foods having a low glycemic index." - Sleisenger & Fordtran's GI & Liver Disease, p.2002
| Low GI (Good) | High GI (Avoid in DM) |
|---|---|
| Lentils (29) | White bread (75) |
| Chickpeas (28) | White rice (72) |
| Whole oats (55) | Cornflakes (81) |
| Apple (36) | Baked potato (85) |
| Brown rice (50) | Watermelon (76) |
High GI = fast glucose spike = bad for diabetes. Low GI = slow glucose rise = blood sugar stays controlled.
Give affordable carbohydrate sources headlines
Golden Rule: The less processed, the lower the GI, the better for DM. Always pair carbs with fiber or protein to slow glucose absorption further.
Give low cost nutrition based on park community medicine
| # | Food Group | Role | Affordable Examples |
|---|---|---|---|
| 1 | Cereals & Millets | Energy-giving (carbohydrates) | Rice, wheat, jowar, bajra, ragi |
| 2 | Pulses (Legumes) | Body-building (protein) | Moong, masoor, chana, rajma, arhar dal |
| 3 | Vegetables | Protective (vitamins, minerals, fiber) | Spinach, methi, cabbage, lauki, karela |
| 4 | Nuts & Oilseeds | Energy + essential fats | Groundnuts, til (sesame), flaxseed |
| 5 | Fruits | Protective | Guava, amla, papaya, banana |
| 6 | Animal Foods | Body-building | Eggs, fish, chicken, milk |
| 7 | Fats & Oils | Energy | Mustard oil, groundnut oil |
| 8 | Sugar & Jaggery | Energy (use minimally in DM) | Jaggery (lower GI than sugar) |
| 9 | Condiments & Spices | Flavor + medicinal | Turmeric, methi seeds, cinnamon |
| 10 | Miscellaneous | Varies | Curd, buttermilk |
"Energy-giving foods: cereals, sugars, roots and tubers, fats and oils. Body-building foods: milk, meat, poultry, fish, eggs, pulses, nuts. Protective foods: vegetables, fruits, milk." - Park's, Classification by Predominant Function
| Macronutrient | % of Total Energy (Indian Dietary) |
|---|---|
| Carbohydrates | 50–80% |
| Fats | 15–30% |
| Proteins | 10–15% |
In Indian diets, carbohydrates contribute 50–80% of total energy — making the choice of LOW-GI carbs especially important in DM.
| GI Category | GI Range | Affordable Low-Cost Examples |
|---|---|---|
| Low GI ✅ | ≤ 55 | Most fruits & vegetables, whole grains, pasta, beans, lentils |
| Medium GI ⚠️ | 56–69 | Sucrose, basmati rice, brown rice |
| High GI ❌ | ≥ 70 | Corn flakes, baked potato, jasmine white rice, white bread, candy |
"Low GI foods favour slow release of sugar into the small intestine... The concept has practical utility in management of diabetes and control of obesity." - Park's, p. 710
"Dietary fibre... exhibits blood glucose attenuation." - Park's
| Fibre-Rich Affordable Foods | Why Good for DM |
|---|---|
| Whole cereals (jowar, bajra, oats) | Slows starch digestion |
| Pulses/legumes (all dals) | Soluble fibre lowers post-meal glucose |
| Vegetables (methi, lauki, karela) | Insoluble + soluble fibre |
| Fruits (guava, amla) | Pectin slows glucose rise |
"The high incidence of obesity, atheroma and diabetes in western societies is attributed to overnutrition." - Park's, Social Aspects of Nutrition
| Programme | Benefit |
|---|---|
| ICDS (Integrated Child Development Services) | Supplementary feeding for children & mothers |
| Mid-Day Meal Scheme | School children nutrition |
| Special Nutrition Programme | Vulnerable populations |
| Balwadi Nutrition Programme | Pre-school children |
| Food | Park's Category | GI | Cost |
|---|---|---|---|
| Moong/masoor dal | Pulses (body-building) | Low | Very cheap |
| Jowar/bajra roti | Cereals & millets (energy) | Low | Very cheap |
| Methi/spinach | Vegetables (protective) | Very Low | Cheap |
| Eggs | Animal foods (body-building) | Very Low | Cheap |
| Groundnuts | Nuts & oilseeds | Low | Cheap |
| Guava/amla | Fruits (protective) | Low | Very cheap |
| Buttermilk | Miscellaneous | Low | Very cheap |