{"id":631,"date":"2026-02-08T20:06:21","date_gmt":"2026-02-08T20:06:21","guid":{"rendered":"https:\/\/echokardio.de\/?page_id=631"},"modified":"2026-02-10T10:03:37","modified_gmt":"2026-02-10T10:03:37","slug":"calculators","status":"publish","type":"page","link":"https:\/\/echokardio.de\/en\/calculators\/","title":{"rendered":"Calculators"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"631\" class=\"elementor elementor-631\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-22072f1 elementor-section-content-top elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"22072f1\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a018a11\" data-id=\"a018a11\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-487b502 elementor-widget elementor-widget-html\" data-id=\"487b502\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"calc-intro\">\n  ASE-compliant reference values for chamber size and function (LV, LA, RA, RV).\n  Ascending aorta: ASE measurements; ESC-based surveillance and intervention.\n<\/p>\n\n<style>\n  .calc-intro{\n    max-width: 680px;\n    margin: 0 0 18px 0;\n    font-size: 13.5px;\n    line-height: 1.45;\n    color: #666;\n  }\n<\/style>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e0695b1 elementor-widget elementor-widget-html\" data-id=\"e0695b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n:root {\n  --primary-color: #0056b3;\n  --background-color: transparent;\n  --card-bg: #ffffff;\n  --text-color: #333;\n  --border-color: #dfe3e8;\n  --radius: 12px;\n\n  --status-normal: #2e7d32;\n  --status-mild: #f9a825;\n  --status-moderate: #ef6c00;\n  --status-severe: #c62828;\n}\n\n\/* Container bewusst linksb\u00fcndig *\/\n.em-container {\n  max-width: 600px;\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  color: var(--text-color);\n}\n\n\/* Haupt\u00fcberschrift *\/\n.em-container h2 {\n  text-align: left;\n  font-size: 1.4rem;\n  margin: 0 0 20px 0;\n  color: #1a1a1a;\n}\n\n\/* Abschnitts\u00fcberschriften *\/\n.em-container h3 {\n  margin-top: 0;\n  color: var(--primary-color);\n  font-size: 1.1rem;\n  border-bottom: 2px solid #f0f0f0;\n  padding-bottom: 8px;\n  margin-bottom: 15px;\n}\n\n\/* Karten *\/\n.em-card {\n  background: var(--card-bg);\n  border-radius: var(--radius);\n  box-shadow: 0 4px 12px rgba(0,0,0,0.05);\n  padding: 20px;\n  margin-bottom: 20px;\n}\n\n\/* Infobox *\/\n.em-info {\n  font-size: 0.85rem;\n  color: #666;\n  background: #f8f9fa;\n  padding: 10px;\n  border-radius: 8px;\n  margin-bottom: 20px;\n}\n\n\/* Inputs *\/\n.em-group {\n  margin-bottom: 15px;\n}\n\n.em-group label {\n  display: block;\n  margin-bottom: 5px;\n  font-weight: 500;\n  font-size: 0.95rem;\n}\n\n.em-row {\n  display: flex;\n  gap: 10px;\n}\n\n.em-row input {\n  flex: 1;\n  padding: 10px;\n  border: 1px solid var(--border-color);\n  border-radius: 8px;\n  font-size: 16px;\n}\n\n.em-row input:focus {\n  outline: none;\n  border-color: var(--primary-color);\n}\n\n\/* Buttons *\/\n.em-btn {\n  background-color: var(--primary-color);\n  color: #fff;\n  border: none;\n  border-radius: 8px;\n  padding: 10px 14px;\n  font-size: 0.9rem;\n  font-weight: 600;\n  cursor: pointer;\n  white-space: nowrap;\n}\n\n.em-btn-reset {\n  width: 100%;\n  background: #546e7a;\n  padding: 14px;\n  margin-top: 10px;\n  font-size: 1rem;\n}\n\n\/* Resultate *\/\n.em-result {\n  margin-top: 8px;\n  padding: 8px 10px;\n  border-radius: 6px;\n  font-size: 0.85rem;\n  font-weight: 600;\n  display: none;\n  text-align: center;\n}\n\n.em-result.visible { display: block; }\n\n.normal { background:#e8f5e9; color:#2e7d32; }\n.mild { background:#fffde7; color:#f57f17; }\n.moderate { background:#fff3e0; color:#ef6c00; }\n.severe { background:#ffebee; color:#c62828; }\n<\/style>\n\n<div class=\"em-container\">\n\n<h2>RA\/RV Calculator<\/h2>\n\n<div class=\"em-card\">\n  <h3>RA Volume & Area<\/h3>\n  <div class=\"em-info\">\n    Measure in <strong>A4C RA-focused view<\/strong>, end-systolic.\n  <\/div>\n\n  <div class=\"em-group\">\n    <label>BSA (m\u00b2)<\/label>\n    <input id=\"bsa\" type=\"number\" step=\"0.01\" placeholder=\"e.g. 1.9\">\n  <\/div>\n\n  <div class=\"em-group\">\n    <label>RA Volume (ml)<\/label>\n    <input id=\"raVol\" type=\"number\" step=\"0.01\" placeholder=\"ml\">\n  <\/div>\n\n  <div class=\"em-group\">\n    <label>RA Volume Index (ml\/m\u00b2)<\/label>\n    <div class=\"em-row\">\n      <input id=\"raIndex\" type=\"number\" step=\"0.01\" placeholder=\"Calc or enter\">\n      <button class=\"em-btn\" onclick=\"calcRA()\">Calc<\/button>\n    <\/div>\n    <div id=\"raIndexResult\" class=\"em-result\"><\/div>\n  <\/div>\n\n  <hr style=\"border:0;border-top:1px solid #eee;margin:20px 0;\">\n\n  <div class=\"em-group\">\n    <label>RA Area (cm\u00b2)<\/label>\n    <div class=\"em-row\">\n      <input id=\"raArea\" type=\"number\" step=\"0.01\" placeholder=\"cm\u00b2\">\n      <button class=\"em-btn\" onclick=\"checkRAArea()\">Check<\/button>\n    <\/div>\n    <div id=\"raAreaResult\" class=\"em-result\"><\/div>\n  <\/div>\n<\/div>\n\n<div class=\"em-card\">\n  <h3>RV Dimensions & Function<\/h3>\n\n  <div class=\"em-group\">\n    <label>TAPSE (mm)<\/label>\n    <div class=\"em-row\">\n      <input id=\"tapse\" type=\"number\" step=\"0.01\" placeholder=\"mm\">\n      <button class=\"em-btn\" onclick=\"checkReverse('tapse',17,13,11)\">Check<\/button>\n    <\/div>\n    <div id=\"tapseResult\" class=\"em-result\"><\/div>\n  <\/div>\n<\/div>\n\n<button class=\"em-btn-reset\" onclick=\"resetAll()\">Reset All Values<\/button>\n\n<\/div>\n\n<script>\nfunction show(el,text,cls){\n  el.className=\"em-result visible \"+cls;\n  el.innerText=text;\n}\n\nfunction calcRA(){\n  let bsa=parseFloat(bsaInput=bsa.value),\n      vol=parseFloat(raVol.value);\n  if(isNaN(bsa)||isNaN(vol))return;\n  let idx=(vol\/bsa).toFixed(1);\n  raIndex.value=idx;\n  let r=raIndexResult;\n  idx<=29?show(r,\"Normal\",\"normal\"):\n  idx<=36?show(r,\"Mild Dilatation\",\"mild\"):\n  idx<=41?show(r,\"Moderate Dilatation\",\"moderate\"):\n          show(r,\"Severe Dilatation\",\"severe\");\n}\n\nfunction checkRAArea(){\n  let v=parseFloat(raArea.value),r=raAreaResult;\n  if(isNaN(v))return;\n  v<19?show(r,\"Normal\",\"normal\"):\n  v<=22?show(r,\"Mild Dilatation\",\"mild\"):\n  v<=24?show(r,\"Moderate Dilatation\",\"moderate\"):\n        show(r,\"Severe Dilatation\",\"severe\");\n}\n\nfunction checkReverse(id,n,m,s){\n  let v=parseFloat(document.getElementById(id).value),\n      r=document.getElementById(id+\"Result\");\n  if(isNaN(v))return;\n  v>n?show(r,\"Normal\",\"normal\"):\n  v>=m?show(r,\"Mildly Abnormal\",\"mild\"):\n  v>=s?show(r,\"Moderately Abnormal\",\"moderate\"):\n        show(r,\"Severely Abnormal\",\"severe\");\n}\n\nfunction resetAll(){\n  document.querySelectorAll(\"input\").forEach(i=>i.value=\"\");\n  document.querySelectorAll(\".em-result\").forEach(r=>r.className=\"em-result\");\n}\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-78eebda elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"78eebda\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-162ac39\" data-id=\"162ac39\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-dcc47d6 elementor-widget elementor-widget-html\" data-id=\"dcc47d6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n  :root{\n    --primary-color:#0056b3;\n    --background-color:transparent;\n    --card-bg:#ffffff;\n    --text-color:#333;\n    --border-color:#dfe3e8;\n    --radius:12px;\n\n    --status-normal:#2e7d32;\n    --status-mild:#f9a825;\n    --status-moderate:#ef6c00;\n    --status-severe:#c62828;\n  }\n\n  \/* Elementor\/Theme macht den Seitenabstand \u2013 daher hier KEIN body padding *\/\n  .em2d-wrap{\n    font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\n    background-color:var(--background-color);\n    color:var(--text-color);\n    margin:0;\n    padding:0;\n    line-height:1.5;\n  }\n\n  \/* WICHTIG: linksb\u00fcndig statt zentriert *\/\n  .em2d-wrap .container{\n    max-width:600px;\n    margin:0;              \/* war: 0 auto *\/\n  }\n\n  \/* \u00dcberschrift linksb\u00fcndig *\/\n  .em2d-wrap h2{\n    text-align:left;       \/* war: center *\/\n    font-size:1.5rem;\n    margin:0 0 20px 0;\n    color:#1a1a1a;\n  }\n\n  .em2d-wrap h3{\n    margin-top:0;\n    color:var(--primary-color);\n    font-size:1.2rem;\n    border-bottom:2px solid #f0f0f0;\n    padding-bottom:10px;\n    margin-bottom:15px;\n  }\n\n  .em2d-wrap .card{\n    background:var(--card-bg);\n    border-radius:var(--radius);\n    box-shadow:0 4px 12px rgba(0,0,0,0.05);\n    padding:20px;\n    margin-bottom:20px;\n  }\n\n  .em2d-wrap .info-text{\n    font-size:0.85rem;\n    color:#666;\n    background:#f8f9fa;\n    padding:10px;\n    border-radius:8px;\n    margin-bottom:20px;\n  }\n\n  .em2d-wrap .input-group{ margin-bottom:15px; }\n\n  .em2d-wrap label{\n    display:block;\n    margin-bottom:5px;\n    font-weight:500;\n    font-size:0.95rem;\n  }\n\n  .em2d-wrap .input-action-row{\n    display:flex;\n    gap:10px;\n    align-items:center;\n  }\n\n  .em2d-wrap input[type=\"number\"]{\n    flex:1;\n    padding:12px;\n    border:1px solid var(--border-color);\n    border-radius:8px;\n    font-size:16px;\n    background:#fff;\n    transition:border-color .2s;\n    width:100%;\n    min-width:0;\n  }\n\n  .em2d-wrap input[type=\"number\"]:focus{\n    outline:none;\n    border-color:var(--primary-color);\n  }\n\n  .em2d-wrap .radio-row{\n    display:flex;\n    gap:14px;\n    align-items:center;\n    flex-wrap:wrap;\n  }\n  .em2d-wrap .radio-row label{\n    display:flex;\n    gap:8px;\n    align-items:center;\n    margin:0;\n    font-weight:600;\n  }\n  .em2d-wrap input[type=\"radio\"]{\n    transform:scale(1.1);\n    accent-color:var(--primary-color);\n  }\n\n  .em2d-wrap button{\n    background-color:var(--primary-color);\n    color:#fff;\n    border:none;\n    border-radius:8px;\n    padding:10px 15px;\n    font-size:0.9rem;\n    font-weight:600;\n    cursor:pointer;\n    transition:background-color .2s,transform .1s;\n    white-space:nowrap;\n  }\n  .em2d-wrap button:active{ transform:scale(.98); }\n  .em2d-wrap button.check-btn{ background-color:#0056b3; }\n\n  .em2d-wrap button.resetButton{\n    width:100%;\n    background-color:#546e7a;\n    padding:15px;\n    margin-top:10px;\n    font-size:1rem;\n  }\n  .em2d-wrap button.resetButton:hover{ background-color:#455a64; }\n\n  .em2d-wrap .output{\n    margin-top:8px;\n    padding:10px 12px;\n    border-radius:6px;\n    font-size:0.9rem;\n    font-weight:700;\n    display:block;\n    text-align:center;\n    color:#fff;\n  }\n\n  .em2d-wrap #aortic_warning{\n    display:none;\n    margin-top:14px;\n    padding:12px;\n    background:#fff;\n    border:1px solid #ffd0d0;\n    border-radius:8px;\n    color:#333;\n    font-size:0.9rem;\n    line-height:1.35;\n  }\n\n  .em2d-wrap hr.sep{\n    border:0;\n    border-top:1px solid #eee;\n    margin:20px 0;\n  }\n<\/style>\n\n<div class=\"em2d-wrap\">\n  <div class=\"container\">\n    <h2>2D Cardiac Parameter Calculator<\/h2>\n\n    <div class=\"card\">\n      <h3>General<\/h3>\n      <div class=\"info-text\">\n        Enter values and press <strong>Check<\/strong>. Categories are color-coded.\n      <\/div>\n\n      <div class=\"input-group\">\n        <label>Gender<\/label>\n        <div class=\"radio-row\">\n          <label for=\"gender_male\"><input type=\"radio\" name=\"gender\" id=\"gender_male\"> Male<\/label>\n          <label for=\"gender_female\"><input type=\"radio\" name=\"gender\" id=\"gender_female\"> Female<\/label>\n        <\/div>\n      <\/div>\n\n      <div class=\"input-group\">\n        <label for=\"age\">Age (years)<\/label>\n        <input id=\"age\" type=\"number\" step=\"0.1\" placeholder=\"years\" required>\n      <\/div>\n\n      <hr class=\"sep\" \/>\n\n      <div class=\"input-group\">\n        <label for=\"lvwt\">Left Ventricular Wall Thickness (mm)<\/label>\n        <div class=\"input-action-row\">\n          <input id=\"lvwt\" type=\"number\" step=\"0.1\" placeholder=\"mm\">\n          <button class=\"check-btn\" onclick=\"checkParameter('lvwt', { 'male': { 'normal': [0, 10], 'mild hypertrophy': [11, 13], 'moderate hypertrophy': [14, 16], 'severe hypertrophy': [17, Infinity] }, 'female': { 'normal': [0, 9], 'mild hypertrophy': [10, 12], 'moderate hypertrophy': [13, 15], 'severe hypertrophy': [16, Infinity] } }, true)\">Check<\/button>\n        <\/div>\n        <div id=\"lvwt_output\" class=\"output\"><\/div>\n      <\/div>\n\n      <div class=\"input-group\">\n        <label for=\"lvedd\">Left Ventricular End-Diastolic Diameter (mm)<\/label>\n        <div class=\"input-action-row\">\n          <input id=\"lvedd\" type=\"number\" step=\"0.1\" placeholder=\"mm\">\n          <button class=\"check-btn\" onclick=\"checkParameter('lvedd', { 'male': { 'normal': [0, 58], 'mild dilatation': [59, 63], 'moderate dilatation': [64, 68], 'severe dilatation': [69, Infinity] }, 'female': { 'normal': [0, 52], 'mild dilatation': [53, 56], 'moderate dilatation': [57, 61], 'severe dilatation': [62, Infinity] } }, true)\">Check<\/button>\n        <\/div>\n        <div id=\"lvedd_output\" class=\"output\"><\/div>\n      <\/div>\n\n      <div class=\"input-group\">\n        <label for=\"lvef\">Left Ventricular Ejection Fraction (%)<\/label>\n        <div class=\"input-action-row\">\n          <input id=\"lvef\" type=\"number\" step=\"0.1\" placeholder=\"%\">\n          <button class=\"check-btn\" onclick=\"checkParameter('lvef', { 'male': { 'normal': [52, Infinity], 'mildly reduced LV function': [41, 51], 'moderately reduced LV function': [30, 40], 'severely reduced LV function': [-Infinity, 29] }, 'female': { 'normal': [54, Infinity], 'mildly reduced LV function': [41, 53], 'moderately reduced LV function': [30, 40], 'severely reduced LV function': [-Infinity, 29] } }, true)\">Check<\/button>\n        <\/div>\n        <div id=\"lvef_output\" class=\"output\"><\/div>\n      <\/div>\n\n      <div class=\"input-group\">\n        <label for=\"lav\">Left Atrial Volume (ml\/BSA)<\/label>\n        <div class=\"input-action-row\">\n          <input id=\"lav\" type=\"number\" step=\"0.1\" placeholder=\"ml\/m\u00b2\">\n          <button class=\"check-btn\" onclick=\"checkParameter('lav', { 'normal': [0, 34], 'mild dilatation': [35, 41], 'moderate dilatation': [42, 47], 'severe dilatation': [48, Infinity] })\">Check<\/button>\n        <\/div>\n        <div id=\"lav_output\" class=\"output\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"card\">\n      <h3>Aortic Dimensions<\/h3>\n      <div class=\"info-text\">\n        End-diastolic, leading-edge. Values in <strong>cm<\/strong>.\n      <\/div>\n\n      <div class=\"input-group\">\n        <label for=\"aortic_bsa\">BSA (m\u00b2)<\/label>\n        <input id=\"aortic_bsa\" type=\"number\" step=\"0.01\" placeholder=\"e.g. 1.9\" required>\n      <\/div>\n\n      <div class=\"input-group\">\n        <label for=\"sov_diameter\">Sinuses of Valsalva (cm)<\/label>\n        <input id=\"sov_diameter\" type=\"number\" step=\"0.01\" placeholder=\"cm\">\n        <div id=\"sov_output\" class=\"output\"><\/div>\n      <\/div>\n\n      <div class=\"input-group\">\n        <label for=\"stj_diameter\">Sinutubular Junction (cm)<\/label>\n        <input id=\"stj_diameter\" type=\"number\" step=\"0.01\" placeholder=\"cm\">\n        <div id=\"stj_output\" class=\"output\"><\/div>\n      <\/div>\n\n      <div class=\"input-group\">\n        <label for=\"taa_diameter\">Tubular Ascending Aorta (cm)<\/label>\n        <input id=\"taa_diameter\" type=\"number\" step=\"0.01\" placeholder=\"cm\">\n        <div id=\"taa_output\" class=\"output\"><\/div>\n      <\/div>\n\n      <div class=\"input-group\">\n        <button class=\"check-btn\" style=\"width:100%;\" onclick=\"checkAorticDimensions()\">Check Aortic Dimensions<\/button>\n        <div id=\"aortic_warning\"><\/div>\n      <\/div>\n    <\/div>\n\n    <button class=\"resetButton\" onclick=\"resetForm()\">Reset All Values<\/button>\n  <\/div>\n<\/div>\n\n<script>\n  function getElement(id) { return document.getElementById(id); }\n\n  function getValue(id) {\n    let el = getElement(id);\n    if (!el) return NaN;\n    let val = (el.value || \"\").replace(\",\", \".\");\n    return val === \"\" ? NaN : parseFloat(val);\n  }\n\n  function setColorValue(value, id) {\n    let color_palette = {\n      \"normal\": \"#4D8A30\",\n      \"mild hypertrophy\": \"#D4C73D\",\n      \"moderate hypertrophy\": \"#DE581F\",\n      \"severe hypertrophy\": \"#BA0A07\",\n      \"mildly reduced LV function\": \"#D4C73D\",\n      \"moderately reduced LV function\": \"#DE581F\",\n      \"severely reduced LV function\": \"#BA0A07\",\n      \"mild dilatation\": \"#D4C73D\",\n      \"moderate dilatation\": \"#DE581F\",\n      \"severe dilatation\": \"#BA0A07\",\n      \"significant aortic dilatation\": \"#BA0A07\",\n      \"invalid value\": \"#D7D7D7\"\n    };\n    let color = color_palette[value] || \"#D7D7D7\";\n    let elem = getElement(id + \"_output\");\n    if (!elem) return;\n    elem.innerHTML = value;\n    elem.style.backgroundColor = color;\n  }\n\n  function checkParameter(id, ranges, genderDependent = false) {\n    let value = getValue(id);\n    let gender = getElement(\"gender_male\").checked ? \"male\" : \"female\";\n    let category = \"invalid value\";\n\n    let finalRanges = genderDependent && ranges[gender] ? ranges[gender] : ranges;\n\n    for (let key in finalRanges) {\n      if (value >= finalRanges[key][0] && value <= finalRanges[key][1]) {\n        category = key;\n        break;\n      }\n    }\n    setColorValue(category, id);\n  }\n\n  function getCategory(zScore) {\n    if (!isFinite(zScore)) return \"invalid value\";\n    if (zScore < 2) return \"normal\";\n    else if (zScore < 3) return \"mild dilatation\";\n    else if (zScore < 4) return \"moderate dilatation\";\n    else return \"significant aortic dilatation\";\n  }\n\n  function devereuxSOV_pred(ageYears, bsa, gender){\n    const sex = (gender === 'male') ? 1 : 2;\n    const pred = 2.423 + 0.009*ageYears + 0.461*bsa - 0.267*sex;\n    const SEE  = 0.261;\n    return { pred_cm: pred, sd_cm: SEE };\n  }\n\n  const campens = {\n    SoV: {\n      male:   { a: 1.108, b: 0.136, c: 0.099, SEE: 0.0381 },\n      female: { a: 1.100, b: 0.129, c: 0.091, SEE: 0.0421 }\n    },\n    AA: {\n      male:   { a: 1.033, b: 0.188, c: 0.070, SEE: 0.0431 },\n      female: { a: 1.001, b: 0.177, c: 0.086, SEE: 0.0453 }\n    }\n  };\n\n  function campensZ(level, gender, bsa, ageYears, measured_cm){\n    const cfg = campens[level][gender];\n    if (!cfg) return { z: NaN, uln_cm: NaN };\n    if (!(ageYears > 0) || !(bsa > 0) || !(measured_cm > 0)) return { z: NaN, uln_cm: NaN };\n    const meas_mm_log = Math.log10(measured_cm * 10.0);\n    const mean = cfg.a + cfg.b*Math.log10(ageYears) + cfg.c*bsa;\n    const z    = (meas_mm_log - mean) \/ cfg.SEE;\n    const uln_cm = Math.pow(10, mean + 1.96*cfg.SEE) \/ 10.0;\n    return { z, uln_cm };\n  }\n\n  function checkAorticUnitWarning() {\n    const aorticInputs = ['sov_diameter', 'stj_diameter', 'taa_diameter'];\n    let showWarning = false;\n    for (const id of aorticInputs) {\n      const value = getValue(id);\n      if (!isNaN(value) && value > 10) { showWarning = true; break; }\n    }\n    if (showWarning) {\n      alert(\"Warning: Please enter values in cm units for Aortic Dimensions (not mm). All calculations use LL at end-diastole.\");\n    }\n  }\n\n  function checkAorticDimensions() {\n    checkAorticUnitWarning();\n\n    let gender = getElement(\"gender_male\").checked ? \"male\" : (getElement(\"gender_female\").checked ? \"female\" : \"\");\n    let age = getValue(\"age\");\n    let bsa = getValue(\"aortic_bsa\");\n\n    if (!gender || isNaN(age) || isNaN(bsa)) {\n      alert(\"Please enter gender, age, and BSA to evaluate Aortic Dimensions.\");\n      return;\n    }\n    if (age <= 0 || bsa <= 0) {\n      alert(\"Age and BSA must be > 0.\");\n      return;\n    }\n\n    let sov_diameter = getValue(\"sov_diameter\");\n    let sov_category = \"invalid value\";\n    if (!isNaN(sov_diameter)) {\n      const d = devereuxSOV_pred(age, bsa, gender);\n      const zDev = (sov_diameter - d.pred_cm) \/ d.sd_cm;\n      const zCamp = campensZ('SoV', gender, bsa, age, sov_diameter).z;\n      const zUse = Math.max(zDev, zCamp);\n      sov_category = getCategory(zUse);\n      setColorValue(sov_category, \"sov\");\n    } else setColorValue(\"invalid value\", \"sov\");\n\n    let stj_diameter = getValue(\"stj_diameter\");\n    let stj_category = \"invalid value\";\n    if (!isNaN(stj_diameter)) {\n      if (stj_diameter < 4.0) stj_category = \"normal\";\n      else if (stj_diameter < 4.5) stj_category = \"mild dilatation\";\n      else if (stj_diameter < 5.0) stj_category = \"moderate dilatation\";\n      else stj_category = \"significant aortic dilatation\";\n    }\n    setColorValue(stj_category, \"stj\");\n\n    let taa_diameter = getValue(\"taa_diameter\");\n    let taa_category = \"invalid value\";\n    if (!isNaN(taa_diameter)) {\n      const zAA = campensZ('AA', gender, bsa, age, taa_diameter).z;\n      taa_category = getCategory(zAA);\n      setColorValue(taa_category, \"taa\");\n    } else setColorValue(\"invalid value\", \"taa\");\n\n    let aorticValues = [sov_diameter, stj_diameter, taa_diameter];\n    let aorticNames = [\"Sinuses of Valsalva\", \"Sinutubular Junction\", \"Tubular Ascending Aorta\"];\n    let aorticCategories = [sov_category, stj_category, taa_category];\n    let warningText = \"\";\n\n    for (let i = 0; i < aorticValues.length; i++) {\n      if ((isFinite(aorticValues[i]) && aorticValues[i] >= 4) || aorticCategories[i] === \"significant aortic dilatation\") {\n        warningText += `<strong>${aorticNames[i]}: ${isFinite(aorticValues[i]) ? aorticValues[i].toFixed(2) : '\u2014'} cm (${aorticCategories[i]})<\/strong><br>`;\n      }\n    }\n\n    if (warningText !== \"\") {\n      warningText += `\n        <br>\n        <strong>Surveillance in non-heritable thoracic aortic disease:<\/strong><br>\n        \u2022 Confirm echocardiographic measurements by CT\/CMR:<br>\n        \u2022 4.0-4.4 cm: Baseline CT\/CMR \u2192 reimage in 1 y \u2192 growth < 0.3 cm\/y \u2192 reimage every 2-3 y<br>\n        \u2022 Growth > 0.3 cm\/y: Reimage every 6 months<br>\n        \u2022 4.5-4.9 cm: Reimage yearly (every 6 months if growth > 0.3 cm\/y)<br>\n        \u2022 5.0-5.2 cm: Tubular Ascending Aorta \u2192 reimage every 6 months<br>\n        <span style=\"color: #BA0A07;\">\u2022 5.0-5.2 cm: Root (sinuses of V.\/sinutub. junction) \u2192 bicuspid AV \u2192 surgery!<\/span><br>\n        <span style=\"color: #BA0A07;\">\u2022 5.3-5.4 cm: Tubular Ascending Aorta \u2192 low operative risk \u2192 surgery!<\/span><br>\n        <span style=\"color: #BA0A07;\">\u2022 \u2265 5.5 cm: Surgery!<\/span>\n      `;\n      getElement(\"aortic_warning\").innerHTML = warningText;\n      getElement(\"aortic_warning\").style.display = \"block\";\n    } else {\n      getElement(\"aortic_warning\").style.display = \"none\";\n    }\n  }\n\n  function resetForm() {\n    document.querySelectorAll('.em2d-wrap input[type=\"number\"]').forEach(input => input.value = \"\");\n    document.querySelectorAll('.em2d-wrap input[type=\"radio\"]').forEach(radio => radio.checked = false);\n    document.querySelectorAll('.em2d-wrap .output').forEach(output => {\n      output.innerHTML = \"\";\n      output.style.backgroundColor = \"\";\n    });\n    getElement(\"aortic_warning\").style.display = \"none\";\n  }\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b1225f3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b1225f3\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6b290af\" data-id=\"6b290af\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0e1d8c0 elementor-widget elementor-widget-html\" data-id=\"0e1d8c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3>References & Guidelines<\/h3>\n<ul>\n  <li>Campens L et al. <em>Am J Cardiol<\/em> 2014; 114: 914\u2013920<\/li>\n  <li>Devereux RB et al. <em>Am J Cardiol<\/em> 2012; 110(8): 1189\u20131194<\/li>\n  <li><em>Eur Heart J<\/em> 2024; 45(21): 3538\u20133700<\/li>\n  <li>Lang RM et al. <em>J Am Soc Echocardiogr<\/em> 2015; 28: 1\u201339<\/li>\n  <li>Lang RM et al. <em>J Am Soc Echocardiogr<\/em> 2025; 38: 141\u2013186<\/li>\n<\/ul>\n\n<p style=\"font-size:0.9em;color:#666;\">\nEchocardiographic reference values are based on ASE guidelines.\nSurveillance and intervention recommendations for the ascending aorta follow ESC guidelines.\n<\/p>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>ASE-compliant reference values for chamber size and function (LV, LA, RA, RV). Ascending aorta: ASE measurements; ESC-based surveillance and intervention. RA\/RV Calculator RA Volume &#038; Area Measure in A4C RA-focused view, end-systolic. BSA (m\u00b2) RA Volume (ml) RA Volume Index<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"class_list":["post-631","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PaCb4I-ab","jetpack-related-posts":[{"id":106,"url":"https:\/\/echokardio.de\/en\/","url_meta":{"origin":631,"position":0},"title":"Homepage","author":"admin","date":"January 13, 2019","format":false,"excerpt":"Echocardiography Education & Clinical Tools Structured learning resources, guideline-based calculators and curated updates for clinical echocardiography. Clinical Calculators Echocardiography Reference Values & Calculators (ASE\/ESC) Education Hub Courses, online learning resources, guidelines & literature recommendations Updates ASE Guideline update: Clinical Applications of Strain Echocardiography Master Echocardiography with EchoMastery A structured, continuously\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26,"url":"https:\/\/echokardio.de\/en\/kurse-online\/","url_meta":{"origin":631,"position":1},"title":"Online courses","author":"admin","date":"January 12, 2019","format":false,"excerpt":"Online echocardiography courses and digital learning resources in transthoracic (TTE) and transesophageal (TEE) imaging. This curated overview includes open-access platforms, structured e-learning programs, and advanced imaging resources for cardiology, anesthesia, and critical care physicians. Open Educational Platforms Wikibooks \u2013 Cardiac Ultrasound Echopedia ESC eLearning Platform \u2013 Echocardiography Echobasics Structured Online\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/echokardio.de\/en\/wp-json\/wp\/v2\/pages\/631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/echokardio.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/echokardio.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/echokardio.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/echokardio.de\/en\/wp-json\/wp\/v2\/comments?post=631"}],"version-history":[{"count":16,"href":"https:\/\/echokardio.de\/en\/wp-json\/wp\/v2\/pages\/631\/revisions"}],"predecessor-version":[{"id":741,"href":"https:\/\/echokardio.de\/en\/wp-json\/wp\/v2\/pages\/631\/revisions\/741"}],"wp:attachment":[{"href":"https:\/\/echokardio.de\/en\/wp-json\/wp\/v2\/media?parent=631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}