Add ATB tab for antibiotic treatment tracking

This commit is contained in:
2026-04-20 00:36:04 -03:00
parent e2b12a7326
commit 86be190cf0
6 changed files with 430 additions and 181 deletions
+29
View File
@@ -10,6 +10,7 @@ import type {
Cultivo,
EstudioComplementario,
Interconsulta,
ATB,
Vista
} from '@/types';
@@ -37,6 +38,7 @@ interface HospitalState {
cultivos: Cultivo[];
estudiosComplementarios: EstudioComplementario[];
interconsultas: Interconsulta[];
atb: ATB[];
vistaActual: Vista;
currentInternacionId?: string | null;
}
@@ -54,6 +56,7 @@ const defaultState = (): HospitalState => ({
cultivos: [],
estudiosComplementarios: [],
interconsultas: [],
atb: [],
vistaActual: 'dashboard',
camas: []
});
@@ -376,6 +379,29 @@ const finalizarInternacion = useCallback((internacionId: string, datos: {
}));
}, []);
const agregarATB = useCallback((atb: Omit<ATB, 'id'>) => {
const nuevoATB: ATB = { ...atb, id: generateUUID() };
setState(prev => ({
...prev,
atb: [...prev.atb, nuevoATB],
}));
return nuevoATB.id;
}, []);
const actualizarATB = useCallback((id: string, datos: Partial<ATB>) => {
setState(prev => ({
...prev,
atb: prev.atb.map(a => a.id === id ? { ...a, ...datos } : a),
}));
}, []);
const eliminarATB = useCallback((id: string) => {
setState(prev => ({
...prev,
atb: prev.atb.filter(a => a.id !== id),
}));
}, []);
// Acciones de areas
const agregarArea = useCallback((area: Omit<Area, 'id'>) => {
const nuevaArea: Area = { ...area, id: generateUUID() };
@@ -502,6 +528,9 @@ const getEstadisticas = useCallback(() => {
agregarInterconsulta,
actualizarInterconsulta,
eliminarInterconsulta,
agregarATB,
actualizarATB,
eliminarATB,
agregarArea,
actualizarArea,
eliminarArea,