Skip to content

Commit

Permalink
[FT12] - Integração Fitbit
Browse files Browse the repository at this point in the history
User Stories: Nemhuma.
Bugs: Nenhum.
Tarefa: Gerar release candidate 3.0.0-rc1
Outras Informações: Corrigindo erro duarnte build e ajustando graficos das series temporais.
Informações para pré-release:
	* Novas funcionalidades:
                - Dashboard com informações coletadas pelo fitbit(passos, calorias, minutos ativos, distância e frequência cardíaca).
	        - Acompanhamento dos registros de atividade fisícas e sono.
        * Funcionalidades a serem desenvolvidas:
        	- Adaptar os filtros para funcionaram nos recursos de time series.
        * Bugs:
               - As medições que estavam anteriormente em uma unica página foram separadas,
    entretanto ao acessar as respectivas paginas os loading ficam eternamente.
                - Os modais de edição de usuário (admin e profissional de saude) dão erro em algumas situações.
  • Loading branch information
adalcinojunior committed Jan 20, 2020
1 parent bf60955 commit b837d00
Show file tree
Hide file tree
Showing 46 changed files with 323 additions and 1,228 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
</div>
<p class="card-category">{{'TIME-SERIES.AVERAGE-WEEK'|translate}}: </p>
<h3 class="card-title">
{{lastData && lastData.summary ? lastData.summary.total : 0}}
{{data && data.summary ? data.summary.total : 0}}
<small>{{'TIME-SERIES.ACTIVE-MINUTES.ACTIVE-MINUTES'|translate}}</small>
</h3>
<!-- <h3 class="card-title" *ngIf="lastData && lastData.value">-->
Expand All @@ -34,7 +34,7 @@ <h3 class="card-title">
</div>
<p class="card-category">{{'TIME-SERIES.BEAT-YESTERDAY'|translate}}: </p>
<h3 class="card-title">
{{lastData && lastData.summary ? lastData.summary.total : 0}}
{{data && data.summary ? data.summary.total : 0}}
<small>{{'TIME-SERIES.ACTIVE-MINUTES.ACTIVE-MINUTES'|translate}}</small>
</h3>
<!-- <h3 class="card-title" *ngIf="lastData && lastData.value">-->
Expand All @@ -56,7 +56,7 @@ <h3 class="card-title">

<div class="unavailable-data">
<spinner *ngIf="showSpinner" style="position: absolute"></spinner>
<span *ngIf="data.length==0 && !showSpinner"
<span *ngIf="!data && !showSpinner"
class="badge badge-warning badge-12 ellipsis">{{'TIME-SERIES.UNAVAILABLE-DATA'|translate}}</span>
</div>
</div>
Expand All @@ -75,7 +75,7 @@ <h3 class="card-title">
</div>
<p class="card-category">{{'TIME-SERIES.AVERAGE-WEEK'|translate}}: </p>
<h3 class="card-title">
{{lastData && lastData.summary ? lastData.summary.total : 0}}
{{data && data.summary ? data.summary.total : 0}}
<small>{{'TIME-SERIES.ACTIVE-MINUTES.ACTIVE-MINUTES'|translate}}</small>
</h3>
<!-- <h3 class="card-title" *ngIf="lastData && lastData.value">-->
Expand All @@ -97,7 +97,7 @@ <h3 class="card-title">
</div>
<p class="card-category">{{'TIME-SERIES.BEAT-YESTERDAY'|translate}}: </p>
<h3 class="card-title">
{{lastData && lastData.summary ? lastData.summary.total : 0}}
{{data && data.summary ? data.summary.total : 0}}
<small>{{'TIME-SERIES.ACTIVE-MINUTES.ACTIVE-MINUTES'|translate}}</small>
</h3>
<!-- <h3 class="card-title" *ngIf="lastData && lastData.value">-->
Expand All @@ -119,7 +119,7 @@ <h3 class="card-title">

