diff --git a/src/hooks/useHospitalStore.ts b/src/hooks/useHospitalStore.ts index 66e6689..cc1c8a6 100644 --- a/src/hooks/useHospitalStore.ts +++ b/src/hooks/useHospitalStore.ts @@ -273,6 +273,11 @@ const finalizarInternacion = useCallback((internacionId: string, datos: { console.warn('No tiene permisos para actualizar internación en esta área'); return; } + + const oldCamaId = internacion.camaId; + const newCamaId = datos.camaId; + const pacienteId = datos.pacienteId || internacion.pacienteId; + setState(prev => ({ ...prev, internaciones: prev.internaciones.map(i => @@ -280,6 +285,15 @@ const finalizarInternacion = useCallback((internacionId: string, datos: { ? { ...i, ...datos } : i ), + cams: prev.camas.map(c => { + if (c.id === newCamaId && newCamaId !== oldCamaId) { + return { ...c, estado: 'Ocupada', pacienteId, internacionId }; + } + if (c.id === oldCamaId && oldCamaId !== newCamaId) { + return { ...c, estado: 'Disponible', pacienteId: undefined, internacionId: undefined }; + } + return c; + }), })); }, [state.internaciones, state.currentUser]);