Parser: extraer primer valor numerico despues de show_chart
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user