Evidence for prehabilitation starting before chemotherapy

Reading File
Finding Sources
Searching PubMed

prehabilitation AND chemotherapy

Searching the Web

prehabilitation before chemotherapy systematic review cancer guidelines exercise nutrition psychological support

Reading Article

PMID: 40867298

Reading Article

PMID: 39438910

Reading Article

PMID: 39423256

Reading Article

PMID: 38219003

Reading Web Page

https://www.macmillan.org.uk/dfsmedia/1a6f23537f7f4519bb0cf1…

Evidence supports starting prehabilitation as early as possible after diagnosis, including before the first chemotherapy cycle, but direct evidence for a distinct pre-chemotherapy-only programme remains limited. Most evidence evaluates programmes that begin before or at the start of neoadjuvant chemotherapy and continue through it.

What the evidence shows

  • A 2024 systematic review and meta-analysis of cancer prehabilitation RCTs found improved functional capacity and mental-health outcomes, including a mean improvement in 6-minute walk distance of 38.5 m, although studies were heterogeneous and often at high risk of bias. Much of this literature is perioperative rather than chemotherapy-specific. Systematic review
  • In breast cancer during neoadjuvant chemotherapy, the PREOptimize RCT (64 participants) used Nordic walking, resistance exercise and education. Compared with usual care, prehabilitation improved functional capacity by 67.6 m on walk testing, reduced cancer-related fatigue, and helped preserve arm function before surgery. PREOptimize trial
  • A feasibility RCT in 72 women receiving neoadjuvant chemotherapy for non-metastatic breast cancer tested individualized exercise, dietetic support and stress-management counselling. It was feasible, with no intervention-related adverse events, and showed favourable signals for quality of life, fatigue, physical activity and post-chemotherapy walk performance. It was not powered to establish definitive clinical benefit. Feasibility RCT
  • The most focused recent review found only 10 heterogeneous studies and concluded that there are no formal, chemotherapy-specific prehabilitation guidelines yet. It supports the pre-treatment interval as a reasonable opportunity to assess and address baseline fitness, nutrition, distress and smoking, but does not establish one standard protocol or prove improved chemotherapy completion or survival. 2025 evidence review

Practical interpretation

Starting before chemotherapy is reasonable when it does not delay cancer treatment, particularly for patients with low physical reserve, sarcopenia or weight loss, poor diet/intake, inactivity, smoking, anxiety/depression, or a planned operation after neoadjuvant therapy.
A sensible programme is individualized and multimodal:
  1. Exercise: aerobic activity plus progressive resistance work, adapted to baseline function and treatment-related risks.
  2. Nutrition: early dietitian assessment for weight loss, poor intake, dysphagia, GI symptoms or sarcopenia.
  3. Psychological and behavioural support: distress management, sleep, smoking cessation and alcohol reduction.
  4. Baseline measures: performance status, functional test such as 6-minute walk or sit-to-stand, weight trajectory, nutrition screening and patient-reported fatigue/distress.
Cancer prehabilitation guidance recommends screening from diagnosis, typically using the 4-6 week interval before treatment when available, and notes that programmes can still be useful even when started about two weeks before treatment. Macmillan guidance

Bottom line

Prehabilitation should be considered before chemotherapy as supportive care, especially in higher-risk patients, but it should be framed as a low-risk strategy to preserve function, nutritional status and wellbeing rather than as a proven method to improve tumour response, survival or chemotherapy delivery. The strongest direct trial signals currently come from breast cancer neoadjuvant settings; evidence across other tumour types and for a short pre-first-cycle intervention remains insufficient.

Make a quick-reference PDF for clinical practice

Reading File
Reading File
Browsing Directory

~/

Running Command

mkdir -p "/tmp/workspace/prehabilitation_quick_reference/src" "/tmp/workspace/prehabilitation_quick_reference/output" && python -c "import reportlab; print(reportlab.Version)"

Writing File

~/prehabilitation_quick_reference/src/create_pdf.py

from reportlab.lib import colors
from reportlab.lib.enums import TA_LEFT, TA_CENTER
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import mm
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, KeepTogether
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.pdfmetrics import stringWidth
from reportlab.pdfgen import canvas
from reportlab.lib.colors import HexColor
from reportlab.pdfbase.pdfmetrics import registerFontFamily
from reportlab.lib import utils

OUT = '/tmp/workspace/prehabilitation_quick_reference/output/Prehabilitation_Before_Chemotherapy_Quick_Reference.pdf'

