Analizador de Cartas de Advertencia de la FDA

Pega cualquier carta de advertencia de la FDA (las cartas oficiales de la FDA siempre están en inglés) y obtén un análisis estructurado instantáneo — violaciones identificadas, regulaciones mapeadas, causas raíz explicadas, y un plan de respuesta priorizado de 15 días.

Gratis — Sin necesidad de registro
21 CFR 117 mapeado
Violaciones extraídas automáticamente
Plan de respuesta de 15 días
Exportar a PDF

Analizador de Cartas de Advertencia de la FDA

Herramienta gratis
Pega el texto de la carta de advertencia de la FDA (en inglés — texto oficial de la FDA)
⚠️ Violaciones Identificadas
⚖️ Regulaciones Citadas
📋 Plan de Respuesta de 15 Días Priorizado
💡 Análisis de Inteligencia PCI
Inteligencia semanal

Adelántate a la fiscalización de la FDA.
Recibe información semanal, gratis.

Análisis de cartas de advertencia de la FDA, patrones de hallazgos de auditoría e inteligencia regulatoria — entregados semanalmente a profesionales de seguridad alimentaria y control de plagas.

Sin spam. Cancela cuando quieras. Análisis de Juan Prieto, ACE · PCQI.

`; const win = window.open('', '_blank'); win.document.write(html); win.document.close(); setTimeout(() => { win.focus(); win.print(); }, 600); } let currentTab = 'text'; function switchTab(tab) { currentTab = tab; document.getElementById('panelText').style.display = tab === 'text' ? '' : 'none'; document.getElementById('panelPdf').style.display = tab === 'pdf' ? '' : 'none'; document.getElementById('tabText').classList.toggle('active', tab === 'text'); document.getElementById('tabPdf').classList.toggle('active', tab === 'pdf'); } function handlePdfUpload(input) { const file = input.files[0]; if (!file) return; const status = document.getElementById('uploadStatus'); status.style.display = 'block'; status.style.color = 'var(--muted)'; status.textContent = '⏳ Extrayendo texto del PDF...'; const formData = new FormData(); formData.append('pdf', file); formData.append('lang', 'es'); fetch('https://api.fsai360.com/api/v1/public/extract-pdf', { method: 'POST', body: formData }) .then(r => r.json()) .then(data => { if (!data.success) throw new Error(data.error || 'La extracción falló'); document.getElementById('letterInput').value = data.text; status.style.color = 'var(--green)'; status.textContent = '✅ PDF extraído — ' + data.text.length + ' caracteres. Cambia a la pestaña "Pegar Texto" para revisar, o haz clic en Analizar ahora.'; switchTab('text'); }) .catch(err => { status.style.color = 'var(--red)'; status.textContent = '❌ ' + err.message; }); } // Drag and drop support document.addEventListener('DOMContentLoaded', function() { const zone = document.getElementById('uploadZone'); if (zone) { zone.addEventListener('dragover', e => { e.preventDefault(); zone.classList.add('dragover'); }); zone.addEventListener('dragleave', () => zone.classList.remove('dragover')); zone.addEventListener('drop', e => { e.preventDefault(); zone.classList.remove('dragover'); const file = e.dataTransfer.files[0]; if (file && file.type === 'application/pdf') { const dt = new DataTransfer(); dt.items.add(file); document.getElementById('pdfInput').files = dt.files; handlePdfUpload(document.getElementById('pdfInput')); } }); } var m = document.getElementById('confirmModal'); if (m) m.addEventListener('click', function(e) { if (e.target === this) closeModal(); }); });