ohif-viewer/extensions/measurement-tracking/src/getPanelModule.tsx
Joe Boccanfuso 5670a4d8d1
feat(PanelService): Left or right side panel to auto start as closed but auto open when needed (#3212)
* 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.
2023-03-09 22:30:09 -05:00

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;