LT-324: Improve scrolling responsiveness

This commit is contained in:
Erik Ziegler committed 2016-11-15 08:29:46 +01:00
1 parent 82add14113
commit 9496410e55
7 files changed
+878 -231

No files matched your search

File diff suppressed because it is too large. Load diff
@@ -8,7 +8,7 @@
<div class='viewportInstructions'>
Please drag a stack here to view images.
</div>
{{>loadingIndicator}}
{{>viewportOverlay}}
{{>loadingIndicator}}
{{>viewportOrientationMarkers}}
</template>
@@ -144,7 +144,7 @@ function loadDisplaySetIntoViewport(data, templateData) {
}
// Caches element's jQuery object
const jQueryEl = $(element);
const $element = $(element);
// Update the enabled element with the image and viewport data
// This is not usually necessary, but we need them stored in case
@@ -207,8 +207,8 @@ function loadDisplaySetIntoViewport(data, templateData) {
// Hide the viewport instructions (i.e. 'Drag a stack here') and show
// the viewport overlay data.
jQueryEl.siblings('.viewportInstructions').hide();
jQueryEl.siblings('.imageViewerViewportOverlay').show();
$element.siblings('.viewportInstructions').hide();
$element.siblings('.imageViewerViewportOverlay').show();
// Add stack state managers for the stack tool, CINE tool, and reference lines
cornerstoneTools.addStackStateManager(element, ['stack', 'playClip', 'referenceLines']);
@@ -276,8 +276,8 @@ function loadDisplaySetIntoViewport(data, templateData) {
};
// Attach the onImageRendered callback to the CornerstoneImageRendered event
jQueryEl.off('CornerstoneImageRendered', onImageRendered);
jQueryEl.on('CornerstoneImageRendered', onImageRendered);
$element.off('CornerstoneImageRendered', onImageRendered);
$element.on('CornerstoneImageRendered', onImageRendered);
// Set a random value for the Session variable in order to trigger an overlay update
Session.set('CornerstoneImageRendered' + viewportIndex, Random.id());
@@ -288,7 +288,7 @@ function loadDisplaySetIntoViewport(data, templateData) {
OHIF.log.info('imageViewerViewport onNewImage');
// Update the metaData for missing fields
updateMetaData(eventData.enabledElement.image);
//updateMetaData(eventData.enabledElement.image);
// Update the templateData with the new imageId
// This allows the template helpers to update reactively
@@ -315,12 +315,22 @@ function loadDisplaySetIntoViewport(data, templateData) {
};
// Attach the onNewImage callback to the CornerstoneNewImage event
jQueryEl.off('CornerstoneNewImage', onNewImage);
jQueryEl.on('CornerstoneNewImage', onNewImage);
$element.off('CornerstoneNewImage', onNewImage);
$element.on('CornerstoneNewImage', onNewImage);
// Set a random value for the Session variable in order to trigger an overlay update
Session.set('CornerstoneNewImage' + viewportIndex, Random.id());
function onStackScroll(e, eventData) {
// Update the imageSlider value
Session.set('CornerstoneNewImage' + viewportIndex, Random.id());
}
$element.off('CornerstoneStackScroll', onStackScroll);
if (stack.imageIds.length > 1) {
$element.on('CornerstoneStackScroll', onStackScroll);
}
// Define a function to trigger an event whenever a new viewport is being used
// This is used to update the value of the "active viewport", when the user interacts
// with a new viewport element
@@ -352,8 +362,8 @@ function loadDisplaySetIntoViewport(data, templateData) {
};
// Attach the sendActivationTrigger function to all of the Cornerstone interaction events
jQueryEl.off(allCornerstoneEvents, sendActivationTrigger);
jQueryEl.on(allCornerstoneEvents, sendActivationTrigger);
$element.off(allCornerstoneEvents, sendActivationTrigger);
$element.on(allCornerstoneEvents, sendActivationTrigger);
ViewerData[contentId].loadedSeriesData = layoutManager.viewportData;
@@ -11,6 +11,7 @@ var loadHandlerTimeout;
startLoadingHandler = function(element) {
clearTimeout(loadHandlerTimeout);
loadHandlerTimeout = setTimeout(function() {
console.log('startLoading');
var elem = $(element);
elem.siblings('.imageViewerErrorLoadingIndicator').css('display', 'none');
elem.find('canvas').not('.magnifyTool').addClass("faded");
@@ -6,7 +6,7 @@ Meteor.startup(function() {
OHIF.viewer = {};
}
OHIF.viewer.loadIndicatorDelay = 3000;
OHIF.viewer.loadIndicatorDelay = 200;
OHIF.viewer.defaultTool = 'wwwc';
OHIF.viewer.refLinesEnabled = true;
OHIF.viewer.isPlaying = {};