MAGENT

Emergency · LIVE

RHMP-30 (de Jong 2025)

RHMP-30

Compute the de Jong 2025 Rotterdam Hip Fracture Mortality Prediction-30 Days (RHMP-30) logistic 30-day mortality probability after hip fracture surgery from caller-assigned age, sex, albumin in g/L, dementia, Katz-ADL total, ASA 4, and nursing-home residence.

LIVE $0.005 USDC GET /api/calc/rhmp_30

Markdown: /docs/rhmp-30.md · Canonical: https://magentlab.com/docs/rhmp-30

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

What it computes

Compute the de Jong 2025 Rotterdam Hip Fracture Mortality Prediction-30 Days (RHMP-30) logistic 30-day mortality probability after hip fracture surgery from caller-assigned age, sex, albumin in g/L, dementia, Katz-ADL total, ASA 4, and nursing-home residence.

When to use

When an agent has de Jong 2025 RHMP-30 predictors and needs the published 30-day mortality probability from the unrounded logit, not an operative vs nonoperative order and not an unpublished website band.

When not to use

  • Not a medical device. Not a diagnosis. Not an operative vs nonoperative order. magent does not assign ASA class or Katz-ADL and does not examine the patient.
  • de Jong 2025 Figure 3 / Appendix 4 adaptive LASSO logit only. No published probability cutoff. magent does not invent low/moderate/high bands.
  • Sex is the published female coefficient (female = 1, male = 0), not race.
  • Albumin is g/L as in de Jong 2025 Table I (typical 30-45), not g/dL. Caller-supplied; magent does not assay albumin.
  • dementia, asa_4, nursing_home, and Katz-ADL total are caller-assigned. magent does not diagnose dementia or score Katz items.
  • estimated_mortality_percent is a population probability from the unrounded logit, not an individual outcome. de Jong 2025 excluded nonoperative patients.

Formula

logit = -2.69 - 0.0442*albumin_g_l + 0.0306*age_years - 1.012*female + 0.360*dementia - 0.0853*katz_adl + 0.856*asa_4 + 0.726*nursing_home; estimated_mortality_percent = 100 * exp(logit)/(1+exp(logit)) from the unrounded logit, 2 decimals; displayed logit 2 decimals; female is 1 if sex is female else 0; dementia, asa_4, and nursing_home are 1 if true else 0; albumin is g/L (not g/dL); Katz-ADL total 0-6 (6 = independent)

Citation

Title
Multidimensional Approach for Predicting 30-Day Mortality in Patients with a Hip Fracture: Development and External Validation of the Rotterdam Hip Fracture Mortality Prediction-30 Days (RHMP-30)
Authors
de Jong L, de Haan E, van Rijckevorsel VAJIM, Kuijper TM, Roukema GR
Source
J Bone Joint Surg Am. 2025;107(5):459-468
DOI
10.2106/JBJS.23.01397

Worked example

Female, age 80, albumin 38 g/L, independent, no dementia, not ASA 4, not nursing home

Given: age=80albumin_g_l=38asa_4=falsedementia=falsekatz_adl=6nursing_home=falsesex=female

  1. female → female = 1; dementia false → 0; asa_4 false → 0; nursing_home false → 0
  2. albumin 38 g/L; Katz-ADL 6 (independent)
  3. logit = -2.69 - 0.0442*38 + 0.0306*80 - 1.012*1 - 0.0853*6
  4. estimated_mortality_percent = 100 * exp(logit)/(1+exp(logit)) from the unrounded logit

Male, otherwise the same row (published female coefficient)

Given: age=80albumin_g_l=38asa_4=falsedementia=falsekatz_adl=6nursing_home=falsesex=male

  1. male → female = 0, so the female term is not subtracted
  2. percent from the unrounded logit; sex is a published coefficient, not race

Also searched as

  • RHMP 30
  • Rotterdam hip fracture mortality
  • de Jong 2025 hip fracture
  • 30-day hip fracture mortality
  • hip fracture LASSO logit
  • Katz-ADL hip fracture
  • albumin hip fracture mortality

