Sorting measurements by number when retrieving them

This commit is contained in:
Bruno Alves de Faria 2017-09-27 12:41:19 -03:00
parent 64ad38ce96
commit 0cfd02316f

View File

@ -204,19 +204,41 @@ class MeasurementApi {
OHIF.log.info('Measurement data retrieval'); OHIF.log.info('Measurement data retrieval');
OHIF.log.info(measurementData); OHIF.log.info(measurementData);
const toolsGroupsMap = MeasurementApi.getToolsGroupsMap();
const measurementsGroups = {};
Object.keys(measurementData).forEach(measurementTypeId => { Object.keys(measurementData).forEach(measurementTypeId => {
const measurements = measurementData[measurementTypeId]; const measurements = measurementData[measurementTypeId];
measurements.forEach(measurement => { measurements.forEach(measurement => {
const { toolType } = measurement;
if (toolType && this.tools[toolType]) {
delete measurement._id; delete measurement._id;
// @TODO: check if this conditional is ok, because is throwing const toolGroup = toolsGroupsMap[toolType];
// an error for temp measurements -> measurement.toolType is undefined if (!measurementsGroups[toolGroup]) {
if (measurement.toolType && this.tools[measurement.toolType]) { measurementsGroups[toolGroup] = [];
this.tools[measurement.toolType].insert(measurement); }
measurementsGroups[toolGroup].push(measurement);
} }
}); });
}); });
Object.keys(measurementsGroups).forEach(groupKey => {
const group = measurementsGroups[groupKey];
group.sort((a, b) => {
if (a.measurementNumber > b.measurementNumber) {
return 1;
} else if (a.measurementNumber < b.measurementNumber) {
return -1;
}
return 0;
});
group.forEach(m => this.tools[m.toolType].insert(m));
});
resolve(); resolve();
}); });
}); });