NAVY = HexColor('#123B52')
TEAL = HexColor('#007C7A')
PALE_TEAL = HexColor('#E7F4F2')
PALE_BLUE = HexColor('#EAF2F8')
GOLD = HexColor('#D98B22')
PALE_GOLD = HexColor('#FFF3DF')
INK = HexColor('#18252D')
MUTED = HexColor('#52636E')
LINE = HexColor('#C8D4D9')
RED = HexColor('#A52A2A')
PALE_RED = HexColor('#FBEAEC')

styles = getSampleStyleSheet()
styles.add(ParagraphStyle(name='TitleQR', parent=styles['Title'], fontName='Helvetica-Bold', fontSize=19, leading=22, textColor=colors.white, spaceAfter=0))
styles.add(ParagraphStyle(name='SubQR', parent=styles['Normal'], fontName='Helvetica', fontSize=8.8, leading=11, textColor=colors.white))
styles.add(ParagraphStyle(name='SectionQR', parent=styles['Heading2'], fontName='Helvetica-Bold', fontSize=11.2, leading=13, textColor=NAVY, spaceBefore=7, spaceAfter=4))
styles.add(ParagraphStyle(name='BodyQR', parent=styles['BodyText'], fontName='Helvetica', fontSize=8.5, leading=11, textColor=INK, spaceAfter=3))
styles.add(ParagraphStyle(name='SmallQR', parent=styles['BodyText'], fontName='Helvetica', fontSize=7.3, leading=9, textColor=MUTED))
styles.add(ParagraphStyle(name='CellHead', parent=styles['BodyText'], fontName='Helvetica-Bold', fontSize=8, leading=9.5, textColor=colors.white))
styles.add(ParagraphStyle(name='Cell', parent=styles['BodyText'], fontName='Helvetica', fontSize=7.7, leading=9.4, textColor=INK))
styles.add(ParagraphStyle(name='CellBold', parent=styles['BodyText'], fontName='Helvetica-Bold', fontSize=7.7, leading=9.4, textColor=INK))
styles.add(ParagraphStyle(name='Callout', parent=styles['BodyText'], fontName='Helvetica-Bold', fontSize=9.1, leading=12, textColor=NAVY))
styles.add(ParagraphStyle(name='Ref', parent=styles['BodyText'], fontName='Helvetica', fontSize=6.6, leading=8, textColor=MUTED))

class NumberedCanvas(canvas.Canvas):
    def __init__(self, *args, **kwargs):
        canvas.Canvas.__init__(self, *args, **kwargs)
        self.pages = []
    def showPage(self):
        self.pages.append(dict(self.__dict__))
        self._startPage()
    def save(self):
        page_count = len(self.pages)
        for state in self.pages:
            self.__dict__.update(state)
            self.setStrokeColor(LINE)
            self.line(15*mm, 13.5*mm, 195*mm, 13.5*mm)
            self.setFont('Helvetica', 7)
            self.setFillColor(MUTED)
            self.drawString(15*mm, 9*mm, 'Clinical quick reference | Prehabilitation before chemotherapy')
            self.drawRightString(195*mm, 9*mm, f'Page {self._pageNumber} of {page_count}')
            canvas.Canvas.showPage(self)
        canvas.Canvas.save(self)

def P(text, style='BodyQR'):
    return Paragraph(text, styles[style])

def box(items, bg=PALE_TEAL, border=TEAL, padding=6):
    tbl = Table([[items]], colWidths=[180*mm])
    tbl.setStyle(TableStyle([
        ('BACKGROUND',(0,0),(-1,-1),bg), ('BOX',(0,0),(-1,-1),0.7,border),
        ('LEFTPADDING',(0,0),(-1,-1),padding), ('RIGHTPADDING',(0,0),(-1,-1),padding),
        ('TOPPADDING',(0,0),(-1,-1),padding), ('BOTTOMPADDING',(0,0),(-1,-1),padding),
    ]))
    return tbl

def header(canvas, doc):
    canvas.saveState()
    canvas.setFillColor(NAVY)
    canvas.rect(0, 267*mm, 210*mm, 30*mm, fill=1, stroke=0)
    canvas.setFillColor(TEAL)
    canvas.rect(0, 264*mm, 210*mm, 3*mm, fill=1, stroke=0)
    canvas.restoreState()

doc = SimpleDocTemplate(OUT, pagesize=A4, rightMargin=15*mm, leftMargin=15*mm, topMargin=36*mm, bottomMargin=19*mm)
story=[]

