MAGENT

Respiratory · LIVE

RADS radiologist's score (Oh)

RADS

Sum four caller-assigned Oh 2012 radiologist's-score quadrant findings on one 1-cm axial CT slice (normal 0, interstitial 1, ground_glass 2, consolidation 3; range 0-12) and return high when the score is greater than 8.

LIVE $0.005 USDC GET /api/calc/rads

Markdown: /docs/rads.md · Canonical: https://magentlab.com/docs/rads

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

What it computes

Sum four caller-assigned Oh 2012 radiologist's-score quadrant findings on one 1-cm axial CT slice (normal 0, interstitial 1, ground_glass 2, consolidation 3; range 0-12) and return high when the score is greater than 8.

When to use

When an agent already has caller-assigned worst findings for four CT quadrants on one 1-cm axial slice and needs the published Oh 2012 RADS total and the score > 8 high flag. magent does not interpret CT, perform bronchoscopy, or assign AIS inhalation grade.

When not to use

  • Not a medical device.
  • Not a diagnosis of inhalation injury.
  • Not a bronchoscopy substitute. magent does not take fiberoptic bronchoscopy grade.
  • The caller assigns each quadrant finding. magent does not interpret CT or read images.
  • Four quadrants on one 1-cm axial slice (Oh 2012 as reprinted in Dries/Walker 2015 Table 2). Not an eight-quadrant form.
  • Not Endorf AIS inhalation grade. Not Yamamura bronchial wall thickness.
  • Oh 2012 associated high RADS plus +FOB with a 12.7-fold composite pneumonia/ALI-ARDS/death outcome. This tool only sums the four CT findings; it does not take FOB or report that odds ratio.

Formula

