From dad8b0d57b5bc1529124445e8b54b859f76f7e87 Mon Sep 17 00:00:00 2001
From: nicolasarana <90768149+nicolasarana@users.noreply.github.com>
Date: Wed, 8 Apr 2026 10:52:43 -0300
Subject: [PATCH 1/3] IN - Filtro por unidad organizativa
---
.../listado-internacion-capas.service.ts | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.service.ts b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.service.ts
index 3b257816f7..02a670fbf0 100644
--- a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.service.ts
+++ b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.service.ts
@@ -96,9 +96,13 @@ export class ListadoInternacionCapasService {
}
if (unidad) {
+ const unidadId = unidad?.conceptId || unidad;
listaInternacionFiltrada = listaInternacionFiltrada.filter(
- (internacion: IResumenInternacion) =>
- (internacion as any).idPrestacion?.unidadOrganizativa?.conceptId === (unidad?.conceptId || unidad)
+ (internacion: any) => {
+ const uoIngreso = internacion.idPrestacion?.unidadOrganizativa?.conceptId;
+ const uoMovimiento = internacion.estadosCama?.[0]?.estados?.[0]?.unidadOrganizativa?.conceptId;
+ return uoIngreso === unidadId || uoMovimiento === unidadId;
+ }
);
}
return listaInternacionFiltrada;
From 00c5cc3660a5c5b048705f551b3e417326a8dff1 Mon Sep 17 00:00:00 2001
From: nicolasarana <90768149+nicolasarana@users.noreply.github.com>
Date: Fri, 17 Apr 2026 09:56:04 -0300
Subject: [PATCH 2/3] =?UTF-8?q?fix=20-=20Correcci=C3=B3n=20de=20unidad=20o?=
=?UTF-8?q?rganizativa=20si=20hay=20movimientos?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../listado-internacion-capas.component.html | 3 +-
.../listado-internacion-capas.component.ts | 44 ++++++++++++++++++-
.../listado-internacion-capas.service.ts | 25 +++++++++--
3 files changed, 65 insertions(+), 7 deletions(-)
diff --git a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.component.html b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.component.html
index 72b75491b4..88f1291503 100644
--- a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.component.html
+++ b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.component.html
@@ -48,8 +48,7 @@
- {{ (internacion.idPrestacion?.unidadOrganizativa?.term) ||
- (internacion.estadosCama[0]?.estados[0]?.unidadOrganizativa?.term) }}
+ {{ getUltimaUnidadOrganizativa(internacion) }}
|
diff --git a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.component.ts b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.component.ts
index fd2dcf2937..5ba5d5ec95 100644
--- a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.component.ts
+++ b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.component.ts
@@ -77,8 +77,8 @@ export class ListadoInternacionCapasComponent implements OnInit, OnDestroy {
sorteable: true,
opcional: true,
sort: (a: any, b: any) => {
- const nameA = a.idPrestacion?.unidadOrganizativa?.term || a.estadosCama?.[0]?.estados?.[0]?.unidadOrganizativa?.term || '';
- const nameB = b.idPrestacion?.unidadOrganizativa?.term || b.estadosCama?.[0]?.estados?.[0]?.unidadOrganizativa?.term || '';
+ const nameA = this.getUltimaUnidadOrganizativa(a) || '';
+ const nameB = this.getUltimaUnidadOrganizativa(b) || '';
return nameA.localeCompare(nameB);
}
}
@@ -144,6 +144,46 @@ export class ListadoInternacionCapasComponent implements OnInit, OnDestroy {
this.location.back();
}
+ getUltimaUnidadOrganizativa(internacion: any): string {
+ const estadosCama = internacion.estadosCama;
+ if (!estadosCama?.length) {
+ return internacion.idPrestacion?.unidadOrganizativa?.term;
+ }
+ let ultimoEstadoConPaciente: any = null;
+ for (const cama of estadosCama) {
+ if (cama.estados && cama.estados.length > 0) {
+ for (const estado of cama.estados) {
+ if (estado.paciente) {
+ if (!ultimoEstadoConPaciente || new Date(estado.fecha) > new Date(ultimoEstadoConPaciente.fecha)) {
+ ultimoEstadoConPaciente = estado;
+ }
+ }
+ }
+ }
+ }
+ return ultimoEstadoConPaciente?.unidadOrganizativa?.term || internacion.idPrestacion?.unidadOrganizativa?.term;
+ }
+
+ getUltimaUnidadOrganizativaConceptId(internacion: any): string {
+ const estadosCama = internacion.estadosCama;
+ if (!estadosCama?.length) {
+ return internacion.idPrestacion?.unidadOrganizativa?.conceptId;
+ }
+ let ultimoEstadoConPaciente: any = null;
+ for (const cama of estadosCama) {
+ if (cama.estados && cama.estados.length > 0) {
+ for (const estado of cama.estados) {
+ if (estado.paciente) {
+ if (!ultimoEstadoConPaciente || new Date(estado.fecha) > new Date(ultimoEstadoConPaciente.fecha)) {
+ ultimoEstadoConPaciente = estado;
+ }
+ }
+ }
+ }
+ }
+ return ultimoEstadoConPaciente?.unidadOrganizativa?.conceptId || internacion.idPrestacion?.unidadOrganizativa?.conceptId;
+ }
+
cancelar() {
this.mapaCamasService.selectResumen(null);
this.mapaCamasService.selectPrestacion(null);
diff --git a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.service.ts b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.service.ts
index 02a670fbf0..88675be64f 100644
--- a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.service.ts
+++ b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.service.ts
@@ -99,15 +99,34 @@ export class ListadoInternacionCapasService {
const unidadId = unidad?.conceptId || unidad;
listaInternacionFiltrada = listaInternacionFiltrada.filter(
(internacion: any) => {
- const uoIngreso = internacion.idPrestacion?.unidadOrganizativa?.conceptId;
- const uoMovimiento = internacion.estadosCama?.[0]?.estados?.[0]?.unidadOrganizativa?.conceptId;
- return uoIngreso === unidadId || uoMovimiento === unidadId;
+ const uoEfectiva = this.getUltimaUnidadOrganizativaConceptId(internacion);
+ return uoEfectiva === unidadId;
}
);
}
return listaInternacionFiltrada;
}
+ getUltimaUnidadOrganizativaConceptId(internacion: any): string {
+ const estadosCama = internacion.estadosCama;
+ if (!estadosCama?.length) {
+ return internacion.idPrestacion?.unidadOrganizativa?.conceptId;
+ }
+ let ultimoEstadoConPaciente: any = null;
+ for (const cama of estadosCama) {
+ if (cama.estados && cama.estados.length > 0) {
+ for (const estado of cama.estados) {
+ if (estado.paciente) {
+ if (!ultimoEstadoConPaciente || new Date(estado.fecha) > new Date(ultimoEstadoConPaciente.fecha)) {
+ ultimoEstadoConPaciente = estado;
+ }
+ }
+ }
+ }
+ }
+ return ultimoEstadoConPaciente?.unidadOrganizativa?.conceptId || internacion.idPrestacion?.unidadOrganizativa?.conceptId;
+ }
+
setFechaHasta(fecha: Date) {
this.fechaIngresoHasta.next(fecha);
}
From 47a5e52c65991d7e0c9b0f30f2a661a4e188efca Mon Sep 17 00:00:00 2001
From: nicolasarana <90768149+nicolasarana@users.noreply.github.com>
Date: Mon, 20 Apr 2026 10:49:39 -0300
Subject: [PATCH 3/3] =?UTF-8?q?fix=20-=20Limpieza=20de=20c=C3=B3digo?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../listado-internacion-capas.component.ts | 20 -------------------
.../listado-internacion-capas.service.ts | 2 +-
2 files changed, 1 insertion(+), 21 deletions(-)
diff --git a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.component.ts b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.component.ts
index 5ba5d5ec95..d0925d434a 100644
--- a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.component.ts
+++ b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.component.ts
@@ -164,26 +164,6 @@ export class ListadoInternacionCapasComponent implements OnInit, OnDestroy {
return ultimoEstadoConPaciente?.unidadOrganizativa?.term || internacion.idPrestacion?.unidadOrganizativa?.term;
}
- getUltimaUnidadOrganizativaConceptId(internacion: any): string {
- const estadosCama = internacion.estadosCama;
- if (!estadosCama?.length) {
- return internacion.idPrestacion?.unidadOrganizativa?.conceptId;
- }
- let ultimoEstadoConPaciente: any = null;
- for (const cama of estadosCama) {
- if (cama.estados && cama.estados.length > 0) {
- for (const estado of cama.estados) {
- if (estado.paciente) {
- if (!ultimoEstadoConPaciente || new Date(estado.fecha) > new Date(ultimoEstadoConPaciente.fecha)) {
- ultimoEstadoConPaciente = estado;
- }
- }
- }
- }
- }
- return ultimoEstadoConPaciente?.unidadOrganizativa?.conceptId || internacion.idPrestacion?.unidadOrganizativa?.conceptId;
- }
-
cancelar() {
this.mapaCamasService.selectResumen(null);
this.mapaCamasService.selectPrestacion(null);
diff --git a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.service.ts b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.service.ts
index 88675be64f..73741fd26a 100644
--- a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.service.ts
+++ b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-internacion-capas.service.ts
@@ -114,7 +114,7 @@ export class ListadoInternacionCapasService {
}
let ultimoEstadoConPaciente: any = null;
for (const cama of estadosCama) {
- if (cama.estados && cama.estados.length > 0) {
+ if (cama.estados?.length) {
for (const estado of cama.estados) {
if (estado.paciente) {
if (!ultimoEstadoConPaciente || new Date(estado.fecha) > new Date(ultimoEstadoConPaciente.fecha)) {