Exercise prescription for obesity reference Acsm guidelines recent edition

Reading File
Searching PubMed

"exercise prescription" AND "obesity" AND "ACSM"

Searching the Web

ACSM guidelines exercise prescription obesity 2022 2023 2024 FITT principle

Finding Sources
Finding Sources
Searching PubMed

"exercise" AND "obesity" AND "weight loss"

Finding Sources
Finding Sources
Reading Web Page

https://www.chp.gov.hk/archive/epp/files/DoctorsHanbook_ch10…

Reading File
Searching the Web

ACSM 11th edition exercise prescription overweight obesity FITT-VP recommendations 2022

Reading Article

PMID: 39724371

Reading Web Page

https://dokumen.pub/acsms-guidelines-for-exercise-testing-an…

Finding Sources
I now have comprehensive information to provide a thorough, well-sourced answer. Let me compile it:

ACSM Exercise Prescription for Overweight and Obesity

The following is based on ACSM's Guidelines for Exercise Testing and Prescription, 11th Edition (Liguori, 2022) - the most recent major edition - supplemented by the 2018 Physical Activity Guidelines for Americans (which are fully integrated into it), and current evidence.

Goals of Exercise in Obesity

Exercise serves multiple purposes beyond weight loss:
  • Weight loss (modest with exercise alone; potentiated by diet)
  • Prevention of weight regain after loss
  • Reduction of CVD risk, insulin resistance, dyslipidemia, and hypertension independent of weight loss
  • Improvement in cardiorespiratory fitness (CRF) - which is itself a strong predictor of mortality

Pre-Exercise Evaluation

  • Screen for comorbidities (T2DM, HTN, OSA, osteoarthritis, dyslipidemia) that may modify exercise tolerance
  • Graded exercise testing is not routinely required for individuals starting moderate-intensity activity, but is indicated if significant cardiovascular symptoms are present
  • BMI >35 kg/m²: weight-bearing activity may be limited by joint pain - non-weight-bearing options should be considered

FITT-VP Aerobic Exercise Prescription

This is the core of ACSM's approach:
FITT ComponentRecommendation
Frequency≥5 days/week (to maximize total caloric expenditure)
IntensityModerate (40-59% HRR or VO₂R; RPE 12-13/20) initially; progress to vigorous (60-89% HRR) as tolerated
Time (Duration)Initially 30 min/day; progress toward 150-250 min/week for health benefits; >250 min/week for clinically significant weight loss
TypeLarge muscle group, rhythmic aerobic activity: walking (especially for deconditioned/very obese), cycling, swimming, water aerobics
Volume≥2,000 kcal/week energy expenditure from PA to prevent weight regain
ProgressionGradual increase - begin with 10-20 min every other day in week 1-2; increase by no more than 10% per week

Key Volume Thresholds (ACSM 11th Ed + 2018 PAG):

Weekly VolumeGoal
150 min/week moderateMinimum health benefits
150-250 min/weekSome weight loss (modest, ~2-3 kg)
>250-300 min/weekClinically significant weight loss (~5-7.5 kg)
200-300 min/weekPrevention of weight regain after loss
60-90 min/dayMaintenance after significant prior weight loss (NWCR data)
A 2024 dose-response meta-analysis in JAMA Network Open (116 RCTs, n=6,880) confirmed this linearity: each additional 30 min/week of aerobic exercise was associated with 0.52 kg weight loss, 0.56 cm waist reduction, and 0.37% body fat reduction; effects plateaued beyond ~300 min/week. Clinically important waist and fat reductions occurred at ≥150 min/week at moderate-to-vigorous intensity [PMID: 39724371].

FITT Resistance Training Prescription

ACSM includes resistance training as an adjunct to aerobic exercise. It has modest direct effects on weight loss but preserves lean mass during caloric restriction:
ComponentRecommendation
Frequency2-3 days/week (non-consecutive)
IntensityModerate: 60-70% 1RM; beginners may start at 40-50% 1RM
Time2-4 sets of 8-12 repetitions per exercise
TypeMajor muscle groups (8-10 exercises); machines preferred initially for safety; progress to free weights
Note: Resistance training alone has minimal impact on total caloric expenditure and should not replace aerobic training for weight management purposes.

FITT Flexibility Prescription

