Make diet plan and exercise list and do's and don'ts
rheumatoid arthritis diet exercise management
rheumatoid arthritis cervical spondylosis diet plan exercise do's don'ts 2025
⚠️ Important: This plan is for lifestyle support only. Please follow your rheumatologist's medications (DMARDs/biologics for RA) alongside this. Do NOT stop or change prescribed medicines based on this plan.
| Time | Meal | What to Eat |
|---|---|---|
| 6:30 AM | On waking | 2 glasses warm water + juice of half lemon (alkalizes uric acid) |
| 7:00 AM | Breakfast | Oats with flaxseeds + walnuts + 1 banana OR 2 whole wheat rotis + 1 egg white + vegetable sabzi |
| 10:00 AM | Mid-morning | 1 handful of almonds/walnuts + 1 fruit (apple, pear, orange) |
| 1:00 PM | Lunch | 2 rotis (wheat/multigrain) + 1 cup dal + 1 cup vegetable curry + salad (cucumber, carrot, tomato) + 1 cup low-fat curd |
| 4:00 PM | Snack | 1 cup green tea (no sugar) + roasted chana OR 1 fruit |
| 7:30 PM | Dinner | 1-2 rotis + fish curry (salmon/rohu/catla) 2-3 times/week OR vegetable khichdi + 1 cup vegetable soup |
| 9:30 PM | Before bed | 1 glass warm turmeric milk (haldi doodh) |
| Food | Why |
|---|---|
| Red meat (mutton, beef, pork) | High purines - raises uric acid; promotes RA inflammation |
| Organ meats (liver, kidney, brain) | Extremely high purines |
| Alcohol (especially beer) | Raises uric acid sharply, worsens RA |
| Sugary drinks (cold drinks, packaged juice) | Pro-inflammatory, worsens RA and joints |
| Fried/processed foods (chips, namkeen, fast food) | Trans fats cause inflammation |
| White bread, maida products | Refined carbs worsen inflammation |
| Excess salt | Worsens joint swelling |
| Seafood excess (prawns, crab, shellfish) | High purines - raise uric acid |
| Supplement | Dose (typical) | Benefit |
|---|---|---|
| Omega-3 fish oil | 2-3g/day EPA+DHA | Reduces RA joint inflammation |
| Vitamin D3 | 1000-2000 IU/day | Bone health, immune modulation in RA |
| Calcium | 500-1000 mg/day | Bone health (especially with steroid use) |
| Turmeric/Curcumin extract | 500mg twice daily | Anti-inflammatory |
| Vitamin C (from food/amla) | High dietary intake | Helps uric acid excretion |
Always discuss these with your rheumatologist before starting, especially if you are already on methotrexate or other DMARDs.
Make them in pdf file
ls -la /home/daytona/workspace/ 2>/dev/null && mkdir -p /home/daytona/workspace/kalipada-health-plan
~/kalipada-health-plan/generate_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.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
import os
OUTPUT = "/home/daytona/workspace/kalipada-health-plan/Kalipada_Health_Plan.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=1.8*cm,
leftMargin=1.8*cm,
topMargin=2*cm,
bottomMargin=2*cm,
)
W, H = A4
# ── Colour Palette ──────────────────────────────────────────────
TEAL = colors.HexColor("#006D77")
TEAL_LIGHT = colors.HexColor("#E8F4F5")
ORANGE = colors.HexColor("#E07B39")
ORANGE_LT = colors.HexColor("#FEF3EC")
GREEN = colors.HexColor("#2D6A4F")
GREEN_LT = colors.HexColor("#EAF4EE")
RED = colors.HexColor("#C0392B")
RED_LT = colors.HexColor("#FDEDEC")
GREY_BG = colors.HexColor("#F5F5F5")
DARK = colors.HexColor("#1A1A2E")
MID_GREY = colors.HexColor("#6B6B6B")
WHITE = colors.white
# ── Styles ───────────────────────────────────────────────────────
styles = getSampleStyleSheet()
def style(name, **kw):
s = ParagraphStyle(name, **kw)
return s
S_TITLE = style("S_TITLE",
fontName="Helvetica-Bold", fontSize=20, textColor=WHITE,
alignment=TA_CENTER, spaceAfter=2)
S_SUBTITLE = style("S_SUBTITLE",
fontName="Helvetica", fontSize=11, textColor=WHITE,
alignment=TA_CENTER, spaceAfter=2)
S_PATIENT = style("S_PATIENT",
fontName="Helvetica", fontSize=9.5, textColor=WHITE,
alignment=TA_CENTER)
S_SECTION = style("S_SECTION",
fontName="Helvetica-Bold", fontSize=13, textColor=WHITE,
alignment=TA_LEFT, spaceAfter=4, spaceBefore=10)
S_SUBSECTION = style("S_SUBSECTION",
fontName="Helvetica-Bold", fontSize=11, textColor=TEAL,
spaceBefore=8, spaceAfter=3)
S_BODY = style("S_BODY",
fontName="Helvetica", fontSize=9.5, textColor=DARK,
spaceAfter=3, leading=14, alignment=TA_JUSTIFY)
S_BULLET = style("S_BULLET",
fontName="Helvetica", fontSize=9.5, textColor=DARK,
leftIndent=14, spaceAfter=2, leading=13,
bulletIndent=4, bulletFontSize=10)
S_DO = style("S_DO",
fontName="Helvetica", fontSize=9.5, textColor=GREEN,
leftIndent=14, spaceAfter=2, leading=13, bulletIndent=4)
S_DONT = style("S_DONT",
fontName="Helvetica", fontSize=9.5, textColor=RED,
leftIndent=14, spaceAfter=2, leading=13, bulletIndent=4)
S_WARN = style("S_WARN",
fontName="Helvetica-Oblique", fontSize=8.5, textColor=ORANGE,
alignment=TA_CENTER, spaceAfter=4)
S_FOOTER = style("S_FOOTER",
fontName="Helvetica", fontSize=7.5, textColor=MID_GREY,
alignment=TA_CENTER)
S_TH = style("S_TH",
fontName="Helvetica-Bold", fontSize=9, textColor=WHITE,
alignment=TA_CENTER)
S_TD = style("S_TD",
fontName="Helvetica", fontSize=9, textColor=DARK,
alignment=TA_LEFT, leading=12)
S_TD_C = style("S_TD_C",
fontName="Helvetica", fontSize=9, textColor=DARK,
alignment=TA_CENTER, leading=12)
# ── Helper: section header band ──────────────────────────────────
def section_header(text, bg=TEAL):
data = [[Paragraph(text, S_SECTION)]]
t = Table(data, colWidths=[W - 3.6*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
("ROUNDEDCORNERS", [5, 5, 5, 5]),
]))
return t
def bullet(text, sty=S_BULLET, sym="•"):
return Paragraph(f"{sym} {text}", sty)
def do_item(text):
return Paragraph(f"✔ {text}", S_DO)
def dont_item(text):
return Paragraph(f"✘ {text}", S_DONT)
# ── Build story ───────────────────────────────────────────────────
story = []
# ═══ COVER BANNER ════════════════════════════════════════════════
banner_data = [[
Paragraph("PERSONALISED HEALTH PLAN", S_TITLE),
]]
banner = Table(banner_data, colWidths=[W - 3.6*cm])
banner.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), TEAL),
("TOPPADDING", (0,0), (-1,-1), 18),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 12),
("RIGHTPADDING", (0,0), (-1,-1), 12),
]))
story.append(banner)
sub_data = [[Paragraph("Diet Plan • Exercise Guide • Do's & Don'ts", S_SUBTITLE)]]
sub_t = Table(sub_data, colWidths=[W - 3.6*cm])
sub_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), colors.HexColor("#004F59")),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 12),
("LEFTPADDING", (0,0), (-1,-1), 12),
("RIGHTPADDING", (0,0), (-1,-1), 12),
]))
story.append(sub_t)
story.append(Spacer(1, 6))
# Patient details bar
pat_data = [[
Paragraph("<b>Patient:</b> Mr. Kalipada Jena", S_PATIENT),
Paragraph("<b>Age/Sex:</b> 45 Years / Male", S_PATIENT),
Paragraph("<b>Date:</b> June 17, 2026", S_PATIENT),
]]
pat_t = Table(pat_data, colWidths=[(W-3.6*cm)/3]*3)
pat_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), ORANGE),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
]))
story.append(pat_t)
story.append(Spacer(1, 8))
# Diagnosis summary box
diag_rows = [
[Paragraph("<b>DIAGNOSIS SUMMARY</b>", style("DH", fontName="Helvetica-Bold", fontSize=10, textColor=TEAL, alignment=TA_CENTER))],
[Table([
[
Paragraph("🔴 Rheumatoid Arthritis\nAnti-CCP: 95.4 U/ml (Strong +)\nRF: 100 IU/ml (Elevated)", S_BODY),
Paragraph("🟡 Cervical Spondylosis\nC3-4, C4-5, C5-6, C6-7\nDisc protrusions + mild cord indentation", S_BODY),
Paragraph("🟠 Lumbar Spondylosis\nL1-2 to L5-S1\nDiffuse disc bulge", S_BODY),
Paragraph("🟡 Borderline High Uric Acid\n7.4 mg/dL\n(Normal male: up to 7.2)", S_BODY),
]
], colWidths=[(W-5*cm)/4]*4,
style=[
("VALIGN", (0,0), (-1,-1), "TOP"),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("LINEAFTER", (0,0), (2,0), 0.5, colors.HexColor("#CCCCCC")),
])],
]
diag_t = Table(diag_rows, colWidths=[W - 3.6*cm])
diag_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), TEAL_LIGHT),
("BACKGROUND", (0,1), (-1,1), GREY_BG),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
("BOX", (0,0), (-1,-1), 1, TEAL),
]))
story.append(diag_t)
story.append(Spacer(1, 6))
story.append(Paragraph(
"⚠ This plan supports your medical treatment — it does NOT replace prescribed medications. "
"Always follow your rheumatologist's instructions.", S_WARN))
story.append(HRFlowable(width="100%", thickness=0.5, color=MID_GREY))
story.append(Spacer(1, 6))
# ═══ SECTION 1: DIET PLAN ════════════════════════════════════════
story.append(section_header("1. DAILY DIET PLAN"))
story.append(Spacer(1, 6))
story.append(Paragraph(
"Based on 2022 ACR Guidelines, a <b>Mediterranean-style anti-inflammatory diet</b> is recommended. "
"This helps reduce RA joint inflammation, supports spinal disc health, and controls uric acid.", S_BODY))
story.append(Spacer(1, 6))
# Meal table
meal_headers = [
Paragraph("Time", S_TH),
Paragraph("Meal", S_TH),
Paragraph("What to Eat", S_TH),
]
meals = [
["6:30 AM", "On Waking", "2 glasses warm water + juice of ½ lemon (alkalises, helps flush uric acid)"],
["7:00 AM", "Breakfast", "Oats with flaxseeds + walnuts + 1 banana OR 2 multigrain rotis + 1 egg white + vegetable sabzi"],
["10:00 AM", "Mid-Morning", "1 handful almonds/walnuts + 1 fruit (apple, pear, orange, guava)"],
["1:00 PM", "Lunch", "2 rotis (wheat/multigrain) + 1 cup dal + 1 cup vegetable curry + salad (cucumber, carrot, tomato) + low-fat curd"],
["4:00 PM", "Snack", "1 cup green tea (no sugar) + roasted chana OR 1 seasonal fruit"],
["7:30 PM", "Dinner", "1–2 rotis + fish curry (rohu/salmon) 3×/week OR vegetable khichdi + 1 cup vegetable soup"],
["9:30 PM", "Bedtime", "1 glass warm turmeric milk (haldi doodh — natural anti-inflammatory)"],
]
meal_data = [meal_headers]
for row in meals:
meal_data.append([
Paragraph(row[0], S_TD_C),
Paragraph(f"<b>{row[1]}</b>", S_TD),
Paragraph(row[2], S_TD),
])
meal_t = Table(meal_data, colWidths=[1.8*cm, 2.8*cm, W-3.6*cm-1.8*cm-2.8*cm])
meal_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), TEAL),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, TEAL_LIGHT]),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#CCCCCC")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(meal_t)
story.append(Spacer(1, 10))
# Best foods to include
story.append(Paragraph("Best Foods to Include (Anti-Inflammatory)", S_SUBSECTION))
best_foods = [
[
[
Paragraph("<b>For RA + Spine Health</b>", style("BFH", fontName="Helvetica-Bold", fontSize=9.5, textColor=GREEN)),
bullet("Fatty fish: Rohu, catla, salmon (2–3×/week) — omega-3 reduces joint inflammation"),
bullet("Turmeric (haldi) — daily in cooking or warm milk; curcumin is a potent anti-inflammatory"),
bullet("Ginger (adrak) — in tea or cooking daily"),
bullet("Flaxseeds/chia seeds — 1 tbsp daily; plant-based omega-3"),
bullet("Walnuts — 5–7 daily"),
bullet("Dark leafy greens: palak, methi, broccoli, kale"),
bullet("Colorful vegetables: carrots, capsicum, tomatoes, pumpkin"),
bullet("Fruits: amla (high Vit C), papaya, oranges, guava, berries"),
bullet("Whole grains: brown rice, oats, multigrain roti, daliya"),
bullet("Lentils/dal: masoor, moong (low purine, good protein for RA)"),
bullet("Olive oil or mustard oil for cooking"),
],
[
Paragraph("<b>For Uric Acid Control</b>", style("UAH", fontName="Helvetica-Bold", fontSize=9.5, textColor=ORANGE)),
bullet("Cherries, amla, lemon water — help excrete uric acid"),
bullet("3–4 litres water daily — flushes uric acid through kidneys"),
bullet("Low-fat dairy (curd, buttermilk) — clinically shown to lower uric acid"),
bullet("Alkaline vegetables: cucumber, ash gourd, bitter gourd"),
Spacer(1, 6),
Paragraph("<b>Hydration Goal</b>", style("HG", fontName="Helvetica-Bold", fontSize=9.5, textColor=TEAL)),
bullet("Minimum 3–4 litres of water per day"),
bullet("Coconut water 1 glass/day is beneficial"),
bullet("Avoid sugary drinks completely"),
bullet("Herbal teas (ginger, turmeric, green tea) encouraged"),
]
]
]
bf_inner = Table(
[[best_foods[0][0], best_foods[0][1]]],
colWidths=[(W-3.6*cm)/2]*2,
)
bf_inner.setStyle(TableStyle([
("VALIGN", (0,0), (-1,-1), "TOP"),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("BACKGROUND", (0,0), (0,0), GREEN_LT),
("BACKGROUND", (1,0), (1,0), ORANGE_LT),
("BOX", (0,0), (-1,-1), 0.5, colors.HexColor("#CCCCCC")),
("LINEAFTER", (0,0), (0,0), 0.5, colors.HexColor("#CCCCCC")),
]))
story.append(bf_inner)
story.append(Spacer(1, 10))
# ═══ SECTION 2: FOODS TO AVOID ═══════════════════════════════════
story.append(section_header("2. FOODS TO AVOID", bg=RED))
story.append(Spacer(1, 6))
avoid_headers = [
Paragraph("Food / Drink", S_TH),
Paragraph("Why Avoid", S_TH),
Paragraph("Impact On", S_TH),
]
avoid_items = [
["Red meat (mutton, beef, pork)", "High purines; promotes systemic inflammation", "RA + Uric Acid"],
["Organ meats (liver, kidney, brain)", "Extremely high purines — strongest uric acid trigger", "Uric Acid + RA"],
["Alcohol (especially beer)", "Sharply raises uric acid; worsens RA disease activity", "RA + Uric Acid"],
["Sugary cold drinks & packaged juice", "Pro-inflammatory sugar load; worsens joint swelling", "RA + Spine"],
["Fried & ultra-processed foods", "Trans fats drive systemic inflammation", "RA + Spine"],
["Maida / white bread / refined carbs", "Spikes blood sugar → increases inflammatory markers", "RA"],
["Excess seafood (prawns, crab, shellfish)", "Very high purines — uric acid trigger", "Uric Acid"],
["Excess salt", "Worsens fluid retention and joint swelling", "RA + Spine"],
["Crash diets / extreme fasting", "Rapidly raises uric acid; weakens joints and immunity", "All Conditions"],
]
avoid_data = [avoid_headers]
for row in avoid_items:
avoid_data.append([
Paragraph(f"<b>{row[0]}</b>", S_TD),
Paragraph(row[1], S_TD),
Paragraph(row[2], S_TD_C),
])
cw_avoid = [5.5*cm, W-3.6*cm-5.5*cm-3*cm, 3*cm]
avoid_t = Table(avoid_data, colWidths=cw_avoid)
avoid_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), RED),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, RED_LT]),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#CCCCCC")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(avoid_t)
story.append(Spacer(1, 10))
# ═══ SECTION 3: EXERCISE PLAN ════════════════════════════════════
story.append(section_header("3. EXERCISE PLAN", bg=GREEN))
story.append(Spacer(1, 6))
story.append(Paragraph(
"Exercise is <b>strongly recommended</b> even with active RA (ACR 2022 Guidelines). Movement preserves "
"joint function and reduces pain. However, your cervical and lumbar disc protrusions require certain "
"movements to be avoided. Target: <b>150 min of aerobic exercise per week.</b>", S_BODY))
story.append(Spacer(1, 6))
# Phase 1
story.append(Paragraph("Phase 1 — Weeks 1 to 4: Gentle Start", S_SUBSECTION))
ex_left = [
Paragraph("<b>Morning Routine (20–25 min)</b>", style("EH", fontName="Helvetica-Bold", fontSize=9.5, textColor=TEAL)),
bullet("Warm water shower/soak on neck and lower back — 5 min to loosen stiffness"),
bullet("Deep breathing (Pranayama) — Anulom Vilom, Bhramari — 5 min"),
bullet("Chin tucks — pull chin straight back, hold 3 sec — 10 reps (safe for cervical discs)"),
bullet("Gentle lateral neck bend — ear toward shoulder, hold 5 sec — 5 each side (NO full neck rotations)"),
bullet("Shoulder rolls — forward and backward — 10 each"),
bullet("Wrist & finger exercises (crucial for RA): finger bends, fist squeeze, wrist circles — 10 reps each"),
Spacer(1, 4),
Paragraph("<b>Tip:</b> Soak hands in warm water before finger exercises to reduce morning stiffness.",
style("TIP", fontName="Helvetica-Oblique", fontSize=8.5, textColor=ORANGE, leftIndent=14)),
]
ex_right = [
Paragraph("<b>Evening Routine (20–30 min)</b>", style("EH2", fontName="Helvetica-Bold", fontSize=9.5, textColor=TEAL)),
bullet("Flat-surface walking with comfortable footwear — 20–30 min (start with 10 min, build up)"),
bullet("Pelvic tilts (lying on back, flat surface) — 10 reps"),
bullet("Knee-to-chest stretch — hold 20 sec, alternate legs — 5 each side"),
bullet("Partial bridge — raise buttocks slowly, hold 5 sec — 10 reps"),
bullet("Ankle pumps and leg raises — 10 reps (promotes circulation)"),
Spacer(1, 4),
Paragraph("<b>Phase 2 (from Week 5, if pain allows)</b>",
style("P2H", fontName="Helvetica-Bold", fontSize=9.5, textColor=GREEN)),
bullet("Swimming or water aerobics — BEST for RA + spondylosis (no joint impact)"),
bullet("Gentle yoga: Tadasana, Shavasana, Balasana (child's pose), low-height Bhujangasana"),
bullet("Stationary cycling (low resistance)"),
bullet("Target: 150 min aerobic exercise/week total"),
]
ex_t = Table([[ex_left, ex_right]], colWidths=[(W-3.6*cm)/2]*2)
ex_t.setStyle(TableStyle([
("VALIGN", (0,0), (-1,-1), "TOP"),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("BACKGROUND", (0,0), (-1,-1), GREEN_LT),
("BOX", (0,0), (-1,-1), 0.5, GREEN),
("LINEAFTER", (0,0), (0,0), 0.5, colors.HexColor("#CCCCCC")),
]))
story.append(ex_t)
story.append(Spacer(1, 10))
# ═══ SECTION 4: DO'S AND DON'TS ══════════════════════════════════
story.append(section_header("4. DO'S AND DON'TS"))
story.append(Spacer(1, 6))
dos_list = [
"Use a firm, supportive mattress — sleep on your back or side with a pillow between knees",
"Use a cervical/contoured orthopedic pillow for neck support while sleeping",
"Maintain good posture — ears directly above shoulders; keep back straight when sitting",
"Take short breaks every 30–45 min of desk work — stand and walk briefly",
"Use ergonomic chair with proper lumbar (lower back) support",
"Apply warm compress on stiff joints in the morning; cold pack after exercise-related swelling",
"Drink 3–4 litres of water daily",
"Get 15–20 min of morning sun exposure on arms/legs (Vitamin D for bone health)",
"Get 7–8 hours of quality sleep nightly — RA fatigue is real; sleep restores joints",
"Maintain healthy body weight — even 5 kg weight loss reduces joint load significantly",
"Track joint pain and swelling daily to identify flare triggers",
"See your rheumatologist every 3 months for RA monitoring and medication review",
"Cook with turmeric, ginger, and garlic every day as natural anti-inflammatories",
"Practice meditation or prayer for 10–15 min daily — stress worsens RA flares",
"Discuss Omega-3, Vitamin D3, Calcium supplements with your doctor",
]
donts_list = [
"Do NOT do heavy weight lifting or upper body resistance training — risks cervical disc injury",
"Do NOT do full neck rotations (360°) or neck extension backward — dangerous with your MRI findings",
"Do NOT do high-impact exercises — running on hard surfaces, jumping, contact sports",
"Do NOT sit or stand in one position for more than 45 minutes without moving",
"Do NOT sleep on your stomach — puts severe strain on cervical spine",
"Do NOT carry heavy bags on one shoulder — use both straps or a trolley",
"Do NOT look down at your phone for long periods ('text neck' worsens cervical spondylosis)",
"Do NOT do full sit-ups with spinal flexion — strains lumbar discs",
"Do NOT push through severe pain during exercise — rest and consult your doctor",
"Do NOT ignore hand/finger swelling or new numbness/tingling — signals RA flare or nerve compression",
"Do NOT smoke — smoking significantly worsens RA disease activity and cervical disc disease",
"Do NOT eat organ meats, excess red meat, alcohol, or shellfish — raises uric acid toward gout",
"Do NOT skip meals — low blood sugar increases inflammatory perception",
"Do NOT self-medicate with steroids or NSAIDs (ibuprofen, diclofenac) without doctor guidance",
"Do NOT follow crash diets or extreme fasting — weakens joints and spikes uric acid",
]
dos_col = [[Paragraph("<b>✔ DO'S</b>", style("DCH", fontName="Helvetica-Bold", fontSize=10.5, textColor=GREEN, alignment=TA_CENTER))]]
donts_col = [[Paragraph("<b>✘ DON'TS</b>", style("DNH", fontName="Helvetica-Bold", fontSize=10.5, textColor=RED, alignment=TA_CENTER))]]
for d in dos_list:
dos_col.append([do_item(d)])
for d in donts_list:
donts_col.append([dont_item(d)])
# Pad to equal length
while len(dos_col) < len(donts_col):
dos_col.append([Spacer(1,2)])
while len(donts_col) < len(dos_col):
donts_col.append([Spacer(1,2)])
dd_rows = [[dos_col[i][0], donts_col[i][0]] for i in range(len(dos_col))]
dd_t = Table(dd_rows, colWidths=[(W-3.6*cm)/2]*2)
dd_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,0), GREEN),
("BACKGROUND", (1,0), (1,0), RED),
("ROWBACKGROUNDS",(0,1), (0,-1), [GREEN_LT, WHITE]),
("ROWBACKGROUNDS",(1,1), (1,-1), [RED_LT, WHITE]),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("VALIGN", (0,0), (-1,-1), "TOP"),
("BOX", (0,0), (-1,-1), 0.5, colors.HexColor("#CCCCCC")),
("LINEAFTER", (0,0), (0,-1), 0.5, colors.HexColor("#CCCCCC")),
]))
story.append(dd_t)
story.append(Spacer(1, 10))
# ═══ SECTION 5: SUPPLEMENTS ══════════════════════════════════════
story.append(section_header("5. SUPPLEMENTS (Discuss with Your Doctor)", bg=ORANGE))
story.append(Spacer(1, 6))
supp_headers = [
Paragraph("Supplement", S_TH),
Paragraph("Typical Dose", S_TH),
Paragraph("Benefit", S_TH),
]
supps = [
["Omega-3 Fish Oil", "2–3 g/day (EPA+DHA)", "Reduces RA joint inflammation and morning stiffness"],
["Vitamin D3", "1000–2000 IU/day", "Bone health, immune modulation in RA, supports spine"],
["Calcium", "500–1000 mg/day", "Bone health — especially important if on steroids"],
["Turmeric / Curcumin extract", "500 mg twice daily", "Natural anti-inflammatory; supports joint health"],
["Vitamin C (amla preferred)", "High dietary intake", "Helps uric acid excretion; antioxidant for joints"],
]
supp_data = [supp_headers]
for row in supps:
supp_data.append([Paragraph(f"<b>{row[0]}</b>", S_TD), Paragraph(row[1], S_TD_C), Paragraph(row[2], S_TD)])
supp_t = Table(supp_data, colWidths=[4.5*cm, 3.5*cm, W-3.6*cm-4.5*cm-3.5*cm])
supp_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), ORANGE),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, ORANGE_LT]),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#CCCCCC")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(supp_t)
story.append(Spacer(1, 10))
# ═══ SECTION 6: FOLLOW-UP ════════════════════════════════════════
story.append(section_header("6. MEDICAL FOLLOW-UP SCHEDULE"))
story.append(Spacer(1, 6))
fu_headers = [
Paragraph("Appointment", S_TH),
Paragraph("Frequency", S_TH),
Paragraph("Purpose", S_TH),
]
fu_items = [
["Rheumatologist", "Every 3 months", "RA monitoring, DMARD/biologic medication adjustment"],
["Repeat Anti-CCP + RF", "After 6 months of treatment", "Assess treatment response for RA"],
["Uric Acid blood test", "Every 3 months", "Currently borderline — diet alone may normalize it"],
["MRI Cervical Spine", "Repeat in 12 months", "Or earlier if numbness/weakness in arms/hands worsens"],
["Physiotherapy", "2–3 sessions/week initially", "Supervised exercises for cervical disc disease + RA"],
["Eye examination", "Yearly", "RA medications (e.g., hydroxychloroquine) need eye monitoring"],
]
fu_data = [fu_headers]
for row in fu_items:
fu_data.append([Paragraph(f"<b>{row[0]}</b>", S_TD), Paragraph(row[1], S_TD_C), Paragraph(row[2], S_TD)])
fu_t = Table(fu_data, colWidths=[4*cm, 4*cm, W-3.6*cm-4*cm-4*cm])
fu_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), TEAL),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, TEAL_LIGHT]),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#CCCCCC")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(fu_t)
story.append(Spacer(1, 12))
# ═══ FOOTER ══════════════════════════════════════════════════════
story.append(HRFlowable(width="100%", thickness=0.8, color=TEAL))
story.append(Spacer(1, 4))
story.append(Paragraph(
"Sources: 2022 ACR Guidelines for RA Exercise & Diet (PMID: 37227071) • "
"Firestein & Kelley's Textbook of Rheumatology • Harrison's Principles of Internal Medicine 22E • "
"Robbins & Kumar Pathology",
S_FOOTER))
story.append(Spacer(1, 3))
story.append(Paragraph(
"This document is for informational and lifestyle support purposes only. "
"Always consult your treating physician before making changes to your medication or exercise regimen.",
S_FOOTER))
# ── Build PDF ─────────────────────────────────────────────────────
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /home/daytona/workspace/kalipada-health-plan && python generate_pdf.py 2>&1
ls -lh /home/daytona/workspace/kalipada-health-plan/Kalipada_Health_Plan.pdf
Kalipada Health Plan
PDF Document · PDF