ohif-viewer/extensions/measurement-tracking/src/index.tsx

59 lines
1.8 KiB
TypeScript

import getContextModule from './getContextModule';
import getPanelModule from './getPanelModule';
import getViewportModule from './getViewportModule';
import { id } from './id.js';
import { measurementTrackingMode } from './contexts/TrackedMeasurementsContext/promptBeginTracking';
import getCustomizationModule from './getCustomizationModule';
import {
onDoubleClickHandler,
customOnDropHandlerCallback,
} from './customizations/studyBrowserCustomization';
import { TrackedMeasurementsService } from './services';
// Import types to ensure they're included in the build
import './types';
const measurementTrackingExtension = {
/**
* Only required property. Should be a unique value across all extensions.
*/
id,
getContextModule,
getPanelModule,
getViewportModule,
/**
* Service configuration
*/
preRegistration({ servicesManager }) {
servicesManager.registerService(TrackedMeasurementsService.REGISTRATION);
},
onModeEnter({ servicesManager }) {
const { customizationService, toolbarService, trackedMeasurementsService } =
servicesManager.services;
toolbarService.registerEventForToolbarUpdate(trackedMeasurementsService, [
trackedMeasurementsService.EVENTS.TRACKED_SERIES_CHANGED,
trackedMeasurementsService.EVENTS.SERIES_ADDED,
trackedMeasurementsService.EVENTS.SERIES_REMOVED,
trackedMeasurementsService.EVENTS.TRACKING_ENABLED,
trackedMeasurementsService.EVENTS.TRACKING_DISABLED,
]);
customizationService.setCustomizations({
'studyBrowser.thumbnailDoubleClickCallback': {
$set: onDoubleClickHandler,
},
customOnDropHandler: {
$set: customOnDropHandlerCallback,
},
});
},
getCustomizationModule,
};
export default measurementTrackingExtension;
export { measurementTrackingMode };