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 => {
delete measurement._id; const { toolType } = measurement;
// @TODO: check if this conditional is ok, because is throwing if (toolType && this.tools[toolType]) {
// an error for temp measurements -> measurement.toolType is undefined delete measurement._id;
if (measurement.toolType && this.tools[measurement.toolType]) { const toolGroup = toolsGroupsMap[toolType];
this.tools[measurement.toolType].insert(measurement); if (!measurementsGroups[toolGroup]) {
measurementsGroups[toolGroup] = [];
}
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();
}); });
}); });