From fb32b8c84a452efc398d728d968d41385b8f9b5b Mon Sep 17 00:00:00 2001 From: Lautaro Molina Date: Mon, 5 Feb 2024 10:20:58 -0300 Subject: [PATCH] fix(IN): visualizacion de registros en sidebar (#2973) --- angular.json | 6 +- .../registros-huds-detalle.component.html | 8 +- .../registros-huds-detalle.component.ts | 95 +++--- .../filtros-medicamentos.component.html | 16 + .../filtros-medicamentos.component.ts | 52 ++++ .../listado-medicamentos-capas.component.html | 79 +++++ .../listado-medicamentos-capas.component.ts | 187 ++++++++++++ .../listado2-medicamentos.component.html | 99 ++++++ .../listado2-medicamentos.component.ts | 205 +++++++++++++ .../mapa-camas-capa.component.html | 288 +++++++++--------- .../mapa-camas-capa.component.ts | 8 +- 11 files changed, 827 insertions(+), 216 deletions(-) create mode 100644 src/app/apps/rup/mapa-camas/views/listado-internacion-capas/filtros-listado/filtros-medicamentos.component.html create mode 100644 src/app/apps/rup/mapa-camas/views/listado-internacion-capas/filtros-listado/filtros-medicamentos.component.ts create mode 100644 src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-medicamentos-capas.component.html create mode 100644 src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-medicamentos-capas.component.ts create mode 100644 src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado2-medicamentos.component.html create mode 100644 src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado2-medicamentos.component.ts diff --git a/angular.json b/angular.json index 5fd086c392..35cd96046c 100644 --- a/angular.json +++ b/angular.json @@ -51,7 +51,7 @@ ], "buildOptimizer": false, "sourceMap": true, - "optimization": true, + "optimization": false, "aot": true }, "test": { @@ -71,9 +71,9 @@ ] }, "production": { - "optimization": true, + "optimization": false, "outputHashing": "all", - "sourceMap": false, + "sourceMap": true, "extractCss": true, "namedChunks": false, "aot": true, diff --git a/src/app/apps/rup/mapa-camas/sidebar/registros-huds-detalle/registros-huds-detalle.component.html b/src/app/apps/rup/mapa-camas/sidebar/registros-huds-detalle/registros-huds-detalle.component.html index fc792bdd35..fffa9c2f97 100644 --- a/src/app/apps/rup/mapa-camas/sidebar/registros-huds-detalle/registros-huds-detalle.component.html +++ b/src/app/apps/rup/mapa-camas/sidebar/registros-huds-detalle/registros-huds-detalle.component.html @@ -14,11 +14,11 @@
- + - + diff --git a/src/app/apps/rup/mapa-camas/sidebar/registros-huds-detalle/registros-huds-detalle.component.ts b/src/app/apps/rup/mapa-camas/sidebar/registros-huds-detalle/registros-huds-detalle.component.ts index 778273158b..f39b93e225 100644 --- a/src/app/apps/rup/mapa-camas/sidebar/registros-huds-detalle/registros-huds-detalle.component.ts +++ b/src/app/apps/rup/mapa-camas/sidebar/registros-huds-detalle/registros-huds-detalle.component.ts @@ -4,7 +4,7 @@ import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/cor import { NgForm } from '@angular/forms'; import { Router } from '@angular/router'; import { BehaviorSubject, Observable, combineLatest } from 'rxjs'; -import { catchError, concatMap, map, pluck, switchMap, tap } from 'rxjs/operators'; +import { catchError, concatMap, map, switchMap } from 'rxjs/operators'; import { HUDSService } from 'src/app/modules/rup/services/huds.service'; import { IPaciente } from '../../../../../core/mpi/interfaces/IPaciente'; import { ModalMotivoAccesoHudsService } from '../../../../../modules/rup/components/huds/modal-motivo-acceso-huds.service'; @@ -23,14 +23,14 @@ export class RegistrosHudsDetalleComponent implements OnInit { public historial$: Observable; public historialFiltrado$: Observable; - private historialInternacion$: Observable; public desde: Date; public hasta: Date; public tipoPrestacion; public inProgress = true; public prestacionesEliminadas = []; - idOrganizacion = this.auth.organizacion.id; + public idOrganizacion = this.auth.organizacion.id; + private admisionHospitalariaConceptId = '32485007'; public refreshFecha$ = new BehaviorSubject(null); public tipoPrestacion$ = new BehaviorSubject(null); @@ -40,8 +40,8 @@ export class RegistrosHudsDetalleComponent implements OnInit { public estadoCama$: Observable; public accionesEstado$: Observable; public prestacionesList$: Observable; - public min$: Observable; - public max$: Observable; + public min: Date; + public max: Date; public paciente; @Output() accion = new EventEmitter(); @@ -59,28 +59,37 @@ export class RegistrosHudsDetalleComponent implements OnInit { ) { } ngOnInit() { - this.desde = moment(this.mapaCamasService.fecha).subtract(7, 'd').toDate(); - this.hasta = moment(this.mapaCamasService.fecha).toDate(); - - this.historialInternacion$ = this.mapaCamasService.historialInternacion$.pipe(cache()); - this.puedeVerHuds = this.auth.check('huds:visualizacionHuds'); let estaPrestacionId; // id de prestacion correspondiente a la internacion actual this.historial$ = combineLatest([ this.cama$, + this.mapaCamasService.historialInternacion$, this.mapaCamasService.selectedPrestacion, this.mapaCamasService.resumenInternacion$, ]).pipe( - switchMap(([cama, prestacion, resumen]) => { - if (resumen) { + switchMap(([cama, movimientos, prestacion, resumen]) => { + if (prestacion?.id) { // listado + this.desde = prestacion.ejecucion.fecha; + this.hasta = prestacion.ejecucion.registros[1]?.valor.InformeEgreso.fechaEgreso || new Date(); + } else if (resumen?.id) { // listado this.desde = resumen.fechaIngreso; - this.hasta = resumen.fechaEgreso || moment().toDate(); + this.hasta = resumen.fechaEgreso || new Date(); + } else { // mapa de camas + this.desde = movimientos.find(m => m.extras && m.extras.ingreso).fecha; + this.hasta = movimientos.find(m => m.extras && m.extras.egreso)?.fecha || new Date(); } - estaPrestacionId = prestacion?.id ? prestacion.id : this.mapaCamasService.capa === 'estadistica' ? cama.idInternacion : resumen.idPrestacion; - const paciente = cama?.paciente || (prestacion?.paciente || resumen?.paciente); - this.paciente = paciente; - if (paciente) { - return this.motivoAccesoService.getAccessoHUDS(paciente as IPaciente); + this.min = moment(this.desde).startOf('day').toDate(); + this.max = moment(this.hasta).endOf('day').toDate(); + + if (this.mapaCamasService.capa === 'estadistica') { + estaPrestacionId = cama.idInternacion || prestacion.id; + } else { + estaPrestacionId = cama.idInternacion || resumen.id; + } + this.paciente = cama.paciente || prestacion.paciente || resumen.paciente; + + if (this.paciente) { + return this.motivoAccesoService.getAccessoHUDS(this.paciente as IPaciente); } return []; }), @@ -98,77 +107,41 @@ export class RegistrosHudsDetalleComponent implements OnInit { cache() ); - this.min$ = this.historialInternacion$.pipe( - map(movimientos => { - if (movimientos.length > 0) { - const lastIndex = movimientos.length - 1; - return moment(movimientos[lastIndex].fecha).startOf('day').toDate(); - } - return new Date(); - }), - tap((date) => { - if (moment(this.desde).isSameOrBefore(moment(date))) { - this.desde = date; - this.onChangeFecha(); - } - }) - ); - - this.max$ = this.historialInternacion$.pipe( - map(movimientos => { - const egreso = movimientos.find(m => m.extras && m.extras.egreso); - if (egreso) { - this.hasta = egreso.fecha; - this.onChangeFecha(); - return egreso.fecha; - } - return null; - }) - ); - this.historialFiltrado$ = combineLatest([ this.historial$, this.refreshFecha$, this.tipoPrestacion$, - this.min$, this.id$ ]).pipe( - map(([prestaciones, refreshFecha, tipoPrestacion, min, idPrestacion]) => { + map(([prestaciones, refreshFecha, tipoPrestacion, idPrestacion]) => { if (idPrestacion) { this.prestacionesEliminadas.push(idPrestacion); } - if (!this.desde) { - this.desde = moment().subtract(7, 'd').toDate(); - } - if (this.desde instanceof Date) { - this.desde = this.desde.getTime() < min.getTime() ? moment(min).toDate() : this.desde; - } else if (moment.isMoment(this.desde)) { - this.desde = moment(this.desde).toDate().getTime() < min.getTime() ? moment(min).toDate() : this.desde; - } this.inProgress = false; return prestaciones.filter((registro) => { const fecha = moment(registro.ejecucion?.fecha || registro.fecha); const conceptId = registro.solicitud?.tipoPrestacion.conceptId || registro.prestacion.snomed.conceptId; const tipoPrestacionValida = !tipoPrestacion || tipoPrestacion.conceptId === conceptId; + const noEsInternacion = conceptId !== this.admisionHospitalariaConceptId; const fechaValida = fecha.isSameOrBefore(this.hasta, 'd') && fecha.isSameOrAfter(this.desde, 'd'); const organizacion = registro.solicitud?.organizacion || registro.prestacion.organizacion; if (this.mapaCamasService.capa === 'estadistica') { const organizacionValida = organizacion?.id === this.idOrganizacion; - return fechaValida && tipoPrestacionValida && organizacionValida && !this.prestacionesEliminadas.some(id => id === registro.id); + return fechaValida && noEsInternacion && tipoPrestacionValida && organizacionValida && !this.prestacionesEliminadas.some(id => id === registro.id); } else { - return fechaValida && tipoPrestacionValida && !this.prestacionesEliminadas.some(id => id === registro.id); + return fechaValida && noEsInternacion && tipoPrestacionValida && !this.prestacionesEliminadas.some(id => id === registro.id); } }); - }) + }), + cache() ); this.estadoCama$ = this.cama$.pipe(switchMap(cama => this.mapaCamasService.getEstadoCama(cama))); this.accionesEstado$ = this.estadoCama$.pipe( notNull(), - pluck('acciones'), - map(acciones => acciones.filter(acc => acc.tipo === 'nuevo-registro')) + map(estado => estado.acciones.filter(acc => acc.tipo === 'nuevo-registro')) ); this.prestacionesList$ = this.historial$.pipe( diff --git a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/filtros-listado/filtros-medicamentos.component.html b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/filtros-listado/filtros-medicamentos.component.html new file mode 100644 index 0000000000..90135feae2 --- /dev/null +++ b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/filtros-listado/filtros-medicamentos.component.html @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/filtros-listado/filtros-medicamentos.component.ts b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/filtros-listado/filtros-medicamentos.component.ts new file mode 100644 index 0000000000..a8e1b65cfe --- /dev/null +++ b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/filtros-listado/filtros-medicamentos.component.ts @@ -0,0 +1,52 @@ +import { Component, OnInit } from '@angular/core'; +import * as enumerados from '../../../../../../utils/enumerados'; +import { PermisosMapaCamasService } from '../../../services/permisos-mapa-camas.service'; +import { ListadoInternacionCapasService } from '../listado-internacion-capas.service'; + +@Component({ + selector: 'app-filtros-medicamentos', + templateUrl: './filtros-medicamentos.component.html', +}) + +export class FiltrosMedicamentosComponent implements OnInit { + filtros: any = { + fechaIngresoDesde: moment().subtract(1, 'months').toDate(), + fechaIngresoHasta: moment().toDate(), + fechaEgresoDesde: null, + fechaEgresoHasta: null + }; + estadosInternacion; + requestInProgress: boolean; + + constructor( + private listadoInternacionService: ListadoInternacionCapasService, + public permisosMapaCamasService: PermisosMapaCamasService, + ) { } + + ngOnInit() { + this.resetFiltros(); + this.estadosInternacion = enumerados.getObjEstadoInternacion(); + } + + resetFiltros() { + this.listadoInternacionService.pacienteText.next(null); + this.listadoInternacionService.estado.next(null); + this.filtrarFecha(); + } + + filtrar() { + this.listadoInternacionService.pacienteText.next(this.filtros.paciente); + if (this.filtros.estado) { + this.listadoInternacionService.estado.next(this.filtros.estado.id); + } else { + this.listadoInternacionService.estado.next(null); + } + } + + filtrarFecha() { + this.listadoInternacionService.fechaIngresoDesde.next(this.filtros.fechaIngresoDesde); + this.listadoInternacionService.fechaIngresoHasta.next(this.filtros.fechaIngresoHasta); + this.listadoInternacionService.fechaEgresoDesde.next(this.filtros.fechaEgresoDesde); + this.listadoInternacionService.fechaEgresoHasta.next(this.filtros.fechaEgresoHasta); + } +} diff --git a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-medicamentos-capas.component.html b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-medicamentos-capas.component.html new file mode 100644 index 0000000000..cec18a7bf7 --- /dev/null +++ b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-medicamentos-capas.component.html @@ -0,0 +1,79 @@ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + {{internacion.organizacion.nombre }} + + + {{internacion.paciente | nombre }} + + + {{ internacion.paciente | documento }} + + + + {{ internacion.valor.nombre || internacion.valor.medicamento?.term}} + + + + + {{ internacion.estadoActual?.verificacion?.estado}} + + + + + {{ internacion.fechaInicio | fecha}} + + + + + {{ internacion.estadoActual?.fecha | fecha}} + + + + + + + \ No newline at end of file diff --git a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-medicamentos-capas.component.ts b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-medicamentos-capas.component.ts new file mode 100644 index 0000000000..681ebce44a --- /dev/null +++ b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado-medicamentos-capas.component.ts @@ -0,0 +1,187 @@ +import { Plex } from '@andes/plex'; +import { cache } from '@andes/shared'; +import { Location } from '@angular/common'; +import { Component, OnDestroy, OnInit } from '@angular/core'; +import { Observable } from 'rxjs'; +import { map, take } from 'rxjs/operators'; +import { IPrestacion } from '../../../../../modules/rup/interfaces/prestacion.interface'; +import { MapaCamasService } from '../../services/mapa-camas.service'; +import { PermisosMapaCamasService } from '../../services/permisos-mapa-camas.service'; +import { IResumenInternacion } from '../../services/resumen-internacion.http'; +import { ListadoInternacionCapasService } from './listado-internacion-capas.service'; +import { PlanIndicacionesServices } from '../../services/plan-indicaciones.service'; + +@Component({ + selector: 'app-listado-medicamentos-capas', + templateUrl: './listado-medicamentos-capas.component.html', +}) + +export class ListadoMedicamentosCapasComponent implements OnInit, OnDestroy { + // listaInternacion$: Observable; + public fechaDesdeEntrada; + public fechaHastaEntrada; + listaInternacion$ = []; + private listadoActual: any[]; + listaMedicamentos$: Observable; + selectedPrestacion$: Observable; + idInternacionSelected: string = null; + public fechaControl = new Date(); + mainView$ = this.mapaCamasService.mainView; + public columns = [ + { + key: 'sector', + label: 'Sector', + sorteable: true, + opcional: true, + sort: (a: any, b: any) => { + const nameA = `${a.paciente.apellido} ${a.paciente.alias || a.paciente.nombre}`; + const nameB = `${b.paciente.apellido} ${b.paciente.alias || b.paciente.nombre}`; + return nameA.localeCompare(nameB); + } + }, + { + key: 'organizacion', + label: 'Unidad Organizativa', + sorteable: true, + opcional: true, + sort: (a: any, b: any) => { + const nameA = `${a.organizacion.nombre}`; + const nameB = `${b.organizacion.nombre}`; + return nameA.localeCompare(nameB); + } + }, + { + key: 'nombre', + label: 'Nombre Paciente', + sorteable: true, + opcional: true, + sort: (a: any, b: any) => { + const nameA = `${a.paciente.apellido} ${a.paciente.alias || a.paciente.nombre}`; + const nameB = `${b.paciente.apellido} ${b.paciente.alias || b.paciente.nombre}`; + return nameA.localeCompare(nameB); + } + }, + { + key: 'documento', + label: 'DNI Paciente', + sorteable: true, + opcional: true, + sort: (a: any, b: any) => { + const aDocumento = a.paciente.documento || a.paciente.numeroIdentificacion; + const bDocumento = b.paciente.documento || b.paciente.numeroIdentificacion; + return aDocumento.localeCompare(bDocumento); + } + }, + { + key: 'diagnostico', + label: 'Medicamento', + sorteable: true, + opcional: true, + sort: (a: any, b: any) => { + const nameA = a.valor.medicamento?.term || a.valor.nombre || ''; + const nameB = b.valor.medicamento?.term || a.valor.nombre || ''; + return nameA.localeCompare(nameB); + } + }, + { + key: 'estado', + label: 'Estado', + sorteable: false, + opcional: true + }, + { + key: 'fecha', + label: 'Fecha Inicio', + sorteable: true, + opcional: true, + sort: (a: any, b: any) => a.fechaInicio.getTime() - b.fechaInicio.getTime() + }, + { + key: 'fechaEstado', + label: 'Fecha Ultimo Estado', + sorteable: true, + opcional: true, + sort: (a: any, b: any) => a.estadoActual.fecha.getTime() - b.estadoActual.fecha.getTime() + }, + + ]; + + constructor( + private plex: Plex, + public mapaCamasService: MapaCamasService, + private location: Location, + private permisosMapaCamasService: PermisosMapaCamasService, + private planIndicacionesServices: PlanIndicacionesServices, + + ) { } + + ngOnInit() { + + // this.permisosMapaCamasService.setAmbito('internacion'); + + this.plex.updateTitle([{ + route: '/inicio', + name: 'Andes' + }, { + route: '/mapa-camas/internacion', + name: 'Mapa Cama', + }, { + name: 'Listado de Medicamentos' + }]); + this.filtrar(); + // this.listaInternacion$ = this.listadoInternacionCapasService.listaInternacionFiltrada$.pipe(cache()); + // this.planIndicacionesServices.getIndicaciones(null, new Date(), 'interconsultores').subscribe(data => { console.log('ind ' + data); this.listaInternacion$ = data; }); + this.listaMedicamentos$ = this.planIndicacionesServices.medicamentosFiltrados$.pipe( + map(resp => this.listadoActual = resp) + ); + } + onScroll() { + this.planIndicacionesServices.lastResults.next(this.listadoActual); + } + filtrar() { + + this.planIndicacionesServices.lastResults.next(null); + this.planIndicacionesServices.fechaDesde.next(this.fechaDesdeEntrada); + + this.planIndicacionesServices.fechaHasta.next(this.fechaHastaEntrada); + + // this.carnetPerinatalService.paciente.next(this.paciente); + // this.carnetPerinatalService.fechaDesde.next(this.fechaDesdeEntrada); + // this.carnetPerinatalService.fechaHasta.next(this.fechaHastaEntrada); + // this.carnetPerinatalService.organizacion.next(this.organizacion); + // this.carnetPerinatalService.profesional.next(this.profesional); + // this.carnetPerinatalService.fechaUltimoControl.next(this.fechaUltimoControl); + // this.carnetPerinatalService.fechaProximoControl.next(this.fechaCita); + // this.carnetPerinatalService.estado.next(this.verAusente); + } + + ngOnDestroy() { + this.mapaCamasService.selectResumen(null); + } + + onSelect(resumen: IResumenInternacion) { + if (resumen?.id !== this.idInternacionSelected) { + this.mapaCamasService.isLoading(true); + this.mapaCamasService.selectResumen(resumen); + this.mapaCamasService.setFecha(resumen.fechaIngreso); + this.idInternacionSelected = resumen.id; + this.mapaCamasService.camaSelectedSegunView$.pipe( + take(1), + map(cama => this.mapaCamasService.select(cama)) + ).subscribe(); + } else { + this.idInternacionSelected = null; + } + } + + volver() { + this.location.back(); + } + + cancelar() { + this.mapaCamasService.selectResumen(null); + this.mapaCamasService.selectPrestacion(null); + this.idInternacionSelected = null; + } + +} diff --git a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado2-medicamentos.component.html b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado2-medicamentos.component.html new file mode 100644 index 0000000000..888a2db7bf --- /dev/null +++ b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado2-medicamentos.component.html @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+
+ + + + + + + + + + {{ carnet.fecha | fecha }} + {{ carnet.paciente | nombre }} + {{ carnet.paciente.documento }} + {{ carnet.paciente | edad }} + + AUSENTE + + + + + + {{ carnet.fechaProximoControl | fecha }} + + + No indica + + + + {{ carnet.fechaUltimoControl | fecha }} + + + + {{ carnet.primeriza? + 'Primer Embarazo': (carnet.cantidadEmbarazos)? carnet.embarazo.term + ' + ('+carnet.cantidadEmbarazos+') ' : carnet.embarazo.term}} + + + + +
+ + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado2-medicamentos.component.ts b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado2-medicamentos.component.ts new file mode 100644 index 0000000000..460e94265f --- /dev/null +++ b/src/app/apps/rup/mapa-camas/views/listado-internacion-capas/listado2-medicamentos.component.ts @@ -0,0 +1,205 @@ +// import { Auth } from '@andes/auth'; +// import { Plex } from '@andes/plex'; +// import { Location } from '@angular/common'; +// import { Component, OnInit } from '@angular/core'; +// import { Router } from '@angular/router'; +// import { Observable } from 'rxjs'; +// import { map } from 'rxjs/operators'; +// import { DocumentosService } from 'src/app/services/documentos.service'; +// import { CarnetPerinatalService } from './../services/carnet-perinatal.service'; + +// @Component({ +// selector: 'listado-perinatal', +// templateUrl: './listado-perinatal.component.html', +// styleUrls: ['listado-perinatal.scss'], +// }) +// export class ListadoPerinatalComponent implements OnInit { +// public fechaDesdeEntrada; +// public fechaHastaEntrada; +// public paciente; +// public controles: []; +// public fechaCita; +// public fechaUltimoControl; +// public listado$: Observable; +// private listadoActual: any[]; +// public showSidebar = false; +// // Permite :hover y click() +// public selectable = true; +// // Muestra efecto de selección +// public carnetSelected; +// public profesional; +// public organizacion; +// public collapse = false; +// public sortBy: string; +// public sortOrder = 'desc'; +// public verAusente; +// public columns = [ +// { +// key: 'fechaInicio', +// label: 'Fecha inicio', +// sorteable: true, +// opcional: true, +// sort: (a: any, b: any) => a.fecha.getTime() - b.fecha.getTime() +// }, +// { +// key: 'paciente', +// label: 'Paciente', +// sorteable: true, +// opcional: true, +// sort: (a: any, b: any) => { +// const nameA = `${a.paciente.apellido} ${a.paciente.nombre}`; +// const nameB = `${b.paciente.apellido} ${b.paciente.nombre}`; +// return nameA.localeCompare(nameB); +// } +// }, +// { +// key: 'documento', +// label: 'Documento', +// sorteable: true, +// opcional: true, +// sort: (a: any, b: any) => a.paciente.documento.localeCompare(b.paciente.documento) +// }, +// { +// key: 'edad', +// label: 'Edad', +// sorteable: true, +// opcional: true, +// sort: (a: any, b: any) => a.paciente.fechaNacimiento.getTime() - b.paciente.fechaNacimiento.getTime() +// }, +// { +// key: 'ausente', +// label: 'Estado', +// sorteable: false, +// opcional: true, +// }, +// { +// key: 'fechaCita', +// label: 'Fecha de cita', +// sorteable: true, +// opcional: true, +// sort: (a: any, b: any) => a.fechaProximoControl?.getTime() - b.fechaProximoControl?.getTime() +// }, +// { +// key: 'ultimoControl', +// label: 'Último control', +// sorteable: true, +// opcional: true, +// sort: (a: any, b: any) => a.fechaUltimoControl.getTime() - b.fechaUltimoControl.getTime() +// }, +// { +// key: 'numeroEmbarazo', +// label: 'Número Embarazo', +// sorteable: true, +// opcional: true, +// sort: (a: any, b: any) => a.embarazo.term.localeCompare(b.embarazo.term) +// } +// ]; + +// get disableDescargar() { +// return !this.fechaDesdeEntrada || !this.fechaHastaEntrada; +// } + +// constructor( +// private auth: Auth, +// private router: Router, +// private location: Location, +// private carnetPerinatalService: CarnetPerinatalService, +// private documentosService: DocumentosService, +// private plex: Plex +// ) { } + +// ngOnInit(): void { +// if (!this.auth.getPermissions('perinatal:?').length) { +// this.router.navigate(['inicio']); +// } +// this.filtrar(); +// this.listado$ = this.carnetPerinatalService.carnetsFiltrados$.pipe( +// map(resp => this.listadoActual = resp) +// ); +// this.verAusente = false; +// } + +// filtrar() { +// this.carnetPerinatalService.lastResults.next(null); +// this.carnetPerinatalService.paciente.next(this.paciente); +// this.carnetPerinatalService.fechaDesde.next(this.fechaDesdeEntrada); +// this.carnetPerinatalService.fechaHasta.next(this.fechaHastaEntrada); +// this.carnetPerinatalService.organizacion.next(this.organizacion); +// this.carnetPerinatalService.profesional.next(this.profesional); +// this.carnetPerinatalService.fechaUltimoControl.next(this.fechaUltimoControl); +// this.carnetPerinatalService.fechaProximoControl.next(this.fechaCita); +// this.carnetPerinatalService.estado.next(this.verAusente); +// } + +// onScroll() { +// this.carnetPerinatalService.lastResults.next(this.listadoActual); +// } + +// showInSidebar(carnet) { +// if (carnet.paciente) { +// this.carnetSelected = carnet; +// this.controles = carnet.controles; +// this.showSidebar = true; +// } +// } + +// closeSidebar() { +// this.showSidebar = false; +// this.carnetSelected = null; +// } + +// volverInicio() { +// this.location.back(); +// } + +// esAusente(fechaProximoControl, fechaFinEmbarazo) { +// return ((moment().diff(moment(fechaProximoControl), 'days') >= 1) && !fechaFinEmbarazo); +// } + +// descargarListado() { +// const params = { +// fechaDesde: this.fechaDesdeEntrada, +// fechaHasta: this.fechaHastaEntrada, +// profesional: this.profesional?.id, +// organizacionOrigen: this.organizacion?.id, +// paciente: this.paciente || '', +// estado: 'AUSENTE' +// }; +// this.documentosService.descargarListadoPerinatal(params, `perinatal ${moment().format('DD-MM-hh-mm-ss')}`).subscribe(); +// } + +// returnEdicion(carnetActualizado) { +// if (carnetActualizado) { +// this.carnetSelected = carnetActualizado; +// this.listado$ = this.carnetPerinatalService.carnetsFiltrados$.pipe( +// map(resp => this.listadoActual = resp) +// ); +// } +// } + +// returnNotas(nota) { +// const nuevaNota = this.carnetSelected.nota?.length ? false : true; +// this.carnetSelected.nota = nota; +// this.carnetPerinatalService.update(this.carnetSelected.id, this.carnetSelected).subscribe(resultado => { +// this.listado$ = this.carnetPerinatalService.carnetsFiltrados$.pipe( +// map(resp => this.listadoActual = resp) +// ); +// if (nota) { +// const mensaje = nuevaNota ? 'Nota agregada con éxito' : 'Nota editada con éxito'; +// this.plex.toast('success', mensaje); +// } else { +// this.plex.toast('success', 'Nota eliminada con éxito'); +// } +// }, () => { +// this.plex.toast('danger', 'El carnet no pudo ser actualizado'); +// }); +// } + +// changeCollapse(event) { +// this.collapse = event; +// } + +// heightTable() { +// return (!this.collapse && !this.showSidebar) ? 102 : (this.collapse && this.showSidebar) ? 247 : 174; +// } +// } diff --git a/src/app/apps/rup/mapa-camas/views/mapa-camas-capa/mapa-camas-capa.component.html b/src/app/apps/rup/mapa-camas/views/mapa-camas-capa/mapa-camas-capa.component.html index 0b438c8bf5..255526ecc7 100644 --- a/src/app/apps/rup/mapa-camas/views/mapa-camas-capa/mapa-camas-capa.component.html +++ b/src/app/apps/rup/mapa-camas/views/mapa-camas-capa/mapa-camas-capa.component.html @@ -4,17 +4,19 @@ - + + type="primary" (click)="verListadoInternacionMedico()"> + + + class="d-inline-block mr-1" [right]="true" [items]="itemsCensoDropdown"> @@ -26,31 +28,31 @@ + class="mr-1" label="ADMITIR PACIENTE" type="success" size="sm" + (click)="selectCama(null, {'nombre' : 'Internar Paciente', 'accion' : 'internarPaciente'})"> + size="sm" label="NUEVO RECURSO" type="info" class="d-inline-block mr-1" [right]="true" + [items]="itemsCrearDropdown"> + size="sm" class="d-inline-block mr-1" [right]="true"> + (change)="toggleColumns()"> + (change)="toggleColumns()"> + [(ngModel)]="columns.prioridad" (change)="toggleColumns()"> + (change)="toggleColumns()"> @@ -59,7 +61,7 @@ + [title]="!listadoRecursos ? 'Agrupar por sector' : 'Ver listado de camas'"> @@ -68,136 +70,136 @@ + [permisoBloqueo]="permisosMapaCamasService.bloqueo" + (accionRecurso)='accionListadoRecurso($event)'>
- - - - - - - - - - + +
- PRIORIDAD - - - - - - GUARDIA - - - - - - FECHA MOV. - - - - - - FECHA INGRESO - - - - - - CAMA - - - - - - SECTOR - - - - - - PACIENTE - - - - -
+ + + + + + + + + - - - - - - - - - - - - + + + + + + + - - -
+ PRIORIDAD + + + + + + GUARDIA + + + + + + FECHA MOV. + + + + + + FECHA INGRESO + + + + + + CAMA + + + + + + SECTOR + + + + + + PACIENTE + + + + + - DOCUMENTO - - - - - - SEXO - - - - - - UNIDAD ORGANIZATIVA - - - - - - USUARIO - - - - - - DIAS DE ESTADA - - - - - - ESTADO - - - - - ACCIONES -
+ DOCUMENTO + + + + + + SEXO + + + + + + UNIDAD ORGANIZATIVA + + + + + + USUARIO + + + + + + DIAS DE ESTADA + + + + + + ESTADO + + + + + ACCIONES +
+ + + + + + + + +
- - - - - + @@ -208,37 +210,37 @@ + (save)="volverAResumen()"> - + + [autodisabled]="true"> - + (cancel)="volverAResumen()"> + + (onSave)="volverAResumen()"> + (onSave)="volverAResumen()"> + (accionCama)="selectCama(selectedCama, $event)" (refresh)="refresh($event)"> diff --git a/src/app/apps/rup/mapa-camas/views/mapa-camas-capa/mapa-camas-capa.component.ts b/src/app/apps/rup/mapa-camas/views/mapa-camas-capa/mapa-camas-capa.component.ts index 71ae4353e5..598789c8db 100644 --- a/src/app/apps/rup/mapa-camas/views/mapa-camas-capa/mapa-camas-capa.component.ts +++ b/src/app/apps/rup/mapa-camas/views/mapa-camas-capa/mapa-camas-capa.component.ts @@ -186,21 +186,20 @@ export class MapaCamasCapaComponent implements OnInit, OnDestroy { verListadoInternacionMedico() { this.router.navigate(['/mapa-camas/listado-internacion-medico']); } + verListadoMedicamentos() { + this.router.navigate(['/mapa-camas/listado-medicamentos']); + } onEdit(accion) { this.accion = accion; } selectCama(cama, relacion) { - this.cambiarUO = null; this.mapaCamasService.resetView(); this.mapaCamasService.select(cama); if (relacion) { this.estadoRelacion = relacion; this.accion = relacion.accion; - if (relacion.accion === 'cambiarUO') { - this.cambiarUO = true; - } } } @@ -228,7 +227,6 @@ export class MapaCamasCapaComponent implements OnInit, OnDestroy { volverADetalle() { const cama = this.mapaCamasService.selectedCama.getValue(); this.accion = cama.id ? 'verDetalle' : null; - this.cambiarUO = null; } volverADesocupar() {