Add Indicaciones tab - full implementation
This commit is contained in:
@@ -167,6 +167,10 @@ function AppContent() {
|
||||
onAgregarATB={(atb) => store.agregarATB({ ...atb, internacionId: internacion.id })}
|
||||
onActualizarATB={store.actualizarATB}
|
||||
onEliminarATB={store.eliminarATB}
|
||||
indicadores={(store.indicadores || []).filter(i => i.internacionId === internacion.id)}
|
||||
onAgregarIndicacion={(i) => store.agregarIndicacion({ ...i, internacionId: internacion.id })}
|
||||
onActualizarIndicacion={store.actualizarIndicacion}
|
||||
onEliminarIndicacion={store.eliminarIndicacion}
|
||||
onActualizarInternacion={store.actualizarInternacion}
|
||||
onActualizarCama={store.actualizarCama}
|
||||
onVolver={() => store.setVista('internaciones')}
|
||||
|
||||
@@ -405,6 +405,29 @@ const finalizarInternacion = useCallback((internacionId: string, datos: {
|
||||
}));
|
||||
}, []);
|
||||
|
||||
const agregarIndicacion = useCallback((indicacion: Omit<Indicacion, 'id'>) => {
|
||||
const nuevaIndicacion: Indicacion = { ...indicacion, id: generateUUID() };
|
||||
setState(prev => ({
|
||||
...prev,
|
||||
indicadores: [...prev.indicadores, nuevaIndicacion],
|
||||
}));
|
||||
return nuevaIndicacion.id;
|
||||
}, []);
|
||||
|
||||
const actualizarIndicacion = useCallback((id: string, datos: Partial<Indicacion>) => {
|
||||
setState(prev => ({
|
||||
...prev,
|
||||
indicadores: prev.indicadores.map(i => i.id === id ? { ...i, ...datos } : i),
|
||||
}));
|
||||
}, []);
|
||||
|
||||
const eliminarIndicacion = useCallback((id: string) => {
|
||||
setState(prev => ({
|
||||
...prev,
|
||||
indicadores: prev.indicadores.filter(i => i.id !== id),
|
||||
}));
|
||||
}, []);
|
||||
|
||||
// Acciones de areas
|
||||
const agregarArea = useCallback((area: Omit<Area, 'id'>) => {
|
||||
const nuevaArea: Area = { ...area, id: generateUUID() };
|
||||
@@ -534,6 +557,9 @@ const getEstadisticas = useCallback(() => {
|
||||
agregarATB,
|
||||
actualizarATB,
|
||||
eliminarATB,
|
||||
agregarIndicacion,
|
||||
actualizarIndicacion,
|
||||
eliminarIndicacion,
|
||||
agregarArea,
|
||||
actualizarArea,
|
||||
eliminarArea,
|
||||
|
||||
@@ -51,8 +51,9 @@ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@
|
||||
import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"
|
||||
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, EstudioComplementario, Interconsulta, ATB } from '@/types';
|
||||
import type { Laboratorio, AcidoBase, Cultivo, Paciente, ResultadoLaboratorio, Internacion, Evolucion, Cama, EstudioComplementario, Interconsulta, ATB, Indicacion } from '@/types';
|
||||
import { formatDateDDMMYYYY } from '@/lib/utils';
|
||||
import { SeccionIndicaciones } from './SeccionIndicaciones';
|
||||
|
||||
interface HistoriaClinicaProps {
|
||||
internacion: Internacion;
|
||||
@@ -66,6 +67,7 @@ interface HistoriaClinicaProps {
|
||||
estudiosComplementarios: EstudioComplementario[];
|
||||
interconsultas: Interconsulta[];
|
||||
atb: ATB[];
|
||||
indicadores: Indicacion[];
|
||||
onAgregarEvolucion: (evolucion: Omit<Evolucion, 'id'>) => void;
|
||||
onActualizarEvolucion: (id: string, datos: Partial<Evolucion>) => void;
|
||||
onEliminarEvolucion: (id: string) => void;
|
||||
@@ -88,6 +90,9 @@ interface HistoriaClinicaProps {
|
||||
onAgregarATB: (atb: Omit<ATB, 'id'>) => void;
|
||||
onActualizarATB: (id: string, datos: Partial<ATB>) => void;
|
||||
onEliminarATB: (id: string) => void;
|
||||
onAgregarIndicacion: (indicacion: Omit<Indicacion, 'id'>) => void;
|
||||
onActualizarIndicacion: (id: string, datos: Partial<Indicacion>) => void;
|
||||
onEliminarIndicacion: (id: string) => void;
|
||||
onActualizarInternacion: (id: string, datos: Partial<Internacion>) => void;
|
||||
onActualizarCama: (id: string, datos: Partial<Cama>) => void;
|
||||
onVolver: () => void;
|
||||
@@ -197,9 +202,13 @@ export function HistoriaClinica({
|
||||
onActualizarInterconsulta,
|
||||
onEliminarInterconsulta,
|
||||
atb,
|
||||
indicadores,
|
||||
onAgregarATB,
|
||||
onActualizarATB,
|
||||
onEliminarATB,
|
||||
onAgregarIndicacion,
|
||||
onActualizarIndicacion,
|
||||
onEliminarIndicacion,
|
||||
onActualizarInternacion,
|
||||
onActualizarCama,
|
||||
onVolver,
|
||||
@@ -543,6 +552,16 @@ export function HistoriaClinica({
|
||||
/>
|
||||
</TabsContent>
|
||||
|
||||
<TabsContent value="indicaciones" className="mt-4">
|
||||
<SeccionIndicaciones
|
||||
recomendaciones={indicadores}
|
||||
internacionId={internacion.id}
|
||||
add={onAgregarIndicacion}
|
||||
update={onActualizarIndicacion}
|
||||
del={onEliminarIndicacion}
|
||||
/>
|
||||
</TabsContent>
|
||||
|
||||
<TabsContent value="estudios" className="mt-4">
|
||||
<SeccionEstudiosComplementarios
|
||||
estudios={estudiosComplementarios}
|
||||
|
||||
Reference in New Issue
Block a user