diff --git a/LesionTracker/client/components/viewerMain/viewerMain.js b/LesionTracker/client/components/viewerMain/viewerMain.js index a234b83e4..5961c4944 100644 --- a/LesionTracker/client/components/viewerMain/viewerMain.js +++ b/LesionTracker/client/components/viewerMain/viewerMain.js @@ -53,10 +53,44 @@ Template.viewerMain.helpers({ iconClasses: 'fa fa-long-arrow-up' }); + buttonData.push({ + id: 'clearTools', + title: 'Clear tools', + classes: 'imageViewerCommand', + iconClasses: 'fa fa-trash' + }); + toolbarOptions.buttonData = buttonData; toolbarOptions.includePlayClipButton = false; toolbarOptions.includeLayoutButton = false; toolbarOptions.includeHangingProtocolButtons = false; return toolbarOptions; } +}); + +Template.viewerMain.events({ + 'click button#clearTools': function(e, template) { + var toolTypes = ["lesion", "nonTarget"]; + var toolState = cornerstoneTools.globalImageIdSpecificToolStateManager.toolState; + var toolStateKeys = Object.keys(toolState).slice(0); + toolStateKeys.forEach(function (imageId) { + toolTypes.forEach(function (toolType) { + toolState[imageId][toolType] = { + data: [] + }; + }); + + }); + + // Update imageViewerViewport elements + $(".imageViewerViewport").each(function(viewportIndex, element) { + cornerstone.updateImage(element); + }); + + // Remove patient's measurements + var patientId = template.data.studies[0].patientId; + Meteor.call('removeMeasurementsByPatientId', patientId); + + } + }); \ No newline at end of file diff --git a/Packages/lesiontracker/both/removeCollections.js b/Packages/lesiontracker/both/removeCollections.js new file mode 100644 index 000000000..17a8d021d --- /dev/null +++ b/Packages/lesiontracker/both/removeCollections.js @@ -0,0 +1,8 @@ +Meteor.methods({ + "removeMeasurementsByPatientId": function(patientId) { + Measurements.remove( + {patientId: patientId}, + {multi: true} + ); + } +}); \ No newline at end of file diff --git a/Packages/lesiontracker/package.js b/Packages/lesiontracker/package.js index 5ac002a7b..0ab56e842 100644 --- a/Packages/lesiontracker/package.js +++ b/Packages/lesiontracker/package.js @@ -51,6 +51,8 @@ Package.onUse(function (api) { // Both client and server functions api.addFiles('both/collections.js', ['client', 'server']); + api.addFiles('both/removeCollections.js', ['client', 'server']); + // Library functions api.addFiles('lib/uuid.js', 'client');