Skip to content

Commit

Permalink
PER - cambios en seguimiento perinatal (#2743)
Browse files Browse the repository at this point in the history
* feat(PER-76): cambios en seguimiento perinatal

* fix(PER-76): correcciones en perinatal
  • Loading branch information
MarianoCampetella authored Apr 4, 2023
1 parent 6329d23 commit 03c9e3c
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,9 @@
<plex-select [(ngModel)]="organizacion" name="organizacion" label="Organizacion" tmOrganizaciones
(change)="filtrar()">
</plex-select>

<plex-bool class="bool-posicion" label="Ausente" [(ngModel)]="verAusente" name="estado" type="slide"
(change)="filtrar()">
</plex-bool>
</div>
</plex-wrapper>

Expand All @@ -46,34 +48,36 @@
</plex-table-columns>
</plex-title>
<tr *ngFor="let carnet of (listado$| plSort:table| async)" (click)="showInSidebar(carnet)"
[class.selected]="carnet.id===carnetSelected?.id" [class.selectable]="selectable">
<td *plTableCol="'fechaInicio'">{{ carnet.fecha | fecha }}</td>
<td *plTableCol="'paciente'">{{ carnet.paciente.apellido + ', ' + carnet.paciente.nombre }}</td>
<td *plTableCol="'documento'">{{ carnet.paciente.documento }}</td>
<td *plTableCol="'edad'">{{ carnet.paciente | edad }}</td>
<td *plTableCol="'ausente'">
<plex-badge *ngIf="esAusente(carnet.fechaProximoControl,carnet.fechaFinEmbarazo)" size="sm"
type="danger">AUSENTE
<plex-icon name="alert-circle" type="danger" size="sm"></plex-icon>
</plex-badge>
</td>
<td *plTableCol="'fechaCita'">
<plex-badge *ngIf="carnet.fechaProximoControl" size="sm" type="success">
{{ carnet.fechaProximoControl | fecha }}
<plex-icon name="calendar-today" type="success" size="sm"></plex-icon>
</plex-badge>
<plex-badge *ngIf="!carnet.fechaProximoControl" size="sm" type="warning">No indica
</plex-badge>
</td>
<td *plTableCol="'ultimoControl'">
<plex-badge size="sm" type="info">{{ carnet.fechaUltimoControl | fecha }}
<plex-icon name="calendar-today" type="info" size="sm"></plex-icon>
</plex-badge>
</td>
<td *plTableCol="'numeroEmbarazo'" class="text-capitalize">{{ carnet.primeriza?
'Primer Embarazo': (carnet.cantidadEmbarazos)? carnet.embarazo.term + '
('+carnet.cantidadEmbarazos+') ' : carnet.embarazo.term}}
</td>
[class.selected]="carnet?.id===carnetSelected?.id" [class.selectable]="selectable">
<ng-container *ngIf="carnet">
<td *plTableCol="'fechaInicio'">{{ carnet.fecha | fecha }}</td>
<td *plTableCol="'paciente'">{{ carnet.paciente.apellido + ', ' + carnet.paciente.nombre }}</td>
<td *plTableCol="'documento'">{{ carnet.paciente.documento }}</td>
<td *plTableCol="'edad'">{{ carnet.paciente | edad }}</td>
<td *plTableCol="'ausente'">
<plex-badge *ngIf="esAusente(carnet.fechaProximoControl,carnet.fechaFinEmbarazo)" size="sm"
type="danger">AUSENTE
<plex-icon name="alert-circle" type="danger" size="sm"></plex-icon>
</plex-badge>
</td>
<td *plTableCol="'fechaCita'">
<plex-badge *ngIf="carnet.fechaProximoControl" size="sm" type="success">
{{ carnet.fechaProximoControl | fecha }}
<plex-icon name="calendar-today" type="success" size="sm"></plex-icon>
</plex-badge>
<plex-badge *ngIf="!carnet.fechaProximoControl" size="sm" type="warning">No indica
</plex-badge>
</td>
<td *plTableCol="'ultimoControl'">
<plex-badge size="sm" type="info">{{ carnet.fechaUltimoControl | fecha }}
<plex-icon name="calendar-today" type="info" size="sm"></plex-icon>
</plex-badge>
</td>
<td *plTableCol="'numeroEmbarazo'" class="text-capitalize">{{ carnet.primeriza?
'Primer Embarazo': (carnet.cantidadEmbarazos)? carnet.embarazo.term + '
('+carnet.cantidadEmbarazos+') ' : carnet.embarazo.term}}
</td>
</ng-container>
</tr>
</plex-table>
</plex-layout-main>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ import { CarnetPerinatalService } from './../services/carnet-perinatal.service';

@Component({
selector: 'listado-perinatal',
templateUrl: './listado-perinatal.component.html'
templateUrl: './listado-perinatal.component.html',
styleUrls: ['listado-perinatal.scss'],
})
export class ListadoPerinatalComponent implements OnInit {
public fechaDesdeEntrada;
Expand All @@ -31,6 +32,7 @@ export class ListadoPerinatalComponent implements OnInit {
public collapse = false;
public sortBy: string;
public sortOrder = 'desc';
public verAusente;
public columns = [
{
key: 'fechaInicio',
Expand Down Expand Up @@ -114,6 +116,7 @@ export class ListadoPerinatalComponent implements OnInit {
this.listado$ = this.carnetPerinatalService.carnetsFiltrados$.pipe(
map(resp => this.listadoActual = resp)
);
this.verAusente = false;
}

filtrar() {
Expand All @@ -125,6 +128,7 @@ export class ListadoPerinatalComponent implements OnInit {
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() {
Expand Down Expand Up @@ -158,9 +162,9 @@ export class ListadoPerinatalComponent implements OnInit {
fechaHasta: this.fechaHastaEntrada,
profesional: this.profesional?.id,
organizacion: this.organizacion?.id,
paciente: this.paciente || ''
paciente: this.paciente || '',
estado: 'AUSENTE'
};

this.documentosService.descargarListadoPerinatal(params, `perinatal ${moment().format('DD-MM-hh-mm-ss')}`).subscribe();
}

Expand All @@ -186,7 +190,7 @@ export class ListadoPerinatalComponent implements OnInit {
} else {
this.plex.toast('success', 'Nota eliminada con éxito');
}
}, error => {
}, () => {
this.plex.toast('danger', 'El carnet no pudo ser actualizado');
});
}
Expand Down
3 changes: 3 additions & 0 deletions src/app/modules/perinatal/components/listado-perinatal.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.bool-posicion{
margin-top: 30px;
}
35 changes: 23 additions & 12 deletions src/app/modules/perinatal/services/carnet-perinatal.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ import { ResourceBaseHttp, Server } from '@andes/shared';
import { Injectable } from '@angular/core';
import { BehaviorSubject, combineLatest, EMPTY, Observable } from 'rxjs';
import { auditTime, map, switchMap } from 'rxjs/operators';
import { IOrganizacion } from '../../../interfaces/IOrganizacion';
import { IProfesional } from '../../../interfaces/IProfesional';

@Injectable()
export class CarnetPerinatalService extends ResourceBaseHttp {
Expand All @@ -10,29 +12,31 @@ export class CarnetPerinatalService extends ResourceBaseHttp {
public paciente = new BehaviorSubject<string>(null);
public fechaDesde = new BehaviorSubject<Date>(null);
public fechaHasta = new BehaviorSubject<Date>(null);
public organizacion = new BehaviorSubject<string>(null);
public profesional = new BehaviorSubject<string>(null);
public organizacion = new BehaviorSubject<IOrganizacion>(null);
public profesional = new BehaviorSubject<IProfesional>(null);
public fechaProximoControl = new BehaviorSubject<Date>(null);
public fechaUltimoControl = new BehaviorSubject<Date>(null);
public estado = new BehaviorSubject<boolean>(null);
public lastResults = new BehaviorSubject<any[]>(null);
private limit = 15;
private skip;
public carnetsFiltrados$: Observable<any[]>;

constructor(protected server: Server) {
super(server);
this.carnetsFiltrados$ = combineLatest(
this.carnetsFiltrados$ = combineLatest([
this.fechaDesde,
this.fechaHasta,
this.organizacion,
this.profesional,
this.paciente,
this.fechaProximoControl,
this.fechaUltimoControl,
this.estado,
this.lastResults
).pipe(
]).pipe(
auditTime(0),
switchMap(([fechaDesde, fechaHasta, organizacion, profesional, paciente, fechaProximoControl, fechaUltimoControl, lastResults]) => {
switchMap(([fechaDesde, fechaHasta, organizacion, profesional, paciente, fechaProximoControl, fechaUltimoControl, estado, lastResults]) => {
if (!lastResults) {
this.skip = 0;
}
Expand All @@ -45,7 +49,7 @@ export class CarnetPerinatalService extends ResourceBaseHttp {
skip: this.skip
};
if (paciente) {
params.paciente = '^' + paciente.toUpperCase();
params.paciente = '^' + (paciente as string).toUpperCase();
}
if (fechaProximoControl) {
params.fechaProximoControl = moment(fechaProximoControl).format('YYYY-MM-DD');;
Expand All @@ -54,19 +58,26 @@ export class CarnetPerinatalService extends ResourceBaseHttp {
params.fechaUltimoControl = moment(fechaUltimoControl).format('YYYY-MM-DD');
}
if (organizacion) {
params.organizacion = organizacion.id;
params.organizacion = (organizacion as IOrganizacion).id;
}
if (profesional) {
params.profesional = profesional.id;
params.profesional = (profesional as IProfesional).id;
}
params.fechaControl = this.queryDateParams(fechaDesde, fechaHasta);

params.fechaControl = this.queryDateParams(fechaDesde as Date, fechaHasta as Date);

return this.search(params).pipe(
map(resultados => {
const listado = lastResults ? lastResults.concat(resultados) : resultados;
const listado = lastResults ? (lastResults as any[]).concat(resultados) : resultados;
this.skip = listado.length;
return listado;
if (estado) {
return listado.map(elemt_list => {
if ((moment().diff(moment(elemt_list?.fechaProximoControl), 'days') >= 1) && !elemt_list?.fechaFinEmbarazo) {
return elemt_list;
}
});
} else {
return listado;
}
})
);
}
Expand Down

0 comments on commit 03c9e3c

Please sign in to comment.