attachment
attachment
attachment
attachment

Prepare physiotherapy protocol

Reading File
Searching PubMed

supracondylar humerus fracture children physiotherapy rehabilitation

Searching the Web

post K-wire fixation supracondylar fracture humerus pediatric physiotherapy protocol 2024

Finding Sources
Searching PubMed

supracondylar humerus fracture children elbow range of motion recovery

Reading Web Page

https://pmc.ncbi.nlm.nih.gov/articles/PMC12110452

Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Searching the Web

supracondylar fracture humerus child physiotherapy exercises after K-wire removal week by week protocol

Reading Web Page

https://www.physio-pedia.com/Supracondylar_Humeral_Fracture

Reading File
Running Command

ls /home/daytona/workspace/ && ls /home/daytona/skills/docx/

Running Command

mkdir -p /home/daytona/workspace/physio-protocol

Writing File

~/physio-protocol/generate_protocol.js

const {
  Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
  HeadingLevel, AlignmentType, BorderStyle, WidthType, ShadingType,
  VerticalAlign, PageNumber, Header, Footer, UnderlineType
} = require('docx');
const fs = require('fs');

// ─── helpers ───────────────────────────────────────────────────────────────
const heading1 = (text) => new Paragraph({
  text,
  heading: HeadingLevel.HEADING_1,
  spacing: { before: 240, after: 120 },
  shading: { type: ShadingType.SOLID, color: '1F4E79', fill: '1F4E79' },
  run: { color: 'FFFFFF' }
});

// Custom heading with background
const sectionHeading = (text, bgColor = '1F4E79') => new Paragraph({
  children: [new TextRun({ text, bold: true, size: 26, color: 'FFFFFF', font: 'Calibri' })],
  spacing: { before: 240, after: 100 },
  shading: { type: ShadingType.SOLID, color: bgColor, fill: bgColor },
  indent: { left: 120 },
});

const subHeading = (text) => new Paragraph({
  children: [new TextRun({ text, bold: true, size: 24, color: '1F4E79', font: 'Calibri' })],
  spacing: { before: 160, after: 80 },
});

const bodyText = (text) => new Paragraph({
  children: [new TextRun({ text, size: 22, font: 'Calibri' })],
  spacing: { before: 60, after: 60 },
  indent: { left: 240 },
});

const bulletItem = (text) => new Paragraph({
  children: [new TextRun({ text: '\u2022  ' + text, size: 22, font: 'Calibri' })],
  spacing: { before: 60, after: 40 },
  indent: { left: 480 },
});

const boldBullet = (label, text) => new Paragraph({
  children: [
    new TextRun({ text: '\u2022  ', size: 22, font: 'Calibri' }),
    new TextRun({ text: label + ': ', bold: true, size: 22, font: 'Calibri' }),
    new TextRun({ text, size: 22, font: 'Calibri' }),
  ],
  spacing: { before: 60, after: 40 },
  indent: { left: 480 },
});

const emptyLine = () => new Paragraph({ text: '', spacing: { before: 80, after: 80 } });

const makeCell = (text, isHeader = false, bgColor = null, span = 1) => {
  const shading = bgColor ? { type: ShadingType.SOLID, color: bgColor, fill: bgColor } : undefined;
  return new TableCell({
    children: [new Paragraph({
      children: [new TextRun({
        text,
        bold: isHeader,
        size: isHeader ? 22 : 20,
        color: isHeader ? 'FFFFFF' : '2C2C2C',
        font: 'Calibri',
      })],
      alignment: AlignmentType.CENTER,
      spacing: { before: 60, after: 60 },
    })],
    shading,
    columnSpan: span,
    verticalAlign: VerticalAlign.CENTER,
    margins: { top: 80, bottom: 80, left: 100, right: 100 },
  });
};

// ─── Phase Table ───────────────────────────────────────────────────────────
const phaseTable = () => new Table({
  width: { size: 100, type: WidthType.PERCENTAGE },
  rows: [
    new TableRow({
      children: [
        makeCell('Phase', true, '1F4E79'),
        makeCell('Timeline', true, '1F4E79'),
        makeCell('Goals', true, '1F4E79'),
        makeCell('Key Interventions', true, '1F4E79'),
        makeCell('Precautions', true, '1F4E79'),
      ],
    }),
    new TableRow({
      children: [
        makeCell('Phase 0\n(K-wire in situ)', false, 'D6E4F0'),
        makeCell('Week 0-4\n(post-op)', false, 'D6E4F0'),
        makeCell('Reduce swelling\nPrevent stiffness of non-immobilised joints', false, 'D6E4F0'),
        makeCell('Finger/wrist active exercises\nShoulder pendulum\nElevation & cryotherapy\nParent education', false, 'D6E4F0'),
        makeCell('No elbow ROM\nNo weight-bearing\nMonitor pin sites', false, 'D6E4F0'),
      ],
    }),
    new TableRow({
      children: [
        makeCell('Phase 1\n(Post-K-wire removal)', false, 'EBF5FB'),
        makeCell('Week 4-8', false, 'EBF5FB'),
        makeCell('Restore elbow ROM\nReduce pain & swelling', false, 'EBF5FB'),
        makeCell('Active-assisted elbow flex/ext\nForearm supination/pronation\nHeat therapy pre-exercise\nGentle play activities', false, 'EBF5FB'),
        makeCell('Avoid forced passive stretch\nNo heavy lifting\nStop if severe pain', false, 'EBF5FB'),
      ],
    }),
    new TableRow({
      children: [
        makeCell('Phase 2\n(Strengthening)', false, 'D6E4F0'),
        makeCell('Week 8-12', false, 'D6E4F0'),
        makeCell('Full or near-full ROM\nRestore muscle strength', false, 'D6E4F0'),
        makeCell('Active resistive exercises\nFunctional ADL training\nFine motor tasks\nGravity-resisted movements', false, 'D6E4F0'),
        makeCell('No contact sports\nMonitor for cubitus varus\nAvoid valgus stress', false, 'D6E4F0'),
      ],
    }),
    new TableRow({
      children: [
        makeCell('Phase 3\n(Return to Activity)', false, 'EBF5FB'),
        makeCell('Week 12-16', false, 'EBF5FB'),
        makeCell('Sport & school return\nNormal function', false, 'EBF5FB'),
        makeCell('Sport-specific drills\nBilateral strengthening\nCoordination & proprioception', false, 'EBF5FB'),
        makeCell('Surgeon clearance needed for contact sports', false, 'EBF5FB'),
      ],
    }),
  ],
});

