{"id":21165,"date":"2026-05-20T12:38:55","date_gmt":"2026-05-20T10:38:55","guid":{"rendered":"https:\/\/www.drugshortage.ch\/?page_id=21165"},"modified":"2026-06-22T22:53:51","modified_gmt":"2026-06-22T20:53:51","slug":"uebersicht-3","status":"publish","type":"page","link":"https:\/\/www.drugshortage.ch\/","title":{"rendered":"\u00dcbersicht"},"content":{"rendered":"\n<!-- ============================================================\n     ANLEITUNG: In WordPress als \"Benutzerdefiniertes HTML\"-Block einf\u00fcgen.\n     ============================================================ -->\n<style>\n  #le-outer { width:100%; box-sizing:border-box; \/* width overridden by breakout below *\/ font-family:'Segoe UI',Arial,sans-serif; font-size:13px; color:#2d3748; }\n\n  \/* \u2500\u2500 Volle Seitenbreite nutzen \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  @media (min-width:1200px) {\n    #le-outer {\n      width: 100vw;\n      position: relative;\n      left: 50%;\n      right: 50%;\n      margin-left: -50vw;\n      margin-right: -50vw;\n      padding: 0 40px;\n      box-sizing: border-box;\n    }\n  }\n  \/* WordPress-Container aufbrechen \u2192 volle Bildschirmbreite nutzen *\/\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    background:transparent !important;\n    border:none !important;\n    box-shadow:none !important;\n    padding:0 !important;\n  }\n  #le-outer {\n    width: 100vw !important;\n    position: relative;\n    left: 50%;\n    right: 50%;\n    margin-left: -50vw !important;\n    margin-right: -50vw !important;\n    padding: 0 24px;\n    box-sizing: border-box;\n  }\n\n  \/* Ladeanimation *\/\n  #le-loading { display:flex; align-items:center; gap:12px; padding:30px 20px; color:#718096; font-size:15px; }\n  .le-spinner { width:24px; height:24px; border:3px solid #e2e8f0; border-top-color:#e53e3e; border-radius:50%; animation:spin .8s linear infinite; flex-shrink:0; }\n  @keyframes spin { to { transform:rotate(360deg); } }\n\n  \/* Kennzahlen-Karten *\/\n  .le-karten { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:16px; }\n  .le-karte { flex:1; min-width:160px; background:#fff; border:1px solid #e2e8f0; border-radius:10px; padding:16px 20px; box-shadow:0 1px 4px rgba(0,0,0,.06); }\n  .le-karte-zahl { font-size:32px; font-weight:700; color:#e53e3e; line-height:1.1; }\n  .le-karte-label { font-size:12px; color:#718096; margin-top:4px; line-height:1.4; }\n  .le-karte-hinweis { font-size:10px; color:#a0aec0; margin-top:6px; font-style:italic; }\n\n  \/* Abschnittstitel *\/\n  .le-section-title { font-size:15px; font-weight:700; color:#2d3748; margin:28px 0 10px 0; padding-bottom:6px; border-bottom:2px solid #e53e3e; display:flex; align-items:center; gap:8px; }\n  .le-icon { background:#e53e3e; color:#fff; border-radius:6px; padding:2px 8px; font-size:11px; font-weight:600; }\n\n  \/* Sprach-Banner *\/\n  .le-lang-banner { background:#ebf8ff; border:1px solid #bee3f8; border-radius:8px; padding:10px 14px; font-size:13px; color:#2b6cb0; margin-bottom:16px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }\n  .le-lang-banner a { color:#2b6cb0; font-weight:600; text-decoration:none; border:1px solid #2b6cb0; padding:4px 10px; border-radius:6px; white-space:nowrap; }\n  .le-lang-banner a:hover { background:#2b6cb0; color:#fff; }\n\n  \/* Tabellen-Wrapper *\/\n  .le-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\n  \/* Tabellen *\/\n  .le-table { width:100%; border-collapse:collapse; background:#fff; }\n  .le-table thead tr { background:#2d3748; }\n  .le-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; }\n  .le-table th.le-sortable { cursor:pointer; user-select:none; }\n  .le-table th.le-sortable:hover { background:#4a5568; }\n  .le-table td { padding:8px 12px; border-bottom:1px solid #edf2f7; font-size:13px; vertical-align:middle; }\n  .le-table tbody tr:nth-child(even) td { background:#f7fafc; }\n  .le-table tbody tr:nth-child(odd) td { background:#ffffff; }\n  .le-table tbody tr:hover td { background:#ebf8ff !important; }\n  .le-table tbody tr:last-child td { border-bottom:none; }\n  .le-table a { color:#e53e3e; text-decoration:none; font-weight:500; }\n  .le-table a:hover { text-decoration:underline; }\n\n  \/* Mobile Tabellen *\/\n  @media (max-width:768px) {\n    .le-table-mobile thead { display:none; }\n    .le-table-mobile tbody tr {\n      display:block; margin-bottom:12px;\n      border:1px solid #e2e8f0; border-radius:8px;\n      overflow:hidden; box-shadow:0 1px 3px rgba(0,0,0,.06);\n    }\n    .le-table-mobile tbody td {\n      display:flex; justify-content:space-between; align-items:center;\n      padding:7px 12px; border-bottom:1px solid #f0f0f0; font-size:12px;\n      background:#fff !important;\n    }\n    .le-table-mobile tbody td:before {\n      content:attr(data-label);\n      font-weight:600; color:#718096;\n      margin-right:8px; min-width:110px; flex-shrink:0;\n    }\n    .le-table-mobile tbody tr:nth-child(even) td { background:#f7fafc !important; }\n  }\n\n  \/* Bewertungs-Badges *\/\n  .le-bew { display:inline-block; width:26px; height:26px; border-radius:6px; text-align:center; line-height:26px; font-weight:700; font-size:13px; }\n  .le-b1 { background:#276749; color:#fff; }\n  .le-b2 { background:#9ae6b4; color:#276749; }\n  .le-b3 { background:#dd6b20; color:#fff; }\n  .le-b4 { background:#c53030; color:#fff; }\n  .le-b5 { background:#ecc94b; color:#744210; }\n  .le-b6 { background:#2b6cb0; color:#fff; }\n\n  \/* Legende *\/\n  .le-legende-box { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; padding:12px 14px; background:#f7fafc; border:1px solid #e2e8f0; border-radius:8px; }\n  .le-legende-item { display:flex; align-items:center; gap:7px; font-size:12px; color:#4a5568; }\n\n  \/* Info-Boxen *\/\n  .le-wichtig { background:#fff5f5; border-left:4px solid #e53e3e; border-radius:0 8px 8px 0; padding:10px 14px; font-size:13px; color:#742a2a; line-height:1.6; margin-bottom:12px; }\n  .le-hinweis { background:#fffbeb; border:1px solid #fbd38d; border-radius:8px; padding:10px 14px; font-size:13px; color:#744210; line-height:1.6; margin-bottom:12px; }\n\n  \/* Suchfeld *\/\n  .le-search-wrap { display:flex; gap:10px; align-items:center; margin-bottom:12px; flex-wrap:wrap; }\n  #le-suche {\n    flex:1; min-width:200px; max-width:500px;\n    padding:10px 14px; border:1px solid #e2e8f0; border-radius:8px;\n    font-size:13px; box-sizing:border-box; outline:none;\n    transition:border-color .2s, box-shadow .2s;\n  }\n  #le-suche:focus { border-color:#e53e3e; box-shadow:0 0 0 3px rgba(229,62,62,.1); }\n  .le-search-count { font-size:12px; color:#718096; white-space:nowrap; }\n\n  \/* Footer *\/\n  .le-fussnote { font-size:13px; color:#718096; margin:6px 0; line-height:1.5; }\n  .le-footer { font-size:11px; color:#a0aec0; text-align:right; margin-top:8px; }\n\n  \/* Keine Resultate *\/\n  .le-no-results { padding:20px; text-align:center; color:#718096; font-style:italic; }\n\n  \/* \u2500\u2500 Responsive: grosse Bildschirme \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  @media (min-width:1200px) {\n    \/* Tabellen f\u00fcllen volle Breite, kein fixes Layout *\/\n    .le-table.le-table-main   { width:100%; min-width:unset; }\n    .le-table.le-table-zahlen { width:100%; min-width:unset; }\n    \/* Bezeichnung etwas mehr Platz geben *\/\n    .le-table.le-table-main td:first-child,\n    .le-table.le-table-main th:first-child { min-width:160px; }\n  }\n\n  \/* \u2500\u2500 Abonnieren-Button \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .le-abo-btn {\n    display:inline-block; padding:3px 8px; font-size:11px; font-weight:600;\n    border:1px solid #e53e3e; color:#e53e3e; border-radius:5px;\n    cursor:pointer; background:#fff; white-space:nowrap;\n    transition:background .15s, color .15s;\n  }\n  .le-abo-btn:hover { background:#e53e3e; color:#fff; }\n  .le-abo-btn.abonniert { border-color:#276749; color:#276749; cursor:default; }\n  .le-abo-btn.abonniert:hover { background:#fff; color:#276749; }\n\n  \/* \u2500\u2500 Abo-Toast \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  #le-abo-toast {\n    position:fixed; bottom:24px; right:24px; z-index:9999;\n    background:#2d3748; color:#fff; padding:12px 20px; border-radius:8px;\n    font-size:13px; box-shadow:0 4px 12px rgba(0,0,0,.2);\n    display:none; max-width:340px; line-height:1.5;\n  }\n  #le-abo-toast a { color:#fc8181; font-weight:600; }\n<\/style>\n\n<div id=\"le-outer\">\n  <div id=\"le-loading\"><div class=\"le-spinner\"><\/div> Daten werden geladen\u2026<\/div>\n  <div id=\"le-inhalt\" style=\"display:none;\">\n\n    <!-- Sprach-Banner -->\n    <div class=\"le-lang-banner\" id=\"le-lang-banner\" style=\"display:none;\">\n      &#x1f310; Cette page est \u00e9galement disponible en fran\u00e7ais et en italien.\n      <a href=\"https:\/\/www.drugshortage.ch\/index.php\/les-penuries-actuelles-de-medicaments-en-suisse\/\">&#x1f1eb;&#x1f1f7; Version fran\u00e7aise \u2192<\/a>\n      &nbsp;|&nbsp;\n      <a href=\"https:\/\/www.drugshortage.ch\/index.php\/penuria-farmaci\/\">&#x1f1ee;&#x1f1f9; Versione italiana \u2192<\/a>\n    <\/div>\n\n    <!-- 1. Kennzahlen-Karten -->\n    <div class=\"le-section-title\"><span class=\"le-icon\">&#x1f4ca;<\/span> \u00dcbersicht offene Lieferengp\u00e4sse<\/div>\n\n    <!-- Reihe 1 -->\n    <div class=\"le-karten\">\n      <div class=\"le-karte\">\n        <div class=\"le-karte-zahl\" id=\"le-packungen\">\u2013<\/div>\n        <div class=\"le-karte-label\">alle Meldungen (Packungen)<\/div>\n      <\/div>\n      <div class=\"le-karte\">\n        <div class=\"le-karte-zahl\" id=\"le-packungen-status1\">\u2013<\/div>\n        <div class=\"le-karte-label\">nicht lieferbare Packungen (Status 1)<\/div>\n      <\/div>\n      <div class=\"le-karte\">\n        <div class=\"le-karte-zahl\" id=\"le-wirkstoffe\">\u2013<\/div>\n        <div class=\"le-karte-label\">betroffene Wirkstoffe (ATC-Gruppen)<\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Reihe 2 -->\n    <div class=\"le-karten\" style=\"margin-top:0;\">\n      <div class=\"le-karte\">\n        <div class=\"le-karte-zahl\" id=\"le-produkte\">\u2013<\/div>\n        <div class=\"le-karte-label\">total betroffene Produkte \/ Dosierungen<\/div>\n        <div class=\"le-karte-hinweis\">* unabh\u00e4ngig von Packungsgr\u00f6ssen (20er + 100er = 1 Produkt)<\/div>\n      <\/div>\n      <div class=\"le-karte\">\n        <div class=\"le-karte-zahl\" id=\"le-produkte-status1\">\u2013<\/div>\n        <div class=\"le-karte-label\">nicht lieferbare Produkte \/ Dosierungen (Status 1)<\/div>\n        <div class=\"le-karte-hinweis\">* unabh\u00e4ngig von Packungsgr\u00f6ssen<\/div>\n      <\/div>\n      <div class=\"le-karte\">\n        <div class=\"le-karte-zahl\" id=\"le-eingeschraenkt\">\u2013<\/div>\n        <div class=\"le-karte-label\">Versorgung aus Pflichtlager, mit ausl\u00e4ndischer Aufmachung oder kontingentiert. Angek\u00fcndigte Lieferengp\u00e4sse.<\/div>\n      <\/div>\n    <\/div>\n\n    <p class=\"le-fussnote\">\n      Die \u00dcbersicht \u00fcber fehlende Wirkstoffdosierungen unabh\u00e4ngig von Firma und Packungsgr\u00f6sse finden Sie\n      <a href=\"https:\/\/www.drugshortage.ch\/index.php\/versorgungsengpaesse-2\/\" target=\"_blank\" style=\"color:#e53e3e;font-weight:600;\">hier<\/a>.\n    <\/p>\n\n    <!-- 2. Aktuelle Zahlen -->\n    <div class=\"le-section-title\"><span class=\"le-icon\">&#x2197;<\/span> Ein paar Zahlen<\/div>\n    <div class=\"le-table-wrap\">\n      <table class=\"le-table le-table-zahlen\" style=\"min-width:900px;\">\n        <thead><tr>\n          <th>Pflichtlager<\/th>\n          <th>BWL<\/th><th>BWL\/WHO<\/th><th>WHO<\/th>\n          <th>Kassenpflichtig (SL)<\/th>\n          <th>% SL nicht lieferbar<\/th>\n          <th>&lt; 2 Wochen<\/th><th>2\u20136 Wochen<\/th><th>&gt;6 Wo \u2013 \u00bd Jahr<\/th>\n          <th>\u00bd \u2013 1 Jahr<\/th><th>1 \u2013 2 Jahre<\/th><th>&gt; 2 Jahre<\/th>\n        <\/tr><\/thead>\n        <tbody id=\"le-aktuell\"><\/tbody>\n      <\/table>\n    <\/div>\n    <p class=\"le-fussnote\">*BWL: Liste Bundesamt f\u00fcr wirtschaftl. Landesversorgung &nbsp;\u00b7&nbsp; WHO: WHO List of essential drugs &nbsp;\u00b7&nbsp; BWL\/WHO: auf beiden Listen<\/p>\n\n    <!-- 3. Swissmedic-Kategorien -->\n    <p class=\"le-fussnote\" style=\"margin-top:14px;\">Swissmedic-Kategorien:<\/p>\n    <div class=\"le-table-wrap\" style=\"max-width:400px;\">\n      <table class=\"le-table\">\n        <thead><tr>\n          <th style=\"text-align:center;\">Liste A<\/th>\n          <th style=\"text-align:center;\">Liste B<\/th>\n          <th style=\"text-align:center;\">Liste C<\/th>\n          <th style=\"text-align:center;\">\u00fcbrige<\/th>\n        <\/tr><\/thead>\n        <tbody id=\"le-smcat\"><\/tbody>\n      <\/table>\n    <\/div>\n\n    <!-- 4. Bewertungslegende -->\n    <div class=\"le-section-title\"><span class=\"le-icon\">&#x1f3ed;<\/span> Bewertung der Firmenmeldungen<\/div>\n    <div class=\"le-legende-box\" id=\"le-legende\"><\/div>\n    <p class=\"le-fussnote\">\n      Detailansicht: \n      <a href=\"https:\/\/www.drugshortage.ch\/index.php\/uebersicht-nach-firmen\/\" style=\"color:#e53e3e;font-weight:600;\">Nach Firmen \u2192<\/a>\n      &nbsp;\u00b7&nbsp;\n      <a href=\"https:\/\/www.drugshortage.ch\/index.php\/uebersicht-nach-atc\/\" style=\"color:#e53e3e;font-weight:600;\">Nach ATC-Code \u2192<\/a>\n    <\/p>\n\n    <!-- 5. Nach Pr\u00e4paraten -->\n    <div class=\"le-section-title\"><span class=\"le-icon\">&#x1f4cb;<\/span> Nach Pr\u00e4paraten<\/div>\n    <div class=\"le-wichtig\">\n      <strong>Wichtig:<\/strong> Bei Firmen der Kategorie 1+2+6 sind Produkte m\u00f6glicherweise noch bei Grossisten verf\u00fcgbar.\n      Bei Firmen, die nicht selber melden (Kategorie 3, 4 und 5) stammen die Meldungen in der Regel von Usern.\n      Diese Meldungen spiegeln die Situation deren Bestellm\u00f6glichkeiten. Es ist m\u00f6glich, dass die Firmen oder andere Grossisten noch Ware haben. Das ist im Einzelfall zu kl\u00e4ren.\n    <\/div>\n    <div class=\"le-hinweis\">\n      Die aufgef\u00fchrten Lieferengp\u00e4sse stammen von Firmen oder der Beh\u00f6rde (BWL) und bei Firmen ohne exklusiven Zugang aus freiwilligen Meldungen von Usern.\n      Diese sind auch verantwortlich f\u00fcr das Update der Meldungen. Die Angaben haben keinen Anspruch auf Vollst\u00e4ndigkeit.<br>\n      F\u00fcr vollst\u00e4ndige Informationen wenden Sie sich bitte an die zust\u00e4ndige Firma.<br>\n      Die verlinkten Alternativen sind von einer Fachperson kritisch zu pr\u00fcfen. Sie ergeben sich via eine automatisierte Abfrage aus dem ATC Code, dem Verabreichungsweg und der Lieferf\u00e4higkeit.\n    <\/div>\n\n    <!-- Suchfeld mit Z\u00e4hler -->\n    <div class=\"le-search-wrap\">\n      <input type=\"text\" id=\"le-suche\" placeholder=\"&#x1f50d;  Suche nach Bezeichnung oder Firma\u2026\">\n      <span class=\"le-search-count\" id=\"le-count\"><\/span>\n    <\/div>\n\n    <div class=\"le-table-wrap\">\n      <table class=\"le-table le-table-main\" style=\"min-width:1300px;\">\n        <thead><tr>\n          <th class=\"le-sortable\" onclick=\"sortiere('bezeichnung')\">Bezeichnung &#x2195;<\/th>\n          <th class=\"le-sortable\" onclick=\"sortiere('bewertung')\" style=\"text-align:center;\">Bew. &#x2195;<\/th>\n          <th class=\"le-sortable\" onclick=\"sortiere('lieferdatum')\">Lieferf\u00e4higkeit &#x2195;<\/th>\n          <th>M\u00f6gliche Alternativen<\/th>\n          <th>Abonnieren<\/th>\n          <th>Status<\/th>\n          <th class=\"le-sortable\" onclick=\"sortiere('mutation')\">Letzte Mutation &#x2195;<\/th>\n          <th class=\"le-sortable\" onclick=\"sortiere('firma')\">Firma &#x2195;<\/th>\n          <th>GTIN<\/th>\n          <th>Pharmacode<\/th>\n          <th class=\"le-sortable\" onclick=\"sortiere('tage')\" style=\"text-align:center;\">Tage &#x2195;<\/th>\n          <th>ATC<\/th>\n        <\/tr><\/thead>\n        <tbody id=\"le-tbody\"><\/tbody>\n      <\/table>\n    <\/div>\n    <div class=\"le-footer\">Daten werden w\u00f6chentlich aktualisiert \u00b7 drugshortage.ch<\/div>\n\n  <\/div><!-- \/le-inhalt -->\n<div id=\"le-abo-toast\"><\/div>\n<\/div><!-- \/le-outer -->\n\n<script>\n\/\/ \u2500\u2500 Sprachweiterleitung \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\/\/ fr\/it Browser \u2192 automatisch zur franz\u00f6sischen Version weiterleiten,\n\/\/ ausser wenn ?lang=de explizit gesetzt ist (R\u00fcckkehr von FR-Seite).\n(function() {\n  const params = new URLSearchParams(window.location.search);\n  if (params.get('lang') === 'de') {\n    \/\/ Explizit DE gew\u00e4hlt \u2192 Banner anzeigen, nicht weiterleiten\n    document.addEventListener('DOMContentLoaded', function() {\n      var banner = document.getElementById('le-lang-banner');\n      if (banner) banner.style.display = 'flex';\n    });\n    return;\n  }\n  const lang = (navigator.language || navigator.userLanguage || '').toLowerCase();\n  if (lang.startsWith('fr')) {\n    window.location.replace('https:\/\/www.drugshortage.ch\/index.php\/les-penuries-actuelles-de-medicaments-en-suisse\/');\n  } else if (lang.startsWith('it')) {\n    window.location.replace('https:\/\/www.drugshortage.ch\/index.php\/penuria-farmaci\/');\n  }\n})();\n\nconst BASE    = \"https:\/\/www.drugshortage.ch\";\nconst API_URL = \"https:\/\/www.drugshortage.ch\/ds.php?a=engpaesse\";\n\nlet alleDaten    = [];\nlet sortiereNach = \"bezeichnung\";\nlet aufsteigend  = true;\n\nasync function ladeDaten() {\n  try {\n    const res = await fetch(API_URL, {headers: {'X-Requested-With': 'XMLHttpRequest'}});\n    const d   = await res.json();\n\n    if (d.fehler) {\n      document.getElementById(\"le-loading\").innerHTML =\n        \"<div style='color:#c53030;padding:20px;background:#fff5f5;border-radius:8px;width:100%;'>\" +\n        \"<strong>&#x26a0;&#xfe0f; Fehler in der API:<\/strong><br>\" + d.fehler + \"<\/div>\";\n      return;\n    }\n\n    \/\/ 1. Kennzahlen\n    document.getElementById(\"le-packungen\").textContent          = v(d.anzahlPackungen);\n    document.getElementById(\"le-packungen-status1\").textContent  = v(d.anzahlPackungenStatus1);\n    document.getElementById(\"le-wirkstoffe\").textContent         = (d.wirkstoffe && d.wirkstoffe.length > 0) ? v(d.wirkstoffe[0].wirkstoffe) : \"\u2013\";\n    document.getElementById(\"le-eingeschraenkt\").textContent     = v(d.anzahlEingeschraenkt);\n    document.getElementById(\"le-produkte\").textContent           = v(d.anzahlProdukte);\n    document.getElementById(\"le-produkte-status1\").textContent   = v(d.anzahlProdukteStatus1);\n\n    \/\/ 2. Aktuelle Zahlen\n    const aTbody = document.getElementById(\"le-aktuell\");\n    (d.aktuelleZahlen || []).forEach(function(z) {\n      const tr = document.createElement(\"tr\");\n      tr.innerHTML =\n        \"<td style='text-align:center;font-weight:600;'>\" + v(z.pflichtlager) + \"<\/td>\" +\n        \"<td style='text-align:center;font-weight:600;'>\" + v(z.bwl)          + \"<\/td>\" +\n        \"<td style='text-align:center;font-weight:600;'>\" + v(z.bwlWho)       + \"<\/td>\" +\n        \"<td style='text-align:center;font-weight:600;'>\" + v(z.who)          + \"<\/td>\" +\n        \"<td style='text-align:center;font-weight:600;'>\" + v(z.sl)           + \"<\/td>\" +\n        \"<td style='text-align:center;color:#e53e3e;font-weight:700;'>\" + v(z.slProzent) + \"<\/td>\" +\n        \"<td style='text-align:center;'>\" + v(z.lt2w)    + \"<\/td>\" +\n        \"<td style='text-align:center;'>\" + v(z.w2bis6)  + \"<\/td>\" +\n        \"<td style='text-align:center;'>\" + v(z.w6bis26) + \"<\/td>\" +\n        \"<td style='text-align:center;'>\" + v(z.m6bis12) + \"<\/td>\" +\n        \"<td style='text-align:center;'>\" + v(z.j1bis2)  + \"<\/td>\" +\n        \"<td style='text-align:center;'>\" + v(z.gt2j)    + \"<\/td>\";\n      aTbody.appendChild(tr);\n    });\n\n    \/\/ 3. Swissmedic\n    const smTbody = document.getElementById(\"le-smcat\");\n    (d.smcat || []).forEach(function(s) {\n      const tr = document.createElement(\"tr\");\n      tr.innerHTML =\n        \"<td style='text-align:center;font-weight:600;'>\" + v(s.listeA)  + \"<\/td>\" +\n        \"<td style='text-align:center;font-weight:600;'>\" + v(s.listeB)  + \"<\/td>\" +\n        \"<td style='text-align:center;font-weight:600;'>\" + v(s.listeC)  + \"<\/td>\" +\n        \"<td style='text-align:center;font-weight:600;'>\" + v(s.uebrige) + \"<\/td>\";\n      smTbody.appendChild(tr);\n    });\n\n    \/\/ 4. Legende\n    const legDiv = document.getElementById(\"le-legende\");\n    (d.bewertungLegende || []).forEach(function(b) {\n      const item = document.createElement(\"div\");\n      item.className = \"le-legende-item\";\n      item.innerHTML =\n        \"<span class='le-bew le-b\" + b.ident + \"'>\" + b.ident + \"<\/span>\" +\n        \"<span><strong>\" + (b.bewertung || \"\") + \"<\/strong> \u2013 \" + (b.artMeldung || \"\") + \"<\/span>\";\n      legDiv.appendChild(item);\n    });\n\n    \/\/ 5. Pr\u00e4parate\n    alleDaten = d.engpaesse || [];\n    zeigeTabelle(alleDaten);\n\n    document.getElementById(\"le-loading\").style.display = \"none\";\n    document.getElementById(\"le-inhalt\").style.display  = \"block\";\n\n  } catch(err) {\n    document.getElementById(\"le-loading\").innerHTML =\n      \"<div style='color:#c53030;padding:20px;background:#fff5f5;border-radius:8px;width:100%;'>&#x274c; Fehler beim Laden. Bitte Seite neu laden.<br><small style='color:#718096;'>\" + err + \"<\/small><\/div>\";\n  }\n}\n\nfunction zeigeTabelle(daten) {\n  const tbody = document.getElementById(\"le-tbody\");\n  const count = document.getElementById(\"le-count\");\n  tbody.innerHTML = \"\";\n  count.textContent = daten.length + \" Eintr\u00e4ge\";\n  if (!daten.length) {\n    tbody.innerHTML = \"<tr><td colspan='11' class='le-no-results'>Keine Eintr\u00e4ge gefunden.<\/td><\/tr>\";\n    return;\n  }\n  daten.forEach(function(e) {\n    const tr = document.createElement(\"tr\");\n    const detailUrl = BASE + \"\/index.php\/detail-lieferengpass\/?ID=\" + e.id;\n    const altUrl    = BASE + \"\/index.php\/alternativen\/?GTIN=\" + encodeURIComponent(e.gtin || \"\");\n    tr.innerHTML =\n      \"<td data-label='Bezeichnung' style='white-space:nowrap;'><a href='\" + detailUrl + \"' target='_blank'>\" + (e.bezeichnung || \"\u2013\") + \"<\/a><\/td>\" +\n      \"<td data-label='Bew.' style='text-align:center;'><span class='le-bew le-b\" + (e.bewertung||0) + \"'>\" + (e.bewertung || \"\u2013\") + \"<\/span><\/td>\" +\n      \"<td data-label='Lieferf\u00e4higkeit' style='white-space:nowrap;'>\" + datum(e.lieferdatum) + \"<\/td>\" +\n      \"<td data-label='Alternativen'><a href='\" + altUrl + \"' target='_blank' style='font-size:11px;border:1px solid #e53e3e;padding:2px 7px;border-radius:4px;white-space:nowrap;'>Alternativen \u2192<\/a><\/td>\" +\n      \"<td data-label='Abonnieren' style='text-align:center;'>\" + aboBtn(e) + \"<\/td>\" +\n      \"<td data-label='Status' style='white-space:nowrap;font-size:11px;'>\" + (e.status || \"\u2013\") + \"<\/td>\" +\n      \"<td data-label='Letzte Mutation' style='white-space:nowrap;color:#718096;'>\" + datum(e.mutation) + \"<\/td>\" +\n      \"<td data-label='Firma' style='white-space:nowrap;'>\" + (e.firma || \"\u2013\") + \"<\/td>\" +\n      \"<td data-label='GTIN' style='color:#a0aec0;font-size:11px;'>\" + (e.gtin || \"\u2013\") + \"<\/td>\" +\n      \"<td data-label='Pharmacode' style='color:#a0aec0;font-size:11px;text-align:center;'>\" + (e.pharmacode || \"\u2013\") + \"<\/td>\" +\n      \"<td data-label='Tage' style='text-align:center;font-weight:600;'>\" + v(e.tage) + \"<\/td>\" +\n      \"<td data-label='ATC' style='color:#4a5568;font-size:11px;'>\" + (e.atc || \"\u2013\") + \"<\/td>\";\n    tbody.appendChild(tr);\n  });\n}\n\nfunction sortiere(feld) {\n  aufsteigend  = (sortiereNach === feld) ? !aufsteigend : true;\n  sortiereNach = feld;\n  const q     = document.getElementById(\"le-suche\").value.toLowerCase();\n  const liste = filtern(q);\n  liste.sort(function(a, b) {\n    if (feld === \"tage\") return aufsteigend ? (a.tage||0)-(b.tage||0) : (b.tage||0)-(a.tage||0);\n    const va = (a[feld]||\"\").toLowerCase();\n    const vb = (b[feld]||\"\").toLowerCase();\n    return aufsteigend ? va.localeCompare(vb) : vb.localeCompare(va);\n  });\n  zeigeTabelle(liste);\n}\n\nfunction filtern(q) {\n  if (!q) return alleDaten.slice();\n  return alleDaten.filter(function(e) {\n    return (e.bezeichnung||\"\").toLowerCase().includes(q) ||\n           (e.firma||\"\").toLowerCase().includes(q) ||\n           (e.atc||\"\").toLowerCase().includes(q) ||\n           (e.gtin||\"\").toLowerCase().includes(q);\n  });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n  document.getElementById(\"le-suche\").addEventListener(\"input\", function() {\n    zeigeTabelle(filtern(this.value.toLowerCase()));\n  });\n  ladeDaten();\n});\n\nfunction v(val)   { return (val !== null && val !== undefined) ? val : \"\u2013\"; }\nfunction datum(s) { return s ? s.substring(0,10) : \"\u2013\"; }\n\n\n\/\/ \u2500\u2500 Token-G\u00fcltigkeitspr\u00fcfung beim Laden \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n(function() {\n  var token = localStorage.getItem('abo_token');\n  if (!token) return;\n  fetch('https:\/\/www.drugshortage.ch\/api\/api_abo_verwaltung.php?action=profil&token=' + encodeURIComponent(token))\n    .then(function(r) { return r.json(); })\n    .then(function(d) {\n      if (!d.ok && d.login) {\n        localStorage.removeItem('abo_token');\n        localStorage.removeItem('abo_email');\n      }\n    })\n    .catch(function() {});\n})();\n\n\/\/ \u2500\u2500 Abonnieren-Funktionen \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst ABO_REG_URL = 'https:\/\/www.drugshortage.ch\/index.php\/abo-registrierung\/';\nconst ABO_API_URL = 'https:\/\/www.drugshortage.ch\/api\/api_abo_verwaltung.php';\n\nfunction aboBtn(e) {\n  return \"<button class='le-abo-btn' data-gtin='\" +\n    e.gtin.replace(\/'\/g,'&#39;') + \"' data-bez='\" +\n    (e.bezeichnung||'').replace(\/'\/g,'&#39;') + \"'>\" +\n    \"&#x1f514; Abo\" +\n    \"<\/button>\";\n}\n\nasync function aboKlick(gtin, bezeichnung, btn) {\n  const token = localStorage.getItem('abo_token');\n\n  if (!token) {\n    \/\/ Nicht eingeloggt \u2192 GTIN merken, zur Registrierung\n    sessionStorage.setItem('abo_pending_gtin', gtin);\n    sessionStorage.setItem('abo_pending_bez',  bezeichnung);\n    window.open(ABO_REG_URL + '?gtin=' + encodeURIComponent(gtin) + '&bez=' + encodeURIComponent(bezeichnung), '_blank');\n    return;\n  }\n\n  \/\/ Eingeloggt \u2192 direkt hinzuf\u00fcgen\n  btn.disabled = true; btn.textContent = '\u2026';\n  try {\n    const res = await fetch(ABO_API_URL + '?action=hinzufuegen&token=' + encodeURIComponent(token), {\n      method: 'POST',\n      headers: {'Content-Type': 'application\/json'},\n      body: JSON.stringify({gtins: [{gtin: gtin, bezeichnung: bezeichnung}]})\n    });\n    const d = await res.json();\n    if (d.ok) {\n      btn.textContent = '\u2713 Abonniert';\n      btn.className = 'le-abo-btn abonniert';\n      btn.disabled = true;\n      aboToast('&#x2705; ' + bezeichnung + ' wurde Ihren Abonnements hinzugef\u00fcgt.');\n    } else if (d.login) {\n      \/\/ Token abgelaufen\n      localStorage.removeItem('abo_token');\n      localStorage.removeItem('abo_email');\n      btn.disabled = false; btn.textContent = '&#x1f514; Abo';\n      aboToast('Ihre Sitzung ist abgelaufen. Bitte melden Sie sich erneut an.<br><a href=\"' + ABO_REG_URL + '?gtin=' + encodeURIComponent(gtin) + '&#038;bez=' + encodeURIComponent(bezeichnung) + '\" target=\"_blank\">Zum Login \u2192<\/a>');\n    } else {\n      btn.disabled = false; btn.textContent = '&#x1f514; Abo';\n      aboToast('&#x26a0;&#xfe0f; ' + (d.message || 'Fehler beim Hinzuf\u00fcgen.'));\n    }\n  } catch(err) {\n    btn.disabled = false; btn.textContent = '&#x1f514; Abo';\n    aboToast('&#x26a0;&#xfe0f; Verbindungsfehler. Bitte erneut versuchen.');\n  }\n}\n\n\/\/ Event-Delegation statt inline onclick\ndocument.addEventListener('click', function(ev) {\n  var btn = ev.target.closest('.le-abo-btn');\n  if (!btn || btn.classList.contains('abonniert') || btn.disabled) return;\n  ev.preventDefault(); ev.stopPropagation();\n  var gtin = btn.getAttribute('data-gtin') || '';\n  var bez  = btn.getAttribute('data-bez')  || '';\n  if (gtin) aboKlick(gtin, bez, btn);\n}, true);\n\nfunction aboToast(msg, dauer) {\n  const t = document.getElementById('le-abo-toast');\n  t.innerHTML = msg;\n  t.style.display = 'block';\n  clearTimeout(t._timer);\n  t._timer = setTimeout(function() { t.style.display = 'none'; }, dauer || 6000);\n}\n\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Daten werden geladen\u2026 &#x1f310; Cette page est \u00e9galement disponible en fran\u00e7ais et en italien. &#x1f1eb;&#x1f1f7; Version fran\u00e7aise \u2192 &nbsp;|&nbsp; &#x1f1ee;&#x1f1f9; Versione italiana \u2192 &#x1f4ca; \u00dcbersicht offene Lieferengp\u00e4sse \u2013 alle Meldungen (Packungen) \u2013 nicht lieferbare Packungen (Status 1) \u2013 betroffene Wirkstoffe (ATC-Gruppen) \u2013 total betroffene Produkte \/ Dosierungen * unabh\u00e4ngig von Packungsgr\u00f6ssen (20er + 100er =&#8230;<\/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-21165","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21165","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=21165"}],"version-history":[{"count":60,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21165\/revisions"}],"predecessor-version":[{"id":21887,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21165\/revisions\/21887"}],"wp:attachment":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/media?parent=21165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}