Compare commits

...

5 Commits

Author SHA1 Message Date
wangxiaoshuang e972179753 Merge branch 'main' into uat_us 2026-04-17 11:49:14 +08:00
wangxiaoshuang 74c5d032fb 分割清除内存问题
continuous-integration/drone/push Build is passing Details
2026-04-17 11:49:00 +08:00
wangxiaoshuang 43aa371c36 分段显隐时对应长短径标记同步
continuous-integration/drone/push Build is passing Details
2026-04-17 11:33:35 +08:00
wangxiaoshuang 398ec90fae 分割问题查看、更改按钮位置变更
continuous-integration/drone/push Build is passing Details
2026-04-17 11:28:34 +08:00
wangxiaoshuang 890910a763 分割部分问题修复
continuous-integration/drone/push Build is passing Details
2026-04-17 11:17:25 +08:00
6 changed files with 35 additions and 21 deletions

View File

@ -2864,6 +2864,7 @@ export default {
this.rows = 1
this.cols = 1
this.activeViewportIndex = 0
series.curIndex = index
if (typeof series === 'object') {
seriesArr.push(series)
}

View File

@ -129,7 +129,8 @@
<template v-if="segmentList.length > 0">
<div class="SegmentGroupBox">
<div style="display: flex;align-items: center;">
<el-popover placement="left" width="40" trigger="click" v-if="readingTaskState < 2">
<el-popover placement="left" width="40" trigger="click" v-if="readingTaskState < 2"
v-model="popoverVisible" :teleported="true">
<div class="SegmentGroupBtnBox">
<div class="SegmentGroupBtn" @click.stop="addSegmentGroup">
{{ $t('trials:reading:Segmentations:button:addSegmentGroup') }}
@ -392,7 +393,8 @@ export default {
digitPlaces: 2,
isloaded: false,
popoverId: null,
saveLoading: false
saveLoading: false,
popoverVisible: false
}
},
mounted() {
@ -400,6 +402,7 @@ export default {
this.statsKey = getCustomizeStandardsSegmentDicomTools('Labelmap')[0].props.filter(item => item !== 'width' && item !== 'length')
// console.log(segmentation, 'segmentation')
// console.log(annotation, 'annotation')
console.log(cache, 'cache')
eventTarget.addEventListener(
'CORNERSTONE_TOOLS_SEGMENTATION_DATA_MODIFIED',
this.segmentationModifiedCallback
@ -674,6 +677,7 @@ export default {
// this.viewBidirectional(item.segments, view)
},
viewSegment(item, view) {
item.bidirectionalView = view
item.view = view
this.$emit('setToolsPassive')
DicomEvent.$emit('viewSegment', item)
@ -731,6 +735,7 @@ export default {
},
async addSegmentGroup() {
// let segmentationId = this.$guid();
this.popoverVisible = false
let obj = {
name: this.getSegmentationName(),
view: true,
@ -826,15 +831,15 @@ export default {
segmentIndex: segmentIndex,
segmentationId: this.segmentationId,
SegmentLabel: this.getSegmentName(item.segments),
color: item.segments.length >= this.colors.length ? this.colors[0] : this.colors[item.segments.length],
color: segmentIndex >= this.colors.length ? this.colors[0] : this.colors[segmentIndex],
stats: null,
bidirectional: null,
bidirectionalView: true,
view: true,
lock: false
}
if (item.segments.length >= this.colors.length) {
let index = item.segments.length % this.colors.length
if (segmentIndex >= this.colors.length) {
let index = segmentIndex % this.colors.length
let color = this.randomNearColor(this.colors[index], 4)
obj.color = color
}
@ -881,6 +886,11 @@ export default {
if (!res) return false
segmentation.removeSegmentation(this.segmentationId)
segmentation.state.removeSegmentation(this.segmentationId)
let volume = cache.getVolume(this.segmentationId)
// 1. Volume
volume.destroy();
// 2.
volume.removeFromCache();
let groupIndex = this.segmentList.findIndex(item => item.segmentationId === this.segmentationId)
this.segmentList.splice(groupIndex, 1)
let annotations = annotation.state.getAllAnnotations().filter(item => item.metadata.segmentationId === this.segmentationId);
@ -891,7 +901,7 @@ export default {
this.segmentationId = this.segmentList[0].segmentationId;
this.selectSegmentGroup()
} else {
this.segmentationId = ''
this.segmentationId = null
}
// this.readingSegmentByConfig()
this.resetViewport()

View File

@ -384,7 +384,7 @@ export default {
},
stackNewImage(e) {
const { detail } = e
delete this.series.segment
this.series.SliceIndex = detail.imageIndex
this.sliderInfo.height = detail.imageIndex * 100 / detail.numberOfSlices
const renderingEngine = getRenderingEngine(this.renderingEngineId)
@ -687,6 +687,8 @@ export default {
}
await renderSegmentation(this.series, this.series.TaskInfo, this.viewportId, this.SegmentConfig, this.renderingEngineId, data.segment, this.actionConfiguration)
DicomEvent.$emit('SegmentationLoading', this.viewportId)
console.log(data.segment, 'data.segment')
if (data.segment) return false
if (this.series.hasOwnProperty('curIndex')) return this.setFullScreen(this.series.curIndex)
this.setFullScreen(Math.ceil((res.volume._imageIds.length - 1) / 2) - 1)
} catch (e) {

View File

@ -210,16 +210,16 @@
@click="operateImageMarker({ operateStateEnum: 21, question })">
{{ $t('dicom3D:CustomizeQuestionFormItem:button:bind') }}
</el-button>
<!-- 更改 -->
<el-button v-if="readingTaskState < 2 && (questionsSegmentMarkStatus[question.Id])" size="mini" type="text"
@click="operateImageMarker({ operateStateEnum: 22, question })">
{{ $t('dicom3D:CustomizeQuestionFormItem:button:edit') }}
</el-button>
<!-- 查看 -->
<el-button v-if="questionsSegmentMarkStatus[question.Id]" size="mini" type="text"
@click="operateImageMarker({ operateStateEnum: 23, question })">
{{ $t('dicom3D:CustomizeQuestionFormItem:button:view') }}
</el-button>
<!-- 更改 -->
<el-button v-if="readingTaskState < 2 && (questionsSegmentMarkStatus[question.Id])" size="mini" type="text"
@click="operateImageMarker({ operateStateEnum: 22, question })">
{{ $t('dicom3D:CustomizeQuestionFormItem:button:edit') }}
</el-button>
<!-- 移除 -->
<el-button v-if="readingTaskState < 2 && (questionsSegmentMarkStatus[question.Id])" size="mini" type="text"
@click="operateImageMarker({ operateStateEnum: 24, question })">

View File

@ -135,17 +135,17 @@
size="mini" type="text" @click="operateImageMarker({ operateStateEnum: 21, question })">
{{ $t('dicom3D:CustomizeQuestionFormItem:button:bind') }}
</el-button>
<!-- 查看 -->
<el-button v-if="questionsSegmentMarkStatus[rowId ? `${rowId}_${question.Id}` : question.Id]" size="mini"
type="text" @click="operateImageMarker({ operateStateEnum: 23, question })">
{{ $t('dicom3D:CustomizeQuestionFormItem:button:view') }}
</el-button>
<!-- 更改 -->
<el-button
v-if="readingTaskState < 2 && (questionsSegmentMarkStatus[rowId ? `${rowId}_${question.Id}` : question.Id])"
size="mini" type="text" @click="operateImageMarker({ operateStateEnum: 22, question })">
{{ $t('dicom3D:CustomizeQuestionFormItem:button:edit') }}
</el-button>
<!-- 查看 -->
<el-button v-if="questionsSegmentMarkStatus[rowId ? `${rowId}_${question.Id}` : question.Id]" size="mini"
type="text" @click="operateImageMarker({ operateStateEnum: 23, question })">
{{ $t('dicom3D:CustomizeQuestionFormItem:button:view') }}
</el-button>
<!-- 移除 -->
<el-button
v-if="readingTaskState < 2 && (questionsSegmentMarkStatus[rowId ? `${rowId}_${question.Id}` : question.Id])"

View File

@ -229,6 +229,7 @@ function selectSegmentation(viewportId, segmentationId) {
segmentation.activeSegmentation.setActiveSegmentation(viewportId, segmentationId)
}
function selectSegment(viewportId, segmentationId, segmentIndex) {
if (!segmentIndex) return false
selectSegmentation(viewportId, segmentationId)
segmentation.segmentIndex.setActiveSegmentIndex(segmentationId, segmentIndex);
}