// ─── Exercise Schedule Table ───────────────────────────────────────────────
const exerciseTable = () => new Table({
  width: { size: 100, type: WidthType.PERCENTAGE },
  rows: [
    new TableRow({
      children: [
        makeCell('Exercise', true, '2E75B6'),
        makeCell('Sets x Reps', true, '2E75B6'),
        makeCell('Frequency', true, '2E75B6'),
        makeCell('Phase', true, '2E75B6'),
        makeCell('Notes', true, '2E75B6'),
      ],
    }),
    new TableRow({ children: [makeCell('Finger opposition & grip', false, 'D6EAF8'), makeCell('3 x 10', false, 'D6EAF8'), makeCell('3x/day', false, 'D6EAF8'), makeCell('0', false, 'D6EAF8'), makeCell('With K-wire in situ', false, 'D6EAF8')] }),
    new TableRow({ children: [makeCell('Wrist flex/ext AROM', false, null), makeCell('3 x 10', false, null), makeCell('3x/day', false, null), makeCell('0', false, null), makeCell('Keep elbow still', false, null)] }),
    new TableRow({ children: [makeCell('Shoulder pendulum', false, 'D6EAF8'), makeCell('3 x 10', false, 'D6EAF8'), makeCell('2x/day', false, 'D6EAF8'), makeCell('0', false, 'D6EAF8'), makeCell('Gravity-assisted', false, 'D6EAF8')] }),
    new TableRow({ children: [makeCell('Active elbow flexion (AROM)', false, null), makeCell('3 x 15', false, null), makeCell('3x/day', false, null), makeCell('1', false, null), makeCell('Within comfort; progress ROM daily', false, null)] }),
    new TableRow({ children: [makeCell('Active elbow extension (AROM)', false, 'D6EAF8'), makeCell('3 x 15', false, 'D6EAF8'), makeCell('3x/day', false, 'D6EAF8'), makeCell('1', false, 'D6EAF8'), makeCell('Do NOT force terminal ext', false, 'D6EAF8')] }),
    new TableRow({ children: [makeCell('Forearm supination/pronation', false, null), makeCell('3 x 10', false, null), makeCell('3x/day', false, null), makeCell('1', false, null), makeCell('Elbow at 90 degrees', false, null)] }),
    new TableRow({ children: [makeCell('Active-assisted flex with therapist', false, 'D6EAF8'), makeCell('3 x 10', false, 'D6EAF8'), makeCell('Daily PT session', false, 'D6EAF8'), makeCell('1', false, 'D6EAF8'), makeCell('Gentle over-pressure at end range', false, 'D6EAF8')] }),
    new TableRow({ children: [makeCell('Theraband elbow flexion (light)', false, null), makeCell('3 x 12', false, null), makeCell('Daily', false, null), makeCell('2', false, null), makeCell('Start week 8', false, null)] }),
    new TableRow({ children: [makeCell('Putty/clay squeeze & manipulation', false, 'D6EAF8'), makeCell('5 min sessions', false, 'D6EAF8'), makeCell('3x/day', false, 'D6EAF8'), makeCell('2', false, 'D6EAF8'), makeCell('Fine motor + grip strength', false, 'D6EAF8')] }),
    new TableRow({ children: [makeCell('Bilateral pushing/pulling play', false, null), makeCell('Free play', false, null), makeCell('2x/day', false, null), makeCell('3', false, null), makeCell('Age-appropriate toys', false, null)] }),
    new TableRow({ children: [makeCell('Ball catching & throwing', false, 'D6EAF8'), makeCell('3 x 10', false, 'D6EAF8'), makeCell('Daily', false, 'D6EAF8'), makeCell('3', false, 'D6EAF8'), makeCell('Proprioception & coordination', false, 'D6EAF8')] }),
  ],
});