RADS = q1 + q2 + q3 + q4; each quadrant worst finding on one 1-cm axial CT slice (Oh 2012 radiologist's score as reprinted in Dries/Walker 2015 Table 2): normal 0, interstitial (increased interstitial markings) 1, ground_glass 2, consolidation 3; four quadrants (not eight); range 0-12; high iff score > 8 per slice

Citation

Title
Admission Chest CT Complements Fiberoptic Bronchoscopy in Prediction of Adverse Outcomes in Thermally Injured Patients
Authors
Oh JS, Chung KK, Allen A, Batchinsky AI, Huzar T, King BT, et al.
Source
J Burn Care Res. 2012;33(4):532-538
DOI
10.1097/BCR.0b013e318237455f

Worked example

All four quadrants normal

Given: q1=normalq2=normalq3=normalq4=normal

  1. q1, q2, q3, and q4 are normal (0 each)
  2. score = 0 (max 12); high is false

Four ground-glass quadrants (score 8)

Given: q1=ground_glassq2=ground_glassq3=ground_glassq4=ground_glass

  1. each quadrant is ground_glass (2)
  2. score = 8; high is false (high iff score > 8)

Three consolidation and one ground-glass (score 11)

Given: q1=consolidationq2=consolidationq3=consolidationq4=ground_glass

  1. three quadrants consolidation (3) plus one ground_glass (2)
  2. score = 11; high is true

Also searched as

  • RADS
  • radiologist's score
  • Oh 2012 RADS
  • admission chest CT RADS
  • thermal injury CT score
  • smoke inhalation CT score
  • Oh radiologist score
  • four quadrant CT RADS

Try

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

/api/calc/rads?q1=normal&q2=normal&q3=normal&q4=normal

Full URL: https://api.magentlab.com/api/calc/rads?q1=normal&q2=normal&q3=normal&q4=normal

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/rads?q1=normal&q2=normal&q3=normal&q4=normal"

Parameters

Name Type Required Description
q1 string required · normal, interstitial, ground_glass, consolidation Caller-assigned worst finding in that quadrant on one 1-cm axial chest CT slice (Oh 2012 radiologist's score; four quadrants, not eight): normal (0), interstitial / increased interstitial markings (1), ground_glass (2), or consolidation (3). magent does not interpret CT.
q2 string required · normal, interstitial, ground_glass, consolidation Caller-assigned worst finding in that quadrant on one 1-cm axial chest CT slice (Oh 2012 radiologist's score; four quadrants, not eight): normal (0), interstitial / increased interstitial markings (1), ground_glass (2), or consolidation (3). magent does not interpret CT.
q3 string required · normal, interstitial, ground_glass, consolidation Caller-assigned worst finding in that quadrant on one 1-cm axial chest CT slice (Oh 2012 radiologist's score; four quadrants, not eight): normal (0), interstitial / increased interstitial markings (1), ground_glass (2), or consolidation (3). magent does not interpret CT.
q4 string required · normal, interstitial, ground_glass, consolidation Caller-assigned worst finding in that quadrant on one 1-cm axial chest CT slice (Oh 2012 radiologist's score; four quadrants, not eight): normal (0), interstitial / increased interstitial markings (1), ground_glass (2), or consolidation (3). magent does not interpret CT.

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/rads 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": [
    {
      "q1": "normal",
      "q2": "normal",
      "q3": "normal",
      "q4": "normal"
    },
    {
      "q1": "normal",
      "q2": "normal",
      "q3": "normal",
      "q4": "normal"
    }
  ]
}

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/rads",
  "items": [
    {
      "high": false,
      "components": [
        {
          "value": "normal",
          "factor": "q1",
          "points": 0,
          "present": false
        },
        {
          "value": "normal",
          "factor": "q2",
          "points": 0,
          "present": false
        },
        {
          "value": "normal",
          "factor": "q3",
          "points": 0,
          "present": false
        },
        {
          "value": "normal",
          "factor": "q4",
          "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": "Oh JS, Chung KK, Allen A, Batchinsky AI, Huzar T, King BT, et al.",
        "doi": "10.1097/BCR.0b013e318237455f",
        "id": "oh-2012",
        "pmid": "22210063",
        "source": "J Burn Care Res. 2012;33(4):532-538",
        "title": "Admission Chest CT Complements Fiberoptic Bronchoscopy in Prediction of Adverse Outcomes in Thermally Injured Patients"
      },
      "formula": "rads",
      "formula_expression": "RADS = q1 + q2 + q3 + q4; each quadrant worst finding on one 1-cm axial CT slice (Oh 2012 radiologist's score as reprinted in Dries/Walker 2015 Table 2): normal 0, interstitial (increased interstitial markings) 1, ground_glass 2, consolidation 3; four quadrants (not eight); range 0-12; high iff score > 8 per slice",
      "max_score": 12,
      "score": 0,
      "q1": "normal",
      "q2": "normal",
      "q3": "normal",
      "q4": "normal"
    },
    {
      "high": false,
      "components": [
        {
          "value": "normal",
          "factor": "q1",
          "points": 0,
          "present": false
        },
        {
          "value": "normal",
          "factor": "q2",
          "points": 0,
          "present": false
        },
        {
          "value": "normal",
          "factor": "q3",
          "points": 0,
          "present": false
        },
        {
          "value": "normal",
          "factor": "q4",
          "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": "Oh JS, Chung KK, Allen A, Batchinsky AI, Huzar T, King BT, et al.",
        "doi": "10.1097/BCR.0b013e318237455f",
        "id": "oh-2012",
        "pmid": "22210063",
        "source": "J Burn Care Res. 2012;33(4):532-538",
        "title": "Admission Chest CT Complements Fiberoptic Bronchoscopy in Prediction of Adverse Outcomes in Thermally Injured Patients"
      },
      "formula": "rads",
      "formula_expression": "RADS = q1 + q2 + q3 + q4; each quadrant worst finding on one 1-cm axial CT slice (Oh 2012 radiologist's score as reprinted in Dries/Walker 2015 Table 2): normal 0, interstitial (increased interstitial markings) 1, ground_glass 2, consolidation 3; four quadrants (not eight); range 0-12; high iff score > 8 per slice",
      "max_score": 12,
      "score": 0,
      "q1": "normal",
      "q2": "normal",
      "q3": "normal",
      "q4": "normal"
    }
  ]
}

Response

Field Type Description
formula string rads
formula_expression string Exact expression used
score integer RADS points 0-12 (sum of four quadrants)
max_score integer 12
high boolean true iff score > 8 per 1-cm axial slice (Oh 2012: high RADS plus +FOB associated with 12.7-fold composite pneumonia/ALI-ARDS/death). Score 8 is not high.
q1 string Echo of the caller-assigned q1 finding
q2 string Echo of the caller-assigned q2 finding
q3 string Echo of the caller-assigned q3 finding
q4 string Echo of the caller-assigned q4 finding
components array Per-quadrant points and finding
citation object Oh et al. J Burn Care Res 2012 citation
disclaimer string Not-a-device notice

Example JSON

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

{
  "high": false,
  "components": [
    {
      "value": "normal",
      "factor": "q1",
      "points": 0,
      "present": false
    },
    {
      "value": "normal",
      "factor": "q2",
      "points": 0,
      "present": false
    },
    {
      "value": "normal",
      "factor": "q3",
      "points": 0,
      "present": false
    },
    {
      "value": "normal",
      "factor": "q4",
      "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": "Oh JS, Chung KK, Allen A, Batchinsky AI, Huzar T, King BT, et al.",
    "doi": "10.1097/BCR.0b013e318237455f",
    "id": "oh-2012",
    "pmid": "22210063",
    "source": "J Burn Care Res. 2012;33(4):532-538",
    "title": "Admission Chest CT Complements Fiberoptic Bronchoscopy in Prediction of Adverse Outcomes in Thermally Injured Patients"
  },
  "formula": "rads",
  "formula_expression": "RADS = q1 + q2 + q3 + q4; each quadrant worst finding on one 1-cm axial CT slice (Oh 2012 radiologist's score as reprinted in Dries/Walker 2015 Table 2): normal 0, interstitial (increased interstitial markings) 1, ground_glass 2, consolidation 3; four quadrants (not eight); range 0-12; high iff score > 8 per slice",
  "max_score": 12,
  "score": 0,
  "q1": "normal",
  "q2": "normal",
  "q3": "normal",
  "q4": "normal"
}

Client errors (HTTP 400)

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

HTTP Code When
400 invalid_rads_finding each quadrant finding must be normal, interstitial, ground_glass, or consolidation (Oh 2012 RADS). 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

  • AIS inhalation — Echo the caller-assigned Endorf 2007 bronchoscopic AIS inhalation grade (0-4) with the published description and high_grade (true when grade is 2-4). magent does not perform bronchoscopy. Not ISS body-region AIS. Not RADS CT smoke score.
  • LIPS — Sum Gajic 2011 Table 3 lung injury prediction score items from caller-assigned flags and return the published ROC cutoff band (low <4, high ≥4).

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.