ComponentRecommendation
Frequency≥2-3 days/week (daily preferred)
IntensityMild discomfort at end-range
TimeHold static stretches 10-30 sec; 2-4 reps per muscle group
TypeStatic, dynamic stretching; yoga may be beneficial

Behavioral & Practical Considerations

  • Sedentary start: Begin with 10-20 min/day, every other day; increase gradually over 4-12 weeks before incorporating vigorous activity
  • Very obese (BMI >35): Vigorous exercise is generally not appropriate initially due to joint stress and risk. Start with non-weight-bearing activities (cycling, pool-based)
  • Walking is the most accessible and appropriate initial activity for most obese patients
  • HIIT: The ACSM 11th edition acknowledges HIIT as a time-efficient alternative; evidence supports it for CRF improvement in obesity, though adherence and injury risk must be weighed
  • Intermittent exercise bouts: Sessions as short as 10 minutes each can be accumulated to meet daily targets - equally effective for weight management
  • Combination (aerobic + resistance): Superior to either modality alone for improving body composition and metabolic risk factors

Energy Balance Context

  • 1 lb (~0.45 kg) of fat ≈ 3,500 kcal deficit
  • Exercise alone creates modest deficits; combined with caloric restriction (500 kcal/day reduction), produces ~1 lb/week weight loss
  • Long-term weight maintenance requires sustained high volumes of PA (≥200-300 min/week), dietary adherence, and behavioral strategies

Summary Table: ACSM FITT-VP for Obesity

AerobicResistanceFlexibility
F≥5 days/week2-3 days/week≥2-3 days/week
IModerate → Vigorous60-70% 1RMMild stretch
T30-60 min/session2-4 sets × 8-12 reps10-30 s hold
TWalk, cycle, swimMulti-joint machines/free wtStatic/dynamic
V>250 min/week for weight loss--
P+10%/week gradually--

Sources:

Generate a patient handout template for implementing this FITT prescription

Reading File
Running Command

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

Running Command

