From 307c02725f810d25dbb81c4bd942d445120f45b1 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Tue, 31 Mar 2026 13:47:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E5=89=B2=E5=AF=B9=E8=B1=A1=E7=9A=84?= =?UTF-8?q?=E4=BD=93=E7=B4=A0=E7=BB=9F=E8=AE=A1=E4=BB=A5=E5=8F=8A=E9=95=BF?= =?UTF-8?q?=E7=9F=AD=E5=BE=84=E8=AE=A1=E7=AE=97=E4=BC=98=E5=8C=96=E3=80=81?= =?UTF-8?q?=E5=88=86=E5=89=B2=E7=BB=84=E6=B7=BB=E5=8A=A0=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/reading.js | 8 + .../dicoms3D/components/MPRViewport.vue | 2 - .../reading/dicoms3D/components/ReadPage.vue | 14 +- .../dicoms3D/components/SegmentForm.vue | 31 +- .../dicoms3D/components/Segmentations.vue | 307 ++++++++++++------ 5 files changed, 250 insertions(+), 112 deletions(-) diff --git a/src/api/reading.js b/src/api/reading.js index 1c10ecd7..6e5b3872 100644 --- a/src/api/reading.js +++ b/src/api/reading.js @@ -399,4 +399,12 @@ export function getReadingQuestionTrialById(params) { method: 'post', params }) +} +// 修改分割组保存状态 +export function changeSegmentationSavedStatus(data) { + return request({ + url: `/Segmentation/changeSegmentationSavedStatus`, + method: 'post', + data + }) } \ No newline at end of file diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/MPRViewport.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/MPRViewport.vue index 93bb25c6..e8f915cb 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/MPRViewport.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/MPRViewport.vue @@ -276,7 +276,6 @@ export default { let imageId = imageIds[0] let volume = cache.getVolume(this.volumeId) let spacing = volume ? volume.spacing : [] - console.log(spacing, 'spacing') // if (this.series.orientation === 'AXIAL') imageId = viewport.getCurrentImageId() if (imageId && volume) { this.$emit('setMPRInfo', { type: this.series.orientation, key: "imageNum", value: detail.numberOfSlices }) @@ -501,7 +500,6 @@ export default { DicomEvent.$emit("isloaded", {}) } }]).then(r => { - console.log(this.imageInfo.zoom, 'this.imageInfo.zoom') if (data.isLocation || !this.imageInfo.zoom) { setTimeout(() => { csUtils.jumpToSlice(viewport.element, { imageIndex: data.SliceIndex }); }) } 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 4eeabe3f..10746aa9 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue @@ -2041,14 +2041,8 @@ export default { }, setCrosshairsToolLineColor(viewportId) { let colors = [ - '#0ca8df', '#ffd10a', '#b6d634', - '#3fbe95', - '#785db0', - '#5070dd', - '#505372', - '#ff994d', '#fb628b', ] let index = viewportId.split("-").pop() @@ -2534,6 +2528,14 @@ export default { this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].resetOrientationMarkers() viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true }) viewport.resetProperties() + if (this.isMPR) { + let volume = cache.getVolume(this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].volumeId) + const voi = metaData.get('voiLutModule', volume._imageIds[Math.ceil((volume._imageIds.length - 1) / 2)]) + const lower = voi.windowCenter[0] - voi.windowWidth[0] / 2 + const upper = voi.windowCenter[0] + voi.windowWidth[0] / 2 - 1 + console.log(lower, upper) + viewport.setProperties({ voiRange: { upper: upper, lower: lower } }) + } viewport.render() renderingEngine.render() if (this.readingTool === 3) { diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/SegmentForm.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/SegmentForm.vue index 0475a27c..0d6e3b38 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/SegmentForm.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/SegmentForm.vue @@ -1,5 +1,5 @@