new logo and some features correction
@@ -1,5 +1,5 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<widget id="com.unam.acatan.sintomapp" version="0.0.12" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
||||
<widget id="com.unam.acatan.sintomapp" version="0.1.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
||||
<name>SintomApp-Acatlan</name>
|
||||
<description>An app for control an visualizatión of a pandemic data like simphtoms evolution and sumarized data in the 'FES Acatán UNAM'</description>
|
||||
<author email="aisgxvso@comunidad.unam.com" href="http://ionicframework.com/">Axel Iván Solano González</author>
|
||||
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 898 KiB After Width: | Height: | Size: 658 KiB |
|
After Width: | Height: | Size: 898 KiB |
|
Before Width: | Height: | Size: 699 KiB After Width: | Height: | Size: 755 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 1015 B After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 856 KiB After Width: | Height: | Size: 852 KiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 375 KiB After Width: | Height: | Size: 377 KiB |
|
Before Width: | Height: | Size: 515 KiB After Width: | Height: | Size: 516 KiB |
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 654 KiB After Width: | Height: | Size: 652 KiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 324 KiB After Width: | Height: | Size: 324 KiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 321 KiB After Width: | Height: | Size: 320 KiB |
|
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 280 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 74 KiB |
@@ -15,7 +15,7 @@
|
||||
<ion-text>
|
||||
<h2>Aplicación para seguimiento de síntomas.</h2>
|
||||
<p>
|
||||
Esta aplicación esta diseñada para dar seguimiento a los síntomas de una pandemia, en ella los usuarios pueden plasmar los síntomas que presenten a lo largo de su patología para informar a la comunidad y prevenir a los compañeros.
|
||||
Esta aplicación está diseñada para capturar información del alumnado que presenta síntomas relacionados con el COVID-19. La información se enviará al Secretario Técnico para dar seguimiento y si es necesario canalizar al área correspondiente
|
||||
</p>
|
||||
<img src="assets/Capturas/EscudoAcatlan.png">
|
||||
</ion-text>
|
||||
@@ -24,7 +24,7 @@
|
||||
<ion-text>
|
||||
<h2>Página de datos del alumno.</h2>
|
||||
<p>
|
||||
En esta página el alumno agregará datos de interés para dar seguimiento al Secretario Técnico. El alumno podra editar estos datos; ellos serán utilizados por los Secretarios Técnicos para evaluar las estrategias a seguir.
|
||||
En esta página el alumnado captura datos personales que son enviados al Secretario Técnico.
|
||||
</p>
|
||||
<img src="assets/Capturas/DatosAlumno.jpg">
|
||||
</ion-text>
|
||||
@@ -33,7 +33,7 @@
|
||||
<ion-text>
|
||||
<h2>Página de síntomas.</h2>
|
||||
<p>
|
||||
Aquí se deberán seleccionar los síntomas que el alumno presenta en ese día y luego presionar el botón de enviar para que los síntomas puedan ser visualizados por el Secretario Técnico más adelante.
|
||||
En esta página el alumnado selecciona los síntomas relacionados al COVID-19 que presenta ese día y los envía para que el Secretario Técnico los visualice posteriormente.
|
||||
</p>
|
||||
<img src = "assets/Capturas/Sintomas.jpg">
|
||||
</ion-text>
|
||||
@@ -42,7 +42,7 @@
|
||||
<ion-text>
|
||||
<h2>Página de fotos.</h2>
|
||||
<p>
|
||||
En esta página se deberá seleccionar el archivo: jpg, png, jpeg, (archivos de imagen en general). Para validar el tratamiento o diagnóstico del Secretario Técnico.
|
||||
En esta página el alumnado selecciona el archivo de imagen (jpg, jpeg, png) que enviará con la información capturada al Secretario Técnico para evaluarla y en su caso turnar al área correspondiente.
|
||||
</p>
|
||||
<img src = "assets/Capturas/Foto.jpg">
|
||||
</ion-text>
|
||||
|
||||
@@ -47,15 +47,19 @@
|
||||
<ion-icon name="fitness-outline" color="secondary"></ion-icon>
|
||||
<ion-label color="ligth">Infectado: {{ data.infected }}</ion-label>
|
||||
</ion-item>
|
||||
<ion-item color="translucent">
|
||||
<ion-icon name="pulse-outline" color="secondary"></ion-icon>
|
||||
<ion-label color="ligth">Sintomas {{dateString}}</ion-label>
|
||||
</ion-item>
|
||||
<ion-list class="list-bg">
|
||||
<ion-item color="none" *ngFor="let simptom of simpthoms">
|
||||
{{ simptom.symptoms.description}}
|
||||
|
||||
<ion-list class="list-bg"*ngFor="let date of simpthoms | keyvalue">
|
||||
<ion-item color="translucent">
|
||||
<ion-icon name="pulse-outline" color="secondary"></ion-icon>
|
||||
<ion-label color="ligth"> {{date.key}} </ion-label>
|
||||
</ion-item>
|
||||
<ion-list class="list-bg">
|
||||
<ion-item color="translucent" *ngFor="let simptom of toArray( date.value )">
|
||||
<ion-label color="translucent"> {{simptom.description}} </ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
</ion-list>
|
||||
|
||||
<ion-list class="list-bg">
|
||||
<ion-item color="none" *ngFor="let photo of photos" >
|
||||
<ion-img [src]=photo ></ion-img>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { ActionSheetController, ToastController } from '@ionic/angular';
|
||||
import { debug } from 'console';
|
||||
import { AuthService } from '../services/auth.service';
|
||||
import { LoaderService } from '../services/loader.service';
|
||||
|
||||
@@ -14,9 +15,7 @@ export class StudentPage implements OnInit {
|
||||
data=
|
||||
{id: "", email:"", name:"", phone:"", street:"", noExt:0, noInt:0, suburb:"",cp:"", state:"",infected:false, user:{name:"",username:""}}
|
||||
photos = [];
|
||||
simpthoms = [];
|
||||
date:Date
|
||||
dateString = ""
|
||||
simpthoms = new Map();
|
||||
|
||||
constructor(
|
||||
private toast:ToastController,
|
||||
@@ -32,9 +31,21 @@ export class StudentPage implements OnInit {
|
||||
});
|
||||
this.auth.store.get(`secretary/evolution/${JSON.parse(res.value).user.name}`).subscribe( all =>{
|
||||
console.log(all);
|
||||
this.simpthoms = all;
|
||||
this.date = new Date(this.simpthoms[0].dateTime);
|
||||
this.dateString = this.date.toDateString();
|
||||
all.forEach(element => {
|
||||
var tmpSimpData = [];
|
||||
let date = new Date(element.dateTime);
|
||||
let dateString:String = date.toDateString();
|
||||
var simpthom = element.symptoms;
|
||||
let keys = Array.from(this.simpthoms.keys());
|
||||
if (keys.includes(dateString)){
|
||||
tmpSimpData = this.simpthoms.get(dateString);
|
||||
tmpSimpData.push(simpthom);
|
||||
this.simpthoms.set(dateString, tmpSimpData)
|
||||
} else {
|
||||
tmpSimpData.push(simpthom);
|
||||
this.simpthoms.set(dateString, tmpSimpData)
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -85,6 +96,10 @@ export class StudentPage implements OnInit {
|
||||
await actionSheet.present();
|
||||
}
|
||||
|
||||
toArray(answers: object) {
|
||||
return Object.keys(answers).map(key => answers[key])
|
||||
}
|
||||
|
||||
async presentToast(alumno:String) {
|
||||
var mensajeFinal = 'El alumno: ' + alumno + "ah sido confirmado";
|
||||
const toast = await this.toast.create({
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
</ion-item>
|
||||
<ion-item color="translucent">
|
||||
<ion-label>Número Interior: </ion-label>
|
||||
<ion-input placeholder="Número Interior" inputmode="numeric" min=1 [(ngModel)]="data.noInt" name="noInt" color="ligth" ></ion-input>
|
||||
<ion-input placeholder="Número Interior" inputmode="numeric" min=1 [(ngModel)]="data.noInt" name="noInt" maxlength=5 color="ligth" ></ion-input>
|
||||
</ion-item>
|
||||
<ion-item color="translucent">
|
||||
<ion-label>Colonia: </ion-label>
|
||||
@@ -48,7 +48,7 @@
|
||||
</ion-item>
|
||||
<ion-item color="translucent">
|
||||
<ion-label>Código postal: </ion-label>
|
||||
<ion-input placeholder="Codigo postal" inputmode="numeric" [(ngModel)]="data.cp" name="cp" color="ligth" maxlength=5 required></ion-input>
|
||||
<ion-input placeholder="Codigo postal" inputmode="numeric" [(ngModel)]="data.cp" name="cp" color="ligth" maxlength=5 minlength=5 required></ion-input>
|
||||
</ion-item>
|
||||
<ion-item color="translucent">
|
||||
<ion-label>Estado: </ion-label>
|
||||
|
||||
@@ -35,7 +35,8 @@ export class Tab1Page implements OnInit{
|
||||
this.data.cp = res.cp;
|
||||
this.data.state = res.state;
|
||||
this.name=res.name;
|
||||
if (this.data.email != ""){
|
||||
var re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
|
||||
if (re.test(this.data.email)){
|
||||
this.availableToSymtoms = true;
|
||||
}
|
||||
}
|
||||
|
||||