// ─── ROM Goals Table ───────────────────────────────────────────────────────
const romTable = () => new Table({
  width: { size: 90, type: WidthType.PERCENTAGE },
  rows: [
    new TableRow({ children: [makeCell('Timepoint', true, '1F4E79'), makeCell('Elbow Flexion', true, '1F4E79'), makeCell('Elbow Extension', true, '1F4E79'), makeCell('Supination/Pronation', true, '1F4E79')] }),
    new TableRow({ children: [makeCell('At K-wire removal (Wk 4)', false, 'FEF9E7'), makeCell('Limited by pain', false, 'FEF9E7'), makeCell('May lack 20-30 degrees', false, 'FEF9E7'), makeCell('Not assessed yet', false, 'FEF9E7')] }),
    new TableRow({ children: [makeCell('Week 6', false, null), makeCell('100-110 degrees', false, null), makeCell('-10 to 0 degrees', false, null), makeCell('~60/60 degrees', false, null)] }),
    new TableRow({ children: [makeCell('Week 8', false, 'FEF9E7'), makeCell('120-130 degrees', false, 'FEF9E7'), makeCell('0 to -5 degrees', false, 'FEF9E7'), makeCell('~75/75 degrees', false, 'FEF9E7')] }),
    new TableRow({ children: [makeCell('Week 12', false, null), makeCell('>135 degrees (full)', false, null), makeCell('Full extension', false, null), makeCell('Full (90/90)', false, null)] }),
    new TableRow({ children: [makeCell('Week 16', false, 'FEF9E7'), makeCell('Equal to opposite arm', false, 'FEF9E7'), makeCell('Equal to opposite arm', false, 'FEF9E7'), makeCell('Equal to opposite arm', false, 'FEF9E7')] }),
  ],
});

// ─── Red Flags Table ───────────────────────────────────────────────────────
const redFlagTable = () => new Table({
  width: { size: 90, type: WidthType.PERCENTAGE },
  rows: [
    new TableRow({ children: [makeCell('Red Flag Sign', true, 'C0392B'), makeCell('Possible Cause', true, 'C0392B'), makeCell('Action', true, 'C0392B')] }),
    new TableRow({ children: [makeCell('Severe increasing pain', false, 'FADBD8'), makeCell('Compartment syndrome / infection', false, 'FADBD8'), makeCell('STOP physio - refer urgently to surgeon', false, 'FADBD8')] }),
    new TableRow({ children: [makeCell('Numbness / tingling / weakness', false, null), makeCell('Nerve injury (AIN / radial / ulnar)', false, null), makeCell('Neurological assessment; refer to surgeon', false, null)] }),
    new TableRow({ children: [makeCell('Loss of radial pulse / cold pale hand', false, 'FADBD8'), makeCell('Vascular compromise', false, 'FADBD8'), makeCell('EMERGENCY - surgical review immediately', false, 'FADBD8')] }),
    new TableRow({ children: [makeCell('Progressive varus deformity (cubitus varus)', false, null), makeCell('Malunion / inadequate reduction', false, null), makeCell('Refer to orthopedic surgeon', false, null)] }),
    new TableRow({ children: [makeCell('Hard swelling around elbow', false, 'FADBD8'), makeCell('Myositis ossificans', false, 'FADBD8'), makeCell('Stop passive stretching; X-ray; refer', false, 'FADBD8')] }),
    new TableRow({ children: [makeCell('Pin site redness / discharge', false, null), makeCell('Pin site infection', false, null), makeCell('Notify surgeon; do not remove pins', false, null)] }),
  ],
});

