{"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":26,"url":"https:\/\/echokardio.de\/en\/kurse-online\/","url_meta":{"origin":631,"position":0},"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":[]},{"id":83,"url":"https:\/\/echokardio.de\/en\/kurse\/","url_meta":{"origin":631,"position":1},"title":"Courses","author":"admin","date":"January 13, 2019","format":false,"excerpt":"National and international training courses in transthoracic (TTE) and transesophageal (TEE) echocardiography. This curated overview includes selected educational programs for physicians in training and practicing cardiologists. The list is updated regularly. International U.S.A. Mayo Clinic Echocardiography Comprehensive Review Course (Rochester, May 02\u201306, 2026) United Kingdom British & Scottish Society of\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":159,"url":"https:\/\/echokardio.de\/en\/literaturempfehlungen\/","url_meta":{"origin":631,"position":2},"title":"Literature recommendations","author":"admin","date":"January 13, 2019","format":false,"excerpt":"A curated selection of core echocardiography resources, including standard textbooks (TTE with optional TEE coverage) and key guideline documents (TTE\/TEE, occasionally complemented by broader cardiovascular imaging recommendations). This list is updated over time. Textbooks (Echocardiography) Feigenbaum\u2019s Echocardiography Otto \u2013 Textbook of Clinical Echocardiography ASE\u2019s Comprehensive Echocardiography Selected Guidelines (Echo-focused) Recommendations\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":818,"url":"https:\/\/echokardio.de\/en\/education-hub\/","url_meta":{"origin":631,"position":3},"title":"Education Hub","author":"admin","date":"February 12, 2026","format":false,"excerpt":"Echocardiography EducationThis Education Hub provides a comprehensive overview of high-quality educational resources for cardiologists, anesthesiologists, intensivists, and physicians in training \u2014 from foundational principles to advanced pathology and quantitative assessment.Courses & Structured TrainingExplore national and international echocardiography courses, including TTE and TEE certification programs, hands-on workshops, and scientific congress sessions.On-site\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27,"url":"https:\/\/echokardio.de\/en\/kongresse\/","url_meta":{"origin":631,"position":4},"title":"Congresses","author":"admin","date":"January 12, 2019","format":false,"excerpt":"This page lists major international congresses in echocardiography and cardiovascular imaging, with a focus on transthoracic (TTE) and transesophageal (TEE) ultrasound.Included are scientific meetings such as ASE, EACVI, CSI and other leading cardiovascular conferences featuring guideline updates, advanced imaging sessions, and continuing medical education (CME).The overview is regularly updated and\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/echokardio.de\/wp-content\/uploads\/2026\/01\/scaled_1-1024x370.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/echokardio.de\/wp-content\/uploads\/2026\/01\/scaled_1-1024x370.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/echokardio.de\/wp-content\/uploads\/2026\/01\/scaled_1-1024x370.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/echokardio.de\/wp-content\/uploads\/2026\/01\/scaled_1-1024x370.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":136,"url":"https:\/\/echokardio.de\/en\/guidelines\/","url_meta":{"origin":631,"position":5},"title":"Guidelines","author":"admin","date":"January 13, 2019","format":false,"excerpt":"This page provides access to major national and international echocardiography and cardiovascular guidelines. It includes society statements, imaging standards, and clinical practice recommendations relevant to transthoracic (TTE) and transesophageal (TEE) echocardiography. The collection is intended for cardiologists, anesthesiologists, intensivists, and physicians in training seeking evidence-based guidance in cardiovascular imaging and\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}]}}