ohif-viewer/docs/latest/managers/extension.md
Alireza 5643f8f6d2
feat: Added documentation for OHIF-v3 (#2450)
* Added docs with new screenshots

* Added doc to architecture

* Added documentations to various extension modules

* Added more documentation to modes

* Added docs to managers

* Added docs for services

* Fixed deployment docs

* Added white labelling documentation

* Added i18n docs and measurement export
2021-06-15 11:15:29 -04:00

1.4 KiB

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