Skip to content

Commit

Permalink
feat(vacunas): Se agrega la posiblidad de seleccionar el lote corresp…
Browse files Browse the repository at this point in the history
…ondiente
  • Loading branch information
sychus authored and liquid36 committed Feb 8, 2021
1 parent bf38f84 commit 2d3a0cc
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 34 deletions.
33 changes: 28 additions & 5 deletions src/app/modules/rup/components/elementos/vacunas.component.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { cache } from '@andes/shared';
import { Component, OnInit } from '@angular/core';
import { RUPComponent } from '../core/rup.component';
import { forkJoin, Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { RupElement } from '.';
import { cache } from '@andes/shared';
import { finalize, map } from 'rxjs/operators';
import { Observable, combineLatest, forkJoin } from 'rxjs';
import { RUPComponent } from '../core/rup.component';

@Component({
selector: 'rup-vacuna',
Expand All @@ -17,7 +17,9 @@ export class VacunasComponent extends RUPComponent implements OnInit {
public laboratorios$: Observable<any[]>;
public esquemas$: Observable<any[]>;
public dosis$: Observable<any[]>;
public lotes$: Observable<any[]>;
private validacion = false;
public lote;
public vacunasEncontradas;

ngOnInit() {
Expand All @@ -28,6 +30,7 @@ export class VacunasComponent extends RUPComponent implements OnInit {
}
};
} else {
this.loadLotes();
this.getHistorialVacunas();
}

Expand Down Expand Up @@ -61,6 +64,7 @@ export class VacunasComponent extends RUPComponent implements OnInit {
});
})
);

}


Expand Down Expand Up @@ -95,6 +99,24 @@ export class VacunasComponent extends RUPComponent implements OnInit {
}
}

loadLotes() {
if (this.registro.valor.vacuna.vacuna) {
this.lotes$ = this.vacunasService.getNomivacLotes({ habilitado: true, vacuna: this.registro.valor.vacuna.vacuna._id, sort: 'codigo' }).pipe(
map(l => {
if (this.registro.valor.vacuna.lote) {
this.lote = l.find(unLote => unLote.codigo === this.registro.valor.vacuna.lote);
}
return l;
})
);
} else {
this.lotes$ = null;
}
}

setLote() {
this.registro.valor.vacuna.lote = (this.lote as any).codigo;
}

