From df5cd20a787500e4fc5dac6b6c4d1d422232d922 Mon Sep 17 00:00:00 2001 From: Bruno Alves de Faria Date: Wed, 23 Aug 2017 11:25:58 -0300 Subject: [PATCH] Adding a setting for cornerstone default image renderer --- Packages/ohif-cornerstone/client/index.js | 3 ++- Packages/ohif-cornerstone/client/renderer.js | 4 ++++ Packages/ohif-cornerstone/main.js | 2 +- Packages/ohif-cornerstone/namespace.js | 3 ++- Packages/ohif-measurements/client/lib/getImageDataUrl.js | 2 +- Packages/ohif-servers/both/schema/servers.js | 5 +++++ .../viewer/imageViewerViewport/imageViewerViewport.js | 6 +----- 7 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 Packages/ohif-cornerstone/client/renderer.js diff --git a/Packages/ohif-cornerstone/client/index.js b/Packages/ohif-cornerstone/client/index.js index 3d4a0ca7e..8580aa70a 100644 --- a/Packages/ohif-cornerstone/client/index.js +++ b/Packages/ohif-cornerstone/client/index.js @@ -1,4 +1,5 @@ import { OHIF } from '../namespace'; +import './renderer.js'; import { MetadataProvider } from './lib/classes/MetadataProvider'; -OHIF.cornerstone.metadataProvider = new MetadataProvider(); \ No newline at end of file +OHIF.cornerstone.metadataProvider = new MetadataProvider(); diff --git a/Packages/ohif-cornerstone/client/renderer.js b/Packages/ohif-cornerstone/client/renderer.js new file mode 100644 index 000000000..8ea14e68d --- /dev/null +++ b/Packages/ohif-cornerstone/client/renderer.js @@ -0,0 +1,4 @@ +import { Meteor, OHIF } from '../namespace'; + +const rendererPath = 'settings.public.ui.cornerstoneRenderer'; +OHIF.cornerstone.renderer = OHIF.utils.ObjectPath.get(Meteor, rendererPath) || ''; diff --git a/Packages/ohif-cornerstone/main.js b/Packages/ohif-cornerstone/main.js index 711bbebb9..c706f38b2 100644 --- a/Packages/ohif-cornerstone/main.js +++ b/Packages/ohif-cornerstone/main.js @@ -2,7 +2,7 @@ * Import namespace... */ -import { OHIF } from './namespace.js'; +import { OHIF } from './namespace.js'; /** * Import scripts that will populate the Cornerstone namespace as a side effect only import. This is effectively the public API... diff --git a/Packages/ohif-cornerstone/namespace.js b/Packages/ohif-cornerstone/namespace.js index ee04377f9..c2d8d4265 100644 --- a/Packages/ohif-cornerstone/namespace.js +++ b/Packages/ohif-cornerstone/namespace.js @@ -2,6 +2,7 @@ * Import main dependency */ +import { Meteor } from 'meteor/meteor'; import { OHIF } from 'meteor/ohif:core'; /** @@ -22,4 +23,4 @@ OHIF.cornerstone = Cornerstone; * Export relevant objects */ -export { OHIF }; +export { Meteor, OHIF }; diff --git a/Packages/ohif-measurements/client/lib/getImageDataUrl.js b/Packages/ohif-measurements/client/lib/getImageDataUrl.js index 75a2be7c5..97be43711 100644 --- a/Packages/ohif-measurements/client/lib/getImageDataUrl.js +++ b/Packages/ohif-measurements/client/lib/getImageDataUrl.js @@ -154,7 +154,7 @@ const createEnabledElement = (width, height) => { const element = $element[0]; $element.appendTo(document.body); - cornerstone.enable(element, { renderer: 'webgl' }); + cornerstone.enable(element, { renderer: OHIF.cornerstone.renderer }); const enabledElement = cornerstone.getEnabledElement(element); enabledElement.toolStateManager = cornerstoneTools.newImageIdSpecificToolStateManager(); diff --git a/Packages/ohif-servers/both/schema/servers.js b/Packages/ohif-servers/both/schema/servers.js index cd4b8e4ae..f8a28f0ef 100644 --- a/Packages/ohif-servers/both/schema/servers.js +++ b/Packages/ohif-servers/both/schema/servers.js @@ -170,6 +170,11 @@ export const UISettings = new SimpleSchema({ type: Boolean, label: 'Show a progress bar closest to the thumbnail showing how much the stack has loaded', defaultValue: true + }, + cornerstoneRenderer: { + type: String, + label: 'Cornerstone default image renderer', + defaultValue: 'webgl' } }); diff --git a/Packages/ohif-viewerbase/client/components/viewer/imageViewerViewport/imageViewerViewport.js b/Packages/ohif-viewerbase/client/components/viewer/imageViewerViewport/imageViewerViewport.js index 47f93e0f6..a3f4cfd9d 100644 --- a/Packages/ohif-viewerbase/client/components/viewer/imageViewerViewport/imageViewerViewport.js +++ b/Packages/ohif-viewerbase/client/components/viewer/imageViewerViewport/imageViewerViewport.js @@ -92,12 +92,8 @@ const loadDisplaySetIntoViewport = (data, templateData) => { // Enable Cornerstone for the viewport element const options = { - renderer: 'webgl' + renderer: OHIF.cornerstone.renderer }; - - // NOTE: This uses the experimental WebGL renderer for Cornerstone! - // If you have problems, replace it with this line instead: - // cornerstone.enable(element); cornerstone.enable(element, options); // Get the handler functions that will run when loading has finished or thrown