Updates to save viewport data across sessions / while switching tabs

This commit is contained in:
Erik Ziegler committed 2015-10-23 14:08:51 +02:00
1 parent 56417df385
commit 4721400b34
27 files changed
+585 -204

No files matched your search

+5
View File
@@ -0,0 +1,5 @@
body
background-color: #202020
#search-panel-head
background-color: #8845AB
@@ -7,7 +7,7 @@
font-family: "Sanchez"
color: #C1C1C1
.navbar-form, .navbar-default .navbar-nav > li > a
.navbar-default .navbar-nav > li > a
color: #C1C1C1
font-weight: bold
font-size: 12pt
+46 -29
View File
@@ -1,16 +1,30 @@
OHIF = {
viewer: {}
};
function resizeViewports() {
// Handle resizing of image viewer viewports
// For some reason, this seems to need to be on
// another delay, or the resizing won't work properly
viewportResizeTimer = setTimeout(function() {
var elements = $('.imageViewerViewport');
elements.each(function(index) {
var element = this;
if (!element) {
return;
}
cornerstone.resize(element, true);
});
}, 1);
}
OHIF.viewer.imageViewerLoadedSeriesDictionary = {};
OHIF.viewer.imageViewerCurrentImageIdIndexDictionary = {};
OHIF.viewer.loadIndicatorDelay = 3000;
OHIF.viewer.defaultTool = 'wwwc';
OHIF.viewer.refLinesEnabled = true;
OHIF.viewer.isPlaying = {};
Template.viewer.onCreated(function() {
console.log("Image Viewer onCreated");
OHIF = {
viewer: {}
};
OHIF.viewer.loadIndicatorDelay = 3000;
OHIF.viewer.defaultTool = 'wwwc';
OHIF.viewer.refLinesEnabled = true;
OHIF.viewer.isPlaying = {};
Meteor.startup(function() {
OHIF.viewer.updateImageSynchronizer = new cornerstoneTools.Synchronizer("CornerstoneNewImage", cornerstoneTools.updateImageSynchronizer);
OHIF.viewer.functionList = {
invert: function(element) {
var viewport = cornerstone.getViewport(element);
@@ -40,25 +54,7 @@ Meteor.startup(function() {
trigger: 'hover'
};
}
});
function resizeViewports() {
// Handle resizing of image viewer viewports
// For some reason, this seems to need to be on
// another delay, or the resizing won't work properly
viewportResizeTimer = setTimeout(function() {
var elements = $('.imageViewerViewport');
elements.each(function(index) {
var element = this;
if (!element) {
return;
}
cornerstone.resize(element, true);
});
}, 1);
}
Template.viewer.onCreated(function() {
if (this.data.activeViewport === undefined) {
this.data.activeViewport = new ReactiveVar(0);
}
@@ -68,6 +64,27 @@ Template.viewer.onCreated(function() {
if (this.data.viewportColumns === undefined) {
this.data.viewportColumns = new ReactiveVar(2);
}
var contentId = this.data.contentId;
// Update the viewer data object
ViewerData[contentId].viewportColumns = this.data.viewportColumns;
ViewerData[contentId].viewportRows = this.data.viewportRows;
ViewerData[contentId].activeViewport = this.data.activeViewport;
Session.set('ViewerData', ViewerData);
if (ViewerData[contentId].viewer) {
OHIF.viewer = ViewerData[contentId].viewer;
} else {
OHIF.viewer.imageViewerLoadedSeriesDictionary = {};
ViewerData[contentId].viewer = OHIF.viewer;
}
OHIF.viewer.updateImageSynchronizer = new cornerstoneTools.Synchronizer("CornerstoneNewImage", cornerstoneTools.updateImageSynchronizer);
});
Template.viewer.onDestroyed(function() {
OHIF.viewer.updateImageSynchronizer.destroy();
});
// Avoid doing DOM manipulation during the resize handler
+18 -8
View File
@@ -9,9 +9,21 @@ Router.route('/', function () {
});
tabs = new Meteor.Collection(null);
Session.setDefault('ViewerData', {});
Session.setDefault('ViewerDataUpdated', Random.id());
Object.keys(ViewerData).forEach(function(contentId) {
var tabData = ViewerData[contentId];
var data = {
title: tabData.title,
contentid: tabData.contentId,
};
tabs.insert(data);
});
Router.route('/viewer/:_id', {
layoutTemplate: 'layoutLesionTracker',
layoutTemplate: 'layout',
name: 'viewer',
onBeforeAction: function() {
var self = this;
@@ -19,21 +31,19 @@ Router.route('/viewer/:_id', {
Meteor.call('GetStudyMetadata', this.params._id, function(error, study) {
sortStudy(study);
var data = {
studies: [study]
};
var title = study.seriesList[0].instances[0].patientName;
var contentid = generateUUID();
var newTabObject = {
var data = {
title: title,
contentid: contentid,
};
tabs.insert(newTabObject);
tabs.insert(data);
data.studies = [study];
self.render('worklist');
Session.set('DataInTab#' + contentid, data);
Session.set('OpenNewTabEvent', contentid);
Session.set('OpenNewTabEvent', data);
});
}
});