Actualizar logica de egreso e historia clinica para que desocupe camas En Area y elimine camas Fuera de Area

This commit is contained in:
2026-08-11 22:33:47 +00:00
parent 6c4defe831
commit 42cbe02861
+14 -4
View File
@@ -411,13 +411,18 @@ const agregarCama = useCallback(async (cama: Omit<Cama, 'id'>) => {
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<Cama, 'id'>) => {
? { ...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<Cama, 'id'>) => {
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<Cama, 'id'>) => {
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