Skip to main content
Version: 3.7.0-beta.35 (Latest)

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 application
  • getDataSources - Returns the registered data sources
  • getActiveDataSource - Returns the currently active data source
  • getModuleEntry - 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,
};
};