Search EUDAMED

The EU's official European Database on Medical Devices: economic operators, devices (UDI-DI), notified-body certificates, and market surveillance. Filter, combine, and export to Excel or Word.

Live data from the official EUDAMED public database (European Commission).
Home EUDAMED Search
Combine criteria: all fields apply together. Separate values with ; to match any (e.g. stent; catheter).
'; downloadBlob('' + html, 'application/msword', exportName('doc')); }function updateExportButtons() { var selCount = Object.keys(state.selected).length; var pageCount = (state.lastData && state.lastData.content && state.lastData.content.length) || 0; var has = selCount > 0 || pageCount > 0; ['mdn-eu-x-csv', 'mdn-eu-x-xlsx', 'mdn-eu-x-doc'].forEach(function (id) { el(id).disabled = !has; }); el('mdn-eu-sel-lbl').textContent = selCount ? (selCount + ' selected →') : (pageCount ? 'Export page →' : ''); }// ── Saved searches (presets, per tab, in localStorage) ─────────────────────── var PKEY = 'mdnEudamedPresets'; function loadPresets() { try { return JSON.parse(localStorage.getItem(PKEY) || '{}'); } catch (e) { return {}; } } function savePresets(p) { try { localStorage.setItem(PKEY, JSON.stringify(p)); } catch (e) {} } function refreshPresetList() { var all = loadPresets()[state.tab] || {}; el('mdn-eu-presets').innerHTML = '' + Object.keys(all).map(function (n) { return ''; }).join(''); } function applyPreset(params) { var cfg = TABS[state.tab]; if (cfg.segmented && params[cfg.segmented.key]) { var seg = el('mdn-eu-fields').querySelector('.mdn-eu-seg'); if (seg) seg.querySelectorAll('button').forEach(function (b) { b.classList.toggle('active', b.getAttribute('data-val') === params[cfg.segmented.key]); }); } Object.keys(params).forEach(function (k) { if (cfg.segmented && k === cfg.segmented.key) return; setFieldValue(k, params[k]); }); }// ── Tab switching ──────────────────────────────────────────────────────────── function setTab(tab) { state.tab = tab; state.page = 0; state.lastData = null; state.selected = {}; document.querySelectorAll('.mdn-eu-tab').forEach(function (t) { var on = t.getAttribute('data-tab') === tab; t.classList.toggle('active', on); t.setAttribute('aria-selected', on ? 'true' : 'false'); }); buildFields(); refreshPresetList(); el('mdn-eu-count').textContent = ''; el('mdn-eu-pager').style.display = 'none'; renderState('

Enter a search term or filter, then press Search.

'); updateExportButtons(); }// ── Wire up ────────────────────────────────────────────────────────────────── el('mdn-eu-tabs').addEventListener('click', function (e) { var t = e.target.closest('.mdn-eu-tab'); if (t) setTab(t.getAttribute('data-tab')); }); // Keyboard support for the tab strip: Enter/Space activates, arrows move focus. el('mdn-eu-tabs').addEventListener('keydown', function (e) { var t = e.target.closest('.mdn-eu-tab'); if (!t) return; if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); setTab(t.getAttribute('data-tab')); return; } if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') { e.preventDefault(); var tabs = Array.prototype.slice.call(document.querySelectorAll('.mdn-eu-tab')); var i = tabs.indexOf(t) + (e.key === 'ArrowRight' ? 1 : -1); if (i < 0) i = tabs.length - 1; if (i >= tabs.length) i = 0; tabs[i].focus(); } }); el('mdn-eu-search').addEventListener('click', function () { state.page = 0; search(); }); el('mdn-eu-clear').addEventListener('click', function () { buildFields(); }); el('mdn-eu-save-preset').addEventListener('click', function () { var params = collectParams(); if (!Object.keys(params).length) { alert('Enter some filters first, then Save.'); return; } var name = prompt('Save this search as:'); if (!name) return; var all = loadPresets(); all[state.tab] = all[state.tab] || {}; all[state.tab][name] = params; savePresets(all); refreshPresetList(); el('mdn-eu-presets').value = name; }); el('mdn-eu-presets').addEventListener('change', function () { var name = this.value; if (!name) return; var params = (loadPresets()[state.tab] || {})[name]; if (!params) return; applyPreset(params); state.page = 0; search(); }); el('mdn-eu-prev').addEventListener('click', function () { if (state.page > 0) { state.page--; search(); window.scrollTo({ top: 0, behavior: 'smooth' }); } }); el('mdn-eu-next').addEventListener('click', function () { state.page++; search(); window.scrollTo({ top: 0, behavior: 'smooth' }); }); el('mdn-eu-modal-bg').addEventListener('click', closeModal); el('mdn-eu-modal-close').addEventListener('click', closeModal); document.addEventListener('keydown', function (e) { if (e.key === 'Escape') closeModal(); }); el('mdn-eu-x-csv').addEventListener('click', exportCSV); el('mdn-eu-x-xlsx').addEventListener('click', exportXLSX); el('mdn-eu-x-doc').addEventListener('click', exportDOC);// Load reference data for dropdowns, then render the initial tab. fetch(API + 'refdata').then(function (r) { return r.json(); }).then(function (d) { if (d && typeof d === 'object') REF = d; }).catch(function () {}).finally(function () { setTab('devices'); }); })();
Scroll to Top