预览访视影像样式更改;融合视口工具优化;

main
caiyiling 2026-05-22 17:09:47 +08:00
parent e04e94a792
commit 0e2e57446b
4 changed files with 68 additions and 6 deletions

View File

@ -102,7 +102,7 @@
</div> </div>
</div> </div>
<div v-show="series.InstanceCount" style="padding: 1px;"> <div v-show="series.instanceCount" style="padding: 1px;">
{{ series.modality }}: {{ series.instanceCount }} image {{ series.modality }}: {{ series.instanceCount }} image
</div> </div>
<div v-show="series.sliceThickness" style="padding: 1px;"> <div v-show="series.sliceThickness" style="padding: 1px;">
@ -1141,14 +1141,20 @@ export default {
.viewerContainer .viewerLeftSidePanel .viewernavigatorwrapper { .viewerContainer .viewerLeftSidePanel .viewernavigatorwrapper {
display: flex; display: flex;
width: 220px; width: 220px;
/* height: 84px; */ min-height: 85px;
padding: 1px 2px 1px 2px; padding: 1px 2px 1px 2px;
margin: 2px 0 1px 1px; margin: 2px 0 1px 1px;
align-items: flex-start;
/* border-radius: 2px; /* border-radius: 2px;
border: 1px solid #404040; */ border: 1px solid #404040; */
} }
.viewerContainer .viewerLeftSidePanel .viewernavigatorwrapper .imageBox {
align-self: center;
flex-shrink: 0;
}
.viewerContainer .viewernavigatorwrapper .el-progress__text { .viewerContainer .viewernavigatorwrapper .el-progress__text {
display: none; display: none;
} }
@ -1171,9 +1177,19 @@ export default {
/* width: 120px; /* width: 120px;
height: 80px; */ height: 80px; */
flex: 1; flex: 1;
min-width: 0;
padding: 3px 1px 3px 4px; padding: 3px 1px 3px 4px;
vertical-align: top; vertical-align: top;
font-size: 12px; 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 { .viewerContainer .viewerLeftSidePanel .viewerlabelwrapper {

View File

@ -303,6 +303,7 @@ const {
CrosshairsTool, CrosshairsTool,
TrackballRotateTool, TrackballRotateTool,
ProbeTool, ProbeTool,
MIPJumpToClickTool,
ScaleOverlayTool, ScaleOverlayTool,
utilities, utilities,
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
@ -441,7 +442,7 @@ export default {
lineLength: 20, lineLength: 20,
centerHoleSize: 20, centerHoleSize: 20,
}, },
fusionJumpEnabled: true fusionJumpEnabled: false
// initFirstAnnotation:false // initFirstAnnotation:false
} }
}, },
@ -995,6 +996,7 @@ export default {
cornerstoneTools.addTool(ZoomTool) cornerstoneTools.addTool(ZoomTool)
cornerstoneTools.addTool(StackScrollTool) cornerstoneTools.addTool(StackScrollTool)
cornerstoneTools.addTool(FusionJumpToPointTool) cornerstoneTools.addTool(FusionJumpToPointTool)
cornerstoneTools.addTool(MIPJumpToClickTool)
cornerstoneTools.addTool(VolumeRotateTool) cornerstoneTools.addTool(VolumeRotateTool)
cornerstoneTools.addTool(EllipticalROITool) cornerstoneTools.addTool(EllipticalROITool)
cornerstoneTools.addTool(CircleROITool) cornerstoneTools.addTool(CircleROITool)
@ -1155,6 +1157,9 @@ export default {
bindings: [{ mouseButton: MouseBindings.Secondary }] bindings: [{ mouseButton: MouseBindings.Secondary }]
}) })
mipToolGroup.addTool(FusionJumpToPointTool.toolName, this.getFusionJumpToolConfiguration()) 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. // Set the initial state of the tools, here we set one tool active on left click.
// This means left click will draw that tool. // This means left click will draw that tool.
@ -1165,6 +1170,7 @@ export default {
// mipToolGroup.addTool(OrientationMarkerTool.toolName) // mipToolGroup.addTool(OrientationMarkerTool.toolName)
// mipToolGroup.setToolActive(OrientationMarkerTool.toolName) // mipToolGroup.setToolActive(OrientationMarkerTool.toolName)
mipToolGroup.addViewport(viewportIds.PETMIP.CORONAL, renderingEngineId) mipToolGroup.addViewport(viewportIds.PETMIP.CORONAL, renderingEngineId)
this.setFusionMipClickEnabled(!this.fusionJumpEnabled && this.isFusion)
}, },
getFusionJumpToolConfiguration() { getFusionJumpToolConfiguration() {
return { return {
@ -1290,10 +1296,22 @@ export default {
this.setFusionJumpEnabled(true) this.setFusionJumpEnabled(true)
this.activeTool = FusionJumpToPointTool.toolName 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) { setFusionJumpEnabled(enabled) {
this.fusionJumpEnabled = !!enabled this.fusionJumpEnabled = !!enabled
const toolGroupIds = [ctToolGroupId, ptToolGroupId, fusionToolGroupId, mipToolGroupUID] const toolGroupIds = [ctToolGroupId, ptToolGroupId, fusionToolGroupId, mipToolGroupUID]
if (enabled) { if (enabled) {
this.setFusionMipClickEnabled(false)
toolGroupIds.forEach((toolGroupId) => { toolGroupIds.forEach((toolGroupId) => {
const toolGroup = ToolGroupManager.getToolGroup(toolGroupId) const toolGroup = ToolGroupManager.getToolGroup(toolGroupId)
if (!toolGroup || !toolGroup.hasTool(FusionJumpToPointTool.toolName)) return if (!toolGroup || !toolGroup.hasTool(FusionJumpToPointTool.toolName)) return
@ -1304,6 +1322,7 @@ export default {
this.dispatchFusionCenterPoint() this.dispatchFusionCenterPoint()
return return
} }
this.setFusionMipClickEnabled(this.isFusion)
toolGroupIds.forEach((toolGroupId) => { toolGroupIds.forEach((toolGroupId) => {
const toolGroup = ToolGroupManager.getToolGroup(toolGroupId) const toolGroup = ToolGroupManager.getToolGroup(toolGroupId)
if (!toolGroup || !toolGroup.hasTool(FusionJumpToPointTool.toolName)) return if (!toolGroup || !toolGroup.hasTool(FusionJumpToPointTool.toolName)) return

View File

@ -575,8 +575,10 @@ export default {
if (properties && properties.voiRange) { if (properties && properties.voiRange) {
var { lower, upper } = properties.voiRange var { lower, upper } = properties.voiRange
const windowWidth = upper - lower const { windowWidth, windowCenter } = csUtils.windowLevel.toWindowLevel(
const windowCenter = (upper + lower) / 2 lower,
upper
)
this.defaultWindowLevel.windowWidth = windowWidth this.defaultWindowLevel.windowWidth = windowWidth
this.defaultWindowLevel.windowCenter = windowCenter this.defaultWindowLevel.windowCenter = windowCenter
this.imageInfo.wwwc = `${Math.round(windowWidth)}/${Math.round(windowCenter)}` this.imageInfo.wwwc = `${Math.round(windowWidth)}/${Math.round(windowCenter)}`

View File

@ -621,6 +621,7 @@ const {
VolumeRotateTool, VolumeRotateTool,
CrosshairsTool, CrosshairsTool,
EllipticalROITool, EllipticalROITool,
MIPJumpToClickTool,
synchronizers, synchronizers,
LabelMapEditWithContourTool, LabelMapEditWithContourTool,
BrushTool, BrushTool,
@ -1557,6 +1558,7 @@ export default {
cornerstoneTools.addTool(AngleTool) cornerstoneTools.addTool(AngleTool)
cornerstoneTools.addTool(CobbAngleTool) cornerstoneTools.addTool(CobbAngleTool)
cornerstoneTools.addTool(FusionJumpToPointTool) cornerstoneTools.addTool(FusionJumpToPointTool)
cornerstoneTools.addTool(MIPJumpToClickTool)
cornerstoneTools.addTool(VolumeRotateTool) cornerstoneTools.addTool(VolumeRotateTool)
cornerstoneTools.addTool(CrosshairsTool) cornerstoneTools.addTool(CrosshairsTool)
cornerstoneTools.addTool(LabelMapEditWithContourTool) cornerstoneTools.addTool(LabelMapEditWithContourTool)
@ -1725,6 +1727,9 @@ export default {
}) })
if (viewportId === 'viewport-fusion-3') { if (viewportId === 'viewport-fusion-3') {
toolGroup.addTool(VolumeRotateTool.toolName) 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, { toolGroup.addTool(FusionJumpToPointTool.toolName, {
targetViewportIds: ['viewport-fusion-0', 'viewport-fusion-1', 'viewport-fusion-2', 'viewport-fusion-3', 'viewport-fusion-hidden-sag'], targetViewportIds: ['viewport-fusion-0', 'viewport-fusion-1', 'viewport-fusion-2', 'viewport-fusion-3', 'viewport-fusion-hidden-sag'],
useBrightestPoint: true, useBrightestPoint: true,
@ -1740,6 +1745,10 @@ export default {
mipViewportIds: ['viewport-fusion-3'], mipViewportIds: ['viewport-fusion-3'],
}) })
toolGroup.setToolActive(MIPJumpToClickTool.toolName, {
bindings: [{ mouseButton: MouseBindings.Primary }]
})
toolGroup.setToolActive(VolumeRotateTool.toolName, { toolGroup.setToolActive(VolumeRotateTool.toolName, {
bindings: [ bindings: [
{ {
@ -2668,16 +2677,31 @@ export default {
dispatchEvent: false, 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) { setFusionMipJumpEnabled(enabled) {
const toolGroup = ToolGroupManager.getToolGroup(this.fusionToolGroupId) const toolGroup = ToolGroupManager.getToolGroup(this.fusionToolGroupId)
if (!toolGroup || !toolGroup.hasTool(FusionJumpToPointTool.toolName)) return if (!toolGroup) return
if (enabled) { if (enabled) {
this.setFusionMipClickEnabled(false)
if (!toolGroup.hasTool(FusionJumpToPointTool.toolName)) return
if (!this.isFusion) return if (!this.isFusion) return
toolGroup.setToolActive(FusionJumpToPointTool.toolName, { toolGroup.setToolActive(FusionJumpToPointTool.toolName, {
bindings: [{ mouseButton: MouseBindings.Primary }] bindings: [{ mouseButton: MouseBindings.Primary }]
}) })
this.dispatchFusionCenterPoint() this.dispatchFusionCenterPoint()
} else { } else {
this.setFusionMipClickEnabled(this.isFusion)
if (!toolGroup.hasTool(FusionJumpToPointTool.toolName)) return
toolGroup.setToolDisabled(FusionJumpToPointTool.toolName) toolGroup.setToolDisabled(FusionJumpToPointTool.toolName)
this.clearFusionJumpToPointAnnotations() this.clearFusionJumpToPointAnnotations()
} }
@ -4436,6 +4460,7 @@ export default {
await this.initFusionHiddenSagViewport(pt) await this.initFusionHiddenSagViewport(pt)
// this.resetAnnotation = false // this.resetAnnotation = false
this.$nextTick(() => { this.$nextTick(() => {
this.setFusionMipJumpEnabled(this.activeTool === FusionJumpToPointTool.toolName)
const defaultRange = this.getFusionDefaultColorMapRange(pt) const defaultRange = this.getFusionDefaultColorMapRange(pt)
const defaultUpper = this.getFusionDefaultColorMapUpper(defaultRange) const defaultUpper = this.getFusionDefaultColorMapUpper(defaultRange)
this.$refs[`colorMap`].init() this.$refs[`colorMap`].init()