{"id":21524,"date":"2026-06-02T13:52:10","date_gmt":"2026-06-02T11:52:10","guid":{"rendered":"https:\/\/www.drugshortage.ch\/?page_id=21524"},"modified":"2026-06-18T19:37:29","modified_gmt":"2026-06-18T17:37:29","slug":"apercu-par-entreprise","status":"publish","type":"page","link":"https:\/\/www.drugshortage.ch\/index.php\/apercu-par-entreprise\/","title":{"rendered":"aper\u00e7u par entreprises"},"content":{"rendered":"\n<!-- ============================================================\n     ANLEITUNG: In WordPress als \"Benutzerdefiniertes HTML\"-Block einf\u00fcgen.\n     Seite fran\u00e7aise: \"apercu-par-entreprises\"\n     ============================================================ -->\n<style>\n  #nffr-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  #nffr-loading { display:flex; align-items:center; gap:12px; padding:30px 20px; color:#718096; font-size:15px; }\n  .nffr-spinner { width:24px; height:24px; border:3px solid #e2e8f0; border-top-color:#e53e3e; border-radius:50%; animation:nffrspin .8s linear infinite; flex-shrink:0; }\n  @keyframes nffrspin { to { transform:rotate(360deg); } }\n  .nffr-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  .nffr-icon { background:#e53e3e; color:#fff; border-radius:6px; padding:2px 8px; font-size:11px; font-weight:600; }\n  .nffr-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  .nffr-table { width:100%; border-collapse:collapse; background:#fff; }\n  .nffr-table thead tr { background:#2d3748; }\n  .nffr-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  .nffr-table th:hover { background:#4a5568; }\n  .nffr-table td { padding:8px 12px; border-bottom:1px solid #edf2f7; font-size:13px; vertical-align:middle; }\n  .nffr-table tbody tr:nth-child(even) td { background:#f7fafc; }\n  .nffr-table tbody tr:nth-child(odd) td { background:#fff; }\n  .nffr-table tbody tr:hover td { background:#ebf8ff !important; }\n  .nffr-table tbody tr:last-child td { border-bottom:none; }\n  .nffr-table a { color:#e53e3e; text-decoration:none; font-weight:500; }\n  .nffr-table a:hover { text-decoration:underline; }\n  .nffr-bew { display:inline-block; width:26px; height:26px; border-radius:6px; text-align:center; line-height:26px; font-weight:700; font-size:13px; }\n  .nffr-b1 { background:#276749; color:#fff; }\n  .nffr-b2 { background:#9ae6b4; color:#276749; }\n  .nffr-b3 { background:#dd6b20; color:#fff; }\n  .nffr-b4 { background:#c53030; color:#fff; }\n  .nffr-b5 { background:#ecc94b; color:#744210; }\n  .nffr-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  .nffr-legende-item { display:flex; align-items:center; gap:7px; font-size:12px; color:#4a5568; }\n  .nffr-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  .nffr-search-wrap { display:flex; gap:10px; align-items:center; margin-bottom:12px; flex-wrap:wrap; }\n  #nffr-suche { flex:1; min-width:200px; max-width:400px; padding:10px 14px; border:1px solid #e2e8f0; border-radius:8px; font-size:13px; outline:none; }\n  #nffr-suche:focus { border-color:#e53e3e; box-shadow:0 0 0 3px rgba(229,62,62,.1); }\n  .nffr-count { font-size:12px; color:#718096; white-space:nowrap; }\n  .nffr-fussnote { font-size:13px; color:#718096; margin:6px 0; line-height:1.5; }\n  .nffr-footer { font-size:11px; color:#a0aec0; text-align:right; margin-top:8px; }\n  .nffr-karten { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:16px; }\n  .nffr-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  .nffr-karte-zahl { font-size:32px; font-weight:700; color:#e53e3e; line-height:1.1; }\n  .nffr-karte-label { font-size:12px; color:#718096; margin-top:4px; line-height:1.4; }\n  .nffr-karte-hinweis { font-size:10px; color:#a0aec0; margin-top:6px; font-style:italic; }\n  @media (max-width:768px) {\n    .nffr-table thead { display:none; }\n    .nffr-table tbody tr { display:block; margin-bottom:12px; border:1px solid #e2e8f0; border-radius:8px; overflow:hidden; }\n    .nffr-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    .nffr-table tbody td:before { content:attr(data-label); font-weight:600; color:#718096; margin-right:8px; min-width:120px; flex-shrink:0; }\n  }\n<\/style>\n\n<div id=\"nffr-outer\">\n  <div id=\"nffr-loading\"><div class=\"nffr-spinner\"><\/div> Chargement des donn\u00e9es\u2026<\/div>\n  <div id=\"nffr-inhalt\" style=\"display:none;\">\n\n    <!-- Kacheln -->\n    <div class=\"nffr-section-title\"><span class=\"nffr-icon\">&#x1f4ca;<\/span> Aper\u00e7u des p\u00e9nuries de livraison ouvertes<\/div>\n    <div class=\"nffr-karten\">\n      <div class=\"nffr-karte\">\n        <div class=\"nffr-karte-zahl\" id=\"nffr-packungen\">\u2013<\/div>\n        <div class=\"nffr-karte-label\">emballages non livrables<\/div>\n      <\/div>\n      <div class=\"nffr-karte\">\n        <div class=\"nffr-karte-zahl\" id=\"nffr-produkte\">\u2013<\/div>\n        <div class=\"nffr-karte-label\">produits \/ dosages non livrables<\/div>\n        <div class=\"nffr-karte-hinweis\">* ind\u00e9pendamment des tailles d&#8217;emballage (20 + 100 = 1 produit)<\/div>\n      <\/div>\n      <div class=\"nffr-karte\">\n        <div class=\"nffr-karte-zahl\" id=\"nffr-wirkstoffe\">\u2013<\/div>\n        <div class=\"nffr-karte-label\">principes actifs concern\u00e9s (groupes ATC)<\/div>\n      <\/div>\n    <\/div>\n    <p class=\"nffr-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    <!-- \u00c9valuation l\u00e9gende -->\n    <div class=\"nffr-section-title\"><span class=\"nffr-icon\">&#x1f3ed;<\/span> \u00c9valuation des d\u00e9clarations des entreprises<\/div>\n    <div class=\"nffr-legende-box\" id=\"nffr-legende\"><\/div>\n    <div class=\"nffr-wichtig\">\n      <strong>Important :<\/strong> Pour les entreprises des cat\u00e9gories 1+2, les produits sont peut-\u00eatre encore disponibles chez les grossistes.\n      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.\n      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\n    <!-- Tableau entreprises -->\n    <div class=\"nffr-section-title\"><span class=\"nffr-icon\">&#x1f3ed;<\/span> P\u00e9nuries par entreprise<\/div>\n    <div class=\"nffr-search-wrap\">\n      <input type=\"text\" id=\"nffr-suche\" placeholder=\"&#x1f50d; Rechercher une entreprise\u2026\">\n      <span class=\"nffr-count\" id=\"nffr-count\"><\/span>\n    <\/div>\n    <div class=\"nffr-table-wrap\">\n      <table class=\"nffr-table\">\n        <thead><tr>\n          <th onclick=\"nffrSort('firma')\">Entreprise &#x2195;<\/th>\n          <th onclick=\"nffrSort('bewertungId')\" style=\"text-align:center; width:70px;\">\u00c9val. &#x2195;<\/th>\n          <th onclick=\"nffrSort('anzahlEngpaesse')\" style=\"text-align:center; width:150px;\">P\u00e9nuries ouvertes &#x2195;<\/th>\n          <th onclick=\"nffrSort('anzahlProdukte')\" style=\"text-align:center; width:150px;\">Produits autoris\u00e9s &#x2195;<\/th>\n        <\/tr><\/thead>\n        <tbody id=\"nffr-tbody\"><\/tbody>\n      <\/table>\n    <\/div>\n    <p class=\"nffr-fussnote\">Remarque : Le nombre de produits autoris\u00e9s indique l&#8217;importance de la p\u00e9nurie pour l&#8217;entreprise, mais n&#8217;a rien \u00e0 voir avec la valeur th\u00e9rapeutique.<\/p>\n    <div class=\"nffr-footer\">Donn\u00e9es mises \u00e0 jour hebdomadairement \u00b7 drugshortage.ch<\/div>\n  <\/div>\n<\/div>\n\n<script>\nconst NFFR_BASE    = \"https:\/\/www.drugshortage.ch\";\nconst NFFR_API     = \"https:\/\/www.drugshortage.ch\/ds.php?a=uebersicht_firmen\";\nconst NFFR_API_ENG = \"https:\/\/www.drugshortage.ch\/ds.php?a=engpaesse_fr\";\n\/\/ Signierung erfolgt serverseitig in ds.php (Origin-geschuetzt). Kein Schluessel im Browser.\n\nlet nffrAlle = [], nffrSortFeld = \"anzahlEngpaesse\", nffrAufsteigend = false;\n\nasync function ladeNachFirmaFr() {\n  try {\n    \/\/ Kennzahlen aus engpaesse_fr API\n    const resEng = await fetch(NFFR_API_ENG, {headers: {'X-Requested-With': 'XMLHttpRequest'}});\n    const dEng   = await resEng.json();\n    if (!dEng.fehler) {\n      document.getElementById(\"nffr-packungen\").textContent  = dEng.anzahlPackungen  || \"\u2013\";\n      document.getElementById(\"nffr-produkte\").textContent   = dEng.anzahlProdukte   || \"\u2013\";\n      if (dEng.wirkstoffe && dEng.wirkstoffe.length > 0)\n        document.getElementById(\"nffr-wirkstoffe\").textContent = dEng.wirkstoffe[0].wirkstoffe || \"\u2013\";\n    }\n\n    const res = await fetch(NFFR_API, {headers: {'X-Requested-With': 'XMLHttpRequest'}});\n    const d   = await res.json();\n    if (d.fehler) {\n      document.getElementById(\"nffr-loading\").innerHTML =\n        \"<div style='color:#c53030;padding:20px;background:#fff5f5;border-radius:8px;'>&#x26a0;&#xfe0f; \" + d.fehler + \"<\/div>\";\n      return;\n    }\n\n    \/\/ Legende FR\n    const legDiv = document.getElementById(\"nffr-legende\");\n    (d.bewertungLegende || []).forEach(function(b) {\n      const item = document.createElement(\"div\");\n      item.className = \"nffr-legende-item\";\n      item.innerHTML =\n        \"<span class='nffr-bew nffr-b\" + b.ident + \"'>\" + b.ident + \"<\/span>\" +\n        \"<span><strong>\" + (b.bewertungF || b.bewertung || \"\") + \"<\/strong> \u2013 \" + (b.artMeldungF || b.artMeldung || \"\") + \"<\/span>\";\n      legDiv.appendChild(item);\n    });\n\n    nffrAlle = (d.firmen || []).sort(function(a, b) {\n      return (b.anzahlEngpaesse||0) - (a.anzahlEngpaesse||0);\n    });\n    nffrZeige(nffrAlle);\n\n    document.getElementById(\"nffr-loading\").style.display = \"none\";\n    document.getElementById(\"nffr-inhalt\").style.display  = \"block\";\n\n    document.getElementById(\"nffr-suche\").addEventListener(\"input\", function() {\n      const q = this.value.toLowerCase();\n      nffrZeige(q ? nffrAlle.filter(function(f) { return (f.firma||\"\").toLowerCase().includes(q); }) : nffrAlle);\n    });\n\n  } catch(err) {\n    document.getElementById(\"nffr-loading\").innerHTML =\n      \"<div style='color:#c53030;padding:20px;background:#fff5f5;border-radius:8px;'>&#x274c; Erreur : \" + err + \"<\/div>\";\n  }\n}\n\nfunction nffrZeige(daten) {\n  const tbody = document.getElementById(\"nffr-tbody\");\n  const count = document.getElementById(\"nffr-count\");\n  tbody.innerHTML = \"\";\n  count.textContent = daten.length + \" entreprises\";\n  daten.forEach(function(f) {\n    const tr  = document.createElement(\"tr\");\n    const bew = parseInt(f.bewertungId) || 4;\n    const url = NFFR_BASE + \"\/index.php\/lieferengpaesse-nach-firma\/?Firma=\" + encodeURIComponent(f.firma || \"\");\n    tr.innerHTML =\n      \"<td data-label='Entreprise'><a href='\" + url + \"'>\" + (f.firma || \"\u2013\") + \"<\/a><\/td>\" +\n      \"<td style='text-align:center;' data-label='\u00c9valuation'><span class='nffr-bew nffr-b\" + bew + \"' title='\" + (f.bewertungF||f.bewertung||\"\") + \"'>\" + bew + \"<\/span><\/td>\" +\n      \"<td style='text-align:center;font-weight:700;color:#e53e3e;' data-label='P\u00e9nuries ouvertes'><a href='\" + url + \"' style='color:#e53e3e;'>\" + (f.anzahlEngpaesse||0) + \"<\/a><\/td>\" +\n      \"<td style='text-align:center;color:#4a5568;' data-label='Produits autoris\u00e9s'>\" + (f.anzahlProdukte||0) + \"<\/td>\";\n    tbody.appendChild(tr);\n  });\n}\n\nfunction nffrSort(feld) {\n  nffrAufsteigend = (nffrSortFeld === feld) ? !nffrAufsteigend : (feld === \"firma\");\n  nffrSortFeld = feld;\n  const q = document.getElementById(\"nffr-suche\").value.toLowerCase();\n  const liste = q ? nffrAlle.filter(function(f) { return (f.firma||\"\").toLowerCase().includes(q); }) : nffrAlle.slice();\n  liste.sort(function(a, b) {\n    if (feld === \"bewertungId\" || feld === \"anzahlProdukte\" || feld === \"anzahlEngpaesse\")\n      return nffrAufsteigend ? (a[feld]||0)-(b[feld]||0) : (b[feld]||0)-(a[feld]||0);\n    const va = (a[feld]||\"\").toLowerCase(), vb = (b[feld]||\"\").toLowerCase();\n    return nffrAufsteigend ? va.localeCompare(vb) : vb.localeCompare(va);\n  });\n  nffrZeige(liste);\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", ladeNachFirmaFr);\n<\/script>\n\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chargement des donn\u00e9es\u2026 &#x1f4ca; Aper\u00e7u des p\u00e9nuries de livraison ouvertes \u2013 emballages non livrables \u2013 produits \/ dosages non livrables * ind\u00e9pendamment des tailles d&#8217;emballage (20 + 100 = 1 produit) \u2013 principes actifs concern\u00e9s (groupes ATC) L&#8217;aper\u00e7u des dosages manquants ind\u00e9pendamment de l&#8217;entreprise et de la taille d&#8217;emballage se trouve ici. &#x1f3ed; \u00c9valuation des&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_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-21524","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21524","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=21524"}],"version-history":[{"count":5,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21524\/revisions"}],"predecessor-version":[{"id":21828,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21524\/revisions\/21828"}],"wp:attachment":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/media?parent=21524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}