Skip to content

Commit

Permalink
feat(ficha-epidemio): semana epidemiologica e instituciones
Browse files Browse the repository at this point in the history
  • Loading branch information
Pancho committed Apr 28, 2021
1 parent 97a9990 commit 04b114a
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -72,15 +72,22 @@
[(ngModel)]="seccion.fields[field.key]" [data]="localidades$ | async"
[readonly]="!editFicha" required="true">
</plex-select>
<plex-bool *ngIf="field.key==='resideinstitucion' "
[label]="field.label?field.label:field.key" grow="auto" name="{{ field.key }}"
[(ngModel)]="seccion.fields[field.key]" [required]="field.required"
[readonly]="!editFicha"
(change)="getInstituciones(); clearDependencias($event,'mpi', ['tipoinstitucion','lugarinstitucion'])">
</plex-bool>
<plex-select *ngIf="field.key==='tipoinstitucion' && seccion.fields['resideinstitucion']"
[label]="field.label?field.label:field.key" grow="auto" name="{{ field.key }}"
[(ngModel)]="seccion.fields[field.key]" [data]="tipoInstitucion"
[readonly]="!editFicha">
</plex-select>
<plex-text *ngIf="field.key==='lugarinstitucion' && seccion.fields['resideinstitucion']"
[label]="field.label?field.label:field.key" grow="auto" name="{{ field.key }}"
[(ngModel)]="seccion.fields[field.key]" [readonly]="!editFicha">
</plex-text>
<plex-select *ngIf="field.key==='lugarinstitucion' && seccion.fields['resideinstitucion']"
[label]="field.label?field.label:field.key" grow="auto" name="{{ field.key }}"
[(ngModel)]="seccion.fields[field.key]" [readonly]="!editFicha"
[data]="instituciones$ | async">
</plex-select>

<!--Clasificación-->
<ng-container *ngIf="seccion.id==='clasificacion'">
Expand Down Expand Up @@ -179,14 +186,6 @@

<!--Información clínica-->
<ng-container *ngIf="seccion.id==='informacionClinica'">

<plex-datetime *ngIf="field.key==='fechasintomas'"
[label]="field.label?field.label:field.key" grow="auto"
name="{{ field.key }}" [(ngModel)]="seccion.fields[field.key]"
[required]="field.required" (change)="setSemanaEpidemiologica()"
[readonly]="!editFicha">
</plex-datetime>

<plex-int *ngIf="field.key==='semanaepidemiologica'"
[label]="field.label?field.label:field.key" grow="auto" name="{{ field.key }}"
[(ngModel)]="seccion.fields[field.key]" [required]="field.required"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { PacienteService } from 'src/app/core/mpi/services/paciente.service';
import { OrganizacionService } from '../../../../services/organizacion.service';
import { FormsService } from '../../../forms-builder/services/form.service';
import { FormsEpidemiologiaService } from '../../services/ficha-epidemiologia.service';
import { InstitucionService } from 'src/app/services/turnos/institucion.service';


@Component({
Expand All @@ -31,10 +32,10 @@ export class FichaEpidemiologicaCrudComponent implements OnInit, OnChanges {
{ id: 'asistencial', nombre: 'Asistencial' },
{ id: 'administrativa', nombre: 'Administrativa' }
];
// Ver cuales son las funciones (no figuran en la planilla)
public funcionPersonalSalud = [
{ id: 'func1', nombre: 'Funcion 1' },
{ id: 'func2', nombre: 'Funcion 2' }
{ id: 'tecnico', nombre: 'Técnico/Auxiliar con función asistencial' },
{ id: 'profesional', nombre: 'Profesional con función asistencial' },
{ id: 'admin', nombre: 'Trabajador de la salud con función administrativa' }
];
public funcionSeguridad = [
{ id: 'policia', nombre: 'Policia' },
Expand Down Expand Up @@ -166,6 +167,7 @@ export class FichaEpidemiologicaCrudComponent implements OnInit, OnChanges {
public zonaSanitaria = null;
public localidades$: Observable<any>;
public provincias$: Observable<any>;
public instituciones$: Observable<any>;
public estaInternado = false;

constructor(
Expand All @@ -178,7 +180,8 @@ export class FichaEpidemiologicaCrudComponent implements OnInit, OnChanges {
private organizacionService: OrganizacionService,
private router: Router,
private snomedService: SnomedService,
public servicePaciente: PacienteService
public servicePaciente: PacienteService,
public serviceInstitucion: InstitucionService
) { }

ngOnChanges(): void {
Expand Down Expand Up @@ -220,7 +223,7 @@ export class FichaEpidemiologicaCrudComponent implements OnInit, OnChanges {
if (this.checkClasificacionFinal()) {
this.setFicha();
} else {
this.plex.info('danger', 'Si el resultado del antigeno es NO REACTIVO debe completar el campo LAMP o PCR');
this.plex.info('warning', 'Si el resultado del antigeno es NO REACTIVO debe completar el campo LAMP o PCR', 'Atención');
}
}

Expand Down Expand Up @@ -333,6 +336,14 @@ export class FichaEpidemiologicaCrudComponent implements OnInit, OnChanges {
nombre: this.auth.organizacion.nombre
};
seccion.fields['fechaprimerconsulta'] = new Date();
const primerDomingo = moment().startOf('year').startOf('week').weekday(-1);
if (primerDomingo.format('YYYY') === moment().format('YYYY')) {
primerDomingo.add(7, 'days');
}
if (seccion.id === 'informacionClinica') {
const hoy = moment(new Date());
seccion.fields['semanaepidemiologica'] = Math.trunc((hoy.diff(primerDomingo, 'days') / 7)) + 1;
}
break;
case 'mpi':
seccion.fields['direccioncaso'] = this.paciente.direccion[0].valor ? this.paciente.direccion[0].valor : '';
Expand Down Expand Up @@ -378,17 +389,6 @@ export class FichaEpidemiologicaCrudComponent implements OnInit, OnChanges {
});
}

// Función para calcular automaticamente la semana epidemiológica segun la fecha de inicio de primer sintoma
setSemanaEpidemiologica() {
this.secciones.map(seccion => {
if (seccion.id === 'informacionClinica') {
const fechaSintoma = moment(seccion.fields['fechasintomas']);
const hoy = moment(new Date());
seccion.fields['semanaepidemiologica'] = Math.round(hoy.diff(fechaSintoma, 'days') / 7);
}
});
}

setOrganizacion(seccion, organizacion) {
const idOrganizacion = organizacion.value ? organizacion.value.id : organizacion;
this.organizacionService.getById(idOrganizacion).subscribe(res => {
Expand Down Expand Up @@ -520,9 +520,15 @@ export class FichaEpidemiologicaCrudComponent implements OnInit, OnChanges {
checkClasificacionFinal() {
const seccionClasificacion = this.secciones.find(seccion => seccion.id === 'clasificacionFinal');
if (seccionClasificacion.fields['antigeno']?.id === 'muestra') {
return (seccionClasificacion.fields['lamp']?.id || seccionClasificacion.fields['pcrM'])
return (seccionClasificacion.fields['lamp']?.id || seccionClasificacion.fields['pcrM']);
} else {
return true;
}
}

getInstituciones() {
this.instituciones$ = this.serviceInstitucion.get({}).pipe(
cache()
);
}
}

0 comments on commit 04b114a

Please sign in to comment.