Try

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

/api/calc/rhmp_30?age=80&sex=female&albumin_g_l=38&dementia=false&katz_adl=6&asa_4=false&nursing_home=false

Full URL: https://api.magentlab.com/api/calc/rhmp_30?age=80&sex=female&albumin_g_l=38&dementia=false&katz_adl=6&asa_4=false&nursing_home=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/rhmp_30?age=80&sex=female&albumin_g_l=38&dementia=false&katz_adl=6&asa_4=false&nursing_home=false"

Parameters

Name Type Required Description
age integer required Age in years, integer 40-110. de Jong 2025 coefficient +0.0306 per year. magent does not read an identity document.
sex string required · female, male Sex used as the published de Jong 2025 female coefficient (female = 1, male = 0). Not race. magent does not examine the patient.
albumin_g_l number required Admission serum albumin in g/L (10-60). de Jong 2025 Table I uses g/L (typical 30-45). Not g/dL. Caller-supplied; magent does not assay albumin.
dementia boolean required true if the caller assigns a history of dementia (de Jong 2025). true scores 1 in the logit; false scores 0. magent does not diagnose dementia.
katz_adl integer required Katz Index of Independence in Activities of Daily Living total, integer 0-6 (de Jong 2025). 0 = completely dependent; 6 = completely independent. Caller-assigned total; magent does not score bathing, dressing, toileting, transferring, continence, or feeding.
asa_4 boolean required true if the caller assigns ASA physical status 4 (de Jong 2025). true scores 1 in the logit; false scores 0. magent does not assign ASA class.
nursing_home boolean required true if the caller assigns residence in a nursing home (de Jong 2025). true scores 1 in the logit; false scores 0. magent does not determine residence.

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/rhmp_30 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": [
    {
      "age": "80",
      "albumin_g_l": "38",
      "asa_4": "false",
      "dementia": "false",
      "katz_adl": "6",
      "nursing_home": "false",
      "sex": "female"
    },
    {
      "age": "80",
      "albumin_g_l": "38",
      "asa_4": "false",
      "dementia": "false",
      "katz_adl": "6",
      "nursing_home": "false",
      "sex": "female"
    }
  ]
}

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/rhmp_30",
  "items": [
    {
      "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": "de Jong L, de Haan E, van Rijckevorsel VAJIM, Kuijper TM, Roukema GR",
        "doi": "10.2106/JBJS.23.01397",
        "id": "de-jong-2025",
        "pmid": "39836737",
        "source": "J Bone Joint Surg Am. 2025;107(5):459-468",
        "title": "Multidimensional Approach for Predicting 30-Day Mortality in Patients with a Hip Fracture: Development and External Validation of the Rotterdam Hip Fracture Mortality Prediction-30 Days (RHMP-30)"
      },
      "formula": "rhmp_30",
      "formula_expression": "logit = -2.69 - 0.0442*albumin_g_l + 0.0306*age_years - 1.012*female + 0.360*dementia - 0.0853*katz_adl + 0.856*asa_4 + 0.726*nursing_home; estimated_mortality_percent = 100 * exp(logit)/(1+exp(logit)) from the unrounded logit, 2 decimals; displayed logit 2 decimals; female is 1 if sex is female else 0; dementia, asa_4, and nursing_home are 1 if true else 0; albumin is g/L (not g/dL); Katz-ADL total 0-6 (6 = independent)",
      "age_years": 80,
      "sex": "female",
      "logit": -3.45,
      "albumin_g_l": 38.0,
      "estimated_mortality_percent": 3.09,
      "asa_4": false,
      "dementia": false,
      "katz_adl": 6,
      "nursing_home": 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": "de Jong L, de Haan E, van Rijckevorsel VAJIM, Kuijper TM, Roukema GR",
        "doi": "10.2106/JBJS.23.01397",
        "id": "de-jong-2025",
        "pmid": "39836737",
        "source": "J Bone Joint Surg Am. 2025;107(5):459-468",
        "title": "Multidimensional Approach for Predicting 30-Day Mortality in Patients with a Hip Fracture: Development and External Validation of the Rotterdam Hip Fracture Mortality Prediction-30 Days (RHMP-30)"
      },
      "formula": "rhmp_30",
      "formula_expression": "logit = -2.69 - 0.0442*albumin_g_l + 0.0306*age_years - 1.012*female + 0.360*dementia - 0.0853*katz_adl + 0.856*asa_4 + 0.726*nursing_home; estimated_mortality_percent = 100 * exp(logit)/(1+exp(logit)) from the unrounded logit, 2 decimals; displayed logit 2 decimals; female is 1 if sex is female else 0; dementia, asa_4, and nursing_home are 1 if true else 0; albumin is g/L (not g/dL); Katz-ADL total 0-6 (6 = independent)",
      "age_years": 80,
      "sex": "female",
      "logit": -3.45,
      "albumin_g_l": 38.0,
      "estimated_mortality_percent": 3.09,
      "asa_4": false,
      "dementia": false,
      "katz_adl": 6,
      "nursing_home": false
    }
  ]
}

