Add ATB tab for antibiotic treatment tracking
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user