// ─── Document Assembly ─────────────────────────────────────────────────────
const doc = new Document({
  styles: {
    default: {
      document: {
        run: { font: 'Calibri', size: 22 },
      },
    },
  },
  sections: [{
    headers: {
      default: new Header({
        children: [new Paragraph({
          children: [
            new TextRun({ text: 'PHYSIOTHERAPY PROTOCOL  |  Supracondylar Humerus Fracture (Post-CRPP)  |  Pediatric Orthopedics', size: 18, color: '808080', font: 'Calibri' }),
          ],
          alignment: AlignmentType.CENTER,
          border: { bottom: { style: BorderStyle.SINGLE, size: 6, color: '1F4E79' } },
        })],
      }),
    },
    footers: {
      default: new Footer({
        children: [new Paragraph({
          children: [
            new TextRun({ text: 'Patient: Rajveer Bhadale  |  DOB: 7 years  |  Diagnosis: Left Supracondylar Humerus Fracture (Gartland III) Post-CRPP  |  Page ', size: 16, color: '808080', font: 'Calibri' }),
            new TextRun({ children: [PageNumber.CURRENT], size: 16, color: '808080' }),
          ],
          alignment: AlignmentType.CENTER,
          border: { top: { style: BorderStyle.SINGLE, size: 6, color: '1F4E79' } },
        })],
      }),
    },
    children: [

      // ── TITLE BLOCK ─────────────────────────────────────────
      new Paragraph({
        children: [new TextRun({ text: 'PHYSIOTHERAPY PROTOCOL', bold: true, size: 40, color: '1F4E79', font: 'Calibri' })],
        alignment: AlignmentType.CENTER,
        spacing: { before: 200, after: 100 },
      }),
      new Paragraph({
        children: [new TextRun({ text: 'Pediatric Supracondylar Humerus Fracture', bold: true, size: 32, color: '2E75B6', font: 'Calibri' })],
        alignment: AlignmentType.CENTER,
        spacing: { before: 80, after: 60 },
      }),
      new Paragraph({
        children: [new TextRun({ text: 'Post Closed Reduction + Percutaneous K-Wire Fixation (CRPP)', size: 26, color: '595959', font: 'Calibri', italics: true })],
        alignment: AlignmentType.CENTER,
        spacing: { before: 60, after: 200 },
      }),

      // ── PATIENT INFO BOX ─────────────────────────────────────
      new Table({
        width: { size: 100, type: WidthType.PERCENTAGE },
        rows: [
          new TableRow({ children: [makeCell('PATIENT INFORMATION', true, '2E75B6', 4)] }),
          new TableRow({
            children: [
              makeCell('Name', true, 'D6E4F0'),
              makeCell('Rajveer Bhadale', false, null),
              makeCell('Age / Sex', true, 'D6E4F0'),
              makeCell('7 years / Male', false, null),
            ],
          }),
          new TableRow({
            children: [
              makeCell('Diagnosis', true, 'D6E4F0'),
              makeCell('Left Supracondylar Humerus Fracture (Extension type)', false, null),
              makeCell('Classification', true, 'D6E4F0'),
              makeCell('Gartland Type III (Complete displacement)', false, null),
            ],
          }),
          new TableRow({
            children: [
              makeCell('Fracture Date', true, 'D6E4F0'),
              makeCell('20 April 2026', false, null),
              makeCell('Surgery Date', true, 'D6E4F0'),
              makeCell('~20 April 2026 (CRPP)', false, null),
            ],
          }),
          new TableRow({
            children: [
              makeCell('Post-op X-ray', true, 'D6E4F0'),
              makeCell('20 May 2026 - K-wires in situ (3 pins, crossed configuration)', false, null),
              makeCell('Hospital', true, 'D6E4F0'),
              makeCell('Manipal Hospital, Kharadi, Pune', false, null),
            ],
          }),
          new TableRow({
            children: [
              makeCell('Protocol Date', true, 'D6E4F0'),
              makeCell('4 June 2026', false, null),
              makeCell('Current Status', true, 'D6E4F0'),
              makeCell('~6 weeks post-op; K-wires likely recently removed or due removal', false, null),
            ],
          }),
        ],
      }),

      emptyLine(),

      // ── RADIOLOGICAL FINDINGS ─────────────────────────────────
      sectionHeading('1. RADIOLOGICAL FINDINGS SUMMARY', '1F4E79'),
      subHeading('Pre-operative X-ray (20 April 2026):'),
      bulletItem('Left elbow AP and Lateral views taken at Carestream Health R&D Hospital'),
      bulletItem('Supracondylar humerus fracture identified - complete displacement of distal humeral fragment'),
      bulletItem('Extension-type fracture pattern (most common in pediatric age group)'),
      bulletItem('Classified as Gartland Type III (complete displacement, loss of posterior cortical hinge)'),
      emptyLine(),
      subHeading('Post-operative X-ray (20 May 2026 - Manipal Hospital, Kharadi, Pune):'),
      bulletItem('Closed reduction and percutaneous K-wire fixation (CRPP) performed'),
      bulletItem('Three K-wires in place in crossed configuration - provides excellent rotational stability'),
      bulletItem('Satisfactory fracture alignment noted on both AP and Lateral views'),
      bulletItem('Fracture site at ~4 weeks post-op: early callus formation expected'),
      bulletItem('K-wire removal typically scheduled at 3-4 weeks post-op (confirm with operating surgeon)'),
      emptyLine(),

      // ── PHYSIOTHERAPY OVERVIEW ─────────────────────────────────
      sectionHeading('2. PHYSIOTHERAPY OVERVIEW & GOALS', '1F4E79'),
      bodyText('This protocol is designed for a 7-year-old male patient following closed reduction and percutaneous K-wire fixation of a Gartland Type III left supracondylar humerus fracture. Physiotherapy focuses on play-based, pain-free active exercises respecting the pediatric healing timeline.'),
      emptyLine(),
      subHeading('Primary Goals:'),
      bulletItem('Restore full elbow range of motion (flexion, extension, supination, pronation)'),
      bulletItem('Reduce pain and post-surgical swelling'),
      bulletItem('Prevent and manage elbow stiffness / contracture'),
      bulletItem('Restore forearm and hand muscle strength'),
      bulletItem('Facilitate return to age-appropriate daily activities, play, and school'),
      bulletItem('Monitor for and prevent late complications (cubitus varus, myositis ossificans, nerve injury)'),
      emptyLine(),
      subHeading('Evidence Base Note:'),
      bodyText('Research is mixed on formal PT for uncomplicated supracondylar fractures in children. For Gartland III fractures treated with CRPP, active physiotherapy produces faster return to near-normal ROM compared to natural recovery alone. Passive forced manipulation is CONTRAINDICATED (risk of myositis ossificans). Active-assisted exercises and age-appropriate play activities are the foundation of treatment. (Longdom Physio Guidelines 2023; Physiopedia 2024; JOCR 2025)'),
      emptyLine(),

      // ── PHASE TABLE ─────────────────────────────────────────────
      sectionHeading('3. REHABILITATION PHASES AT A GLANCE', '2E75B6'),
      emptyLine(),
      phaseTable(),
      emptyLine(),

      // ── PHASE 0 DETAIL ──────────────────────────────────────────
      sectionHeading('4. PHASE 0 - IMMOBILISATION PHASE (Weeks 0-4, K-wire in situ)', '375623'),
      subHeading('Physiotherapy Role (with cast/splint and K-wires):'),
      boldBullet('Elevation', 'Keep limb elevated above heart level using a collar-and-cuff sling or elevated pillow. Reduces swelling and pain.'),
      boldBullet('Cryotherapy', 'Ice pack (wrapped in cloth) to elbow region for 10-15 min, 3-4x/day. Reduces post-op swelling.'),
      boldBullet('Finger exercises', 'Full active finger flexion/extension, opposition, and abduction - 10 reps, 3x/day. Prevents tendon stiffness.'),
      boldBullet('Wrist AROM', 'Active wrist flexion and extension through full range - 10 reps, 3x/day. Keep elbow still.'),
      boldBullet('Shoulder pendulum', 'Gentle gravity-assisted shoulder pendulum (forward/backward/circular) - 10 reps, 2x/day. Prevent shoulder stiffness.'),
      boldBullet('NO elbow exercises', 'Elbow joint must remain immobile while K-wires are in situ.'),
      emptyLine(),
      subHeading('Parent/Caregiver Education:'),
      bulletItem('Watch for signs of compartment syndrome: severe pain, tight cast, pale/cold/pulseless hand, finger tingling'),
      bulletItem('Keep cast/splint clean and dry'),
      bulletItem('Monitor pin site for redness, discharge, or loosening'),
      bulletItem('No weight-bearing through the operated limb'),
      bulletItem('Return to surgeon immediately if any of above noted'),
      emptyLine(),

      // ── PHASE 1 DETAIL ──────────────────────────────────────────
      sectionHeading('5. PHASE 1 - MOBILISATION PHASE (Weeks 4-8, Post K-wire removal)', '1F4E79'),
      bodyText('Begin within 1-2 weeks after K-wire removal and confirmation of radiological healing. As of protocol date (6 June 2026), the patient is approximately 6 weeks post-op and should be entering this phase.'),
      emptyLine(),
      subHeading('Thermal Modalities (Pre-exercise):'),
      boldBullet('Heat therapy', 'Warm towel/heat pack to elbow for 10 minutes BEFORE exercises. Increases soft tissue extensibility and reduces pain. Do NOT apply heat if acute swelling/inflammation still present.'),
      boldBullet('Paraffin wax bath', 'Optional 5-minute paraffin dip before exercise sessions. Excellent for small joint mobility (use from week 5-6).'),
      emptyLine(),
      subHeading('Active Range of Motion Exercises:'),
      boldBullet('Elbow flexion AROM', 'Seated with elbow at side. Actively flex elbow to maximum comfortable range. Hold 2 sec at end range. 15 reps x 3 sets, 3x/day. Progress range daily.'),
      boldBullet('Elbow extension AROM', 'Actively extend elbow from full flexion to maximum extension. Let gravity assist in prone. 15 reps x 3 sets, 3x/day. Do NOT force terminal extension.'),
      boldBullet('Forearm supination', 'Elbow at 90 degrees, forearm neutral. Rotate palm upward (supination). 10 reps x 3 sets, 3x/day.'),
      boldBullet('Forearm pronation', 'Same position. Rotate palm downward (pronation). 10 reps x 3 sets, 3x/day.'),
      emptyLine(),
      subHeading('Active-Assisted Exercises (Therapist-guided):'),
      boldBullet('AAROM elbow flexion', 'Therapist provides gentle over-pressure at end range of flexion - sustained 10 sec stretch. 3-5 reps per session. Only pain-free.'),
      boldBullet('Low-load prolonged stretch (LLPS)', 'At end of session: sustained gentle stretch into extension for 3-5 minutes using body weight or soft elastic. Effective for extension deficit.'),
      emptyLine(),
      subHeading('Electrotherapy (Adjunct):'),
      boldBullet('TENS (Transcutaneous Electrical Nerve Stimulation)', '80-100 Hz, sensory level, 20 min per session for pain management. Effective for children who cannot perform exercises due to pain.'),
      boldBullet('Therapeutic Ultrasound', '1 MHz, 0.5-1.0 W/cm2, pulsed 1:4, 5 min over fracture site. Aids soft tissue healing and reduces fibrosis (weeks 4-8 only).'),
      emptyLine(),
      subHeading('Play-Based Functional Activities:'),
      bulletItem('Ball rolling on a table (elbow AROM through play)'),
      bulletItem('Stacking blocks or rings (elbow flexion/extension)'),
      bulletItem('Peeling stickers, threading beads (fine motor + supination)'),
      bulletItem('Splashing water in bowl (forearm rotation)'),
      bulletItem('Drawing/coloring at table level (all movements combined)'),
      emptyLine(),

      // ── PHASE 2 DETAIL ──────────────────────────────────────────
      sectionHeading('6. PHASE 2 - STRENGTHENING PHASE (Weeks 8-12)', '1F4E79'),
      subHeading('Resistance Exercises:'),
      boldBullet('Theraband elbow flexion', 'Light resistance band, 12 reps x 3 sets. Progress resistance as tolerated.'),
      boldBullet('Gravity-resisted elbow ext', 'Prone position, arm hanging: extend elbow against gravity. 12 reps x 3 sets.'),
      boldBullet('Wrist strengthening', 'Wrist curls with very light resistance (0.25-0.5 kg soft weight). 12 reps x 3 sets.'),
      boldBullet('Grip strength', 'Putty/clay manipulation - squeeze, pinch, roll. 5 min sessions, 3x/day.'),
      boldBullet('Shoulder strengthening', 'Gentle shoulder press, lateral raise with no weight initially. 10 reps x 3 sets.'),
      emptyLine(),
      subHeading('ADL Training:'),
      bulletItem('Dressing (pulling shirt over head, fastening buttons)'),
      bulletItem('Writing and drawing at school desk'),
      bulletItem('Carrying school bag (start single strap on opposite shoulder; progress to both)'),
      bulletItem('Self-feeding with both hands'),
      emptyLine(),

      // ── PHASE 3 DETAIL ──────────────────────────────────────────
      sectionHeading('7. PHASE 3 - RETURN TO ACTIVITY (Weeks 12-16)', '1F4E79'),
      boldBullet('Criteria for return to sports', 'Full pain-free ROM, strength equal to contralateral side, surgeon clearance'),
      boldBullet('Sport-specific drills', 'Throwing, catching, swimming, racquet sports - progress from low to high intensity'),
      boldBullet('Proprioception training', 'Balance board with weight-bearing on hand, joint position sense exercises'),
      boldBullet('Contact sports', 'Avoid until 16 weeks minimum and orthopedic surgeon clearance'),
      emptyLine(),

      // ── ROM GOALS TABLE ──────────────────────────────────────────
      sectionHeading('8. EXPECTED ROM RECOVERY MILESTONES', '2E75B6'),
      bodyText('Note: A small terminal extension deficit of 5-10 degrees is common and often fully resolves by 12 months without intervention. Compare with contralateral (right) elbow.'),
      emptyLine(),
      romTable(),
      emptyLine(),

      // ── EXERCISE SCHEDULE TABLE ──────────────────────────────────
      sectionHeading('9. EXERCISE PRESCRIPTION SUMMARY', '2E75B6'),
      emptyLine(),
      exerciseTable(),
      emptyLine(),

      // ── OUTCOME MEASURES ─────────────────────────────────────────
      sectionHeading('10. OUTCOME MEASURES & ASSESSMENT', '1F4E79'),
      boldBullet('Goniometry', 'Elbow flex/ext and forearm supination/pronation - measure at each visit'),
      boldBullet('Pain score', 'Wong-Baker FACES Pain Scale (appropriate for 7-year-old) at each session'),
      boldBullet('Flynn criteria', 'Assess at final discharge: satisfactory = loss of <15 degrees movement + <15 degrees carrying angle change; excellent = loss of <5 degrees + <5 degrees change'),
      boldBullet('Grip strength', 'Dynamometer at weeks 8 and 12 (compare with contralateral)'),
      boldBullet('Functional test', 'Can child carry school bag, write, dress independently? (assess at each phase transition)'),
      boldBullet('Swelling', 'Circumference measurement at elbow crease - compare to contralateral'),
      boldBullet('Photo documentation', 'Carrying angle (varus/valgus) assessment monthly with photo'),
      emptyLine(),

      // ── RED FLAGS TABLE ──────────────────────────────────────────
      sectionHeading('11. RED FLAGS - REFER IMMEDIATELY', 'C0392B'),
      emptyLine(),
      redFlagTable(),
      emptyLine(),

      // ── HOME PROGRAM ─────────────────────────────────────────────
      sectionHeading('12. HOME EXERCISE PROGRAM (Parent Guide)', '375623'),
      bodyText('Parents are key partners in recovery. The following is a simple guide to supervise home exercises between clinic sessions.'),
      emptyLine(),
      subHeading('Phase 0 Home Program (K-wire in situ):'),
      bulletItem('Finger exercises: Make a fist and open - 10 times, 3 times a day'),
      bulletItem('Wrist bends: Bend wrist up and down - 10 times, 3 times a day'),
      bulletItem('Shoulder circles: Gentle shoulder pendulum - 10 circles, morning and evening'),
      bulletItem('Elevate arm on pillow at rest and during sleep'),
      bulletItem('Ice pack to elbow area (over splint) for 10-15 min, 3 times daily if swollen'),
      emptyLine(),
      subHeading('Phase 1 Home Program (Post-wire removal):'),
      bulletItem('Warm towel to elbow for 10 min before each exercise session'),
      bulletItem('Elbow bends: Bend arm up to chest and straighten slowly - 15 times, 3 times a day'),
      bulletItem('Forearm twists: Turn palm up (supination) then down (pronation) - 10 times each, 3x/day'),
      bulletItem('Play activities: Rolling a ball, stacking cups, coloring - encouraged throughout the day'),
      bulletItem('NO forcing the arm straight or bending forcefully'),
      emptyLine(),

      // ── FOLLOW-UP SCHEDULE ───────────────────────────────────────
      sectionHeading('13. FOLLOW-UP SCHEDULE', '1F4E79'),
      new Table({
        width: { size: 90, type: WidthType.PERCENTAGE },
        rows: [
          new TableRow({ children: [makeCell('Visit', true, '2E75B6'), makeCell('Timepoint', true, '2E75B6'), makeCell('Focus', true, '2E75B6'), makeCell('Who', true, '2E75B6')] }),
          new TableRow({ children: [makeCell('1', false, 'EBF5FB'), makeCell('Week 4 (at K-wire removal)', false, 'EBF5FB'), makeCell('Assessment, begin Phase 1, goniometry', false, 'EBF5FB'), makeCell('Physiotherapist + Surgeon', false, 'EBF5FB')] }),
          new TableRow({ children: [makeCell('2', false, null), makeCell('Week 5', false, null), makeCell('ROM progress, exercise advancement', false, null), makeCell('Physiotherapist', false, null)] }),
          new TableRow({ children: [makeCell('3', false, 'EBF5FB'), makeCell('Week 6', false, 'EBF5FB'), makeCell('ROM review, add AAROM, X-ray review', false, 'EBF5FB'), makeCell('Physiotherapist + Surgeon', false, 'EBF5FB')] }),
          new TableRow({ children: [makeCell('4', false, null), makeCell('Week 8', false, null), makeCell('Phase 2 transition, strength assessment', false, null), makeCell('Physiotherapist', false, null)] }),
          new TableRow({ children: [makeCell('5', false, 'EBF5FB'), makeCell('Week 12', false, 'EBF5FB'), makeCell('Discharge evaluation / Phase 3', false, 'EBF5FB'), makeCell('Physiotherapist + Surgeon', false, 'EBF5FB')] }),
          new TableRow({ children: [makeCell('6', false, null), makeCell('Week 16', false, null), makeCell('Final review, return to sport clearance', false, null), makeCell('Surgeon', false, null)] }),
          new TableRow({ children: [makeCell('7', false, 'EBF5FB'), makeCell('12 months', false, 'EBF5FB'), makeCell('Carrying angle assessment, cubitus varus check, growth review', false, 'EBF5FB'), makeCell('Surgeon', false, 'EBF5FB')] }),
        ],
      }),
      emptyLine(),

      // ── CONTRAINDICATIONS ────────────────────────────────────────
      sectionHeading('14. CONTRAINDICATIONS & PRECAUTIONS', 'C0392B'),
      boldBullet('Absolute contraindication', 'Forceful/vigorous passive stretching of the elbow - HIGH RISK of myositis ossificans, which causes permanent stiffness'),
      boldBullet('Absolute contraindication', 'Manual joint manipulation under anesthesia (in pediatric supracondylar fractures)'),
      boldBullet('Precaution', 'Avoid valgus stress to the healing medial structures during exercises'),
      boldBullet('Precaution', 'No weight-bearing through the arm until bone consolidation confirmed (week 8-12)'),
      boldBullet('Precaution', 'Do not progress to resistance exercises if full active ROM not yet achieved'),
      boldBullet('Precaution', 'Cubitus varus deformity (gunstock deformity): if progressive, requires surgical correction - NOT amenable to physio'),
      emptyLine(),

      // ── SPECIAL CONSIDERATIONS ───────────────────────────────────
      sectionHeading('15. PEDIATRIC-SPECIFIC CONSIDERATIONS', '375623'),
      boldBullet('Play-based approach', 'All exercises should be embedded in play for a 7-year-old. Compliance is far higher when exercises feel like games.'),
      boldBullet('Active over passive', 'Active and active-assisted exercises are preferred over passive mobilization in children. Bone remodeling potential is high.'),
      boldBullet('School return', 'Child may return to school (writing permitted) from week 4-6. Avoid PE/sports until week 12+.'),
      boldBullet('Nerve recovery', 'Anterior interosseous nerve (AIN) injury is common with Gartland III. Most recover spontaneously within 3-6 months. Monitor hand intrinsic function at each visit.'),
      boldBullet('Growth plates', 'Exercises must not stress the distal humeral physis or medial epicondyle apophysis. Avoid forced valgus loading.'),
      boldBullet('Psychosocial', 'Fear of movement (kinesiophobia) is common in children after fracture. Use graded exposure and positive reinforcement.'),
      boldBullet('Parental compliance', 'Educate parents about home exercises - compliance is the strongest predictor of early ROM recovery.'),
      emptyLine(),

      // ── SIGNATURE BLOCK ──────────────────────────────────────────
      sectionHeading('16. TREATING THERAPIST SIGN-OFF', '1F4E79'),
      new Table({
        width: { size: 90, type: WidthType.PERCENTAGE },
        rows: [
          new TableRow({ children: [makeCell('Physiotherapist Name', true, 'D6E4F0'), makeCell('', false, null)] }),
          new TableRow({ children: [makeCell('Qualification / Registration No.', true, 'D6E4F0'), makeCell('', false, null)] }),
          new TableRow({ children: [makeCell('Institution', true, 'D6E4F0'), makeCell('', false, null)] }),
          new TableRow({ children: [makeCell('Referring Orthopedic Surgeon', true, 'D6E4F0'), makeCell('', false, null)] }),
          new TableRow({ children: [makeCell('Protocol Start Date', true, 'D6E4F0'), makeCell('', false, null)] }),
          new TableRow({ children: [makeCell('Signature', true, 'D6E4F0'), makeCell('', false, null)] }),
        ],
      }),
      emptyLine(),

      new Paragraph({
        children: [new TextRun({
          text: 'This protocol was developed based on current evidence for pediatric supracondylar humerus fracture rehabilitation and should be adapted to the individual patient\'s progress, pain tolerance, and surgeon guidelines. Always coordinate with the operating surgeon before advancing phases.',
          size: 18, color: '808080', italics: true, font: 'Calibri',
        })],
        alignment: AlignmentType.CENTER,
        spacing: { before: 200, after: 100 },
      }),
    ],
  }],
});