Response

Field Type Description
formula string rhmp_30
formula_expression string de Jong 2025 RHMP-30 LASSO logit and 30-day mortality probability
age_years integer Age in years used in the logit
sex string female or male
albumin_g_l number Admission serum albumin in g/L used in the logit
dementia boolean Caller-assigned history of dementia
katz_adl integer Caller-assigned Katz-ADL total 0-6 used in the logit
asa_4 boolean Caller-assigned ASA physical status 4
nursing_home boolean Caller-assigned nursing-home residence
logit number de Jong 2025 logit, 2 decimal places. Percent uses the unrounded logit.
estimated_mortality_percent number 100 * exp(logit)/(1+exp(logit)) from the unrounded logit, 2 decimals. A population probability, not an operative order.
citation object de Jong 2025 citation
disclaimer string Not-a-device notice

Example JSON

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

{
  "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": "de Jong L, de Haan E, van Rijckevorsel VAJIM, Kuijper TM, Roukema GR",
    "doi": "10.2106/JBJS.23.01397",
    "id": "de-jong-2025",
    "pmid": "39836737",
    "source": "J Bone Joint Surg Am. 2025;107(5):459-468",
    "title": "Multidimensional Approach for Predicting 30-Day Mortality in Patients with a Hip Fracture: Development and External Validation of the Rotterdam Hip Fracture Mortality Prediction-30 Days (RHMP-30)"
  },
  "formula": "rhmp_30",
  "formula_expression": "logit = -2.69 - 0.0442*albumin_g_l + 0.0306*age_years - 1.012*female + 0.360*dementia - 0.0853*katz_adl + 0.856*asa_4 + 0.726*nursing_home; estimated_mortality_percent = 100 * exp(logit)/(1+exp(logit)) from the unrounded logit, 2 decimals; displayed logit 2 decimals; female is 1 if sex is female else 0; dementia, asa_4, and nursing_home are 1 if true else 0; albumin is g/L (not g/dL); Katz-ADL total 0-6 (6 = independent)",
  "age_years": 80,
  "sex": "female",
  "logit": -3.45,
  "albumin_g_l": 38.0,
  "estimated_mortality_percent": 3.09,
  "asa_4": false,
  "dementia": false,
  "katz_adl": 6,
  "nursing_home": false
}

Client errors (HTTP 400)

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

HTTP Code When
400 invalid_rhmp_30 RHMP-30 needs de Jong 2025 age, sex, ASA 4, dementia, albumin, Katz-ADL, and nursing-home residence in published ranges. 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

  • NHFS — Sum the Maxwell 2008 Nottingham hip fracture score from seven preoperative variables and return the integer total (max 10).
  • Gupta PRF — Compute the Gupta 2011 Chest logistic probability of postoperative respiratory failure (mechanical ventilation >48 h after surgery or unplanned intubation within 30 days) from ASA class, functional status, preoperative sepsis, emergency case, and surgery type.

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.