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

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 v-show="series.InstanceCount" style="padding: 1px;">
<div v-show="series.instanceCount" style="padding: 1px;">
{{ series.modality }}: {{ series.instanceCount }} image
</div>
<div v-show="series.sliceThickness" style="padding: 1px;">
@ -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 {

View File

@ -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

View File

@ -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)}`

View File

@ -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()