Fixes for activeViewport reactivity
This commit is contained in:
parent
3e483cb7a9
commit
7f04f96222
@ -59,9 +59,15 @@ function resizeViewports() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Template.viewer.onCreated(function() {
|
Template.viewer.onCreated(function() {
|
||||||
|
if (this.data.activeViewport === undefined) {
|
||||||
this.data.activeViewport = new ReactiveVar(0);
|
this.data.activeViewport = new ReactiveVar(0);
|
||||||
|
}
|
||||||
|
if (this.data.viewportRows === undefined) {
|
||||||
this.data.viewportRows = new ReactiveVar(1);
|
this.data.viewportRows = new ReactiveVar(1);
|
||||||
|
}
|
||||||
|
if (this.data.viewportColumns === undefined) {
|
||||||
this.data.viewportColumns = new ReactiveVar(2);
|
this.data.viewportColumns = new ReactiveVar(2);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Avoid doing DOM manipulation during the resize handler
|
// Avoid doing DOM manipulation during the resize handler
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template name="viewerMain">
|
<template name="viewerMain">
|
||||||
<div class="viewerMain">
|
<div class="viewerMain">
|
||||||
{{ >toolbar toolbarOptions activeViewport=activeViewport viewportRows=viewportRows viewportColumns=viewportColumns}}
|
{{ >toolbar toolbarOptions=toolbarOptions activeViewport=activeViewport viewportRows=viewportRows viewportColumns=viewportColumns}}
|
||||||
{{ >imageViewerViewports studies=studies activeViewport=activeViewport viewportRows=viewportRows viewportColumns=viewportColumns}}
|
{{ >imageViewerViewports studies=studies activeViewport=activeViewport viewportRows=viewportRows viewportColumns=viewportColumns}}
|
||||||
{{ >lesionTableContainer studies=studies activeViewport=activeViewport}}
|
{{ >lesionTableContainer studies=studies activeViewport=activeViewport}}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -19,7 +19,9 @@ Router.route('/viewer/:_id', {
|
|||||||
Meteor.call('GetStudyMetadata', this.params._id, function(error, study) {
|
Meteor.call('GetStudyMetadata', this.params._id, function(error, study) {
|
||||||
sortStudy(study);
|
sortStudy(study);
|
||||||
|
|
||||||
var studies = [study];
|
var data = {
|
||||||
|
studies: [study]
|
||||||
|
};
|
||||||
var title = study.seriesList[0].instances[0].patientName;
|
var title = study.seriesList[0].instances[0].patientName;
|
||||||
var contentid = generateUUID();
|
var contentid = generateUUID();
|
||||||
|
|
||||||
@ -30,8 +32,7 @@ Router.route('/viewer/:_id', {
|
|||||||
tabs.insert(newTabObject);
|
tabs.insert(newTabObject);
|
||||||
|
|
||||||
self.render('worklist');
|
self.render('worklist');
|
||||||
console.log('Setting studesInTab');
|
Session.set('DataInTab#' + contentid, data);
|
||||||
Session.set('StudiesInTab#' + contentid, studies);
|
|
||||||
Session.set('OpenNewTabEvent', contentid);
|
Session.set('OpenNewTabEvent', contentid);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -59,9 +59,23 @@ function resizeViewports() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Template.viewer.onCreated(function() {
|
Template.viewer.onCreated(function() {
|
||||||
|
if (this.data.activeViewport === undefined) {
|
||||||
this.data.activeViewport = new ReactiveVar(0);
|
this.data.activeViewport = new ReactiveVar(0);
|
||||||
|
}
|
||||||
|
if (this.data.viewportRows === undefined) {
|
||||||
this.data.viewportRows = new ReactiveVar(1);
|
this.data.viewportRows = new ReactiveVar(1);
|
||||||
|
}
|
||||||
|
if (this.data.viewportColumns === undefined) {
|
||||||
this.data.viewportColumns = new ReactiveVar(1);
|
this.data.viewportColumns = new ReactiveVar(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
var viewportColumns = this.data.viewportColumns.get();
|
||||||
|
var viewportRows = this.data.viewportRows.get();
|
||||||
|
var activeViewport = this.data.activeViewport.get();
|
||||||
|
console.log('Reactive changes!');
|
||||||
|
console.log('viewportColumns: ' + viewportColumns);
|
||||||
|
console.log('viewportRows: ' + viewportRows);
|
||||||
|
console.log('activeViewport: ' + activeViewport);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Avoid doing DOM manipulation during the resize handler
|
// Avoid doing DOM manipulation during the resize handler
|
||||||
|
|||||||
@ -21,7 +21,9 @@ Router.route('/viewer/:_id', {
|
|||||||
Meteor.call('GetStudyMetadata', this.params._id, function(error, study) {
|
Meteor.call('GetStudyMetadata', this.params._id, function(error, study) {
|
||||||
sortStudy(study);
|
sortStudy(study);
|
||||||
|
|
||||||
var studies = [study];
|
var data = {
|
||||||
|
studies: [study]
|
||||||
|
};
|
||||||
var title = study.seriesList[0].instances[0].patientName;
|
var title = study.seriesList[0].instances[0].patientName;
|
||||||
var contentid = generateUUID();
|
var contentid = generateUUID();
|
||||||
|
|
||||||
@ -32,8 +34,7 @@ Router.route('/viewer/:_id', {
|
|||||||
tabs.insert(newTabObject);
|
tabs.insert(newTabObject);
|
||||||
|
|
||||||
self.render('worklist');
|
self.render('worklist');
|
||||||
console.log('Setting studesInTab');
|
Session.set('DataInTab#' + contentid, data);
|
||||||
Session.set('StudiesInTab#' + contentid, studies);
|
|
||||||
Session.set('OpenNewTabEvent', contentid);
|
Session.set('OpenNewTabEvent', contentid);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,7 +17,7 @@ function cloneElement(element, targetId) {
|
|||||||
return clone;
|
return clone;
|
||||||
}
|
}
|
||||||
|
|
||||||
function thumbnailDragStartHandler(e, studies) {
|
function thumbnailDragStartHandler(e, data) {
|
||||||
// Prevent any scrolling behaviour normally caused by the original event
|
// Prevent any scrolling behaviour normally caused by the original event
|
||||||
e.originalEvent.preventDefault();
|
e.originalEvent.preventDefault();
|
||||||
|
|
||||||
@ -28,10 +28,11 @@ function thumbnailDragStartHandler(e, studies) {
|
|||||||
// Store this data for use during drag and drop
|
// Store this data for use during drag and drop
|
||||||
OHIF.viewer.dragAndDropData = {
|
OHIF.viewer.dragAndDropData = {
|
||||||
studyInstanceUid: imageThumbnail.data('studyInstanceUid'),
|
studyInstanceUid: imageThumbnail.data('studyInstanceUid'),
|
||||||
seriesInstanceUid: imageThumbnail.data('seriesInstanceUid'),
|
seriesInstanceUid: imageThumbnail.data('seriesInstanceUid')
|
||||||
studies: studies
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$.extend(OHIF.viewer.dragAndDropData, data);
|
||||||
|
|
||||||
// Clone the image thumbnail
|
// Clone the image thumbnail
|
||||||
var targetId = targetThumbnail.id + 'DragClone';
|
var targetId = targetThumbnail.id + 'DragClone';
|
||||||
var clone = cloneElement(targetThumbnail, targetId);
|
var clone = cloneElement(targetThumbnail, targetId);
|
||||||
@ -202,8 +203,8 @@ Template.thumbnailEntry.onRendered(function() {
|
|||||||
Template.thumbnailEntry.events({
|
Template.thumbnailEntry.events({
|
||||||
// Touch drag/drop events
|
// Touch drag/drop events
|
||||||
'touchstart .thumbnailEntry, mousedown .thumbnailEntry': function(e) {
|
'touchstart .thumbnailEntry, mousedown .thumbnailEntry': function(e) {
|
||||||
var studies = Template.parentData(2).studies;
|
var data = Template.parentData(2);
|
||||||
thumbnailDragStartHandler(e, studies);
|
thumbnailDragStartHandler(e, data);
|
||||||
},
|
},
|
||||||
'touchmove .thumbnailEntry': function(e) {
|
'touchmove .thumbnailEntry': function(e) {
|
||||||
thumbnailDragHandler(e, e.currentTarget);
|
thumbnailDragHandler(e, e.currentTarget);
|
||||||
|
|||||||
@ -5,10 +5,9 @@
|
|||||||
*
|
*
|
||||||
* @param element
|
* @param element
|
||||||
*/
|
*/
|
||||||
function enablePrefetchOnElement() {
|
function enablePrefetchOnElement(viewportIndex) {
|
||||||
var viewportIndex = Session.get('ActiveViewport');
|
|
||||||
var element = $('.imageViewerViewport').get(viewportIndex);
|
var element = $('.imageViewerViewport').get(viewportIndex);
|
||||||
console.log('Enabling prefetch on new element');
|
//console.log('Enabling prefetch on new element');
|
||||||
|
|
||||||
// Loop through all viewports and disable stackPrefetch
|
// Loop through all viewports and disable stackPrefetch
|
||||||
$('.imageViewerViewport').each(function() {
|
$('.imageViewerViewport').each(function() {
|
||||||
@ -25,9 +24,7 @@ function enablePrefetchOnElement() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function displayReferenceLines() {
|
function displayReferenceLines(viewportIndex) {
|
||||||
console.log("Changing reference line display");
|
|
||||||
var viewportIndex = Session.get('ActiveViewport');
|
|
||||||
var element = $('.imageViewerViewport').get(viewportIndex);
|
var element = $('.imageViewerViewport').get(viewportIndex);
|
||||||
|
|
||||||
$('.imageViewerViewport').each(function(index, element) {
|
$('.imageViewerViewport').each(function(index, element) {
|
||||||
@ -157,9 +154,6 @@ function loadSeriesIntoViewport(data) {
|
|||||||
if (OHIF.viewer.refLinesEnabled && imagePlane && imagePlane.frameOfReferenceUID) {
|
if (OHIF.viewer.refLinesEnabled && imagePlane && imagePlane.frameOfReferenceUID) {
|
||||||
OHIF.viewer.updateImageSynchronizer.add(element);
|
OHIF.viewer.updateImageSynchronizer.add(element);
|
||||||
}
|
}
|
||||||
|
|
||||||
//enablePrefetchOnElement();
|
|
||||||
displayReferenceLines();
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -222,9 +216,12 @@ Template.imageViewerViewport.onDestroyed(function() {
|
|||||||
|
|
||||||
Template.imageViewerViewport.events({
|
Template.imageViewerViewport.events({
|
||||||
'ActivateViewport .imageViewerViewport': function(e) {
|
'ActivateViewport .imageViewerViewport': function(e) {
|
||||||
console.log('ActivateViewport: ' + e.viewportIndex);
|
if (this.viewportIndex === this.activeViewport.get()) {
|
||||||
Session.set('ActiveViewport', e.viewportIndex);
|
return;
|
||||||
enablePrefetchOnElement();
|
}
|
||||||
displayReferenceLines();
|
console.log('ActivateViewport index: ' + this.viewportIndex);
|
||||||
|
this.activeViewport.set(this.viewportIndex);
|
||||||
|
enablePrefetchOnElement(this.viewportIndex);
|
||||||
|
displayReferenceLines(this.viewportIndex);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@ -3,7 +3,7 @@
|
|||||||
{{ #each viewportArray }}
|
{{ #each viewportArray }}
|
||||||
<div class="viewportContainer" style="height:{{height}}%;width:{{width}}%;">
|
<div class="viewportContainer" style="height:{{height}}%;width:{{width}}%;">
|
||||||
<div class="removable">
|
<div class="removable">
|
||||||
{{ >imageViewerViewport studies=studies activeViewport=activeViewport}}
|
{{ >imageViewerViewport viewportIndex=viewportIndex studies=studies activeViewport=activeViewport}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{ /each }}
|
{{ /each }}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
Template.playClipButton.helpers({
|
Template.playClipButton.helpers({
|
||||||
'isPlaying': function() {
|
'isPlaying': function() {
|
||||||
Session.get('UpdateCINE');
|
Session.get('UpdateCINE');
|
||||||
var viewportIndex = Session.get('ActiveViewport');
|
var viewportIndex = this.activeViewport.get();
|
||||||
return !!OHIF.viewer.isPlaying[viewportIndex];
|
return !!OHIF.viewer.isPlaying[viewportIndex];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -84,7 +84,7 @@ Template.toolbar.events({
|
|||||||
if (!OHIF.viewer.functionList.hasOwnProperty(command)) {
|
if (!OHIF.viewer.functionList.hasOwnProperty(command)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var viewportIndex = Session.get('ActiveViewport');
|
var viewportIndex = Template.parentData(0).activeViewport.get();
|
||||||
var element = $('.imageViewerViewport').get(viewportIndex);
|
var element = $('.imageViewerViewport').get(viewportIndex);
|
||||||
OHIF.viewer.functionList[command](element);
|
OHIF.viewer.functionList[command](element);
|
||||||
}
|
}
|
||||||
@ -101,20 +101,20 @@ Template.toolbar.onRendered(function() {
|
|||||||
|
|
||||||
Template.toolbar.helpers({
|
Template.toolbar.helpers({
|
||||||
'button': function() {
|
'button': function() {
|
||||||
if (this.buttonData) {
|
if (this.toolbarOptions && this.toolbarOptions.buttonData) {
|
||||||
return this.buttonData;
|
return this.toolbarOptions.buttonData;
|
||||||
}
|
}
|
||||||
return getDefaultButtonData();
|
return getDefaultButtonData();
|
||||||
},
|
},
|
||||||
'includePlayClipButton': function() {
|
'includePlayClipButton': function() {
|
||||||
if (this.includePlayClipButton !== undefined) {
|
if (this.toolbarOptions && this.toolbarOptions.includePlayClipButton !== undefined) {
|
||||||
return this.includePlayClipButton;
|
return this.toolbarOptions.includePlayClipButton;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
'includeLayoutButton': function() {
|
'includeLayoutButton': function() {
|
||||||
if (this.includeLayoutButton !== undefined) {
|
if (this.toolbarOptions && this.toolbarOptions.includeLayoutButton !== undefined) {
|
||||||
return this.includeLayoutButton;
|
return this.toolbarOptions.includeLayoutButton;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,10 +13,7 @@ Template.worklist.events({
|
|||||||
});
|
});
|
||||||
|
|
||||||
switchToTab = function(contentId) {
|
switchToTab = function(contentId) {
|
||||||
var studies = Session.get('StudiesInTab' + contentId);
|
var data = Session.get('DataInTab' + contentId);
|
||||||
var data = {
|
|
||||||
studies: studies
|
|
||||||
};
|
|
||||||
|
|
||||||
var newContentId = contentId.replace("#", "");
|
var newContentId = contentId.replace("#", "");
|
||||||
//var tabObject = tabs.findOne({contentid: newContentId});
|
//var tabObject = tabs.findOne({contentid: newContentId});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user