I have a patient of post stroke currently he is not able to lift their left leg Suggest to me how I train how hemastring
stroke lower limb strengthening exercise hemiparesis
Create a step-by-step rehab protocol document for post-stroke hamstring/leg-lift training
mkdir -p /tmp/workspace/stroke-rehab-protocol && ls -la /tmp/workspace/
~/stroke-rehab-protocol/build_doc.py
from docx import Document
from docx.shared import Pt, Inches, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.oxml.ns import qn
from docx.oxml import OxmlElement
doc = Document()
# Default font
style = doc.styles["Normal"]
style.font.name = "Arial"
style.font.size = Pt(11)
DARK_BLUE = RGBColor(0x1F, 0x3A, 0x5F)
GREY = RGBColor(0x55, 0x55, 0x55)
def set_cell_shading(cell, color_hex):
tcPr = cell._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'), color_hex)
tcPr.append(shd)
def add_heading(text, level=1, color=DARK_BLUE):
h = doc.add_heading(text, level=level)
for run in h.runs:
run.font.color.rgb = color
return h
def add_bullets(items, bold_lead=False):
for item in items:
p = doc.add_paragraph(style="List Bullet")
if isinstance(item, tuple):
lead, rest = item
r1 = p.add_run(lead)
r1.bold = True
p.add_run(rest)
else:
p.add_run(item)
def add_numbered(items):
for item in items:
p = doc.add_paragraph(style="List Number")
if isinstance(item, tuple):
lead, rest = item
r1 = p.add_run(lead)
r1.bold = True
p.add_run(rest)
else:
p.add_run(item)
# ---------- TITLE PAGE ----------
title = doc.add_paragraph()
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = title.add_run("POST-STROKE HAMSTRING / LEG-LIFT")
run.bold = True
run.font.size = Pt(24)
run.font.color.rgb = DARK_BLUE
title2 = doc.add_paragraph()
title2.alignment = WD_ALIGN_PARAGRAPH.CENTER
run2 = title2.add_run("REHABILITATION PROTOCOL")
run2.bold = True
run2.font.size = Pt(24)
run2.font.color.rgb = DARK_BLUE
sub = doc.add_paragraph()
sub.alignment = WD_ALIGN_PARAGRAPH.CENTER
r = sub.add_run("Progressive Hip-Knee Flexion / Swing-Phase Restoration Program for Hemiparetic Lower Limb")
r.italic = True
r.font.size = Pt(13)
r.font.color.rgb = GREY
doc.add_paragraph()
# Patient info table
info_table = doc.add_table(rows=4, cols=2)
info_table.style = "Light Grid Accent 1"
info_table.alignment = WD_TABLE_ALIGNMENT.CENTER
labels = ["Patient Name / ID:", "Date of Stroke / Onset:", "Affected Side:", "Date Protocol Initiated / Clinician:"]
for i, lab in enumerate(labels):
info_table.cell(i, 0).text = lab
for p in info_table.cell(i, 0).paragraphs:
for r_ in p.runs:
r_.bold = True
info_table.cell(i, 1).text = ""
doc.add_page_break()
# ---------- PURPOSE / RATIONALE ----------
add_heading("1. Purpose and Clinical Rationale", level=1)
doc.add_paragraph(
"This protocol addresses the common post-stroke presentation of an inability to actively lift/advance "
"the affected leg during swing phase, most often driven by weak hip flexors and knee flexors "
"(hamstrings), and/or by an extensor synergy pattern (hip extension-adduction, knee extension, ankle "
"plantarflexion/inversion) that blocks selective hip-knee flexion. The goal is to restore selective "
"voluntary hamstring/hip-flexor activation, build strength through graded resistance, and transfer that "
"strength into a functional leg-lift/swing pattern during gait."
)
p = doc.add_paragraph()
p.add_run("Clinical note: ").bold = True
p.add_run(
"\"Cannot lift the leg\" is rarely isolated hamstring weakness. It usually reflects a hip-knee flexion "
"synergy deficit. Screen hip flexors, hamstrings, and ankle dorsiflexors separately before assuming the "
"hamstring alone is the problem."
)
# ---------- STEP 0: ASSESSMENT ----------
add_heading("2. Baseline Assessment (Complete Before Starting)", level=1)
add_numbered([
("Muscle tone: ", "Modified Ashworth Scale for hip flexors, hip extensors, hamstrings, quadriceps, and plantarflexors. Spasticity in the quadriceps/hip extensors can block voluntary hamstring firing and must be identified first."),
("Manual muscle testing (MMT): ", "Grade hip flexors, hamstrings (knee flexion), quadriceps, and ankle dorsiflexors independently, in both gravity-eliminated and against-gravity positions."),
("Movement pattern: ", "Observe whether knee flexion occurs only as part of a mass synergy (hip flexion + knee flexion + dorsiflexion together, \"all-or-nothing\") or can be performed in isolation."),
("Functional baseline: ", "Video or note the gait pattern (circumduction, hip hiking, foot drag, crouch) and time a short walk (e.g., 10-Metre Walk Test) for later comparison."),
("Sensation and cognition: ", "Confirm the patient can follow verbal/visual cues needed for facilitation techniques; screen for neglect on the affected side."),
("Medical clearance: ", "Confirm cardiovascular stability and orthopedic clearance (no DVT, no unhealed fracture) for resistance training."),
])
doc.add_paragraph()
warn = doc.add_paragraph()
warn.add_run("Do not proceed to Phase 2 strengthening if spasticity (Ashworth >= 2) in the antagonist muscle group is blocking active motion — treat spasticity first (positioning, prolonged stretch, serial casting, or consider referral for focal spasticity management) before loading resistance.").italic = True
# ---------- PHASE 1 ----------
add_heading("3. Phase 1 — Facilitation (Minimal / Absent Voluntary Activation)", level=1)
p = doc.add_paragraph()
p.add_run("Goal: ").bold = True
p.add_run("Elicit any trace of voluntary hamstring/knee-flexion activity. Duration: until patient achieves MMT grade 2/5 (gravity-eliminated active range).")
add_bullets([
("Passive-to-active-assisted knee flexion — ", "sidelying or prone, therapist guides through range while cueing the patient to actively \"help\" at the end of range."),
("Quick stretch / tapping over hamstring belly — ", "followed immediately by a request for active contraction (proprioceptive facilitation)."),
("Neuromuscular electrical stimulation (NMES) — ", "applied to hamstrings, time-locked to the patient's active attempt, to boost voluntary drive. Typical parameters: 30-50 Hz, on:off cycle 10s:20-50s, 15-20 min/session."),
("Mental practice / mirror therapy — ", "rehearse the leg-lift motion visually/mentally before physical attempts to prime motor cortex drive."),
("Functional electrical stimulation (FES) cycling — ", "if available, for repetitive patterned activation of hip/knee flexors and hamstrings."),
])
# ---------- PHASE 2 ----------
add_heading("4. Phase 2 — Isolated Strengthening (Dissociate Hip and Knee)", level=1)
p = doc.add_paragraph()
p.add_run("Goal: ").bold = True
p.add_run("Build strength in hamstrings/hip extensors while breaking the extensor synergy. Progress when patient reaches MMT grade 3/5 (full active range against gravity).")
t = doc.add_table(rows=1, cols=4)
t.style = "Light Grid Accent 1"
hdr = t.rows[0].cells
headers = ["Exercise", "Position / Set-up", "Progression", "Dosage"]
for i, h in enumerate(headers):
hdr[i].text = h
set_cell_shading(hdr[i], "1F3A5F")
for p_ in hdr[i].paragraphs:
for r_ in p_.runs:
r_.font.color.rgb = RGBColor(0xFF,0xFF,0xFF)
r_.bold = True
rows_data = [
["Bridging (double-leg)", "Supine, knees bent, both feet flat", "Progress to single-leg bridge (unaffected leg lifted, affected leg holds bridge alone)", "3 x 10, hold 3-5s"],
["Sidelying active knee flexion", "Sidelying, affected leg on top, gravity-eliminated", "Add light ankle cuff weight once full range achieved x 10 reps", "3 x 10"],
["Prone active knee flexion (\"heel to buttock\")", "Prone, pillow under pelvis if needed for comfort", "Add resistance band or ankle weight once full range against gravity is smooth", "3 x 10-12"],
["Seated resistive hamstring curl", "Sitting, resistance band anchored in front of the ankle", "Increase band tension progressively; add hold at end range", "3 x 10-12"],
["Isolated hip-knee dissociation drill", "Sitting, flex knee while consciously keeping hip still (no hip flexion)", "Progress to standing with support, same isolated knee flexion", "3 x 8-10, focus on quality not speed"],
]
for row in rows_data:
cells = t.add_row().cells
for i, val in enumerate(row):
cells[i].text = val
doc.add_paragraph()
# ---------- PHASE 3 ----------
add_heading("5. Phase 3 — Synergy Breaking and Functional Patterning", level=1)
p = doc.add_paragraph()
p.add_run("Goal: ").bold = True
p.add_run("Translate isolated hamstring/hip-flexor strength into the combined hip-knee flexion needed to clear the foot during swing.")
add_bullets([
("Seated marching — ", "alternate active hip and knee flexion to lift the foot off the floor without hip hiking or trunk lean."),
("Standing mini step/march with support — ", "practice lifting the affected foot to clear a low target (foam block, line on floor) while holding a rail or with therapist assist."),
("Step-ups on the unaffected leg with controlled eccentric lowering of the affected leg — ", "trains posterior chain control functionally."),
("Mini-squats — ", "bilateral, progressing to more weight-bearing through the affected leg as tolerated."),
("PNF rhythmic initiation / resisted active movement — ", "therapist-guided repetitions pairing hip and knee flexion in a controlled, non-synergistic pattern."),
])
# ---------- PHASE 4 ----------
add_heading("6. Phase 4 — Gait and Task-Specific Integration", level=1)
p = doc.add_paragraph()
p.add_run("Goal: ").bold = True
p.add_run("Carry the improved leg-lift/swing capacity into functional walking.")
add_bullets([
("Treadmill training with body-weight support (if available) — ", "practice repetitive swing-phase limb advancement in a supported, safe environment."),
("Overground obstacle/target stepping — ", "step over low objects or onto floor targets to reinforce active foot clearance."),
("FES-assisted gait training — ", "stimulate hamstrings/dorsiflexors timed to the gait cycle if equipment is available."),
("Ankle-foot orthosis (AFO) — ", "use as an interim compensatory aid for foot clearance/drop if swing-phase deficits persist, while strength training continues in parallel — this is a bridge, not a replacement for active training."),
("Community/functional practice — ", "stairs, uneven surfaces, dual-task walking once basic swing control is reliable."),
])
# ---------- DOSAGE / PROGRESSION SUMMARY ----------
add_heading("7. General Dosage and Progression Rules", level=1)
add_bullets([
("Frequency: ", "3-5 sessions/week for strengthening; daily practice for facilitation and task-specific drills as tolerated."),
("Sets/reps: ", "2-3 sets of 8-12 repetitions per exercise, progressing load/resistance before progressing repetitions."),
("Progression trigger: ", "advance to the next exercise or add resistance only when the current exercise can be performed through full available range, against gravity, for the full set, without compensatory hip hiking, trunk lean, or circumduction."),
("Regression trigger: ", "reduce resistance/position demand if spasticity increases, pattern reverts to mass synergy, or fatigue causes loss of quality."),
("Reassessment: ", "repeat MMT, Ashworth, and gait/timed-walk measures every 2-4 weeks to track progress and adjust the program."),
])
# ---------- PRECAUTIONS ----------
add_heading("8. Precautions and Safety", level=1)
add_bullets([
"Screen for spasticity blocking voluntary flexion before adding resistance; treat spasticity first if present.",
"Monitor cardiovascular response (heart rate, blood pressure, fatigue) during resistance training sessions.",
"Ensure adequate trunk/pelvic support in sitting and standing exercises to prevent compensatory substitution.",
"Use gait belt and appropriate supervision for all standing and stepping activities given fall risk.",
"Discontinue or modify an exercise immediately if it triggers pain, clonus, or a significant increase in tone.",
])
# ---------- EVIDENCE BASE ----------
add_heading("9. Evidence Base", level=1)
doc.add_paragraph(
"Progressive lower-limb resistance training in chronic stroke has been shown in a 2023 systematic review "
"and meta-analysis of randomized controlled trials to improve muscle strength, gait speed, and other "
"ICF-level outcomes (Pereira TA, et al. Effect of lower limb resistance training on ICF components in "
"chronic stroke: A systematic review and meta-analysis of RCTs. Ann Phys Rehabil Med. 2023. PMID: 37883831). "
"This supports active, progressive strengthening — rather than compensation/bracing alone — as a core "
"component of leg-lift/swing-phase rehabilitation once spasticity is adequately managed."
)
doc.add_paragraph(
"Textbook correlation: weak hip extensors/hamstrings and disrupted hip-knee dissociation are recognized "
"drivers of compensatory gait patterns (circumduction, hip hiking, crouch gait) in hemiparetic and spastic "
"gait — Bradley and Daroff's Neurology in Clinical Practice; Campbell's Operative Orthopaedics, 15th Ed."
)
# ---------- SIGN OFF ----------
add_heading("10. Clinician Sign-off", level=1)
sign_table = doc.add_table(rows=3, cols=2)
sign_table.style = "Light Grid Accent 1"
sign_labels = ["Treating Clinician (Name/Signature):", "Date:", "Next Review Date:"]
for i, lab in enumerate(sign_labels):
sign_table.cell(i,0).text = lab
for p_ in sign_table.cell(i,0).paragraphs:
for r_ in p_.runs:
r_.bold = True
sign_table.cell(i,1).text = ""
doc.save("/tmp/workspace/stroke-rehab-protocol/Post_Stroke_Hamstring_Leg_Lift_Protocol.docx")
print("Saved.")
cd /tmp/workspace/stroke-rehab-protocol && python3 build_doc.py
ls -la /tmp/workspace/stroke-rehab-protocol/
Post Stroke Hamstring Leg Lift Protocol
Word Document · DOCX
Suggest top 5 exercise
Search for recent clinical guidelines on post-stroke lower-limb rehabilitation
"stroke rehabilitation" AND "lower extremity"
2024 2025 clinical guideline post-stroke lower limb rehabilitation gait strengthening
"stroke rehabilitation" AND guideline
PMID: 40401760
PMID: 41257457
PMID: 38519084
PMID: 40262822
NICE stroke rehabilitation guideline lower limb strengthening exercise recommendation 2023
How to train hemastring when grade 2