diff --git a/src/sections/HistoriaClinica.tsx b/src/sections/HistoriaClinica.tsx index 236f91c..1aaafb1 100644 --- a/src/sections/HistoriaClinica.tsx +++ b/src/sections/HistoriaClinica.tsx @@ -730,16 +730,18 @@ for (const linea of lineas) { const cleanLinea = linea.replace(/show_chart|list_alt/g, '').replace(/\t+/g, ' ').replace(/\s+/g, ' ').trim(); const partes = cleanLinea.split(' '); - for (let i = 0; i < partes.length; i++) { + let idxParam = partes.findIndex(p => p.toLowerCase().includes(clave)); + if (idxParam === -1) idxParam = 0; + + for (let i = Math.max(0, idxParam); i < partes.length; i++) { const parte = partes[i].replace(',', '.'); const valor = parseFloat(parte); if (!isNaN(valor) && valor > 0 && valor < 1000) { const sig = partes[i + 1] || ''; - const esUnidad = /^(10[^µ]*µl|%|g\/dl|mg\/dl|mEq\/L|u\/l|fL|pg|seg|ng\/ml)/i.test(sig) || /^10[\^*]?[³6]?[\/]?µl$/i.test(sig); + const esRango = sig === '-' || /\d/.test(sig); -if (!esUnidad || i === 0) { + if (!esRango) { const nombreNormalizado = info.nombre; - let valorFinal = valor; if (nombreNormalizado === 'Leucocitos' || nombreNormalizado === 'Plaquetas') { valorFinal = valor * 1000; @@ -752,8 +754,6 @@ if (!esUnidad || i === 0) { unidad: info.unidad, estado: calcularEstadoLaboratorio(nombreNormalizado, parte) }); - } else if (!['Eritroblastos', 'Neutrófilos', 'Linfocitos', 'Monocitos', 'Eosinófilos', 'Basófilos'].includes(info.nombre)) { - observacionesExtra.push(`${info.nombre}: ${valor} ${info.unidad}`.trim()); } break; }