Handling child measuerements on viewer

This commit is contained in:
Bruno Alves de Faria 2017-12-14 19:27:24 -02:00
parent 3246bdae7a
commit 9aaca3b147
2 changed files with 28 additions and 11 deletions

View File

@ -178,6 +178,9 @@ class MeasurementApi {
} }
}); });
// Synchronize the new tool data
this.syncMeasurementsAndToolData();
// Enable reactivity // Enable reactivity
this.changeObserver.changed(); this.changeObserver.changed();
}; };
@ -343,19 +346,31 @@ class MeasurementApi {
const toolState = cornerstoneTools.globalImageIdSpecificToolStateManager.saveToolState(); const toolState = cornerstoneTools.globalImageIdSpecificToolStateManager.saveToolState();
_.each(entries, entry => { _.each(entries, entry => {
const imageId = OHIF.viewerbase.getImageIdForImagePath(entry.imagePath); const measurementsData = [];
if (toolState[imageId]) { const { tool } = OHIF.measurements.getToolConfiguration(entry.toolType);
const toolData = toolState[imageId][entry.toolType]; if (Array.isArray(tool.childTools)) {
const measurementsData = toolData && toolData.data; tool.childTools.forEach(key => {
const measurementEntry = _.findWhere(measurementsData, { const childMeasurement = entry[key];
_id: entry._id if (!childMeasurement) return;
measurementsData.push(childMeasurement);
}); });
} else {
if (measurementEntry) { measurementsData.push(entry);
const index = measurementsData.indexOf(measurementEntry);
measurementsData.splice(index, 1);
}
} }
measurementsData.forEach(measurementData => {
const { imagePath, toolType } = measurementData;
const imageId = OHIF.viewerbase.getImageIdForImagePath(imagePath);
if (toolState[imageId]) {
const toolData = toolState[imageId][toolType];
const measurementEntries = toolData && toolData.data;
const measurementEntry = _.findWhere(measurementEntries, { _id: entry._id });
if (measurementEntry) {
const index = measurementsData.indexOf(measurementEntry);
measurementEntries.splice(index, 1);
}
}
});
}); });
cornerstoneTools.globalImageIdSpecificToolStateManager.restoreToolState(toolState); cornerstoneTools.globalImageIdSpecificToolStateManager.restoreToolState(toolState);

View File

@ -20,6 +20,8 @@ OHIF.measurements.syncMeasurementAndToolData = measurement => {
const childMeasurement = measurement[childToolKey]; const childMeasurement = measurement[childToolKey];
if (!childMeasurement) return; if (!childMeasurement) return;
childMeasurement._id = measurement._id; childMeasurement._id = measurement._id;
childMeasurement.measurementNumber = measurement.measurementNumber;
OHIF.measurements.syncMeasurementAndToolData(childMeasurement); OHIF.measurements.syncMeasurementAndToolData(childMeasurement);
}); });