story.append(P('PREHABILITATION BEFORE CHEMOTHERAPY', 'TitleQR'))
story.append(P('A practical quick-reference for oncology teams | Adults receiving cytotoxic, targeted or immunotherapy regimens', 'SubQR'))
story.append(Spacer(1, 6))
story.append(box(P('<b>Use the pre-treatment window:</b> Start assessment and support as soon as treatment is planned. Do not delay indicated systemic therapy solely to complete prehabilitation. Continue and adapt the plan during treatment.', 'Callout'), PALE_TEAL, TEAL))

story.append(P('1. Who should be offered it?', 'SectionQR'))
story.append(P('<b>Offer universal brief advice and screening to all patients before chemotherapy.</b> Prioritise rapid referral to physiotherapy/exercise oncology, dietetics and psychosocial support when one or more of the following is present:'))
who = [
    ['Functional / physical', 'Low activity, impaired mobility or balance, frailty, falls, poor performance status, planned major surgery after neoadjuvant therapy.'],
    ['Nutrition', 'Unintentional weight loss, poor intake, dysphagia, nutrition-impact symptoms, sarcopenia risk, GI or head-and-neck cancer.'],
    ['Psychological / behavioural', 'Clinically important distress, anxiety, depression, tobacco use, excess alcohol, poor sleep, limited social support.'],
    ['Treatment-related risk', 'Anthracycline or other cardiotoxic therapy, neurotoxic therapy, high emetogenic risk, prolonged or intensive regimen, significant comorbidity.'],
]
t=Table([[P('<b>Domain</b>','CellHead'),P('<b>Triggers for targeted/specialist prehabilitation</b>','CellHead')]]+[[P(a,'CellBold'),P(b,'Cell')] for a,b in who], colWidths=[38*mm,142*mm], repeatRows=1)
t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,0),NAVY),('GRID',(0,0),(-1,-1),0.35,LINE),('VALIGN',(0,0),(-1,-1),'TOP'),('BACKGROUND',(0,1),(0,-1),PALE_BLUE),('LEFTPADDING',(0,0),(-1,-1),5),('RIGHTPADDING',(0,0),(-1,-1),5),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4)]))
story.append(t)

story.append(P('2. Baseline assessment and plan: at diagnosis or treatment decision', 'SectionQR'))
assessment = [
    '<b>Record:</b> diagnosis, treatment intent and timing; performance status; comorbidities; medications; treatment-specific risks; falls, neuropathy and cardiovascular symptoms.',
    '<b>Measure where feasible:</b> weight and recent weight change; nutrition screening; fatigue/distress; physical activity; simple functional test such as sit-to-stand or 6-minute walk; grip strength if available.',
    '<b>Agree a written plan:</b> patient goals, exercise prescription or referral, nutrition actions, psychological/behavioural support, safety instructions, monitoring and contact routes.'
]
story.append(box([P('• '+x) for x in assessment], PALE_BLUE, HexColor('#6BA2C8')))

story.append(P('3. Core prescription: individualise, start low, progress as tolerated', 'SectionQR'))
rx = [
    ['Exercise', '<b>Aerobic:</b> regular moderate-intensity activity in short bouts if needed. <br/><b>Strength:</b> progressive resistance exercise for major muscle groups, adjusted for function and symptoms. <br/><b>Balance/mobility:</b> add when frailty, falls risk, neuropathy or deconditioning is present. <br/><b>Referral:</b> supervised cancer-exercise professional for complex patients or uncertainty.'],
    ['Nutrition', '<b>Screen early and repeat.</b> Refer urgently for significant weight loss, inadequate intake or nutrition-impact symptoms. Dietitian-led strategy may include symptom control, food fortification, oral nutrition supplements and protein/energy targets tailored to renal function, metabolic status and cancer site. Do not apply fixed protein or supplement doses without assessment.'],
    ['Psychological & behaviour', 'Assess distress and practical barriers. Offer self-management education, sleep support, relaxation/stress-management approaches and stepped referral to counselling/mental-health services. Offer evidence-based smoking cessation and alcohol-reduction support.'],
]
t=Table([[P('<b>Component</b>','CellHead'),P('<b>Practical approach</b>','CellHead')]]+[[P(a,'CellBold'),P(b,'Cell')] for a,b in rx], colWidths=[34*mm,146*mm], repeatRows=1)
t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,0),TEAL),('GRID',(0,0),(-1,-1),0.35,LINE),('VALIGN',(0,0),(-1,-1),'TOP'),('BACKGROUND',(0,1),(0,-1),PALE_TEAL),('LEFTPADDING',(0,0),(-1,-1),5),('RIGHTPADDING',(0,0),(-1,-1),5),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4)]))
story.append(t)

