{"id":21243,"date":"2026-05-20T18:49:11","date_gmt":"2026-05-20T16:49:11","guid":{"rendered":"https:\/\/www.drugshortage.ch\/?page_id=21243"},"modified":"2026-06-22T22:47:42","modified_gmt":"2026-06-22T20:47:42","slug":"les-penuries-actuelles-de-medicaments-en-suisse","status":"publish","type":"page","link":"https:\/\/www.drugshortage.ch\/index.php\/les-penuries-actuelles-de-medicaments-en-suisse\/","title":{"rendered":"Les p\u00e9nuries actuelles de m\u00e9dicaments en Suisse"},"content":{"rendered":"\n<!-- ============================================================\n     ANLEITUNG: In WordPress als \"Benutzerdefiniertes HTML\"-Block einf\u00fcgen.\n     Seite fran\u00e7aise principale (\u00e9quivalent du widget principal DE)\n     ============================================================ -->\n<style>\n  #lefr-outer { width:100%; box-sizing:border-box; font-family:'Segoe UI',Arial,sans-serif; font-size:13px; color:#2d3748; \/* width overridden by breakout below *\/ }\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\n  \/* Vollbreite-Breakout *\/\n  #lefr-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  \/* \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  .lefr-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  .lefr-abo-btn:hover { background:#e53e3e; color:#fff; }\n  .lefr-abo-btn.abonne { border-color:#276749; color:#276749; cursor:default; }\n  .lefr-abo-btn.abonne: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  #lefr-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  #lefr-abo-toast a { color:#fc8181; font-weight:600; }\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    .lefr-table.lefr-table-main   { width:100%; min-width:unset; }\n    .lefr-table.lefr-table-zahlen { width:100%; min-width:unset; }\n    .lefr-table.lefr-table-main td:first-child,\n    .lefr-table.lefr-table-main th:first-child { min-width:160px; }\n  }\n\n  \/* Ladeanimation *\/\n  #lefr-loading { display:flex; align-items:center; gap:12px; padding:30px 20px; color:#718096; font-size:15px; }\n  .lefr-spinner { width:24px; height:24px; border:3px solid #e2e8f0; border-top-color:#e53e3e; border-radius:50%; animation:spinFR .8s linear infinite; flex-shrink:0; }\n  @keyframes spinFR { to { transform:rotate(360deg); } }\n\n  \/* Kennzahlen-Karten *\/\n  .lefr-karten { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:16px; }\n  .lefr-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  .lefr-karte-zahl { font-size:32px; font-weight:700; color:#e53e3e; line-height:1.1; }\n  .lefr-karte-label { font-size:12px; color:#718096; margin-top:4px; line-height:1.4; }\n  .lefr-karte-hinweis { font-size:10px; color:#a0aec0; margin-top:6px; font-style:italic; }\n\n  \/* Abschnittstitel *\/\n  .lefr-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  .lefr-icon { background:#e53e3e; color:#fff; border-radius:6px; padding:2px 8px; font-size:11px; font-weight:600; }\n\n  \/* Sprach-Banner *\/\n  .lefr-lang-banner { background:#f0fff4; border:1px solid #9ae6b4; border-radius:8px; padding:10px 14px; font-size:13px; color:#276749; margin-bottom:16px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }\n  .lefr-lang-banner a { color:#276749; font-weight:600; text-decoration:none; border:1px solid #276749; padding:4px 10px; border-radius:6px; white-space:nowrap; }\n  .lefr-lang-banner a:hover { background:#276749; color:#fff; }\n\n  \/* Tabellen-Wrapper *\/\n  .lefr-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  .lefr-table { width:100%; border-collapse:collapse; background:#fff; }\n  .lefr-table thead tr { background:#2d3748; }\n  .lefr-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  .lefr-table th.lefr-sortable { cursor:pointer; user-select:none; }\n  .lefr-table th.lefr-sortable:hover { background:#4a5568; }\n  .lefr-table td { padding:8px 12px; border-bottom:1px solid #edf2f7; font-size:13px; vertical-align:middle; }\n  .lefr-table tbody tr:nth-child(even) td { background:#f7fafc; }\n  .lefr-table tbody tr:nth-child(odd) td { background:#ffffff; }\n  .lefr-table tbody tr:hover td { background:#ebf8ff !important; }\n  .lefr-table tbody tr:last-child td { border-bottom:none; }\n  .lefr-table a { color:#e53e3e; text-decoration:none; font-weight:500; }\n  .lefr-table a:hover { text-decoration:underline; }\n\n  \/* Mobile Tabellen *\/\n  @media (max-width:768px) {\n    .lefr-table-mobile thead { display:none; }\n    .lefr-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    .lefr-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    .lefr-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    .lefr-table-mobile tbody tr:nth-child(even) td { background:#f7fafc !important; }\n  }\n\n  \/* Bewertungs-Badges *\/\n  .lefr-bew { display:inline-block; width:26px; height:26px; border-radius:6px; text-align:center; line-height:26px; font-weight:700; font-size:13px; }\n  .lefr-b1 { background:#276749; color:#fff; }\n  .lefr-b2 { background:#9ae6b4; color:#276749; }\n  .lefr-b3 { background:#dd6b20; color:#fff; }\n  .lefr-b4 { background:#c53030; color:#fff; }\n  .lefr-b5 { background:#ecc94b; color:#744210; }\n  .lefr-b6 { background:#2b6cb0; color:#fff; }\n\n  \/* Legende *\/\n  .lefr-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  .lefr-legende-item { display:flex; align-items:center; gap:7px; font-size:12px; color:#4a5568; }\n\n  \/* Info-Boxen *\/\n  .lefr-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  .lefr-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  .lefr-search-wrap { display:flex; gap:10px; align-items:center; margin-bottom:12px; flex-wrap:wrap; }\n  #lefr-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  #lefr-suche:focus { border-color:#e53e3e; box-shadow:0 0 0 3px rgba(229,62,62,.1); }\n  .lefr-search-count { font-size:12px; color:#718096; white-space:nowrap; }\n\n  \/* Footer *\/\n  .lefr-fussnote { font-size:13px; color:#718096; margin:6px 0; line-height:1.5; }\n  .lefr-footer { font-size:11px; color:#a0aec0; text-align:right; margin-top:8px; }\n\n  \/* Keine Resultate *\/\n  .lefr-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:1400px) {\n    .lefr-table.lefr-table-main { table-layout:fixed; width:100%; min-width:unset; }\n    .lefr-table.lefr-table-main col.col-bezeichnung { width:22%; }\n    .lefr-table.lefr-table-main col.col-bew        { width:5%;  }\n    .lefr-table.lefr-table-main col.col-liefer     { width:9%;  }\n    .lefr-table.lefr-table-main col.col-alt        { width:7%;  }\n    .lefr-table.lefr-table-main col.col-status     { width:14%; }\n    .lefr-table.lefr-table-main col.col-mutation   { width:8%;  }\n    .lefr-table.lefr-table-main col.col-firma      { width:12%; }\n    .lefr-table.lefr-table-main col.col-gtin       { width:9%;  }\n    .lefr-table.lefr-table-main col.col-pharma     { width:6%;  }\n    .lefr-table.lefr-table-main col.col-tage       { width:4%;  }\n    .lefr-table.lefr-table-main col.col-atc        { width:4%;  }\n\n    .lefr-table.lefr-table-zahlen { table-layout:fixed; width:100%; min-width:unset; }\n  }\n<\/style>\n\n<div id=\"lefr-outer\">\n  <div id=\"lefr-loading\"><div class=\"lefr-spinner\"><\/div> Chargement des donn\u00e9es\u2026<\/div>\n  <div id=\"lefr-inhalt\" style=\"display:none;\">\n\n    <!-- Sprach-Banner -->\n    <div class=\"lefr-lang-banner\">\n      &#x1f310; Diese Seite ist auch auf Deutsch verf\u00fcgbar.\n      <a href=\"https:\/\/www.drugshortage.ch\/?lang=de\">Deutsche Version \u2192<\/a>\n    <\/div>\n\n    <!-- 1. Kennzahlen-Karten -->\n    <div class=\"lefr-section-title\"><span class=\"lefr-icon\">&#x1f4ca;<\/span> Aper\u00e7u des p\u00e9nuries de livraison ouvertes<\/div>\n\n    <!-- Rang\u00e9e 1 -->\n    <div class=\"lefr-karten\">\n      <div class=\"lefr-karte\">\n        <div class=\"lefr-karte-zahl\" id=\"lefr-packungen\">\u2013<\/div>\n        <div class=\"lefr-karte-label\">toutes les d\u00e9clarations (emballages)<\/div>\n      <\/div>\n      <div class=\"lefr-karte\">\n        <div class=\"lefr-karte-zahl\" id=\"lefr-packungen-status1\">\u2013<\/div>\n        <div class=\"lefr-karte-label\">emballages non livrables (statut 1)<\/div>\n      <\/div>\n      <div class=\"lefr-karte\">\n        <div class=\"lefr-karte-zahl\" id=\"lefr-wirkstoffe\">\u2013<\/div>\n        <div class=\"lefr-karte-label\">principes actifs concern\u00e9s (groupes ATC)<\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Rang\u00e9e 2 -->\n    <div class=\"lefr-karten\" style=\"margin-top:0;\">\n      <div class=\"lefr-karte\">\n        <div class=\"lefr-karte-zahl\" id=\"lefr-produkte\">\u2013<\/div>\n        <div class=\"lefr-karte-label\">total produits \/ dosages concern\u00e9s<\/div>\n        <div class=\"lefr-karte-hinweis\">* ind\u00e9pendamment des tailles d&#8217;emballage (20 + 100 = 1 produit)<\/div>\n      <\/div>\n      <div class=\"lefr-karte\">\n        <div class=\"lefr-karte-zahl\" id=\"lefr-produkte-status1\">\u2013<\/div>\n        <div class=\"lefr-karte-label\">produits \/ dosages non livrables (statut 1)<\/div>\n        <div class=\"lefr-karte-hinweis\">* ind\u00e9pendamment des tailles d&#8217;emballage<\/div>\n      <\/div>\n      <div class=\"lefr-karte\">\n        <div class=\"lefr-karte-zahl\" id=\"lefr-eingeschraenkt\">\u2013<\/div>\n        <div class=\"lefr-karte-label\">approvisionn\u00e9 par r\u00e9serve obligatoire, en pr\u00e9sentation \u00e9trang\u00e8re ou contingent\u00e9. P\u00e9nuries annonc\u00e9es.<\/div>\n      <\/div>\n    <\/div>\n\n    <p class=\"lefr-fussnote\">\n      L&#8217;aper\u00e7u des dosages manquants ind\u00e9pendamment de l&#8217;entreprise et de la taille d&#8217;emballage se trouve\n      <a href=\"https:\/\/www.drugshortage.ch\/index.php\/versorgungsengpaesse-2\/\" target=\"_blank\" style=\"color:#e53e3e;font-weight:600;\">ici<\/a>.\n    <\/p>\n\n    <!-- 2. Aktuelle Zahlen -->\n    <div class=\"lefr-section-title\"><span class=\"lefr-icon\">&#x2197;<\/span> Quelques chiffres<\/div>\n    <div class=\"lefr-table-wrap\">\n      <table class=\"lefr-table lefr-table-zahlen\" style=\"min-width:900px;\">\n        <thead><tr>\n          <th>Stock obligatoire<\/th>\n          <th>BWL<\/th><th>BWL\/OMS<\/th><th>OMS<\/th>\n          <th>Rembours\u00e9 (LS)<\/th>\n          <th>% LS non livrable<\/th>\n          <th>&lt; 2 sem.<\/th><th>2\u20136 sem.<\/th><th>&gt;6 sem. \u2013 \u00bd an<\/th>\n          <th>\u00bd \u2013 1 an<\/th><th>1 \u2013 2 ans<\/th><th>&gt; 2 ans<\/th>\n        <\/tr><\/thead>\n        <tbody id=\"lefr-aktuell\"><\/tbody>\n      <\/table>\n    <\/div>\n    <p class=\"lefr-fussnote\">*BWL: Liste de l&#8217;Office f\u00e9d\u00e9ral pour l&#8217;approvisionnement \u00e9conomique du pays &nbsp;\u00b7&nbsp; OMS: liste des m\u00e9dicaments essentiels de l&#8217;OMS &nbsp;\u00b7&nbsp; BWL\/OMS: sur les deux listes<\/p>\n\n    <!-- 3. Swissmedic-Kategorien -->\n    <p class=\"lefr-fussnote\" style=\"margin-top:14px;\">Cat\u00e9gories Swissmedic :<\/p>\n    <div class=\"lefr-table-wrap\" style=\"max-width:400px;\">\n      <table class=\"lefr-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;\">autres<\/th>\n        <\/tr><\/thead>\n        <tbody id=\"lefr-smcat\"><\/tbody>\n      <\/table>\n    <\/div>\n\n    <!-- 4. Bewertungslegende -->\n    <div class=\"lefr-section-title\"><span class=\"lefr-icon\">&#x1f3ed;<\/span> \u00c9valuation des d\u00e9clarations des entreprises<\/div>\n    <div class=\"lefr-legende-box\" id=\"lefr-legende\"><\/div>\n    <p class=\"lefr-fussnote\">\n      Vue d\u00e9taill\u00e9e : \n      <a href=\"https:\/\/www.drugshortage.ch\/index.php\/uebersicht-nach-firmen\/\" style=\"color:#e53e3e;font-weight:600;\">Par entreprise \u2192<\/a>\n      &nbsp;\u00b7&nbsp;\n      <a href=\"https:\/\/www.drugshortage.ch\/index.php\/uebersicht-nach-atc\/\" style=\"color:#e53e3e;font-weight:600;\">Par code ATC \u2192<\/a>\n    <\/p>\n\n    <!-- 5. Par pr\u00e9paration -->\n    <div class=\"lefr-section-title\"><span class=\"lefr-icon\">&#x1f4cb;<\/span> Par pr\u00e9paration<\/div>\n    <div class=\"lefr-wichtig\">\n      <strong>Important :<\/strong> Pour les entreprises des cat\u00e9gories 1+2+6, les produits sont peut-\u00eatre encore disponibles chez les grossistes. Pour les entreprises qui ne d\u00e9clarent pas elles-m\u00eames (cat\u00e9gories 3, 4 et 5), les d\u00e9clarations proviennent g\u00e9n\u00e9ralement d&#8217;utilisateurs. Ces d\u00e9clarations refl\u00e8tent la situation de leurs possibilit\u00e9s de commande. Il est possible que les entreprises ou d&#8217;autres grossistes disposent encore de stock. Cela doit \u00eatre clarifi\u00e9 au cas par cas.\n    <\/div>\n    <div class=\"lefr-hinweis\">\n      Les p\u00e9nuries r\u00e9pertori\u00e9es proviennent des entreprises ou de l&#8217;autorit\u00e9 (OFAE) et, pour les entreprises sans acc\u00e8s exclusif, de d\u00e9clarations volontaires d&#8217;utilisateurs. Ces derniers sont \u00e9galement responsables de la mise \u00e0 jour des d\u00e9clarations. Les informations ne pr\u00e9tendent pas \u00eatre exhaustives.<br>Pour des informations compl\u00e8tes, veuillez contacter l&#8217;entreprise concern\u00e9e.<br>Les alternatives propos\u00e9es doivent \u00eatre \u00e9valu\u00e9es de mani\u00e8re critique par un professionnel. Elles r\u00e9sultent d&#8217;une requ\u00eate automatis\u00e9e bas\u00e9e sur le code ATC, la voie d&#8217;administration et la disponibilit\u00e9.\n    <\/div>\n\n    <!-- Suchfeld mit Z\u00e4hler -->\n    <div class=\"lefr-search-wrap\">\n      <input type=\"text\" id=\"lefr-suche\" placeholder=\"&#x1f50d;  Rechercher par d\u00e9signation ou entreprise\u2026\">\n      <span class=\"lefr-search-count\" id=\"lefr-count\"><\/span>\n    <\/div>\n\n    <div class=\"lefr-table-wrap\">\n      <table class=\"lefr-table lefr-table-main\" style=\"min-width:1300px;\">\n        <colgroup>\n          <col class=\"col-bezeichnung\"><col class=\"col-bew\"><col class=\"col-liefer\">\n          <col class=\"col-alt\"><col class=\"col-status\"><col class=\"col-mutation\">\n          <col class=\"col-firma\"><col class=\"col-gtin\"><col class=\"col-pharma\">\n          <col class=\"col-tage\"><col class=\"col-atc\">\n        <\/colgroup>\n        <thead><tr>\n          <th class=\"lefr-sortable\" onclick=\"sortiereFr('bezeichnung')\">D\u00e9signation &#x2195;<\/th>\n          <th class=\"lefr-sortable\" onclick=\"sortiereFr('bewertung')\" style=\"text-align:center;\">Bew. &#x2195;<\/th>\n          <th class=\"lefr-sortable\" onclick=\"sortiereFr('lieferdatum')\">Disponibilit\u00e9 &#x2195;<\/th>\n          <th>Alternatives possibles<\/th>\n          <th>S&#8217;abonner<\/th>\n          <th>Status<\/th>\n          <th class=\"lefr-sortable\" onclick=\"sortiereFr('mutation')\">Derni\u00e8re mutation &#x2195;<\/th>\n          <th class=\"lefr-sortable\" onclick=\"sortiereFr('firma')\">Entreprise &#x2195;<\/th>\n          <th>GTIN<\/th>\n          <th>Pharmacode<\/th>\n          <th class=\"lefr-sortable\" onclick=\"sortiereFr('tage')\" style=\"text-align:center;\">Jours &#x2195;<\/th>\n          <th>ATC<\/th>\n        <\/tr><\/thead>\n        <tbody id=\"lefr-tbody\"><\/tbody>\n      <\/table>\n    <\/div>\n    <div class=\"lefr-footer\">Donn\u00e9es mises \u00e0 jour hebdomadairement \u00b7 drugshortage.ch<\/div>\n\n  <div id=\"lefr-abo-toast\"><\/div>\n  <\/div><!-- \/lefr-inhalt -->\n<\/div><!-- \/lefr-outer -->\n\n<script>\nconst BASE       = \"https:\/\/www.drugshortage.ch\";\nconst API_URL_FR = \"https:\/\/www.drugshortage.ch\/ds.php?a=engpaesse_fr\";\n\nlet alleDatenFr    = [];\nlet sortiereNachFr = \"bezeichnung\";\nlet aufsteigendFr  = true;\n\nasync function ladeMainFr() {\n  try {\n    const res = await fetch(API_URL_FR, {headers: {'X-Requested-With': 'XMLHttpRequest'}});\n    const d   = await res.json();\n\n    if (d.fehler) {\n      document.getElementById(\"lefr-loading\").innerHTML =\n        \"<div style='color:#c53030;padding:20px;background:#fff5f5;border-radius:8px;width:100%;'>\" +\n        \"<strong>&#x26a0;&#xfe0f; Erreur dans l'API :<\/strong><br>\" + d.fehler + \"<\/div>\";\n      return;\n    }\n\n    \/\/ 1. Kennzahlen\n    document.getElementById(\"lefr-packungen\").textContent         = v(d.anzahlPackungen);\n    document.getElementById(\"lefr-packungen-status1\").textContent = v(d.anzahlPackungenStatus1);\n    document.getElementById(\"lefr-wirkstoffe\").textContent        = (d.wirkstoffe && d.wirkstoffe.length > 0) ? v(d.wirkstoffe[0].wirkstoffe) : \"\u2013\";\n    document.getElementById(\"lefr-produkte\").textContent          = v(d.anzahlProdukte);\n    document.getElementById(\"lefr-produkte-status1\").textContent  = v(d.anzahlProdukteStatus1);\n    document.getElementById(\"lefr-eingeschraenkt\").textContent    = v(d.anzahlEingeschraenkt);\n\n    \/\/ 2. Aktuelle Zahlen\n    const aTbody = document.getElementById(\"lefr-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(\"lefr-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(\"lefr-legende\");\n    (d.bewertungLegende || []).forEach(function(b) {\n      const item = document.createElement(\"div\");\n      item.className = \"lefr-legende-item\";\n      item.innerHTML =\n        \"<span class='lefr-bew lefr-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    alleDatenFr = d.engpaesse || [];\n    zeigeTabelleFr(alleDatenFr);\n\n    document.getElementById(\"lefr-loading\").style.display = \"none\";\n    document.getElementById(\"lefr-inhalt\").style.display  = \"block\";\n\n  } catch(err) {\n    document.getElementById(\"lefr-loading\").innerHTML =\n      \"<div style='color:#c53030;padding:20px;background:#fff5f5;border-radius:8px;width:100%;'>&#x274c; Erreur lors du chargement. Veuillez recharger la page.<br><small style='color:#718096;'>\" + err + \"<\/small><\/div>\";\n  }\n}\n\nfunction zeigeTabelleFr(daten) {\n  const tbody = document.getElementById(\"lefr-tbody\");\n  const count = document.getElementById(\"lefr-count\");\n  tbody.innerHTML = \"\";\n  count.textContent = daten.length + \" entr\u00e9es\";\n  if (!daten.length) {\n    tbody.innerHTML = \"<tr><td colspan='11' class='lefr-no-results'>Aucune entr\u00e9e trouv\u00e9e.<\/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\/alternatives\/?GTIN=\" + encodeURIComponent(e.gtin || \"\");\n    tr.innerHTML =\n      \"<td data-label='D\u00e9signation' 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='lefr-bew lefr-b\" + (e.bewertung||0) + \"'>\" + (e.bewertung || \"\u2013\") + \"<\/span><\/td>\" +\n      \"<td data-label='Disponibilit\u00e9' style='white-space:nowrap;'>\" + datum(e.lieferdatum) + \"<\/td>\" +\n      \"<td data-label='Alternatives'><a href='\" + altUrl + \"' target='_blank' style='font-size:11px;border:1px solid #e53e3e;padding:2px 7px;border-radius:4px;white-space:nowrap;'>Alternatives \u2192<\/a><\/td>\" +\n      \"<td data-label='S\\'abonner' style='text-align:center;'>\" + aboBtnFr(e) + \"<\/td>\" +\n      \"<td data-label='Status' style='white-space:nowrap;font-size:11px;'>\" + (e.status || \"\u2013\") + \"<\/td>\" +\n      \"<td data-label='Derni\u00e8re mutation' style='white-space:nowrap;color:#718096;'>\" + datum(e.mutation) + \"<\/td>\" +\n      \"<td data-label='Entreprise' 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='Jours' 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 sortiereFr(feld) {\n  aufsteigendFr  = (sortiereNachFr === feld) ? !aufsteigendFr : true;\n  sortiereNachFr = feld;\n  const q     = document.getElementById(\"lefr-suche\").value.toLowerCase();\n  const liste = filternFr(q);\n  liste.sort(function(a, b) {\n    if (feld === \"tage\") return aufsteigendFr ? (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 aufsteigendFr ? va.localeCompare(vb) : vb.localeCompare(va);\n  });\n  zeigeTabelleFr(liste);\n}\n\nfunction filternFr(q) {\n  if (!q) return alleDatenFr.slice();\n  return alleDatenFr.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(\"lefr-suche\").addEventListener(\"input\", function() {\n    zeigeTabelleFr(filternFr(this.value.toLowerCase()));\n  });\n  ladeMainFr();\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 S'abonner \u2013 fonctions \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_FR = 'https:\/\/www.drugshortage.ch\/index.php\/abo-inscription\/';\nconst ABO_API_URL_FR = 'https:\/\/www.drugshortage.ch\/api\/api_abo_verwaltung.php';\n\nfunction aboBtnFr(e) {\n  return \"<button class='lefr-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\nfunction aboKlickFr(gtin, bezeichnung, btn) {\n  const token = localStorage.getItem('abo_token');\n\n  \/\/ Nicht eingeloggt \u2192 sofort weiterleiten (kein fetch, kein Popup-Problem)\n  if (!token) {\n    window.open(ABO_REG_URL_FR + '?gtin=' + encodeURIComponent(gtin) + '&bez=' + encodeURIComponent(bezeichnung), '_blank');\n    return;\n  }\n\n  \/\/ Eingeloggt \u2192 direkt abonnieren\n  btn.disabled = true; btn.textContent = '\u2026';\n  fetch(ABO_API_URL_FR + '?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  .then(function(res) { return res.json(); })\n  .then(function(d) {\n    if (d.ok) {\n      btn.textContent = '\u2713 Abonn\u00e9';\n      btn.className = 'lefr-abo-btn abonne';\n      btn.disabled = true;\n      aboToastFr(\"&#x2705; \" + bezeichnung + \" a \u00e9t\u00e9 ajout\u00e9 \u00e0 vos abonnements.\");\n    } else if (d.login) {\n      localStorage.removeItem('abo_token');\n      localStorage.removeItem('abo_email');\n      btn.disabled = false; btn.textContent = '&#x1f514; Abo';\n      window.location.href = ABO_REG_URL_FR + '?gtin=' + encodeURIComponent(gtin) + '&bez=' + encodeURIComponent(bezeichnung);\n    } else {\n      btn.disabled = false; btn.textContent = '&#x1f514; Abo';\n      aboToastFr(\"&#x26a0;&#xfe0f; \" + (d.message || \"Erreur lors de l'ajout.\"));\n    }\n  })\n  .catch(function() {\n    btn.disabled = false; btn.textContent = '&#x1f514; Abo';\n    aboToastFr(\"&#x26a0;&#xfe0f; Erreur de connexion. Veuillez r\u00e9essayer.\");\n  });\n}\n\n\/\/ Event-Delegation statt inline onclick (vermeidet Escaping-Probleme)\ndocument.addEventListener('click', function(ev) {\n  var btn = ev.target.closest('.lefr-abo-btn');\n  if (!btn || btn.classList.contains('abonne') || 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) aboKlickFr(gtin, bez, btn);\n}, true);\n\nfunction aboToastFr(msg, dauer) {\n  const t = document.getElementById('lefr-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","protected":false},"excerpt":{"rendered":"<p>Chargement des donn\u00e9es\u2026 &#x1f310; Diese Seite ist auch auf Deutsch verf\u00fcgbar. Deutsche Version \u2192 &#x1f4ca; Aper\u00e7u des p\u00e9nuries de livraison ouvertes \u2013 toutes les d\u00e9clarations (emballages) \u2013 emballages non livrables (statut 1) \u2013 principes actifs concern\u00e9s (groupes ATC) \u2013 total produits \/ dosages concern\u00e9s * ind\u00e9pendamment des tailles d&#8217;emballage (20 + 100 = 1 produit)&#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":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-21243","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21243","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=21243"}],"version-history":[{"count":26,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21243\/revisions"}],"predecessor-version":[{"id":21885,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21243\/revisions\/21885"}],"wp:attachment":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/media?parent=21243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}