* feat(SidePanel) OHIF issue #3135 - Added a method to set a callback for a Panel to invoke when it is ready to be shown (e.g. its data is loaded). - Implemented such methods for both the segmentation and measurement panels. - The SidePanel component now adds a callback to Panel components so that it will automatically open a Panel that was initially closed and yet to be opened. - Updated the OHIF documentation accordingly. * PR feedback - added a PanelService that centralized much of the logic that existed in panel PanelModule - the SidePanel subscribes to PanelService.EVENTS.ACTIVATE_PANEL for each of its child panels * Removed the PanelMeasurementTableTracking setMeasurementPanelContentReadyCallback method. * Made the forceActive flag in the PanelService optional and defaulted it to false. * Fixed failing top level exports unit test. * - PanelService subscriptions are now per panel (id) so subscribers do not necessarily need to check the panel id in the event when it is fired - PanelService activate panel trigger subscriptions are now returned so that they can be (better) managed outside of the service - updated/created the various documentation for panels and PanelService * Clarified various documentation. Moved the code to add the activate panel triggers out of the extensions and into the longitudinal mode. * Removed the openWhenPanelActivated flag. PanelService now conforms to extending PubSubService like the other services. Updated various documentation. * Fixed failing e2e, mpr test. * Renamed the ActivatePanelTriggers type properties. The ExtensionManager now sets the id of various modules as a property on each of those modules.
44 lines
971 B
TypeScript
44 lines
971 B
TypeScript
import { Types } from '@ohif/core';
|
|
import {
|
|
PanelMeasurementTableTracking,
|
|
PanelStudyBrowserTracking,
|
|
} from './panels';
|
|
|
|
// TODO:
|
|
// - No loading UI exists yet
|
|
// - cancel promises when component is destroyed
|
|
// - show errors in UI for thumbnails if promise fails
|
|
function getPanelModule({
|
|
commandsManager,
|
|
extensionManager,
|
|
servicesManager,
|
|
}): Types.Panel[] {
|
|
return [
|
|
{
|
|
name: 'seriesList',
|
|
iconName: 'group-layers',
|
|
iconLabel: 'Studies',
|
|
label: 'Studies',
|
|
component: PanelStudyBrowserTracking.bind(null, {
|
|
commandsManager,
|
|
extensionManager,
|
|
servicesManager,
|
|
}),
|
|
},
|
|
|
|
{
|
|
name: 'trackedMeasurements',
|
|
iconName: 'tab-linear',
|
|
iconLabel: 'Measure',
|
|
label: 'Measurements',
|
|
component: PanelMeasurementTableTracking.bind(null, {
|
|
commandsManager,
|
|
extensionManager,
|
|
servicesManager,
|
|
}),
|
|
},
|
|
];
|
|
}
|
|
|
|
export default getPanelModule;
|