getHistorialVacunas() {
this.validacion = !this.ejecucionService;
Expand All @@ -120,7 +142,8 @@ export class VacunasComponent extends RUPComponent implements OnInit {
vacuna: r.registro.valor.vacuna.vacuna.nombre,
condicion: r.registro.valor.vacuna.condicion.nombre,
esquema: r.registro.valor.vacuna.esquema.nombre,
dosis: r.registro.valor.vacuna.dosis.nombre
dosis: r.registro.valor.vacuna.dosis.nombre,
lote: r.registro.valor.vacuna.lote
};
});
}
Expand Down
59 changes: 31 additions & 28 deletions src/app/modules/rup/components/elementos/vacunas.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,43 +2,45 @@
<form #form="ngForm">
<plex-grid cols="1">
<plex-select [(ngModel)]="registro.valor.vacuna.vacunador" name="vacunador"
(getData)="loadProfesionales($event)" placeholder="Vacunador" label="Vacunador" idField="id"
labelField="nombreCompleto">
(getData)="loadProfesionales($event)" placeholder="Vacunador" label="Vacunador" idField="id"
labelField="nombreCompleto">
</plex-select>
<plex-datetime [(ngModel)]="registro.valor.vacuna.fechaAplicacion" label="Fecha de aplicación"
name="fechaAplicacion" type="date" required="true">
name="fechaAplicacion" type="date" required="true">
</plex-datetime>
<plex-select [(ngModel)]="registro.valor.vacuna.categoria" name="categoria" [data]="categorias$ | async"
placeholder="Seleccione una opción" label="Categoría de la aplicación" idField="_id"
labelField="nombre" (change)="loadVacunas();" required="true">
placeholder="Seleccione una opción" label="Categoría de la aplicación" idField="_id" labelField="nombre"
(change)="loadVacunas();" required="true">
</plex-select>
<plex-select [(ngModel)]="registro.valor.vacuna.vacuna" name="vacuna" [data]="vacunas$ | async"
placeholder="Seleccione una opción" label="Vacuna u otros biológicos" idField="_id"
labelField="nombre" (change)="loadEsquemas();getHistorialVacunas()" required="true">
placeholder="Seleccione una opción" label="Vacuna u otros biológicos" idField="_id" labelField="nombre"
(change)="loadEsquemas();getHistorialVacunas();loadLotes()" required="true">
</plex-select>
<plex-select name="condicion" [(ngModel)]="registro.valor.vacuna.condicion" [data]="condiciones$ | async"
placeholder="Seleccione una opción" label="Condición o motivo" idField="_id"
labelField="nombre" required="true" (change)="loadEsquemas()">
placeholder="Seleccione una opción" label="Condición o motivo" idField="_id" labelField="nombre"
required="true" (change)="loadEsquemas()">
</plex-select>
<plex-select name="esquema" [(ngModel)]="registro.valor.vacuna.esquema" [data]="esquemas$ | async"
placeholder="Seleccione una opción" label="Esquema" idField="_id" labelField="nombre"
required="true" (change)="loadDosis()">
placeholder="Seleccione una opción" label="Esquema" idField="_id" labelField="nombre" required="true"
(change)="loadDosis()">
</plex-select>
<plex-select name="dosis" [(ngModel)]="registro.valor.vacuna.dosis" [data]="dosis$ | async"
placeholder="Seleccione una opción" label="Dosis" idField="_id" labelField="nombre"
(change)="checkDosis()" required="true">
placeholder="Seleccione una opción" label="Dosis" idField="_id" labelField="nombre"
(change)="checkDosis()" required="true">
</plex-select>
<plex-select name="lote" [(ngModel)]="lote" [data]="lotes$ | async"
placeholder="Seleccione el lote correspondiente" label="Lote" idField="_id" labelField="codigo"
(change)="setLote()" required="true">
</plex-select>
<plex-text [(ngModel)]="registro.valor.vacuna.lote" label="Lote" name="lote" required="true">
</plex-text>
<plex-select name="laboratorio" [(ngModel)]="registro.valor.vacuna.laboratorio"
[data]="laboratorios$ | async" placeholder="Seleccione una opción" label="Laboratorio"
idField="_id" labelField="nombre">
[data]="laboratorios$ | async" placeholder="Seleccione una opción" label="Laboratorio" idField="_id"
labelField="nombre">
</plex-select>
<plex-datetime [(ngModel)]="registro.valor.vacuna.fechaVencimiento" label="Fecha de vencimiento"
name="fechaVencimiento" type="date">
name="fechaVencimiento" type="date">
</plex-datetime>
<plex-text [(ngModel)]="registro.valor.vacuna.comentarios" label="Comentarios" name="comentarios"
[multiline]="true">
[multiline]="true">
</plex-text>
</plex-grid>
</form>
Expand All @@ -55,42 +57,43 @@
<plex-label titulo="Esquema" [subtitulo]="item.esquema" size="sm">
</plex-label>
<plex-label titulo="Dosis" [subtitulo]="item.dosis" size="sm"></plex-label>
<plex-label titulo="Lote" [subtitulo]="item.lote" size="sm"></plex-label>
</plex-item>
</plex-list>
</ng-container>
</ng-container>
<ng-container *ngIf="soloValores && registro.valor">
<plex-grid cols="1">
<plex-label *ngIf="registro.valor.vacuna.vacunador" titulo="Vacunador"
[subtitulo]="registro.valor.vacuna.vacunador.nombreCompleto">
[subtitulo]="registro.valor.vacuna.vacunador.nombreCompleto">
</plex-label>
<plex-label *ngIf="registro.valor.vacuna.fechaAplicacion" titulo="Fecha de aplicacion"
[subtitulo]="registro.valor.vacuna.fechaAplicacion | fecha">
[subtitulo]="registro.valor.vacuna.fechaAplicacion | fecha">
</plex-label>
<plex-label *ngIf="registro.valor.vacuna.categoria" titulo="Categoría"
[subtitulo]="registro.valor.vacuna.categoria.nombre">
[subtitulo]="registro.valor.vacuna.categoria.nombre">
</plex-label>
<plex-label *ngIf="registro.valor.vacuna.vacuna" titulo="Vacuna"
[subtitulo]="registro.valor.vacuna.vacuna.nombre">
[subtitulo]="registro.valor.vacuna.vacuna.nombre">
</plex-label>
<plex-label *ngIf="registro.valor.vacuna.condicion" titulo="Condición"
[subtitulo]="registro.valor.vacuna.condicion.nombre">
[subtitulo]="registro.valor.vacuna.condicion.nombre">
</plex-label>
<plex-label *ngIf="registro.valor.vacuna.esquema" titulo="Esquema"
[subtitulo]="registro.valor.vacuna.esquema.nombre">
[subtitulo]="registro.valor.vacuna.esquema.nombre">
</plex-label>
<plex-label *ngIf="registro.valor.vacuna.dosis" titulo="Dosis" [subtitulo]="registro.valor.vacuna.dosis.nombre">
</plex-label>
<plex-label *ngIf="registro.valor.vacuna.lote" titulo="Lote" [subtitulo]="registro.valor.vacuna.lote">
</plex-label>
<plex-label *ngIf="registro.valor.vacuna.laboratorio" titulo="Laboratorio"
[subtitulo]="registro.valor.vacuna.laboratorio.nombre">
[subtitulo]="registro.valor.vacuna.laboratorio.nombre">
</plex-label>
<plex-label *ngIf="registro.valor.vacuna.fechaVencimiento" titulo="Fecha de vencimiento"
[subtitulo]="registro.valor.vacuna.fechaVencimiento | fecha">
[subtitulo]="registro.valor.vacuna.fechaVencimiento | fecha">
</plex-label>
<plex-label *ngIf="registro.valor.vacuna.comentarios" titulo="Comentario"
[subtitulo]="registro.valor.vacuna.comentarios">
[subtitulo]="registro.valor.vacuna.comentarios">
</plex-label>
</plex-grid>
</ng-container>
7 changes: 6 additions & 1 deletion src/app/services/vacunas.service.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Server } from '@andes/shared';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { Server } from '@andes/shared';

@Injectable()
export class VacunasService {
Expand All @@ -12,6 +12,7 @@ export class VacunasService {
private nomivacLaboratoriosUrl = '/modules/vacunas/nomivacLaboratorios';
private nomivacEsquemasUrl = '/modules/vacunas/nomivacEsquemas';
private nomivacDosisUrl = '/modules/vacunas/nomivacDosis';
private nomivacLotesUrl = '/modules/vacunas/nomivacLotes';

constructor(private server: Server) { }

Expand Down Expand Up @@ -51,4 +52,8 @@ export class VacunasService {
return this.server.get(this.nomivacDosisUrl, { params: params, showError: true });
}

getNomivacLotes(params: any) {
return this.server.get(this.nomivacLotesUrl, { params: params, showError: true });
}

}

0 comments on commit 2d3a0cc

Please sign in to comment.