diff --git a/Packages/ohif-core/client/components/bootstrap/dialog/confirm.html b/Packages/ohif-core/client/components/bootstrap/dialog/confirm.html new file mode 100644 index 000000000..4626f47e6 --- /dev/null +++ b/Packages/ohif-core/client/components/bootstrap/dialog/confirm.html @@ -0,0 +1,8 @@ + diff --git a/Packages/ohif-core/client/components/bootstrap/index.js b/Packages/ohif-core/client/components/bootstrap/index.js index 4d2fd6117..0dcb8c3bd 100644 --- a/Packages/ohif-core/client/components/bootstrap/index.js +++ b/Packages/ohif-core/client/components/bootstrap/index.js @@ -1,3 +1,4 @@ +import './dialog/confirm.html'; import './dialog/form.html'; import './dialog/form.js'; import './dialog/login.html'; diff --git a/Packages/ohif-measurements/both/configuration/measurements.js b/Packages/ohif-measurements/both/configuration/measurements.js index b7d2b80e2..06586a0f3 100644 --- a/Packages/ohif-measurements/both/configuration/measurements.js +++ b/Packages/ohif-measurements/both/configuration/measurements.js @@ -85,7 +85,6 @@ class MeasurementApi { configuration.measurementTools.forEach(tool => { const measurements = this[tool.id].find().fetch(); measurements.forEach(measurement => { - console.warn('>>>>MEASUREMENT', measurement); OHIF.measurements.syncMeasurementAndToolData(measurement); }); }); diff --git a/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js b/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js index 673cde108..bc9631368 100644 --- a/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js +++ b/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js @@ -1,6 +1,7 @@ import { Meteor } from 'meteor/meteor'; import { Template } from 'meteor/templating'; import { OHIF } from 'meteor/ohif:core'; +import { _ } from 'meteor/underscore'; function doneCallback(measurementData, deleteTool) { // If a Lesion or Non-Target is removed via a dialog @@ -43,6 +44,51 @@ Template.measurementTableRow.events({ }); }, + 'click .js-delete'(event, instance) { + const measurementTypeId = instance.data.rowItem.measurementTypeId; + const measurement = instance.data.rowItem.entries[0]; + + const dialogSettings = { + title: 'Delete measurements', + message: 'Are you sure you want to delete the measurement among all timepoints?' + }; + + OHIF.ui.showFormDialog('dialogConfirm', dialogSettings).then(formData => { + const collection = instance.data.measurementApi[measurementTypeId]; + + const filter = { + toolType: measurement.toolType, + measurementNumber: measurement.measurementNumber, + patientId: measurement.patientId + }; + + const entries = collection.find(filter).fetch(); + + collection.remove(filter); + + // Synchronize the new data with cornerstone tools + const toolState = cornerstoneTools.globalImageIdSpecificToolStateManager.toolState; + _.each(entries, entry => { + if (toolState[entry.imageId]) { + const toolData = toolState[entry.imageId][entry.toolType]; + const measurementsData = toolData && toolData.data; + const measurementEntry = _.findWhere(measurementsData, { + _id: entry._id + }); + + if (measurementEntry) { + console.warn('>>>>REMOVING FROM CORNERSTONE', measurementEntry); + const index = measurementsData.indexOf(measurementEntry); + measurementsData.splice(index, 1); + + // Repaint the images on all viewports without the removed measurements + _.each($('.imageViewerViewport'), elm => cornerstone.updateImage(elm)); + } + } + }); + }); + }, + 'dblclick .location'() { OHIF.log.info('Double clicked on Lesion Location cell');