Fix Evolucion button in Laboratorios tab and add Copiar para Evolucion option

This commit is contained in:
2026-08-11 18:35:22 +00:00
parent bf62f94380
commit ca2f8a32e1
+15 -4
View File
@@ -951,13 +951,20 @@ function SeccionLaboratorios({ lab, patientId, internacionId, add, update, del,
];
const datosEvolucion = lab
.filter(l => l.resultados.some(r => r.parametro === parametroEvolucion))
.sort((a, b) => new Date(a.fecha).getTime() - new Date(b.fecha).getTime())
.filter(l => l.pacienteId === patientId && l.resultados.some(r => r.parametro === parametroEvolucion))
.sort((a, b) => new Date(a.fecha + 'T' + (a.hora || '00:00')).getTime() - new Date(b.fecha + 'T' + (b.hora || '00:00')).getTime())
.map(l => {
const r = l.resultados.find(r => r.parametro === parametroEvolucion);
return { fecha: l.fecha, valor: r ? parseFloat(String(r.valor)) : null };
return { fecha: `${l.fecha}${l.hora ? ' ' + l.hora : ''}`, valor: r ? parseFloat(String(r.valor)) : null };
});
const copiarResumenLaboratorio = (l: Laboratorio) => {
const resumen = l.resultados.map(r => `${r.parametro}: ${r.valor} ${r.unidad || ''}`.trim()).join(' | ');
const texto = `Laboratorio (${l.fecha}${l.hora ? ' ' + l.hora : ''}): ${resumen}${l.observaciones ? '\nObs: ' + l.observaciones : ''}`;
navigator.clipboard.writeText(texto);
toast.success('Resumen de laboratorio copiado al portapapeles');
};
const getValor = (l: Laboratorio, param: string) => {
const r = l.resultados.find(r => r.parametro === param);
return r ? `${r.valor}` : '-';
@@ -1400,7 +1407,7 @@ function SeccionLaboratorios({ lab, patientId, internacionId, add, update, del,
<div className="flex justify-between">
<div className="flex gap-2">
{canEdit && <Button variant="outline" onClick={() => { reset(); setDialog(true); }}><Plus className="h-4 w-4 mr-2" />Nuevo</Button>}
<Button variant="outline" onClick={() => { setSelectedLab(lab[0] || null); setParametroEvolucion('Hematocrito'); setEvolDialog(true); }}><TrendingUp className="h-4 w-4 mr-2" />Evolución</Button>
<Button variant="outline" onClick={() => { setParametroEvolucion('Hematocrito'); setEvolDialog(true); }}><TrendingUp className="h-4 w-4 mr-2" />Evolución</Button>
<Button variant="outline" onClick={() => { setImportFecha(new Date().toISOString().split('T')[0]); setImportHora(new Date().toTimeString().slice(0, 5)); setImportTexto(''); setImportResultados([]); setImportObservaciones(''); setImportDialog(true); }}><FileText className="h-4 w-4 mr-2" />Importar</Button>
</div>
</div>
@@ -1709,6 +1716,10 @@ function SeccionLaboratorios({ lab, patientId, internacionId, add, update, del,
<ClipboardList className="mr-2 h-4 w-4" />
Ver Observaciones
</DropdownMenuItem>
<DropdownMenuItem onClick={() => copiarResumenLaboratorio(l)}>
<FileText className="mr-2 h-4 w-4 text-emerald-600" />
Copiar para Evolución
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
</TableCell>