- {{ #each viewportArray }}
+ {{ #each viewerWindow }}
- {{ >imageViewerViewport viewportIndex=viewportIndex seriesInstanceUid=seriesInstanceUid studyInstanceUid=studyInstanceUid currentImageIdIndex=currentImageIdIndex viewport=viewport}}
+ {{ >imageViewerViewport}}
{{ /each }}
diff --git a/Packages/viewerbase/components/viewer/imageViewerViewports/imageViewerViewports.js b/Packages/viewerbase/components/viewer/imageViewerViewports/imageViewerViewports.js
index 600961860..7837d3ee7 100644
--- a/Packages/viewerbase/components/viewer/imageViewerViewports/imageViewerViewports.js
+++ b/Packages/viewerbase/components/viewer/imageViewerViewports/imageViewerViewports.js
@@ -1,13 +1,4 @@
-Template.imageViewerViewports.onRendered(function() {
- this.autorun(function() {
- var studies = Session.get('studies');
- var eventType = "ViewerBaseStudyLoaded";
- var eventData = {
- studies: studies
- };
- $(document).trigger(eventType, eventData);
- });
-});
+ViewerWindows = new Meteor.Collection(null);
Template.imageViewerViewports.helpers({
height: function() {
@@ -18,7 +9,9 @@ Template.imageViewerViewports.helpers({
var viewportColumns = this.viewportColumns || 1;
return 100 / viewportColumns;
},
- viewportArray: function() {
+ viewerWindow: function() {
+ ViewerWindows = new Meteor.Collection(null);
+
log.info("imageViewerViewports viewportArray");
var viewportRows = this.viewportRows || 1;
@@ -45,13 +38,11 @@ Template.imageViewerViewports.helpers({
var inputData = {
viewportColumns: viewportColumns,
- viewportRows: viewportRows,
- studies: ViewerStudies
+ viewportRows: viewportRows
};
var hangingProtocolViewportData = WindowManager.getHangingProtocol(inputData);
-
- var array = [];
+
var numViewports = viewportRows * viewportColumns;
for (var i=0; i < numViewports; ++i) {
var data = {
@@ -61,6 +52,7 @@ Template.imageViewerViewports.helpers({
viewportColumns: viewportColumns,
viewportRows: viewportRows
};
+
if (viewportData && viewportData[i]) {
data.seriesInstanceUid = viewportData[i].seriesInstanceUid;
data.studyInstanceUid = viewportData[i].studyInstanceUid;
@@ -72,9 +64,10 @@ Template.imageViewerViewports.helpers({
data.currentImageIdIndex = hangingProtocolViewportData[i].currentImageIdIndex;
data.viewport = hangingProtocolViewportData[i].viewport;
}
- array.push(data);
+
+ ViewerWindows.insert(data);
}
- return array;
+ return ViewerWindows.find();
}
});
diff --git a/Packages/viewerbase/lib/windowManager.js b/Packages/viewerbase/lib/windowManager.js
index a82535342..fb9e17219 100644
--- a/Packages/viewerbase/lib/windowManager.js
+++ b/Packages/viewerbase/lib/windowManager.js
@@ -177,7 +177,7 @@ function findSeries(displaySet, study) {
function applyDICOMHangingProtocol(hangingProtocol, inputData) {
log.info('applyDICOMHangingProtocol');
var presentationGroup = inputData.DisplaySetPresentationGroup || 1;
- var studies = inputData.studies;
+ var studies = ViewerStudies;
var currentDisplaySets = findSetsByPresentationGroup(hangingProtocol.DisplaySetsSequence, presentationGroup);
var viewportData = [];
@@ -188,7 +188,7 @@ function applyDICOMHangingProtocol(hangingProtocol, inputData) {
studyInstanceUid = findStudy(displaySet, studies);
- var study = studies.findOne({studyInstanceUid: studyInstanceUid});
+ var study = ViewerStudies.findOne({studyInstanceUid: studyInstanceUid});
seriesInstanceUid = findSeries(displaySet, study);
viewportData[index] = {
@@ -213,7 +213,7 @@ function applyDICOMHangingProtocol(hangingProtocol, inputData) {
* @returns {Array}
*/
function defaultHangingProtocol(inputData) {
- var studies = inputData.studies.find().fetch();
+ var studies = ViewerStudies.find().fetch();
var viewportRows = inputData.viewportRows;
var viewportColumns = inputData.viewportColumns;
@@ -259,7 +259,7 @@ var hangingProtocol;
function getHangingProtocol(inputData) {
// TODO = Update this to use Collection logic
- var studies = inputData.studies.find().fetch();
+ var studies = ViewerStudies.find().fetch();
if (!studies.length) {
log.warn("No studies provided to Hanging Protocol");