import ImageSet from '@ohif/core/src/classes/ImageSet'; import { IWebApiDataSource } from '@ohif/core'; /** * */ export default { id: 'org.ohif.*', /** * LIFECYCLE HOOKS */ preRegistration() {}, beforeExtInit() {}, beforeExtDestroy() {}, /** * MODULES */ getCommandsModule, getContextModule, getDataSourcesModule, getLayoutTemplateModule, getPanelModule, getSopClassHandlerModule, getToolbarModule() {}, getViewportModule, }; // appConfig, // extensionConfig, // dataSources, // servicesManager, // extensionManager, // commandsManager, /** * */ const getCommandsModule = () => ({ definitions: { exampleActionDef: { commandFn: ({ param1 }) => { console.log(`param1's value is: ${param1}`); }, // storeContexts: ['viewports'], options: { param1: 'hello world' }, context: 'VIEWER', // optional }, }, defaultContext: 'ACTIVE_VIEWPORT::DICOMSR', }); const ExampleContext = React.createContext(); function ExampleContextProvider({ children }) { return ( {children} ); } const getContextModule = () => [ { name: 'ExampleContext', context: ExampleContext, provider: ExampleContextProvider, }, ]; const getDataSourcesModule = () => [ { name: 'exampleDataSource', type: 'webApi', // 'webApi' | 'local' | 'other' createDataSource: dataSourceConfig => { return IWebApiDataSource.create(/* */); }, }, ]; const getLayoutTemplateModule = (/* ... */) => [ { id: 'exampleLayout', name: 'exampleLayout', component: ExampleLayoutComponent, }, ]; const getPanelModule = () => { return [ { name: 'exampleSidePanel', iconName: 'info-circle-o', iconLabel: 'Example', label: 'Hello World', isDisabled: studies => {}, // optional component: ExamplePanelContentComponent, }, ]; }; const getSopClassHandlerModule = (/* ... */) => { const BASIC_TEXT_SR = '1.2.840.10008.5.1.4.1.1.88.11'; return [ { name: 'ExampleSopClassHandle', sopClassUids: [BASIC_TEXT_SR], getDisplaySetsFromSeries: instances => { const imageSet = new ImageSet(instances); imageSet.setAttributes(/** */); imageSet.sortBy((a, b) => 0); return imageSet; }, }, ]; }; const getToolbarModule = () => {}; // displaySet, viewportIndex, dataSource const getViewportModule = () => { const wrappedViewport = props => { return ( { commandsManager.runCommand('commandName', data); }} /> ); }; return [{ name: 'example', component: wrappedViewport }]; };