MAGENT

Neurology · LIVE

CTS-6 (Graham 2006)

CTS-6

Sum the six Graham 2006 CTS-6 caller-assigned flags at their published discrete weights and return the total, the >5 and >12 cutoffs, and the matching band.

LIVE $0.005 USDC GET /api/calc/cts_6

Markdown: /docs/cts-6.md · Canonical: https://magentlab.com/docs/cts-6

Not a medical device. Not a diagnosis, dose, or listing recommendation.

What it computes

Sum the six Graham 2006 CTS-6 caller-assigned flags at their published discrete weights and return the total, the >5 and >12 cutoffs, and the matching band.

When to use

When an agent already has the six Graham 2006 CTS-6 flags assigned and needs the published weighted total, not a carpal-tunnel diagnosis, EMG order, or Boston questionnaire.

When not to use

  • Not a medical device and not a CTS diagnosis or EMG order.
  • magent does not examine the patient.
  • Each flag is caller-assigned. magent does not infer median-territory numbness, nocturnal symptoms, thenar atrophy, Phalen, two-point discrimination, or Tinel from text or images.
  • This is Graham 2006 CTS-6 only (discrete weights; max 26). It is not a Boston questionnaire.
  • Published probability cutoffs are score >5 ≈25% and score >12 ≈80%. Score 5 is not above the 25% cutoff. Score 12 is not above the 80% cutoff. magent does not invent other percent values.

Formula

CTS-6 = 3.5*median_numbness + 4*nocturnal_numbness + 5*thenar_atrophy_or_weakness + 5*phalen_positive + 4.5*two_point_discrimination_loss + 4*tinel_positive; max 26; score > 5 associated with ≈25% probability of CTS; score > 12 associated with ≈80% (Graham 2006)

Citation

Title
Development and validation of diagnostic criteria for carpal tunnel syndrome
Authors
Graham B, Regehr G, Naglie G, Wright JG
Source
J Hand Surg Am. 2006;31(6):919-924
DOI
10.1016/j.jhsa.2006.04.007

Worked example

All six flags false

Given: median_numbness=falsenocturnal_numbness=falsephalen_positive=falsethenar_atrophy_or_weakness=falsetinel_positive=falsetwo_point_discrimination_loss=false

  1. No Graham 2006 items present
  2. Score = 0.0 (max 26); cts6_band le_5; above_25pct_cutoff false; above_80pct_cutoff false

Thenar atrophy or weakness only

Given: median_numbness=falsenocturnal_numbness=falsephalen_positive=falsethenar_atrophy_or_weakness=truetinel_positive=falsetwo_point_discrimination_loss=false

  1. thenar_atrophy_or_weakness 5
  2. Score = 5.0; cts6_band le_5 (score 5 is not above the 25% cutoff)

Nocturnal numbness and median-territory numbness

Given: median_numbness=truenocturnal_numbness=truephalen_positive=falsethenar_atrophy_or_weakness=falsetinel_positive=falsetwo_point_discrimination_loss=false

  1. median_numbness 3.5 + nocturnal_numbness 4
  2. Score = 7.5; cts6_band gt_5_le_12; above_25pct_cutoff true; above_80pct_cutoff false

All six flags true

Given: median_numbness=truenocturnal_numbness=truephalen_positive=truethenar_atrophy_or_weakness=truetinel_positive=truetwo_point_discrimination_loss=true

  1. 3.5 + 4 + 5 + 5 + 4.5 + 4
  2. Score = 26.0 (max 26); cts6_band gt_12

Also searched as

  • CTS-6
  • CTS6
  • carpal tunnel syndrome 6
  • Graham CTS-6
  • Graham 2006 CTS
  • carpal tunnel diagnostic criteria
  • Phalen Tinel CTS-6
  • median neuropathy score
  • CTS six item
  • thenar atrophy CTS

Try

Opens the live endpoint. Unpaid browser requests show the paywall; agents should send Accept: application/json.

/api/calc/cts_6?median_numbness=false&nocturnal_numbness=false&thenar_atrophy_or_weakness=false&phalen_positive=false&two_point_discrimination_loss=false&tinel_positive=false

Full URL: https://api.magentlab.com/api/calc/cts_6?median_numbness=false&nocturnal_numbness=false&thenar_atrophy_or_weakness=false&phalen_positive=false&two_point_discrimination_loss=false&tinel_positive=false

Call

Expect HTTP 402 until you retry with PAYMENT-SIGNATURE. Incomplete query params return HTTP 400 before any quote or charge.

curl -i -H "Accept: application/json" "https://api.magentlab.com/api/calc/cts_6?median_numbness=false&nocturnal_numbness=false&thenar_atrophy_or_weakness=false&phalen_positive=false&two_point_discrimination_loss=false&tinel_positive=false"

Parameters

