diff --git a/src/app/modules/rup/components/ejecucion/hudsBusqueda.component.ts b/src/app/modules/rup/components/ejecucion/hudsBusqueda.component.ts index 0cc875df1a..31cb7c538b 100644 --- a/src/app/modules/rup/components/ejecucion/hudsBusqueda.component.ts +++ b/src/app/modules/rup/components/ejecucion/hudsBusqueda.component.ts @@ -140,7 +140,9 @@ export class HudsBusquedaComponent implements AfterContentInit, OnInit { public motivosSuspension; public motivoSuspensionSelector; public seleccionRecetas = []; - public seleccionSuspender = []; + public seleccionBotonesAccion = []; + public accionRecetas = null; + public mostrarConfirmacion = false; /** * Ids correspondientes a Prescripción de Medicamentos y Seguimiento Hídrico respectivamente */ @@ -856,7 +858,43 @@ export class HudsBusquedaComponent implements AfterContentInit, OnInit { resetSeleccionRecetas() { this.groupRecetas(); this.seleccionRecetas = []; - this.seleccionSuspender = []; + this.seleccionBotonesAccion = []; + this.mostrarConfirmacion = false; + } + + setAccionRecetas(accion) { + if (this.accionRecetas === accion) { + this.accionRecetas = null; + } else { + this.accionRecetas = accion; + } + this.resetSeleccionRecetas(); + } + + confirmarAccionRecetas() { + if (this.seleccionBotonesAccion.length === 0) { return; } + if (this.accionRecetas === 'renovar') { + const count = this.seleccionBotonesAccion.length; + const msg = count === 1 + ? `¿Está seguro que desea renovar ${this.seleccionBotonesAccion[0].medicamento?.concepto?.term}?` + : `¿Está seguro que desea renovar las ${count} medicaciones seleccionadas?`; + this.plex.confirm(msg, 'Renovar recetas').then(confirmado => { + if (!confirmado) { return; } + const organizacion = { id: this.auth.organizacion.id, nombre: this.auth.organizacion.nombre }; + const recetaIds = this.seleccionBotonesAccion.map(r => r.id); + this.recetasService.renovar(recetaIds, this.profesional, organizacion).subscribe({ + next: () => { + this.plex.toast('success', 'Medicaciones renovadas correctamente'); + this.resetSeleccionRecetas(); + }, + error: () => { + this.plex.toast('danger', 'Error al renovar las medicaciones'); + } + }); + }); + } else if (this.accionRecetas === 'suspender') { + this.mostrarConfirmacion = true; + } } openRecetaTab(group) { @@ -864,18 +902,58 @@ export class HudsBusquedaComponent implements AfterContentInit, OnInit { } esRecetaSeleccionable(receta) { - const estadosPermitidos = ['vigente', 'pendiente']; - const dispensasPermitidas = ['sin-dispensa', 'dispensa-parcial']; - if (!receta.medicamento.tratamientoProlongado) { - return (estadosPermitidos.includes(receta.estadoActual?.tipo) - && dispensasPermitidas.includes(receta.estadoDispensaActual?.tipo)) && this.profesionalValido; - } else { - const recetasMismoRegistro = this.busquedaRecetas?.flatMap(grupo => - grupo.recetas.filter(r => r.idRegistro === receta.idRegistro && r.medicamento.concepto.conceptId === receta.medicamento.concepto.conceptId) + if (!this.accionRecetas) { + return false; + } + + const esRenovar = this.accionRecetas === 'renovar'; + + if (esRenovar) { + // 1. Suspendidas no se pueden renovar + if (receta.estadoActual?.tipo === 'suspendida') { + return false; + } + + // 2. Solo recetas del último año + const dentroDelAnio = moment().subtract(1, 'year').isSameOrBefore(moment(receta.fechaRegistro)); + if (!dentroDelAnio) { + return false; + } + + // 3. Solo se pueden renovar si el grupo no tiene recetas pendientes + const recetasDelGrupo = this.busquedaRecetas?.flatMap(grupo => + grupo.recetas.filter(r => + r.idRegistro === receta.idRegistro && + r.medicamento.concepto.conceptId === receta.medicamento.concepto.conceptId + ) ) || []; - return recetasMismoRegistro.some(rec => - (estadosPermitidos.includes(rec.estadoActual?.tipo) - && dispensasPermitidas.includes(rec.estadoDispensaActual?.tipo)) && this.profesionalValido); + const tienePendientes = recetasDelGrupo.some(r => r.estadoActual?.tipo === 'pendiente'); + if (tienePendientes) { + return false; + } + + // 4. Solo se pueden renovar recetas finalizadas o vencidas + const estadosRenovables = ['finalizada', 'vencida']; + if (!estadosRenovables.includes(receta.estadoActual?.tipo)) { + return false; + } + + return this.profesionalValido; + } else { + // Suspension logic + const estadosPermitidos = ['vigente', 'pendiente']; + const dispensasPermitidas = ['sin-dispensa', 'dispensa-parcial']; + if (!receta.medicamento.tratamientoProlongado) { + return (estadosPermitidos.includes(receta.estadoActual?.tipo) + && dispensasPermitidas.includes(receta.estadoDispensaActual?.tipo)) && this.profesionalValido; + } else { + const recetasMismoRegistro = this.busquedaRecetas?.flatMap(grupo => + grupo.recetas.filter(r => r.idRegistro === receta.idRegistro && r.medicamento.concepto.conceptId === receta.medicamento.concepto.conceptId) + ) || []; + return recetasMismoRegistro.some(rec => + (estadosPermitidos.includes(rec.estadoActual?.tipo) + && dispensasPermitidas.includes(rec.estadoDispensaActual?.tipo)) && this.profesionalValido); + } } } @@ -899,26 +977,32 @@ export class HudsBusquedaComponent implements AfterContentInit, OnInit { const isSelected = event.value; let recetaSeleccionada = []; const estadosNoSeleccionables = ['suspendida', 'vencida', 'dispensada']; + const esRenovar = this.accionRecetas === 'renovar'; + setTimeout(() => { - if (!this.recetaVisible(recetas).medicamento.tratamientoProlongado) { - recetaSeleccionada = recetas - .filter(receta => receta.estadoActual.tipo === 'vigente') - .sort((a, b) => moment(b.fechaRegistro).diff(moment(a.fechaRegistro)))[0]; + if (!this.recetaVisible(recetas).medicamento.tratamientoProlongado || esRenovar) { + if (esRenovar) { + recetaSeleccionada = this.recetaVisible(recetas); + } else { + recetaSeleccionada = recetas + .filter(receta => receta.estadoActual.tipo === 'vigente') + .sort((a, b) => moment(b.fechaRegistro).diff(moment(a.fechaRegistro)))[0]; + } if (isSelected) { this.seleccionRecetas[index] = true; - this.seleccionSuspender.push(recetaSeleccionada); + this.seleccionBotonesAccion.push(recetaSeleccionada); } else { this.seleccionRecetas[index] = null; - this.seleccionSuspender = this.seleccionSuspender.filter(r => r.id !== recetaSeleccionada.id); + this.seleccionBotonesAccion = this.seleccionBotonesAccion.filter(r => r.id !== recetaSeleccionada.id); } } else { if (isSelected) { this.seleccionRecetas[index] = true; - this.seleccionSuspender.push(...recetas.filter(receta => !estadosNoSeleccionables.includes(receta.estadoDispensaActual.tipo) && !estadosNoSeleccionables.includes(receta.estadoActual.tipo))); + this.seleccionBotonesAccion.push(...recetas.filter(receta => !estadosNoSeleccionables.includes(receta.estadoDispensaActual.tipo) && !estadosNoSeleccionables.includes(receta.estadoActual.tipo))); } else { this.seleccionRecetas[index] = null; - this.seleccionSuspender = this.seleccionSuspender.filter( + this.seleccionBotonesAccion = this.seleccionBotonesAccion.filter( r => !recetas.some(receta => receta.id === r.id) ); } diff --git a/src/app/modules/rup/components/ejecucion/hudsBusqueda.html b/src/app/modules/rup/components/ejecucion/hudsBusqueda.html index 65f3f8aa0f..0c7ef9e317 100644 --- a/src/app/modules/rup/components/ejecucion/hudsBusqueda.html +++ b/src/app/modules/rup/components/ejecucion/hudsBusqueda.html @@ -6,9 +6,9 @@
+ (click)="filtroBuscador(filtro.key)">
+ [ngClass]="{'active': filtroActual === filtro.key}">
{{getCantidadResultados(filtro.key)}} @@ -21,34 +21,56 @@
+ [title]="showFiltros ? 'Cerrar filtros' : 'Ver filtros'" class="float-right" tooltipPosition="left" + (click)="toogleFiltros()">
+ *ngIf="filtroActual !== 'solicitudes' && filtroActual !== 'planes' && filtroActual !== 'laboratorios' && filtroActual !== 'vacunas' && filtroActual !== 'dominios'">
+ [autoFocus]="true">
+ label="{{filtroTrastornos ? 'Activos' : 'Todos'}}">
@@ -56,22 +78,27 @@
{{ getTitulo(filtroActual) | uppercas + placeholder="Buscar recetas..." [autoFocus]="true">
  • - +
    -
    - - Tratamiento prolongado: {{ (grupo.recetaVisible?.medicamento?.ordenTratamiento !== null && grupo.recetaVisible?.medicamento?.ordenTratamiento !== undefined) ? (grupo.recetaVisible.medicamento.ordenTratamiento + 1) : 0 }} de {{grupo.recetaVisible?.medicamento.tiempoTratamiento?.id}} -
    -
    + + Tratamiento prolongado: {{ (grupo.recetaVisible?.medicamento?.ordenTratamiento !== + null && grupo.recetaVisible?.medicamento?.ordenTratamiento !== undefined) ? + (grupo.recetaVisible.medicamento.ordenTratamiento + 1) : 0 }} de + {{grupo.recetaVisible?.medicamento.tiempoTratamiento?.id}} +
    +
    {{ getTitulo(filtroActual) | uppercas
    Fecha de Registro: - {{ grupo.recetaVisible?.fechaRegistro | date:'short' }} - -
    - Profesional: {{ - grupo.recetaVisible?.profesional.nombre }} {{ - grupo.recetaVisible?.profesional.apellido }} - + {{ grupo.recetaVisible?.fechaRegistro | + date:'short' }} + +
    + Profesional: {{ + grupo.recetaVisible?.profesional.nombre }} {{ + grupo.recetaVisible?.profesional.apellido }} +
    @@ -105,15 +133,18 @@
    {{ getTitulo(filtroActual) | uppercas
    - - {{ grupo.recetaVisible?.estadoActual?.tipo.replace('-', ' ') }} - - - {{ grupo.recetaVisible?.estadoDispensaActual?.tipo.replace('-', ' ') - }} - + + {{ grupo.recetaVisible?.estadoActual?.tipo.replace('-', ' ') + }} + + + {{ + grupo.recetaVisible?.estadoDispensaActual?.tipo.replace('-', + ' ') + }} +
    @@ -131,7 +162,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + titulo="No hay recetas registradas">
    @@ -146,11 +177,11 @@
    {{ getTitulo(filtroActual) | uppercas
  • + [ngClass]="{'active': huds.isOpen(registro, 'solicitud') || huds.isOpen(registro, 'concepto'), 'solicitud': true}" + (click)="clickSolicitud(registro, iPrestacion)">
    + [ngClass]="{'active': huds.isOpen(registro, 'solicitud') || huds.isOpen(registro, 'concepto'), 'rup-border-plan': true}">
    @@ -192,17 +223,16 @@
    {{ getTitulo(filtroActual) | uppercas
    + [type]="registro.estadoActual.tipo === 'validada' ? 'success' :'info'" + *ngIf="registro.estadoActual"> {{ registro.estadoActual.tipo }} + icon="information-outline" title="Registrado por profesional" + titlePosition="left"> + icon="information-outline" title="Registrado por gestión" + titlePosition="left">
    @@ -218,7 +248,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + titulo="No hay solicitudes registradas">
    @@ -230,11 +260,11 @@
    {{ getTitulo(filtroActual) | uppercas
  • + [ngClass]="{'active': huds.isOpen(registro, 'concepto'), 'solicitud': registro.esSolicitud}" + (click)="emitTabs(registro, 'concepto', iConcepto)">
    + [ngClass]="{'active': huds.isOpen(registro, 'concepto'), 'rup-border-plan': registro.esSolicitud}">
    @@ -278,7 +308,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + titulo="No hay hallazgos registrados">
    @@ -290,17 +320,17 @@
    {{ getTitulo(filtroActual) | uppercas
  • + [ngClass]="{'active': huds.isOpen(registro, 'concepto'), 'solicitud': registro.esSolicitud}" + (click)="emitTabs(registro, 'concepto', iConcepto)">
    + [ngClass]="{'active': huds.isOpen(registro, 'concepto'), 'rup-border-plan': registro.esSolicitud}">
    + [dragScope]="'registros-rup'" [dragData]="registro.concepto" + (onDragStart)="dragStart($event)" (onDragEnd)="dragEnd($event)">
    @@ -328,14 +358,14 @@
    {{ getTitulo(filtroActual) | uppercas
    + [type]="registro.evoluciones[0].estado === 'activo' ? 'success' : 'danger'"> {{ registro.evoluciones[0].estado }}
    @@ -351,7 +381,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + titulo="No hay trastornos registrados">
    @@ -363,11 +393,11 @@
    {{ getTitulo(filtroActual) | uppercas
  • + [ngClass]="{'active': huds.isOpen(registro, 'concepto'), 'solicitud': registro.esSolicitud}" + (click)="emitTabs(registro, 'concepto', iConcepto)">
    + [ngClass]="{'active': huds.isOpen(registro, 'concepto'), 'rup-border-registro': registro.esSolicitud}">
    @@ -412,7 +442,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + titulo="No hay elementos de registros cargados">
    @@ -424,17 +454,17 @@
    {{ getTitulo(filtroActual) | uppercas
  • + [ngClass]="{'active': huds.isOpen(registro, 'concepto'), 'solicitud': registro.esSolicitud}" + (click)="emitTabs(registro, 'concepto', iPrestacion)">
    + [ngClass]="{'active': huds.isOpen(registro, 'concepto'), 'rup-border-plan': registro.esSolicitud}">
    + [class.adi-mano-corazon]="registro.esSolicitud">
    {{ registro.concepto.term }} @@ -472,7 +502,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + titulo="No hay procedimientos registrados">
    @@ -484,26 +514,26 @@
    {{ getTitulo(filtroActual) | uppercas
    + idField="conceptId" labelField="term" (change)="filtrar()" [multiple]="true">
    + idField="id" labelField="nombre" (change)="filtrar()">
    + label="Fecha Desde" [debounce]="400">
    + label="Fecha Hasta" [debounce]="400">
    @@ -517,7 +547,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + name="documento">
    Detalle de la internacion
    @@ -535,9 +565,9 @@
    {{ getTitulo(filtroActual) | uppercas
    + class="item-prestacion list-group-item" + [ngClass]="{'activo': huds.someOpen(internacion, iInternacion)}" + (click)="emitTabs(internacion, 'internacion', iInternacion)">
    @@ -545,7 +575,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + size="lg" name="circulo-paciente">

    {{registro.term || 'Evoluciones y otros registros'}}

    @@ -560,7 +590,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + name="documento">
    Prestación fuera de internación
    @@ -576,15 +606,15 @@
    {{ getTitulo(filtroActual) | uppercas
    + class="item-prestacion list-group-item" + [ngClass]="{'activo': huds.someOpen(internacion, iInternacion)}" + (click)="emitTabs(otrasPrestaciones, 'internacion', iInternacion)">
    + class="icon" size="lg" name="mano-gota">
    + class="icon" size="lg" name="pildoras">
    + size="lg" name="circulo-paciente">

    {{indice.term || 'Evoluciones y otros registros'}}

    @@ -597,7 +627,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + titulo="No hay prestaciones registradas">
    @@ -607,11 +637,11 @@
    {{ getTitulo(filtroActual) | uppercas
  • + [ngClass]="{'active': huds.isOpen(prestacion.data, prestacion.tipo)}" + (click)="emitTabs(prestacion, prestacion.tipo, iPrestacion)">
    + [ngClass]="{'active': huds.isOpen(prestacion.data, prestacion.tipo)}">
    @@ -645,7 +675,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + [type]=" prestacion.tipo !== 'ficha-epidemiologica' ? 'success' : 'info'"> {{prestacion.estado}}
    @@ -660,7 +690,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + titulo="No hay prestaciones registradas">
    @@ -674,7 +704,7 @@
    {{ getTitulo(filtroActual) | uppercas
  • + (click)="emitTabs(registro, 'concepto', iCronico)">
    @@ -700,7 +730,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + [type]="registro.evoluciones[registro.evoluciones.length-1].estado === 'activo' ? 'success' : 'danger'"> {{ registro.evoluciones[registro.evoluciones.length-1].estado }} @@ -717,7 +747,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + titulo="No hay productos registrados">
    @@ -730,7 +760,7 @@
    {{ getTitulo(filtroActual) | uppercas
  • + [ngClass]="{'active': huds.isOpen(laboratorio, laboratorio.idProtocolo ? 'laboratorio' : 'cda')}">
    @@ -742,7 +772,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + (click)="emitTabs(laboratorio, laboratorio.idProtocolo ? 'laboratorio' : 'cda', iLaboratorio)">
    {{ @@ -771,7 +801,7 @@
    {{ getTitulo(filtroActual) | uppercas fecha}}
    + class="text-sm"> Médico solicitante: {{ laboratorio?.medicoSolicitante || laboratorio?.profesional }} @@ -793,7 +823,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + titulo="No hay laboratorios registrados">
    @@ -818,7 +848,7 @@
    {{ getTitulo(filtroActual) | uppercas
    + (click)="emitTabs(unaVacuna, 'cda', iVacuna)"> {{ unaVacuna?.prestacion.term }}
    diff --git a/src/app/modules/rup/components/ejecucion/recetas/renovarMedicacion.html b/src/app/modules/rup/components/ejecucion/recetas/renovarMedicacion.html new file mode 100644 index 0000000000..7d44a5953b --- /dev/null +++ b/src/app/modules/rup/components/ejecucion/recetas/renovarMedicacion.html @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + +
    IndicacionProfesional
    {{ receta?.medicamento.concepto.term }}{{ receta?.profesional.nombre }} {{ receta?.profesional.apellido }}
    + + +
    \ No newline at end of file diff --git a/src/app/modules/rup/components/ejecucion/recetas/renovarMedicacion.ts b/src/app/modules/rup/components/ejecucion/recetas/renovarMedicacion.ts new file mode 100644 index 0000000000..8d4979ce60 --- /dev/null +++ b/src/app/modules/rup/components/ejecucion/recetas/renovarMedicacion.ts @@ -0,0 +1,41 @@ +import { Auth } from '@andes/auth'; +import { Plex } from '@andes/plex'; +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { RecetaService } from 'src/app/services/receta.service'; + +@Component({ + selector: 'renovar-medicacion', + templateUrl: 'renovarMedicacion.html', +}) + +export class RenovarMedicacionComponent { + constructor( + public plex: Plex, + private recetasService: RecetaService, + private auth: Auth, + ) { } + + @Input() seleccionRecetas: any[]; + @Input() profesional: any; + + @Output() reset: EventEmitter = new EventEmitter(); + @Output() cerrar: EventEmitter = new EventEmitter(); + + public renovarMedicacion() { + const organizacion = { id: this.auth.organizacion.id, nombre: this.auth.organizacion.nombre }; + const recetaIds = this.seleccionRecetas + .filter(receta => receta !== null) + .map(receta => receta.id); + + this.recetasService.renovar(recetaIds, this.profesional, organizacion).subscribe({ + next: () => { + this.reset.emit(); + this.cerrar.emit(); + this.plex.toast('success', 'Medicaciones renovadas correctamente'); + }, + error: () => { + this.plex.toast('danger', 'Error al renovar las medicaciones'); + } + }); + } +} diff --git a/src/app/modules/rup/components/ejecucion/recetas/suspenderMedicacion.html b/src/app/modules/rup/components/ejecucion/recetas/suspenderMedicacion.html index 7bf37b51b8..dd9a90bbfa 100644 --- a/src/app/modules/rup/components/ejecucion/recetas/suspenderMedicacion.html +++ b/src/app/modules/rup/components/ejecucion/recetas/suspenderMedicacion.html @@ -1,7 +1,7 @@ - + + [disabled]="!formSuspension.valid" (click)="suspenderMedicacion()"> @@ -17,8 +17,7 @@ {{ medicamento.term }} {{ medicamento.count }} - {{ medicamento?.profesional?.nombre }} {{ medicamento?.profesional?.apellido }} - + {{ medicamento?.profesional?.nombre }} {{ medicamento?.profesional?.apellido }} @@ -26,10 +25,10 @@
    + required> - +
    \ No newline at end of file diff --git a/src/app/modules/rup/components/ejecucion/recetas/suspenderMedicacion.ts b/src/app/modules/rup/components/ejecucion/recetas/suspenderMedicacion.ts index f9e9e4dd28..83340139ba 100644 --- a/src/app/modules/rup/components/ejecucion/recetas/suspenderMedicacion.ts +++ b/src/app/modules/rup/components/ejecucion/recetas/suspenderMedicacion.ts @@ -1,5 +1,5 @@ import { Plex } from '@andes/plex'; -import { Component, EventEmitter, Input, Output, ChangeDetectorRef, AfterViewChecked } from '@angular/core'; +import { Component, EventEmitter, Input, Output, ChangeDetectorRef, AfterViewChecked, ViewChild, OnInit } from '@angular/core'; import { RecetaService } from 'src/app/services/receta.service'; @Component({ @@ -8,7 +8,7 @@ import { RecetaService } from 'src/app/services/receta.service'; styleUrls: ['suspenderMedicacion.scss'] }) -export class SuspenderMedicacionComponent implements AfterViewChecked { +export class SuspenderMedicacionComponent implements AfterViewChecked, OnInit { constructor( public plex: Plex, private recetasService: RecetaService, @@ -24,6 +24,14 @@ export class SuspenderMedicacionComponent implements AfterViewChecked { public motivoSelector: any; public observacion: string; + @ViewChild('modal', { static: true }) modal: any; + + ngOnInit() { + if (this.modal) { + setTimeout(() => this.modal.show()); + } + } + get groupedMedicamentos() { if (!this.seleccionRecetas || !Array.isArray(this.seleccionRecetas)) { return []; @@ -50,8 +58,12 @@ export class SuspenderMedicacionComponent implements AfterViewChecked { return; } + const count = this.seleccionRecetas.length; const medicamento = this.seleccionRecetas[0]?.medicamento?.concepto?.term || 'medicamento'; - this.plex.confirm(`¿Está seguro que desea suspender ${this.seleccionRecetas.length > 1 ? `las (${this.seleccionRecetas.length}) medicaciones seleccionadas` : `
    "${medicamento}"`}?`, 'Atención').then(confirmacion => { + const msg = count === 1 + ? `¿Está seguro que desea suspender
    "${medicamento}"?` + : `¿Está seguro que desea suspender las ${count} medicaciones seleccionadas?`; + this.plex.confirm(msg, 'Atención').then(confirmacion => { const recetasASuspender = this.filtrarRecetasUnicas(this.seleccionRecetas); if (confirmacion && recetasASuspender.length > 0) { let completadas = 0; @@ -64,6 +76,7 @@ export class SuspenderMedicacionComponent implements AfterViewChecked { completadas++; if (completadas + errores === total) { this.reset.emit(); + if (this.modal) {this.modal.close();} if (errores === 0) { this.plex.toast('success', 'Medicaciones suspendidas correctamente'); } else { @@ -97,6 +110,13 @@ export class SuspenderMedicacionComponent implements AfterViewChecked { }); } + cancelar() { + if (this.modal) { + this.modal.close(); + } + this.reset.emit(); + } + ngAfterViewChecked() { if (this.cdr) { this.cdr.detectChanges(); diff --git a/src/app/modules/rup/huds-lib.module.ts b/src/app/modules/rup/huds-lib.module.ts index e445751369..7e6b54b55b 100644 --- a/src/app/modules/rup/huds-lib.module.ts +++ b/src/app/modules/rup/huds-lib.module.ts @@ -37,6 +37,7 @@ import { MotivosHudsService } from 'src/app/services/motivosHuds.service'; import { VistaLaboratorioComponent } from './components/ejecucion/laboratorios/vista-laboratorio.component'; import { VistaRecetaComponent } from './components/huds/vistaReceta'; import { SuspenderMedicacionComponent } from './components/ejecucion/recetas/suspenderMedicacion'; +import { RenovarMedicacionComponent } from './components/ejecucion/recetas/renovarMedicacion'; @NgModule({ imports: [ @@ -80,7 +81,8 @@ import { SuspenderMedicacionComponent } from './components/ejecucion/recetas/sus VistaHistorialTurnosComponent, HudsBusquedaComponent, ListadoInternacionHudsComponent, - SuspenderMedicacionComponent + SuspenderMedicacionComponent, + RenovarMedicacionComponent ], exports: [ VistaCDAComponent, @@ -103,7 +105,8 @@ import { SuspenderMedicacionComponent } from './components/ejecucion/recetas/sus VistaHistorialTurnosComponent, HudsBusquedaComponent, ListadoInternacionHudsComponent, - SuspenderMedicacionComponent + SuspenderMedicacionComponent, + RenovarMedicacionComponent ], providers: [MotivosHudsService] diff --git a/src/app/services/receta.service.ts b/src/app/services/receta.service.ts index d1ca59e70b..89dbd93308 100644 --- a/src/app/services/receta.service.ts +++ b/src/app/services/receta.service.ts @@ -29,6 +29,10 @@ export class RecetaService { return this.server.patch(`${this.url}`, { op: 'suspender', recetaId, motivo, observacion, profesional }); } + renovar(recetasIds: string[], profesional: any, organizacion: any) { + return this.server.post(`${this.url}/renovar`, { recetasIds, profesional, organizacion }); + } + getRecetaPrincipal(recetas) { if (recetas.length === 1) { return recetas[0];