StandaloneViewer reconcile + Minor fix to ResizeViewportManager
This commit is contained in:
parent
6ddc844945
commit
36def1e055
@ -20,7 +20,7 @@ Template.viewerMain.onCreated(() => {
|
|||||||
// and change it to jQuery._data(window, 'events')['resize'].
|
// and change it to jQuery._data(window, 'events')['resize'].
|
||||||
// Otherwise this function will be probably overrided.
|
// Otherwise this function will be probably overrided.
|
||||||
// See cineDialog instance.setResizeHandler function
|
// See cineDialog instance.setResizeHandler function
|
||||||
window.addEventListener('resize', window.ResizeViewportManager.handleResize.bind(window.ResizeViewportManager));
|
window.addEventListener('resize', window.ResizeViewportManager.getResizeHandler());
|
||||||
|
|
||||||
// Add beforeUnload event handler to check for unsaved changes
|
// Add beforeUnload event handler to check for unsaved changes
|
||||||
window.addEventListener('beforeunload', unloadHandlers.beforeUnload);
|
window.addEventListener('beforeunload', unloadHandlers.beforeUnload);
|
||||||
@ -113,7 +113,7 @@ Template.viewerMain.onDestroyed(() => {
|
|||||||
OHIF.log.info('viewerMain onDestroyed');
|
OHIF.log.info('viewerMain onDestroyed');
|
||||||
|
|
||||||
// Remove the Window resize listener
|
// Remove the Window resize listener
|
||||||
window.removeEventListener('resize', window.ResizeViewportManager.handleResize.bind(window.ResizeViewportManager));
|
window.removeEventListener('resize', window.ResizeViewportManager.getResizeHandler());
|
||||||
|
|
||||||
// Remove beforeUnload event handler...
|
// Remove beforeUnload event handler...
|
||||||
window.removeEventListener('beforeunload', unloadHandlers.beforeUnload);
|
window.removeEventListener('beforeunload', unloadHandlers.beforeUnload);
|
||||||
|
|||||||
@ -176,6 +176,10 @@ Viewerbase.dicomTagDescriptions = dicomTagDescriptions;
|
|||||||
import { ImageSet } from './lib/classes/ImageSet';
|
import { ImageSet } from './lib/classes/ImageSet';
|
||||||
Viewerbase.ImageSet = ImageSet;
|
Viewerbase.ImageSet = ImageSet;
|
||||||
|
|
||||||
|
// LayoutManager
|
||||||
|
import { LayoutManager } from './lib/classes/LayoutManager';
|
||||||
|
Viewerbase.LayoutManager = LayoutManager;
|
||||||
|
|
||||||
// ResizeViewportManager
|
// ResizeViewportManager
|
||||||
import { ResizeViewportManager } from './lib/classes/ResizeViewportManager';
|
import { ResizeViewportManager } from './lib/classes/ResizeViewportManager';
|
||||||
Viewerbase.ResizeViewportManager = ResizeViewportManager;
|
Viewerbase.ResizeViewportManager = ResizeViewportManager;
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import { getInstanceClassDefaultViewport } from '../instanceClassSpecificViewpor
|
|||||||
// Manage resizing viewports triggered by window resize
|
// Manage resizing viewports triggered by window resize
|
||||||
export class ResizeViewportManager {
|
export class ResizeViewportManager {
|
||||||
constructor() {
|
constructor() {
|
||||||
|
this._resizeHandler = null;
|
||||||
OHIF.log.info('ResizeViewportManager');
|
OHIF.log.info('ResizeViewportManager');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,4 +151,18 @@ export class ResizeViewportManager {
|
|||||||
this.resizeViewportElements();
|
this.resizeViewportElements();
|
||||||
}, 100);
|
}, 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a unique event handler function associated with a given instance using lazy assignment.
|
||||||
|
* @return {function} Returns a unique copy of the event handler of this class.
|
||||||
|
*/
|
||||||
|
getResizeHandler() {
|
||||||
|
let resizeHandler = this._resizeHandler;
|
||||||
|
if (resizeHandler === null) {
|
||||||
|
resizeHandler = this.handleResize.bind(this);
|
||||||
|
this._resizeHandler = resizeHandler;
|
||||||
|
}
|
||||||
|
return resizeHandler;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,10 +19,11 @@ ecmascript@0.6.1 # Enable ECMAScript2015+ syntax in app code
|
|||||||
shell-server@0.2.1 # Server-side component of the `meteor shell` command
|
shell-server@0.2.1 # Server-side component of the `meteor shell` command
|
||||||
|
|
||||||
# OHIF Packages
|
# OHIF Packages
|
||||||
design
|
|
||||||
ohif:core
|
ohif:core
|
||||||
|
ohif:design
|
||||||
ohif:cornerstone
|
ohif:cornerstone
|
||||||
ohif:viewerbase
|
ohif:viewerbase
|
||||||
|
ohif:metadata
|
||||||
ohif:study-list
|
ohif:study-list
|
||||||
ohif:dicom-services
|
ohif:dicom-services
|
||||||
ohif:hanging-protocols
|
ohif:hanging-protocols
|
||||||
@ -31,7 +32,7 @@ ohif:hanging-protocols
|
|||||||
aldeed:template-extension
|
aldeed:template-extension
|
||||||
aldeed:simple-schema@1.5.3
|
aldeed:simple-schema@1.5.3
|
||||||
stylus@2.513.8
|
stylus@2.513.8
|
||||||
clinical:router
|
iron:router
|
||||||
session@1.1.7
|
session@1.1.7
|
||||||
practicalmeteor:loglevel
|
practicalmeteor:loglevel
|
||||||
reactive-dict@1.1.8
|
reactive-dict@1.1.8
|
||||||
|
|||||||
@ -19,10 +19,6 @@ caching-compiler@1.1.9
|
|||||||
caching-html-compiler@1.0.7
|
caching-html-compiler@1.0.7
|
||||||
callback-hook@1.0.10
|
callback-hook@1.0.10
|
||||||
check@1.2.4
|
check@1.2.4
|
||||||
clinical:router@2.0.19
|
|
||||||
clinical:router-location@2.1.0
|
|
||||||
clinical:router-middleware-stack@2.1.2
|
|
||||||
clinical:router-url@2.1.0
|
|
||||||
coffeescript@1.11.1_4
|
coffeescript@1.11.1_4
|
||||||
ddp@1.2.5
|
ddp@1.2.5
|
||||||
ddp-client@1.3.2
|
ddp-client@1.3.2
|
||||||
@ -30,7 +26,6 @@ ddp-common@1.2.8
|
|||||||
ddp-rate-limiter@1.0.6
|
ddp-rate-limiter@1.0.6
|
||||||
ddp-server@1.3.12
|
ddp-server@1.3.12
|
||||||
deps@1.0.12
|
deps@1.0.12
|
||||||
design@0.0.1
|
|
||||||
diff-sequence@1.0.7
|
diff-sequence@1.0.7
|
||||||
ecmascript@0.6.1
|
ecmascript@0.6.1
|
||||||
ecmascript-runtime@0.3.15
|
ecmascript-runtime@0.3.15
|
||||||
@ -49,6 +44,10 @@ iron:controller@1.0.12
|
|||||||
iron:core@1.0.11
|
iron:core@1.0.11
|
||||||
iron:dynamic-template@1.0.12
|
iron:dynamic-template@1.0.12
|
||||||
iron:layout@1.0.12
|
iron:layout@1.0.12
|
||||||
|
iron:location@1.0.11
|
||||||
|
iron:middleware-stack@1.1.0
|
||||||
|
iron:router@1.0.13
|
||||||
|
iron:url@1.0.11
|
||||||
jquery@1.11.10
|
jquery@1.11.10
|
||||||
launch-screen@1.1.0
|
launch-screen@1.1.0
|
||||||
livedata@1.0.18
|
livedata@1.0.18
|
||||||
@ -74,9 +73,11 @@ npm-mongo@2.2.11_2
|
|||||||
observe-sequence@1.0.14
|
observe-sequence@1.0.14
|
||||||
ohif:core@0.0.1
|
ohif:core@0.0.1
|
||||||
ohif:cornerstone@0.0.1
|
ohif:cornerstone@0.0.1
|
||||||
|
ohif:design@0.0.1
|
||||||
ohif:dicom-services@0.0.1
|
ohif:dicom-services@0.0.1
|
||||||
ohif:hanging-protocols@0.0.1
|
ohif:hanging-protocols@0.0.1
|
||||||
ohif:log@0.0.1
|
ohif:log@0.0.1
|
||||||
|
ohif:metadata@0.0.1
|
||||||
ohif:study-list@0.0.1
|
ohif:study-list@0.0.1
|
||||||
ohif:viewerbase@0.0.1
|
ohif:viewerbase@0.0.1
|
||||||
ohif:wadoproxy@0.0.1
|
ohif:wadoproxy@0.0.1
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
Template.flexboxLayout.events({
|
Template.flexboxLayout.events({
|
||||||
'transitionend .sidebarMenu'(event) {
|
'transitionend .sidebarMenu'(event) {
|
||||||
if (!event.target.classList.contains('sidebarMenu')) {
|
if (!event.target.classList.contains('sidebarMenu')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
handleResize();
|
window.ResizeViewportManager.handleResize();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,16 +1,21 @@
|
|||||||
import { OHIF } from 'meteor/ohif:core';
|
import { OHIF } from 'meteor/ohif:core';
|
||||||
|
import 'meteor/ohif:viewerbase';
|
||||||
|
|
||||||
|
Meteor.startup(() => {
|
||||||
|
window.ResizeViewportManager = window.ResizeViewportManager || new OHIF.viewerbase.ResizeViewportManager();
|
||||||
|
});
|
||||||
|
|
||||||
Template.standaloneViewerMain.onCreated(() => {
|
Template.standaloneViewerMain.onCreated(() => {
|
||||||
// Attach the Window resize listener
|
// Attach the Window resize listener
|
||||||
|
window.addEventListener('resize', window.ResizeViewportManager.getResizeHandler());
|
||||||
// TODO: Check why this seems to need to be in a defer clause
|
|
||||||
// here, but not in the other viewers...
|
|
||||||
Meteor.defer(() => {
|
|
||||||
$(window).on('resize', handleResize);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Create the synchronizer used to update reference lines
|
// Create the synchronizer used to update reference lines
|
||||||
OHIF.viewer.updateImageSynchronizer = new cornerstoneTools.Synchronizer('CornerstoneNewImage', cornerstoneTools.updateImageSynchronizer);
|
OHIF.viewer.updateImageSynchronizer = new cornerstoneTools.Synchronizer('CornerstoneNewImage', cornerstoneTools.updateImageSynchronizer);
|
||||||
|
|
||||||
|
OHIF.viewer.metadataProvider = OHIF.cornerstone.metadataProvider;
|
||||||
|
// Metadata configuration
|
||||||
|
const metadataProvider = OHIF.viewer.metadataProvider;
|
||||||
|
cornerstoneTools.metaData.addProvider(metadataProvider.provider.bind(metadataProvider));
|
||||||
});
|
});
|
||||||
|
|
||||||
Template.standaloneViewerMain.onRendered(() => {
|
Template.standaloneViewerMain.onRendered(() => {
|
||||||
@ -18,19 +23,20 @@ Template.standaloneViewerMain.onRendered(() => {
|
|||||||
|
|
||||||
const studies = instance.data.studies;
|
const studies = instance.data.studies;
|
||||||
const parentElement = instance.$('#layoutManagerTarget').get(0);
|
const parentElement = instance.$('#layoutManagerTarget').get(0);
|
||||||
window.layoutManager = new LayoutManager(parentElement, studies);
|
OHIF.viewerbase.layoutManager = new OHIF.viewerbase.LayoutManager(parentElement, studies);
|
||||||
window.layoutManager.updateViewports();
|
OHIF.viewerbase.layoutManager.updateViewports();
|
||||||
|
|
||||||
// Enable hotkeys
|
// Enable hotkeys
|
||||||
enableHotkeys();
|
OHIF.viewerbase.hotkeyUtils.enableHotkeys();
|
||||||
});
|
});
|
||||||
|
|
||||||
Template.standaloneViewerMain.onDestroyed(() => {
|
Template.standaloneViewerMain.onDestroyed(() => {
|
||||||
|
|
||||||
// Remove the Window resize listener
|
// Remove the Window resize listener
|
||||||
$(window).off('resize', handleResize);
|
window.removeEventListener('resize', window.ResizeViewportManager.getResizeHandler());
|
||||||
|
|
||||||
// Destroy the synchronizer used to update reference lines
|
// Destroy the synchronizer used to update reference lines
|
||||||
OHIF.viewer.updateImageSynchronizer.destroy();
|
OHIF.viewer.updateImageSynchronizer.destroy();
|
||||||
|
|
||||||
delete window.layoutManager;
|
delete OHIF.viewerbase.layoutManager;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import { OHIF } from 'meteor/ohif:core';
|
import { OHIF } from 'meteor/ohif:core';
|
||||||
|
import 'meteor/ohif:viewerbase';
|
||||||
|
|
||||||
Template.toolbarSection.helpers({
|
Template.toolbarSection.helpers({
|
||||||
leftSidebarToggleButtonData() {
|
leftSidebarToggleButtonData() {
|
||||||
@ -182,7 +183,7 @@ Template.toolbarSection.onRendered(function() {
|
|||||||
instance.$('#layout').dropdown();
|
instance.$('#layout').dropdown();
|
||||||
|
|
||||||
// Set disabled/enabled tool buttons that are set in toolManager
|
// Set disabled/enabled tool buttons that are set in toolManager
|
||||||
const states = toolManager.getToolDefaultStates();
|
const states = OHIF.viewerbase.toolManager.getToolDefaultStates();
|
||||||
const disabledToolButtons = states.disabledToolButtons;
|
const disabledToolButtons = states.disabledToolButtons;
|
||||||
const allToolbarButtons = $('#toolbar').find('button');
|
const allToolbarButtons = $('#toolbar').find('button');
|
||||||
if (disabledToolButtons && disabledToolButtons.length > 0) {
|
if (disabledToolButtons && disabledToolButtons.length > 0) {
|
||||||
|
|||||||
@ -1,14 +1,16 @@
|
|||||||
import { OHIF } from 'meteor/ohif:core';
|
import { OHIF } from 'meteor/ohif:core';
|
||||||
import 'meteor/ohif:viewerbase';
|
import 'meteor/ohif:viewerbase';
|
||||||
|
import 'meteor/ohif:metadata';
|
||||||
|
|
||||||
OHIF.viewer = OHIF.viewer || {};
|
OHIF.viewer = OHIF.viewer || {};
|
||||||
|
const viewportUtils = OHIF.viewerbase.viewportUtils;
|
||||||
|
|
||||||
OHIF.viewer.functionList = {
|
OHIF.viewer.functionList = {
|
||||||
toggleCineDialog: toggleCineDialog,
|
toggleCineDialog: viewportUtils.toggleCineDialog,
|
||||||
toggleCinePlay: toggleCinePlay,
|
toggleCinePlay: viewportUtils.toggleCinePlay,
|
||||||
clearTools: clearTools,
|
clearTools: viewportUtils.clearTools,
|
||||||
resetViewport: resetViewport,
|
resetViewport: viewportUtils.resetViewport,
|
||||||
invert: invert
|
invert: viewportUtils.invert
|
||||||
};
|
};
|
||||||
|
|
||||||
Session.set('activeContentId', 'standalone');
|
Session.set('activeContentId', 'standalone');
|
||||||
@ -50,7 +52,8 @@ Template.viewer.onCreated(() => {
|
|||||||
ViewerData[contentId].studyInstanceUids = [];
|
ViewerData[contentId].studyInstanceUids = [];
|
||||||
instance.data.studies.forEach(study => {
|
instance.data.studies.forEach(study => {
|
||||||
study.selected = true;
|
study.selected = true;
|
||||||
study.displaySets = createStacks(study);
|
const studyMetadata = new OHIF.metadata.StudyMetadata(study);
|
||||||
|
study.displaySets = OHIF.viewerbase.sortingManager.getDisplaySets(studyMetadata);
|
||||||
OHIF.viewer.Studies.insert(study);
|
OHIF.viewer.Studies.insert(study);
|
||||||
ViewerData[contentId].studyInstanceUids.push(study.studyInstanceUid);
|
ViewerData[contentId].studyInstanceUids.push(study.studyInstanceUid);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -65,6 +65,7 @@ if (Meteor.isClient) {
|
|||||||
|
|
||||||
// Fire the request the server
|
// Fire the request the server
|
||||||
oReq.send();
|
oReq.send();
|
||||||
|
this.next();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user