Packer.toBuffer(doc).then((buffer) => {
  fs.writeFileSync('/home/daytona/workspace/physio-protocol/Rajveer_Physio_Protocol.docx', buffer);
  console.log('SUCCESS: Document written.');
}).catch(err => {
  console.error('ERROR:', err);
  process.exit(1);
});
Running Command

cd /home/daytona/workspace/physio-protocol && node generate_protocol.js

Running Command

python /home/daytona/skills/docx/scripts/office/validate.py /home/daytona/workspace/physio-protocol/Rajveer_Physio_Protocol.docx

Running Command

cd /home/daytona/workspace/physio-protocol && python -c "import zipfile; z = zipfile.ZipFile('Rajveer_Physio_Protocol.docx'); print(z.namelist()[:5]); print('File size:', __import__('os').path.getsize('Rajveer_Physio_Protocol.docx'), 'bytes')"

The document is a valid .docx archive (21 KB). Here is the complete protocol:

Physiotherapy Protocol - Rajveer Bhadale (7M, Left Supracondylar Humerus Fracture Post-CRPP)

Rajveer Physio Protocol

Word Document · DOCX


X-ray Interpretation

Finding
Pre-op (20 Apr 2026)Gartland Type III left supracondylar humerus fracture - complete displacement, extension type
Post-op (20 May 2026)CRPP performed - 3 crossed K-wires in situ, satisfactory alignment on AP + Lateral
Current status (4 Jun 2026)~6 weeks post-op - K-wires at or near removal; entering mobilisation phase

