diff --git a/extensions/default/src/getLayoutTemplatesModule.js b/extensions/default/src/getLayoutTemplatesModule.js index cfbc938de..f85eba2b0 100644 --- a/extensions/default/src/getLayoutTemplatesModule.js +++ b/extensions/default/src/getLayoutTemplatesModule.js @@ -6,7 +6,7 @@ export default function() { return [ // Layout Template Definition { - name: 'myLayout', + id: 'org.ohif.defaults.viewerLayout', component: viewerLayout, }, ]; diff --git a/extensions/default/src/getSidePanelModule.js b/extensions/default/src/getSidePanelModule.js index 8c1eae334..0ab68ed47 100644 --- a/extensions/default/src/getSidePanelModule.js +++ b/extensions/default/src/getSidePanelModule.js @@ -8,10 +8,16 @@ function getSidePanelModule() { return [ { name: 'org.ohif.defaults.seriesList', + iconName: 'group-layers', + iconLabel: 'Studies', + label: 'Studies', component: helloWorldComponent, }, { name: 'org.ohif.defaults.measure', + iconName: 'list-bullets', + iconLabel: 'Measure', + label: 'Measurements', component: helloWorldComponent, }, ]; diff --git a/modes/example/src/index.js b/modes/example/src/index.js index b3528750b..bd54fbf00 100644 --- a/modes/example/src/index.js +++ b/modes/example/src/index.js @@ -21,7 +21,7 @@ export default function mode({ modeConfiguration }) { }, layoutTemplate: ({ routeProps }) => { return { - id: 'org.ohif.defaults.viewerlayout', + id: 'org.ohif.defaults.viewerLayout', props: { // named slots leftPanels: ['org.ohif.defaults.seriesList'], @@ -35,3 +35,5 @@ export default function mode({ modeConfiguration }) { sopClassHandlers: ['org.ohif.defaults.stack'], }; } + +window.exampleMode = mode({}); diff --git a/platform/core/src/extensions/ExtensionManager.js b/platform/core/src/extensions/ExtensionManager.js index 22ab070f9..c05548c13 100644 --- a/platform/core/src/extensions/ExtensionManager.js +++ b/platform/core/src/extensions/ExtensionManager.js @@ -97,7 +97,7 @@ export default class ExtensionManager { }); extensionModule.forEach(element => { - this.modulesMap[`${extensionId}.${moduleType}.${name}`]; + this.modulesMap[`${extensionId}.${moduleType}.${element.name}`]; }); } }); @@ -111,6 +111,7 @@ export default class ExtensionManager { } getDataSource(dataSourceId) { + // Note: this currently uses the data source name, which feels weird... return this.dataSourceMap[dataSourceId]; } @@ -163,11 +164,11 @@ export default class ExtensionManager { break; } case 'dataSourcesModule': { - break; - extensionModule.forEach(element => { - this.dataSourceMap[extensionModule.name] = element; + this.dataSourceMap[element.name] = element; }); + + break; } default: // code block diff --git a/platform/viewer/public/config/default.js b/platform/viewer/public/config/default.js index fb9cea8d3..1d31985b3 100644 --- a/platform/viewer/public/config/default.js +++ b/platform/viewer/public/config/default.js @@ -1,7 +1,7 @@ window.config = { routerBasename: '/', // whiteLabelling: {}, - extensions: [], + extensions: ['org.ohif.default'], modes: [], showStudyList: true, // filterQueryParam: false, diff --git a/platform/viewer/src/App.js b/platform/viewer/src/App.js index eefb5057c..ded9372ae 100644 --- a/platform/viewer/src/App.js +++ b/platform/viewer/src/App.js @@ -9,6 +9,9 @@ import { ThemeWrapper } from '@ohif/ui'; import createRoutes from './routes'; import appInit from './appInit.js'; +// Temporarily for testing +import '@ohif/mode-example'; + /** * ENV Variable to determine routing behavior */ diff --git a/platform/viewer/src/appInit.js b/platform/viewer/src/appInit.js index 0d612d6ed..279803a75 100644 --- a/platform/viewer/src/appInit.js +++ b/platform/viewer/src/appInit.js @@ -64,6 +64,11 @@ function appInit(appConfigOrFunc, defaultExtensions) { const { modes } = appConfig; + // Temporarily for testing + if (!modes.length) { + modes.push(window.exampleMode); + } + const appRoutes = buildModeRoutes(modes, extensionManager) || []; return { diff --git a/platform/viewer/src/routes/ModeRoute.js b/platform/viewer/src/routes/ModeRoute.js index 467d1bcc6..8014db6f9 100644 --- a/platform/viewer/src/routes/ModeRoute.js +++ b/platform/viewer/src/routes/ModeRoute.js @@ -18,15 +18,23 @@ export default function ModeRoute({ // Deal with toolbar. // Only handling one route per mode for now - const LayoutComponent = extensionManager.getModuleEntry( - routes[0].layoutTemplate + const layoutTemplateData = routes[0].layoutTemplate({ location }); + /*const LayoutComponent = extensionManager.getModuleEntry( + layoutTemplateData.id + );*/ + + // You can test via http://localhost:3000/example-mode/dicomweb + const LayoutComponent = () => ( +