From fc5b8316ccad8e6b1b07769c1e8dd9b98ca5884d Mon Sep 17 00:00:00 2001 From: Evren Ozkan Date: Sat, 28 Nov 2015 14:33:27 -0500 Subject: [PATCH] Bringing&linking series when reloading a patient. (setSeries function is added in imageViewerViewport) --- .../imageViewerViewport.js | 66 +++++++++++++------ 1 file changed, 45 insertions(+), 21 deletions(-) diff --git a/Packages/viewerbase/components/viewer/imageViewerViewport/imageViewerViewport.js b/Packages/viewerbase/components/viewer/imageViewerViewport/imageViewerViewport.js index e312db53f..ff49ea170 100644 --- a/Packages/viewerbase/components/viewer/imageViewerViewport/imageViewerViewport.js +++ b/Packages/viewerbase/components/viewer/imageViewerViewport/imageViewerViewport.js @@ -65,7 +65,7 @@ var allCornerstoneEvents = 'CornerstoneToolsMouseDown CornerstoneToolsMouseDownA * * @param data {object} Object containing the study, series, and viewport element to be used */ -function loadSeriesIntoViewport(data) { +function loadSeriesIntoViewport(data, templateData) { log.info("imageViewerViewport loadSeriesIntoViewport"); // Make sure we have all the data required to render the series @@ -135,7 +135,6 @@ function loadSeriesIntoViewport(data) { // Save the current image ID inside the template data so it can be // retrieved from the template helpers - var templateData = Template.currentData(); templateData.imageId = imageId; // Save the current image ID inside the ViewportLoading object. @@ -421,6 +420,33 @@ function loadSeriesIntoViewport(data) { }); } +/** + * This function sets series for the study and calls LoadSeriesIntoViewport function + * + * @param data includes study data + * @param seriesInstanceUid series information which is loaded in Template + * @param templateData currentData of Template + * + */ +function setSeries(data,seriesInstanceUid, templateData){ + var study = data.study; + study.seriesList.every(function(series) { + if (series.seriesInstanceUid === seriesInstanceUid) { + data.series = series; + return false; + } + return true; + }); + + // If we didn't find anything, stop here + if (!data.series) { + return; + } + + // Otherwise, load pass the data object into loadSeriesIntoViewport + loadSeriesIntoViewport(data, templateData); +} + /** * This function searches an object to return the keys that contain a specific value * @@ -467,6 +493,8 @@ Meteor.startup(function() { }); Template.imageViewerViewport.onRendered(function() { + + var templateData = Template.currentData(); log.info("imageViewerViewport onRendered"); // When the imageViewerViewport template is rendered @@ -509,31 +537,27 @@ Template.imageViewerViewport.onRendered(function() { var study = ViewerStudies.findOne({ studyInstanceUid: this.data.studyInstanceUid }); + var seriesInstanceUid = this.data.seriesInstanceUid; - // If we didn't find anything, stop here + // TODO: This code block might be refactored + // Load previous measurement study when reloading a patient if (!study) { - return; + Meteor.call('GetStudyMetadata', this.data.studyInstanceUid, function(error, study) { + // Once we have retrieved the data, we sort the series' by series + // and instance number in ascending order + if(!study){ + return; + } + sortStudy(study); + data.study = study; + setSeries(data, seriesInstanceUid, templateData); + return; + }); } data.study = study; + setSeries(data, seriesInstanceUid, templateData); - // Look through this study for a series with this seriesInstanceUid - var seriesInstanceUid = this.data.seriesInstanceUid; - study.seriesList.every(function(series) { - if (series.seriesInstanceUid === seriesInstanceUid) { - data.series = series; - return false; - } - return true; - }); - - // If we didn't find anything, stop here - if (!data.series) { - return; - } - - // Otherwise, load pass the data object into loadSeriesIntoViewport - loadSeriesIntoViewport(data); }); Template.imageViewerViewport.onDestroyed(function() {