story.append(P('4. Safety screen before exercise or escalation', 'SectionQR'))
story.append(box([P('<b>Pause exercise and obtain clinical review urgently</b> for acute chest pain, syncope/presyncope, new severe dyspnoea at rest, fever or suspected infection, uncontrolled pain, acute neurologic symptoms, or other acute deterioration.', 'Callout'), Spacer(1,3), P('<b>Modify or seek specialist input</b> for severe anaemia or thrombocytopenia, unstable bone metastases or high fracture risk, significant cardiopulmonary disease, severe neuropathy/falls risk, uncontrolled nausea/vomiting/diarrhoea, active line/device issues, or marked treatment toxicity. Follow local protocols and the treating oncology team’s thresholds.', 'BodyQR')], PALE_RED, RED))

story.append(P('5. Deliver around chemotherapy cycles', 'SectionQR'))
cycle = [
    ['Before cycle 1', 'Screen, establish baseline, identify red flags, begin feasible activity/nutrition/distress interventions, arrange referrals.'],
    ['Each cycle', 'Review symptoms, weight/intake, fatigue, function and adherence. Adjust intensity and goals. Reinforce hydration, infection precautions and symptom reporting.'],
    ['Low-symptom days', 'Use for planned exercise progression, meal preparation and appointments.'],
    ['High-symptom days', 'Use flexible lower-intensity movement, symptom-directed nutrition strategies and rest. Avoid all-or-nothing messaging.'],
    ['Before surgery, if planned', 'Reassess function, nutrition and treatment toxicities; continue tailored prehabilitation up to surgery as appropriate.'],
]
t=Table([[P('<b>When</b>','CellHead'),P('<b>Team action</b>','CellHead')]]+[[P(a,'CellBold'),P(b,'Cell')] for a,b in cycle], colWidths=[40*mm,140*mm], repeatRows=1)
t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,0),NAVY),('GRID',(0,0),(-1,-1),0.35,LINE),('VALIGN',(0,0),(-1,-1),'TOP'),('BACKGROUND',(0,1),(0,-1),HexColor('#F6F9FA')),('LEFTPADDING',(0,0),(-1,-1),5),('RIGHTPADDING',(0,0),(-1,-1),5),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4)]))
story.append(t)

story.append(P('Evidence summary for discussion and service design', 'SectionQR'))
story.append(P('Evidence is <b>promising but not definitive</b> for chemotherapy-specific outcomes. A 2024 systematic review of cancer prehabilitation RCTs found improved functional capacity and reduced anxiety/depression, but studies were heterogeneous and frequently at high risk of bias. Direct studies most often begin at or during neoadjuvant chemotherapy and continue through it. In breast cancer, RCTs report better functional capacity, less fatigue and favourable quality-of-life signals. There is not yet a universal chemotherapy-specific protocol or proven survival benefit.'))

story.append(P('Clinical take-home', 'SectionQR'))
story.append(box(P('<b>Start early, individualise, and continue through treatment.</b> The main current goal is to preserve function, nutritional status and wellbeing, while maintaining safe and timely delivery of anti-cancer treatment. Escalate support for patients with frailty, malnutrition, distress or complex comorbidity.', 'Callout'), PALE_GOLD, GOLD))

story.append(P('Selected sources', 'SectionQR'))
refs = [
    'Gennuso D, et al. Efficacy of prehabilitation in cancer patients: an RCTs systematic review with meta-analysis. <i>BMC Cancer</i>. 2024. PMID: 39438910. https://pubmed.ncbi.nlm.nih.gov/39438910/',
    'Casanovas-Álvarez A, et al. PREOptimize trial: exercise and education-based prehabilitation during neoadjuvant chemotherapy in breast cancer. <i>Physical Therapy</i>. 2024. PMID: 39423256. https://pubmed.ncbi.nlm.nih.gov/39423256/',
    'Brahmbhatt P, et al. Multimodal prehabilitation during neoadjuvant chemotherapy for breast cancer: feasibility RCT. <i>Annals of Surgical Oncology</i>. 2024. PMID: 38219003. https://pubmed.ncbi.nlm.nih.gov/38219003/',
    'Pietrakiewicz K, et al. Prehabilitation prior to chemotherapy in humans: current evidence and future directions. <i>Cancers</i>. 2025. PMID: 40867298. https://pubmed.ncbi.nlm.nih.gov/40867298/',
    'Macmillan Cancer Support. Principles and guidance for prehabilitation within the cancer care pathway. Accessed 21 Oct 2026. https://www.macmillan.org.uk/dfsmedia/1a6f23537f7f4519bb0cf14c45b2a629/13225-source/prehabilitation-for-people-with-cancer'
]
for r in refs: story.append(P(r, 'Ref'))
story.append(Spacer(1,3))
story.append(P('<b>Scope note:</b> Educational aid for clinicians. It does not replace tumour-specific guidance, local protocols, contraindication assessment or clinical judgement.', 'Ref'))

