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("@ohif/extension-measurement-tracking.panelModule.seriesList")
accesses the seriesList
panel from panelModule
of the
@ohif/extension-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,
};
};