MAGENT

Hemodynamics · LIVE

HFA-ICOS myeloma-therapy baseline CV risk

Apply the Lyon 2020 HFA-ICOS multiple-myeloma therapy baseline cardiovascular risk proforma from caller-assigned age, LVEF, and published Very high, High, Medium 2, and Medium 1 factors before proteasome inhibitors and immunomodulatory drugs. Returns risk_level, medium_points, and the paper's expert-opinion cardiotoxicity_guide.

LIVE $0.005 USDC GET /api/calc/hfa_icos_myeloma

Markdown: /docs/hfa-icos-myeloma.md · Canonical: https://magentlab.com/docs/hfa-icos-myeloma

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

What it computes

Apply the Lyon 2020 HFA-ICOS multiple-myeloma therapy baseline cardiovascular risk proforma from caller-assigned age, LVEF, and published Very high, High, Medium 2, and Medium 1 factors before proteasome inhibitors and immunomodulatory drugs. Returns risk_level, medium_points, and the paper's expert-opinion cardiotoxicity_guide.

When to use

When an agent already has the published myeloma-therapy-table assignments (age, LVEF, and yes/no factors) and needs the HFA-ICOS class. magent does not examine the patient, read imaging, assay labs, compute BMI, or compute a steroid dose.

When not to use

  • Not a medical device and not a diagnosis or treatment order.
  • magent does not examine the patient or read imaging. Age, LVEF, and yes/no factors are caller-assigned.
  • Classification follows Lyon 2020: very high if any Very high factor; else high if any High factor or medium_points >=5; else medium if medium_points 2-4; else low (no factors or one Medium 1).
  • medium_points sums only Medium 1 (1) and Medium 2 (2). High and Very high do not add to medium_points.
  • Age bands are mutually exclusive (highest matching): >=75 High; 65-74 Medium 1; <65 none. LVEF: <50 High; 50-54 Medium 2; >=55 none.
  • BNP or NT-proBNP above local ULN is High on this table and does not add a medium point. Troponin above local ULN is Medium 2.
  • High-dose dexamethasone (>160 mg/month) and obesity (BMI >30) are caller-assigned. magent does not compute a steroid dose or BMI.
  • cardiotoxicity_guide is the paper's expert-opinion guide (low <2%, medium 2-9%, high 10-19%, very high >=20%), not a validated absolute risk.
  • Not a chemotherapy, imaging, or cardioprotective-drug order.

Formula

very_high if any Very high factor (heart_failure_or_cardiomyopathy, prior_proteasome_inhibitor_cardiotoxicity, venous_thrombosis, cardiac_amyloidosis, arterial_vascular_disease); else high if any High factor (prior_immunomodulatory_drug_cv_toxicity, lvef_percent<50, elevated_bnp, age_years>=75, prior_anthracycline) OR medium_points>=5; else medium if medium_points in 2..4; else low (no factors or one Medium 1). medium_points sums Medium 1 (=1: left_ventricular_hypertrophy, age_years 65-74, hypertension, diabetes, hyperlipidemia, ckd, family_history_thrombophilia, prior_thoracic_spine_radiotherapy, high_dose_dexamethasone, current_or_significant_smoker, obesity) and Medium 2 (=2: lvef_percent 50-54, arrhythmia, elevated_troponin) only. Age and LVEF use the highest matching printed band. Lyon 2020 HFA-ICOS multiple-myeloma therapy table. cardiotoxicity_guide is that paper's expert-opinion guide: low <2%, medium 2-9%, high 10-19%, very high >=20%

Citation

Title
Baseline cardiovascular risk assessment in cancer patients scheduled to receive cardiotoxic cancer therapies: a position statement and new risk assessment tools from the Cardio-Oncology Study Group of the Heart Failure Association of the European Society of Cardiology in collaboration with the International Cardio-Oncology Society
Authors
Lyon AR, Dent S, Stanway S, et al.
Source
Eur J Heart Fail. 2020;22(11):1945-1960
DOI
10.1002/ejhf.1920

