QuickDASH
Status:
stableCategory:functionAdded:2026-04-20Last reviewed:2026-04-21
Summary
QuickDASH is Trinity's upper-extremity function instrument —
an 11-item short form of the DASH (Disabilities of the Arm, Shoulder,
and Hand). Each item scores 1–5, and the score is converted to a
0–100 disability measure. Higher score means more disability.
⚠ Scoring-formula note
QuickDASH uses a mean-and-offset scaling so the response scale maps
to 0–100:
score = (mean_of_responded_items + offset) × multiplier
= (mean - 1) × 25
with multiplier = 25 and offset = -1. Responses live on the
clinical 1–5 scale; the -1 offset shifts the mean to a 0–4
range before the ×25 multiplier maps to 0–100.
A caller who thinks of QuickDASH as mean × 25 (without the
offset) produces scores 25 points too high. A caller who uses
sum × 25 / 11 without the offset sees the same error. Trinity
does the offset for you; do not apply it client-side.
Resource identity
| Field | Value |
|---|---|
| Category | function |
| Resource | quick_dash |
| Instrument ID | quick_dash |
| Rubric version | 1.0.0 |
| Path prefix | /api/function/quick_dash |
Operations
| Operation | Method | Path | Contract |
|---|---|---|---|
| Questions | GET | /api/function/quick_dash/questions | patterns-questions.md |
| Score | POST | /api/function/quick_dash/score | patterns-score.md |
Items
Eleven items, each on a 1–5 scale.
| ID | Prompt (paraphrased) |
|---|---|
item_1 | Open a tight or new jar. |
item_2 | Do heavy household chores. |
item_3 | Carry a shopping bag or briefcase. |
item_4 | Wash your back. |
item_5 | Use a knife to cut food. |
item_6 | Recreational activities requiring force. |
item_7 | Interference with social activities. |
item_8 | Limitation in work or other regular activities. |
item_9 | Arm, shoulder or hand pain. |
item_10 | Tingling in the arm, shoulder, or hand. |
item_11 | Difficulty sleeping because of arm / shoulder / hand pain. |
Answer choices per item:
| Value | Label |
|---|---|
1 | No difficulty |
2 | Mild difficulty |
3 | Moderate difficulty |
4 | Severe difficulty |
5 | Unable |
Scoring
| Field | Value |
|---|---|
| Method | response_mean_scaled with multiplier = 25, offset = -1. Formula: (mean - 1) × 25. |
| Score range | 0 – 100. |
Bands
| Band | Range (inclusive) | Clinical meaning |
|---|---|---|
minimal | 0 – 25 | Minimal disability. |
mild | 26 – 50 | Mild disability. |
moderate | 51 – 75 | Moderate disability. |
severe | 76 – 100 | Severe disability. |
Required items
All eleven items are required today. (The published QuickDASH
permits computing a score with ≥ 10 of 11 items answered; the
Trinity's current strict posture does not implement that relaxation.
Callers needing partial-input scoring should use
/cdri/compute, which tolerates
missing instruments.)
Worked example
Every item answered with 3. See quickstart.md for
per-language scaffolding and patterns-score.md
for the shared /score contract.
Send:
POST /api/function/quick_dash/score HTTP/1.1
Host: engine.tripod-health.com
apikey: $ENGINE_API_KEY
Content-Type: application/json
X-Request-ID: docs-quick_dash-score-basic
{
"responses": {
"item_1": 3, "item_2": 3, "item_3": 3, "item_4": 3, "item_5": 3,
"item_6": 3, "item_7": 3, "item_8": 3, "item_9": 3, "item_10": 3,
"item_11": 3
}
}
Receive (200 OK):
{
"instrument": "quick_dash",
"category": "function",
"finding": {
"algorithm_id": "quick_dash",
"algorithm_version": "1.0.0",
"score": 50,
"band": "mild",
"raw": {
"rubric_version": "1.0.0",
"responded_items": 11
},
"context": null,
"imputed": false,
"sd": null,
"prior_source": null
},
"confidence": {
"overall": 1,
"tier": "high",
"breakdown": {
"input_completeness": 1,
"imputation_variance": null,
"model_certainty": null
}
},
"recommendations": null,
"depth": "basic",
"catalog_version": "0.13.0",
"request_id": "docs-quick_dash-score-basic",
"timestamp": "2026-04-21T23:14:55.079524+00:00"
}
Computation: mean of responses = 3.0, then (3.0 - 1) × 25 = 50.0 —
upper edge of the mild band (26–50). Every item at 1 yields
0.0 (minimal); every item at 5 yields 100.0 (severe).
Calling in your language
curl
curl -sS -X POST "https://engine.tripod-health.com/api/function/quick_dash/score" \
-H "apikey: $ENGINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"responses":{"item_1":3,"item_2":3,"item_3":3,"item_4":3,"item_5":3,"item_6":3,"item_7":3,"item_8":3,"item_9":3,"item_10":3,"item_11":3}}'
Python (requests)
# Uses the call() helper from quickstart.md.
responses = {f"item_{i}": 3 for i in range(1, 12)}
result = call("POST", "/api/function/quick_dash/score", {"responses": responses})
print(result["finding"]["score"], result["finding"]["band"])
Node.js (native fetch)
// Uses the call() helper from quickstart.md.
const responses = Object.fromEntries(
Array.from({ length: 11 }, (_, i) => [`item_${i + 1}`, 3]),
);
const result = await call("POST", "/api/function/quick_dash/score", { responses });
console.log(result.finding.score, result.finding.band);
TypeScript
// Uses the typed call<T>() helper from quickstart.md.
const responses = Object.fromEntries(
Array.from({ length: 11 }, (_, i) => [`item_${i + 1}`, 3]),
);
const result = await call<ScoreResponse>(
"POST",
"/api/function/quick_dash/score",
{ responses },
);
Go
// Uses the call() helper from quickstart.md.
responses := make(map[string]int, 11)
for i := 1; i <= 11; i++ {
responses[fmt.Sprintf("item_%d", i)] = 3
}
result, err := call("POST", "/api/function/quick_dash/score",
map[string]any{"responses": responses}, 3)
if err != nil {
panic(err)
}
finding := result["finding"].(map[string]any)
fmt.Printf("quick_dash: %v (%v)\n", finding["score"], finding["band"])
Java
// Uses the call() helper from quickstart.md.
StringBuilder body = new StringBuilder("{\"responses\":{");
for (int i = 1; i <= 11; i++) {
if (i > 1) body.append(",");
body.append("\"item_").append(i).append("\":3");
}
body.append("}}");
String result = call("POST", "/api/function/quick_dash/score", body.toString(), 3);
System.out.println(result);
C# (.NET HttpClient)
// Uses the Call() helper from quickstart.md.
var responses = Enumerable.Range(1, 11)
.ToDictionary(i => $"item_{i}", _ => 3);
var result = await Call(HttpMethod.Post, "/api/function/quick_dash/score",
new { responses });
var finding = result.GetProperty("finding");
Console.WriteLine($"quick_dash: {finding.GetProperty("score").GetDouble()} ({finding.GetProperty("band").GetString()})");
PowerShell
# Uses the Invoke-Engine helper from quickstart.md.
$responses = @{}
1..11 | ForEach-Object { $responses["item_$_"] = 3 }
$result = Invoke-Engine -Method Post -Path "/api/function/quick_dash/score" -Body @{ responses = $responses }
"quick_dash: $($result.finding.score) ($($result.finding.band))"
Clinical interpretation
- What it measures. Symptom-related functional limitation of the arm, shoulder, and hand.
- Higher is worse. Disability increases with score.
- Short form of DASH. The full 30-item DASH is not exposed as a separate Trinity instrument today; QuickDASH is used throughout.
Intended use
- Upper-extremity outcome tracking for shoulder, elbow, wrist, or hand conditions.
- Baseline vs. follow-up after an intervention targeting the upper limb.
- Feeding the CDRI composite as the upper-extremity function signal.
Mistaken use
- Do not use for low-back or neck disability. Use
oswestryorneck_disability. - Do not apply the
-1offset client-side. Trinity applies it. Double-offset halves (approximately) the effective score. - Do not conflate QuickDASH with DASH. Scores are not interchangeable across the two instruments.
Debugging
- Capture
request_id. Present in every response body. - Every score is
25higher than expected. Likely a client-side offset being applied on top of Trinity's. Send raw1–5values, not pre-shifted0–4values. 400 ValidationErrorwithmissing_items. Send all eleven items. If your UI allows skipping item 10 or 11 (tingling, sleep), collect them explicitly before submitting.- Score falls exactly on a band boundary (e.g.
50,75). Band ranges are inclusive on both ends;50ismild,51ismoderate.
Related
- patterns-questions.md, patterns-score.md — shared contracts.
- instruments-oswestry.md — lumbar.
- instruments-neck_disability.md — cervical.
- instruments-lower_extremity_function.md — LEFS; lower-extremity function.
- composite-cdri-compute.md — composite.
Change history
| Date | Change |
|---|---|
| 2026-04-20 | Initial publication. |