Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 75x 75x 34x 34x 34x 34x 34x 34x 34x 204x 204x 204x 204x 204x 204x 204x 204x 204x 204x 34x 34x | import { CommandsManager, ExtensionManager, ServicesManager, ServiceProvidersManager, HotkeysManager, UINotificationService, UIModalService, UIDialogService, UIViewportDialogService, MeasurementService, DisplaySetService, ToolbarService, ViewportGridService, HangingProtocolService, CineService, UserAuthenticationService, errorHandler, CustomizationService, PanelService, WorkflowStepsService, StudyPrefetcherService, MultiMonitorService, // utils, } from '@ohif/core'; import loadModules, { loadModule as peerImport } from './pluginImports'; /** * @param {object|func} appConfigOrFunc - application configuration, or a function that returns application configuration * @param {object[]} defaultExtensions - array of extension objects */ async function appInit(appConfigOrFunc, defaultExtensions, defaultModes) { const commandsManagerConfig = { getAppState: () => {}, }; const commandsManager = new CommandsManager(commandsManagerConfig); const servicesManager = new ServicesManager(commandsManager); const serviceProvidersManager = new ServiceProvidersManager(); const hotkeysManager = new HotkeysManager(commandsManager, servicesManager); const appConfig = { ...(typeof appConfigOrFunc === 'function' ? await appConfigOrFunc({ servicesManager, peerImport }) : appConfigOrFunc), }; // Default the peer import function appConfig.peerImport ||= peerImport; appConfig.measurementTrackingMode ||= 'standard'; const extensionManager = new ExtensionManager({ commandsManager, servicesManager, serviceProvidersManager, hotkeysManager, appConfig, }); servicesManager.setExtensionManager(extensionManager); servicesManager.registerServices([ [MultiMonitorService.REGISTRATION, appConfig.multimonitor], UINotificationService.REGISTRATION, UIModalService.REGISTRATION, UIDialogService.REGISTRATION, UIViewportDialogService.REGISTRATION, MeasurementService.REGISTRATION, DisplaySetService.REGISTRATION, [CustomizationService.REGISTRATION, appConfig.customizationService], ToolbarService.REGISTRATION, ViewportGridService.REGISTRATION, HangingProtocolService.REGISTRATION, CineService.REGISTRATION, UserAuthenticationService.REGISTRATION, PanelService.REGISTRATION, WorkflowStepsService.REGISTRATION, [StudyPrefetcherService.REGISTRATION, appConfig.studyPrefetcher], ]); errorHandler.getHTTPErrorHandler = () => { if (typeof appConfig.httpErrorHandler === 'function') { return appConfig.httpErrorHandler; } }; /** * Example: [ext1, ext2, ext3] * Example2: [[ext1, config], ext2, [ext3, config]] */ const loadedExtensions = await loadModules([...defaultExtensions, ...appConfig.extensions]); await extensionManager.registerExtensions(loadedExtensions, appConfig.dataSources); // TODO: We no longer use `utils.addServer` // TODO: We no longer init webWorkers at app level // TODO: We no longer init the user Manager Iif (!appConfig.modes) { throw new Error('No modes are defined! Check your app-config.js'); } const loadedModes = await loadModules([...(appConfig.modes || []), ...defaultModes]); // This is the name for the loaded instance object appConfig.loadedModes = []; const modesById = new Set(); for (let i = 0; i < loadedModes.length; i++) { let mode = loadedModes[i]; Iif (!mode) { continue; } const { id } = mode; if (mode.modeFactory) { // If the appConfig contains configuration for this mode, use it. const modeConfiguration = appConfig.modesConfiguration && appConfig.modesConfiguration[id] ? appConfig.modesConfiguration[id] : {}; mode = await mode.modeFactory({ modeConfiguration, loadModules }); } Iif (modesById.has(id)) { continue; } // Prevent duplication modesById.add(id); Iif (!mode || typeof mode !== 'object') { continue; } appConfig.loadedModes.push(mode); } // Hack alert - don't touch the original modes definition, // but there are still dependencies on having the appConfig modes defined appConfig.modes = appConfig.loadedModes; return { appConfig, commandsManager, extensionManager, servicesManager, serviceProvidersManager, hotkeysManager, }; } export default appInit; |