Worked example

No factors, age 50, LVEF 60

Given: age_years=50arrhythmia=falsearterial_vascular_disease=falsecardiac_amyloidosis=falseckd=falsecurrent_or_significant_smoker=falsediabetes=falseelevated_bnp=falseelevated_troponin=falsefamily_history_thrombophilia=falseheart_failure_or_cardiomyopathy=falsehigh_dose_dexamethasone=falsehyperlipidemia=falsehypertension=falseleft_ventricular_hypertrophy=falselvef_percent=60obesity=falseprior_anthracycline=falseprior_immunomodulatory_drug_cv_toxicity=falseprior_proteasome_inhibitor_cardiotoxicity=falseprior_thoracic_spine_radiotherapy=falsevenous_thrombosis=false

  1. no Very high or High factor
  2. medium_points = 0
  3. risk_level is low
  4. cardiotoxicity_guide is <2%

Age 70 only

Given: age_years=70arrhythmia=falsearterial_vascular_disease=falsecardiac_amyloidosis=falseckd=falsecurrent_or_significant_smoker=falsediabetes=falseelevated_bnp=falseelevated_troponin=falsefamily_history_thrombophilia=falseheart_failure_or_cardiomyopathy=falsehigh_dose_dexamethasone=falsehyperlipidemia=falsehypertension=falseleft_ventricular_hypertrophy=falselvef_percent=60obesity=falseprior_anthracycline=falseprior_immunomodulatory_drug_cv_toxicity=falseprior_proteasome_inhibitor_cardiotoxicity=falseprior_thoracic_spine_radiotherapy=falsevenous_thrombosis=false

  1. age 65-74 is Medium 1
  2. medium_points = 1
  3. risk_level is low (medium needs 2-4)

Age 75 only

Given: age_years=75arrhythmia=falsearterial_vascular_disease=falsecardiac_amyloidosis=falseckd=falsecurrent_or_significant_smoker=falsediabetes=falseelevated_bnp=falseelevated_troponin=falsefamily_history_thrombophilia=falseheart_failure_or_cardiomyopathy=falsehigh_dose_dexamethasone=falsehyperlipidemia=falsehypertension=falseleft_ventricular_hypertrophy=falselvef_percent=60obesity=falseprior_anthracycline=falseprior_immunomodulatory_drug_cv_toxicity=falseprior_proteasome_inhibitor_cardiotoxicity=falseprior_thoracic_spine_radiotherapy=falsevenous_thrombosis=false

  1. age >=75 is High
  2. medium_points = 0
  3. risk_level is high

Elevated BNP

Given: age_years=50arrhythmia=falsearterial_vascular_disease=falsecardiac_amyloidosis=falseckd=falsecurrent_or_significant_smoker=falsediabetes=falseelevated_bnp=trueelevated_troponin=falsefamily_history_thrombophilia=falseheart_failure_or_cardiomyopathy=falsehigh_dose_dexamethasone=falsehyperlipidemia=falsehypertension=falseleft_ventricular_hypertrophy=falselvef_percent=60obesity=falseprior_anthracycline=falseprior_immunomodulatory_drug_cv_toxicity=falseprior_proteasome_inhibitor_cardiotoxicity=falseprior_thoracic_spine_radiotherapy=falsevenous_thrombosis=false

  1. elevated_bnp is High on this table
  2. does not add a medium point
  3. risk_level is high

Elevated troponin only

Given: age_years=50arrhythmia=falsearterial_vascular_disease=falsecardiac_amyloidosis=falseckd=falsecurrent_or_significant_smoker=falsediabetes=falseelevated_bnp=falseelevated_troponin=truefamily_history_thrombophilia=falseheart_failure_or_cardiomyopathy=falsehigh_dose_dexamethasone=falsehyperlipidemia=falsehypertension=falseleft_ventricular_hypertrophy=falselvef_percent=60obesity=falseprior_anthracycline=falseprior_immunomodulatory_drug_cv_toxicity=falseprior_proteasome_inhibitor_cardiotoxicity=falseprior_thoracic_spine_radiotherapy=falsevenous_thrombosis=false

  1. elevated_troponin is Medium 2
  2. medium_points = 2
  3. risk_level is medium