mkdir -p /tmp/workspace/obesity-handout && python3 << 'EOF' from docx import Document from docx.shared import Pt, Inches, RGBColor, Cm from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.enum.table import WD_TABLE_ALIGNMENT, WD_ALIGN_VERTICAL from docx.oxml.ns import qn from docx.oxml import OxmlElement import copy doc = Document() # ── Page margins ────────────────────────────────────────────────────────────── section = doc.sections[0] section.top_margin = Cm(1.8) section.bottom_margin = Cm(1.8) section.left_margin = Cm(2.0) section.right_margin = Cm(2.0) # ── Default body font ───────────────────────────────────────────────────────── normal = doc.styles["Normal"] normal.font.name = "Calibri" normal.font.size = Pt(10.5) # ── Helper: shade a table row/cell ──────────────────────────────────────────── def shade_cell(cell, hex_color): tc = cell._tc tcPr = tc.get_or_add_tcPr() shd = OxmlElement("w:shd") shd.set(qn("w:val"), "clear") shd.set(qn("w:color"), "auto") shd.set(qn("w:fill"), hex_color) tcPr.append(shd) def set_cell_border(cell, **kwargs): """kwargs: top, bottom, left, right -> (size, color) tuples""" tc = cell._tc tcPr = tc.get_or_add_tcPr() tcBorders = OxmlElement("w:tcBorders") for side, (sz, color) in kwargs.items(): el = OxmlElement(f"w:{side}") el.set(qn("w:val"), "single") el.set(qn("w:sz"), str(sz)) el.set(qn("w:space"), "0") el.set(qn("w:color"), color) tcBorders.append(el) tcPr.append(tcBorders) def add_run_bold(para, text, size=None, color=None): run = para.add_run(text) run.bold = True if size: run.font.size = Pt(size) if color: run.font.color.rgb = RGBColor.from_string(color) return run def add_run_plain(para, text, size=None, italic=False): run = para.add_run(text) if size: run.font.size = Pt(size) if italic: run.italic = True return run # ══════════════════════════════════════════════════════════════════════════════ # HEADER BANNER # ══════════════════════════════════════════════════════════════════════════════ banner_tbl = doc.add_table(rows=1, cols=1) banner_tbl.alignment = WD_TABLE_ALIGNMENT.CENTER cell = banner_tbl.cell(0, 0) shade_cell(cell, "1A5276") # dark navy cell.width = Inches(6.5) p = cell.paragraphs[0] p.alignment = WD_ALIGN_PARAGRAPH.CENTER p.paragraph_format.space_before = Pt(6) p.paragraph_format.space_after = Pt(6) r = p.add_run("YOUR EXERCISE PLAN FOR WEIGHT MANAGEMENT") r.bold = True r.font.size = Pt(15) r.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF) sub_p = cell.add_paragraph() sub_p.alignment = WD_ALIGN_PARAGRAPH.CENTER sub_p.paragraph_format.space_after = Pt(6) sr = sub_p.add_run("Based on ACSM Guidelines for Exercise Testing and Prescription, 11th Edition") sr.font.size = Pt(9) sr.font.color.rgb = RGBColor(0xBD, 0xD7, 0xEE) sr.italic = True doc.add_paragraph() # spacer # ── Patient / Clinician info block ──────────────────────────────────────────── info_tbl = doc.add_table(rows=2, cols=4) info_tbl.style = "Table Grid" labels = ["Patient Name:", "Date:", "Clinician:", "Review Date:"] for i, lbl in enumerate(labels): cell = info_tbl.cell(0, i) shade_cell(cell, "EBF5FB") p = cell.paragraphs[0] p.paragraph_format.space_before = Pt(3) p.paragraph_format.space_after = Pt(3) add_run_bold(p, lbl, size=9) for i in range(4): cell = info_tbl.cell(1, i) p = cell.paragraphs[0] p.paragraph_format.space_before = Pt(10) p.paragraph_format.space_after = Pt(3) add_run_plain(p, "_______________________", size=9) doc.add_paragraph() # ══════════════════════════════════════════════════════════════════════════════ # SECTION HELPER # ══════════════════════════════════════════════════════════════════════════════ def section_heading(title, hex_color="1F618D"): p = doc.add_paragraph() p.paragraph_format.space_before = Pt(8) p.paragraph_format.space_after = Pt(3) r = p.add_run(f" {title} ") r.bold = True r.font.size = Pt(11.5) r.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF) # background highlight via XML shading on the run's rPr rPr = r._r.get_or_add_rPr() highlight = OxmlElement("w:highlight") highlight.set(qn("w:val"), "darkBlue") # use character shading instead shd = OxmlElement("w:shd") shd.set(qn("w:val"), "clear") shd.set(qn("w:color"), "auto") shd.set(qn("w:fill"), hex_color) rPr.append(shd) return p def bullet(text, bold_prefix=None, indent=0): p = doc.add_paragraph(style="List Bullet") p.paragraph_format.left_indent = Inches(0.2 + indent * 0.25) p.paragraph_format.space_after = Pt(2) p.paragraph_format.space_before = Pt(1) if bold_prefix: rb = p.add_run(bold_prefix) rb.bold = True rb.font.size = Pt(10.5) add_run_plain(p, text, size=10.5) else: add_run_plain(p, text, size=10.5) # ══════════════════════════════════════════════════════════════════════════════ # 1. YOUR EXERCISE GOALS # ══════════════════════════════════════════════════════════════════════════════ section_heading("1. YOUR EXERCISE GOALS", "1A5276") goals_tbl = doc.add_table(rows=1, cols=3) goals_tbl.style = "Table Grid" goals_tbl.alignment = WD_TABLE_ALIGNMENT.CENTER goal_data = [ ("Short-Term\n(Weeks 1-4)", "Build to 30 min/day, 5 days/week of moderate activity"), ("Mid-Term\n(Weeks 5-12)", "Progress to 150-250 min/week; add 2x/week strength training"), ("Long-Term\n(>3 months)", "Reach >250 min/week; target clinically significant weight loss"), ] goal_colors = ["D6EAF8", "D1F2EB", "FEF9E7"] for i, (title, desc) in enumerate(goal_data): c = goals_tbl.cell(0, i) shade_cell(c, goal_colors[i]) p = c.paragraphs[0] p.alignment = WD_ALIGN_PARAGRAPH.CENTER p.paragraph_format.space_before = Pt(4) add_run_bold(p, title, size=9.5, color="1A5276") p2 = c.add_paragraph() p2.paragraph_format.space_after = Pt(4) add_run_plain(p2, desc, size=9) doc.add_paragraph() # ══════════════════════════════════════════════════════════════════════════════ # 2. FITT-VP AEROBIC EXERCISE TABLE # ══════════════════════════════════════════════════════════════════════════════ section_heading("2. AEROBIC EXERCISE (Cardio) — FITT-VP Prescription", "1F618D") note_p = doc.add_paragraph() note_p.paragraph_format.space_after = Pt(4) add_run_plain(note_p, "Aerobic exercise is your primary tool for burning calories and improving heart health.", size=10, italic=True) ae_tbl = doc.add_table(rows=7, cols=3) ae_tbl.style = "Table Grid" ae_tbl.alignment = WD_TABLE_ALIGNMENT.CENTER ae_headers = ["FITT Component", "Prescription", "What This Means For You"] ae_rows = [ ("F Frequency", "≥ 5 days per week", "Aim for most days of the week. Short sessions still count!"), ("I Intensity", "Moderate (start) → Vigorous (progress)\nModerate = you can talk but not sing\nVigorous = you can only say a few words at a time", "Use the 'talk test':\n• Moderate: brisk walk, easy cycling\n• Vigorous: jogging, fast cycling\nStart moderate for 4-12 weeks before adding vigorous effort"), ("T Time", "Start: 30 min/day\nGoal for weight loss: 50-60 min/day\n(can split into 10-min bouts)", "You do NOT have to exercise all at once.\n3 x 10-minute walks = 30 minutes!\nWork toward 250+ min/week for meaningful weight loss"), ("T Type", "• Walking (best starting choice)\n• Cycling (stationary or outdoor)\n• Swimming / water aerobics\n• Elliptical trainer", "Choose activities you enjoy — consistency matters most.\nLow-impact options (cycling, swimming) are ideal if joints are painful"), ("V Volume", "Energy goal: ~2,000 kcal/week\n• 150 min/week = health benefits\n• 250-300 min/week = significant weight loss", "A 30-min brisk walk burns ~150-200 kcal.\nCombining exercise with a 500 kcal/day dietary reduction targets ~1 lb/week loss"), ("P Progression", "Increase duration by ~10% per week\nDo not increase frequency, intensity, AND duration at the same time", "Be patient — gradual progression prevents injury.\nWeeks 1-2: 10-20 min every other day\nWeek 3+: add 5 min every 1-2 weeks"), ] # Header row for j, h in enumerate(ae_headers): c = ae_tbl.cell(0, j) shade_cell(c, "1F618D") p = c.paragraphs[0] p.alignment = WD_ALIGN_PARAGRAPH.CENTER p.paragraph_format.space_before = Pt(3) p.paragraph_format.space_after = Pt(3) r = p.add_run(h) r.bold = True r.font.size = Pt(10) r.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF) row_colors = ["EBF5FB", "D6EAF8", "EBF5FB", "D6EAF8", "EBF5FB", "D6EAF8"] for i, (comp, presc, meaning) in enumerate(ae_rows): row = ae_tbl.rows[i+1] shade_cell(row.cells[0], row_colors[i]) shade_cell(row.cells[1], "FDFEFE") shade_cell(row.cells[2], "F0FFF4" if i % 2 == 0 else "FAFAFA") p0 = row.cells[0].paragraphs[0] p0.paragraph_format.space_before = Pt(3) p0.paragraph_format.space_after = Pt(3) r0 = p0.add_run(comp) r0.bold = True r0.font.size = Pt(10) r0.font.color.rgb = RGBColor(0x1A, 0x52, 0x76) p1 = row.cells[1].paragraphs[0] p1.paragraph_format.space_before = Pt(3) p1.paragraph_format.space_after = Pt(3) add_run_plain(p1, presc, size=9.5) p2 = row.cells[2].paragraphs[0] p2.paragraph_format.space_before = Pt(3) p2.paragraph_format.space_after = Pt(3) add_run_plain(p2, meaning, size=9.5) doc.add_paragraph() # ══════════════════════════════════════════════════════════════════════════════ # 3. RESISTANCE (STRENGTH) TRAINING # ══════════════════════════════════════════════════════════════════════════════ section_heading("3. RESISTANCE (STRENGTH) TRAINING", "117A65") st_note = doc.add_paragraph() st_note.paragraph_format.space_after = Pt(3) add_run_plain(st_note, "Strength training preserves muscle mass during weight loss and improves metabolic health.", size=10, italic=True) st_tbl = doc.add_table(rows=5, cols=3) st_tbl.style = "Table Grid" st_headers = ["Component", "Prescription", "Practical Tip"] st_rows = [ ("Frequency", "2-3 days/week\n(non-consecutive days)", "e.g., Monday, Wednesday, Friday"), ("Intensity", "Moderate: 60-70% of maximum effort\nBeginners: Start lighter (40-50%)", "You should be able to complete all reps but feel tired by the last 2-3"), ("Time / Sets", "2-4 sets of 8-12 repetitions\nper exercise\nRest 60-90 sec between sets", "Start with 2 sets; increase to 3-4 sets after 4 weeks"), ("Type / Exercises", "8-10 exercises covering all major\nmuscle groups:\nLegs, back, chest, shoulders, arms, core", "Machines are safer for beginners.\nExamples: leg press, chest press, lat pulldown, seated row, shoulder press, plank"), ] for j, h in enumerate(st_headers): c = st_tbl.cell(0, j) shade_cell(c, "117A65") p = c.paragraphs[0] p.alignment = WD_ALIGN_PARAGRAPH.CENTER p.paragraph_format.space_before = Pt(3) p.paragraph_format.space_after = Pt(3) r = p.add_run(h) r.bold = True; r.font.size = Pt(10) r.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF) for i, (comp, presc, tip) in enumerate(st_rows): row = st_tbl.rows[i+1] col_colors = ["D5F5E3", "FDFEFE", "EAFAF1"] for ci, hc in enumerate(col_colors): shade_cell(row.cells[ci], hc if i % 2 == 0 else "F9FEFE") p0 = row.cells[0].paragraphs[0] p0.paragraph_format.space_before = Pt(3) r0 = p0.add_run(comp) r0.bold = True; r0.font.size = Pt(10) r0.font.color.rgb = RGBColor(0x11, 0x7A, 0x65) for ci, txt in [(1, presc), (2, tip)]: p = row.cells[ci].paragraphs[0] p.paragraph_format.space_before = Pt(3) p.paragraph_format.space_after = Pt(3) add_run_plain(p, txt, size=9.5) doc.add_paragraph() # ══════════════════════════════════════════════════════════════════════════════ # 4. WEEKLY EXERCISE LOG (fillable template) # ══════════════════════════════════════════════════════════════════════════════ section_heading("4. WEEKLY EXERCISE LOG (Fill in each day)", "6E2F7A") log_p = doc.add_paragraph() log_p.paragraph_format.space_after = Pt(4) add_run_plain(log_p, "Track your sessions below. Bring this to your next appointment.", size=10, italic=True) days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "WEEKLY TOTAL"] log_tbl = doc.add_table(rows=len(days)+1, cols=5) log_tbl.style = "Table Grid" log_headers = ["Day", "Activity / Type", "Duration (min)", "Intensity\n(Easy/Moderate/Hard)", "How Did You Feel?"] for j, h in enumerate(log_headers): c = log_tbl.cell(0, j) shade_cell(c, "6E2F7A") p = c.paragraphs[0] p.alignment = WD_ALIGN_PARAGRAPH.CENTER p.paragraph_format.space_before = Pt(3) p.paragraph_format.space_after = Pt(3) r = p.add_run(h) r.bold = True; r.font.size = Pt(9.5) r.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF) for i, day in enumerate(days): row = log_tbl.rows[i+1] is_total = (day == "WEEKLY TOTAL") bg = "F5EEF8" if i % 2 == 0 else "FDFEFE" if is_total: bg = "EBF5FB" shade_cell(row.cells[0], bg) p = row.cells[0].paragraphs[0] p.paragraph_format.space_before = Pt(3) p.paragraph_format.space_after = Pt(3) r = p.add_run(day) r.bold = is_total; r.font.size = Pt(9.5) if is_total: r.font.color.rgb = RGBColor(0x1A, 0x52, 0x76) for ci in range(1, 5): shade_cell(row.cells[ci], bg) p2 = row.cells[ci].paragraphs[0] p2.paragraph_format.space_before = Pt(12) p2.paragraph_format.space_after = Pt(3) if is_total and ci == 2: add_run_bold(p2, "_______ min", size=9.5, color="1A5276") else: add_run_plain(p2, "", size=9.5) doc.add_paragraph() # ══════════════════════════════════════════════════════════════════════════════ # 5. WEEKLY VOLUME TARGETS (colour-coded progress bar style) # ══════════════════════════════════════════════════════════════════════════════ section_heading("5. HOW MUCH IS ENOUGH? Weekly Volume Quick Reference", "7D6608") vol_tbl = doc.add_table(rows=1, cols=4) vol_tbl.style = "Table Grid" vol_data = [ ("< 150 min/week", "Sedentary baseline\nSome health benefit begins", "E74C3C", "FDEDEC"), ("150-250 min/week", "Minimum for health.\nModest weight loss (1-3 kg)", "E67E22", "FEF9E7"), ("250-300 min/week", "TARGET for significant\nweight loss (5-7 kg)", "27AE60", "EAFAF1"), (">300 min/week\n+ diet change", "Maximum benefit.\nWeight maintenance after loss", "1A5276", "EBF5FB"), ] for i, (label, desc, hdr_col, bg_col) in enumerate(vol_data): c = vol_tbl.cell(0, i) shade_cell(c, bg_col) p = c.paragraphs[0] p.alignment = WD_ALIGN_PARAGRAPH.CENTER p.paragraph_format.space_before = Pt(4) r = p.add_run(label) r.bold = True; r.font.size = Pt(9.5) r.font.color.rgb = RGBColor.from_string(hdr_col) p2 = c.add_paragraph() p2.alignment = WD_ALIGN_PARAGRAPH.CENTER p2.paragraph_format.space_after = Pt(4) add_run_plain(p2, desc, size=9) doc.add_paragraph() # ══════════════════════════════════════════════════════════════════════════════ # 6. INTENSITY GUIDE (RPE scale simplified) # ══════════════════════════════════════════════════════════════════════════════ section_heading("6. HOW HARD SHOULD I EXERCISE? (Rate of Perceived Exertion)", "1F618D") rpe_tbl = doc.add_table(rows=1, cols=5) rpe_tbl.style = "Table Grid" rpe_data = [ ("1-4\nVery Easy", "Sitting, slow walking\nNo effort", "ABEBC6", "You can sing"), ("5-6\nModerate\n(TARGET start)", "Brisk walking\nEasy cycling", "F9E79F", "You can talk\nbut not sing"), ("7-8\nVigorous\n(TARGET progress)", "Jogging, fast cycling\nAerobic classes", "FAD7A0", "Short sentences\nonly"), ("9\nVery Hard", "Running, fast swimming\nHIIT intervals", "F1948A", "Cannot speak\ncomfortably"), ("10\nMaximal", "All-out sprint\n(not for obesity Rx)", "E74C3C", "Cannot speak"), ] for i, (level, eg, color, talk) in enumerate(rpe_data): c = rpe_tbl.cell(0, i) shade_cell(c, color) p = c.paragraphs[0] p.alignment = WD_ALIGN_PARAGRAPH.CENTER p.paragraph_format.space_before = Pt(4) r = p.add_run(level) r.bold = True; r.font.size = Pt(9) p2 = c.add_paragraph(); p2.alignment = WD_ALIGN_PARAGRAPH.CENTER add_run_plain(p2, eg, size=8.5) p3 = c.add_paragraph(); p3.alignment = WD_ALIGN_PARAGRAPH.CENTER p3.paragraph_format.space_after = Pt(4) add_run_plain(p3, f"Talk test: {talk}", size=8, italic=True) doc.add_paragraph() # ══════════════════════════════════════════════════════════════════════════════ # 7. SAFETY & WHEN TO STOP # ══════════════════════════════════════════════════════════════════════════════ section_heading("7. SAFETY: STOP EXERCISING AND SEEK HELP IF YOU EXPERIENCE...", "922B21") warn_tbl = doc.add_table(rows=2, cols=3) warn_tbl.style = "Table Grid" warnings = [ ("Chest pain or pressure", "Severe shortness of breath", "Dizziness or fainting"), ("Irregular heartbeat / palpitations", "Severe joint or muscle pain", "Nausea or vomiting during exercise"), ] for ri, row_data in enumerate(warnings): for ci, text in enumerate(row_data): c = warn_tbl.cell(ri, ci) shade_cell(c, "FDEDEC" if ri == 0 else "FEF9E7") p = c.paragraphs[0] p.paragraph_format.space_before = Pt(3) p.paragraph_format.space_after = Pt(3) r = p.add_run("⚠ " + text) r.font.size = Pt(9.5) if ri == 0: r.bold = True doc.add_paragraph() # ══════════════════════════════════════════════════════════════════════════════ # 8. HELPFUL TIPS # ══════════════════════════════════════════════════════════════════════════════ section_heading("8. TIPS FOR SUCCESS", "1A5276") tips = [ ("Start low, go slow.", " Even 10 minutes counts. You will build up gradually over weeks."), ("Exercise is NOT optional when managing weight.", " Diet + exercise together are far more effective than either alone."), ("Choose activities you enjoy.", " You are more likely to stick with something you find fun or social."), ("Break sessions up.", " Three 10-minute walks equal 30 minutes of exercise — same benefit."), ("Reduce sitting time.", " Stand up and move for 2-3 minutes every 30 minutes at work or home."), ("Bring a friend or join a class.", " Social support dramatically improves exercise adherence."), ("Set small weekly goals.", " Focus on consistency, not perfection."), ("BMI > 35 or joint pain?", " Start with non-weight-bearing exercise: swimming, water aerobics, seated cycling."), ] for bold_t, plain_t in tips: bullet("", bold_prefix=bold_t + plain_t) doc.add_paragraph() # ══════════════════════════════════════════════════════════════════════════════ # FOOTER NOTE # ══════════════════════════════════════════════════════════════════════════════ footer_tbl = doc.add_table(rows=1, cols=1) footer_tbl.alignment = WD_TABLE_ALIGNMENT.CENTER fc = footer_tbl.cell(0, 0) shade_cell(fc, "EBF5FB") fp = fc.paragraphs[0] fp.alignment = WD_ALIGN_PARAGRAPH.CENTER fp.paragraph_format.space_before = Pt(4) fp.paragraph_format.space_after = Pt(4) fr = fp.add_run( "Reference: ACSM's Guidelines for Exercise Testing and Prescription, 11th Ed. (Liguori, 2022) | " "This handout is a clinical guide — always consult your healthcare provider before starting a new exercise programme." ) fr.font.size = Pt(7.5) fr.italic = True fr.font.color.rgb = RGBColor(0x5D, 0x6D, 0x7E) # ══════════════════════════════════════════════════════════════════════════════ # SAVE # ══════════════════════════════════════════════════════════════════════════════ out_path = "/tmp/workspace/obesity-handout/ACSM_FITT_Obesity_Patient_Handout.docx" doc.save(out_path) print(f"Saved: {out_path}") EOF

