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)) {