Five Medium 1 factors

Given: age_years=50arrhythmia=falsearterial_vascular_disease=falsecardiac_amyloidosis=falseckd=truecurrent_or_significant_smoker=falsediabetes=trueelevated_bnp=falseelevated_troponin=falsefamily_history_thrombophilia=falseheart_failure_or_cardiomyopathy=falsehigh_dose_dexamethasone=falsehyperlipidemia=truehypertension=trueleft_ventricular_hypertrophy=falselvef_percent=60obesity=trueprior_anthracycline=falseprior_immunomodulatory_drug_cv_toxicity=falseprior_proteasome_inhibitor_cardiotoxicity=falseprior_thoracic_spine_radiotherapy=falsevenous_thrombosis=false

  1. five Medium 1 factors
  2. medium_points = 5
  3. risk_level is high

Also searched as

  • HFA-ICOS myeloma
  • HFA ICOS multiple myeloma CV risk
  • Lyon 2020 myeloma therapy risk
  • proteasome inhibitor cardiotoxicity risk
  • immunomodulatory drug cardiovascular risk
  • cardio-oncology myeloma baseline
  • ESC Heart Failure Association ICOS myeloma
  • HFA-ICOS very high high medium low myeloma

Try

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

/api/calc/hfa_icos_myeloma?age_years=50&lvef_percent=60&heart_failure_or_cardiomyopathy=false&prior_proteasome_inhibitor_cardiotoxicity=false&venous_thrombosis=false&cardiac_amyloidosis=false&arterial_vascular_disease=false&prior_immunomodulatory_drug_cv_toxicity=false&elevated_bnp=false&prior_anthracycline=false&arrhythmia=false&elevated_troponin=false&left_ventricular_hypertrophy=false&hypertension=false&diabetes=false&hyperlipidemia=false&ckd=false&family_history_thrombophilia=false&prior_thoracic_spine_radiotherapy=false&high_dose_dexamethasone=false&current_or_significant_smoker=false&obesity=false

Full URL: https://api.magentlab.com/api/calc/hfa_icos_myeloma?age_years=50&lvef_percent=60&heart_failure_or_cardiomyopathy=false&prior_proteasome_inhibitor_cardiotoxicity=false&venous_thrombosis=false&cardiac_amyloidosis=false&arterial_vascular_disease=false&prior_immunomodulatory_drug_cv_toxicity=false&elevated_bnp=false&prior_anthracycline=false&arrhythmia=false&elevated_troponin=false&left_ventricular_hypertrophy=false&hypertension=false&diabetes=false&hyperlipidemia=false&ckd=false&family_history_thrombophilia=false&prior_thoracic_spine_radiotherapy=false&high_dose_dexamethasone=false&current_or_significant_smoker=false&obesity=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/hfa_icos_myeloma?age_years=50&lvef_percent=60&heart_failure_or_cardiomyopathy=false&prior_proteasome_inhibitor_cardiotoxicity=false&venous_thrombosis=false&cardiac_amyloidosis=false&arterial_vascular_disease=false&prior_immunomodulatory_drug_cv_toxicity=false&elevated_bnp=false&prior_anthracycline=false&arrhythmia=false&elevated_troponin=false&left_ventricular_hypertrophy=false&hypertension=false&diabetes=false&hyperlipidemia=false&ckd=false&family_history_thrombophilia=false&prior_thoracic_spine_radiotherapy=false&high_dose_dexamethasone=false&current_or_significant_smoker=false&obesity=false"

Parameters

