Module: Utility
Overview​
Often, an extension will need to expose some useful functionality to the other
extensions, or modes that consume the extension. For example, the cornerstone
extension, uses its utility
module to expose methods via
getUtilityModule({ servicesManager }) {
return [
{
name: 'common',
exports: {
getCornerstoneLibraries: () => {
return { cornerstone, cornerstoneTools };
},
getEnabledElement,
CornerstoneViewportService,
dicomLoaderService,
},
},
{
name: 'core',
exports: {
Enums: cs3DEnums,
},
},
{
name: 'tools',
exports: {
toolNames,
Enums: cs3DToolsEnums,
},
},
];
},
};
Then a consuming extension can use getModuleEntry
to access the methods
Below, which is a code from TrackedCornerstoneViewport
use the getUtilityModule
method to get the internal CornerstoneViewportService
which handles the Cornerstone
viewport.
extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx
const utilityModule = extensionManager.getModuleEntry(
'@ohif/extension-cornerstone.utilityModule.common'
);
const { CornerstoneViewportService } = utilityModule.exports;