Actualizar logica de egreso e historia clinica para que desocupe camas En Area y elimine camas Fuera de Area
This commit is contained in:
@@ -411,13 +411,18 @@ const agregarCama = useCallback(async (cama: Omit<Cama, 'id'>) => {
|
|||||||
const esFueraDeGrupo = !internacion.grupoId || !grupoFueraDeGrupoId || internacion.grupoId === grupoFueraDeGrupoId;
|
const esFueraDeGrupo = !internacion.grupoId || !grupoFueraDeGrupoId || internacion.grupoId === grupoFueraDeGrupoId;
|
||||||
const camaId = internacion.camaId;
|
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 {
|
try {
|
||||||
// API call inmediata para finalizar internación
|
// API call inmediata para finalizar internación
|
||||||
await apiCall('PUT', `/internaciones/${internacionId}`, { ...datos, activa: false });
|
await apiCall('PUT', `/internaciones/${internacionId}`, { ...datos, activa: false });
|
||||||
|
|
||||||
// Eliminar o actualizar la cama según el área
|
// Eliminar o actualizar la cama según el área
|
||||||
if (camaId) {
|
if (camaId) {
|
||||||
if (esFueraDeGrupo) {
|
if (debeEliminarCama) {
|
||||||
// Eliminar la cama si es "Fuera de área"
|
// Eliminar la cama si es "Fuera de área"
|
||||||
await apiCall('DELETE', `/camas/${camaId}`);
|
await apiCall('DELETE', `/camas/${camaId}`);
|
||||||
} else {
|
} else {
|
||||||
@@ -439,7 +444,7 @@ const agregarCama = useCallback(async (cama: Omit<Cama, 'id'>) => {
|
|||||||
? { ...i, ...datos, activa: false }
|
? { ...i, ...datos, activa: false }
|
||||||
: i
|
: i
|
||||||
),
|
),
|
||||||
camas: esFueraDeGrupo
|
camas: debeEliminarCama
|
||||||
? prev.camas.filter(c => c.id !== camaId)
|
? prev.camas.filter(c => c.id !== camaId)
|
||||||
: prev.camas.map(c =>
|
: prev.camas.map(c =>
|
||||||
c.id === camaId
|
c.id === camaId
|
||||||
@@ -469,10 +474,15 @@ const agregarCama = useCallback(async (cama: Omit<Cama, 'id'>) => {
|
|||||||
const esFueraDeGrupo = !internacion.grupoId || !grupoFueraDeGrupoId || internacion.grupoId === grupoFueraDeGrupoId;
|
const esFueraDeGrupo = !internacion.grupoId || !grupoFueraDeGrupoId || internacion.grupoId === grupoFueraDeGrupoId;
|
||||||
const camaId = internacion.camaId;
|
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 {
|
try {
|
||||||
await apiCall('DELETE', `/internaciones/${internacionId}`);
|
await apiCall('DELETE', `/internaciones/${internacionId}`);
|
||||||
if (camaId) {
|
if (camaId) {
|
||||||
if (esFueraDeGrupo) {
|
if (debeEliminarCama) {
|
||||||
await apiCall('DELETE', `/camas/${camaId}`);
|
await apiCall('DELETE', `/camas/${camaId}`);
|
||||||
} else {
|
} else {
|
||||||
await apiCall('PUT', `/camas/${camaId}`, {
|
await apiCall('PUT', `/camas/${camaId}`, {
|
||||||
@@ -486,7 +496,7 @@ const agregarCama = useCallback(async (cama: Omit<Cama, 'id'>) => {
|
|||||||
setState(prev => ({
|
setState(prev => ({
|
||||||
...prev,
|
...prev,
|
||||||
internaciones: prev.internaciones.filter(i => i.id !== internacionId),
|
internaciones: prev.internaciones.filter(i => i.id !== internacionId),
|
||||||
camas: esFueraDeGrupo
|
camas: debeEliminarCama
|
||||||
? prev.camas.filter(c => c.id !== camaId)
|
? prev.camas.filter(c => c.id !== camaId)
|
||||||
: prev.camas.map(c =>
|
: prev.camas.map(c =>
|
||||||
c.id === camaId
|
c.id === camaId
|
||||||
|
|||||||
Reference in New Issue
Block a user