Name Type Required Description
age_years integer required Age in years (18-100, integer). Lyon 2020 myeloma-therapy table: >=75 High; 65-74 Medium 1; <65 no age factor. Highest matching band only.
lvef_percent integer required LVEF percent (10-80, integer). Lyon 2020: <50 High; 50-54 Medium 2; >=55 no LVEF factor. Highest matching printed band only. magent does not read imaging.
heart_failure_or_cardiomyopathy boolean required Heart failure or cardiomyopathy (Lyon 2020 Very high). true or false as assigned by the caller. magent does not examine the patient or read imaging.
prior_proteasome_inhibitor_cardiotoxicity boolean required Prior proteasome-inhibitor cardiotoxicity (Lyon 2020 Very high). true or false as assigned by the caller.
venous_thrombosis boolean required Venous thrombosis (DVT or PE) (Lyon 2020 Very high). true or false as assigned by the caller. magent does not diagnose thrombosis.
cardiac_amyloidosis boolean required Cardiac amyloidosis (Lyon 2020 Very high). true or false as assigned by the caller. magent does not read imaging or biopsy.
arterial_vascular_disease boolean required Arterial vascular disease (IHD, PCI, CABG, stable angina, TIA, stroke, or PVD) as one caller bool (Lyon 2020 Very high). true or false. magent does not diagnose vascular disease.
prior_immunomodulatory_drug_cv_toxicity boolean required Prior immunomodulatory-drug cardiovascular toxicity (Lyon 2020 High). true or false as assigned by the caller.
elevated_bnp boolean required Baseline BNP or NT-proBNP above the local laboratory ULN as assigned by the caller (Lyon 2020 High). true or false. magent does not assay natriuretic peptides.
prior_anthracycline boolean required Prior anthracycline exposure (Lyon 2020 High). true or false as assigned by the caller.
arrhythmia boolean required Arrhythmia (Lyon 2020 Medium 2). true or false as assigned by the caller. magent does not read a rhythm strip.
elevated_troponin boolean required Baseline troponin above the local laboratory ULN as assigned by the caller (Lyon 2020 Medium 2). true or false. magent does not assay troponin.
left_ventricular_hypertrophy boolean required Left-ventricular hypertrophy (Lyon 2020 Medium 1). true or false as assigned by the caller. magent does not read imaging.
hypertension boolean required Hypertension as assigned by the caller (Lyon 2020 Medium 1). true or false. magent does not measure blood pressure.
diabetes boolean required Diabetes mellitus as assigned by the caller (Lyon 2020 Medium 1). true or false. magent does not assay HbA1c.
hyperlipidemia boolean required Hyperlipidemia as assigned by the caller (Lyon 2020 Medium 1). true or false. magent does not assay lipids.
ckd boolean required Chronic kidney disease as assigned by the caller (Lyon 2020 Medium 1). true or false. magent does not compute eGFR.
family_history_thrombophilia boolean required Family history of thrombophilia (Lyon 2020 Medium 1). true or false as assigned by the caller. magent does not take a family history.
prior_thoracic_spine_radiotherapy boolean required Prior thoracic-spine radiotherapy (Lyon 2020 Medium 1). true or false as assigned by the caller.
high_dose_dexamethasone boolean required High-dose dexamethasone (>160 mg/month) as assigned by the caller (Lyon 2020 Medium 1). true or false. magent does not compute a steroid dose.
current_or_significant_smoker boolean required Current smoker or significant smoking history (Lyon 2020 Medium 1). true or false as assigned by the caller.
obesity boolean required Obesity (BMI >30 kg/m2) as assigned by the caller (Lyon 2020 Medium 1). true or false. magent does not compute BMI.

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/hfa_icos_myeloma 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_years": "50",
      "arrhythmia": "false",
      "arterial_vascular_disease": "false",
      "cardiac_amyloidosis": "false",
      "ckd": "false",
      "current_or_significant_smoker": "false",
      "diabetes": "false",
      "elevated_bnp": "false",
      "elevated_troponin": "false",
      "family_history_thrombophilia": "false",
      "heart_failure_or_cardiomyopathy": "false",
      "high_dose_dexamethasone": "false",
      "hyperlipidemia": "false",
      "hypertension": "false",
      "left_ventricular_hypertrophy": "false",
      "lvef_percent": "60",
      "obesity": "false",
      "prior_anthracycline": "false",
      "prior_immunomodulatory_drug_cv_toxicity": "false",
      "prior_proteasome_inhibitor_cardiotoxicity": "false",
      "prior_thoracic_spine_radiotherapy": "false",
      "venous_thrombosis": "false"
    },
    {
      "age_years": "50",
      "arrhythmia": "false",
      "arterial_vascular_disease": "false",
      "cardiac_amyloidosis": "false",
      "ckd": "false",
      "current_or_significant_smoker": "false",
      "diabetes": "false",
      "elevated_bnp": "false",
      "elevated_troponin": "false",
      "family_history_thrombophilia": "false",
      "heart_failure_or_cardiomyopathy": "false",
      "high_dose_dexamethasone": "false",
      "hyperlipidemia": "false",
      "hypertension": "false",
      "left_ventricular_hypertrophy": "false",
      "lvef_percent": "60",
      "obesity": "false",
      "prior_anthracycline": "false",
      "prior_immunomodulatory_drug_cv_toxicity": "false",
      "prior_proteasome_inhibitor_cardiotoxicity": "false",
      "prior_thoracic_spine_radiotherapy": "false",
      "venous_thrombosis": "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/hfa_icos_myeloma",
  "items": [
    {
      "components": [
        {
          "factor": "heart_failure_or_cardiomyopathy",
          "points": 0,
          "present": false,
          "tier": "very_high"
        },
        {
          "factor": "prior_proteasome_inhibitor_cardiotoxicity",
          "points": 0,
          "present": false,
          "tier": "very_high"
        },
        {
          "factor": "venous_thrombosis",
          "points": 0,
          "present": false,
          "tier": "very_high"
        },
        {
          "factor": "cardiac_amyloidosis",
          "points": 0,
          "present": false,
          "tier": "very_high"
        },
        {
          "factor": "arterial_vascular_disease",
          "points": 0,
          "present": false,
          "tier": "very_high"
        },
        {
          "factor": "prior_immunomodulatory_drug_cv_toxicity",
          "points": 0,
          "present": false,
          "tier": "high"
        },
        {
          "factor": "elevated_bnp",
          "points": 0,
          "present": false,
          "tier": "high"
        },
        {
          "factor": "prior_anthracycline",
          "points": 0,
          "present": false,
          "tier": "high"
        },
        {
          "factor": "arrhythmia",
          "points": 0,
          "present": false,
          "tier": "medium_2"
        },
        {
          "factor": "elevated_troponin",
          "points": 0,
          "present": false,
          "tier": "medium_2"
        },
        {
          "factor": "left_ventricular_hypertrophy",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "hypertension",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "diabetes",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "hyperlipidemia",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "ckd",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "family_history_thrombophilia",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "prior_thoracic_spine_radiotherapy",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "high_dose_dexamethasone",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "current_or_significant_smoker",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "obesity",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "value": 50,
          "factor": "age_years",
          "points": 0,
          "present": false,
          "tier": "none"
        },
        {
          "value": 60,
          "factor": "lvef_percent",
          "points": 0,
          "present": false,
          "tier": "none"
        }
      ],
      "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": "Lyon AR, Dent S, Stanway S, et al.",
        "doi": "10.1002/ejhf.1920",
        "id": "lyon-2020",
        "pmid": "32458582",
        "source": "Eur J Heart Fail. 2020;22(11):1945-1960",
        "title": "Baseline cardiovascular risk assessment in cancer patients scheduled to receive cardiotoxic cancer therapies: a position statement and new risk assessment tools from the Cardio-Oncology Study Group of the Heart Failure Association of the European Society of Cardiology in collaboration with the International Cardio-Oncology Society"
      },
      "formula": "hfa_icos_myeloma",
      "formula_expression": "very_high if any Very high factor (heart_failure_or_cardiomyopathy, prior_proteasome_inhibitor_cardiotoxicity, venous_thrombosis, cardiac_amyloidosis, arterial_vascular_disease); else high if any High factor (prior_immunomodulatory_drug_cv_toxicity, lvef_percent<50, elevated_bnp, age_years>=75, prior_anthracycline) OR medium_points>=5; else medium if medium_points in 2..4; else low (no factors or one Medium 1). medium_points sums Medium 1 (=1: left_ventricular_hypertrophy, age_years 65-74, hypertension, diabetes, hyperlipidemia, ckd, family_history_thrombophilia, prior_thoracic_spine_radiotherapy, high_dose_dexamethasone, current_or_significant_smoker, obesity) and Medium 2 (=2: lvef_percent 50-54, arrhythmia, elevated_troponin) only. Age and LVEF use the highest matching printed band. Lyon 2020 HFA-ICOS multiple-myeloma therapy table. cardiotoxicity_guide is that paper's expert-opinion guide: low <2%, medium 2-9%, high 10-19%, very high >=20%",
      "age_years": 50,
      "cardiotoxicity_guide": "<2%",
      "lvef_percent": 60,
      "medium_points": 0,
      "risk_level": "low"
    },
    {
      "components": [
        {
          "factor": "heart_failure_or_cardiomyopathy",
          "points": 0,
          "present": false,
          "tier": "very_high"
        },
        {
          "factor": "prior_proteasome_inhibitor_cardiotoxicity",
          "points": 0,
          "present": false,
          "tier": "very_high"
        },
        {
          "factor": "venous_thrombosis",
          "points": 0,
          "present": false,
          "tier": "very_high"
        },
        {
          "factor": "cardiac_amyloidosis",
          "points": 0,
          "present": false,
          "tier": "very_high"
        },
        {
          "factor": "arterial_vascular_disease",
          "points": 0,
          "present": false,
          "tier": "very_high"
        },
        {
          "factor": "prior_immunomodulatory_drug_cv_toxicity",
          "points": 0,
          "present": false,
          "tier": "high"
        },
        {
          "factor": "elevated_bnp",
          "points": 0,
          "present": false,
          "tier": "high"
        },
        {
          "factor": "prior_anthracycline",
          "points": 0,
          "present": false,
          "tier": "high"
        },
        {
          "factor": "arrhythmia",
          "points": 0,
          "present": false,
          "tier": "medium_2"
        },
        {
          "factor": "elevated_troponin",
          "points": 0,
          "present": false,
          "tier": "medium_2"
        },
        {
          "factor": "left_ventricular_hypertrophy",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "hypertension",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "diabetes",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "hyperlipidemia",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "ckd",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "family_history_thrombophilia",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "prior_thoracic_spine_radiotherapy",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "high_dose_dexamethasone",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "current_or_significant_smoker",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "factor": "obesity",
          "points": 0,
          "present": false,
          "tier": "medium_1"
        },
        {
          "value": 50,
          "factor": "age_years",
          "points": 0,
          "present": false,
          "tier": "none"
        },
        {
          "value": 60,
          "factor": "lvef_percent",
          "points": 0,
          "present": false,
          "tier": "none"
        }
      ],
      "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": "Lyon AR, Dent S, Stanway S, et al.",
        "doi": "10.1002/ejhf.1920",
        "id": "lyon-2020",
        "pmid": "32458582",
        "source": "Eur J Heart Fail. 2020;22(11):1945-1960",
        "title": "Baseline cardiovascular risk assessment in cancer patients scheduled to receive cardiotoxic cancer therapies: a position statement and new risk assessment tools from the Cardio-Oncology Study Group of the Heart Failure Association of the European Society of Cardiology in collaboration with the International Cardio-Oncology Society"
      },
      "formula": "hfa_icos_myeloma",
      "formula_expression": "very_high if any Very high factor (heart_failure_or_cardiomyopathy, prior_proteasome_inhibitor_cardiotoxicity, venous_thrombosis, cardiac_amyloidosis, arterial_vascular_disease); else high if any High factor (prior_immunomodulatory_drug_cv_toxicity, lvef_percent<50, elevated_bnp, age_years>=75, prior_anthracycline) OR medium_points>=5; else medium if medium_points in 2..4; else low (no factors or one Medium 1). medium_points sums Medium 1 (=1: left_ventricular_hypertrophy, age_years 65-74, hypertension, diabetes, hyperlipidemia, ckd, family_history_thrombophilia, prior_thoracic_spine_radiotherapy, high_dose_dexamethasone, current_or_significant_smoker, obesity) and Medium 2 (=2: lvef_percent 50-54, arrhythmia, elevated_troponin) only. Age and LVEF use the highest matching printed band. Lyon 2020 HFA-ICOS multiple-myeloma therapy table. cardiotoxicity_guide is that paper's expert-opinion guide: low <2%, medium 2-9%, high 10-19%, very high >=20%",
      "age_years": 50,
      "cardiotoxicity_guide": "<2%",
      "lvef_percent": 60,
      "medium_points": 0,
      "risk_level": "low"
    }
  ]
}

