Parser: extraer primer valor numerico despues de show_chart

This commit is contained in:
2026-04-16 13:16:47 -03:00
parent 6c5b4646a0
commit 08a3a0105f
+5 -16
View File
@@ -727,21 +727,11 @@ for (const linea of lineas) {
for (const [clave, info] of Object.entries(mapeoParametros)) {
if (lineaLower.includes(clave)) {
const cleanLinea = linea.replace(/show_chart|list_alt/g, '').replace(/\t+/g, ' ').replace(/\s+/g, ' ').trim();
const partes = cleanLinea.split(' ');
// show_chart está al inicio, el valor está en posicion 1
const hasIcon = linea.includes('show_chart') || linea.includes('list_alt');
let idxParam = hasIcon ? 1 : 0;
for (let i = idxParam + 1; i < partes.length; i++) {
const parte = partes[i].replace(',', '.').replace('³', '').replace('²', '');
const valor = parseFloat(parte);
// buscar primer número puro después de show_chart
const match = linea.match(/show_chart\s+[\w\s]+\s+(\d+\.?\d*)/);
if (match && match[1]) {
const valor = parseFloat(match[1].replace(',', '.'));
if (!isNaN(valor) && valor > 0 && valor < 1000) {
const sig = partes[i + 1] || '';
const esRango = sig === '-' || /\d/.test(sig);
if (!esRango) {
const nombreNormalizado = info.nombre;
let valorFinal = valor;
if (nombreNormalizado === 'Leucocitos' || nombreNormalizado === 'Plaquetas') {
@@ -753,13 +743,12 @@ for (const linea of lineas) {
parametro: nombreNormalizado,
valor: valorFinal,
unidad: info.unidad,
estado: calcularEstadoLaboratorio(nombreNormalizado, parte)
estado: calcularEstadoLaboratorio(nombreNormalizado, match[1])
});
}
break;
}
}
}
break;
}
}