supraspinetis tendinitis physiotherapy protocol
"supraspinatus tendinitis" AND "physical therapy"
"rotator cuff tendinopathy" AND "exercise" AND "rehabilitation"
PMID: 42135016
supraspinatus tendinitis physiotherapy protocol phases exercises 2024

| Phase | Timeline | Main Goals |
|---|---|---|
| 1 - Acute / Pain Control | Weeks 1-2 | Reduce pain and inflammation, protect tissue |
| 2 - Early Recovery | Weeks 3-4 | Restore ROM, begin isometric strengthening |
| 3 - Strengthening | Weeks 5-8 | Isotonic RC and scapular strengthening |
| 4 - Functional / Return | Weeks 9-12+ | Power, endurance, sport/work-specific activity |
| Exercise | Phase 1 | Phase 2 | Phase 3 | Phase 4 |
|---|---|---|---|---|
| Pendulum/Codman's | ✓ | ✓ | ||
| Isometrics (IR/ER) | ✓ | ✓ | ||
| Scapular isometrics | ✓ | ✓ | ||
| Theraband IR/ER (0°) | ✓ | ✓ | ||
| Scapular rows | ✓ | ✓ | ✓ | |
| Empty/full can | ✓ | ✓ | ||
| Eccentric ER/abduction | ✓ | ✓ | ||
| Serratus push-ups | ✓ | ✓ | ✓ | |
| Prone horizontal abd. | ✓ | ✓ | ||
| Plyometrics / PNF | ✓ |
PPT
ls /home/daytona/workspace/ 2>/dev/null || mkdir -p /home/daytona/workspace/supraspinatus-ppt
mkdir -p /home/daytona/workspace/supraspinatus-ppt && ls /home/daytona/workspace/supraspinatus-ppt
~/supraspinatus-ppt/create_ppt.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Supraspinatus Tendinitis - Physiotherapy Protocol";
pres.author = "Orris Medical";
// ─── COLOR PALETTE ───────────────────────────────────────────────
const C = {
navy: "0B1F4B", // dominant dark bg
blue: "1565C0", // section headers / accents
teal: "00897B", // phase color 1
amber: "F57F17", // phase color 2
green: "2E7D32", // phase color 3
purple: "6A1B9A", // phase color 4
white: "FFFFFF",
offwhite:"F0F4F8",
light: "E3EAF4",
gray: "607D8B",
dark: "1A1A2E",
accent: "29B6F6", // sky blue highlight
};
// ─── HELPER: dark slide background ───────────────────────────────
function darkBg(slide, color) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 5.625,
fill: { color: color || C.navy }, line: { color: color || C.navy }
});
}
// ─── HELPER: accent bar ──────────────────────────────────────────
function accentBar(slide, color, y, h) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: y || 0, w: 10, h: h || 0.08,
fill: { color: color || C.accent }, line: { color: color || C.accent }
});
}
// ─── HELPER: pill badge ──────────────────────────────────────────
function badge(slide, label, x, y, bg, fg) {
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x, y, w: 1.5, h: 0.35,
fill: { color: bg || C.accent }, line: { color: bg || C.accent }, rectRadius: 0.05
});
slide.addText(label, {
x, y, w: 1.5, h: 0.35,
fontSize: 9, bold: true, color: fg || C.navy, align: "center", valign: "middle", margin: 0
});
}
// ─── SLIDE 1: TITLE ──────────────────────────────────────────────
{
const s = pres.addSlide();
darkBg(s, C.navy);
// decorative circles
s.addShape(pres.shapes.OVAL, { x: 7.5, y: -1, w: 4, h: 4, fill: { color: C.blue, transparency: 75 }, line: { color: C.blue, transparency: 75 } });
s.addShape(pres.shapes.OVAL, { x: 8.5, y: 2.5, w: 2.5, h: 2.5, fill: { color: C.accent, transparency: 80 }, line: { color: C.accent, transparency: 80 } });
// top bar
accentBar(s, C.accent, 0, 0.08);
s.addText("PHYSIOTHERAPY PROTOCOL", {
x: 0.6, y: 0.35, w: 8, h: 0.4,
fontSize: 11, color: C.accent, bold: true, charSpacing: 4
});
s.addText("Supraspinatus\nTendinitis", {
x: 0.6, y: 0.9, w: 7.5, h: 2,
fontSize: 44, color: C.white, bold: true, lineSpacingMultiple: 1.1
});
s.addShape(pres.shapes.RECTANGLE, { x: 0.6, y: 3.05, w: 2.2, h: 0.06, fill: { color: C.teal }, line: { color: C.teal } });
s.addText("Evidence-Based 4-Phase Rehabilitation Program", {
x: 0.6, y: 3.2, w: 8, h: 0.45,
fontSize: 14, color: C.light, italic: true
});
s.addText("Campbell's Operative Orthopaedics 2026 | BJSM Network Meta-Analysis 2026 (n=5532)", {
x: 0.6, y: 4.9, w: 9, h: 0.35,
fontSize: 8, color: C.gray, italic: true
});
accentBar(s, C.teal, 5.55, 0.075);
}
// ─── SLIDE 2: ANATOMY & CLINICAL OVERVIEW ────────────────────────
{
const s = pres.addSlide();
darkBg(s, C.dark);
accentBar(s, C.blue, 0, 0.07);
s.addText("ANATOMY & CLINICAL OVERVIEW", {
x: 0.5, y: 0.18, w: 9, h: 0.4,
fontSize: 11, color: C.accent, bold: true, charSpacing: 3
});
// left column - anatomy facts
s.addShape(pres.shapes.RECTANGLE, {
x: 0.4, y: 0.75, w: 4.5, h: 4.4,
fill: { color: "0D2137" }, line: { color: C.blue, transparency: 60 }
});
s.addText("Supraspinatus Tendon", {
x: 0.6, y: 0.85, w: 4.1, h: 0.4,
fontSize: 14, color: C.accent, bold: true
});
const anatomyPoints = [
"Part of the rotator cuff (SITS muscles)",
"Runs under the coracoacromial arch",
"Most vulnerable at 'critical zone' — 1 cm proximal to insertion on greater tuberosity",
"Often co-exists with subacromial bursitis",
"Impingement in the 60–120° painful arc",
];
s.addText(anatomyPoints.map((t, i) => ({
text: t,
options: { bullet: { type: "bullet" }, breakLine: i < anatomyPoints.length - 1, color: C.light, fontSize: 11 }
})), { x: 0.6, y: 1.3, w: 4.1, h: 3.6, valign: "top", paraSpaceBefore: 6 });
// right column - clinical tests
s.addShape(pres.shapes.RECTANGLE, {
x: 5.2, y: 0.75, w: 4.4, h: 4.4,
fill: { color: "0D2137" }, line: { color: C.teal, transparency: 60 }
});
s.addText("Key Clinical Tests", {
x: 5.4, y: 0.85, w: 4, h: 0.4,
fontSize: 14, color: C.teal, bold: true
});
const tests = [
{ name: "Hawkins-Kennedy", desc: "Arm/elbow at 90°, IR → pain = coracoacromial impingement" },
{ name: "Neer's Test", desc: "Forward flexion + IR → pain at 70–120°; tuberosity hits acromion" },
{ name: "Painful Arc", desc: "Abduction 60–120° reproduces anterolateral shoulder pain" },
{ name: "Empty Can (Jobe)", desc: "Resisted abduction at 90° in scapular plane, thumb down → pain/weakness" },
];
let ty = 1.35;
for (const t of tests) {
s.addText(t.name, { x: 5.4, y: ty, w: 3.9, h: 0.28, fontSize: 11, bold: true, color: C.amber });
ty += 0.28;
s.addText(t.desc, { x: 5.4, y: ty, w: 3.9, h: 0.45, fontSize: 10, color: C.light, lineSpacingMultiple: 1.1 });
ty += 0.5;
}
}
// ─── SLIDE 3: 4-PHASE OVERVIEW ────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.offwhite }, line: { color: C.offwhite } });
accentBar(s, C.navy, 0, 0.07);
s.addText("4-PHASE REHABILITATION OVERVIEW", {
x: 0.5, y: 0.18, w: 9, h: 0.38,
fontSize: 11, color: C.navy, bold: true, charSpacing: 3
});
const phases = [
{ num: "1", title: "Acute /\nPain Control", weeks: "Weeks 1–2", color: C.teal, goals: ["Reduce pain & inflammation", "Protect tissue", "Maintain baseline ROM"] },
{ num: "2", title: "Early\nRecovery", weeks: "Weeks 3–4", color: C.blue, goals: ["Restore full ROM", "Scapular retraining", "Begin dynamic stabilization"] },
{ num: "3", title: "Progressive\nStrengthening", weeks: "Weeks 5–8", color: C.purple, goals: ["Isotonic RC strengthening", "Eccentric loading", "Scapular stabilizers"] },
{ num: "4", title: "Functional\nReturn", weeks: "Weeks 9–12+", color: C.green, goals: ["Power & endurance", "Plyometrics / PNF", "Sport/work-specific activity"] },
];
phases.forEach((ph, i) => {
const x = 0.3 + i * 2.38;
// phase card background
s.addShape(pres.shapes.RECTANGLE, {
x, y: 0.72, w: 2.15, h: 4.55,
fill: { color: C.white },
shadow: { type: "outer", color: "000000", blur: 8, offset: 2, angle: 135, opacity: 0.1 },
line: { color: "DDDDDD" }
});
// colored top accent
s.addShape(pres.shapes.RECTANGLE, { x, y: 0.72, w: 2.15, h: 0.55, fill: { color: ph.color }, line: { color: ph.color } });
// phase number circle
s.addShape(pres.shapes.OVAL, { x: x + 0.7, y: 0.55, w: 0.75, h: 0.75, fill: { color: C.white }, line: { color: ph.color, pt: 2.5 } });
s.addText(ph.num, { x: x + 0.7, y: 0.55, w: 0.75, h: 0.75, fontSize: 16, bold: true, color: ph.color, align: "center", valign: "middle", margin: 0 });
s.addText(ph.weeks, { x, y: 0.72, w: 2.15, h: 0.55, fontSize: 9, color: C.white, align: "center", valign: "middle", margin: 0 });
s.addText(ph.title, {
x: x + 0.1, y: 1.35, w: 1.95, h: 0.75,
fontSize: 13, bold: true, color: ph.color, align: "center", lineSpacingMultiple: 1.15
});
s.addText(ph.goals.map((g, j) => ({
text: g,
options: { bullet: { type: "bullet" }, breakLine: j < ph.goals.length - 1, fontSize: 10.5, color: "333333" }
})), { x: x + 0.12, y: 2.15, w: 1.93, h: 3, valign: "top", paraSpaceBefore: 7 });
});
// bottom timeline arrow
s.addShape(pres.shapes.RECTANGLE, { x: 0.5, y: 5.25, w: 8.8, h: 0.07, fill: { color: C.gray }, line: { color: C.gray } });
s.addShape(pres.shapes.RIGHT_ARROW, { x: 9.0, y: 5.14, w: 0.45, h: 0.28, fill: { color: C.gray }, line: { color: C.gray } });
s.addText("← 3–4 months total (Surgery if no improvement after this period) →", {
x: 1.5, y: 5.3, w: 7, h: 0.25, fontSize: 8, color: C.gray, align: "center"
});
}
// ─── SLIDE 4: PHASE 1 ────────────────────────────────────────────
{
const s = pres.addSlide();
darkBg(s, C.navy);
accentBar(s, C.teal, 0, 0.07);
// phase badge
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.07, w: 10, h: 0.7, fill: { color: C.teal, transparency: 85 }, line: { color: C.teal, transparency: 85 } });
s.addText("PHASE 1 | ACUTE / PAIN CONTROL | Weeks 1–2", {
x: 0.5, y: 0.1, w: 9, h: 0.6,
fontSize: 13, bold: true, color: C.teal, valign: "middle"
});
// Col 1: Modalities
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: 0.88, w: 3.05, h: 4.45, fill: { color: "0D2137" }, line: { color: C.teal, transparency: 70 } });
s.addText("🧊 Modalities & Adjuncts", { x: 0.45, y: 0.95, w: 2.8, h: 0.38, fontSize: 11, bold: true, color: C.teal });
const mod1 = ["Cryotherapy (ice 15–20 min, 3–4×/day)", "TENS / High-voltage galvanic", "Therapeutic ultrasound / phonophoresis", "Iontophoresis (dexamethasone)", "NSAIDs (oral/topical)", "Subacromial corticosteroid injection (max 1–2)"];
s.addText(mod1.map((t, i) => ({ text: t, options: { bullet: true, breakLine: i < mod1.length - 1, fontSize: 10, color: C.light } })),
{ x: 0.45, y: 1.38, w: 2.8, h: 3.7, valign: "top", paraSpaceBefore: 7 });
// Col 2: ROM
s.addShape(pres.shapes.RECTANGLE, { x: 3.6, y: 0.88, w: 3.05, h: 4.45, fill: { color: "0D2137" }, line: { color: C.accent, transparency: 70 } });
s.addText("🔄 Range of Motion", { x: 3.75, y: 0.95, w: 2.8, h: 0.38, fontSize: 11, bold: true, color: C.accent });
const rom1 = ["Pendulum / Codman's exercises", "Symptom-limited active-assisted ROM", "Wand / pulley exercises if tolerated", "Avoid painful arc (60–120°)", "Joint mobilisation: Inferior, anterior & posterior glides (Grade I–II) in scapular plane"];
s.addText(rom1.map((t, i) => ({ text: t, options: { bullet: true, breakLine: i < rom1.length - 1, fontSize: 10, color: C.light } })),
{ x: 3.75, y: 1.38, w: 2.8, h: 3.7, valign: "top", paraSpaceBefore: 7 });
// Col 3: Strengthening
s.addShape(pres.shapes.RECTANGLE, { x: 6.9, y: 0.88, w: 2.85, h: 4.45, fill: { color: "0D2137" }, line: { color: C.amber, transparency: 70 } });
s.addText("💪 Isometric Strengthening", { x: 7.0, y: 0.95, w: 2.65, h: 0.38, fontSize: 11, bold: true, color: C.amber });
const str1 = ["Isometric external rotation (ER)", "Isometric internal rotation (IR)", "Isometric biceps & deltoid", "Isometric scapular stabilizers:", " • Rhomboids", " • Trapezius", " • Serratus anterior", "Keep arm at side / below 60°"];
s.addText(str1.map((t, i) => ({ text: t, options: { bullet: !t.startsWith(" "), breakLine: i < str1.length - 1, fontSize: 9.5, color: C.light } })),
{ x: 7.0, y: 1.38, w: 2.65, h: 3.7, valign: "top", paraSpaceBefore: 5 });
// progression criteria footer
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: 5.28, w: 9.4, h: 0.28, fill: { color: C.teal, transparency: 80 }, line: { color: C.teal, transparency: 80 } });
s.addText("✓ Progress when: Pain < 3/10 at rest | Pendulums and isometrics pain-free", {
x: 0.5, y: 5.28, w: 9, h: 0.28, fontSize: 9, color: C.white, valign: "middle"
});
}
// ─── SLIDE 5: PHASE 2 ────────────────────────────────────────────
{
const s = pres.addSlide();
darkBg(s, C.navy);
accentBar(s, C.blue, 0, 0.07);
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.07, w: 10, h: 0.7, fill: { color: C.blue, transparency: 85 }, line: { color: C.blue, transparency: 85 } });
s.addText("PHASE 2 | EARLY RECOVERY | Weeks 3–4", {
x: 0.5, y: 0.1, w: 9, h: 0.6, fontSize: 13, bold: true, color: C.accent, valign: "middle"
});
// Scapular retraining highlight box
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: 0.88, w: 4.6, h: 2.15, fill: { color: "0D3060" }, line: { color: C.blue } });
s.addText("⭐ Scapular Retraining (Priority)", { x: 0.45, y: 0.92, w: 4.3, h: 0.38, fontSize: 12, bold: true, color: C.accent });
s.addText("Per Campbell's Orthopaedics: scapular retraining is central to relieving impingement", {
x: 0.45, y: 1.3, w: 4.3, h: 0.35, fontSize: 9, color: C.light, italic: true
});
const scap = ["Isometric scapular retraction & depression", "Shoulder shrugs (elevation-depression)", "Seated rows (low-resistance band)", "Wall slides"];
s.addText(scap.map((t, i) => ({ text: t, options: { bullet: true, breakLine: i < scap.length - 1, fontSize: 10, color: C.light } })),
{ x: 0.45, y: 1.68, w: 4.3, h: 1.2, valign: "top", paraSpaceBefore: 5 });
// Target muscles
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: 3.1, w: 4.6, h: 2.22, fill: { color: "0D2137" }, line: { color: C.blue, transparency: 60 } });
s.addText("Target Muscles", { x: 0.45, y: 3.15, w: 4.3, h: 0.38, fontSize: 11, bold: true, color: C.blue });
const musc = ["Serratus anterior", "Trapezius (lower > upper)", "Rhomboids", "Latissimus dorsi", "Levator scapulae"];
s.addText(musc.map((t, i) => ({ text: t, options: { bullet: { type: "bullet" }, breakLine: i < musc.length - 1, fontSize: 10.5, color: C.light } })),
{ x: 0.45, y: 3.55, w: 4.3, h: 1.6, valign: "top", paraSpaceBefore: 5 });
// ROM right col
s.addShape(pres.shapes.RECTANGLE, { x: 5.1, y: 0.88, w: 4.6, h: 2.22, fill: { color: "0D2137" }, line: { color: C.accent, transparency: 60 } });
s.addText("🔄 ROM & Stretching", { x: 5.25, y: 0.92, w: 4.3, h: 0.38, fontSize: 11, bold: true, color: C.accent });
const rom2 = ["Progress wand/L-bar: flexion, ER, IR", "Posterior capsule stretch (sleeper stretch)", "Aquatherapy to assist ROM if needed", "Correct posture: forward head, rounded shoulders", "Cryotherapy after exercise sessions"];
s.addText(rom2.map((t, i) => ({ text: t, options: { bullet: true, breakLine: i < rom2.length - 1, fontSize: 10, color: C.light } })),
{ x: 5.25, y: 1.35, w: 4.3, h: 1.6, valign: "top", paraSpaceBefore: 6 });
// RC strengthening right col
s.addShape(pres.shapes.RECTANGLE, { x: 5.1, y: 3.17, w: 4.6, h: 2.15, fill: { color: "0D2137" }, line: { color: C.amber, transparency: 60 } });
s.addText("💪 RC Strengthening & Manual Therapy", { x: 5.25, y: 3.22, w: 4.3, h: 0.38, fontSize: 11, bold: true, color: C.amber });
const rc2 = ["Multi-angle submaximal isometrics", "Theraband IR/ER at 0° (arm at side)", "Scaption to 60–70° (pain-free only)", "Cross-friction massage: supraspinatus — arm in adduction + IR with forearm behind back"];
s.addText(rc2.map((t, i) => ({ text: t, options: { bullet: true, breakLine: i < rc2.length - 1, fontSize: 10, color: C.light } })),
{ x: 5.25, y: 3.62, w: 4.3, h: 1.5, valign: "top", paraSpaceBefore: 5 });
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: 5.28, w: 9.4, h: 0.28, fill: { color: C.blue, transparency: 80 }, line: { color: C.blue, transparency: 80 } });
s.addText("✓ Progress when: Full pain-free ROM in all planes | MMT strength ≥ 70% of contralateral side", {
x: 0.5, y: 5.28, w: 9, h: 0.28, fontSize: 9, color: C.white, valign: "middle"
});
}
// ─── SLIDE 6: PHASE 3 ────────────────────────────────────────────
{
const s = pres.addSlide();
darkBg(s, C.navy);
accentBar(s, C.purple, 0, 0.07);
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.07, w: 10, h: 0.7, fill: { color: C.purple, transparency: 85 }, line: { color: C.purple, transparency: 85 } });
s.addText("PHASE 3 | PROGRESSIVE STRENGTHENING | Weeks 5–8", {
x: 0.5, y: 0.1, w: 9, h: 0.6, fontSize: 13, bold: true, color: "CE93D8", valign: "middle"
});
// RC isotonic
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: 0.88, w: 3, h: 4.35, fill: { color: "0D2137" }, line: { color: C.purple, transparency: 60 } });
s.addText("RC Isotonic Exercises", { x: 0.45, y: 0.93, w: 2.7, h: 0.38, fontSize: 11, bold: true, color: "CE93D8" });
const rc3 = ["Empty/Full can (scaption to 90°)", "ER with theraband (0° → 45° abd.)", "IR with theraband", "Prone horizontal abduction", "Prone extension", "Prone ER (elbow 90°, against gravity)", "Theraband rows", "Forward flexion to 90° (dumbbell)"];
s.addText(rc3.map((t, i) => ({ text: t, options: { bullet: true, breakLine: i < rc3.length - 1, fontSize: 10, color: C.light } })),
{ x: 0.45, y: 1.36, w: 2.7, h: 3.7, valign: "top", paraSpaceBefore: 5 });
// Eccentric loading
s.addShape(pres.shapes.RECTANGLE, { x: 3.55, y: 0.88, w: 3, h: 2.22, fill: { color: "0D3060" }, line: { color: C.accent } });
s.addText("⭐ Eccentric Loading", { x: 3.7, y: 0.93, w: 2.7, h: 0.38, fontSize: 11, bold: true, color: C.accent });
const ecc = ["Eccentric ER: bilateral up, unilateral down", "Eccentric scaption (abduction): same principle", "Low resistance → slow pace initially", "Progress resistance and speed over time", "Key for tendon remodeling & collagen repair"];
s.addText(ecc.map((t, i) => ({ text: t, options: { bullet: true, breakLine: i < ecc.length - 1, fontSize: 10, color: C.light } })),
{ x: 3.7, y: 1.36, w: 2.7, h: 1.6, valign: "top", paraSpaceBefore: 5 });
// Scapular strengthening
s.addShape(pres.shapes.RECTANGLE, { x: 3.55, y: 3.17, w: 3, h: 2.06, fill: { color: "0D2137" }, line: { color: C.amber, transparency: 60 } });
s.addText("Scapular Stabilizers", { x: 3.7, y: 3.22, w: 2.7, h: 0.38, fontSize: 11, bold: true, color: C.amber });
const scap3 = ["Serratus push-ups (wall → floor)", "Seated rows with progressive resistance", "Lat pull-downs", "Y-raises prone (lower trapezius)", "Rhomboid rows"];
s.addText(scap3.map((t, i) => ({ text: t, options: { bullet: true, breakLine: i < scap3.length - 1, fontSize: 10, color: C.light } })),
{ x: 3.7, y: 3.62, w: 2.7, h: 1.45, valign: "top", paraSpaceBefore: 5 });
// Adjunct therapies
s.addShape(pres.shapes.RECTANGLE, { x: 6.8, y: 0.88, w: 2.9, h: 4.35, fill: { color: "0D2137" }, line: { color: C.teal, transparency: 60 } });
s.addText("Adjunct Therapies", { x: 6.95, y: 0.93, w: 2.6, h: 0.38, fontSize: 11, bold: true, color: C.teal });
s.addText("ESWT (Shockwave)", { x: 6.95, y: 1.38, w: 2.6, h: 0.3, fontSize: 10.5, bold: true, color: C.amber });
s.addText("Evidence supports for both calcific & non-calcific tendinopathy; reduces pain especially with exercise", {
x: 6.95, y: 1.68, w: 2.6, h: 0.6, fontSize: 9.5, color: C.light, lineSpacingMultiple: 1.15
});
s.addText("Dry Needling", { x: 6.95, y: 2.4, w: 2.6, h: 0.3, fontSize: 10.5, bold: true, color: C.amber });
s.addText("Trigger point needling to supraspinatus/infraspinatus — BJSM 2026 NMA found this + exercise most effective for function", {
x: 6.95, y: 2.7, w: 2.6, h: 0.65, fontSize: 9.5, color: C.light, lineSpacingMultiple: 1.15
});
s.addText("PRP Injection", { x: 6.95, y: 3.45, w: 2.6, h: 0.3, fontSize: 10.5, bold: true, color: C.amber });
s.addText("Comparable to exercise therapy alone in RCT; may supplement conservative program", {
x: 6.95, y: 3.75, w: 2.6, h: 0.5, fontSize: 9.5, color: C.light, lineSpacingMultiple: 1.15
});
s.addText("Percutaneous Electrolysis", { x: 6.95, y: 4.35, w: 2.6, h: 0.3, fontSize: 10.5, bold: true, color: C.amber });
s.addText("Combined with exercise: greatest pain reduction (NMA 2026)", {
x: 6.95, y: 4.65, w: 2.6, h: 0.45, fontSize: 9.5, color: C.light
});
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: 5.28, w: 9.4, h: 0.28, fill: { color: C.purple, transparency: 80 }, line: { color: C.purple, transparency: 80 } });
s.addText("✓ Progress when: Full ROM | MMT strength ≥ 90% contralateral | Pain-free during isotonic work", {
x: 0.5, y: 5.28, w: 9, h: 0.28, fontSize: 9, color: C.white, valign: "middle"
});
}
// ─── SLIDE 7: PHASE 4 ────────────────────────────────────────────
{
const s = pres.addSlide();
darkBg(s, C.navy);
accentBar(s, C.green, 0, 0.07);
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.07, w: 10, h: 0.7, fill: { color: C.green, transparency: 85 }, line: { color: C.green, transparency: 85 } });
s.addText("PHASE 4 | FUNCTIONAL RETURN | Weeks 9–12+", {
x: 0.5, y: 0.1, w: 9, h: 0.6, fontSize: 13, bold: true, color: "81C784", valign: "middle"
});
// strength power
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: 0.88, w: 3.05, h: 4.35, fill: { color: "0D2137" }, line: { color: C.green, transparency: 60 } });
s.addText("⚡ Strength & Power", { x: 0.45, y: 0.93, w: 2.8, h: 0.38, fontSize: 11, bold: true, color: "81C784" });
const str4 = ["Continue isotonic with increased resistance in all planes", "Resistance at 90° abduction, 90° ER/IR (throwing position)", "Plyometrics: medicine ball throws, wall throws, overhead tosses", "PNF diagonal patterns (D1, D2)", "Isokinetic strengthening if available", "Upper extremity ergometry for endurance"];
s.addText(str4.map((t, i) => ({ text: t, options: { bullet: true, breakLine: i < str4.length - 1, fontSize: 10, color: C.light } })),
{ x: 0.45, y: 1.36, w: 2.8, h: 3.7, valign: "top", paraSpaceBefore: 6 });
// NMC & sport specificity
s.addShape(pres.shapes.RECTANGLE, { x: 3.6, y: 0.88, w: 3.05, h: 4.35, fill: { color: "0D2137" }, line: { color: C.accent, transparency: 60 } });
s.addText("🎯 Neuromuscular & Sport-Specific", { x: 3.75, y: 0.93, w: 2.8, h: 0.38, fontSize: 11, bold: true, color: C.accent });
const nmc = ["High-speed, high-energy exercises", "Eccentric exercises in diagonal patterns", "Proprioception & balance training", "Interval throwing program", "Tennis / Golf sport-specific drills", "Overhead athlete: progressive return protocol"];
s.addText(nmc.map((t, i) => ({ text: t, options: { bullet: true, breakLine: i < nmc.length - 1, fontSize: 10, color: C.light } })),
{ x: 3.75, y: 1.36, w: 2.8, h: 3.7, valign: "top", paraSpaceBefore: 6 });
// RTS criteria
s.addShape(pres.shapes.RECTANGLE, { x: 6.9, y: 0.88, w: 2.85, h: 4.35, fill: { color: "0D3010" }, line: { color: C.green } });
s.addText("✅ Return-to-Sport Criteria", { x: 7.0, y: 0.93, w: 2.65, h: 0.38, fontSize: 11, bold: true, color: "81C784" });
const rts = [
"Full pain-free ROM matching contralateral",
"MMT strength ≥ 90% of contralateral",
"No pain during sport-specific tasks",
"Satisfactory DASH / ASES scores",
"Confident proprioception & neuromuscular control",
];
s.addText(rts.map((t, i) => ({ text: t, options: { bullet: { type: "bullet" }, breakLine: i < rts.length - 1, fontSize: 10.5, color: C.light } })),
{ x: 7.0, y: 1.4, w: 2.65, h: 3.2, valign: "top", paraSpaceBefore: 9 });
s.addShape(pres.shapes.RECTANGLE, { x: 6.9, y: 4.3, w: 2.85, h: 0.93, fill: { color: "0D4010" }, line: { color: C.green, transparency: 50 } });
s.addText("⚠️ Surgical Referral", { x: 7.0, y: 4.33, w: 2.65, h: 0.3, fontSize: 10, bold: true, color: "FF8A65" });
s.addText("If no response after 3–4 months of conservative therapy → consider arthroscopic subacromial decompression", {
x: 7.0, y: 4.62, w: 2.65, h: 0.55, fontSize: 9, color: C.light, lineSpacingMultiple: 1.1
});
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: 5.28, w: 9.4, h: 0.28, fill: { color: C.green, transparency: 80 }, line: { color: C.green, transparency: 80 } });
s.addText("✓ Goal: Return to full pre-injury sport or occupational activity without pain recurrence", {
x: 0.5, y: 5.28, w: 9, h: 0.28, fontSize: 9, color: C.white, valign: "middle"
});
}
// ─── SLIDE 8: EXERCISE SUMMARY TABLE ─────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.offwhite }, line: { color: C.offwhite } });
accentBar(s, C.navy, 0, 0.07);
s.addText("EXERCISE QUICK REFERENCE", {
x: 0.5, y: 0.15, w: 9, h: 0.4, fontSize: 12, bold: true, color: C.navy, charSpacing: 3
});
const headers = ["Exercise", "Phase 1", "Phase 2", "Phase 3", "Phase 4"];
const rows = [
["Pendulum / Codman's", "✓", "✓", "", ""],
["Isometrics (IR/ER)", "✓", "✓", "", ""],
["Scapular isometrics", "✓", "✓", "", ""],
["Theraband IR/ER (0°)", "", "✓", "✓", ""],
["Scapular rows", "", "✓", "✓", "✓"],
["Sleeper stretch", "", "✓", "✓", "✓"],
["Empty/Full can", "", "", "✓", "✓"],
["Eccentric ER & scaption", "", "", "✓", "✓"],
["Serratus push-ups", "", "✓", "✓", "✓"],
["Prone horizontal abduction", "", "", "✓", "✓"],
["Prone ER & extension", "", "", "✓", "✓"],
["Plyometrics / PNF", "", "", "", "✓"],
["Sport-specific drills", "", "", "", "✓"],
];
const colW = [3.5, 1.4, 1.4, 1.4, 1.4];
const colX = [0.3, 3.85, 5.25, 6.65, 8.05];
const phaseColors = [C.teal, C.blue, C.purple, C.green];
const rowH = 0.33;
const startY = 0.65;
// header row
headers.forEach((h, ci) => {
s.addShape(pres.shapes.RECTANGLE, {
x: colX[ci], y: startY, w: colW[ci], h: 0.38,
fill: { color: ci === 0 ? C.navy : phaseColors[ci - 1] },
line: { color: C.white }
});
s.addText(h, {
x: colX[ci], y: startY, w: colW[ci], h: 0.38,
fontSize: 10, bold: true, color: C.white, align: "center", valign: "middle", margin: 0
});
});
// data rows
rows.forEach((row, ri) => {
const y = startY + 0.38 + ri * rowH;
const bgColor = ri % 2 === 0 ? "FFFFFF" : "EEF3FA";
row.forEach((cell, ci) => {
s.addShape(pres.shapes.RECTANGLE, {
x: colX[ci], y, w: colW[ci], h: rowH,
fill: { color: bgColor }, line: { color: "CCCCCC" }
});
const isCheck = cell === "✓";
s.addText(cell, {
x: colX[ci], y, w: colW[ci], h: rowH,
fontSize: isCheck ? 13 : 10,
color: isCheck ? phaseColors[ci - 1] : "333333",
bold: isCheck,
align: ci === 0 ? "left" : "center",
valign: "middle",
margin: ci === 0 ? 6 : 0
});
});
});
}
// ─── SLIDE 9: KEY EVIDENCE ────────────────────────────────────────
{
const s = pres.addSlide();
darkBg(s, C.dark);
accentBar(s, C.amber, 0, 0.07);
s.addText("KEY EVIDENCE", {
x: 0.5, y: 0.18, w: 9, h: 0.4, fontSize: 11, bold: true, color: C.amber, charSpacing: 4
});
const papers = [
{
ref: "Lazzarini et al. — Br J Sports Med (2026)",
type: "Systematic Review + Network Meta-Analysis",
n: "89 RCTs | 5,532 participants",
finding: "Exercises targeting shoulder + scapular muscles may reduce pain (SMD -0.79) and improve function. Adding trigger point dry needling to combined exercise produced greatest functional improvement. Percutaneous electrolysis + combined exercise gave greatest pain relief.",
color: C.amber
},
{
ref: "Lazzarini et al. — Physical Therapy (2025)",
type: "Systematic Review + Meta-Analysis",
n: "RCTs comparing CSI vs. PT",
finding: "Corticosteroid injections provide short-term benefit (3–12 weeks) but physiotherapist-led exercise interventions are comparable or superior at medium/long-term follow-up for rotator cuff tendinopathy.",
color: C.accent
},
{
ref: "Campbell's Operative Orthopaedics 15th Ed. (2026)",
type: "Authoritative Textbook",
n: "Clinical Practice Guideline",
finding: "Scapular motor control and posterior scapular strengthening offloads the anterior supraspinatus and biceps tendon. Programs targeting serratus anterior, trapezius, rhomboids, latissimus dorsi are first-line. Surgery if failure after 3–4 months.",
color: C.teal
},
];
papers.forEach((p, i) => {
const y = 0.7 + i * 1.6;
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y, w: 9.4, h: 1.5,
fill: { color: "0D1F35" }, line: { color: p.color, transparency: 60 }
});
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y, w: 0.12, h: 1.5, fill: { color: p.color }, line: { color: p.color } });
s.addText(p.ref, { x: 0.55, y: y + 0.07, w: 5, h: 0.32, fontSize: 11, bold: true, color: p.color });
s.addText(p.type + " | " + p.n, { x: 0.55, y: y + 0.38, w: 9, h: 0.25, fontSize: 9, color: C.gray, italic: true });
s.addText(p.finding, { x: 0.55, y: y + 0.63, w: 9, h: 0.75, fontSize: 10, color: C.light, lineSpacingMultiple: 1.2 });
});
}
// ─── SLIDE 10: SUMMARY / CLOSING ─────────────────────────────────
{
const s = pres.addSlide();
darkBg(s, C.navy);
accentBar(s, C.accent, 0, 0.07);
s.addShape(pres.shapes.OVAL, { x: -1, y: 2.5, w: 4, h: 4, fill: { color: C.blue, transparency: 85 }, line: { color: C.blue, transparency: 85 } });
s.addShape(pres.shapes.OVAL, { x: 8, y: -1, w: 3.5, h: 3.5, fill: { color: C.teal, transparency: 85 }, line: { color: C.teal, transparency: 85 } });
s.addText("KEY TAKEAWAYS", {
x: 0.7, y: 0.25, w: 8, h: 0.38, fontSize: 11, color: C.accent, bold: true, charSpacing: 4
});
const takeaways = [
{ icon: "🎯", text: "Exercises targeting both shoulder AND scapular muscles = first-line physiotherapy (NMA 2026)" },
{ icon: "⭐", text: "Scapular retraining (serratus anterior, trapezius, rhomboids) is central to relieving impingement" },
{ icon: "📉", text: "Eccentric loading drives tendon remodeling — introduce by Phase 3" },
{ icon: "💉", text: "Corticosteroid injection: short-term benefit only; max 1–2 subacromial injections" },
{ icon: "⚡", text: "Dry needling + combined exercise = greatest functional improvement (BJSM 2026)" },
{ icon: "⏰", text: "3–4 months conservative therapy before surgical referral (arthroscopic decompression)" },
{ icon: "✅", text: "Return-to-sport: full ROM + MMT ≥ 90% contralateral + pain-free sport-specific activity" },
];
takeaways.forEach((item, i) => {
const x = i < 4 ? 0.4 : 5.3;
const y = 0.78 + (i < 4 ? i : i - 4) * 0.9;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x, y, w: 4.5, h: 0.78,
fill: { color: "0D1F35" }, line: { color: "1E3A5F" }, rectRadius: 0.06,
shadow: { type: "outer", color: "000000", blur: 4, offset: 1, angle: 135, opacity: 0.1 }
});
s.addText(item.icon, { x: x + 0.1, y, w: 0.5, h: 0.78, fontSize: 18, align: "center", valign: "middle", margin: 0 });
s.addText(item.text, { x: x + 0.65, y: y + 0.04, w: 3.72, h: 0.7, fontSize: 10, color: C.light, valign: "middle", lineSpacingMultiple: 1.2 });
});
s.addText("Sources: Campbell's Operative Orthopaedics 2026 | Lazzarini et al. BJSM 2026 (PMID 42135016) | Medscape", {
x: 0.4, y: 5.32, w: 9.2, h: 0.25, fontSize: 7.5, color: C.gray, italic: true
});
}
// ─── WRITE FILE ───────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/supraspinatus-ppt/Supraspinatus_Tendinitis_Physiotherapy_Protocol.pptx" })
.then(() => console.log("✅ PPT created successfully"))
.catch(err => { console.error("❌ Error:", err); process.exit(1); });
cd /home/daytona/workspace/supraspinatus-ppt && node create_ppt.js
ls -lh /home/daytona/workspace/supraspinatus-ppt/
Supraspinatus Tendinitis Physiotherapy Protocol
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title slide (navy/teal theme) |
| 2 | Anatomy & Clinical Overview (Hawkins, Neer, painful arc tests) |
| 3 | 4-Phase Overview (visual card layout with timeline) |
| 4 | Phase 1 - Acute/Pain Control (Weeks 1-2) |
| 5 | Phase 2 - Early Recovery (Weeks 3-4) |
| 6 | Phase 3 - Progressive Strengthening (Weeks 5-8) |
| 7 | Phase 4 - Functional Return (Weeks 9-12+) |
| 8 | Exercise Quick Reference Table (all 4 phases, color-coded) |
| 9 | Key Evidence (Campbell's 2026, BJSM NMA 2026) |
| 10 | Key Takeaways & Summary |