-
+
-
+
@@ -462,13 +462,12 @@ export function Evoluciones({
)}
-
onEliminarEvolucion(evolucion.id)}
- >
-
+ onEliminarEvolucion(evolucion.id)}
+ >
+
diff --git a/src/sections/HistoriaClinica.tsx b/src/sections/HistoriaClinica.tsx
index 6721e68..90af0e5 100644
--- a/src/sections/HistoriaClinica.tsx
+++ b/src/sections/HistoriaClinica.tsx
@@ -22,7 +22,11 @@ import {
Wind,
Droplets,
Save,
- X
+ X,
+ MoreHorizontal,
+ Edit,
+ ClipboardList,
+ TrendingUp
} from 'lucide-react';
import { Card, CardContent } from '@/components/ui/card';
import { Badge } from '@/components/ui/badge';
@@ -33,6 +37,8 @@ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table';
+import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';
+import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts';
import type { Laboratorio, AcidoBase, Cultivo, Paciente, ResultadoLaboratorio, Internacion, Evolucion, Cama } from '@/types';
import { formatDateDDMMYYYY } from '@/lib/utils';
@@ -212,7 +218,7 @@ export function HistoriaClinica({
-
Historia Clínica
+
Historia Clínica
Cama: {cama?.numero || 'N/A'} | {paciente.apellido}, {paciente.nombre} | {paciente.fechaNacimiento ? calcularEdad(paciente.fechaNacimiento) + ' años' : ''} | DNI: {paciente.dni}
@@ -534,6 +540,8 @@ function SeccionLaboratorios({ lab, patientId, add, update, del }: {
}) {
const [dialog, setDialog] = useState(false);
const [obsDialog, setObsDialog] = useState(false);
+ const [evolDialog, setEvolDialog] = useState(false);
+ const [selectedLab, setSelectedLab] = useState
(null);
const [edit, setEdit] = useState(null);
const [obsLab, setObsLab] = useState(null);
const [fecha, setFecha] = useState(new Date().toISOString().split('T')[0]);
@@ -556,6 +564,23 @@ function SeccionLaboratorios({ lab, patientId, add, update, del }: {
const [tp, setTp] = useState('');
const [kptt, setKptt] = useState('');
const [rin, setRin] = useState('');
+ const [parametroEvolucion, setParametroEvolucion] = useState('');
+
+ const parametrosLaboratorio = [
+ 'Hematocrito', 'Hemoglobina', 'Leucocitos', 'Plaquetas',
+ 'Glucemia', 'Urea', 'Creatinina',
+ 'Sodio', 'Potasio', 'Cloro',
+ 'Bilirrubina Total', 'Bilirrubina Directa', 'GOT', 'GPT',
+ 'Tiempo de Protrombina', 'KPTT', 'INR'
+ ];
+
+ 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())
+ .map(l => {
+ const r = l.resultados.find(r => r.parametro === parametroEvolucion);
+ return { fecha: l.fecha, valor: r ? parseFloat(String(r.valor)) : null };
+ });
const getEstadoColor = (estado: ResultadoLaboratorio['estado']) => {
switch (estado) {
@@ -657,8 +682,11 @@ function SeccionLaboratorios({ lab, patientId, add, update, del }: {
return (
-
-
{ reset(); setDialog(true); }}>Nuevo Laboratorio
+
+
+
{ reset(); setDialog(true); }}>Nuevo Laboratorio
+
{ setSelectedLab(lab[0] || null); setParametroEvolucion('Hematocrito'); setEvolDialog(true); }}>Evolución
+