Extension Manager
Overview#
The ExtensionManager is a class made available to us via the @ohif/core
project (platform/core). Our application instantiates a single instance of it,
and provides a ServicesManager and CommandsManager along with the
application's configuration through the appConfig key (optional).
const commandsManager = new CommandsManager();const servicesManager = new ServicesManager();const extensionManager = new ExtensionManager({ commandsManager, servicesManager, appConfig,});The ExtensionManager only has a few public members:
setActiveDataSource- Sets the active data source for the applicationgetDataSources- Returns the registered data sourcesgetActiveDataSource- Returns the currently active data sourcegetModuleEntry- Returns the module entry by the give id.
Accessing Modules#
We use getModuleEntry in our ViewerLayout logic to find the panels based on the
provided IDs in the mode's configuration.
For instance: extensionManager.getModuleEntry("org.ohif.measurement-tracking.panelModule.seriesList")
accesses the seriesList panel from panelModule of the org.ohif.measurement-tracking extension.
const getPanelData = id => { const entry = extensionManager.getModuleEntry(id); const content = entry.component;
return { iconName: entry.iconName, iconLabel: entry.iconLabel, label: entry.label, name: entry.name, content, };};