ohif-viewer/docs/latest/extensions/lifecycle/pre-registration.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.7 KiB

Lifecylce Hook: preRegistration

If an extension defines the preRegistration lifecycle hook, it is called before any modules are registered in the ExtensionManager. This hook can be used to:

  • initialize 3rd party libraries
  • register event listeners
  • add or call services
  • add or call commands

The preRegistration hook receives an object containing the ExtensionManager's associated ServicesManager, CommandsManager, and any configuration that was provided with the extension at time of registration.

Example preRegistration implementation that register a new service and make it available in the app. We will talk more in details for creating a new service for OHIF-v3.


// new service inside new extension
import MyNewService from './MyNewService';

export default function MyNewServiceWithServices(serviceManager) {
  return {
    name: 'MyNewService',
    create: ({ configuration = {} }) => {
      return new MyNewService(serviceManager);
    },
  };
}

and

import MyNewService from './MyNewService'

export default {
  id: 'MyExampleExtension',

  /**
   * @param {object} params
   * @param {object} params.configuration
   * @param {ServicesManager} params.servicesManager
   * @param {CommandsManager} params.commandsManager
   * @returns void
   */
  preRegistration({ servicesManager, commandsManager, configuration }) {
    console.log('Wiring up important stuff.');

    window.importantStuff = () => {
      console.log(configuration);
    };

    console.log('Important stuff has been wired.');
    window.importantStuff();

    // Registering new services
    servicesManager.registerService(MyNewService(servicesManager));
  },
  },
};