Agregar hora a laboratorios: campo, sort, display

This commit is contained in:
2026-04-16 14:49:49 -03:00
parent 4be83f58e3
commit 143b9f21de
3 changed files with 21 additions and 6 deletions
+11 -4
View File
@@ -572,6 +572,7 @@ function SeccionLaboratorios({ lab, patientId, add, update, del, addAcidoBase }:
const [edit, setEdit] = useState<Laboratorio | null>(null);
const [obsLab, setObsLab] = useState<Laboratorio | null>(null);
const [fecha, setFecha] = useState(new Date().toISOString().split('T')[0]);
const [hora, setHora] = useState(new Date().toTimeString().slice(0, 5));
const [observaciones, setObservaciones] = useState('');
const [resultados, setResultados] = useState<ResultadoLaboratorio[]>([]);
const [hto, setHto] = useState('');
@@ -668,6 +669,7 @@ return res;
const reset = () => {
setFecha(new Date().toISOString().split('T')[0]);
setHora(new Date().toTimeString().slice(0, 5));
setObservaciones('');
setHto(''); setHb(''); setGb(''); setPlaq('');
setGluc(''); setUrea(''); setCreat('');
@@ -851,9 +853,11 @@ for (const linea of lineas) {
addAcidoBase(importAcidoBase);
}
const horaActual = new Date().toTimeString().slice(0, 5);
add({
pacienteId: patientId,
fecha: importFecha,
hora: horaActual,
resultados: importResultados,
observaciones: importObservaciones
});
@@ -869,6 +873,7 @@ for (const linea of lineas) {
const loadEdit = (l: Laboratorio) => {
setEdit(l);
setFecha(l.fecha);
setHora(l.hora || '');
setObservaciones(l.observaciones || '');
setHto(getValorRaw(l, 'Hematocrito'));
setHb(getValorRaw(l, 'Hemoglobina'));
@@ -893,16 +898,18 @@ for (const linea of lineas) {
const handleGuardar = () => {
const resultadosLaboratorio = buildResultados();
if (edit) {
update(edit.id, { fecha, resultados: resultadosLaboratorio, observaciones });
update(edit.id, { fecha, hora, resultados: resultadosLaboratorio, observaciones });
} else {
add({ pacienteId: patientId || '', fecha, resultados: resultadosLaboratorio, observaciones });
add({ pacienteId: patientId || '', fecha, hora, resultados: resultadosLaboratorio, observaciones });
}
setDialog(false);
reset();
};
const labs = lab.filter(l => l.pacienteId === patientId).sort((a, b) => {
const diff = new Date(b.fecha).getTime() - new Date(a.fecha).getTime();
const dateA = new Date(a.fecha + 'T' + (a.hora || '00:00')).getTime();
const dateB = new Date(b.fecha + 'T' + (b.hora || '00:00')).getTime();
const diff = dateB - dateA;
return labSortAsc ? -diff : diff;
});
@@ -1172,7 +1179,7 @@ for (const linea of lineas) {
<TableBody>
{labs.map(l => (
<TableRow key={l.id}>
<TableCell>{l.fecha}</TableCell>
<TableCell>{l.fecha} {l.hora || ''}</TableCell>
<TableCell className={getValorStyle(l, 'Hematocrito')}>{getValor(l, 'Hematocrito')}</TableCell>
<TableCell className={getValorStyle(l, 'Hemoglobina')}>{getValor(l, 'Hemoglobina')}</TableCell>
<TableCell className={getValorStyle(l, 'Leucocitos')}>{getValor(l, 'Leucocitos')}</TableCell>