Extension Manager
#
OverviewThe 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 ModulesWe 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, };};