Overview of normal gait analysis: kinetic and kinematic analysis; Description of some of the most commonly used types of observational gait analysis; Advantages and disadvantages of kinematic qualitative and kinematic quantitative gait analyses. MPT level 20 marks answer of this question
gait analysis kinetic kinematic observational analysis MPT physiotherapy
normal gait analysis kinetic kinematic observational qualitative quantitative advantages disadvantages physiotherapy
https://auptimo.com/an-introduction-to-gait-analysis
| Phase | % of Gait Cycle | Events |
|---|---|---|
| Stance Phase | 60% | Heel strike → Loading response → Midstance → Terminal stance → Pre-swing |
| Swing Phase | 40% | Initial swing → Midswing → Terminal swing |
| Advantages | Disadvantages |
|---|---|
| No specialized equipment needed | Cannot detect high-speed movements |
| Portable and affordable | High inter-rater variability |
| Applicable in any clinical setting | No permanent quantitative record |
| Quick to perform | Cannot provide force or muscle activity data |
| Useful for initial clinical screening | Difficult to detect transverse plane (rotational) movements |
| Clinically accessible for most therapists | Relies heavily on examiner experience |
| Can identify gross gait deviations | Poor patient understanding of findings |
| Applicable even in community or ward settings | Accuracy cannot be verified objectively |
| Advantages | Disadvantages |
|---|---|
| Provides objective, measurable data | Requires specialized and expensive laboratory equipment |
| Three-dimensional analysis - captures all planes of motion | Must be performed in a laboratory or specialized setting |
| High accuracy and reproducibility | Requires technical expertise to set up and interpret |
| Permanent record for longitudinal comparison | Time-consuming data acquisition and processing |
| Enables precise pre/post treatment comparison | Skin-motion artifact can affect accuracy of marker-based systems |
| Identifies subtle gait deviations missed clinically | Limited availability in routine clinical practice |
| Supports surgical planning and post-op assessment | 2D kinematic systems miss rotational movements |
| Patient-specific data improves understanding | Accuracy depends on correct anatomical marker placement |
| Combined with kinetics, gives complete biomechanical picture | Does not provide force or muscle activity data on its own (needs force plates + EMG) |
| Has been shown to change clinical/surgical decisions in 52% of cases (Campbell's, 2026) | Interpretation remains somewhat subjective despite objective data; only slight-to-moderate agreement noted among physicians |
| Feature | Direct Observation | Video OGA | Kinematic Quantitative | Kinetic Analysis |
|---|---|---|---|---|
| Equipment needed | None | Camera | Motion capture lab | Force plates + cameras |
| Cost | Low | Low | High | High |
| Portability | High | Moderate | Low | Low |
| Planes assessed | Primarily sagittal | Primarily sagittal | All 3 planes (3D) | All 3 planes |
| Force measurement | No | No | No | Yes (GRF, moments, power) |
| EMG | No | No | No (separate) | Yes (combined) |
| Reproducibility | Low | Moderate | High | High |
| Clinician skill required | High | High | Moderate (with software) | High (interpretation) |
| Patient suitability | All patients | All patients | Cooperative patients only | Cooperative patients only |
| Clinical utility | Screening | Screening + record | Diagnosis + planning | Full biomechanical assessment |
*1. Introduction to Gait Analysis* Gait analysis is the objective and systematic study of human walking. It quantifies normal and pathological gait patterns to aid diagnosis, monitor rehabilitation progress, and improve athletic performance. Progress in sensor technology has shifted gait analysis from semi-subjective visual observation to highly accurate objective measurement systems. According to Muro-de-la-Herran _et al._ (2014), modern gait analysis methods are classified based on sensor location into Non-Wearable Systems NWS and Wearable Systems WS. *2. Classification of Gait Analysis Methods* *A. Non-Wearable Systems (NWS)* These systems require a controlled lab environment. They offer high accuracy but lack portability. 1. *Optoelectronic Motion Capture*: Uses multiple infrared cameras to track reflective markers placed on anatomical landmarks. Provides 3D kinematic data like joint angles, limb segment trajectories, and spatiotemporal parameters. Ex: BTS GAITLAB configuration with 8 cameras + GRF walkway 2. *Floor Sensor Systems*: - *Force Plates*: Embedded in walkways, measure 3D Ground Reaction Forces GRF and moments during stance phase. Gold standard for kinetics. - *Pressure Mats*: Systems like Tekscan or CONTEMPLAS map plantar pressure distribution across the foot. 3. *Markerless Systems*: Kinect, Time-of-Flight cameras, and structured light systems capture full-body kinematics without markers. Used for gait recognition and clinical retraining. *B. Wearable Systems (WS)* These are body-mounted, allowing data collection outside labs during daily activities. 60% of recent research focuses on WS due to better usability. 1. *Inertial Measurement Units IMUs*: Most common WS, 37.5% of studies reviewed. Each unit has accelerometer + gyroscope + magnetometer. Placed on thigh, shank, foot, waist to derive: *Kinematics*: Step detection, stride length, segment orientation, joint angles. Correlation >0.96 with lab systems. Stride length error only -0.8 ±6.6. *Examples*: Xsens MVN with 17 trackers for full-body 6 DOF motion capture; M3D system by Tec Gihan Co. 2. *Pressure and Force Sensors*: Integrated into instrumented shoes/insoles. - *Capacitive/Resistive Sensors*: FlexiForce piezoresistive sensors measure plantar pressure. Correlation R > 0.95 with lab data. - *Wearable GRF Plates*: Miniature 6-axis force sensors on heel/toe measure 3 forces + 3 moments. Ex: M3D wearable force plates. Accuracy ∼10% of GRF range. These provide *kinetic* data: GRF curves, center of pressure, gait phase detection. 3. *Goniometers*: Flexible strain-gauge, inductive, or encoder-based sensors. Directly measure *kinematic* joint angles of knee, ankle, hip with R = 0.999 accuracy vs mechanical goniometers. Often embedded in shoes. 4. *Electromyography EMG*: Surface electrodes record muscle activation timing and intensity during gait. Used to detect gait phases and assess muscle function. 5. *Ultrasonic Sensors*: Placed on shoes to measure step length and inter-foot distance by calculating sound wave time-of-flight. *3. Kinetics vs Kinematics: Key Distinction in Gait Analysis* Parameter **Kinematic Analysis** **Kinetic Analysis** **Focus** Geometry of motion. Describes *how* we move Forces causing motion. Describes *why* we move **Key Variables** Joint angles, angular velocity, stride length, step time, cadence, segment linear/angular displacement Ground Reaction Force GRF, joint moments, power, plantar pressure, center of pressure COP **Primary Tools** IMUs, goniometers, motion capture cameras, Kinect, ultrasound Force plates, pressure insoles, wearable GRF sensors, piezoelectric sensors **Clinical Use** Detecting asymmetry, range of motion limits, spatiotemporal abnormalities in Parkinson’s or stroke Evaluating loading patterns, balance, push-off power, risk of foot ulcers in diabetes **Data Example** M3D inertial sensors + Xsens show knee flexion angle = 60° during swing M3D force plates show vertical GRF peak = 1.2 × body weight at mid-stance *4. Clinical and Research Applications* 1. *Neurological*: Long-term ambulatory monitoring of Parkinson’s disease using inertial sensors to detect freezing of gait 2. *Rehabilitation*: Kinect-based gait retraining providing lateral trunk lean feedback; Digital goniometers for knee-joint tracking in orthoses 3. *Biomechanics Research*: Forner Cordero _et al._ used pressure insoles to calculate complete GRF; Howell _et al._ validated low-cost insoles vs clinical labs 4. *Sports*: Ultrasonic systems for stride analysis; Insole systems for tele-monitoring during training *5. Current Trends and Conclusion* The review of 32 articles from 2012-2013 showed a clear shift: 40% NWS, 60% WS. Among WS, inertial sensors dominated. The study concludes that wearable systems are the most promising direction because they provide sufficient precision while being conformable, transportable, and usable in real-world settings. However, NWS like force plates remain the gold standard for accuracy in kinetic measurements. Future gait analysis will likely use hybrid systems combining WS portability with NWS accuracy.
I want content like this now combine your content & this content
| Phase | % of Gait Cycle | Sub-phases |
|---|---|---|
| Stance Phase | 60% | Initial Contact → Loading Response → Midstance → Terminal Stance → Pre-swing |
| Swing Phase | 40% | Initial Swing → Midswing → Terminal Swing |
| Parameter | Kinematic Analysis | Kinetic Analysis |
|---|---|---|
| Focus | Geometry of motion - describes how we move | Forces causing/resulting from motion - describes why we move |
| Key Variables | Joint angles, angular velocity, stride length, step time, cadence, segment linear/angular displacement | GRF, joint moments (torques), joint power, plantar pressure, center of pressure (COP) |
| Primary Tools | IMUs, goniometers, motion capture cameras, Kinect, ultrasound | Force plates, pressure insoles, wearable GRF sensors, piezoelectric sensors |
| Clinical Use | Detecting asymmetry, ROM limits, spatiotemporal abnormalities (Parkinson's, stroke) | Evaluating loading patterns, balance, push-off power, diabetic foot ulcer risk |
| Data Example | Xsens/M3D inertial sensors: knee flexion = 60° during swing phase | M3D force plates: vertical GRF peak = 1.2 × body weight at mid-stance |
| Advantages | Disadvantages |
|---|---|
| No specialized equipment needed | Cannot detect high-speed movements |
| Portable - usable in any clinical/community setting | High inter-rater variability; criteria for "normal" vary by examiner experience |
| Low cost | No permanent quantifiable record for comparison |
| Quick to perform | Cannot provide force or muscle activity data |
| Useful for initial clinical screening | Difficult to detect transverse plane (rotational) movements |
| Applicable in all patient groups | Heavily dependent on examiner skill and experience |
| Can identify gross gait deviations | Poor patient understanding of findings |
| Clinically accessible for most physiotherapists | Cannot objectively verify accuracy of observations |
| Advantages | Disadvantages |
|---|---|
| Provides objective, measurable, reproducible data | Requires specialized, expensive laboratory equipment |
| Three-dimensional analysis captures all planes (sagittal, frontal, transverse) | Must generally be performed in a laboratory or specialized clinical setting |
| Permanent quantitative record for longitudinal comparison | Time-consuming data acquisition, processing, and interpretation |
| Enables precise pre/post treatment comparison | Skin-motion artifact can affect accuracy of marker-based systems |
| Identifies subtle deviations missed by clinical observation | Accuracy depends on correct anatomical marker placement |
| Supports surgical planning and post-operative outcome assessment | Limited availability in routine clinical practice |
| Wearable systems (IMUs) allow ambulatory and real-world monitoring | 2D kinematic systems miss rotational/out-of-plane movements |
| Has been shown to change surgical recommendations in 52% of cases compared to clinical observation alone (Campbell's, 2026) | Despite objective data, interpretation remains partly subjective - only slight-to-moderate inter-physician agreement exists |
| Combined with kinetics (force plates + EMG), gives complete biomechanical picture | Does not provide force or muscle activity data on its own - requires additional kinetic instrumentation |
| Domain | Application |
|---|---|
| Neurological | Long-term ambulatory monitoring of Parkinson's disease using IMUs to detect freezing of gait |
| Rehabilitation | Kinect-based gait retraining for lateral trunk lean feedback; digital goniometers for knee-joint tracking in orthoses |
| Orthopaedic Surgery | Pre-operative planning in cerebral palsy - quantitative gait analysis changes recommendations 52% of the time (Campbell's, 2026) |
| Biomechanics Research | Forner Cordero et al. used pressure insoles to calculate complete GRF; Howell et al. validated low-cost insoles vs clinical labs |
| Sports | Ultrasonic systems for stride analysis; insole systems for tele-monitoring during training |
| Diabetology | Plantar pressure systems to identify risk zones for foot ulcers |
I want you to combine. I send the content right now and previous content that you sent me, like the flow of content should like that, like first you send me the content in that you first explain me that what is gait, then normal gait, then normal observational analysis of gait. Okay, and then I want you to add the recent text I sent you, but I don't want you to add at like as it is. Do it all like your way, okay? & make best version
| Phase | % of Gait Cycle | Description |
|---|---|---|
| Stance Phase | 60% | The limb is in contact with the ground; weight-bearing |
| Swing Phase | 40% | The limb is in the air; advancing forward |
| Parameter | Definition |
|---|---|
| Step length | Distance between successive initial contacts of the two lower limbs |
| Stride length | Distance between successive initial contacts of the same lower limb (= 2 steps) |
| Step width (base of support) | Lateral distance between the two feet |
| Cadence | Number of steps per unit of time (steps/min) |
| Walking velocity | Ratio of distance to time |
| Muscle Group | Phase | Type of Contraction | Function |
|---|---|---|---|
| Anterior tibialis | IC | Eccentric | Prevents foot slap (controls plantarflexion) |
| Anterior tibialis | Swing | Concentric | Dorsiflexion for foot clearance |
| Quadriceps | Loading response | Eccentric | Controls early stance knee flexion (shock absorption) |
| Hip extensors | Terminal swing | Eccentric | Decelerates advancing limb before IC |
| Hip flexors | Swing phase | Concentric | Advances limb forward |
| Plantarflexors (Gastrocnemius/Soleus) | Terminal stance | Concentric | Push-off propulsion and power generation |
| Advantages | Disadvantages |
|---|---|
| Requires no specialized equipment | Human eye cannot detect high-speed movements (e.g., rapid heel-off) |
| Applicable in any clinical, ward, or community setting | High inter-rater variability; definition of "normal" varies with examiner experience |
| Low cost and time-efficient | No permanent quantifiable record (unless video is used) |
| Applicable to virtually all patient groups | Cannot provide force, EMG, or joint torque data |
| Suitable for initial screening and routine follow-up | Tendency to focus on the sagittal plane; transverse and frontal plane movements are frequently missed |
| Standardized scales allow tracking of progress | Most scales only identify that gait is abnormal - they rarely explain why |
| Clinically accessible for most physiotherapists | Heavily dependent on the examiner's clinical experience and training |
| Gait scales provide useful information about functional ambulation ability | Poor patient understanding of their own problem from observation alone |
| Parameter | Kinematic Analysis | Kinetic Analysis |
|---|---|---|
| Focus | Geometry of motion - describes how we move | Forces causing/resulting from motion - describes why we move |
| Key Variables | Joint angles, angular velocity, stride length, step time, cadence, segment displacement | GRF, joint moments (torques), joint power, plantar pressure, centre of pressure (COP) |
| Primary Tools | IMUs, goniometers, motion capture cameras, Kinect, ultrasound | Force plates, pressure insoles, wearable GRF sensors, piezoelectric sensors |
| Clinical Use | Detecting asymmetry, ROM deficits, spatiotemporal abnormalities (Parkinson's, stroke) | Evaluating loading patterns, push-off power, balance, diabetic foot ulcer risk |
| Data Example | Xsens/M3D: knee flexion = 60° during swing phase | M3D force plates: vertical GRF peak = 1.2 × body weight at mid-stance |
| Advantages | Disadvantages |
|---|---|
| Provides objective, measurable, reproducible data | Requires specialized, expensive laboratory equipment |
| Three-dimensional analysis captures all planes of motion | Generally must be performed in a controlled lab setting |
| Permanent quantitative record for longitudinal comparison | Time-consuming data acquisition, processing, and interpretation |
| Enables precise pre- and post-treatment comparison | Skin-motion artifact reduces accuracy of marker-based systems |
| Identifies subtle deviations missed by clinical observation | Accuracy depends on precise anatomical marker placement |
| Wearable IMUs allow ambulatory monitoring in real-world settings | 2D kinematic systems miss transverse (rotational) plane movements |
| Changes surgical recommendations in 52% of cases compared to clinical observation alone (Campbell's, 2026) | Despite objective data, interpretation remains partly subjective - only slight-to-moderate inter-physician agreement is reported |
| Combined with kinetics and EMG, delivers a complete biomechanical picture | Kinematic data alone does not explain the forces or muscles responsible for deviations |
| Domain | Application |
|---|---|
| Orthopaedic Surgery | Pre-operative planning in cerebral palsy and TKR; post-operative outcome assessment |
| Neurology | Long-term ambulatory monitoring of Parkinson's disease using IMUs to detect freezing of gait |
| Rehabilitation | Kinect-based gait retraining for lateral trunk lean in stroke; digital goniometers in orthotic monitoring |
| Diabetology | Plantar pressure mapping to identify high-risk zones for diabetic foot ulceration |
| Biomechanics Research | Forner Cordero et al. used instrumented pressure insoles to calculate complete GRF curves; Howell et al. validated low-cost insoles against clinical laboratory standards |
| Sports Science | Ultrasonic stride analysis; insole tele-monitoring during athletic training |
Great work ! now frame it as exact 20 marks question which might include flow chart , diagram etc
ls -la /home/daytona/workspace/ && ls /home/daytona/skills/docx/
mkdir -p /home/daytona/workspace/gait-analysis && ls /home/daytona/skills/docx/scripts/
~/gait-analysis/create_gait_doc.js
const {
Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
AlignmentType, HeadingLevel, BorderStyle, WidthType, ShadingType,
VerticalAlign, PageNumber, Header, Footer, PageBreak,
TableOfContents, UnderlineType
} = require('docx');
const fs = require('fs');
// ─── COLOR PALETTE ────────────────────────────────────────────────
const NAVY = "1B3A6B";
const TEAL = "0E6B8A";
const LIGHT_BLUE = "D6EAF8";
const LIGHT_TEAL = "D1F0F7";
const LIGHT_GREY = "F2F4F4";
const WHITE = "FFFFFF";
const ACCENT = "E8F8F5";
const GOLD = "F0B429";
const GOLD_LIGHT = "FFF8E1";
// ─── HELPERS ──────────────────────────────────────────────────────
function heading1(text) {
return new Paragraph({
text,
heading: HeadingLevel.HEADING_1,
spacing: { before: 400, after: 120 },
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
run: { color: WHITE, bold: true, size: 28 },
children: [new TextRun({ text, bold: true, color: WHITE, size: 28 })]
});
}
function heading2(text) {
return new Paragraph({
children: [new TextRun({ text, bold: true, color: NAVY, size: 24 })],
spacing: { before: 280, after: 80 },
border: { bottom: { color: TEAL, size: 8, style: BorderStyle.SINGLE } }
});
}
function heading3(text) {
return new Paragraph({
children: [new TextRun({ text, bold: true, color: TEAL, size: 22 })],
spacing: { before: 200, after: 60 }
});
}
function bodyText(text, options = {}) {
return new Paragraph({
children: [new TextRun({ text, size: 20, color: "2C3E50", ...options })],
spacing: { before: 60, after: 60 },
indent: { left: options.indent || 0 }
});
}
function bulletPoint(text, bold_prefix = "") {
const runs = [];
if (bold_prefix) {
runs.push(new TextRun({ text: bold_prefix + " ", bold: true, color: NAVY, size: 20 }));
}
runs.push(new TextRun({ text, size: 20, color: "2C3E50" }));
return new Paragraph({
children: runs,
spacing: { before: 40, after: 40 },
indent: { left: 400, hanging: 200 },
bullet: { level: 0 }
});
}
function subBullet(text) {
return new Paragraph({
children: [new TextRun({ text, size: 19, color: "555555" })],
spacing: { before: 30, after: 30 },
indent: { left: 720, hanging: 200 },
bullet: { level: 1 }
});
}
function spacer(lines = 1) {
return new Paragraph({ children: [new TextRun("")], spacing: { before: 40 * lines, after: 40 * lines } });
}
function divider() {
return new Paragraph({
children: [new TextRun({ text: "", size: 4 })],
spacing: { before: 60, after: 60 },
border: { bottom: { color: TEAL, size: 6, style: BorderStyle.SINGLE } }
});
}
function highlightBox(title, items, bgColor = LIGHT_BLUE) {
const rows = [
new TableRow({
children: [new TableCell({
children: [new Paragraph({
children: [new TextRun({ text: title, bold: true, color: WHITE, size: 20 })],
alignment: AlignmentType.CENTER
})],
shading: { type: ShadingType.SOLID, color: TEAL, fill: TEAL },
verticalAlign: VerticalAlign.CENTER,
margins: { top: 100, bottom: 100, left: 150, right: 150 }
})]
}),
...items.map(item => new TableRow({
children: [new TableCell({
children: [new Paragraph({
children: [new TextRun({ text: item, size: 19, color: "2C3E50" })]
})],
shading: { type: ShadingType.SOLID, color: bgColor, fill: bgColor },
margins: { top: 80, bottom: 80, left: 200, right: 150 }
})]
}))
];
return new Table({
rows,
width: { size: 9000, type: WidthType.DXA },
margins: { top: 100, bottom: 100 }
});
}
function twoColTable(headers, rows, col1Color = NAVY, shade = LIGHT_BLUE) {
const headerRow = new TableRow({
children: headers.map((h, i) => new TableCell({
children: [new Paragraph({
children: [new TextRun({ text: h, bold: true, color: WHITE, size: 19 })],
alignment: AlignmentType.CENTER
})],
shading: { type: ShadingType.SOLID, color: i === 0 ? NAVY : TEAL, fill: i === 0 ? NAVY : TEAL },
verticalAlign: VerticalAlign.CENTER,
margins: { top: 80, bottom: 80, left: 100, right: 100 },
width: { size: 50, type: WidthType.PERCENTAGE }
}))
});
const dataRows = rows.map((row, idx) => new TableRow({
children: row.map((cell, ci) => new TableCell({
children: [new Paragraph({
children: [
...(cell.bold ? [new TextRun({ text: cell.bold, bold: true, size: 19, color: NAVY })] : []),
new TextRun({ text: cell.bold ? " " + cell.text : cell.text || cell, size: 19, color: "2C3E50" })
]
})],
shading: { type: ShadingType.SOLID, color: idx % 2 === 0 ? shade : WHITE, fill: idx % 2 === 0 ? shade : WHITE },
margins: { top: 80, bottom: 80, left: 120, right: 100 },
width: { size: 50, type: WidthType.PERCENTAGE }
}))
}));
return new Table({
rows: [headerRow, ...dataRows],
width: { size: 9500, type: WidthType.DXA },
margins: { top: 120, bottom: 120 }
});
}
function fourColTable(headers, rows) {
const colWidth = Math.floor(9500 / headers.length);
const headerRow = new TableRow({
children: headers.map((h, i) => new TableCell({
children: [new Paragraph({
children: [new TextRun({ text: h, bold: true, color: WHITE, size: 17 })],
alignment: AlignmentType.CENTER
})],
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
verticalAlign: VerticalAlign.CENTER,
margins: { top: 80, bottom: 80, left: 80, right: 80 },
width: { size: colWidth, type: WidthType.DXA }
}))
});
const dataRows = rows.map((row, idx) => new TableRow({
children: row.map((cell, ci) => new TableCell({
children: [new Paragraph({
children: [new TextRun({ text: String(cell), size: 17, color: "2C3E50", bold: ci === 0 })],
alignment: AlignmentType.LEFT
})],
shading: { type: ShadingType.SOLID, color: idx % 2 === 0 ? LIGHT_GREY : WHITE, fill: idx % 2 === 0 ? LIGHT_GREY : WHITE },
margins: { top: 70, bottom: 70, left: 80, right: 80 },
width: { size: colWidth, type: WidthType.DXA }
}))
}));
return new Table({
rows: [headerRow, ...dataRows],
width: { size: 9500, type: WidthType.DXA },
margins: { top: 100, bottom: 100 }
});
}
// ─── FLOWCHART (text-based using table cells) ─────────────────────
function flowchartBox(text, bgColor = TEAL, textColor = WHITE) {
return new Table({
rows: [new TableRow({
children: [new TableCell({
children: [new Paragraph({
children: [new TextRun({ text, bold: true, color: textColor, size: 20 })],
alignment: AlignmentType.CENTER
})],
shading: { type: ShadingType.SOLID, color: bgColor, fill: bgColor },
verticalAlign: VerticalAlign.CENTER,
margins: { top: 120, bottom: 120, left: 200, right: 200 },
borders: {
top: { style: BorderStyle.SINGLE, size: 6, color: NAVY },
bottom: { style: BorderStyle.SINGLE, size: 6, color: NAVY },
left: { style: BorderStyle.SINGLE, size: 6, color: NAVY },
right: { style: BorderStyle.SINGLE, size: 6, color: NAVY }
}
})]
})],
width: { size: 6000, type: WidthType.DXA },
alignment: AlignmentType.CENTER
});
}
function arrow() {
return new Paragraph({
children: [new TextRun({ text: "▼", color: NAVY, size: 28, bold: true })],
alignment: AlignmentType.CENTER,
spacing: { before: 40, after: 40 }
});
}
function sideBySideFlowchart(leftLabel, leftItems, rightLabel, rightItems) {
const buildCol = (label, items, hdrColor) => {
const rows = [
new TableRow({
children: [new TableCell({
children: [new Paragraph({
children: [new TextRun({ text: label, bold: true, color: WHITE, size: 19 })],
alignment: AlignmentType.CENTER
})],
shading: { type: ShadingType.SOLID, color: hdrColor, fill: hdrColor },
margins: { top: 100, bottom: 100, left: 120, right: 120 }
})]
}),
...items.map((item, idx) => new TableRow({
children: [new TableCell({
children: [new Paragraph({
children: [new TextRun({ text: (idx + 1) + ". " + item, size: 18, color: "2C3E50" })]
})],
shading: { type: ShadingType.SOLID, color: idx % 2 === 0 ? LIGHT_BLUE : WHITE, fill: idx % 2 === 0 ? LIGHT_BLUE : WHITE },
margins: { top: 70, bottom: 70, left: 120, right: 120 }
})]
}))
];
return new Table({ rows, width: { size: 4400, type: WidthType.DXA } });
};
return new Table({
rows: [new TableRow({
children: [
new TableCell({
children: [buildCol(leftLabel, leftItems, NAVY)],
borders: { top: { style: BorderStyle.NONE }, bottom: { style: BorderStyle.NONE }, left: { style: BorderStyle.NONE }, right: { style: BorderStyle.NONE } }
}),
new TableCell({
children: [new Paragraph({ children: [new TextRun({ text: "VS", bold: true, color: NAVY, size: 28 })], alignment: AlignmentType.CENTER })],
borders: { top: { style: BorderStyle.NONE }, bottom: { style: BorderStyle.NONE }, left: { style: BorderStyle.NONE }, right: { style: BorderStyle.NONE } },
verticalAlign: VerticalAlign.CENTER,
margins: { top: 0, bottom: 0, left: 100, right: 100 },
width: { size: 700, type: WidthType.DXA }
}),
new TableCell({
children: [buildCol(rightLabel, rightItems, TEAL)],
borders: { top: { style: BorderStyle.NONE }, bottom: { style: BorderStyle.NONE }, left: { style: BorderStyle.NONE }, right: { style: BorderStyle.NONE } }
})
]
})],
width: { size: 9500, type: WidthType.DXA },
borders: { top: { style: BorderStyle.NONE }, bottom: { style: BorderStyle.NONE }, left: { style: BorderStyle.NONE }, right: { style: BorderStyle.NONE } }
});
}
// ─── TITLE PAGE ───────────────────────────────────────────────────
function titlePageChildren() {
return [
spacer(4),
new Paragraph({
children: [new TextRun({ text: "GAIT ANALYSIS", bold: true, color: WHITE, size: 52, allCaps: true })],
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
spacing: { before: 200, after: 200 }
}),
new Paragraph({
children: [new TextRun({ text: "A Comprehensive MPT-Level Answer", bold: true, color: TEAL, size: 28 })],
alignment: AlignmentType.CENTER,
spacing: { before: 120, after: 120 }
}),
new Paragraph({
children: [new TextRun({ text: "20 Marks | Master of Physiotherapy", color: "555555", size: 22 })],
alignment: AlignmentType.CENTER,
spacing: { before: 80, after: 80 }
}),
divider(),
spacer(2),
new Paragraph({
children: [new TextRun({ text: "Topics Covered:", bold: true, color: NAVY, size: 22 })],
alignment: AlignmentType.CENTER,
spacing: { before: 80, after: 60 }
}),
new Paragraph({
children: [new TextRun({ text: "Definition & Normal Gait • Gait Cycle & Parameters • Six Determinants", color: "2C3E50", size: 20 })],
alignment: AlignmentType.CENTER, spacing: { after: 40 }
}),
new Paragraph({
children: [new TextRun({ text: "Observational Gait Analysis • Kinetics vs Kinematics", color: "2C3E50", size: 20 })],
alignment: AlignmentType.CENTER, spacing: { after: 40 }
}),
new Paragraph({
children: [new TextRun({ text: "NWS & WS Classification • Advantages & Disadvantages", color: "2C3E50", size: 20 })],
alignment: AlignmentType.CENTER, spacing: { after: 40 }
}),
spacer(4),
new Paragraph({
children: [new TextRun({ text: "References: Campbell's Orthopaedics 2026 • Miller's Orthopaedics • Firestein & Kelley's Rheumatology • Muro-de-la-Herran et al. (2014)", color: "888888", size: 16 })],
alignment: AlignmentType.CENTER,
spacing: { before: 200 }
}),
new Paragraph({ children: [new PageBreak()] })
];
}
// ─── MAIN DOCUMENT ────────────────────────────────────────────────
const doc = new Document({
numbering: {
config: [{
reference: "bullet-list",
levels: [
{ level: 0, format: "bullet", text: "\u2022", alignment: AlignmentType.LEFT,
style: { paragraph: { indent: { left: 400, hanging: 200 } } } },
{ level: 1, format: "bullet", text: "\u25E6", alignment: AlignmentType.LEFT,
style: { paragraph: { indent: { left: 720, hanging: 200 } } } }
]
}]
},
styles: {
default: { document: { run: { font: "Calibri", size: 20 } } }
},
sections: [{
properties: {
page: {
margin: { top: 900, bottom: 900, left: 900, right: 900 }
}
},
headers: {
default: new Header({
children: [new Paragraph({
children: [
new TextRun({ text: "GAIT ANALYSIS | MPT 20 Marks", bold: true, color: WHITE, size: 18 })
],
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
spacing: { before: 60, after: 60 }
})]
})
},
footers: {
default: new Footer({
children: [new Paragraph({
children: [
new TextRun({ text: "Master of Physiotherapy | Gait Analysis | Page ", color: "888888", size: 16 }),
new TextRun({ children: [PageNumber.CURRENT], color: TEAL, size: 16 })
],
alignment: AlignmentType.CENTER
})]
})
},
children: [
// ── TITLE PAGE ──
...titlePageChildren(),
// ══════════════════════════════════════════════════════════════
// SECTION 1: WHAT IS GAIT?
// ══════════════════════════════════════════════════════════════
new Paragraph({
children: [new TextRun({ text: "SECTION 1: WHAT IS GAIT?", bold: true, color: WHITE, size: 26 })],
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
spacing: { before: 200, after: 160 }
}),
bodyText("Gait is defined as the manner or pattern of locomotion — the rhythmic, coordinated movement of the lower limbs that propels the body forward while maintaining balance and stability."),
bodyText("It is the result of precisely integrated activity among three systems:"),
bulletPoint("Musculoskeletal system — bones, joints, muscles, tendons"),
bulletPoint("Nervous system — motor control, coordination, balance"),
bulletPoint("Sensory system — proprioception, vision, vestibular input"),
spacer(),
bodyText("Any disruption in any of these systems results in a gait deviation or pathological gait pattern."),
spacer(),
heading2("1.1 What is Gait Analysis?"),
bodyText("Gait analysis is the objective and systematic study of human locomotion. It quantifies both normal and pathological gait to:"),
bulletPoint("Aid clinical diagnosis of movement disorders"),
bulletPoint("Monitor rehabilitation progress over time"),
bulletPoint("Guide surgical planning and post-operative assessment"),
bulletPoint("Evaluate effectiveness of orthotics, prosthetics, and assistive devices"),
bulletPoint("Improve athletic performance"),
spacer(),
// Flowchart: Evolution of Gait Analysis
heading3("Flowchart 1: Evolution of Gait Analysis"),
spacer(),
flowchartBox("CLINICAL OBSERVATION (Traditional)", NAVY),
arrow(),
flowchartBox("VIDEO-BASED OBSERVATIONAL ANALYSIS", TEAL),
arrow(),
flowchartBox("2D KINEMATIC QUANTITATIVE ANALYSIS", "1A5276"),
arrow(),
flowchartBox("3D MOTION CAPTURE + FORCE PLATES (Laboratory)", "0B5345"),
arrow(),
flowchartBox("WEARABLE IMU SYSTEMS (Real-World Ambulatory)", "7D3C98"),
arrow(),
flowchartBox("HYBRID SYSTEMS: Wearable + Lab Accuracy (Future)", "B7950B"),
spacer(2),
divider(),
// ══════════════════════════════════════════════════════════════
// SECTION 2: NORMAL GAIT CYCLE
// ══════════════════════════════════════════════════════════════
new Paragraph({
children: [new TextRun({ text: "SECTION 2: THE NORMAL GAIT CYCLE", bold: true, color: WHITE, size: 26 })],
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
spacing: { before: 200, after: 160 }
}),
bodyText("The gait cycle is the fundamental unit of gait measurement. It spans from the initial foot contact (heel strike) of one limb to the next initial contact of the same limb — one complete stride."),
spacer(),
// Flowchart: Gait Cycle
heading3("Flowchart 2: The Normal Gait Cycle"),
spacer(),
new Paragraph({
children: [new TextRun({ text: "── STANCE PHASE (60%) ──────────────────────────────────────── SWING PHASE (40%) ──", bold: true, color: WHITE, size: 19 })],
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
spacing: { before: 60, after: 0 }
}),
fourColTable(
["STANCE PHASE (60%)", "Sub-phase", "SWING PHASE (40%)", "Sub-phase"],
[
["Initial Contact (IC)", "Foot strikes ground (heel strike)", "Initial Swing (ISw)", "Foot leaves ground; rapid knee flexion"],
["Loading Response (LR)", "Weight transfer; shock absorption", "Midswing", "Limb advances; tibia perpendicular to ground"],
["Midstance (MSt)", "Single-limb support; body over stance limb", "Terminal Swing (TSw)", "Tibia passes vertical; prepares for IC"],
["Terminal Stance (TSt)", "Heel rises; body moves ahead of foot", "", ""],
["Pre-swing (PSw)", "Contralateral IC; toe-off preparation", "", ""]
]
),
spacer(),
bodyText("Important: Running eliminates double-limb support and introduces a FLOAT phase (neither foot on ground)."),
spacer(),
heading2("2.1 Key Temporal-Spatial Parameters"),
fourColTable(
["Parameter", "Definition", "Normal Value", "Clinical Significance"],
[
["Step Length", "Distance: successive IC of two lower limbs", "~38 cm", "Asymmetry → pain, weakness, neurological deficit"],
["Stride Length", "Distance: successive IC of same limb (= 2 steps)", "~76 cm", "Reduced in Parkinson's, hemiplegia"],
["Step Width", "Lateral distance between two feet (base of support)", "5–10 cm", "Widened in ataxia, cerebellar disorders"],
["Cadence", "Steps per unit time", "~110 steps/min", "Reduced in elderly, neurological conditions"],
["Walking Velocity", "Distance ÷ time", "~1.4 m/s", "Best single indicator of gait health"],
["Double-Limb Support", "% of gait cycle with both feet on ground", "20–30%", "Increases with age and fear of falling"]
]
),
spacer(),
heading2("2.2 Centre of Mass (COM) During Gait"),
bodyText("The body's COM is located approximately 2 cm anterior to S2. Its motion during normal gait follows a smooth sinusoidal path:"),
bulletPoint("Vertical displacement: amplitude ~5 cm (sinusoidal — rises and falls twice per stride)"),
bulletPoint("Lateral displacement: amplitude ~6 cm (shifts toward the weight-bearing limb)"),
bulletPoint("Minimizing COM displacement = the body's primary energy-conservation strategy"),
spacer(),
heading2("2.3 The Six Determinants of Gait"),
bodyText("Six biomechanical mechanisms work in concert to minimize unnecessary COM excursion and conserve metabolic energy:"),
spacer(),
// Six Determinants Table
fourColTable(
["#", "Determinant", "Mechanism", "Effect on COM"],
[
["1", "Pelvic Rotation", "Pelvis externally rotates IC → PSw; internally during swing", "Reduces rise-and-fall; increases functional limb length"],
["2", "Pelvic List (Tilt)", "Non-WB side drops ~5°", "Reduces peak superior deviation of COM"],
["3", "Early Stance Knee Flexion", "~15° knee flexion at loading response", "Dampens impact; reduces COM peak rise"],
["4", "Foot and Ankle Motion", "Subtalar pronation at LR; supination at MSt; PF at push-off", "Smooth transition; reduces abrupt COM changes"],
["5", "Knee Motion", "Flexion at IC; extension at MSt", "Works with ankle to smooth COM path"],
["6", "Lateral Pelvic Control", "~5 cm lateral shift over stance limb", "Narrows base; improves stance stability"]
]
),
spacer(),
heading2("2.4 Muscle Activity During Normal Gait"),
bodyText("Most muscle activity during normal walking is ECCENTRIC — the muscle is active while lengthening, controlling rather than producing motion:"),
spacer(),
fourColTable(
["Muscle Group", "Phase", "Contraction Type", "Function"],
[
["Anterior Tibialis", "Initial Contact", "Eccentric", "Prevents foot slap (controls plantarflexion)"],
["Anterior Tibialis", "Swing", "Concentric", "Dorsiflexion for foot clearance"],
["Quadriceps", "Loading Response", "Eccentric", "Controls stance-phase knee flexion (shock absorption)"],
["Hip Extensors", "Terminal Swing", "Eccentric", "Decelerates advancing limb before IC"],
["Hip Flexors", "Swing Phase", "Concentric", "Advances limb forward"],
["Gastrocnemius/Soleus", "Terminal Stance", "Concentric", "Push-off propulsion; energy generation"]
]
),
spacer(2),
divider(),
// ══════════════════════════════════════════════════════════════
// SECTION 3: OBSERVATIONAL GAIT ANALYSIS
// ══════════════════════════════════════════════════════════════
new Paragraph({
children: [new TextRun({ text: "SECTION 3: OBSERVATIONAL GAIT ANALYSIS (OGA)", bold: true, color: WHITE, size: 26 })],
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
spacing: { before: 200, after: 160 }
}),
bodyText("Observational Gait Analysis (OGA) is also called qualitative gait analysis. It relies on the trained clinician's eye — with or without video tools — to detect and document gait deviations."),
spacer(),
bodyText("The clinician observes the patient walking from FRONT, BOTH SIDES, and BEHIND — assessing one body segment at a time:"),
bulletPoint("Pelvis: rotation, obliquity, anterior/posterior tilt"),
bulletPoint("Hip: flexion/extension range, abduction/adduction"),
bulletPoint("Knee: flexion angle, varus/valgus, thrust"),
bulletPoint("Ankle and Foot: heel contact, dorsiflexion, plantarflexion, supination/pronation"),
bulletPoint("Trunk: forward lean, lateral lean, rotation"),
bulletPoint("Upper limbs: arm swing symmetry"),
bulletPoint("Overall: stride length, cadence, step width, rhythm, side-to-side symmetry"),
spacer(),
heading2("3.1 Types of Observational Gait Analysis"),
spacer(),
// Flowchart: OGA Types
heading3("Flowchart 3: Types of Observational Gait Analysis"),
spacer(),
new Table({
rows: [new TableRow({
children: [
new TableCell({
children: [
new Paragraph({ children: [new TextRun({ text: "A. UNAIDED VISUAL OBSERVATION", bold: true, color: WHITE, size: 18 })], alignment: AlignmentType.CENTER }),
new Paragraph({ children: [new TextRun({ text: "No equipment", size: 16, color: LIGHT_BLUE })], alignment: AlignmentType.CENTER })
],
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
margins: { top: 120, bottom: 120, left: 120, right: 120 }
}),
new TableCell({
children: [
new Paragraph({ children: [new TextRun({ text: "B. VIDEO-BASED OGA", bold: true, color: WHITE, size: 18 })], alignment: AlignmentType.CENTER }),
new Paragraph({ children: [new TextRun({ text: "Camera + slow-motion", size: 16, color: LIGHT_TEAL })], alignment: AlignmentType.CENTER })
],
shading: { type: ShadingType.SOLID, color: TEAL, fill: TEAL },
margins: { top: 120, bottom: 120, left: 120, right: 120 }
}),
new TableCell({
children: [
new Paragraph({ children: [new TextRun({ text: "C. STANDARDIZED SCALES", bold: true, color: WHITE, size: 18 })], alignment: AlignmentType.CENTER }),
new Paragraph({ children: [new TextRun({ text: "Structured scoring", size: 16, color: GOLD_LIGHT })], alignment: AlignmentType.CENTER })
],
shading: { type: ShadingType.SOLID, color: "7D3C98", fill: "7D3C98" },
margins: { top: 120, bottom: 120, left: 120, right: 120 }
})
]
})],
width: { size: 9500, type: WidthType.DXA },
margins: { top: 100, bottom: 200 }
}),
spacer(),
heading3("A. Unaided Visual Observation"),
bodyText("The simplest and most accessible form. The patient walks a defined pathway while the clinician systematically assesses each joint segment. Used routinely in clinical practice due to zero equipment requirement and portability."),
spacer(),
heading3("B. Video-Based Observational Analysis"),
bodyText("A camera records the patient walking. Advantages over direct observation:"),
bulletPoint("Slow-motion replay reveals high-speed events (rapid heel-off, toe clearance) missed by the naked eye"),
bulletPoint("Freeze-frame allows precise analysis of joint position at specific gait events"),
bulletPoint("Provides a permanent record for pre/post comparison"),
bulletPoint("Multiple viewing angles can be captured (sagittal and frontal planes)"),
bulletPoint("Can be shared with other clinicians for second opinion"),
spacer(),
heading3("C. Standardized Gait Rating Scales"),
fourColTable(
["Scale", "Full Name", "Population", "Key Feature"],
[
["Rancho Los Amigos OGA", "Observational Gait Analysis System", "General / Neurological", "Assesses each joint at each sub-phase; deviation form"],
["PRS", "Physician Rating Scale", "Cerebral Palsy", "Quick clinical scoring of CP gait patterns"],
["EVGS", "Edinburgh Visual Gait Score", "General", "Validated observational scale; inter-rater reliable"],
["FAC", "Functional Ambulation Classification", "Neurological / Elderly", "6-point scale for ambulatory ability classification"],
["GPS", "Gait Profile Score", "Research + Clinical", "Summary score derived from kinematic data"]
]
),
spacer(),
heading2("3.2 Advantages & Disadvantages of OGA (Qualitative Kinematic Analysis)"),
twoColTable(
["✔ ADVANTAGES", "✘ DISADVANTAGES"],
[
["No specialized equipment needed", "Cannot detect high-speed movements (e.g., rapid heel-off)"],
["Applicable in any clinical, ward, or community setting", "High inter-rater variability; 'normal' varies by examiner experience"],
["Low cost and time-efficient", "No permanent quantifiable record (without video)"],
["Applicable to virtually all patient groups", "Cannot provide force, EMG, or joint torque data"],
["Quick initial screening and routine follow-up", "Tendency to focus on sagittal plane; frontal/transverse planes missed"],
["Standardized scales allow progress tracking", "Most scales only identify abnormality — not its cause"],
["Clinically accessible for most physiotherapists", "Heavily dependent on examiner's training and experience"],
["Can identify gross gait deviations rapidly", "Poor patient understanding of findings from observation alone"]
],
"006400", LIGHT_BLUE
),
spacer(2),
divider(),
// ══════════════════════════════════════════════════════════════
// SECTION 4: CLASSIFICATION OF INSTRUMENTED GAIT ANALYSIS
// ══════════════════════════════════════════════════════════════
new Paragraph({
children: [new TextRun({ text: "SECTION 4: INSTRUMENTED GAIT ANALYSIS — CLASSIFICATION", bold: true, color: WHITE, size: 26 })],
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
spacing: { before: 200, after: 160 }
}),
bodyText("As gait science evolved, instrumented systems replaced and supplemented pure observation. According to Muro-de-la-Herran et al. (2014), modern systems are classified by sensor location into Non-Wearable Systems (NWS) and Wearable Systems (WS)."),
spacer(),
// Classification Flowchart
heading3("Flowchart 4: Classification of Gait Analysis Methods"),
spacer(),
flowchartBox("GAIT ANALYSIS METHODS", NAVY),
arrow(),
new Table({
rows: [new TableRow({
children: [
new TableCell({
children: [
new Paragraph({ children: [new TextRun({ text: "NON-WEARABLE SYSTEMS (NWS)", bold: true, color: WHITE, size: 19 })], alignment: AlignmentType.CENTER }),
new Paragraph({ children: [new TextRun({ text: "40% of research | Lab-based | High accuracy", size: 17, color: LIGHT_BLUE })], alignment: AlignmentType.CENTER }),
new Paragraph({ children: [new TextRun({ text: "• Optoelectronic Motion Capture\n• Force Plates\n• Pressure Mats\n• Markerless (Kinect)", size: 17, color: WHITE })], spacing: { before: 60 } })
],
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
margins: { top: 120, bottom: 120, left: 120, right: 80 }
}),
new TableCell({
children: [
new Paragraph({ children: [new TextRun({ text: "WEARABLE SYSTEMS (WS)", bold: true, color: WHITE, size: 19 })], alignment: AlignmentType.CENTER }),
new Paragraph({ children: [new TextRun({ text: "60% of research | Portable | Real-world", size: 17, color: LIGHT_TEAL })], alignment: AlignmentType.CENTER }),
new Paragraph({ children: [new TextRun({ text: "• IMUs (37.5% of studies)\n• Pressure Insoles\n• Electrogoniometers\n• Surface EMG\n• Ultrasonic Sensors", size: 17, color: WHITE })], spacing: { before: 60 } })
],
shading: { type: ShadingType.SOLID, color: TEAL, fill: TEAL },
margins: { top: 120, bottom: 120, left: 120, right: 120 }
})
]
})],
width: { size: 9500, type: WidthType.DXA },
margins: { top: 100, bottom: 200 }
}),
spacer(2),
heading2("4.1 Non-Wearable Systems (NWS)"),
spacer(),
heading3("A. Optoelectronic Motion Capture — Gold Standard for Kinematics"),
bulletPoint("Multiple high-speed infrared cameras (e.g., BTS GAITLAB: 8-camera setup + GRF walkway)"),
bulletPoint("Retroreflective markers placed on specific bony anatomical landmarks"),
subBullet("Passive markers: reflect infrared light back to cameras"),
subBullet("Active markers: the marker itself emits light"),
bulletPoint("Software calculates 3D position of each marker — body-fixed 'technical coordinate systems' from 3+ markers per segment"),
bulletPoint("Anatomic coordinate system derived from person-specific bony landmarks (e.g., medial/lateral femoral epicondyles, medial/lateral malleoli)"),
bulletPoint("Joint angles calculated using the Euler/Cardan angle system:"),
subBullet("One axis fixed to proximal segment (e.g., flexion-extension at femoral epicondyle axis)"),
subBullet("One axis fixed to distal segment (e.g., internal/external rotation along tibial long axis)"),
subBullet("One 'floating axis' orthogonal to both (abduction-adduction)"),
bulletPoint("Key limitation: SKIN-MOTION ARTIFACT — markers may not perfectly track underlying bone over soft tissue"),
spacer(),
heading3("B. Force Plates — Gold Standard for Kinetics"),
bulletPoint("Embedded in the walkway floor; patient walks directly over them"),
bulletPoint("Measure 3D Ground Reaction Forces (GRF) and moments during stance phase"),
bulletPoint("GRF is the mean load-bearing vector — changes in magnitude and direction throughout the gait cycle"),
bulletPoint("Determines joint moment (torque) = rotational effect of forces on each joint"),
bulletPoint("Joint Power = joint moment × joint angular velocity (+ = energy generation; − = energy absorption)"),
spacer(),
heading3("C. Pressure Mats / Pedobarography"),
bulletPoint("Systems: Tekscan, CONTEMPLAS"),
bulletPoint("Map plantar pressure distribution across the entire foot during stance"),
bulletPoint("Clinical use: diabetic foot assessment, footwear prescription, orthotic design"),
spacer(),
heading3("D. Markerless Systems"),
bulletPoint("Kinect sensors, Time-of-Flight cameras, structured light systems"),
bulletPoint("Capture full-body kinematics without any body-mounted markers"),
bulletPoint("Used for: gait recognition, clinical retraining feedback (e.g., Kinect-based lateral trunk lean training in stroke)"),
bulletPoint("More accessible and patient-friendly; less precise than optoelectronic systems"),
spacer(),
heading2("4.2 Wearable Systems (WS)"),
bodyText("Body-mounted systems allowing data collection outside the lab, during activities of daily living. Account for 60% of recent gait research due to portability and ecological validity."),
spacer(),
heading3("A. Inertial Measurement Units (IMUs) — Most Common WS (37.5% of studies)"),
bodyText("Each IMU contains:"),
bulletPoint("Accelerometer — measures linear acceleration"),
bulletPoint("Gyroscope — measures angular velocity"),
bulletPoint("Magnetometer — measures orientation relative to Earth's magnetic field"),
bodyText("Placed on: thigh, shank, foot, and/or waist to derive:"),
bulletPoint("Kinematic outputs: step detection, stride length, segment orientation, joint angles, cadence, walking speed"),
bulletPoint("Performance: correlation with lab motion capture >0.96; stride length error: -0.8 ± 6.6 cm"),
bulletPoint("Examples: Xsens MVN (17 IMUs, full-body 6-DOF capture); M3D system by Tec Gihan Co."),
spacer(),
heading3("B. Wearable Pressure & Force Sensors (Instrumented Insoles)"),
bulletPoint("Capacitive/Resistive sensors (e.g., FlexiForce piezoresistive): measure plantar pressure; R > 0.95 vs laboratory data"),
bulletPoint("Wearable GRF plates: 6-axis miniature force sensors on heel/toe; measure 3 forces + 3 moments; accuracy ~10% of GRF range (e.g., M3D wearable force plates)"),
bulletPoint("Clinical outputs: GRF curves, centre of pressure (COP) trajectory, gait phase detection, push-off power estimation"),
spacer(),
heading3("C. Electrogoniometers"),
bulletPoint("Flexible strain-gauge, inductive, or encoder-based angle sensors"),
bulletPoint("Directly measure joint angles at knee, ankle, hip throughout the gait cycle"),
bulletPoint("Accuracy: R = 0.999 vs mechanical goniometers"),
bulletPoint("Can be integrated into orthoses or footwear for continuous monitoring"),
spacer(),
heading3("D. Surface Electromyography (EMG)"),
bulletPoint("Records muscle activation timing and intensity during gait"),
bulletPoint("Identifies normal vs. out-of-phase firing patterns"),
bulletPoint("Combined with kinematics + kinetics: provides the complete picture of WHY a gait deviation occurs"),
spacer(),
heading3("E. Ultrasonic Sensors"),
bulletPoint("Placed on shoes; measure step length and inter-foot distance via sound wave time-of-flight"),
bulletPoint("Used for basic spatiotemporal analysis in sports and tele-monitoring"),
spacer(2),
divider(),
// ══════════════════════════════════════════════════════════════
// SECTION 5: KINETICS vs KINEMATICS
// ══════════════════════════════════════════════════════════════
new Paragraph({
children: [new TextRun({ text: "SECTION 5: KINETICS vs KINEMATICS", bold: true, color: WHITE, size: 26 })],
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
spacing: { before: 200, after: 160 }
}),
spacer(),
fourColTable(
["Parameter", "KINEMATIC Analysis", "KINETIC Analysis"],
[
["Focus", "Geometry of motion — describes HOW we move", "Forces causing motion — describes WHY we move"],
["Key Variables", "Joint angles, angular velocity, stride length, step time, cadence, segment displacement", "GRF, joint moments (torques), joint power, plantar pressure, centre of pressure (COP)"],
["Primary Tools", "IMUs, goniometers, motion capture cameras, Kinect, ultrasound", "Force plates, pressure insoles, wearable GRF sensors, piezoelectric sensors"],
["Clinical Use", "Detecting asymmetry, ROM deficits, spatiotemporal abnormalities (Parkinson's, stroke)", "Evaluating loading patterns, push-off power, balance, diabetic foot ulcer risk"],
["Data Example", "Xsens/M3D: knee flexion = 60° during swing phase", "M3D force plates: vertical GRF peak = 1.2 × body weight at mid-stance"],
["Answers the question", "\"What is the movement pattern?\"", "\"What forces are responsible?\""]
]
),
spacer(2),
divider(),
// ══════════════════════════════════════════════════════════════
// SECTION 6: ADVANTAGES & DISADVANTAGES
// ══════════════════════════════════════════════════════════════
new Paragraph({
children: [new TextRun({ text: "SECTION 6: QUALITATIVE vs QUANTITATIVE KINEMATIC GAIT ANALYSIS", bold: true, color: WHITE, size: 24 })],
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
spacing: { before: 200, after: 160 }
}),
spacer(),
heading2("6.1 Kinematic Qualitative Gait Analysis (Observational)"),
twoColTable(
["✔ ADVANTAGES", "✘ DISADVANTAGES"],
[
["No specialized equipment needed — usable in any setting", "Cannot detect high-speed movements missed by the naked eye"],
["Portable — applicable in clinic, ward, or community", "High inter-rater variability; 'normal gait' defined differently by different examiners"],
["Low cost and time-efficient", "No permanent quantifiable record for objective comparison"],
["Applicable to virtually all patient groups including those with assistive devices", "Cannot provide force, EMG, or joint torque data"],
["Suitable for initial clinical screening and routine follow-up", "Tendency to focus on sagittal plane; transverse and frontal plane movements frequently missed"],
["Standardized scales (Rancho, EVGS) allow structured progress tracking", "Most scales only identify that gait is abnormal — not the underlying biomechanical cause"],
["Clinically accessible — requires no technical training beyond clinical expertise", "Depends heavily on examiner training and clinical experience"],
["Can be combined with gait scales for semi-objective documentation", "Poor patient understanding of their own problem from observation alone"]
],
"006400", LIGHT_BLUE
),
spacer(2),
heading2("6.2 Kinematic Quantitative Gait Analysis (Instrumented)"),
twoColTable(
["✔ ADVANTAGES", "✘ DISADVANTAGES"],
[
["Provides objective, measurable, reproducible data", "Requires specialized, expensive laboratory equipment"],
["Three-dimensional analysis captures all planes (sagittal, frontal, transverse)", "Generally requires a controlled lab setting — not portable (NWS)"],
["Permanent quantitative record for longitudinal comparison", "Time-consuming data acquisition, processing, and interpretation"],
["Enables precise pre- and post-treatment comparison", "Skin-motion artifact reduces accuracy of marker-based systems"],
["Identifies subtle gait deviations missed by clinical observation", "Accuracy depends on precise anatomical marker placement by skilled technician"],
["Wearable IMUs allow ambulatory, real-world monitoring (WS)", "2D kinematic systems miss transverse (rotational) plane movements"],
["Changed surgical recommendations in 52% of cases vs observation alone (Campbell's, 2026)", "Despite objective data, interpretation is partly subjective — only slight-to-moderate inter-physician agreement reported"],
["Combined with kinetics + EMG = complete biomechanical picture", "Kinematic data alone does not explain forces or muscles responsible for deviations"]
],
"006400", LIGHT_TEAL
),
spacer(2),
divider(),
// ══════════════════════════════════════════════════════════════
// SECTION 7: CLINICAL APPLICATIONS
// ══════════════════════════════════════════════════════════════
new Paragraph({
children: [new TextRun({ text: "SECTION 7: CLINICAL & RESEARCH APPLICATIONS", bold: true, color: WHITE, size: 26 })],
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
spacing: { before: 200, after: 160 }
}),
fourColTable(
["Domain", "Method Used", "Application", "Outcome"],
[
["Orthopaedic Surgery", "3D Motion Capture + Force Plates", "Pre-op planning in cerebral palsy; post-op outcome assessment", "Changed surgical plan in 52% of cases (Campbell's, 2026)"],
["Neurology (Parkinson's)", "Wearable IMUs", "Long-term ambulatory monitoring; freezing of gait detection", "Objective home-based gait tracking"],
["Stroke Rehabilitation", "Kinect (Markerless)", "Lateral trunk lean feedback during gait retraining", "Real-time biofeedback in rehabilitation"],
["Diabetology", "Pressure Mats / Insoles", "Plantar pressure mapping for high-risk ulcer zones", "Prevention of diabetic foot complications"],
["Orthotic Monitoring", "Electrogoniometers", "Knee-joint angle tracking in orthoses during daily activity", "Objective orthotic effectiveness evaluation"],
["Sports Science", "IMUs + Ultrasonic", "Stride analysis; tele-monitoring during training", "Performance optimization and injury prevention"],
["Biomechanics Research", "Instrumented Insoles", "Forner Cordero: complete GRF from pressure insoles; Howell: validated low-cost insoles vs lab", "Wearable systems validated against lab gold standard"]
]
),
spacer(2),
divider(),
// ══════════════════════════════════════════════════════════════
// SECTION 8: CONCLUSION
// ══════════════════════════════════════════════════════════════
new Paragraph({
children: [new TextRun({ text: "SECTION 8: CONCLUSION", bold: true, color: WHITE, size: 26 })],
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
spacing: { before: 200, after: 160 }
}),
bodyText("Gait analysis has evolved from purely subjective clinical observation to a spectrum of highly accurate objective measurement systems. The ideal clinical approach integrates multiple methods:"),
spacer(),
// Conclusion flowchart
heading3("Flowchart 5: Integrated Clinical Gait Analysis Approach"),
spacer(),
flowchartBox("STEP 1: Observational Gait Analysis (Screening)", NAVY),
arrow(),
flowchartBox("STEP 2: Standardized Rating Scale (Rancho, EVGS, FAC)", TEAL),
arrow(),
flowchartBox("STEP 3: Quantitative Kinematic Analysis (IMU / Motion Capture)", "1A5276"),
arrow(),
flowchartBox("STEP 4: Kinetic Analysis (Force Plates / Wearable GRF)", "0B5345"),
arrow(),
flowchartBox("STEP 5: EMG Analysis (Muscle Activation Patterns)", "7D3C98"),
arrow(),
flowchartBox("STEP 6: Integrated Clinical Decision-Making + Treatment Planning", "B7950B"),
spacer(2),
bodyText("Key conclusion: A review of 32 articles (Muro-de-la-Herran et al., 2014) concluded that wearable systems are the most promising future direction because they provide sufficient precision in portable, real-world formats. However, non-wearable laboratory systems (force plates, optoelectronic capture) remain the gold standard for accuracy in kinetic and kinematic measurement respectively. The future lies in hybrid systems combining wearable portability with laboratory-grade precision."),
spacer(2),
divider(),
// REFERENCES
heading2("References"),
bulletPoint("Campbell's Operative Orthopaedics, 15th Ed., 2026 (Chapter: Gait Analysis)"),
bulletPoint("Miller's Review of Orthopaedics, 9th Ed. (Chapter 10: Gait)"),
bulletPoint("Firestein & Kelley's Textbook of Rheumatology, 2022 (Chapter 6: Kinematics)"),
bulletPoint("Muro-de-la-Herran A, Garcia-Zapirain B, Mendez-Zorrilla A. Gait Analysis Methods: An Overview of Wearable and Non-Wearable Systems. Sensors. 2014;14(2):3362-3394."),
bulletPoint("General Anatomy & Musculoskeletal System — THIEME Atlas of Anatomy")
]
}]
});
Packer.toBuffer(doc).then(buffer => {
fs.writeFileSync('/home/daytona/workspace/gait-analysis/Gait_Analysis_MPT_20marks.docx', buffer);
console.log('Document created successfully!');
}).catch(err => {
console.error('Error:', err);
process.exit(1);
});
cd /home/daytona/workspace/gait-analysis && node create_gait_doc.js 2>&1
python3 /home/daytona/skills/docx/scripts/office/validate.py /home/daytona/workspace/gait-analysis/Gait_Analysis_MPT_20marks.docx 2>&1
cd /home/daytona/workspace/gait-analysis && python3 -c " import zipfile, os f = 'Gait_Analysis_MPT_20marks.docx' size = os.path.getsize(f) print(f'File size: {size} bytes ({size/1024:.1f} KB)') with zipfile.ZipFile(f) as z: files = z.namelist() print('Contents:', files[:10]) # Try to open word/document.xml with z.open('word/document.xml') as doc: content = doc.read() print(f'document.xml size: {len(content)} bytes') print('First 200 chars:', content[:200]) " 2>&1
ls -lh /home/daytona/workspace/gait-analysis/
Gait Analysis MPT 20marks
Word Document · DOCX