From 42cbe02861a759e8e27444a4c590db53994fc3a2 Mon Sep 17 00:00:00 2001 From: snlavaise Date: Tue, 11 Aug 2026 22:33:47 +0000 Subject: [PATCH] Actualizar logica de egreso e historia clinica para que desocupe camas En Area y elimine camas Fuera de Area --- src/hooks/useHospitalStore.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/hooks/useHospitalStore.ts b/src/hooks/useHospitalStore.ts index 126e5a3..f7055a1 100644 --- a/src/hooks/useHospitalStore.ts +++ b/src/hooks/useHospitalStore.ts @@ -411,13 +411,18 @@ const agregarCama = useCallback(async (cama: Omit) => { const esFueraDeGrupo = !internacion.grupoId || !grupoFueraDeGrupoId || internacion.grupoId === grupoFueraDeGrupoId; const camaId = internacion.camaId; + const camaObj = camaId ? state.camas.find(c => c.id === camaId) : undefined; + const debeEliminarCama = camaObj + ? (computeSector(camaObj.numero) === 'Fuera de Área') + : esFueraDeGrupo; + try { // API call inmediata para finalizar internación await apiCall('PUT', `/internaciones/${internacionId}`, { ...datos, activa: false }); // Eliminar o actualizar la cama según el área if (camaId) { - if (esFueraDeGrupo) { + if (debeEliminarCama) { // Eliminar la cama si es "Fuera de área" await apiCall('DELETE', `/camas/${camaId}`); } else { @@ -439,7 +444,7 @@ const agregarCama = useCallback(async (cama: Omit) => { ? { ...i, ...datos, activa: false } : i ), - camas: esFueraDeGrupo + camas: debeEliminarCama ? prev.camas.filter(c => c.id !== camaId) : prev.camas.map(c => c.id === camaId @@ -469,10 +474,15 @@ const agregarCama = useCallback(async (cama: Omit) => { const esFueraDeGrupo = !internacion.grupoId || !grupoFueraDeGrupoId || internacion.grupoId === grupoFueraDeGrupoId; const camaId = internacion.camaId; + const camaObj = camaId ? state.camas.find(c => c.id === camaId) : undefined; + const debeEliminarCama = camaObj + ? (computeSector(camaObj.numero) === 'Fuera de Área') + : esFueraDeGrupo; + try { await apiCall('DELETE', `/internaciones/${internacionId}`); if (camaId) { - if (esFueraDeGrupo) { + if (debeEliminarCama) { await apiCall('DELETE', `/camas/${camaId}`); } else { await apiCall('PUT', `/camas/${camaId}`, { @@ -486,7 +496,7 @@ const agregarCama = useCallback(async (cama: Omit) => { setState(prev => ({ ...prev, internaciones: prev.internaciones.filter(i => i.id !== internacionId), - camas: esFueraDeGrupo + camas: debeEliminarCama ? prev.camas.filter(c => c.id !== camaId) : prev.camas.map(c => c.id === camaId