Final adjustments to routing behaviors

This commit is contained in:
Bruno Alves de Faria committed 2017-03-21 10:16:47 -03:00
1 parent 9ccebb76bd
commit e12fb0de35
24 files changed
+226 -362

No files matched your search

@@ -46,20 +46,11 @@ const loadDisplaySetIntoViewport = (data, templateData) => {
layoutManager.viewportData[viewportIndex] = layoutManager.viewportData[viewportIndex] || {};
layoutManager.viewportData[viewportIndex].viewportIndex = viewportIndex;
// Get the contentID of the current study list tab, if the viewport is running
// alongside the study list package
const contentId = Session.get('activeContentId');
// Stop here if no data was defined for the viewer
if (!OHIF.viewer.data) return;
// If the viewer is inside a tab, create an object related to the specified viewport
// This data will be saved so that the tab can be reloaded to the same state after tabs
// are switched
if (contentId) {
if (!OHIF.viewer.data) {
return;
}
OHIF.viewer.data.loadedSeriesData[viewportIndex] = {};
}
// This data will be saved so that the viewport can be reloaded to the same state later
OHIF.viewer.data.loadedSeriesData[viewportIndex] = {};
// Create shortcut to displaySet
const displaySet = data.displaySet;
@@ -67,7 +58,7 @@ const loadDisplaySetIntoViewport = (data, templateData) => {
// Get stack from Stack Manager
let stack = StackManager.findStack(displaySet.displaySetInstanceUid);
// Make sure if the stack is already loaded in the stack manager, otherwise create it
if(!stack || !stack.imageIds) {
if (!stack || !stack.imageIds) {
stack = StackManager.makeAndAddStack(data.study, displaySet);
}
@@ -144,7 +135,7 @@ const loadDisplaySetIntoViewport = (data, templateData) => {
try {
imagePromise = cornerstone.loadAndCacheImage(imageId);
} catch (error) {
console.log(error);
OHIF.log.info(error);
if (!imagePromise) {
errorLoadingHandler(element, imageId, error);
return;
@@ -163,7 +154,7 @@ const loadDisplaySetIntoViewport = (data, templateData) => {
const callbacks = imageViewerViewportData.callbacks;
// Check if it has before loadAndCacheImage callback
if(typeof callbacks.before === 'function') {
if (typeof callbacks.before === 'function') {
OHIF.log.info('imageViewerViewport before loadAndCacheImage callback');
callbacks.before(imagePromise, templateData);
}
@@ -262,8 +253,7 @@ const loadDisplaySetIntoViewport = (data, templateData) => {
let fps;
if (multiframeMetadata && multiframeMetadata.averageFrameRate > 0) {
fps = multiframeMetadata.averageFrameRate;
}
else {
} else {
fps = OHIF.viewer.cine.framesPerSecond;
}
@@ -431,7 +421,6 @@ const loadDisplaySetIntoViewport = (data, templateData) => {
// Check if image plane (orientation / location) data is present for the current image
const imagePlane = cornerstoneTools.metaData.get('imagePlane', image.imageId);
if (imagePlane && imagePlane.frameOfReferenceUID) {
// If it is, add this element to the global synchronizer...
OHIF.viewer.updateImageSynchronizer.add(element);
@@ -449,7 +438,6 @@ const loadDisplaySetIntoViewport = (data, templateData) => {
}
}
// Set the active viewport based on the Session variable
// This is done to ensure that the active element has the current
// focus, so that keyboard events are triggered.
@@ -465,8 +453,8 @@ const loadDisplaySetIntoViewport = (data, templateData) => {
// Update the LayoutManagerUpdated session key
layoutManager.updateSession();
// Check if it has after loadAndCacheImage callback
if(typeof callbacks.after === 'function') {
// Check if it has after loadAndCacheImage callback
if (typeof callbacks.after === 'function') {
OHIF.log.info('imageViewerViewport after callback');
callbacks.after(image, templateData, element);
}
@@ -531,7 +519,7 @@ Template.imageViewerViewport.onRendered(function() {
let { currentImageIdIndex } = templateData;
const { viewport, studyInstanceUid, seriesInstanceUid, renderedCallback, displaySetInstanceUid } = templateData;
if(!currentImageIdIndex) {
if (!currentImageIdIndex) {
currentImageIdIndex = 0;
}
@@ -570,8 +558,9 @@ Template.imageViewerViewport.onDestroyed(function() {
OHIF.log.info('imageViewerViewport onDestroyed');
// When a viewport element is being destroyed
var element = this.find('.imageViewerViewport');
if (!element || $(element).hasClass('empty') || !$(element).find('canvas').length) {
const element = this.find('.imageViewerViewport');
const $element = $(element);
if (!element || $element.hasClass('empty') || !$element.find('canvas').length) {
return;
}
@@ -600,7 +589,7 @@ Template.imageViewerViewport.onDestroyed(function() {
// Trigger custom Destroy Viewport event
// for compatibility with other systems
$(element).trigger('OHIFDestroyedViewport');
$element.trigger('OHIFDestroyedViewport');
// Disable the viewport element with Cornerstone
// This also triggers the removal of the element from all available
@@ -1,5 +1,14 @@
@import "{ohif:design}/app"
#viewer
height: "calc(100% - %s)" % $topBarHeight
&>.loadingTextDiv
theme('color', '$textSecondaryColor')
font-size: 30px
height: 100%
line-height: "calc(100vh - %s)" % $topBarHeight
.viewerMain
width: 100%
height: 100%
@@ -14,65 +14,65 @@ export class ResizeViewportManager {
repositionStudySeriesQuickSwitch() {
OHIF.log.info('ResizeViewportManager repositionStudySeriesQuickSwitch');
const activeTab = Session.get('activeContentId');
if(activeTab === 'viewerTab') {
const nViewports = OHIF.viewerbase.layoutManager.viewportData.length;
// Stop here if viewer is not displayed
const isViewer = Session.get('ViewerOpened');
if (!isViewer) return;
if(nViewports && nViewports > 1) {
const viewer = $('#viewer');
const leftSidebar = viewer.find('.sidebar-left.sidebar-open');
const rightSidebar = viewer.find('.sidebar-right.sidebar-open');
// Stop here if there is no one or only one viewport
const nViewports = OHIF.viewerbase.layoutManager.viewportData.length;
if (!nViewports || nViewports <= 1) return;
const leftQuickSwitch = $('.quickSwitchWrapper.left');
const rightQuickSwitch = $('.quickSwitchWrapper.right');
const $viewer = $('#viewer');
const leftSidebar = $viewer.find('.sidebar-left.sidebar-open');
const rightSidebar = $viewer.find('.sidebar-right.sidebar-open');
const hasLeftSidebar = leftSidebar.length > 0;
const hasRightSidebar = rightSidebar.length > 0;
const $leftQuickSwitch = $('.quickSwitchWrapper.left');
const $rightQuickSwitch = $('.quickSwitchWrapper.right');
rightQuickSwitch.removeClass('left-sidebar-only');
leftQuickSwitch.removeClass('right-sidebar-only');
const hasLeftSidebar = leftSidebar.length > 0;
const hasRightSidebar = rightSidebar.length > 0;
let leftOffset = 0;
$rightQuickSwitch.removeClass('left-sidebar-only');
$leftQuickSwitch.removeClass('right-sidebar-only');
if(hasLeftSidebar) {
leftOffset = ( leftSidebar.width()/$(window).width() ) * 100;
let leftOffset = 0;
if(!hasRightSidebar) {
rightQuickSwitch.addClass('left-sidebar-only');
}
}
if (hasLeftSidebar) {
leftOffset = (leftSidebar.width() / $(window).width()) * 100;
if(hasRightSidebar && !hasLeftSidebar) {
leftQuickSwitch.addClass('right-sidebar-only');
}
const leftPosition = ( ($('#imageViewerViewports').width() / nViewports) / $(window).width() ) * 100 + leftOffset;
const rightPosition = 100 - leftPosition;
leftQuickSwitch.css('right', rightPosition + '%');
rightQuickSwitch.css('left', leftPosition + '%');
if (!hasRightSidebar) {
$rightQuickSwitch.addClass('left-sidebar-only');
}
}
if (hasRightSidebar && !hasLeftSidebar) {
$leftQuickSwitch.addClass('right-sidebar-only');
}
const leftPosition = (($('#imageViewerViewports').width() / nViewports) / $(window).width()) * 100 + leftOffset;
const rightPosition = 100 - leftPosition;
$leftQuickSwitch.css('right', rightPosition + '%');
$rightQuickSwitch.css('left', leftPosition + '%');
}
// Relocate dialogs positions
relocateDialogs(){
OHIF.log.info('ResizeViewportManager relocateDialogs');
const bottomRightDialogs = $('#cineDialog, #annotationDialog, #textMarkerOptionsDialog');
bottomRightDialogs.css({
const $bottomRightDialogs = $('#cineDialog, #annotationDialog, #textMarkerOptionsDialog');
$bottomRightDialogs.css({
top: '', // This removes the CSS property completely
left: '',
bottom: 0,
right: 0
});
const centerDialogs = $('.draggableDialog').not(bottomRightDialogs);
const centerDialogs = $('.draggableDialog').not($bottomRightDialogs);
centerDialogs.css({
top: 0,
left:0,
left: 0,
bottom: 0,
right: 0
});
@@ -83,7 +83,6 @@ export class ResizeViewportManager {
OHIF.log.info('ResizeViewportManager resizeScrollbars');
const currentOverlay = $(element).siblings('.imageViewerViewportOverlay');
const imageControls = currentOverlay.find('.imageControls');
currentOverlay.find('.imageControls').height($(element).height());
// Set it's width to its parent's height
@@ -125,7 +124,7 @@ export class ResizeViewportManager {
resizeViewportElements() {
this.relocateDialogs();
const viewportResizeTimer = setTimeout(() => {
setTimeout(() => {
this.repositionStudySeriesQuickSwitch();
const elements = $('.imageViewerViewport').not('.empty');
@@ -162,6 +161,7 @@ export class ResizeViewportManager {
resizeHandler = this.handleResize.bind(this);
this._resizeHandler = resizeHandler;
}
return resizeHandler;
}
}
@@ -15,11 +15,11 @@ export const renderViewer = (context, params) => {
// Render the viewer when the data is ready
promise.then(({ studies, viewerData }) => {
OHIF.viewer.data = viewerData;
context.render('app', {
data: {
template: 'viewer',
studies,
viewerData
studies
}
});
});