Name Type Required Description
median_numbness boolean required Numbness predominantly or exclusively in the median nerve territory (Graham 2006, 3.5 if true). true or false as assigned by the caller. magent does not examine the patient.
nocturnal_numbness boolean required Nocturnal numbness (Graham 2006, 4 if true). true or false as assigned by the caller. magent does not examine the patient.
thenar_atrophy_or_weakness boolean required Thenar atrophy or weakness (Graham 2006, 5 if true). true or false as assigned by the caller. magent does not examine the patient.
phalen_positive boolean required Positive Phalen test (Graham 2006, 5 if true). true or false as assigned by the caller. magent does not examine the patient.
two_point_discrimination_loss boolean required Loss of two-point discrimination (Graham 2006, 4.5 if true). true or false as assigned by the caller. magent does not examine the patient.
tinel_positive boolean required Positive Tinel sign (Graham 2006, 4 if true). true or false as assigned by the caller. magent does not examine the patient.

Bulk (POST)

POST the same path with a JSON items array. The first item is the GET unit; each additional item is $0.002. Invalid items return HTTP 400 before settlement.

POST /api/calc/cts_6 Max 25 unit_amount + extra_item_amount * (n - 1) extra $0.002 PREVIEW

  • 1 to 25 items. Each item uses the same keys as the GET query parameters.
  • POST of 1 item costs the same as GET. Lists longer than 25: chunk into multiple POSTs. Extra items still execute; do not pad dummy rows.
  • The first invalid item fails the whole request (index in the 400 JSON). You are not charged.
  • HTTP 200 is {count, path, items}. Each items[i] is the GET 200 body for that row.
  • Catalog misses (empty matches, found=false) stay paid 200s inside that slot.
  • x402 resource URL is this path plus n and body_sha256. Browsers that prefer text/html get the same paywall as GET; Pay retries POST with the same items.

Example request (fixture)

{
  "items": [
    {
      "median_numbness": "false",
      "nocturnal_numbness": "false",
      "phalen_positive": "false",
      "thenar_atrophy_or_weakness": "false",
      "tinel_positive": "false",
      "two_point_discrimination_loss": "false"
    },
    {
      "median_numbness": "false",
      "nocturnal_numbness": "false",
      "phalen_positive": "false",
      "thenar_atrophy_or_weakness": "false",
      "tinel_positive": "false",
      "two_point_discrimination_loss": "false"
    }
  ]
}

Open bulk paywall →

Opens a two-item fixture on the API host. Unpaid browsers get the same MetaMask paywall as GET; Pay retries POST with those items.

Example 200 (fixture)

{
  "count": 2,
  "path": "/api/calc/cts_6",
  "items": [
    {
      "components": [
        {
          "factor": "median_numbness",
          "points": 0.0,
          "present": false
        },
        {
          "factor": "nocturnal_numbness",
          "points": 0,
          "present": false
        },
        {
          "factor": "thenar_atrophy_or_weakness",
          "points": 0,
          "present": false
        },
        {
          "factor": "phalen_positive",
          "points": 0,
          "present": false
        },
        {
          "factor": "two_point_discrimination_loss",
          "points": 0.0,
          "present": false
        },
        {
          "factor": "tinel_positive",
          "points": 0,
          "present": false
        }
      ],
      "disclaimer": "Not a medical device. Deterministic published-formula or published-code output for autonomous agents. A licensed clinician remains responsible for patient care and billing submissions.",
      "citation": {
        "authors": "Graham B, Regehr G, Naglie G, Wright JG",
        "doi": "10.1016/j.jhsa.2006.04.007",
        "id": "graham-2006",
        "pmid": "16886290",
        "source": "J Hand Surg Am. 2006;31(6):919-924",
        "title": "Development and validation of diagnostic criteria for carpal tunnel syndrome"
      },
      "formula": "cts_6",
      "formula_expression": "CTS-6 = 3.5*median_numbness + 4*nocturnal_numbness + 5*thenar_atrophy_or_weakness + 5*phalen_positive + 4.5*two_point_discrimination_loss + 4*tinel_positive; max 26; score > 5 associated with ≈25% probability of CTS; score > 12 associated with ≈80% (Graham 2006)",
      "max_score": 26,
      "score": 0.0,
      "above_25pct_cutoff": false,
      "above_80pct_cutoff": false,
      "cts6_band": "le_5"
    },
    {
      "components": [
        {
          "factor": "median_numbness",
          "points": 0.0,
          "present": false
        },
        {
          "factor": "nocturnal_numbness",
          "points": 0,
          "present": false
        },
        {
          "factor": "thenar_atrophy_or_weakness",
          "points": 0,
          "present": false
        },
        {
          "factor": "phalen_positive",
          "points": 0,
          "present": false
        },
        {
          "factor": "two_point_discrimination_loss",
          "points": 0.0,
          "present": false
        },
        {
          "factor": "tinel_positive",
          "points": 0,
          "present": false
        }
      ],
      "disclaimer": "Not a medical device. Deterministic published-formula or published-code output for autonomous agents. A licensed clinician remains responsible for patient care and billing submissions.",
      "citation": {
        "authors": "Graham B, Regehr G, Naglie G, Wright JG",
        "doi": "10.1016/j.jhsa.2006.04.007",
        "id": "graham-2006",
        "pmid": "16886290",
        "source": "J Hand Surg Am. 2006;31(6):919-924",
        "title": "Development and validation of diagnostic criteria for carpal tunnel syndrome"
      },
      "formula": "cts_6",
      "formula_expression": "CTS-6 = 3.5*median_numbness + 4*nocturnal_numbness + 5*thenar_atrophy_or_weakness + 5*phalen_positive + 4.5*two_point_discrimination_loss + 4*tinel_positive; max 26; score > 5 associated with ≈25% probability of CTS; score > 12 associated with ≈80% (Graham 2006)",
      "max_score": 26,
      "score": 0.0,
      "above_25pct_cutoff": false,
      "above_80pct_cutoff": false,
      "cts6_band": "le_5"
    }
  ]
}