Response

Field Type Description
formula string hfa_icos_myeloma
formula_expression string Lyon 2020 HFA-ICOS multiple-myeloma therapy classification
age_years integer Age in years used (18-100)
lvef_percent integer LVEF percent used (10-80)
medium_points integer Sum of Medium 1 (1) and Medium 2 (2) only
risk_level string low, medium, high, or very_high (Lyon 2020). Not a treatment order.
cardiotoxicity_guide string Expert-opinion guide from Lyon 2020: <2%, 2-9%, 10-19%, or >=20%. Not a validated absolute risk.
components array Per-factor Points rows; High and Very high have 0 medium_points
citation object Lyon 2020 Eur J Heart Fail citation
disclaimer string Not-a-device notice

Example JSON

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

{
  "components": [
    {
      "factor": "heart_failure_or_cardiomyopathy",
      "points": 0,
      "present": false,
      "tier": "very_high"
    },
    {
      "factor": "prior_proteasome_inhibitor_cardiotoxicity",
      "points": 0,
      "present": false,
      "tier": "very_high"
    },
    {
      "factor": "venous_thrombosis",
      "points": 0,
      "present": false,
      "tier": "very_high"
    },
    {
      "factor": "cardiac_amyloidosis",
      "points": 0,
      "present": false,
      "tier": "very_high"
    },
    {
      "factor": "arterial_vascular_disease",
      "points": 0,
      "present": false,
      "tier": "very_high"
    },
    {
      "factor": "prior_immunomodulatory_drug_cv_toxicity",
      "points": 0,
      "present": false,
      "tier": "high"
    },
    {
      "factor": "elevated_bnp",
      "points": 0,
      "present": false,
      "tier": "high"
    },
    {
      "factor": "prior_anthracycline",
      "points": 0,
      "present": false,
      "tier": "high"
    },
    {
      "factor": "arrhythmia",
      "points": 0,
      "present": false,
      "tier": "medium_2"
    },
    {
      "factor": "elevated_troponin",
      "points": 0,
      "present": false,
      "tier": "medium_2"
    },
    {
      "factor": "left_ventricular_hypertrophy",
      "points": 0,
      "present": false,
      "tier": "medium_1"
    },
    {
      "factor": "hypertension",
      "points": 0,
      "present": false,
      "tier": "medium_1"
    },
    {
      "factor": "diabetes",
      "points": 0,
      "present": false,
      "tier": "medium_1"
    },
    {
      "factor": "hyperlipidemia",
      "points": 0,
      "present": false,
      "tier": "medium_1"
    },
    {
      "factor": "ckd",
      "points": 0,
      "present": false,
      "tier": "medium_1"
    },
    {
      "factor": "family_history_thrombophilia",
      "points": 0,
      "present": false,
      "tier": "medium_1"
    },
    {
      "factor": "prior_thoracic_spine_radiotherapy",
      "points": 0,
      "present": false,
      "tier": "medium_1"
    },
    {
      "factor": "high_dose_dexamethasone",
      "points": 0,
      "present": false,
      "tier": "medium_1"
    },
    {
      "factor": "current_or_significant_smoker",
      "points": 0,
      "present": false,
      "tier": "medium_1"
    },
    {
      "factor": "obesity",
      "points": 0,
      "present": false,
      "tier": "medium_1"
    },
    {
      "value": 50,
      "factor": "age_years",
      "points": 0,
      "present": false,
      "tier": "none"
    },
    {
      "value": 60,
      "factor": "lvef_percent",
      "points": 0,
      "present": false,
      "tier": "none"
    }
  ],
  "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": "Lyon AR, Dent S, Stanway S, et al.",
    "doi": "10.1002/ejhf.1920",
    "id": "lyon-2020",
    "pmid": "32458582",
    "source": "Eur J Heart Fail. 2020;22(11):1945-1960",
    "title": "Baseline cardiovascular risk assessment in cancer patients scheduled to receive cardiotoxic cancer therapies: a position statement and new risk assessment tools from the Cardio-Oncology Study Group of the Heart Failure Association of the European Society of Cardiology in collaboration with the International Cardio-Oncology Society"
  },
  "formula": "hfa_icos_myeloma",
  "formula_expression": "very_high if any Very high factor (heart_failure_or_cardiomyopathy, prior_proteasome_inhibitor_cardiotoxicity, venous_thrombosis, cardiac_amyloidosis, arterial_vascular_disease); else high if any High factor (prior_immunomodulatory_drug_cv_toxicity, lvef_percent<50, elevated_bnp, age_years>=75, prior_anthracycline) OR medium_points>=5; else medium if medium_points in 2..4; else low (no factors or one Medium 1). medium_points sums Medium 1 (=1: left_ventricular_hypertrophy, age_years 65-74, hypertension, diabetes, hyperlipidemia, ckd, family_history_thrombophilia, prior_thoracic_spine_radiotherapy, high_dose_dexamethasone, current_or_significant_smoker, obesity) and Medium 2 (=2: lvef_percent 50-54, arrhythmia, elevated_troponin) only. Age and LVEF use the highest matching printed band. Lyon 2020 HFA-ICOS multiple-myeloma therapy table. cardiotoxicity_guide is that paper's expert-opinion guide: low <2%, medium 2-9%, high 10-19%, very high >=20%",
  "age_years": 50,
  "cardiotoxicity_guide": "<2%",
  "lvef_percent": 60,
  "medium_points": 0,
  "risk_level": "low"
}

