From 906f7c623405a6d94414582e07befac5c8cb8667 Mon Sep 17 00:00:00 2001 From: Erik Ziegler Date: Mon, 11 Jan 2016 19:47:19 +0100 Subject: [PATCH] Move decrementing to server and out of observe hook --- LesionTracker/client/components/viewer.js | 44 ++++++++----------- .../lesiontracker/server/removeCollections.js | 17 +++---- 2 files changed, 27 insertions(+), 34 deletions(-) diff --git a/LesionTracker/client/components/viewer.js b/LesionTracker/client/components/viewer.js index 23f91b262..10fe673b0 100644 --- a/LesionTracker/client/components/viewer.js +++ b/LesionTracker/client/components/viewer.js @@ -181,34 +181,26 @@ Template.viewer.onCreated(function() { removeToolDataWithMeasurementId(imageId, toolType, measurementId); }); - // Update all Measurements to decrement the lesion numbers for those - // that were created after the current lesion by 1 - Meteor.call('decrementLesionNumbers', data, function(error, response) { - if (error) { - log.warn(error); + // Sync database data with toolData for all the measurements + // that have just been updated + + // Note that here we need to use greater than and equals to + // find the Measurements, whereas on the server it's + // only "greater than", since inside this callback the + // Measurements have already been decremented. + Measurements.find({ + patientId: data.patientId, + lesionNumberAbsolute: { + $gte: data.lesionNumberAbsolute } + }).forEach(function(measurementData) { + syncMeasurementAndToolData(measurementData); + }); - // Sync database data with toolData for all the measurements - // that have just been updated - - // Note that here we need to use greater than and equals to - // find the Measurements, whereas on the server it's - // only "greater than", since inside this callback the - // Measurements have already been decremented. - Measurements.find({ - patientId: data.patientId, - lesionNumberAbsolute: { - $gte: data.lesionNumberAbsolute - } - }).forEach(function(measurementData) { - syncMeasurementAndToolData(measurementData); - }); - - // Update each displayed viewport - var viewports = $('.imageViewerViewport').not('.empty'); - viewports.each(function(index, element) { - cornerstone.updateImage(element); - }); + // Update each displayed viewport + var viewports = $('.imageViewerViewport').not('.empty'); + viewports.each(function(index, element) { + cornerstone.updateImage(element); }); } }); diff --git a/Packages/lesiontracker/server/removeCollections.js b/Packages/lesiontracker/server/removeCollections.js index 85dc79c79..cb6a8d7b4 100644 --- a/Packages/lesiontracker/server/removeCollections.js +++ b/Packages/lesiontracker/server/removeCollections.js @@ -1,13 +1,7 @@ Meteor.methods({ removeMeasurement: function(id) { - Measurements.remove(id); - }, - removeMeasurementsByPatientId: function(patientId) { - Measurements.remove({ - patientId: patientId - }); - }, - decrementLesionNumbers: function(lesionData) { + var lesionData = Measurements.findOne(id); + // Update all Measurements to decrement the lesion numbers for those // that were created after the current lesion by 1 @@ -42,5 +36,12 @@ Meteor.methods({ }, { multi: true }); + + Measurements.remove(id); + }, + removeMeasurementsByPatientId: function(patientId) { + Measurements.remove({ + patientId: patientId + }); } });