feat(4D): Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode (#3664)

Co-authored-by: Alireza <ar.sedghi@gmail.com>
Co-authored-by: Neil <neil.a.macphee@gmail.com>
This commit is contained in:
authored and GitHub committed 2024-04-09 23:57:34 -04:00
1 parent dc0b183dd4
commit d57e8bc157
200 files changed
+9589 -2178

No files matched your search

+20 -5
View File
@@ -17,18 +17,21 @@ const ohif = {
const cs3d = {
viewport: '@ohif/extension-cornerstone.viewportModule.cornerstone',
segPanel: '@ohif/extension-cornerstone-dicom-seg.panelModule.panelSegmentation',
};
const tmtv = {
hangingProtocol: '@ohif/extension-tmtv.hangingProtocolModule.ptCT',
petSUV: '@ohif/extension-tmtv.panelModule.petSUV',
ROIThresholdPanel: '@ohif/extension-tmtv.panelModule.ROIThresholdSeg',
toolbox: '@ohif/extension-tmtv.panelModule.tmtvBox',
export: '@ohif/extension-tmtv.panelModule.tmtvExport',
};
const extensionDependencies = {
// Can derive the versions at least process.env.from npm_package_version
'@ohif/extension-default': '^3.0.0',
'@ohif/extension-cornerstone': '^3.0.0',
'@ohif/extension-cornerstone-dicom-seg': '^3.0.0',
'@ohif/extension-tmtv': '^3.0.0',
};
@@ -47,6 +50,7 @@ function modeFactory({ modeConfiguration }) {
const {
toolbarService,
toolGroupService,
customizationService,
hangingProtocolService,
displaySetService,
} = servicesManager.services;
@@ -94,7 +98,18 @@ function modeFactory({ modeConfiguration }) {
'Pan',
'SyncToggle',
]);
toolbarService.createButtonSection('tmtvToolbox', ['RectangleROIStartEndThreshold']);
toolbarService.createButtonSection('ROIThresholdToolbox', ['RectangleROIStartEndThreshold']);
customizationService.addModeCustomizations([
{
id: 'segmentation.panel',
segmentationPanelMode: 'expanded',
addSegment: false,
onSegmentationAdd: () => {
commandsManager.run('createNewLabelmapFromPT');
},
},
]);
// For the hanging protocol we need to decide on the window level
// based on whether the SUV is corrected or not, hence we can't hard
@@ -176,13 +191,13 @@ function modeFactory({ modeConfiguration }) {
/*init: ({ servicesManager, extensionManager }) => {
//defaultViewerRouteInit
},*/
layoutTemplate: ({ location, servicesManager }) => {
layoutTemplate: () => {
return {
id: ohif.layout,
props: {
leftPanels: [ohif.thumbnailList],
leftPanelDefaultClosed: true,
rightPanels: [tmtv.ROIThresholdPanel, tmtv.petSUV],
leftPanelClosed: true,
rightPanels: [[tmtv.toolbox, cs3d.segPanel, tmtv.export], tmtv.petSUV],
viewports: [
{
namespace: cs3d.viewport,