Fix Evolucion button in Laboratorios tab and add Copiar para Evolucion option
This commit is contained in:
@@ -951,13 +951,20 @@ function SeccionLaboratorios({ lab, patientId, internacionId, add, update, del,
|
|||||||
];
|
];
|
||||||
|
|
||||||
const datosEvolucion = lab
|
const datosEvolucion = lab
|
||||||
.filter(l => l.resultados.some(r => r.parametro === parametroEvolucion))
|
.filter(l => l.pacienteId === patientId && l.resultados.some(r => r.parametro === parametroEvolucion))
|
||||||
.sort((a, b) => new Date(a.fecha).getTime() - new Date(b.fecha).getTime())
|
.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 => {
|
.map(l => {
|
||||||
const r = l.resultados.find(r => r.parametro === parametroEvolucion);
|
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 getValor = (l: Laboratorio, param: string) => {
|
||||||
const r = l.resultados.find(r => r.parametro === param);
|
const r = l.resultados.find(r => r.parametro === param);
|
||||||
return r ? `${r.valor}` : '-';
|
return r ? `${r.valor}` : '-';
|
||||||
@@ -1400,7 +1407,7 @@ function SeccionLaboratorios({ lab, patientId, internacionId, add, update, del,
|
|||||||
<div className="flex justify-between">
|
<div className="flex justify-between">
|
||||||
<div className="flex gap-2">
|
<div className="flex gap-2">
|
||||||
{canEdit && <Button variant="outline" onClick={() => { reset(); setDialog(true); }}><Plus className="h-4 w-4 mr-2" />Nuevo</Button>}
|
{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>
|
<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>
|
||||||
</div>
|
</div>
|
||||||
@@ -1709,6 +1716,10 @@ function SeccionLaboratorios({ lab, patientId, internacionId, add, update, del,
|
|||||||
<ClipboardList className="mr-2 h-4 w-4" />
|
<ClipboardList className="mr-2 h-4 w-4" />
|
||||||
Ver Observaciones
|
Ver Observaciones
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
|
<DropdownMenuItem onClick={() => copiarResumenLaboratorio(l)}>
|
||||||
|
<FileText className="mr-2 h-4 w-4 text-emerald-600" />
|
||||||
|
Copiar para Evolución
|
||||||
|
</DropdownMenuItem>
|
||||||
</DropdownMenuContent>
|
</DropdownMenuContent>
|
||||||
</DropdownMenu>
|
</DropdownMenu>
|
||||||
</TableCell>
|
</TableCell>
|
||||||
|
|||||||
Reference in New Issue
Block a user