<div class="unavailable-data">
<spinner *ngIf="showSpinner" style="position: absolute"></spinner>
<span *ngIf="data.length==0 && !showSpinner"
<span *ngIf="!data && !showSpinner"
class="badge badge-warning badge-12 ellipsis">{{'TIME-SERIES.UNAVAILABLE-DATA'|translate}}</span>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,12 @@ import { SearchForPeriod } from '../../measurement/models/measurement'
styleUrls: ['../../measurement/shared.style/shared.styles.scss']
})
export class ActivesMinutesComponent implements OnInit, OnChanges {
@Input() data: Array<TimeSeries>;
@Input() data: TimeSeries;
@Input() filterVisibility: boolean;
@Input() patientId: string;
@Input() includeCard: boolean;
@Input() showSpinner: boolean;
@Output() filterChange: EventEmitter<any>;
lastData: TimeSeries;
options: any;
echartsInstance: any;
listIsEmpty: boolean;
Expand All @@ -26,7 +25,7 @@ export class ActivesMinutesComponent implements OnInit, OnChanges {
private datePipe: DatePipe,
private translateService: TranslateService
) {
this.data = new Array<TimeSeries>();
this.data = new TimeSeries();
this.filterVisibility = false;
this.patientId = '';
this.showSpinner = false;
Expand All @@ -41,20 +40,9 @@ export class ActivesMinutesComponent implements OnInit, OnChanges {
onChartInit(event) {
this.echartsInstance = event;
}

applyFilter(filter: SearchForPeriod) {
this.showSpinner = true;
this.data = [];
// this.measurementService
// .getAllByUserAndType(this.patientId, TimeSeriesType.heart_rate, null, null, filter)
// .then(httpResponse => {
// this.data = httpResponse.body;
// this.showSpinner = false;
// this.updateGraph(this.data);
// this.filterChange.emit(this.data);
// })
// .catch(() => {
// this.showSpinner = false;
// });

}


Expand All @@ -77,24 +65,15 @@ export class ActivesMinutesComponent implements OnInit, OnChanges {
}
};


if (this.data && this.data.length > 1) {
this.lastData = this.data[this.data.length - 1];
} else {
this.lastData = this.data[0];
}

this.data.forEach((activesMinutes: TimeSeries) => {
if (activesMinutes.data_set) {
activesMinutes.data_set.forEach((element: TimeSeriesItem) => {
xAxisOptions.data.push(this.datePipe.transform(element.date, 'shortDate'));
seriesOptions.data.push({
value: element.value,
time: this.datePipe.transform(element.date, 'mediumTime')
});
if (this.data) {
this.data.data_set.forEach((element: TimeSeriesItem) => {
xAxisOptions.data.push(this.datePipe.transform(element.date, 'shortDate'));
seriesOptions.data.push({
value: element.value,
time: this.datePipe.transform(element.date, 'mediumTime')
});
}
});
});
}


this.options = {
Expand Down Expand Up @@ -136,9 +115,7 @@ export class ActivesMinutesComponent implements OnInit, OnChanges {
}

ngOnChanges(changes: SimpleChanges) {
if ((changes.data.currentValue && changes.data.previousValue
&& changes.data.currentValue.length !== changes.data.previousValue.length) ||
(changes.data.currentValue.length && !changes.data.previousValue)) {
if (changes.data.currentValue !== changes.data.previousValue) {
this.loadGraph();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ export class ActivityDashboardComponent implements OnInit, OnChanges {
this.loadingDashboard = true;
const filter: TimeSeriesSimpleFilter = new TimeSeriesSimpleFilter();
filter.start_date = this.currentDate.toISOString();
filter.start_date = this.currentDate.toISOString();
filter.end_date = this.currentDate.toISOString();
this.timeSeriesService.getAll(this.patientId, filter)
.then((timeSeries: any) => {
this.stepsValue = timeSeries.steps.summary.total;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,19 +75,19 @@ export class ActivityDetailsComponent implements OnInit {
const endTimes = this.datePipe.transform(this.physicalActivity.end_time, 'shortTime').split(':')

const sedentaryData = this.physicalActivity.levels.filter((element: ActivityLevel) => {
return element.name === Levels.SEDENTARY
return element.name === Levels.sedentary
})

const lightData = this.physicalActivity.levels.filter((element: ActivityLevel) => {
return element.name === Levels.LIGHT
return element.name === Levels.light
})

const fairlyData = this.physicalActivity.levels.filter((element: ActivityLevel) => {
return element.name === Levels.FAIRLY
return element.name === Levels.fairly
})

const veryData = this.physicalActivity.levels.filter((element: ActivityLevel) => {
return element.name === Levels.VERY
return element.name === Levels.very
})

this.intensityLevelsGraph = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ <h4 class="card-title">{{'ACTIVITY.PHYSICAL-ACTIVITY.TITLE'|translate}}</h4>
<div class="col-sm-12 col-md-12 col-lg-12 col-xl-12"
style="padding: 0px 0px; margin: 0px 0px">
<view-timestamp [patientId]="patientId"
[typeOfTimeSeries]="timeSerieSelected"></view-timestamp>
[typeOfTimeSeries]="timeSerieSelected" [filter]="currentFilter"></view-timestamp>
</div>

<div class="col-sm-12 col-md-12 col-lg-12 col-xl-12"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import * as moment from 'moment';

import { PhysicalActivity } from '../models/physical.activity';
import { SearchForPeriod } from '../../measurement/models/measurement';
import { TimeSeriesType } from '../models/time.series';
import { TimeSeriesSimpleFilter, TimeSeriesType } from '../models/time.series';
import { ConfigurationBasic } from '../../config.matpaginator';
import { ModalService } from '../../../shared/shared.components/modal/service/modal.service'
import { PhysicalActivitiesService } from '../services/physical.activities.service'
Expand Down Expand Up @@ -50,6 +50,7 @@ export class ActivityListComponent implements OnInit {
minDate: Date;
startOfWeek: Date;
endOfWeek: Date;
currentFilter: TimeSeriesSimpleFilter;

constructor(
private activeRouter: ActivatedRoute,
Expand All @@ -71,6 +72,9 @@ export class ActivityListComponent implements OnInit {
this.minDate = new Date((this.currentDate.getFullYear() - 1) + '/' +
(this.currentDate.getMonth() + 1) + '/' + this.currentDate.getDate());
this.filterSelected = 'today';
this.currentFilter = new TimeSeriesSimpleFilter();
this.currentFilter.start_date = this.currentDate.toISOString();
this.currentFilter.end_date = this.currentDate.toISOString();
this.startOfWeek = moment().startOf('week').toDate();
this.endOfWeek = moment().endOf('week').toDate();

Expand All @@ -82,7 +86,6 @@ export class ActivityListComponent implements OnInit {
this.activeRouter.paramMap.subscribe((params) => {
this.patientId = params.get('patientId');
})
this.initializeListChecks();
}

applyFilter($event): void {
Expand Down
16 changes: 10 additions & 6 deletions src/app/modules/activity/calories/calories.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
</div>
<p class="card-category">{{'TIME-SERIES.AVERAGE-WEEK'|translate}}: </p>
<h3 class="card-title">
{{lastData && lastData.summary ? lastData.summary.total : 0}} <small>{{'TIME-SERIES.CALORIES.CALORIES'|translate}}</small>
{{data && data.summary ? data.summary.total : 0}}
<small>{{'TIME-SERIES.CALORIES.CALORIES'|translate}}</small>
</h3>
<!-- <h3 class="card-title" *ngIf="lastData && lastData.value">-->
<!-- {{lastData.value + '' + lastData.unit}}-->
Expand All @@ -33,7 +34,8 @@ <h3 class="card-title">
</div>
<p class="card-category">{{'TIME-SERIES.BEAT-YESTERDAY'|translate}}: </p>
<h3 class="card-title">
{{lastData && lastData.summary ? lastData.summary.total : 0}} <small>{{'TIME-SERIES.CALORIES.CALORIES'|translate}}</small>
{{data && data.summary ? data.summary.total : 0}}
<small>{{'TIME-SERIES.CALORIES.CALORIES'|translate}}</small>
</h3>
<!-- <h3 class="card-title" *ngIf="lastData && lastData.value">-->
<!-- {{lastData.value + '' + lastData.unit}}-->
Expand All @@ -54,7 +56,7 @@ <h3 class="card-title">

<div class="unavailable-data">
<spinner *ngIf="showSpinner" style="position: absolute"></spinner>
<span *ngIf="data.length==0 && !showSpinner"
<span *ngIf="!data && !showSpinner"
class="badge badge-warning badge-12 ellipsis">{{'TIME-SERIES.UNAVAILABLE-DATA'|translate}}</span>
</div>
</div>
Expand All @@ -73,7 +75,8 @@ <h3 class="card-title">
</div>
<p class="card-category">{{'TIME-SERIES.AVERAGE-WEEK'|translate}}: </p>
<h3 class="card-title">
{{lastData && lastData.summary ? lastData.summary.total : 0}} <small>{{'TIME-SERIES.CALORIES.CALORIES'|translate}}</small>
{{data && data.summary ? data.summary.total : 0}}
<small>{{'TIME-SERIES.CALORIES.CALORIES'|translate}}</small>
</h3>
<!-- <h3 class="card-title" *ngIf="lastData && lastData.value">-->
<!-- {{lastData.value + '' + lastData.unit}}-->
Expand All @@ -94,7 +97,8 @@ <h3 class="card-title">
</div>
<p class="card-category">{{'TIME-SERIES.BEAT-YESTERDAY'|translate}}: </p>
<h3 class="card-title">
{{lastData && lastData.summary ? lastData.summary.total : 0}} <small>{{'TIME-SERIES.CALORIES.CALORIES'|translate}}</small>
{{data && data.summary ? data.summary.total : 0}}
<small>{{'TIME-SERIES.CALORIES.CALORIES'|translate}}</small>
</h3>
<!-- <h3 class="card-title" *ngIf="lastData && lastData.value">-->
<!-- {{lastData.value + '' + lastData.unit}}-->
Expand All @@ -115,7 +119,7 @@ <h3 class="card-title">

<div class="unavailable-data">
<spinner *ngIf="showSpinner" style="position: absolute"></spinner>
<span *ngIf="data.length==0 && !showSpinner"
<span *ngIf="!data && !showSpinner"
class="badge badge-warning badge-12 ellipsis">{{'TIME-SERIES.UNAVAILABLE-DATA'|translate}}</span>
</div>
</div>
Expand Down
34 changes: 11 additions & 23 deletions src/app/modules/activity/calories/calories.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,12 @@ import { SearchForPeriod } from '../../measurement/models/measurement'
styleUrls: ['../../measurement/shared.style/shared.styles.scss']
})
export class CaloriesComponent implements OnInit, OnChanges {
@Input() data: Array<TimeSeries>;
@Input() data: TimeSeries;
@Input() filterVisibility: boolean;
@Input() patientId: string;
@Input() includeCard: boolean;
@Input() showSpinner: boolean;
@Output() filterChange: EventEmitter<any>;
lastData: TimeSeries;
options: any;
echartsInstance: any;
listIsEmpty: boolean;
Expand All @@ -25,7 +24,7 @@ export class CaloriesComponent implements OnInit, OnChanges {
private datePipe: DatePipe,
private translateService: TranslateService
) {
this.data = new Array<TimeSeries>();
this.data = new TimeSeries();
this.filterVisibility = false;
this.patientId = '';
this.showSpinner = false;
Expand Down Expand Up @@ -68,24 +67,15 @@ export class CaloriesComponent implements OnInit, OnChanges {
}
};


if (this.data.length > 1) {
this.lastData = this.data[this.data.length - 1];
} else {
this.lastData = this.data[0];
}

this.data.forEach((calories) => {
if (calories.data_set) {
calories.data_set.forEach((element: TimeSeriesItem) => {
xAxisOptions.data.push(this.datePipe.transform(element.date, 'shortDate'));
seriesOptions.data.push({
value: element.value,
time: this.datePipe.transform(element.date, 'mediumTime')
});
if (this.data) {
this.data.data_set.forEach((element: TimeSeriesItem) => {
xAxisOptions.data.push(this.datePipe.transform(element.date, 'shortDate'));
seriesOptions.data.push({
value: element.value,
time: this.datePipe.transform(element.date, 'mediumTime')
});
}
});
});
}

this.options = {
legend: {
Expand Down Expand Up @@ -148,9 +138,7 @@ export class CaloriesComponent implements OnInit, OnChanges {
}

ngOnChanges(changes: SimpleChanges) {
if ((changes.data.currentValue && changes.data.previousValue
&& changes.data.currentValue.length !== changes.data.previousValue.length) ||
(changes.data.currentValue.length && !changes.data.previousValue)) {
if (changes.data.currentValue !== changes.data.previousValue) {
this.loadGraph();
}
}
Expand Down
Loading

0 comments on commit b837d00

Please sign in to comment.