Client errors (HTTP 400)

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

HTTP Code When
400 invalid_hfa_icos_myeloma Lyon 2020 HFA-ICOS multiple-myeloma therapy inputs must match that table's age, LVEF, and yes/no factors. 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

  • HFA-ICOS anthracycline baseline CV risk — Apply the Lyon 2020 HFA-ICOS anthracycline baseline cardiovascular risk proforma from caller-assigned age, LVEF, and published Very high, High, Medium 2, and Medium 1 factors. Returns risk_level, medium_points, and the paper's expert-opinion cardiotoxicity_guide.
  • HFA-ICOS HER2 — Classify Lyon 2020 HFA-ICOS baseline cardiovascular risk before HER2-targeted therapy and return low, medium, high, or very high with the expert-opinion cardiotoxicity guide.
  • HFA-ICOS VEGF-inhibitor baseline CV risk — Classify Lyon 2020 HFA-ICOS baseline cardiovascular risk for someone scheduled to receive VEGF inhibitors or VEGF TKIs, using that table's very-high, High, Medium 2, and Medium 1 rows.
  • HFA-ICOS RAF-MEK inhibitor baseline CV risk — Classify Lyon 2020 HFA-ICOS baseline cardiovascular risk before combination RAF and MEK inhibitors as very_high, high, medium, or low from that table's printed factors and the shared medium-point rule.
  • HFA-ICOS BCR-ABL TKI baseline CV risk — Classify published HFA-ICOS baseline cardiovascular risk before second- or third-generation multi-targeted kinase inhibitors for CML targeting BCR-ABL.

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.