* 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
66 lines
1.7 KiB
Markdown
66 lines
1.7 KiB
Markdown
# 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`.
|
|
|
|
```js
|
|
|
|
// new service inside new extension
|
|
import MyNewService from './MyNewService';
|
|
|
|
export default function MyNewServiceWithServices(serviceManager) {
|
|
return {
|
|
name: 'MyNewService',
|
|
create: ({ configuration = {} }) => {
|
|
return new MyNewService(serviceManager);
|
|
},
|
|
};
|
|
}
|
|
```
|
|
|
|
and
|
|
|
|
```js
|
|
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));
|
|
},
|
|
},
|
|
};
|
|
```
|