doc.build(story, onFirstPage=header, onLaterPages=header, canvasmaker=NumberedCanvas)
print(OUT)
Running Command

python "/tmp/workspace/prehabilitation_quick_reference/src/create_pdf.py" && python -c "from pypdf import PdfReader; p='/tmp/workspace/prehabilitation_quick_reference/output/Prehabilitation_Before_Chemotherapy_Quick_Reference.pdf'; r=PdfReader(p); print('pages',len(r.pages)); print('chars',sum(len(x.extract_text() or '') for x in r.pages)); print((r.pages[0].extract_text() or '')[:300])"

Editing File

~/prehabilitation_quick_reference/src/create_pdf.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/prehabilitation_quick_reference/src/create_pdf.py'
Editing File

~/prehabilitation_quick_reference/src/create_pdf.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/prehabilitation_quick_reference/src/create_pdf.py'
Running Command

python "/tmp/workspace/prehabilitation_quick_reference/src/create_pdf.py" && python -c "from pypdf import PdfReader; p='/tmp/workspace/prehabilitation_quick_reference/output/Prehabilitation_Before_Chemotherapy_Quick_Reference.pdf'; r=PdfReader(p); print('pages:',len(r.pages)); print('page1 header:',(r.pages[0].extract_text() or '')[:180].replace('\\n',' | ')); print('page2 chars:',len(r.pages[1].extract_text() or ''))"

Prehabilitation Before Chemotherapy Quick Reference

PDF Document · PDF

Add tumour-specific recommendations to the quick-reference PDF

Reading File
Reading File
Browsing Directory

~/

Finding Sources
Searching PubMed

prehabilitation AND neoplasms

Searching the Web

prehabilitation cancer tumour specific recommendations chemotherapy breast colorectal upper gastrointestinal lung hematologic

Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Editing File

~/prehabilitation_quick_reference/src/create_pdf.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/prehabilitation_quick_reference/src/create_pdf.py'
Editing File

~/prehabilitation_quick_reference/src/create_pdf.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/prehabilitation_quick_reference/src/create_pdf.py'
Running Command

python "/tmp/workspace/prehabilitation_quick_reference/src/create_pdf.py" && python -c "from pypdf import PdfReader; p='/tmp/workspace/prehabilitation_quick_reference/output/Prehabilitation_Before_Chemotherapy_Quick_Reference.pdf'; r=PdfReader(p); text=''.join(pg.extract_text() or '' for pg in r.pages); print('pages:',len(r.pages)); print('tumour-specific:', 'Tumour-specific focus' in text); print('all key sites:', all(x in text for x in ['Upper GI / pancreatic','Colorectal / pelvic','Head and neck','Lung / thoracic','Haematologic malignancy'])); print('chars:',len(text))"

Running Command

python -c "from pypdf import PdfReader; p='/tmp/workspace/prehabilitation_quick_reference/output/Prehabilitation_Before_Chemotherapy_Quick_Reference.pdf'; r=PdfReader(p); [print('---PAGE',i+1,'---\\n',pg.extract_text() or '') for i,pg in enumerate(r.pages)]"

Updated PDF includes tumour-specific prehabilitation priorities for:
  • Breast
  • Upper gastrointestinal and pancreatic
  • Colorectal and pelvic
  • Head and neck
  • Lung and thoracic
  • Haematologic malignancy
  • Gynaecologic and urologic cancers

Prehabilitation Before Chemotherapy Quick Reference

PDF Document · PDF

Include exercise precautions by tumour type

Reading File
Reading File
Browsing Directory

~/

Finding Sources
Searching PubMed

exercise safety precautions cancer survivors bone metastases thrombocytopenia

Searching the Web

exercise precautions cancer bone metastases thrombocytopenia head and neck lung cancer guideline

Reading File
Reading File
Editing File

~/prehabilitation_quick_reference/src/create_pdf.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/prehabilitation_quick_reference/src/create_pdf.py'
Your credits are exhausted. You can purchase a top-up or subscribe to a plan to continue using Orris. If you're already subscribed, your daily credits will reset tomorrow.
This is a shared conversation. Sign in to Orris to start your own chat.