{"id":21723,"date":"2026-06-10T23:19:38","date_gmt":"2026-06-10T21:19:38","guid":{"rendered":"https:\/\/www.drugshortage.ch\/?page_id=21723"},"modified":"2026-06-11T18:05:41","modified_gmt":"2026-06-11T16:05:41","slug":"lieferengpassvergleich-ch-de-aut-fr","status":"publish","type":"page","link":"https:\/\/www.drugshortage.ch\/index.php\/lieferengpassvergleich-ch-de-aut-fr\/","title":{"rendered":"Lieferengpassvergleich CH &#8211; AUT &#8211; IT &#8211; DE &#8211; FR"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Datenquellen : CH: Drugshortage.ch; DE: parmnet-bund.de ; AT: BASG; FR: ANSM IT: AIFA<br>Hinweis : die Daten aus Deutschland stammen aus freiwilligen Meldungen von Firmen. \u00d6sterreich, Italien und Frankreich haben verbindlichere Meldesysteme. Die Lieferengp\u00e4sse in Frankreich sind aggregiert (d.h. die Z\u00e4hlung ist nicht pro Produkt, sondern pro Wirkstoff). Die Details geben Auskunft.<br>Effektiv direkt vergleichbar sind \u00d6sterreich, Italien und die Schweiz, da die Daten in hoher Granularit\u00e4t und Zuverl\u00e4ssigkeit vorliegen.<\/p>\n\n\n\n<!-- ============================================================\n     drugshortage.ch \u2013 Vergleich CH\/DE\/AT\/FR \u00f6ffentlich\n     ============================================================ -->\n<style>\n#vgl-outer { font-family:'Segoe UI',Arial,sans-serif; font-size:13px; color:#2d3748; max-width:960px; }\n.vgl-header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:16px; }\n.vgl-title { font-size:16px; font-weight:700; color:#1a202c; }\n.vgl-meta { font-size:11px; color:#a0aec0; }\n.vgl-summary { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:16px; }\n.vgl-stat { background:#f7fafc; border:1px solid #e2e8f0; border-radius:8px; padding:10px 18px; text-align:center; }\n.vgl-stat-val { font-size:22px; font-weight:700; color:#e53e3e; }\n.vgl-stat-lbl { font-size:11px; color:#718096; margin-top:2px; }\n.vgl-stat.blue .vgl-stat-val { color:#2b6cb0; }\n.vgl-stat.green .vgl-stat-val { color:#38a169; }\n.vgl-stat.amber .vgl-stat-val { color:#d69e2e; }\n.vgl-stat.violet .vgl-stat-val { color:#6b46c1; }\n.vgl-stat.teal .vgl-stat-val { color:#319795; }\n.vgl-search { width:100%; max-width:300px; padding:7px 12px; border:1px solid #e2e8f0; border-radius:6px; font-size:13px; margin-bottom:14px; }\n.vgl-table { width:100%; border-collapse:collapse; font-size:12px; }\n.vgl-table th { background:#f7fafc; padding:8px 10px; text-align:left; border-bottom:2px solid #e2e8f0; font-size:11px; color:#718096; text-transform:uppercase; letter-spacing:.5px; cursor:pointer; user-select:none; }\n.vgl-table th:hover { background:#edf2f7; }\n.vgl-table td { padding:7px 10px; border-bottom:1px solid #f0f0f0; vertical-align:middle; }\n.vgl-table tr:hover td { background:#f7fafc; cursor:pointer; }\n.vgl-atc { font-family:monospace; font-weight:700; color:#2b6cb0; font-size:13px; }\n.vgl-wirkstoff { color:#2d3748; max-width:200px; }\n.vgl-wirkstoff small { color:#718096; display:block; font-size:10px; }\n.vgl-bar-wrap { display:flex; align-items:center; gap:6px; }\n.vgl-bar { height:8px; border-radius:4px; min-width:4px; }\n.vgl-bar-ch { background:#e53e3e; }\n.vgl-bar-de { background:#2b6cb0; }\n.vgl-bar-at { background:#d69e2e; }\n.vgl-bar-fr { background:#6b46c1; }\n.vgl-bar-it { background:#319795; }\n.vgl-count { font-size:11px; color:#718096; white-space:nowrap; }\n.vgl-link { color:#2b6cb0; text-decoration:none; }\n.vgl-link:hover { text-decoration:underline; }\n.vgl-flag { font-size:14px; }\n.vgl-spinner { display:inline-block; width:18px; height:18px; border:2px solid #e2e8f0; border-top-color:#e53e3e; border-radius:50%; animation:vglspin .7s linear infinite; vertical-align:middle; margin-right:8px; }\n@keyframes vglspin { to { transform:rotate(360deg); } }\n\n\/* Detail-Modal *\/\n.vgl-modal { display:none; position:fixed; top:0;left:0;right:0;bottom:0; background:rgba(0,0,0,.5); z-index:9999; overflow-y:auto; }\n.vgl-modal-box { background:#fff; border-radius:12px; max-width:1300px; margin:40px auto; padding:24px; }\n.vgl-modal-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }\n.vgl-modal-title { font-size:15px; font-weight:700; }\n.vgl-modal-close { background:none; border:none; font-size:20px; cursor:pointer; color:#718096; }\n.vgl-modal-cols { display:flex; flex-direction:column; gap:18px; }\n.vgl-modal-groupwrap { border-radius:8px; }\n.vgl-modal-grouptitle { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; padding:4px 0 8px; border-bottom:2px solid; margin-bottom:10px; }\n.vgl-modal-grouptitle.oblig { color:#276749; border-color:#38a169; }\n.vgl-modal-grouptitle.frei  { color:#975a16; border-color:#d69e2e; }\n.vgl-modal-cols-inner { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }\n.vgl-modal-groupwrap:last-child .vgl-modal-cols-inner { grid-template-columns:repeat(2,1fr); }\n@media(max-width:800px) { .vgl-modal-cols-inner { grid-template-columns:1fr 1fr !important; } }\n@media(max-width:560px) { .vgl-modal-cols-inner { grid-template-columns:1fr !important; } }\n.vgl-modal-col { border:1px solid #e2e8f0; border-radius:8px; overflow:hidden; }\n.vgl-modal-col-header { padding:10px 14px; font-weight:700; font-size:12px; display:flex; align-items:center; gap:6px; }\n.vgl-modal-col-header.ch { background:#fff5f5; color:#c53030; }\n.vgl-modal-col-header.de { background:#ebf8ff; color:#2c5282; }\n.vgl-modal-col-header.at { background:#fffaf0; color:#975a16; }\n.vgl-modal-col-header.fr { background:#faf5ff; color:#553c9a; }\n.vgl-modal-col-header.it { background:#e6fffa; color:#234e52; }\n.vgl-modal-item { padding:8px 14px; border-top:1px solid #f0f0f0; font-size:12px; }\n.vgl-modal-item b { display:block; color:#2d3748; margin-bottom:2px; }\n.vgl-modal-item small { color:#718096; display:block; }\n.vgl-modal-empty { padding:16px; text-align:center; color:#a0aec0; font-size:12px; }\n.vgl-modal-ext { font-size:11px; color:#2b6cb0; }\n<\/style>\n\n<div id=\"vgl-outer\">\n  <div class=\"vgl-header\">\n    <div>\n      <div class=\"vgl-title\">&#x1f1e8;&#x1f1ed;&#x1f1e6;&#x1f1f9;&#x1f1ee;&#x1f1f9;&#x1f1e9;&#x1f1ea;&#x1f1eb;&#x1f1f7; Lieferengp\u00e4sse \u2013 CH \/ AT \/ IT \/ DE \/ FR<\/div>\n      <div class=\"vgl-meta\" id=\"vgl-meta\">Wird geladen&#8230;<\/div>\n    <\/div>\n    <input class=\"vgl-search\" id=\"vgl-search\" type=\"text\" placeholder=\"ATC oder Wirkstoff suchen...\">\n  <\/div>\n\n  <div class=\"vgl-summary\" id=\"vgl-summary\">\n    <div style=\"padding:20px;color:#a0aec0;\"><span class=\"vgl-spinner\"><\/span> Lade Daten&#8230;<\/div>\n  <\/div>\n\n  <table class=\"vgl-table\" id=\"vgl-table\" style=\"display:none;\">\n    <thead>\n      <tr class=\"vgl-grouprow\">\n        <th colspan=\"2\"><\/th>\n        <th colspan=\"3\" class=\"vgl-group-oblig\">Meldesystem nach Packung \u00b7 obligatorisch<\/th>\n        <th colspan=\"2\" class=\"vgl-group-frei\">Meldesystem freiwillig (DE) \u00b7 Daten aggregiert (FR)<\/th>\n        <th colspan=\"2\"><\/th>\n      <\/tr>\n      <tr>\n        <th onclick=\"vglSort('atc')\">ATC &#x2195;<\/th>\n        <th onclick=\"vglSort('wirkstoff')\">Wirkstoff &#x2195;<\/th>\n        <th onclick=\"vglSort('anzahlCH')\" class=\"vgl-col-oblig\">&#x1f1e8;&#x1f1ed; CH &#x2195;<\/th>\n        <th onclick=\"vglSort('anzahlAT')\" class=\"vgl-col-oblig\">&#x1f1e6;&#x1f1f9; AT &#x2195;<\/th>\n        <th onclick=\"vglSort('anzahlIT')\" class=\"vgl-col-oblig\">&#x1f1ee;&#x1f1f9; IT &#x2195;<\/th>\n        <th onclick=\"vglSort('anzahlDE')\" class=\"vgl-col-frei\">&#x1f1e9;&#x1f1ea; DE<\/th>\n        <th onclick=\"vglSort('anzahlFR')\" class=\"vgl-col-frei\">&#x1f1eb;&#x1f1f7; FR<\/th>\n        <th>Visualisierung<\/th>\n        <th>Detail<\/th>\n      <\/tr>\n    <\/thead>\n    <tbody id=\"vgl-body\"><\/tbody>\n  <\/table>\n<\/div>\n\n<style>\n.vgl-grouprow th { background:#fff; border-bottom:none; padding-bottom:2px; font-size:10px; text-align:center; letter-spacing:.3px; }\n.vgl-group-oblig { color:#276749; border-bottom:2px solid #38a169 !important; }\n.vgl-group-frei  { color:#975a16; border-bottom:2px solid #d69e2e !important; }\n.vgl-col-oblig { background:#f0fff4 !important; }\n.vgl-col-frei  { background:#fffaf0 !important; }\n.vgl-kreuz { color:#c53030; font-weight:700; font-size:14px; }\n.vgl-leer  { color:#e2e8f0; }\n<\/style>\n\n<!-- Detail Modal -->\n<div class=\"vgl-modal\" id=\"vgl-modal\" onclick=\"if(event.target===this)vglCloseModal()\">\n  <div class=\"vgl-modal-box\">\n    <div class=\"vgl-modal-header\">\n      <div class=\"vgl-modal-title\" id=\"vgl-modal-title\">Detail<\/div>\n      <button class=\"vgl-modal-close\" onclick=\"vglCloseModal()\">\u2715<\/button>\n    <\/div>\n    <div id=\"vgl-modal-loading\" style=\"text-align:center;padding:20px;color:#a0aec0;\">\n      <span class=\"vgl-spinner\"><\/span> Lade Details&#8230;\n    <\/div>\n    <div class=\"vgl-modal-cols\" id=\"vgl-modal-cols\" style=\"display:none;\"><\/div>\n  <\/div>\n<\/div>\n\n<script>\nconst VGL_API = 'https:\/\/www.drugshortage.ch\/ds.php?a=vergleich_ch_de_at_fr_it';\nlet vglData = [];\nlet vglSortKey = 'anzahlCH';\nlet vglSortDir = -1;\n\nfunction vglEsc(s){ return (s||'').toString().replace(\/[<>&\"]\/g, c => ({'<':'&lt;','>':'&gt;','&':'&amp;','\"':'&quot;'}[c])); }\n\nasync function vglLaden() {\n  try {\n    const res = await fetch(VGL_API);\n    const txt = await res.text();\n    let d;\n    try { d = JSON.parse(txt); }\n    catch(e) {\n      document.getElementById('vgl-summary').innerHTML =\n        '&#x274c; Keine g\u00fcltige JSON-Antwort (HTTP ' + res.status + '). Anfang: <code style=\"font-size:10px\">' +\n        txt.substring(0,200).replace(\/<\/g,'&lt;') + '<\/code>';\n      return;\n    }\n    if (!d.ok) {\n      document.getElementById('vgl-summary').innerHTML =\n        '&#x274c; API-Fehler: ' + (d.error || 'unbekannt') + (d.detail ? ' \u2013 ' + d.detail : '');\n      return;\n    }\n    vglData = d.vergleich || [];\n\n    const dt   = d.letzterImportDE ? d.letzterImportDE.substring(0,10).split('-').reverse().join('.') : '\u2013';\n    const dtAT = d.letzterImportAT ? d.letzterImportAT.substring(0,10).split('-').reverse().join('.') : '\u2013';\n    const dtFR = d.letzterImportFR ? d.letzterImportFR.substring(0,10).split('-').reverse().join('.') : '\u2013';\n    document.getElementById('vgl-meta').textContent =\n      'CH: ' + (d.totalCH||0) + ' \u00b7 DE: ' + (d.totalDE||0) + ' \u00b7 AT: ' + (d.totalAT||0) + ' \u00b7 FR: ' + (d.totalFR||0) + ' \u00b7 IT: ' + (d.totalIT||0) +\n      ' aktive Meldungen';\n\n    document.getElementById('vgl-summary').innerHTML = `\n      <div class=\"vgl-stat\"><div class=\"vgl-stat-val\">${vglData.length}<\/div><div class=\"vgl-stat-lbl\">ATC-Gruppen betroffen<\/div><\/div>\n      <div class=\"vgl-stat\"><div class=\"vgl-stat-val\" style=\"color:#e53e3e\">${d.totalCH||0}<\/div><div class=\"vgl-stat-lbl\">&#x1f1e8;&#x1f1ed; CH (Packung)<\/div><\/div>\n      <div class=\"vgl-stat amber\"><div class=\"vgl-stat-val\">${d.totalAT||0}<\/div><div class=\"vgl-stat-lbl\">&#x1f1e6;&#x1f1f9; AT (Packung)<\/div><\/div>\n      <div class=\"vgl-stat teal\"><div class=\"vgl-stat-val\">${d.totalIT||0}<\/div><div class=\"vgl-stat-lbl\">&#x1f1ee;&#x1f1f9; IT (Packung)<\/div><\/div>\n      <div class=\"vgl-stat blue\"><div class=\"vgl-stat-val\">${d.totalDE||0}<\/div><div class=\"vgl-stat-lbl\">&#x1f1e9;&#x1f1ea; DE (freiwillig)<\/div><\/div>\n      <div class=\"vgl-stat violet\"><div class=\"vgl-stat-val\">${d.totalFR||0}<\/div><div class=\"vgl-stat-lbl\">&#x1f1eb;&#x1f1f7; FR (aggregiert)<\/div><\/div>\n    `;\n\n    vglRender();\n  } catch(e) {\n    document.getElementById('vgl-summary').innerHTML = '&#x274c; ' + e.toString();\n  }\n}\n\nfunction vglRender() {\n  const q = document.getElementById('vgl-search').value.toLowerCase();\n  let rows = vglData.filter(r =>\n    !q || r.atc.toLowerCase().includes(q) ||\n    (r.wirkstoff||'').toLowerCase().includes(q)\n  );\n  rows.sort((a,b) => vglSortDir * (\n    typeof a[vglSortKey] === 'number'\n      ? a[vglSortKey] - b[vglSortKey]\n      : (a[vglSortKey]||'').localeCompare(b[vglSortKey]||'')\n  ));\n\n  const maxCH = Math.max(1, ...rows.map(r => r.anzahlCH));\n  const maxDE = Math.max(1, ...rows.map(r => r.anzahlDE));\n  const maxAT = Math.max(1, ...rows.map(r => r.anzahlAT||0));\n  const maxFR = Math.max(1, ...rows.map(r => r.anzahlFR||0));\n  const maxIT = Math.max(1, ...rows.map(r => r.anzahlIT||0));\n\n  let html = '';\n  rows.forEach(r => {\n    const wCH = Math.max(4, Math.round((r.anzahlCH \/ maxCH) * 70));\n    const wDE = r.anzahlDE > 0 ? Math.max(4, Math.round((r.anzahlDE \/ maxDE) * 70)) : 0;\n    const atVal = r.anzahlAT || 0;\n    const frVal = r.anzahlFR || 0;\n    const itVal = r.anzahlIT || 0;\n    const wAT = atVal > 0 ? Math.max(4, Math.round((atVal \/ maxAT) * 70)) : 0;\n    const wFR = frVal > 0 ? Math.max(4, Math.round((frVal \/ maxFR) * 70)) : 0;\n    const wIT = itVal > 0 ? Math.max(4, Math.round((itVal \/ maxIT) * 70)) : 0;\n    const ws  = vglEsc((r.wirkstoff||'').split(';')[0].substring(0,38));\n    const wsAttr = (r.wirkstoff||'').replace(\/'\/g,\"\\\\'\").replace(\/\"\/g,'');\n    \/\/ DE\/FR: nur Kreuz (\u2717 = betroffen), keine Zahl, da Meldesystem nicht packungsgenau\n    const deKreuz = r.anzahlDE > 0 ? '<span class=\"vgl-kreuz\">\u2717<\/span>' : '<span class=\"vgl-leer\">\u2013<\/span>';\n    const frKreuz = frVal > 0      ? '<span class=\"vgl-kreuz\">\u2717<\/span>' : '<span class=\"vgl-leer\">\u2013<\/span>';\n    html += `<tr onclick=\"vglDetail('${r.atc}','${wsAttr}')\">\n      <td><span class=\"vgl-atc\">${r.atc}<\/span><\/td>\n      <td class=\"vgl-wirkstoff\">${ws}<\/td>\n      <td class=\"vgl-col-oblig\"><b>${r.anzahlCH}<\/b><\/td>\n      <td class=\"vgl-col-oblig\"><b style=\"color:${atVal>0?'#b7791f':'#cbd5e0'}\">${atVal}<\/b><\/td>\n      <td class=\"vgl-col-oblig\"><b style=\"color:${itVal>0?'#319795':'#cbd5e0'}\">${itVal}<\/b><\/td>\n      <td class=\"vgl-col-frei\" style=\"text-align:center\">${deKreuz}<\/td>\n      <td class=\"vgl-col-frei\" style=\"text-align:center\">${frKreuz}<\/td>\n      <td>\n        <div class=\"vgl-bar-wrap\">\n          <div class=\"vgl-bar vgl-bar-ch\" style=\"width:${wCH}px\" title=\"CH: ${r.anzahlCH}\"><\/div>\n          ${wAT>0 ? `<div class=\"vgl-bar vgl-bar-at\" style=\"width:${wAT}px\" title=\"AT: ${atVal}\"><\/div>` : ''}\n          ${wIT>0 ? `<div class=\"vgl-bar vgl-bar-it\" style=\"width:${wIT}px\" title=\"IT: ${itVal}\"><\/div>` : ''}\n          ${wDE>0 ? `<div class=\"vgl-bar vgl-bar-de\" style=\"width:${wDE}px\" title=\"DE betroffen\"><\/div>` : ''}\n          ${wFR>0 ? `<div class=\"vgl-bar vgl-bar-fr\" style=\"width:${wFR}px\" title=\"FR betroffen\"><\/div>` : ''}\n        <\/div>\n      <\/td>\n      <td><span style=\"font-size:18px;cursor:pointer;\" title=\"Detail anzeigen\">&#x1f50d;<\/span><\/td>\n    <\/tr>`;\n  });\n\n  document.getElementById('vgl-body').innerHTML = html || '<tr><td colspan=\"9\" style=\"text-align:center;color:#a0aec0;padding:20px;\">Keine Treffer<\/td><\/tr>';\n  document.getElementById('vgl-table').style.display = 'table';\n}\n\nfunction vglSort(key) {\n  if (vglSortKey === key) vglSortDir *= -1;\n  else { vglSortKey = key; vglSortDir = -1; }\n  vglRender();\n}\n\ndocument.getElementById('vgl-search').addEventListener('input', vglRender);\n\nasync function vglDetail(atc, wirkstoff) {\n  document.getElementById('vgl-modal-title').textContent = atc + ' \u2013 ' + wirkstoff.split(';')[0].substring(0,50);\n  document.getElementById('vgl-modal-loading').style.display = 'block';\n  document.getElementById('vgl-modal-cols').style.display = 'none';\n  document.getElementById('vgl-modal').style.display = 'block';\n  document.body.style.overflow = 'hidden';\n\n  try {\n    const res = await fetch(VGL_API + '&atc=' + encodeURIComponent(atc));\n    const d   = await res.json();\n\n    let chHtml = '';\n    (d.ch||[]).forEach(r => {\n      chHtml += `<div class=\"vgl-modal-item\">\n        <b>${vglEsc(r.bezeichnung)}<\/b>\n        <small>${vglEsc(r.firma)} \u00b7 GTIN: ${vglEsc(r.gtin)}<\/small>\n        <small>Status: ${vglEsc(r.status)}<\/small>\n        <small>Lieferdatum: ${vglEsc(r.lieferdatum)||'\u2013'} \u00b7 Erste Meldung: ${vglEsc(r.ersteMeldung)}<\/small>\n        ${r.bemerkungen ? '<small>Bem: ' + vglEsc(r.bemerkungen) + '<\/small>' : ''}\n        <small><a class=\"vgl-link vgl-modal-ext\" href=\"https:\/\/www.drugshortage.ch\/?gtin=${vglEsc(r.gtin)}\" target=\"_blank\">&#x2197; drugshortage.ch<\/a><\/small>\n      <\/div>`;\n    });\n    if (!chHtml) chHtml = '<div class=\"vgl-modal-empty\">Keine aktiven CH-Eintr\u00e4ge<\/div>';\n\n    let deHtml = '';\n    (d.de||[]).forEach(r => {\n      deHtml += `<div class=\"vgl-modal-item\">\n        <b>${vglEsc(r.bezeichnung)}<\/b>\n        <small>${vglEsc(r.firma)}<\/small>\n        <small>Wirkstoffe: ${vglEsc(r.wirkstoffe)}<\/small>\n        <small>Engpass: ${vglEsc(r.beginn)} \u2013 ${vglEsc(r.ende)}<\/small>\n        <small>Grund: ${vglEsc(r.grund)}${r.krankenhaus==='ja' ? ' \u00b7 &#x1f3e5; KH-relevant' : ''}<\/small>\n        ${r.alternativ && r.alternativ!=='N\/A' ? '<small>Alternativ: ' + vglEsc(r.alternativ.substring(0,80)) + '<\/small>' : ''}\n        <small><a class=\"vgl-link vgl-modal-ext\" href=\"https:\/\/anwendungen.pharmnet-bund.de\/lieferengpassmeldungen\/faces\/jsp\/suche.jsf\" target=\"_blank\">&#x2197; pharmnet-bund.de<\/a><\/small>\n      <\/div>`;\n    });\n    if (!deHtml) deHtml = '<div class=\"vgl-modal-empty\">Keine aktiven DE-Meldungen<\/div>';\n\n    let atHtml = '';\n    (d.at||[]).forEach(r => {\n      atHtml += `<div class=\"vgl-modal-item\">\n        <b>${vglEsc(r.bezeichnung)}<\/b>\n        <small>${vglEsc(r.firma)}<\/small>\n        <small>Wirkstoffe: ${vglEsc(r.wirkstoffe)}<\/small>\n        <small>${vglEsc(r.staerke)||''} \u00b7 ${vglEsc(r.darreichung)||''}<\/small>\n        <small>Status: ${vglEsc(r.status)||'\u2013'}<\/small>\n        ${r.beginn ? '<small>Beginn: ' + vglEsc(r.beginn) + (r.wiederbelieferung ? ' \u00b7 Wiederbel.: ' + vglEsc(r.wiederbelieferung) : '') + '<\/small>' : ''}\n        ${r.grund ? '<small>Grund: ' + vglEsc(r.grund) + '<\/small>' : ''}\n        ${r.parallelexport==='Ja' ? '<small>&#x26d4; Parallelexportverbot<\/small>' : ''}\n        <small><a class=\"vgl-link vgl-modal-ext\" href=\"https:\/\/medicineshortage.basg.gv.at\/vertriebseinschraenkungen\" target=\"_blank\">&#x2197; basg.gv.at<\/a><\/small>\n      <\/div>`;\n    });\n    if (!atHtml) atHtml = '<div class=\"vgl-modal-empty\">Keine aktiven AT-Meldungen<\/div>';\n\n    let frHtml = '';\n    (d.fr||[]).forEach(r => {\n      frHtml += `<div class=\"vgl-modal-item\">\n        <b>${vglEsc(r.bezeichnung)}<\/b>\n        <small>Wirkstoff: ${vglEsc(r.wirkstoffe)}<\/small>\n        <small>Status: ${vglEsc(r.status)||'\u2013'}<\/small>\n        ${r.debut ? '<small>Beginn: ' + vglEsc(r.debut) + '<\/small>' : ''}\n        ${r.maj ? '<small>Aktualisiert: ' + vglEsc(r.maj) + '<\/small>' : ''}\n        ${r.domaine ? '<small>Bereich: ' + vglEsc(r.domaine) + '<\/small>' : ''}\n        ${r.url ? '<small><a class=\"vgl-link vgl-modal-ext\" href=\"' + vglEsc(r.url) + '\" target=\"_blank\">&#x2197; ansm.sante.fr<\/a><\/small>' : ''}\n      <\/div>`;\n    });\n    if (!frHtml) frHtml = '<div class=\"vgl-modal-empty\">Keine aktiven FR-Engp\u00e4sse<\/div>';\n\n    let itHtml = '';\n    (d.it||[]).forEach(r => {\n      itHtml += `<div class=\"vgl-modal-item\">\n        <b>${vglEsc(r.bezeichnung)}<\/b>\n        <small>Wirkstoff: ${vglEsc(r.wirkstoffe)}<\/small>\n        <small>${vglEsc(r.forma)}<\/small>\n        <small>Grund: ${vglEsc(r.motivazioni)||'\u2013'}<\/small>\n        ${r.inizio ? '<small>Beginn: ' + vglEsc(r.inizio) + (r.fine ? ' \u00b7 Ende (gesch.): ' + vglEsc(r.fine) : '') + '<\/small>' : ''}\n        ${r.equivalente && r.equivalente.toLowerCase().startsWith('s') ? '<small>\u2713 \u00c4quivalent verf\u00fcgbar<\/small>' : ''}\n        ${r.suggerimenti ? '<small>AIFA: ' + vglEsc(r.suggerimenti.substring(0,90)) + '<\/small>' : ''}\n        <small><a class=\"vgl-link vgl-modal-ext\" href=\"https:\/\/www.aifa.gov.it\/farmaci-carenti\" target=\"_blank\">&#x2197; aifa.gov.it<\/a><\/small>\n      <\/div>`;\n    });\n    if (!itHtml) itHtml = '<div class=\"vgl-modal-empty\">Keine aktiven IT-Carenze<\/div>';\n\n    document.getElementById('vgl-modal-cols').innerHTML = `\n      <div class=\"vgl-modal-groupwrap\">\n        <div class=\"vgl-modal-grouptitle oblig\">Meldesystem nach Packung \u00b7 obligatorisch<\/div>\n        <div class=\"vgl-modal-cols-inner\">\n          <div class=\"vgl-modal-col\">\n            <div class=\"vgl-modal-col-header ch\">&#x1f1e8;&#x1f1ed; Schweiz (${(d.ch||[]).length})<\/div>\n            <div style=\"max-height:420px;overflow-y:auto;\">${chHtml}<\/div>\n          <\/div>\n          <div class=\"vgl-modal-col\">\n            <div class=\"vgl-modal-col-header at\">&#x1f1e6;&#x1f1f9; \u00d6sterreich (${(d.at||[]).length})<\/div>\n            <div style=\"max-height:420px;overflow-y:auto;\">${atHtml}<\/div>\n          <\/div>\n          <div class=\"vgl-modal-col\">\n            <div class=\"vgl-modal-col-header it\">&#x1f1ee;&#x1f1f9; Italien (${(d.it||[]).length})<\/div>\n            <div style=\"max-height:420px;overflow-y:auto;\">${itHtml}<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"vgl-modal-groupwrap\">\n        <div class=\"vgl-modal-grouptitle frei\">Meldesystem freiwillig (DE) \u00b7 Daten aggregiert (FR)<\/div>\n        <div class=\"vgl-modal-cols-inner\">\n          <div class=\"vgl-modal-col\">\n            <div class=\"vgl-modal-col-header de\">&#x1f1e9;&#x1f1ea; Deutschland (${(d.de||[]).length})<\/div>\n            <div style=\"max-height:420px;overflow-y:auto;\">${deHtml}<\/div>\n          <\/div>\n          <div class=\"vgl-modal-col\">\n            <div class=\"vgl-modal-col-header fr\">&#x1f1eb;&#x1f1f7; Frankreich (${(d.fr||[]).length})<\/div>\n            <div style=\"max-height:420px;overflow-y:auto;\">${frHtml}<\/div>\n          <\/div>\n        <\/div>\n      <\/div>`;\n\n    document.getElementById('vgl-modal-loading').style.display = 'none';\n    document.getElementById('vgl-modal-cols').style.display = 'grid';\n  } catch(e) {\n    document.getElementById('vgl-modal-loading').innerHTML = '&#x274c; ' + e.toString();\n  }\n}\n\nfunction vglCloseModal() {\n  document.getElementById('vgl-modal').style.display = 'none';\n  document.body.style.overflow = '';\n}\n\nvglLaden();\n<\/script>\n\n\n\n\n<p class=\"wp-block-paragraph\">.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Datenquellen : CH: Drugshortage.ch; DE: parmnet-bund.de ; AT: BASG; FR: ANSM IT: AIFAHinweis : die Daten aus Deutschland stammen aus freiwilligen Meldungen von Firmen. \u00d6sterreich, Italien und Frankreich haben verbindlichere Meldesysteme. Die Lieferengp\u00e4sse in Frankreich sind aggregiert (d.h. die Z\u00e4hlung ist nicht pro Produkt, sondern pro Wirkstoff). Die Details geben Auskunft.Effektiv direkt vergleichbar sind \u00d6sterreich,&#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-21723","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21723","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=21723"}],"version-history":[{"count":5,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21723\/revisions"}],"predecessor-version":[{"id":21738,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21723\/revisions\/21738"}],"wp:attachment":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/media?parent=21723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}