diff --git a/LesionTracker/.meteor/packages b/LesionTracker/.meteor/packages index de70ebd00..4b378512b 100644 --- a/LesionTracker/.meteor/packages +++ b/LesionTracker/.meteor/packages @@ -37,6 +37,7 @@ ohif:design ohif:core ohif:header ohif:cornerstone +ohif:cornerstone-settings ohif:viewerbase ohif:studies ohif:study-list diff --git a/OHIFViewer/.meteor/packages b/OHIFViewer/.meteor/packages index 5a54fd4ca..0772d6074 100644 --- a/OHIFViewer/.meteor/packages +++ b/OHIFViewer/.meteor/packages @@ -35,6 +35,7 @@ ohif:commands ohif:hotkeys ohif:header ohif:cornerstone +ohif:cornerstone-settings ohif:viewerbase ohif:study-list ohif:dicom-services diff --git a/Packages/ohif-cornerstone-settings/client/main.js b/Packages/ohif-cornerstone-settings/client/main.js new file mode 100644 index 000000000..729ab48f3 --- /dev/null +++ b/Packages/ohif-cornerstone-settings/client/main.js @@ -0,0 +1,2 @@ +// Include cornerstone's settings imports +require('../imports/client'); diff --git a/Packages/ohif-cornerstone/client/index.js b/Packages/ohif-cornerstone-settings/imports/client/index.js similarity index 78% rename from Packages/ohif-cornerstone/client/index.js rename to Packages/ohif-cornerstone-settings/imports/client/index.js index 8580aa70a..1415fcaeb 100644 --- a/Packages/ohif-cornerstone/client/index.js +++ b/Packages/ohif-cornerstone-settings/imports/client/index.js @@ -1,4 +1,5 @@ -import { OHIF } from '../namespace'; +import { OHIF } from 'meteor/ohif:core'; + import './renderer.js'; import { MetadataProvider } from './lib/classes/MetadataProvider'; diff --git a/Packages/ohif-cornerstone/client/lib/classes/MetadataProvider.js b/Packages/ohif-cornerstone-settings/imports/client/lib/classes/MetadataProvider.js similarity index 97% rename from Packages/ohif-cornerstone/client/lib/classes/MetadataProvider.js rename to Packages/ohif-cornerstone-settings/imports/client/lib/classes/MetadataProvider.js index 83fd80f39..6642b928d 100644 --- a/Packages/ohif-cornerstone/client/lib/classes/MetadataProvider.js +++ b/Packages/ohif-cornerstone-settings/imports/client/lib/classes/MetadataProvider.js @@ -1,4 +1,4 @@ -import * as cornerstoneMath from 'cornerstone-math'; +import { cornerstoneMath } from 'meteor/ohif:cornerstone'; import { parsingUtils } from '../parsingUtils'; const FUNCTION = 'function'; @@ -112,7 +112,7 @@ export class MetadataProvider { getFromImage(image, type, tag, attrName, defaultValue) { let value; - if(image.data) { + if (image.data) { value = this.getFromDataSet(image.data, type, tag); } else { value = image.instance[attrName]; @@ -140,15 +140,15 @@ export class MetadataProvider { if (parsingUtils.isValidDataSet(dataSet)) { const frameInstancePointerNames = { - 'x00181063': 'frameTime', - 'x00181065': 'frameTimeVector' - } + x00181063: 'frameTime', + x00181065: 'frameTimeVector' + }; // (0028,0009) = Frame Increment Pointer const frameInstancePointerTag = parsingUtils.attributeTag(dataSet, 'x00280009'); frameInstancePointer = frameInstancePointerNames[frameInstancePointerTag]; } else { - frameInstancePointer = image.instance['frameIncrementPointer']; + frameInstancePointer = image.instance.frameIncrementPointer; } return frameInstancePointer || ''; @@ -162,7 +162,7 @@ export class MetadataProvider { return parsingUtils.floatArray(dataSet, 'x00181065'); } - return image.instance['frameTimeVector']; + return image.instance.frameTimeVector; } getFrameTime(image) { @@ -175,7 +175,7 @@ export class MetadataProvider { return dataSet.floatString('x00181063', -1); } - return image.instance['frameTime']; + return image.instance.frameTime; } /** @@ -322,6 +322,7 @@ export class MetadataProvider { provider = this.provider.bind(this); this._provider = provider; } + return provider; } diff --git a/Packages/ohif-cornerstone/client/lib/parsingUtils.js b/Packages/ohif-cornerstone-settings/imports/client/lib/parsingUtils.js similarity index 98% rename from Packages/ohif-cornerstone/client/lib/parsingUtils.js rename to Packages/ohif-cornerstone-settings/imports/client/lib/parsingUtils.js index c09975b38..5c244d8fe 100644 --- a/Packages/ohif-cornerstone/client/lib/parsingUtils.js +++ b/Packages/ohif-cornerstone-settings/imports/client/lib/parsingUtils.js @@ -1,4 +1,4 @@ -import * as dicomParser from 'dicom-parser'; +import { dicomParser } from 'meteor/ohif:cornerstone'; /** * A small set of utilities to help parsing DICOM element values. @@ -33,6 +33,7 @@ export const parsingUtils = { return 'x' + ('00000000' + (parser(bytes, offset) * 256 * 256 + parser(bytes, offset + 2)).toString(16)).substr(-8); } } + return null; }, @@ -53,6 +54,7 @@ export const parsingUtils = { if (typeof parser !== 'function') { parser = null; } + return string.split('\\').map(function(value) { value = value.trim(); return parser !== null ? parser(value) : value; @@ -60,6 +62,7 @@ export const parsingUtils = { } } } + return null; }, diff --git a/Packages/ohif-cornerstone/client/renderer.js b/Packages/ohif-cornerstone-settings/imports/client/renderer.js similarity index 64% rename from Packages/ohif-cornerstone/client/renderer.js rename to Packages/ohif-cornerstone-settings/imports/client/renderer.js index 8ea14e68d..50d88f187 100644 --- a/Packages/ohif-cornerstone/client/renderer.js +++ b/Packages/ohif-cornerstone-settings/imports/client/renderer.js @@ -1,4 +1,5 @@ -import { Meteor, OHIF } from '../namespace'; +import { Meteor } from 'meteor/meteor'; +import { OHIF } from 'meteor/ohif:core'; const rendererPath = 'settings.public.ui.cornerstoneRenderer'; OHIF.cornerstone.renderer = OHIF.utils.ObjectPath.get(Meteor, rendererPath) || ''; diff --git a/Packages/ohif-cornerstone-settings/package.js b/Packages/ohif-cornerstone-settings/package.js new file mode 100644 index 000000000..a83f9bf88 --- /dev/null +++ b/Packages/ohif-cornerstone-settings/package.js @@ -0,0 +1,15 @@ +Package.describe({ + name: 'ohif:cornerstone-settings', + summary: 'Cornerstone Settings package', + version: '0.0.1' +}); + +Package.onUse(function(api) { + api.versionsFrom('1.5'); + + api.use('ecmascript'); + api.use('ohif:cornerstone'); + api.use('ohif:core'); + + api.mainModule('client/main.js', 'client'); +}); diff --git a/Packages/ohif-cornerstone/main.js b/Packages/ohif-cornerstone/main.js index ae444fb6b..beb804250 100644 --- a/Packages/ohif-cornerstone/main.js +++ b/Packages/ohif-cornerstone/main.js @@ -1,32 +1,18 @@ -/** - * Import namespace... - */ - -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... - */ - -import * as cornerstone from 'cornerstone-core'; -import * as cornerstoneTools from 'cornerstone-tools'; -import * as cornerstoneMath from 'cornerstone-math'; -import * as cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader'; -import * as dicomParser from 'dicom-parser'; import Hammer from 'hammerjs'; +import * as cornerstone from 'cornerstone-core/dist/cornerstone.js'; +import * as cornerstoneMath from 'cornerstone-math/dist/cornerstoneMath.js'; +import * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'; +import * as cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader/dist/cornerstoneWADOImageLoader.js'; +import * as dicomParser from 'dicom-parser/dist/dicomParser.js'; -import './client/'; // which is actually: import './client/index.js'; - -// Inject the current cornerstone version into the -// WADO Image Loader and Tools libraries -// -// Note: You would also need to do this with Cornerstone Web Image Loader cornerstoneTools.external.Hammer = Hammer; cornerstoneTools.external.cornerstone = cornerstone; cornerstoneTools.external.cornerstoneMath = cornerstoneMath; cornerstoneWADOImageLoader.external.cornerstone = cornerstone; cornerstoneWADOImageLoader.external.dicomParser = dicomParser; +// Export scripts that will populate the Cornerstone namespace as a side effect only import. +// This is effectively the public API... export { cornerstone, cornerstoneTools, @@ -34,5 +20,3 @@ export { cornerstoneWADOImageLoader, dicomParser }; - -export { OHIF }; diff --git a/Packages/ohif-cornerstone/namespace.js b/Packages/ohif-cornerstone/namespace.js deleted file mode 100644 index c2d8d4265..000000000 --- a/Packages/ohif-cornerstone/namespace.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Import main dependency - */ - -import { Meteor } from 'meteor/meteor'; -import { OHIF } from 'meteor/ohif:core'; - -/** - * Append Cornerstone namespace - */ - -const Cornerstone = { - ...OHIF.cornerstone -}; - -/** - * Append Cornerstone namespace to OHIF namespace - */ - -OHIF.cornerstone = Cornerstone; - -/** - * Export relevant objects - */ - -export { Meteor, OHIF }; diff --git a/Packages/ohif-cornerstone/package.js b/Packages/ohif-cornerstone/package.js index 0802073b1..99cc48ade 100644 --- a/Packages/ohif-cornerstone/package.js +++ b/Packages/ohif-cornerstone/package.js @@ -17,7 +17,6 @@ Package.onUse(function(api) { api.versionsFrom('1.5'); api.use('ecmascript'); - api.use('ohif:core'); api.addAssets('public/js/cornerstoneWADOImageLoaderCodecs.es5.js', 'client'); api.addAssets('public/js/cornerstoneWADOImageLoaderWebWorker.es5.js', 'client'); diff --git a/Packages/ohif-lesiontracker/package.js b/Packages/ohif-lesiontracker/package.js index 83bb47b9b..2e9a302d1 100644 --- a/Packages/ohif-lesiontracker/package.js +++ b/Packages/ohif-lesiontracker/package.js @@ -20,9 +20,10 @@ Package.onUse(function(api) { // Our custom packages api.use('ohif:design'); - api.use('ohif:core'); - api.use('ohif:studies'); api.use('ohif:cornerstone'); + api.use('ohif:core'); + api.use('ohif:cornerstone-settings'); + api.use('ohif:studies'); api.use('ohif:measurements'); api.addFiles('both/index.js', [ 'client', 'server' ]); diff --git a/Packages/ohif-viewerbase/client/lib/toolManager.js b/Packages/ohif-viewerbase/client/lib/toolManager.js index 0f79d174d..961e4385b 100644 --- a/Packages/ohif-viewerbase/client/lib/toolManager.js +++ b/Packages/ohif-viewerbase/client/lib/toolManager.js @@ -434,7 +434,9 @@ export const toolManager = { newCornerstoneToolMiddle.activate(element, 2); // 2 means middle mouse button newCornerstoneToolRight.activate(element, 5); // 5 means left mouse button and right mouse button } else { - newCornerstoneToolLeft.mouse.activate(element, 1); // 1 means left mouse button + setTimeout(() => newCornerstoneToolLeft.mouse.activate(element, 1)); + // >>>> TODO Find out why it's working only with a timeout + // newCornerstoneToolLeft.mouse.activate(element, 1); // 1 means left mouse button newCornerstoneToolMiddle.activate(element, 2); // 2 means middle mouse button newCornerstoneToolRight.activate(element, 4); // 4 means right mouse button } diff --git a/Packages/ohif-viewerbase/package.js b/Packages/ohif-viewerbase/package.js index 92fbb48cb..84f6cb280 100644 --- a/Packages/ohif-viewerbase/package.js +++ b/Packages/ohif-viewerbase/package.js @@ -20,7 +20,9 @@ Package.onUse(function(api) { // OHIF dependencies api.use([ 'ohif:design', + 'ohif:cornerstone', 'ohif:core', + 'ohif:cornerstone-settings', 'ohif:hotkeys', 'ohif:log' ]); diff --git a/StandaloneViewer/StandaloneViewer/.meteor/packages b/StandaloneViewer/StandaloneViewer/.meteor/packages index 5c98b5e03..43b36d7b9 100644 --- a/StandaloneViewer/StandaloneViewer/.meteor/packages +++ b/StandaloneViewer/StandaloneViewer/.meteor/packages @@ -23,6 +23,7 @@ ohif:core ohif:header ohif:design ohif:cornerstone +ohif:cornerstone-settings ohif:viewerbase ohif:metadata ohif:study-list