Directorio de Organismos Reconocidos

Consulte el listado de laboratorios de ensayos, laboratorios de calibración y organismos de inspección reconocidos por el Consejo Nacional de Acreditación (CNA).

Total de Organismos
🏛
Laboratorios de Ensayos
🔬
Laboratorios de Calibración
Organismos de Inspección
🔍
Búsqueda por esquema de acreditación
Cargando directorio...
Cargando...
'; paginationEl.innerHTML = ''; const q = encodeURIComponent(qInput.value.trim()); const tipo = encodeURIComponent(tipoInput.value); const url = `${apiBase}/buscarcna_rec_api?per_page=${perPage}&page=${page}` + (q ? `&q=${q}` : '') + (tipo ? `&tipo=${tipo}` : ''); fetch(url) .then(r=>r.json()) .then(data=>{ renderResults(data.data||[]); renderPagination(data); }) .catch(()=>{ resultsEl.innerHTML = '
No se pudo conectar con el servidor.
'; }); } /* ── BADGE tipo ── */ function badgeClass(tipo){ if(!tipo) return 'badge-def'; const t = tipo.toUpperCase(); if(t==='LE'||t==='LER') return 'badge-le'; if(t==='LC'||t==='LCR') return 'badge-lc'; if(t==='OI'||t==='OIR') return 'badge-oi'; return 'badge-def'; } function badgeLabel(tipo){ if(!tipo) return 'N/D'; const t = tipo.toUpperCase(); if(t==='LE'||t==='LER') return 'Lab. Ensayos'; if(t==='LC'||t==='LCR') return 'Lab. Calibración'; if(t==='OI'||t==='OIR') return 'Org. Inspección'; return tipo; } /* ── RENDER CARDS ── */ function renderResults(items){ if(!items.length){ resultsEl.innerHTML = `
No se encontraron organismos con los criterios indicados.
`; return; } resultsEl.innerHTML = items.map((i,idx)=>`
${badgeLabel(i.tipo_oec||i.tipo)} ${i.codigo ? `${escapeHtml(i.codigo)}` : ''}
${escapeHtml(i.organismo)}
${i.alcance ? `
${escapeHtml(i.alcance)}
` : ''}
${i.telefono ? `
📞${escapeHtml(i.telefono)}
` : ''} ${i.correo ? `` : ''} ${i.web ? `
🌐${escapeHtml(i.web)}
` : ''}
`).join(''); } /* ── PAGINACIÓN ── */ function renderPagination(data){ const cur = data.current_page; const last = data.last_page; const total= data.total; document.getElementById('total_results').innerHTML = `Se encontraron ${(total||0).toLocaleString()} organismos reconocidos`; if(last|<`; html += ``; if(pages[0]>1) html += ``; pages.forEach(p=>{ html += ``; }); if(pages[pages.length-1]…`; html += ``; html += ``; paginationEl.innerHTML = html; paginationEl.querySelectorAll('button[data-p]').forEach(btn=>{ btn.addEventListener('click',()=> fetchPage(parseInt(btn.dataset.p))); }); } /* ── HELPERS ── */ function escapeHtml(str){ return (str||'').toString().replace(/[&"]/g, c=>({'&':'&','':'>','"':'"'}[c])); } /* ── EVENTOS ── */ buscarBtn.addEventListener('click', ()=> fetchPage(1)); qInput.addEventListener('keydown', e=>{ if(e.key==='Enter') fetchPage(1); }); limpiarBtn.addEventListener('click',()=>{ qInput.value=''; tipoInput.value=''; fetchPage(1); }); /* ── INICIO ── */ loadTotals(); fetchPage(1); })();