Skip to main content
Version: Version 3.0 ๐Ÿšง

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