Response

Field Type Description
formula string cts_6
formula_expression string Exact expression used
score number CTS-6 points 0.0-26.0 (float; no rounding)
max_score integer 26
cts6_band string le_5 (score ≤5), gt_5_le_12 (5 < score ≤12), or gt_12 (score >12). Graham 2006 cutoffs.
above_25pct_cutoff boolean true iff score > 5 (Graham 2006 ≈25% probability of CTS). Score 5 is not above.
above_80pct_cutoff boolean true iff score > 12 (Graham 2006 ≈80% probability of CTS). Score 12 is not above.
components array Per-flag Graham 2006 weights
citation object Graham J Hand Surg Am 2006 citation
disclaimer string Not-a-device notice

Example JSON

Machine form of the same example. Frozen fixture. Not a live lookup.

{
  "components": [
    {
      "factor": "median_numbness",
      "points": 0.0,
      "present": false
    },
    {
      "factor": "nocturnal_numbness",
      "points": 0,
      "present": false
    },
    {
      "factor": "thenar_atrophy_or_weakness",
      "points": 0,
      "present": false
    },
    {
      "factor": "phalen_positive",
      "points": 0,
      "present": false
    },
    {
      "factor": "two_point_discrimination_loss",
      "points": 0.0,
      "present": false
    },
    {
      "factor": "tinel_positive",
      "points": 0,
      "present": false
    }
  ],
  "disclaimer": "Not a medical device. Deterministic published-formula or published-code output for autonomous agents. A licensed clinician remains responsible for patient care and billing submissions.",
  "citation": {
    "authors": "Graham B, Regehr G, Naglie G, Wright JG",
    "doi": "10.1016/j.jhsa.2006.04.007",
    "id": "graham-2006",
    "pmid": "16886290",
    "source": "J Hand Surg Am. 2006;31(6):919-924",
    "title": "Development and validation of diagnostic criteria for carpal tunnel syndrome"
  },
  "formula": "cts_6",
  "formula_expression": "CTS-6 = 3.5*median_numbness + 4*nocturnal_numbness + 5*thenar_atrophy_or_weakness + 5*phalen_positive + 4.5*two_point_discrimination_loss + 4*tinel_positive; max 26; score > 5 associated with ≈25% probability of CTS; score > 12 associated with ≈80% (Graham 2006)",
  "max_score": 26,
  "score": 0.0,
  "above_25pct_cutoff": false,
  "above_80pct_cutoff": false,
  "cts6_band": "le_5"
}

Client errors (HTTP 400)

Invalid params return 400 without charge. Shared HTTP 402 and 503 meanings: Payments.

HTTP Code When
400 invalid_flag boolean clinical flags must be true or false Returned before settlement; you are not charged.
400 invalid_items POST body must be a JSON object with only an items array Returned before settlement; you are not charged.
400 invalid_item_count items must be an array of 1 to 25 objects Returned before settlement; you are not charged.
400 invalid_item each items entry must be a JSON object Returned before settlement; you are not charged.

Related tools

None.

Payment

Unpaid requests return HTTP 402 even if query parameters or POST items are missing or invalid, so CDP and agents can index the path. After a PAYMENT-SIGNATURE, invalid params return HTTP 400 JSON before settlement. magent does not charge. Fix the params, then request a new 402 quote for that complete URL. Catalog misses (empty matches, found=false) are valid paid 200s. Unpaid valid requests return HTTP 402 with a base64 PAYMENT-REQUIRED header. HTTP 503 is not a new quote: retry the same PAYMENT-SIGNATURE. Full handshake and shared payment errors: Payments. Stdio MCP: /docs/mcp.

Guarantees

  • HTTP 402 is unpaid, including a missing query. After PAYMENT-SIGNATURE, invalid parameters return HTTP 400 before settlement. You are not charged. HTTP 402 never includes the tool JSON.
  • exact: settlement finishes before the tool (paymentFlow upfront). batch-settlement: verify/deposit before the tool; chargedCumulativeAmount commits after HTTP 2xx. Uncertain or failed settlement fails closed (HTTP 503). Retry the same PAYMENT-SIGNATURE.
  • HTTP 402 is unpaid only. Do not sign a second authorization because of a 503.
  • Execution is timeout-bounded and concurrency-capped.
  • Calculator inputs are stored encrypted for allowlisted operators (Magent Console). They are not in public logs, SSH lookups, catalog, or rollups. Request logs store path without query.