Add outside area bed workflow

- Add input for writing bed number in NuevoIngreso and EditIngreso
- Auto-complete area when selecting bed from dropdown
- Automatically create new bed with 'Fuera de area' when typing number
- Modify finalizarInternacion to delete bed only for outside area
- Add two-mode selection: select bed or write bed
This commit is contained in:
2026-04-23 20:09:33 -03:00
parent ccb2d9c80b
commit eadf44a168
4 changed files with 249 additions and 79 deletions
+15 -9
View File
@@ -238,10 +238,14 @@ const finalizarInternacion = useCallback((internacionId: string, datos: {
diagnosticoEgreso: string;
motivoEgreso: Internacion['motivoEgreso']
}) => {
setState(prev => {
const internacion = prev.internaciones.find(i => i.id === internacionId);
if (!internacion) return prev;
const internacion = state.internaciones.find(i => i.id === internacionId);
if (!internacion) return;
const areaFueraDeArea = state.areas.find(a => (a.nombre || '').trim().toLowerCase() === 'fuera de area');
const areaFueraDeAreaId = areaFueraDeArea?.id;
const esFueraDeArea = internacion.areaId === areaFueraDeAreaId;
setState(prev => {
return {
...prev,
internaciones: prev.internaciones.map(i =>
@@ -249,14 +253,16 @@ const finalizarInternacion = useCallback((internacionId: string, datos: {
? { ...i, ...datos, activa: false }
: i
),
cams: prev.camas.map(c =>
c.id === internacion.camaId
? { ...c, estado: 'Disponible', pacienteId: undefined, internacionId: undefined }
: c
),
cams: esFueraDeArea
? prev.camas.filter(c => c.id !== internacion.camaId)
: prev.camas.map(c =>
c.id === internacion.camaId
? { ...c, estado: 'Disponible', pacienteId: undefined, internacionId: undefined }
: c
),
};
});
}, []);
}, [state.areas]);
const actualizarInternacion = useCallback((internacionId: string, datos: Partial<Internacion>) => {
const internacion = state.internaciones.find(i => i.id === internacionId);