fix(HistoriaClinica): agregar handlers de otrosLaboratorios en store y corregir ReferenceError

This commit is contained in:
2026-08-12 22:18:27 +00:00
parent ed31b23159
commit 6fb825778f
12 changed files with 851 additions and 32 deletions
+79
View File
@@ -0,0 +1,79 @@
const fs = require('fs');
let code = fs.readFileSync('src/sections/HistoriaClinica.tsx', 'utf8');
// 1. Update imports
code = code.replace("EstudioComplementario, Interconsulta, ATB, Indicacion, MovimientoIndicacion, Pendiente } from '@/types';", "EstudioComplementario, Interconsulta, ATB, Indicacion, MovimientoIndicacion, Pendiente, OtroLaboratorio } from '@/types';");
// 2. Destructure in component
const destructureRegex = /const \{[\s\S]*?\} = useHospitalStore\(\);/;
const destructuredMatch = code.match(destructureRegex);
if (destructuredMatch) {
let newDestructure = destructuredMatch[0].replace(
"laboratorios,",
"laboratorios, otrosLaboratorios, agregarOtroLaboratorio, actualizarOtroLaboratorio, eliminarOtroLaboratorio,"
);
code = code.replace(destructuredMatch[0], newDestructure);
}
// 3. Update SeccionLaboratorios props in main render
code = code.replace(
/<SeccionLaboratorios\s*portalNode=\{portalNode\}\s*lab=\{laboratorios\}\s*patientId=\{paciente\.id\}\s*internacionId=\{internacion\.id\}\s*add=\{onAgregarLaboratorio\}\s*update=\{onActualizarLaboratorio\}\s*del=\{onEliminarLaboratorio\}\s*addAcidoBase=\{onAgregarAcidoBase\}\s*canEdit=\{canEdit\}\s*\/>/,
`<SeccionLaboratorios
portalNode={portalNode}
lab={laboratorios}
otrosLaboratorios={otrosLaboratorios}
patientId={paciente.id}
internacionId={internacion.id}
add={onAgregarLaboratorio}
update={onActualizarLaboratorio}
del={onEliminarLaboratorio}
addAcidoBase={onAgregarAcidoBase}
addOtroLaboratorio={agregarOtroLaboratorio}
canEdit={canEdit}
/>`
);
// 4. In `handleImportarLaboratorio` (we need to change how observations are saved)
// Find the exact handleImportarLaboratorio function
const handleImportarMatch = code.match(/const handleImportarLaboratorio = \(\) => \{[\s\S]*?setImportHora\(new Date\(\)\.toTimeString\(\)\.slice\(0, 5\)\);\s*\};/);
if (handleImportarMatch) {
const newImport = `const handleImportarLaboratorio = () => {
if (!addAcidoBase) return;
if (importResultados.length === 0 && !importObservaciones && !importAcidoBase) return;
if (importAcidoBase) {
addAcidoBase({ ...importAcidoBase, pacienteId: patientId, internacionId, fecha: importFecha, hora: importHora });
}
if (importResultados.length > 0) {
add({
pacienteId: patientId,
internacionId,
fecha: importFecha,
hora: importHora,
resultados: importResultados,
});
}
if (importObservaciones && importObservaciones.trim() !== '') {
agregarOtroLaboratorio({
pacienteId: patientId,
internacionId,
fecha: importFecha,
hora: importHora,
observaciones: importObservaciones
});
}
setImportDialog(false);
setImportTexto('');
setImportResultados([]);
setImportObservaciones('');
setImportAcidoBase(null);
setImportFecha(getLocalToday());
setImportHora(new Date().toTimeString().slice(0, 5));
};`;
code = code.replace(handleImportarMatch[0], newImport);
}
fs.writeFileSync('src/sections/HistoriaClinica.tsx', code);