Skip to content

Commit

Permalink
CIT - Mejoras visuales en notificaciones de turnos (#3073)
Browse files Browse the repository at this point in the history
* CIT - Mejoras visuales en notificaciones de turnos

* Se agregan correcciones sobre observaciones

* ref(CIT): boton envío de notif y reemplazo 'sms' por 'notificación'

* Se agrega y corrigue chequeos sobre notificaciones en el turno

---------

Co-authored-by: laucharin <negro89_nqn@hotmail.com>
  • Loading branch information
Fabio-Ramirez and negro89 authored Oct 10, 2024
1 parent cc4f099 commit 2620852
Show file tree
Hide file tree
Showing 11 changed files with 46 additions and 28 deletions.
8 changes: 4 additions & 4 deletions src/app/components/turnos/dar-turnos/dar-turnos.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1192,12 +1192,12 @@ export class DarTurnosComponent implements OnInit {
this.resultado = sms;
if (this.resultado === '0') {
if (paciente.alias) {
this.plex.toast('info', 'Se envió SMS al paciente ' + paciente.alias + ' ' + paciente.apellido);
this.plex.toast('info', 'Se notificó al paciente ' + paciente.alias + ' ' + paciente.apellido);
} else {
this.plex.toast('info', 'Se envió SMS al paciente ' + paciente.nombre + ' ' + paciente.apellido);
this.plex.toast('info', 'Se notificó al paciente ' + paciente.nombre + ' ' + paciente.apellido);
}
} else {
this.plex.toast('danger', 'ERROR: SMS no enviado');
this.plex.toast('danger', 'ERROR: Notificación no enviada');
}
},
error: (err) => {
Expand All @@ -1207,7 +1207,7 @@ export class DarTurnosComponent implements OnInit {
}
});
} else {
this.plex.toast('info', 'INFO: SMS no enviado (activo sólo en Producción)');
this.plex.toast('info', 'INFO: Notificación no enviada (activa sólo en Producción)');
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ export class GestorAgendasComponent implements OnInit, OnDestroy {
agenda.bloques.forEach(bloque => {
bloque.turnos.forEach(turno => {
// Cuenta la cantidad de turnos suspendidos (no reasignados) con paciente en cada agenda
if ((turno.paciente && turno.paciente.id) && ((turno.estado === 'suspendido') || (agenda.estado === 'suspendida'))
if ((turno.paciente?.id) && ((turno.estado === 'suspendido') || (agenda.estado === 'suspendida'))
&& (!turno.reasignado || !turno.reasignado.siguiente)) {
count++;
}
Expand Down Expand Up @@ -566,6 +566,7 @@ export class GestorAgendasComponent implements OnInit, OnDestroy {
}

verAgenda(agenda, multiple, e) {

if (this.showElegirSobreTurno) {
this.showSobreturno = false;
this.showElegirSobreTurno = false;
Expand All @@ -581,7 +582,7 @@ export class GestorAgendasComponent implements OnInit, OnDestroy {
this.showTurnos = false;
this.showSuspendida = false;
this.showEditarAgendaPanel = false;
if (agenda && agenda.id) {
if (agenda?.id) {
this.serviceAgenda.getById(agenda.id).subscribe(ag => {
// Actualizo la agenda local
agenda = ag;
Expand Down Expand Up @@ -638,7 +639,7 @@ export class GestorAgendasComponent implements OnInit, OnDestroy {
}

onSeleccionAgendaNoMultiple(ag) {
if (ag && ag.estado && ag.estado === 'suspendida') {
if (ag?.estado && ag.estado === 'suspendida') {
this.showSuspendida = true; // Mostramos los pacientes y sus teléfonos de la agenda suspendida
}
this.agendasSeleccionadas = [];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export class InfoAgendaComponent {
this.turnosSeleccionados = [];
this.horaInicio = moment(this._agenda.horaInicio).format('dddd').toUpperCase();
this.arrayDelDia = [];
this.enviarNotificacion = value.enviarSms ? 'Si' : 'No';
}
get agenda(): any {
return this._agenda;
Expand All @@ -30,6 +31,7 @@ export class InfoAgendaComponent {
hoy: Date;
public delDia = false;
public arrayDelDia = [];
public enviarNotificacion = '';

public volverAtras() {
this.volver.emit();
Expand Down
3 changes: 3 additions & 0 deletions src/app/components/turnos/gestor-agendas/info-agenda.html
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@
asignado</span>
</div>
</div>
<div>
<label>Envía notificación </label> {{enviarNotificacion}}
</div>
<div *ngIf="agenda.dinamica" class="row">
<div class="col-12">
<label>Cupos disponibles</label>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ export class SuspenderAgendaComponent implements OnInit {
public showData = false;
public showConfirmar = false;
public telefonos = [];
public enviarNotificacion = '';
/**
* Array con todos los turnos de la agenda.
*
Expand Down Expand Up @@ -108,6 +109,7 @@ export class SuspenderAgendaComponent implements OnInit {
this.turnos.push(sobreturno);
}
});
this.enviarNotificacion = this.agenda.enviarSms ? 'Si' : 'No';
}

suspenderAgenda() {
Expand Down Expand Up @@ -144,7 +146,7 @@ export class SuspenderAgendaComponent implements OnInit {


notificar() {
// Se envían SMS sólo en Producción
// Se envían notificaciones sólo en Producción
if (environment.production === true) {
for (let x = 0; x < this.seleccionadosSMS.length; x++) {
if (this.seleccionadosSMS[x].avisoSuspension !== 'enviado') {
Expand All @@ -153,7 +155,7 @@ export class SuspenderAgendaComponent implements OnInit {
}
}
} else {
this.plex.toast('info', 'INFO: SMS no enviado (activo sólo en Producción)');
this.plex.toast('info', 'INFO: Notificación no enviada (activa sólo en Producción)');
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@
class="text-danger">Espacio físico no asignado</span>
</div>
</div>
<div>
<label>Enviar notificación: </label> {{enviarNotificacion}}
</div>
<div *ngIf="agenda.dinamica" class="row">
<div class="col-12">
<label>Cupos disponibles</label>
Expand All @@ -67,7 +70,8 @@
<plex-help *ngIf="agenda.nota" class="mr-1" type="help" icon="message">
{{ agenda.nota }}
</plex-help>
<plex-button type="default" icon="email-outline" size="sm" (click)="notificar()"></plex-button>
<plex-button *ngIf="agenda.enviarSms" type="info" tooltip="Enviar notificación" icon="email-outline" size="sm"
(click)="notificar()"></plex-button>
<plex-button type="danger" tooltip="Cerrar" icon="close" (click)="cerrarSidebarTurnos()" class="ml-1" size="sm">
</plex-button>
</plex-title>
Expand Down Expand Up @@ -140,7 +144,7 @@
title="Notificación enviada">
<plex-icon name="message-text-outline"></plex-icon>
</plex-badge>
<plex-badge *ngIf="turno.avisoSuspension ==='no enviado'" type="info"
<plex-badge *ngIf="turno.avisoSuspension ==='no enviado' && agenda.enviarSms" type="info"
title="Notificación pendiente">
<plex-icon name="message-processing"></plex-icon>
</plex-badge>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -249,17 +249,17 @@ export class ReasignarTurnoAutomaticoComponent implements OnInit {
// "if 0 errores"
if (this.resultado === '0') {
if (paciente.alias) {
this.plex.toast('info', 'Se envió SMS al paciente ' + paciente.alias + ' ' + paciente.apellido);
this.plex.toast('info', 'Se notificó al paciente ' + paciente.alias + ' ' + paciente.apellido);
} else {
this.plex.toast('info', 'Se envió SMS al paciente ' + paciente.nombre + ' ' + paciente.apellido);
this.plex.toast('info', 'Se notificó al paciente ' + paciente.nombre + ' ' + paciente.apellido);
}
} else {
this.plex.toast('danger', 'ERROR: SMS no enviado');
this.plex.toast('danger', 'ERROR: Notificación no enviada');
}
},
err => {
if (err) {
this.plex.toast('danger', 'ERROR: Servicio caído');
this.plex.toast('danger', 'Error de servicio');

}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ export class SuspenderTurnoComponent implements OnInit {
public motivoSuspension: any[];
public motivoSuspensionSelect = { select: null };
public seleccionadosSMS = [];
public avisoSuspension = 'no enviado';
public suspendio = false;

constructor(public plex: Plex, public auth: Auth, public listaEsperaService: ListaEsperaService, public serviceAgenda: AgendaService, public smsService: SmsService) { }
Expand Down Expand Up @@ -67,7 +68,7 @@ export class SuspenderTurnoComponent implements OnInit {
seleccionarTurno(turno) {
const indice = this.seleccionadosSMS.indexOf(turno);
if (indice === -1) {
if (turno.paciente && turno.paciente.id) {
if (turno.paciente?.id) {
this.seleccionadosSMS = [...this.seleccionadosSMS, turno];
}
} else {
Expand All @@ -78,15 +79,14 @@ export class SuspenderTurnoComponent implements OnInit {

estaSeleccionado(turno) {
if (this.seleccionadosSMS.indexOf(turno) >= 0) {
this.avisoSuspension = 'enviado';
return true;
} else {
this.avisoSuspension = 'no enviado';
return false;
}
}

tienePaciente(turno) {
return turno.paciente != null && turno.paciente.id != null;
}

suspenderTurno() {

Expand All @@ -102,6 +102,7 @@ export class SuspenderTurnoComponent implements OnInit {
turnos: this.turnosSeleccionados.map((resultado) => {
return resultado.id;
}),
avisoSuspension: this.avisoSuspension,
motivoSuspension: this.motivoSuspensionSelect.select.nombre
};
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
<div class="col-4">
<label>Hora del Turno</label>
</div>
<div class="col-4">
<div [ngClass]="{'col-6': !agenda.enviarSms, 'col-4': agenda.enviarSms}">
<label>Paciente</label>
</div>
<div class="col-4">
<div *ngIf="agenda.enviarSms" class="col-4">
<label>Enviar notificación</label>
</div>
</div>
Expand All @@ -20,12 +20,12 @@
<div class="col-4">
{{turno.horaInicio | date: 'H:mm'}} hs
</div>
<div class="col-4">
<div [ngClass]="{'col-6': !agenda.enviarSms, 'col-4': agenda.enviarSms}">
<span *ngIf="turno.paciente?.id">{{turno.paciente | nombre }} {{turno.estado}}</span>
<span *ngIf="!turno.paciente?.id && turno.estado !== 'turnoDoble'">sin paciente asignado</span>
<span *ngIf="turno.estado === 'turnoDoble'">turno doble</span>
</div>
<div class="col-4" (click)="seleccionarTurno(turno)">
<div *ngIf="agenda.enviarSms" class="col-4" (click)="seleccionarTurno(turno)">
<span *ngIf="!turno.paciente?.id">-</span>
<span *ngIf="!estaSeleccionado(turno) && turno.paciente?.id">
<plex-icon name="checkbox-blank-outline"></plex-icon>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ export class BotonesTurnosPipe implements PipeTransform {
}

agendaNoSuspendida(agenda) {
return agenda.estado !== 'suspendida';
return agenda.estado !== 'suspendida' || agenda.enviarSms;
}

noTienenAsistencia(turnos) {
Expand All @@ -79,7 +79,7 @@ export class BotonesTurnosPipe implements PipeTransform {

ningunoConEstado(estado, turnos) {
for (let x = 0; x < turnos.length; x++) {
if (turnos[x].estado === estado) {
if (turnos[x].estado === estado && turnos[x].avisoSuspension !== 'no enviado') {
return false;
}
}
Expand Down
11 changes: 8 additions & 3 deletions src/app/components/turnos/gestor-agendas/turnos.html
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,7 @@
<plex-button *ngIf="botones.cambiarDisponible && turnosSeleccionados?.length" class="mr-1" type="warning"
size="sm" icon="undo" tooltip="Cambiar a disponible" tooltipPosition="top"
(click)="cambiarADisponible()">

</plex-button>


</ng-container>
<plex-help *ngIf="!agenda.dinamica" type="help" icon="cog">
<plex-title titulo="Prestaciones asociadas" size="sm"></plex-title>
Expand Down Expand Up @@ -195,6 +192,14 @@ <h2 class="text-info">
class="mr-1" size="sm" type="danger" tooltip="Aun no reasignado" tooltipPosition="left">
<plex-icon name="account-alert"></plex-icon>
</plex-badge>
<plex-badge *ngIf="turno.estado ==='suspendido' && turno.avisoSuspension === 'no enviado'" type="info"
title="Notificación pendiente" class="mr-1" tooltipPosition="left">
<plex-icon name="message-processing"></plex-icon>
</plex-badge>
<plex-badge *ngIf="turno.estado ==='suspendido' && turno.avisoSuspension ==='enviado'" type="info"
title="Notificación enviada">
<plex-icon name="message-text-outline"></plex-icon>
</plex-badge>
<ng-container *ngIf="agenda | botonesTurnos:turnosSeleccionados as botones">
<plex-button *ngIf="botones.turnoDoble && turnosSeleccionados[0]?.id === turno.id"
ariaLabel="Turno doble" size="sm" type="default" icon="numeric-2-box-multiple-outline"
Expand Down

0 comments on commit 2620852

Please sign in to comment.