Fix parser: extraer primer valor numérico de línea

This commit is contained in:
2026-04-16 11:26:37 -03:00
parent d3abb1c3fe
commit b9ef2e7f59
+14 -13
View File
@@ -781,24 +781,25 @@ if (!esUnidadSiguiente) {
for (const linea of lineas) {
const lineaLower = linea.toLowerCase().trim();
const valorMatch = linea.replace(/,/g, '.').match(/(\d+\.?\d*)/);
const cleanLinea = linea.replace(/show_chart|list_alt/g, '').replace(/,/g, '.');
const valores = cleanLinea.match(/(\d+\.?\d*)/g);
if (lineaLower.includes('ph') && !lineaLower.includes('pco2') && !lineaLower.includes('pco') && valorMatch) {
ph = parseFloat(valorMatch[1]);
} else if ((lineaLower.includes('pco2') || lineaLower.includes('pco 2') || lineaLower.includes('pco₂')) && valorMatch) {
pco2 = parseFloat(valorMatch[1]);
if (lineaLower.includes('ph') && !lineaLower.includes('pco2') && !lineaLower.includes('pco') && valores) {
ph = parseFloat(valores[0]);
} else if ((lineaLower.includes('pco2') || lineaLower.includes('pco 2') || lineaLower.includes('pco₂')) && valores) {
pco2 = parseFloat(valores[0]);
} else if (lineaLower.includes('po2') || lineaLower.includes('po 2') || lineaLower.includes('po₂')) {
if (valorMatch) po2 = parseFloat(valorMatch[1]);
} else if (lineaLower.includes('hco3') && valorMatch) {
hco3 = parseFloat(valorMatch[1]);
if (valores) po2 = parseFloat(valores[0]);
} else if (lineaLower.includes('hco3') && valores) {
hco3 = parseFloat(valores[0]);
} else if (lineaLower.includes('exceso de base') || lineaLower.includes('exceso de bases') || lineaLower.includes('base excess') || lineaLower.includes('be ') || lineaLower.includes('be,')) {
if (valorMatch) be = parseFloat(valorMatch[1]);
if (valores) be = parseFloat(valores[0]);
} else if (lineaLower.includes('saturación de oxígeno') || lineaLower.includes('saturación de oxigeno') || lineaLower.includes('sato2') || lineaLower.includes('sat o2')) {
if (valorMatch) sato2 = parseFloat(valorMatch[1]);
} else if (lineaLower.includes('lactato') && valorMatch) {
lactato = parseFloat(valorMatch[1]);
if (valores) sato2 = parseFloat(valores[0]);
} else if (lineaLower.includes('lactato') && valores) {
lactato = parseFloat(valores[0]);
} else if (lineaLower.includes('fio2') || lineaLower.includes('fi o2') || lineaLower.includes('fi o₂')) {
if (valorMatch) fio2 = parseFloat(valorMatch[1]);
if (valores) fio2 = parseFloat(valores[0]);
} else if (lineaLower.match(/\d{4}-\d{2}-\d{2}/)) {
const fechaMatch = lineaLower.match(/(\d{4}-\d{2}-\d{2})/);
if (fechaMatch) fecha = fechaMatch[1];