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,
};
};