Iceberg phenomenon
iceberg phenomenon epidemiology medicine concept explained

| Zone | What it represents |
|---|---|
| Tip (above waterline) | Symptomatic, diagnosed, clinically apparent cases - "what the physician sees" |
| Waterline | The threshold between apparent and inapparent disease |
| Submerged bulk (below waterline) | Pre-symptomatic, subclinical, undiagnosed cases, carriers, latent infections - "what the physician does not see" |
Susceptible host → Subclinical infection → Clinical disease (mild → moderate → severe) → Death
Uses of screening
What are the limitations and harms of screening?
No screening test is perfect - none can achieve 100% sensitivity AND 100% specificity simultaneously. There is always a trade-off.
| Limitation / Harm | Consequence |
|---|---|
| False negatives | False reassurance, delayed treatment |
| False positives | Anxiety, unnecessary investigations, cost |
| Cut-off point trade-off | No perfect threshold exists |
| Self-selection bias | High-risk groups may not participate |
| Low yield at low prevalence | Majority of positives are false positives |
| Procedural complications | Physical harm from the screening test itself |
| No follow-up | Benefit lost; psychological harm persists |
| Cost vs. accuracy compromise | Less accurate tests used at population scale |
| Lack of prior evaluation | Harm may outweigh benefit if not properly studied |
According to nagar textbook
Nagar community physiotherapy textbook
| Category | Available Books |
|---|---|
| Community Medicine | Park's Textbook of Preventive and Social Medicine |
| Physiology | Guyton & Hall, Ganong's, Costanzo, Medical Physiology |
| Surgery, Medicine, etc. | Harrison's, Bailey & Love's, Braunwald's, and many others |
Limitation according to physiotherapy pov
limitations of screening in community physiotherapy perspective
| Limitation | Physiotherapy Relevance |
|---|---|
| No universal tool | Many conditions, many tools, no consensus |
| False negatives | At-risk patients missed, no intervention |
| False positives | Unnecessary referrals, wasted resources |
| Subjectivity of functional tests | Reliability and reproducibility problems |
| Self-selection bias | High-risk groups don't attend |
| Poor follow-up pathways | Screening without treatment = harm |
| Patient non-compliance | Incomplete or inaccurate data |
| Single time-point limitation | Doesn't reflect dynamic functional status |
| Screening ≠ diagnosis | Requires further full assessment |
| Resource constraints | Not always feasible in community settings |
Note: The specific "Nagar Community Physiotherapy" textbook is not available in this library. The above is synthesised from established community medicine principles (Park's), physiotherapy practice guidelines (APTA), and available medical library content. If you can share the relevant pages from that textbook, I can map the content precisely.
Create a comparison table of screening tools used in community physiotherapy
community physiotherapy screening tools comparison TUG Berg Balance Scale FRAX functional assessment
| Tool | Full Name | What It Measures | Method | Cut-off / Scoring | Time | Best Used For | Limitations |
|---|---|---|---|---|---|---|---|
| TUG | Timed Up and Go | Gait, mobility, fall risk | Patient stands from chair, walks 3m, turns, sits | >12 sec = fall risk; >20 sec = dependent | 2-3 min | Elderly, neurological patients | Single task only; not reflective of dual-task ability |
| BBS | Berg Balance Scale | Static and dynamic balance | 14 functional balance tasks scored 0-4 each | <45/56 = fall risk | 15-20 min | Community elderly, stroke, PD | Time-consuming; ceiling effect in high-functioning adults |
| Tinetti POMA | Performance-Oriented Mobility Assessment | Gait + balance combined | Observational gait and balance tasks | <19 = high fall risk; 19-24 = moderate | 10-15 min | Frail elderly | Requires trained observer; subjective scoring |
| FAB Scale | Fullerton Advanced Balance Scale | Dynamic balance in active adults | 10 challenging balance tasks | <25/40 = fall risk | 10-15 min | Active community-dwelling adults | Not suitable for very frail; limited normative data |
| FSST | Four Square Step Test | Dynamic stepping, fall risk | Step over canes in 4 squares in sequence | >15 sec = fall risk | 5 min | Community elderly | Requires floor space and 4 canes |
| Tool | Full Name | What It Measures | Method | Cut-off / Scoring | Time | Best Used For | Limitations |
|---|---|---|---|---|---|---|---|
| 10MWT | 10-Metre Walk Test | Gait speed | Timed walk over 10 metres | <0.8 m/s = community ambulation risk | 5 min | Stroke, elderly, orthopaedic | Requires 14m corridor space |
| 6MWT | 6-Minute Walk Test | Walking endurance, cardiorespiratory fitness | Distance walked in 6 minutes | Age/sex normative values | 6 min | COPD, cardiac rehab, elderly | Requires large space; not suitable for very frail |
| DGI | Dynamic Gait Index | Gait adaptability under varied conditions | 8 tasks including head turns, stepping over obstacles | <19/24 = fall risk | 10-15 min | Vestibular disorders, elderly | Requires equipment; subjective scoring |
| FGA | Functional Gait Assessment | Gait stability, vestibular function | 10-item gait task scoring | <22/30 = fall risk | 10 min | Vestibular, neurological patients | Requires trained observer |
| Tool | Full Name | What It Measures | Method | Cut-off / Scoring | Time | Best Used For | Limitations |
|---|---|---|---|---|---|---|---|
| MSKT | Musculoskeletal Screening Tool | Joint ROM, pain, function | Interview + brief physical exam | Positive = needs detailed assessment | 10 min | Community OA, back pain | Not highly standardised |
| ODHA | Oswestry Disability Index | Low back pain disability | 10-question self-report | 0-20% = minimal; >60% = crippling | 5 min | Low back pain | Self-report only; not objective |
| NDI | Neck Disability Index | Cervical spine disability | 10-question self-report | 0-8% = no disability; >50% = complete | 5 min | Neck pain, cervicogenic headache | Self-report bias |
| FRAX | Fracture Risk Assessment Tool | 10-year osteoporotic fracture risk | Age, BMD, clinical risk factors via questionnaire | Country-specific thresholds | 5 min | Osteoporosis screening >50 yrs | Requires BMD data ideally; underestimates in some populations |
| Tool | Full Name | What It Measures | Method | Cut-off / Scoring | Time | Best Used For | Limitations |
|---|---|---|---|---|---|---|---|
| Barthel Index | Barthel Index | ADL independence (10 activities) | Observer-rated 10 ADL tasks | 100 = fully independent; <60 = needs help | 5 min | Stroke, elderly, rehabilitation | Ceiling effect; does not capture instrumental ADLs |
| FIM | Functional Independence Measure | Motor + cognitive function (18 items) | Trained rater observation | 18 = total dependence; 126 = full independence | 30 min | Inpatient rehab, complex disability | Requires certified training; time-consuming |
| KATZ ADL | Katz Index of ADL | Basic self-care independence | 6 ADL items, yes/no | 6 = independent; 0 = dependent | 5 min | Elderly community | Only basic ADLs; misses complex function |
| Tool | Full Name | What It Measures | Method | Cut-off / Scoring | Time | Best Used For | Limitations |
|---|---|---|---|---|---|---|---|
| FRAIL Scale | Fatigue, Resistance, Ambulation, Illness, Loss of weight | Frailty in community elderly | 5-item self-report questionnaire | 0 = robust; 1-2 = pre-frail; 3-5 = frail | 2 min | Rapid community frailty screen | Self-report; no physical performance item |
| Fried Frailty Phenotype | Fried Criteria | Physical frailty (5 criteria) | Weight loss, exhaustion, grip strength, gait speed, activity level | ≥3 = frail; 1-2 = pre-frail | 10-15 min | Research; detailed frailty assessment | Time-consuming; needs dynamometer |
| SPPB | Short Physical Performance Battery | Lower limb function, gait speed, balance | Balance tests + 4m gait speed + 5x chair stand | 0-12; ≤8 = mobility limitation | 10 min | Community elderly | Requires training; not suitable for non-ambulatory |
| Tool | Full Name | What It Measures | Method | Cut-off / Scoring | Time | Best Used For | Limitations |
|---|---|---|---|---|---|---|---|
| VAS | Visual Analogue Scale | Pain intensity | 100mm line marked by patient | 0 = no pain; 100 = worst pain | 1 min | All musculoskeletal conditions | Cannot be used with cognitive impairment |
| NRS | Numeric Rating Scale | Pain intensity | 0-10 verbal/written rating | 0 = none; 1-3 = mild; 4-6 = moderate; 7-10 = severe | 1 min | Bedside, community, all ages | Subjective; culturally variable |
| LANSS | Leeds Assessment of Neuropathic Symptoms and Signs | Neuropathic vs nociceptive pain | 5 symptom + 2 examination items | ≥12/24 = likely neuropathic | 5 min | Diabetic neuropathy, post-stroke pain | Requires brief sensory examination |
| Clinical Goal | Recommended Tool |
|---|---|
| Quick fall risk screen | TUG |
| Detailed balance assessment | Berg Balance Scale |
| Gait speed measurement | 10MWT |
| Walking endurance | 6MWT |
| Frailty (rapid) | FRAIL Scale |
| Frailty (detailed) | SPPB or Fried Criteria |
| Low back disability | Oswestry Disability Index |
| ADL independence (basic) | Barthel Index |
| ADL independence (detailed) | FIM |
| Osteoporotic fracture risk | FRAX |
| Pain intensity | NRS (simplest) / VAS |
All tools listed are validated for community use. Selection should be based on the target population, available resources, time constraints, and the specific clinical question being asked.
Create a clinical decision flowchart for selecting screening tools
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "created"
mkdir -p /tmp/workspace/flowchart && python3 << 'EOF' import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import matplotlib.patches as mpatches from matplotlib.patches import FancyBboxPatch, FancyArrowPatch fig, ax = plt.subplots(1, 1, figsize=(22, 28)) ax.set_xlim(0, 22) ax.set_ylim(0, 28) ax.axis('off') fig.patch.set_facecolor('#F7F9FC') # ── colour palette ────────────────────────────────────────────────────────── C_START = '#2C3E7A' # dark navy – start/end C_Q = '#1A6B9A' # teal-blue – decision diamonds C_TOOL = '#1A7A4A' # forest green – recommended tool boxes C_SUB = '#B35C00' # amber – sub-question C_ARROW = '#444444' C_TXT = 'white' C_BG = '#F7F9FC' def box(ax, x, y, w, h, text, color, fontsize=9, text_color='white', style='round,pad=0.1'): rx, ry = x - w/2, y - h/2 bp = FancyBboxPatch((rx, ry), w, h, boxstyle=style, linewidth=1.5, edgecolor='white', facecolor=color, zorder=3) ax.add_patch(bp) ax.text(x, y, text, ha='center', va='center', fontsize=fontsize, color=text_color, fontweight='bold', zorder=4, wrap=True, multialignment='center') def diamond(ax, x, y, w, h, text, color, fontsize=8.5): dx, dy = w/2, h/2 pts = [(x, y+dy), (x+dx, y), (x, y-dy), (x-dx, y)] poly = plt.Polygon(pts, closed=True, facecolor=color, edgecolor='white', linewidth=1.5, zorder=3) ax.add_patch(poly) ax.text(x, y, text, ha='center', va='center', fontsize=fontsize, color='white', fontweight='bold', zorder=4, multialignment='center') def arrow(ax, x1, y1, x2, y2, label='', color=C_ARROW): ax.annotate('', xy=(x2, y2), xytext=(x1, y1), arrowprops=dict(arrowstyle='->', color=color, lw=1.8), zorder=2) if label: mx, my = (x1+x2)/2, (y1+y2)/2 ax.text(mx+0.15, my, label, fontsize=7.5, color=color, fontstyle='italic', zorder=5) def tool_box(ax, x, y, title, tools, color=C_TOOL): """Tall box listing tool name + score threshold.""" lines = [title] + tools text = '\n'.join(lines) n = len(lines) h = 0.38 * n + 0.3 w = 4.0 box(ax, x, y, w, h, text, color, fontsize=7.8, style='round,pad=0.15') return h # ════════════════════════════════════════════════════════════════════════════ # TITLE # ════════════════════════════════════════════════════════════════════════════ ax.text(11, 27.4, 'Clinical Decision Flowchart', ha='center', va='center', fontsize=17, fontweight='bold', color=C_START) ax.text(11, 27.0, 'Selecting Screening Tools in Community Physiotherapy', ha='center', va='center', fontsize=11, color='#555555') # ════════════════════════════════════════════════════════════════════════════ # STEP 1 – START # ════════════════════════════════════════════════════════════════════════════ box(ax, 11, 26.3, 5, 0.7, 'PATIENT PRESENTS TO COMMUNITY PHYSIOTHERAPY', C_START, fontsize=9) arrow(ax, 11, 25.95, 11, 25.35) # ════════════════════════════════════════════════════════════════════════════ # Q1 – Primary clinical concern # ════════════════════════════════════════════════════════════════════════════ diamond(ax, 11, 24.85, 6.5, 1.0, 'What is the PRIMARY clinical concern?', C_Q, fontsize=9) # Five branches from Q1 branches = [ (2.2, 22.8, 'FALL\nRISK'), (5.5, 22.8, 'MUSCULO-\nSKELETAL'), (11, 22.8, 'FUNCTIONAL\nINDEPENDENCE\n/ ADL'), (16.5, 22.8, 'FRAILTY'), (19.8, 22.8, 'PAIN'), ] for bx, by, label in branches: arrow(ax, bx if abs(bx-11)<0.5 else 11, 24.35, bx, by+0.5) box(ax, bx, by, 2.8, 0.9, label, C_SUB, fontsize=8) # ════════════════════════════════════════════════════════════════════════════ # BRANCH 1 – FALL RISK # ════════════════════════════════════════════════════════════════════════════ arrow(ax, 2.2, 22.35, 2.2, 21.7) diamond(ax, 2.2, 21.2, 3.8, 0.9, 'Time\navailable?', C_Q, fontsize=8) # Quick (<5 min) → TUG arrow(ax, 0.9, 21.2, 0.9, 20.1); ax.text(0.55, 20.65, 'Quick\n(<5 min)', fontsize=7, color=C_ARROW, ha='center') box(ax, 0.9, 19.65, 2.9, 0.8, 'TUG Test\n>12 s = fall risk', C_TOOL, fontsize=7.8) # Detailed → BBS or Tinetti arrow(ax, 3.5, 21.2, 3.5, 20.1); ax.text(3.85, 20.65, 'Detailed\n(>10 min)', fontsize=7, color=C_ARROW, ha='center') # Active vs frail diamond(ax, 3.5, 19.55, 3.4, 0.8, 'Patient\nactive?', C_Q, fontsize=7.5) arrow(ax, 2.2, 19.55, 1.5, 18.5); ax.text(1.3, 19.1, 'No\n(Frail)', fontsize=7, color=C_ARROW, ha='center') box(ax, 1.5, 18.1, 2.8, 0.7, 'Tinetti POMA\n<19 = high risk', C_TOOL, fontsize=7.5) arrow(ax, 4.8, 19.55, 5.2, 18.5); ax.text(5.3, 19.1, 'Yes\n(Active)', fontsize=7, color=C_ARROW, ha='center') box(ax, 5.2, 18.1, 2.8, 0.7, 'Berg Balance Scale\n<45/56 = risk', C_TOOL, fontsize=7.5) # Advanced balance arrow(ax, 2.2, 22.35, 2.2, 21.7) # Add gait speed note arrow(ax, 0.9, 19.25, 0.9, 18.5) box(ax, 0.9, 18.1, 2.8, 0.65, 'Add: 10MWT\n(gait speed)', '#5B7FA6', fontsize=7.5) # ════════════════════════════════════════════════════════════════════════════ # BRANCH 2 – MUSCULOSKELETAL # ════════════════════════════════════════════════════════════════════════════ arrow(ax, 5.5, 22.35, 5.5, 21.4) diamond(ax, 5.5, 20.9, 3.6, 0.9, 'Body region\naffected?', C_Q, fontsize=8) arrow(ax, 4.2, 20.9, 4.2, 19.9); ax.text(3.7, 20.4, 'Low\nBack', fontsize=7, color=C_ARROW, ha='center') box(ax, 4.2, 19.55, 2.8, 0.6, 'Oswestry\nDisability Index', C_TOOL, fontsize=7.5) arrow(ax, 5.5, 20.45, 5.5, 19.9); ax.text(5.7, 20.2, 'Neck', fontsize=7, color=C_ARROW, ha='center') box(ax, 5.5, 19.55, 2.8, 0.6, 'Neck Disability\nIndex (NDI)', C_TOOL, fontsize=7.5) arrow(ax, 6.8, 20.9, 6.8, 19.9); ax.text(7.1, 20.4, 'Osteo-\nporosis\nrisk', fontsize=7, color=C_ARROW, ha='center') box(ax, 6.8, 19.55, 2.8, 0.6, 'FRAX Score\n(10-yr fracture risk)', C_TOOL, fontsize=7.5) # Add neuropathic pain branch arrow(ax, 5.5, 19.25, 5.5, 18.5) diamond(ax, 5.5, 18.0, 3.2, 0.8, 'Neuropathic\npain suspected?', C_Q, fontsize=7.5) arrow(ax, 4.2, 18.0, 4.2, 17.2); ax.text(3.7, 17.6, 'Yes', fontsize=7, color=C_ARROW) box(ax, 4.2, 16.85, 2.8, 0.6, 'LANSS Scale\n≥12 = neuropathic', C_TOOL, fontsize=7.5) arrow(ax, 6.8, 18.0, 6.8, 17.2); ax.text(6.9, 17.6, 'No', fontsize=7, color=C_ARROW) box(ax, 6.8, 16.85, 2.8, 0.6, 'NRS / VAS\nPain intensity', C_TOOL, fontsize=7.5) # ════════════════════════════════════════════════════════════════════════════ # BRANCH 3 – FUNCTIONAL INDEPENDENCE / ADL # ════════════════════════════════════════════════════════════════════════════ arrow(ax, 11, 22.35, 11, 21.4) diamond(ax, 11, 20.9, 3.8, 0.9, 'Level of\ncomplexity needed?', C_Q, fontsize=8) arrow(ax, 9.5, 20.9, 9.5, 19.9); ax.text(8.9, 20.4, 'Basic\nADL', fontsize=7, color=C_ARROW, ha='center') box(ax, 9.5, 19.55, 2.9, 0.7, 'Barthel Index\n100 = independent', C_TOOL, fontsize=7.5) arrow(ax, 11, 20.45, 11, 19.9); ax.text(11.15, 20.2, 'IADL', fontsize=7, color=C_ARROW) box(ax, 11, 19.55, 2.9, 0.7, 'Lawton IADL\nScale (0–8)', C_TOOL, fontsize=7.5) arrow(ax, 12.5, 20.9, 12.5, 19.9); ax.text(12.7, 20.4, 'Rehab /\nComplex', fontsize=7, color=C_ARROW, ha='center') box(ax, 12.5, 19.55, 2.9, 0.7, 'FIM\n(18–126)', C_TOOL, fontsize=7.5) # Endurance sub-branch arrow(ax, 11, 19.2, 11, 18.5) diamond(ax, 11, 18.0, 3.4, 0.8, 'Endurance\nconcern?', C_Q, fontsize=7.5) arrow(ax, 9.8, 18.0, 9.8, 17.2); ax.text(9.3, 17.6, 'Yes', fontsize=7, color=C_ARROW) box(ax, 9.8, 16.85, 2.9, 0.6, '6-Minute\nWalk Test', C_TOOL, fontsize=7.5) arrow(ax, 12.2, 18.0, 12.2, 17.2); ax.text(12.3, 17.6, 'No', fontsize=7, color=C_ARROW) box(ax, 12.2, 16.85, 2.9, 0.6, 'SPPB\n(0–12)', C_TOOL, fontsize=7.5) # ════════════════════════════════════════════════════════════════════════════ # BRANCH 4 – FRAILTY # ════════════════════════════════════════════════════════════════════════════ arrow(ax, 16.5, 22.35, 16.5, 21.4) diamond(ax, 16.5, 20.9, 3.8, 0.9, 'Purpose of\nassessment?', C_Q, fontsize=8) arrow(ax, 15.0, 20.9, 15.0, 19.9); ax.text(14.3, 20.4, 'Rapid\nScreen', fontsize=7, color=C_ARROW, ha='center') box(ax, 15.0, 19.55, 2.9, 0.7, 'FRAIL Scale\n≥3 = frail', C_TOOL, fontsize=7.5) arrow(ax, 16.5, 20.45, 16.5, 19.9); ax.text(16.7, 20.2, 'Detailed', fontsize=7, color=C_ARROW) box(ax, 16.5, 19.55, 2.9, 0.7, 'Fried Frailty\nPhenotype ≥3', C_TOOL, fontsize=7.5) arrow(ax, 18.0, 20.9, 18.0, 19.9); ax.text(18.2, 20.4, 'Physical\nPerform.', fontsize=7, color=C_ARROW, ha='center') box(ax, 18.0, 19.55, 2.9, 0.7, 'SPPB\n≤8 = limitation', C_TOOL, fontsize=7.5) # Cognitive flag arrow(ax, 16.5, 19.2, 16.5, 18.5) diamond(ax, 16.5, 18.0, 3.2, 0.8, 'Cognitive\nimpairment?', C_Q, fontsize=7.5) arrow(ax, 15.2, 18.0, 15.2, 17.2); ax.text(14.7, 17.6, 'Yes', fontsize=7, color=C_ARROW) box(ax, 15.2, 16.85, 2.9, 0.6, 'Mini-Cog /\nMMSE (refer)', C_TOOL, fontsize=7.5) arrow(ax, 17.8, 18.0, 17.8, 17.2); ax.text(17.9, 17.6, 'No', fontsize=7, color=C_ARROW) box(ax, 17.8, 16.85, 2.9, 0.6, 'Proceed with\nphysical tools', '#5B7FA6', fontsize=7.5) # ════════════════════════════════════════════════════════════════════════════ # BRANCH 5 – PAIN # ════════════════════════════════════════════════════════════════════════════ arrow(ax, 19.8, 22.35, 19.8, 21.4) diamond(ax, 19.8, 20.9, 2.8, 0.9, 'Patient\ncooperation?', C_Q, fontsize=7.5) arrow(ax, 19.8, 20.45, 19.8, 19.9); ax.text(20.0, 20.2, 'Good', fontsize=7, color=C_ARROW) box(ax, 19.8, 19.55, 2.9, 0.7, 'NRS (0–10)\nor VAS', C_TOOL, fontsize=7.5) arrow(ax, 19.8, 19.2, 19.8, 18.5) diamond(ax, 19.8, 18.0, 2.8, 0.8, 'Neuro-\npathic?', C_Q, fontsize=7.5) arrow(ax, 18.6, 18.0, 18.6, 17.2); ax.text(18.1, 17.6, 'Yes', fontsize=7, color=C_ARROW) box(ax, 18.6, 16.85, 2.6, 0.6, 'LANSS\n≥12 = neuro', C_TOOL, fontsize=7.5) arrow(ax, 21.0, 18.0, 21.0, 17.2); ax.text(21.1, 17.6, 'No', fontsize=7, color=C_ARROW) box(ax, 21.0, 16.85, 2.6, 0.6, 'BPI (Brief\nPain Inv.)', C_TOOL, fontsize=7.5) # ════════════════════════════════════════════════════════════════════════════ # COMMON FINAL STEPS (bottom) # ════════════════════════════════════════════════════════════════════════════ # Horizontal connector line ax.plot([0.5, 21.5], [15.9, 15.9], color='#AAAAAA', lw=1.2, ls='--', zorder=1) ax.text(11, 15.65, '▼ ALL BRANCHES CONVERGE ▼', ha='center', fontsize=8, color='#777777', style='italic') arrow(ax, 11, 15.55, 11, 14.9) diamond(ax, 11, 14.4, 5.0, 0.9, 'Is the screen POSITIVE\nor borderline?', C_Q, fontsize=9) # YES → Detailed assessment arrow(ax, 8.7, 14.4, 7.5, 13.3); ax.text(7.5, 13.9, 'YES', fontsize=8, color='#B03030', fontweight='bold') box(ax, 7.5, 12.95, 4.8, 0.6, 'Perform Full Physiotherapy Assessment\n+ Set measurable goals', C_TOOL, fontsize=8) # NO → Reassure + reassess arrow(ax, 13.3, 14.4, 14.5, 13.3); ax.text(14.0, 13.9, 'NO', fontsize=8, color='#1A7A4A', fontweight='bold') box(ax, 14.5, 12.95, 4.0, 0.6, 'Reassure + Health Education\n+ Schedule re-screen', '#5B7FA6', fontsize=8) # Detailed assessment → intervention arrow(ax, 7.5, 12.65, 7.5, 11.9) diamond(ax, 7.5, 11.4, 4.8, 0.9, 'Are treatment goals\nclear?', C_Q, fontsize=8.5) arrow(ax, 5.2, 11.4, 4.0, 10.4); ax.text(3.8, 10.95, 'YES', fontsize=8, color='#1A7A4A', fontweight='bold') box(ax, 4.0, 10.0, 4.0, 0.7, 'Initiate Physiotherapy\nIntervention Plan', C_TOOL, fontsize=8) arrow(ax, 9.8, 11.4, 11.0, 10.4); ax.text(10.6, 10.95, 'NO', fontsize=8, color='#B03030', fontweight='bold') box(ax, 11.0, 10.0, 4.0, 0.7, 'Refer to Specialist /\nMultidisciplinary Team', '#8B3A8B', fontsize=8) # Both → Monitor & re-screen arrow(ax, 4.0, 9.65, 4.0, 9.0) arrow(ax, 11.0, 9.65, 11.0, 9.0) ax.plot([4.0, 11.0], [9.0, 9.0], color=C_ARROW, lw=1.5, zorder=2) arrow(ax, 7.5, 9.0, 7.5, 8.4) box(ax, 7.5, 8.1, 4.5, 0.55, 'Monitor Progress + Re-screen at 4–6 weeks', C_START, fontsize=8) # ════════════════════════════════════════════════════════════════════════════ # LEGEND # ════════════════════════════════════════════════════════════════════════════ legend_items = [ (C_START, 'Start / End / Monitor'), (C_Q, 'Decision Point'), (C_TOOL, 'Recommended Screening Tool'), (C_SUB, 'Clinical Concern Category'), ('#5B7FA6', 'Supplementary / Next step'), ('#8B3A8B', 'Referral'), ] lx, ly = 14.5, 8.8 ax.text(lx, ly, 'LEGEND', fontsize=9, fontweight='bold', color='#333333') for i, (col, lbl) in enumerate(legend_items): ry = ly - 0.55 * (i + 1) rect = FancyBboxPatch((lx, ry - 0.18), 0.55, 0.36, boxstyle='round,pad=0.05', facecolor=col, edgecolor='white', lw=1, zorder=3) ax.add_patch(rect) ax.text(lx + 0.7, ry, lbl, fontsize=8, va='center', color='#333333') # ── watermark / source ─────────────────────────────────────────────────────── ax.text(11, 0.3, 'Community Physiotherapy • Clinical Screening Decision Flowchart', ha='center', fontsize=7.5, color='#AAAAAA', style='italic') plt.tight_layout(pad=0.3) plt.savefig('/tmp/workspace/flowchart/screening_flowchart.png', dpi=180, bbox_inches='tight', facecolor=C_BG) print("Saved OK") EOF

screening flowchart
Image · PNG
30 sec chair stand test
30 second chair stand test procedure scoring normative values physiotherapy
https://med-fom-clone-pt.sites.olt.ubc.ca/files/2024/01/30-s…
| Feature | Detail |
|---|---|
| Also called | 30-Second Sit-to-Stand Test (30s STS) |
| Purpose | Measure lower extremity muscle strength, endurance, and functional performance |
| ICF Domain | Activity limitation |
| Time to administer | ~2 minutes |
| Setting | Clinical, community, home-based, can be administered virtually |
| Developed to overcome | Floor effect of the 5-rep and 10-rep sit-to-stand tests in older adults |
| Age Group | Men (avg stands) | Women (avg stands) | Below Average |
|---|---|---|---|
| 60-64 | 14-19 | 12-17 | <14 (M) / <12 (F) |
| 65-69 | 12-18 | 11-16 | <12 (M) / <11 (F) |
| 70-74 | 12-17 | 10-15 | <12 (M) / <10 (F) |
| 75-79 | 11-17 | 10-15 | <11 (M) / <10 (F) |
| 80-84 | 10-15 | 9-14 | <10 (M) / <9 (F) |
| 85-89 | 8-14 | 8-13 | <8 (M) / <8 (F) |
| 90-94 | 7-12 | 4-11 | <7 (M) / <4 (F) |
A value of less than 9 is below average for an 80-year-old female - indicates fall risk (Rockwood & Green's Fractures in Adults, 10th ed.)
| Score | Interpretation |
|---|---|
| Above average for age/sex | Good lower limb strength; low fall risk |
| Average for age/sex | Adequate functional strength |
| Below average for age/sex | Reduced lower limb strength; INCREASED fall risk → refer for full assessment |
| Property | Value |
|---|---|
| Test-retest reliability (ICC) | Knee OA: ICC = 0.92-0.94; Hip/Knee OA: ICC = 0.95 - excellent |
| Inter-rater reliability (ICC) | THA/TKA awaiting: ICC = 0.93-0.98; Hip OA: ICC = 0.81 |
| SEM | ~0.7-1.3 reps (advanced OA populations) |
| MDC (Minimal Detectable Change) | Knee OA: 2.27 reps (baseline); TKA/THA: 1.64 reps |
| MCID (Minimal Clinically Important Diff.) | Hip OA: 2.0-2.6 reps = major improvement |
| Validity | Moderately high correlation with fast-paced walk (r = -0.64), WOMAC function (r = -0.62) |
| Convergent validity | Strong correlation with gait speed (r=0.52), endurance (r=0.56), dynamic balance (r=-0.50) |
| Condition / Setting | Role of 30sCST |
|---|---|
| Elderly / Community | Fall risk screening, frailty assessment |
| Hip/Knee OA | Baseline function, treatment response monitoring |
| Pre/Post TKA or THA | Pre-operative functional status, post-operative recovery |
| Stroke rehabilitation | Lower limb strength recovery |
| Cardiac/pulmonary rehab | Functional endurance proxy |
| Sports/young adults | Pre-season LE strength screen, return-to-sport |
| Parkinson's disease | Functional mobility and balance monitoring |
Ages and stages questionneri
Ages and Stages Questionnaire ASQ developmental screening tool domains scoring interpretation
https://agesandstages.com/about-asq
| Feature | Detail |
|---|---|
| Full name | Ages and Stages Questionnaires® |
| Developed by | Diane Bricker & Jane Squires (1999); University of Oregon |
| Publisher | Paul H. Brookes Publishing Co. |
| Current edition | ASQ-3 (3rd edition) + ASQ:SE-2 (Social-Emotional) |
| Type | Parent-completed developmental screening tool |
| Age range | Birth (1 month) to 66 months (5.5 years) |
| Time to complete | ~10-15 minutes (parent); ~2-3 min to score |
| Setting | Paediatric clinics, community health, early childhood education, home visits |
| Version | Full Name | What It Screens | Age Range |
|---|---|---|---|
| ASQ-3 | Ages & Stages Questionnaire, 3rd Edition | Overall developmental milestones (5 domains) | 1-66 months |
| ASQ:SE-2 | Ages & Stages Questionnaire: Social-Emotional, 2nd Edition | Social-emotional and behavioural development | 1-72 months |
| Domain | What It Assesses | Example Items |
|---|---|---|
| 1. Communication | Language, speech, listening, understanding | Does baby turn to voice? Use 2-word phrases? Follow simple directions? |
| 2. Gross Motor | Large muscle movement, balance, coordination | Sit independently? Walk? Jump? Climb stairs? |
| 3. Fine Motor | Small muscle control, hand-eye coordination | Reach and grasp? Stack blocks? Draw a circle? |
| 4. Problem Solving | Learning, reasoning, hand-eye coordination with objects | Uncover hidden object? Match shapes? Simple puzzles? |
| 5. Personal-Social | Self-help, interaction with others, independence | Feed self? Play with others? Dress self? |
| Zone | Meaning | Action |
|---|---|---|
| Above cutoff (green zone) | Development on track | Continue routine monitoring; provide age-appropriate activities |
| Monitoring zone (yellow zone) | Score close to cutoff; mild concern | Provide learning activities; re-screen in 2-3 months |
| Below cutoff (red zone) | Significant developmental concern | Refer for full developmental evaluation |
Cutoff scores are set at -2 standard deviations (SD) below the mean for each age group and domain.
| Age Interval | Questionnaire Used |
|---|---|
| 1-2 months | 2-month questionnaire |
| 4 months | 4-month questionnaire |
| 6 months | 6-month questionnaire |
| 8, 10, 12, 14, 16, 18, 20, 22, 24 months | Monthly intervals |
| 27, 30, 33, 36 months | 3-monthly intervals |
| 42, 48, 54, 60 months | 6-monthly intervals |
The correct questionnaire is selected based on the child's adjusted age (for premature infants, subtract weeks of prematurity from chronological age)
| Property | Value |
|---|---|
| Sensitivity | 70-90% (varies by domain and age) |
| Specificity | ~80-86% |
| Test-retest reliability | High (r = 0.75-0.94) |
| Inter-rater reliability | Good (ICC > 0.70) |
| Validity | Validated against Bayley Scales of Infant Development |
| Tool | Age Range | Completed by | Focus | Time |
|---|---|---|---|---|
| ASQ-3 | 1-66 months | Parent | 5 developmental domains | ~10-15 min |
| Denver II (DDST-II) | 0-6 years | Clinician | Motor, language, social, adaptive | 20-30 min |
| PEDS | 0-8 years | Parent | Developmental & behavioural concerns | ~5 min |
| M-CHAT-R/F | 16-30 months | Parent | Autism spectrum disorder | ~5 min |
| Capute Scales | 3-36 months | Clinician | Language and problem-solving (DQ) | 15-20 min |
Fms
Functional Movement Screen FMS 7 tests scoring interpretation injury risk physiotherapy
https://www.bodyspec.com/blog/post/functional_movement_scree…
| Feature | Detail |
|---|---|
| Developed by | Gray Cook & Lee Burton (1995, refined 1997) |
| Type | Standardised movement screening tool |
| Purpose | Identify movement limitations, asymmetries, and compensation patterns before they cause injury |
| Population | Active individuals, athletes, military, occupational workers, general community |
| Number of tests | 7 movement patterns + 3 clearing tests |
| Scoring range | 0-21 (3 points per test × 7 tests) |
| Time | 10-15 minutes |
| Equipment | FMS kit: dowel rod, measuring board, hurdle, resistance band |
The FMS is a screen, not a diagnosis. It identifies movement quality deficits - not the cause. Individuals with active pain should be assessed with the SFMA (Selective Functional Movement Assessment) instead.
| Score | Meaning |
|---|---|
| 3 | Performs the movement correctly with no compensations; full pattern achieved |
| 2 | Completes the movement but with compensation or altered mechanics |
| 1 | Cannot perform the movement even with compensations |
| 0 | Pain during any part of the movement (automatically = 0 regardless of completion) |
| Total Score | Interpretation |
|---|---|
| 17-21, no pain, no asymmetry | Broadly competent movement patterns; low injury risk |
| 15-16 | Minor deficiencies; targeted corrective exercise recommended |
| ≤14 | Higher injury risk - associated with 1.86× increased odds of injury (BMJ Open Sport & Exercise Med, 2019) |
| Any 0 | Pain present - immediate clinical assessment required; do not begin training |
| Asymmetry (L ≠ R) | Even with good total score, asymmetry independently predicts injury risk |
The ≤14 cutoff is the most cited threshold but evidence is mixed across populations - collegiate dancers, for example, show no predictive value at this cutoff. Lowest-scoring patterns and asymmetries are often more clinically useful than the composite score alone.
| Clearing Test | Associated With | Positive = |
|---|---|---|
| Spinal extension press-up | Trunk Stability Push-Up | Score = 0 |
| Posterior rocking (quadruped) | Rotary Stability | Score = 0 |
| Yocum test | Shoulder Mobility | Score = 0 |
| Setting | Use of FMS |
|---|---|
| Sports physiotherapy | Pre-season injury risk screening; return-to-sport clearance |
| Community physiotherapy | Movement baseline assessment; corrective exercise planning |
| Occupational health | Pre-employment movement screening for physical jobs |
| Military | Combat readiness and injury prevention screening |
| Rehabilitation | Establishing movement quality baseline before and after treatment |
| Personal training / S&C | Guiding exercise prescription and identifying "weak links" |
| Property | Evidence |
|---|---|
| Inter-rater reliability | ICC = 0.74-0.98 (good to excellent when trained raters used) |
| Intra-rater reliability | ICC = 0.81-0.99 |
| Injury prediction | Pooled OR ≈ 1.86 for score ≤14 (meta-analysis, BMJ Open SJSEM 2019) |
| Validity | Moderate; correlates with dynamic balance and movement quality measures |
| Feature | FMS | SFMA |
|---|---|---|
| Used when | No current pain; healthy/active individuals | Patient has pain/injury |
| Goal | Identify movement risk before injury | Break down dysfunctional movement patterns in injured patients |
| Administered by | Physio, S&C coach, athletic trainer | Clinician (physiotherapist, sports physician) |
| Outcome | Movement quality score + corrective exercise | Movement diagnosis + treatment direction |