{"id":21337,"date":"2026-05-23T16:35:31","date_gmt":"2026-05-23T14:35:31","guid":{"rendered":"https:\/\/www.drugshortage.ch\/?page_id=21337"},"modified":"2026-05-23T16:35:34","modified_gmt":"2026-05-23T14:35:34","slug":"uebersicht-nach-atc-code","status":"publish","type":"page","link":"https:\/\/www.drugshortage.ch\/index.php\/uebersicht-nach-atc-code\/","title":{"rendered":"\u00dcbersicht nach ATC-Code"},"content":{"rendered":"\n<!-- ============================================================\n     ANLEITUNG: In WordPress als \"Benutzerdefiniertes HTML\"-Block einf\u00fcgen.\n     Seite z.B. \"uebersicht-nach-atc\"\n     ============================================================ -->\n<style>\n  #atc-outer { width:100%; box-sizing:border-box; font-family:'Segoe UI',Arial,sans-serif; font-size:13px; color:#2d3748; }\n  .container,.container-fluid,.entry-content,.post-content,.page-content,\n  .site-content,.content-area,#content,#primary,main,article {\n    max-width:100% !important; overflow:visible !important;\n  }\n  #atc-loading { display:flex; align-items:center; gap:12px; padding:30px 20px; color:#718096; font-size:15px; }\n  .atc-spinner { width:24px; height:24px; border:3px solid #e2e8f0; border-top-color:#e53e3e; border-radius:50%; animation:atcspin .8s linear infinite; flex-shrink:0; }\n  @keyframes atcspin { to { transform:rotate(360deg); } }\n\n  .atc-section-title { font-size:15px; font-weight:700; color:#2d3748; margin:20px 0 10px 0; padding-bottom:6px; border-bottom:2px solid #e53e3e; display:flex; align-items:center; gap:8px; }\n  .atc-icon { background:#e53e3e; color:#fff; border-radius:6px; padding:2px 8px; font-size:11px; font-weight:600; }\n\n  .atc-table-wrap { overflow-x:auto; width:100%; border-radius:8px; box-shadow:0 1px 4px rgba(0,0,0,.07); margin-bottom:6px; -webkit-overflow-scrolling:touch; }\n  .atc-table { width:100%; border-collapse:collapse; background:#fff; }\n  .atc-table thead tr { background:#2d3748; }\n  .atc-table th { padding:10px 12px; text-align:left; font-size:12px; font-weight:600; color:#fff; white-space:nowrap; letter-spacing:.4px; text-transform:uppercase; cursor:pointer; user-select:none; }\n  .atc-table th:hover { background:#4a5568; }\n  .atc-table td { padding:8px 12px; border-bottom:1px solid #edf2f7; font-size:13px; vertical-align:middle; }\n  .atc-table tbody tr:nth-child(even) td { background:#f7fafc; }\n  .atc-table tbody tr:nth-child(odd) td { background:#ffffff; }\n  .atc-table tbody tr:hover td { background:#ebf8ff !important; }\n  .atc-table tbody tr:last-child td { border-bottom:none; }\n  .atc-table a { color:#e53e3e; text-decoration:none; font-weight:500; }\n  .atc-table a:hover { text-decoration:underline; }\n\n  @media (max-width:768px) {\n    .atc-table thead { display:none; }\n    .atc-table tbody tr { display:block; margin-bottom:12px; border:1px solid #e2e8f0; border-radius:8px; overflow:hidden; }\n    .atc-table tbody td { display:flex; justify-content:space-between; align-items:center; padding:7px 12px; border-bottom:1px solid #f0f0f0; font-size:12px; background:#fff !important; }\n    .atc-table tbody td:before { content:attr(data-label); font-weight:600; color:#718096; margin-right:8px; min-width:100px; flex-shrink:0; }\n  }\n\n  .atc-search-wrap { display:flex; gap:10px; align-items:center; margin-bottom:12px; flex-wrap:wrap; }\n  .atc-suche { flex:1; min-width:200px; max-width:400px; padding:10px 14px; border:1px solid #e2e8f0; border-radius:8px; font-size:13px; outline:none; transition:border-color .2s, box-shadow .2s; }\n  .atc-suche:focus { border-color:#e53e3e; box-shadow:0 0 0 3px rgba(229,62,62,.1); }\n  .atc-count { font-size:12px; color:#718096; white-space:nowrap; }\n  .atc-footer { font-size:11px; color:#a0aec0; text-align:right; margin-top:8px; }\n<\/style>\n\n<div id=\"atc-outer\">\n  <div id=\"atc-loading\"><div class=\"atc-spinner\"><\/div> Daten werden geladen\u2026<\/div>\n  <div id=\"atc-inhalt\" style=\"display:none;\">\n\n    <div class=\"atc-section-title\"><span class=\"atc-icon\">&#x1f48a;<\/span> Lieferengp\u00e4sse nach ATC-Code<\/div>\n    <div class=\"atc-search-wrap\">\n      <input type=\"text\" class=\"atc-suche\" id=\"atc-suche\" placeholder=\"&#x1f50d; ATC-Code oder Bezeichnung suchen\u2026\">\n      <span class=\"atc-count\" id=\"atc-count\"><\/span>\n    <\/div>\n    <div class=\"atc-table-wrap\">\n      <table class=\"atc-table\" style=\"min-width:400px;\">\n        <thead><tr>\n          <th onclick=\"atcSort('cdval')\">ATC Stufe 2 &#x2195;<\/th>\n          <th onclick=\"atcSort('dscrd')\">Bezeichnung &#x2195;<\/th>\n          <th onclick=\"atcSort('anzahl')\" style=\"text-align:center;\">Anzahl &#x2195;<\/th>\n        <\/tr><\/thead>\n        <tbody id=\"atc-tbody\"><\/tbody>\n      <\/table>\n    <\/div>\n    <div class=\"atc-footer\">Daten werden w\u00f6chentlich aktualisiert \u00b7 drugshortage.ch<\/div>\n\n  <\/div>\n<\/div>\n\n<script>\nconst ATC_BASE = \"https:\/\/www.drugshortage.ch\";\nconst ATC_API  = ATC_BASE + \"\/api_engpaesse.php\";\n\nlet atcAlle        = [];\nlet atcSortFeld    = \"anzahl\";\nlet atcAufsteigend = false;\n\nasync function ladeNachATC() {\n  try {\n    const res = await fetch(ATC_API);\n    const d   = await res.json();\n    if (d.fehler) {\n      document.getElementById(\"atc-loading\").innerHTML =\n        \"<div style='color:#c53030;padding:20px;background:#fff5f5;border-radius:8px;width:100%;'>&#x26a0;&#xfe0f; \" + d.fehler + \"<\/div>\";\n      return;\n    }\n\n    atcAlle = d.atcGruppen || [];\n    \/\/ Standardm\u00e4ssig nach Anzahl absteigend sortieren\n    atcAlle.sort(function(a, b) { return (b.anzahl||0) - (a.anzahl||0); });\n    atcZeige(atcAlle);\n\n    document.getElementById(\"atc-loading\").style.display = \"none\";\n    document.getElementById(\"atc-inhalt\").style.display  = \"block\";\n\n    document.getElementById(\"atc-suche\").addEventListener(\"input\", function() {\n      const q = this.value.toLowerCase();\n      atcZeige(q ? atcAlle.filter(function(a) {\n        return (a.cdval||\"\").toLowerCase().includes(q) || (a.dscrd||\"\").toLowerCase().includes(q);\n      }) : atcAlle);\n    });\n\n  } catch(err) {\n    document.getElementById(\"atc-loading\").innerHTML =\n      \"<div style='color:#c53030;padding:20px;background:#fff5f5;border-radius:8px;width:100%;'>&#x274c; Fehler: \" + err + \"<\/div>\";\n  }\n}\n\nfunction atcZeige(daten) {\n  const tbody = document.getElementById(\"atc-tbody\");\n  const count = document.getElementById(\"atc-count\");\n  tbody.innerHTML = \"\";\n  count.textContent = daten.length + \" Gruppen\";\n  daten.forEach(function(a) {\n    const tr  = document.createElement(\"tr\");\n    const url = ATC_BASE + \"\/index.php\/lieferengpaesse-nach-atc\/?ATC=\" + encodeURIComponent(a.cdval || \"\");\n    tr.innerHTML =\n      \"<td data-label='ATC'><a href='\" + url + \"' target='_blank'><strong>\" + (a.cdval || \"\u2013\") + \"<\/strong><\/a><\/td>\" +\n      \"<td data-label='Bezeichnung'>\" + (a.dscrd || \"\u2013\") + \"<\/td>\" +\n      \"<td style='text-align:center;font-weight:600;color:#e53e3e;' data-label='Anzahl'>\" + (a.anzahl || \"\u2013\") + \"<\/td>\";\n    tbody.appendChild(tr);\n  });\n}\n\nfunction atcSort(feld) {\n  atcAufsteigend = (atcSortFeld === feld) ? !atcAufsteigend : (feld !== \"anzahl\");\n  atcSortFeld    = feld;\n  const q = document.getElementById(\"atc-suche\").value.toLowerCase();\n  const liste = q ? atcAlle.filter(function(a) {\n    return (a.cdval||\"\").toLowerCase().includes(q) || (a.dscrd||\"\").toLowerCase().includes(q);\n  }) : atcAlle.slice();\n  liste.sort(function(a, b) {\n    if (feld === \"anzahl\") return atcAufsteigend ? (a.anzahl||0)-(b.anzahl||0) : (b.anzahl||0)-(a.anzahl||0);\n    const va = (a[feld]||\"\").toLowerCase();\n    const vb = (b[feld]||\"\").toLowerCase();\n    return atcAufsteigend ? va.localeCompare(vb) : vb.localeCompare(va);\n  });\n  atcZeige(liste);\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", ladeNachATC);\n<\/script>\n\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Daten werden geladen\u2026 &#x1f48a; Lieferengp\u00e4sse nach ATC-Code ATC Stufe 2 &#x2195; Bezeichnung &#x2195; Anzahl &#x2195; Daten werden w\u00f6chentlich aktualisiert \u00b7 drugshortage.ch<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-21337","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/comments?post=21337"}],"version-history":[{"count":1,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21337\/revisions"}],"predecessor-version":[{"id":21339,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21337\/revisions\/21339"}],"wp:attachment":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/media?parent=21337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}