Running Command

python3 -c " from docx import Document doc = Document('/tmp/workspace/obesity-handout/ACSM_FITT_Obesity_Patient_Handout.docx') print('Paragraphs:', len(doc.paragraphs)) print('Tables:', len(doc.tables)) for i, t in enumerate(doc.tables): print(f' Table {i}: {len(t.rows)} rows x {len(t.columns)} cols') print('File OK') "

The document is valid and complete. Here's your patient handout:

ACSM FITT Obesity Patient Handout

Word Document · DOCX


The handout is a fully formatted, colour-coded Word document containing 8 sections:
SectionContents
Header bannerTitle + ACSM 11th Ed. reference
Patient info blockFillable fields: name, date, clinician, review date
1. Exercise Goals3-column colour table: short / mid / long-term milestones
2. Aerobic FITT-VP TableAll 6 components (F/I/T/T/V/P) with prescription + plain-language explanation
3. Resistance Training TableFrequency, intensity, sets/reps, exercise examples
4. Weekly Exercise Log7-day fillable table with weekly total field - print and fill in by hand or digitally
5. Weekly Volume ReferenceTraffic-light colour bar: <150 / 150-250 / 250-300 / >300 min/week
6. RPE Intensity GuideSimplified Borg scale with talk-test cues, colour-coded by effort level
7. Safety / Stop SignsRed-highlighted warning symptoms requiring immediate cessation
8. Tips for Success8 practical adherence strategies including guidance for BMI >35 and joint pain
The footer cites ACSM 11th Edition and includes a standard clinical disclaimer. The document is fully editable - you can swap in your clinic name, logo, or branding.

Diet plan for obesity

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