diff --git a/src/views/dicom-show/dicom-visit.vue b/src/views/dicom-show/dicom-visit.vue index baddf6f3..6eeb249e 100644 --- a/src/views/dicom-show/dicom-visit.vue +++ b/src/views/dicom-show/dicom-visit.vue @@ -102,7 +102,7 @@ -
+
{{ series.modality }}: {{ series.instanceCount }} image
@@ -1141,14 +1141,20 @@ export default { .viewerContainer .viewerLeftSidePanel .viewernavigatorwrapper { display: flex; width: 220px; - /* height: 84px; */ + min-height: 85px; padding: 1px 2px 1px 2px; margin: 2px 0 1px 1px; + align-items: flex-start; /* border-radius: 2px; border: 1px solid #404040; */ } +.viewerContainer .viewerLeftSidePanel .viewernavigatorwrapper .imageBox { + align-self: center; + flex-shrink: 0; +} + .viewerContainer .viewernavigatorwrapper .el-progress__text { display: none; } @@ -1171,9 +1177,19 @@ export default { /* width: 120px; height: 80px; */ flex: 1; + min-width: 0; padding: 3px 1px 3px 4px; vertical-align: top; font-size: 12px; + line-height: 1.4; + overflow: hidden; +} + +.viewerContainer .viewerLeftSidePanel .viewernavitextwrapper>div { + max-width: 100%; + white-space: normal; + word-break: break-word; + overflow-wrap: anywhere; } .viewerContainer .viewerLeftSidePanel .viewerlabelwrapper { diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue index 631e32fc..abafcf6b 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue @@ -303,6 +303,7 @@ const { CrosshairsTool, TrackballRotateTool, ProbeTool, + MIPJumpToClickTool, ScaleOverlayTool, utilities, // eslint-disable-next-line no-unused-vars @@ -441,7 +442,7 @@ export default { lineLength: 20, centerHoleSize: 20, }, - fusionJumpEnabled: true + fusionJumpEnabled: false // initFirstAnnotation:false } }, @@ -995,6 +996,7 @@ export default { cornerstoneTools.addTool(ZoomTool) cornerstoneTools.addTool(StackScrollTool) cornerstoneTools.addTool(FusionJumpToPointTool) + cornerstoneTools.addTool(MIPJumpToClickTool) cornerstoneTools.addTool(VolumeRotateTool) cornerstoneTools.addTool(EllipticalROITool) cornerstoneTools.addTool(CircleROITool) @@ -1155,6 +1157,9 @@ export default { bindings: [{ mouseButton: MouseBindings.Secondary }] }) mipToolGroup.addTool(FusionJumpToPointTool.toolName, this.getFusionJumpToolConfiguration()) + mipToolGroup.addTool(MIPJumpToClickTool.toolName, { + targetViewportIds: this.getFusionJumpToolConfiguration().targetViewportIds + }) // Set the initial state of the tools, here we set one tool active on left click. // This means left click will draw that tool. @@ -1165,6 +1170,7 @@ export default { // mipToolGroup.addTool(OrientationMarkerTool.toolName) // mipToolGroup.setToolActive(OrientationMarkerTool.toolName) mipToolGroup.addViewport(viewportIds.PETMIP.CORONAL, renderingEngineId) + this.setFusionMipClickEnabled(!this.fusionJumpEnabled && this.isFusion) }, getFusionJumpToolConfiguration() { return { @@ -1290,10 +1296,22 @@ export default { this.setFusionJumpEnabled(true) this.activeTool = FusionJumpToPointTool.toolName }, + setFusionMipClickEnabled(enabled) { + const toolGroup = ToolGroupManager.getToolGroup(mipToolGroupUID) + if (!toolGroup || !toolGroup.hasTool(MIPJumpToClickTool.toolName)) return + if (enabled && this.isFusion) { + toolGroup.setToolActive(MIPJumpToClickTool.toolName, { + bindings: [{ mouseButton: MouseBindings.Primary }] + }) + } else { + toolGroup.setToolDisabled(MIPJumpToClickTool.toolName) + } + }, setFusionJumpEnabled(enabled) { this.fusionJumpEnabled = !!enabled const toolGroupIds = [ctToolGroupId, ptToolGroupId, fusionToolGroupId, mipToolGroupUID] if (enabled) { + this.setFusionMipClickEnabled(false) toolGroupIds.forEach((toolGroupId) => { const toolGroup = ToolGroupManager.getToolGroup(toolGroupId) if (!toolGroup || !toolGroup.hasTool(FusionJumpToPointTool.toolName)) return @@ -1304,6 +1322,7 @@ export default { this.dispatchFusionCenterPoint() return } + this.setFusionMipClickEnabled(this.isFusion) toolGroupIds.forEach((toolGroupId) => { const toolGroup = ToolGroupManager.getToolGroup(toolGroupId) if (!toolGroup || !toolGroup.hasTool(FusionJumpToPointTool.toolName)) return diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/PetCtViewport.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/PetCtViewport.vue index 3ddfed50..b2cbc4f0 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/PetCtViewport.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/PetCtViewport.vue @@ -575,8 +575,10 @@ export default { if (properties && properties.voiRange) { var { lower, upper } = properties.voiRange - const windowWidth = upper - lower - const windowCenter = (upper + lower) / 2 + const { windowWidth, windowCenter } = csUtils.windowLevel.toWindowLevel( + lower, + upper + ) this.defaultWindowLevel.windowWidth = windowWidth this.defaultWindowLevel.windowCenter = windowCenter this.imageInfo.wwwc = `${Math.round(windowWidth)}/${Math.round(windowCenter)}` diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue index 49c168e8..a8d4666d 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue @@ -621,6 +621,7 @@ const { VolumeRotateTool, CrosshairsTool, EllipticalROITool, + MIPJumpToClickTool, synchronizers, LabelMapEditWithContourTool, BrushTool, @@ -1557,6 +1558,7 @@ export default { cornerstoneTools.addTool(AngleTool) cornerstoneTools.addTool(CobbAngleTool) cornerstoneTools.addTool(FusionJumpToPointTool) + cornerstoneTools.addTool(MIPJumpToClickTool) cornerstoneTools.addTool(VolumeRotateTool) cornerstoneTools.addTool(CrosshairsTool) cornerstoneTools.addTool(LabelMapEditWithContourTool) @@ -1725,6 +1727,9 @@ export default { }) if (viewportId === 'viewport-fusion-3') { toolGroup.addTool(VolumeRotateTool.toolName) + toolGroup.addTool(MIPJumpToClickTool.toolName, { + targetViewportIds: ['viewport-fusion-0', 'viewport-fusion-1', 'viewport-fusion-2', 'viewport-fusion-3', 'viewport-fusion-hidden-sag'], + }) toolGroup.addTool(FusionJumpToPointTool.toolName, { targetViewportIds: ['viewport-fusion-0', 'viewport-fusion-1', 'viewport-fusion-2', 'viewport-fusion-3', 'viewport-fusion-hidden-sag'], useBrightestPoint: true, @@ -1740,6 +1745,10 @@ export default { mipViewportIds: ['viewport-fusion-3'], }) + toolGroup.setToolActive(MIPJumpToClickTool.toolName, { + bindings: [{ mouseButton: MouseBindings.Primary }] + }) + toolGroup.setToolActive(VolumeRotateTool.toolName, { bindings: [ { @@ -2668,16 +2677,31 @@ export default { dispatchEvent: false, }) }, + setFusionMipClickEnabled(enabled) { + const toolGroup = ToolGroupManager.getToolGroup(this.fusionToolGroupId) + if (!toolGroup || !toolGroup.hasTool(MIPJumpToClickTool.toolName)) return + if (enabled && this.isFusion) { + toolGroup.setToolActive(MIPJumpToClickTool.toolName, { + bindings: [{ mouseButton: MouseBindings.Primary }] + }) + } else { + toolGroup.setToolDisabled(MIPJumpToClickTool.toolName) + } + }, setFusionMipJumpEnabled(enabled) { const toolGroup = ToolGroupManager.getToolGroup(this.fusionToolGroupId) - if (!toolGroup || !toolGroup.hasTool(FusionJumpToPointTool.toolName)) return + if (!toolGroup) return if (enabled) { + this.setFusionMipClickEnabled(false) + if (!toolGroup.hasTool(FusionJumpToPointTool.toolName)) return if (!this.isFusion) return toolGroup.setToolActive(FusionJumpToPointTool.toolName, { bindings: [{ mouseButton: MouseBindings.Primary }] }) this.dispatchFusionCenterPoint() } else { + this.setFusionMipClickEnabled(this.isFusion) + if (!toolGroup.hasTool(FusionJumpToPointTool.toolName)) return toolGroup.setToolDisabled(FusionJumpToPointTool.toolName) this.clearFusionJumpToPointAnnotations() } @@ -4436,6 +4460,7 @@ export default { await this.initFusionHiddenSagViewport(pt) // this.resetAnnotation = false this.$nextTick(() => { + this.setFusionMipJumpEnabled(this.activeTool === FusionJumpToPointTool.toolName) const defaultRange = this.getFusionDefaultColorMapRange(pt) const defaultUpper = this.getFusionDefaultColorMapUpper(defaultRange) this.$refs[`colorMap`].init()