Protocol Summary

Phase 0 - Immobilisation (Weeks 0-4, K-wires in situ)
  • No elbow ROM exercises
  • Finger flexion/extension, wrist AROM, shoulder pendulum
  • Cryotherapy and limb elevation
  • Parent education on compartment syndrome signs and pin site care
Phase 1 - Mobilisation (Weeks 4-8, post-wire removal)Patient is here now
  • Heat therapy 10 min pre-exercise (warm towel or paraffin wax)
  • Active elbow flexion/extension AROM: 15 reps x 3 sets, 3x/day
  • Forearm supination/pronation: 10 reps x 3 sets, 3x/day
  • Active-assisted ROM with gentle over-pressure at end range
  • TENS for pain if needed; pulsed ultrasound (0.5 W/cm2) for tissue healing
  • Play-based activities: ball rolling, block stacking, coloring, bead threading
Phase 2 - Strengthening (Weeks 8-12)
  • Light Theraband resistance exercises
  • Putty/clay grip and fine motor work
  • Gravity-resisted elbow extension in prone
  • ADL training: writing, dressing, carrying school bag
Phase 3 - Return to Activity (Weeks 12-16)
  • Sport-specific drills, proprioception training
  • Contact sports only after surgeon clearance at week 16

Key Points

  • CONTRAINDICATED: Forced passive stretching or vigorous manipulation - causes myositis ossificans (permanent stiffness)
  • Cubitus varus (gunstock deformity): monitor carrying angle at every visit; physio cannot correct it - requires surgical osteotomy if progressive
  • AIN/nerve injury: common in Gartland III; monitor hand intrinsic function; most recover in 3-6 months spontaneously
  • ROM expectation: Small extension deficit (5-10°) is normal and typically resolves by 12 months
  • Flynn criteria for satisfactory outcome: <15° loss of motion + <15° change in carrying angle
  • Evidence note: Active exercises produce faster ROM recovery vs. natural recovery alone for Gartland III CRPP cases; passive manipulation is not indicated

Create a parent home exercise guide as a single-page quick reference

Reading File
Reading File
Your credits are exhausted. Your daily credits reset tomorrow, or you can purchase a top-up for more.

The wire are still intact

Your credits are exhausted. Your daily credits reset tomorrow, or you can purchase a top-up for more.

Prepare assessment

Your credits are exhausted. Your daily credits reset tomorrow, or you can purchase a top-up for more.
This is a shared conversation. Sign in to Orris to start your own chat.