From 43a221de00eb2e571b86589239b8befffc798055 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Thu, 29 May 2025 14:49:53 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E9=98=85=E7=89=87?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/dicoms3D/components/ReadPage.vue | 23 +++- .../components/customize/QuestionFormItem.vue | 21 ++- .../components/customize/QuestionList.vue | 121 ++++++++++++++---- 3 files changed, 133 insertions(+), 32 deletions(-) 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 c2ae67f1..5c8cbd8b 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue @@ -432,6 +432,7 @@ :visit-info="s" @resetAnnotations="resetAnnotations" @setReadingTaskState="setReadingTaskState" + @viewCustomAnnotationSeries="viewCustomAnnotationSeries" /> @@ -1479,6 +1480,11 @@ export default { // if ( this.resetAnnotation && this.isFusion ) return false if (!annotation) return false if (this.readingTaskState === 2) throw 'annotation Not allowed to operate' + const i = this.tools.findIndex(i => i.toolName === annotation.metadata.toolName) + if (i === -1) { + // 临时标记 + return + } if (annotation.visitTaskId === this.taskInfo.VisitTaskId && annotation.seriesId) { if (this.activeTool === 'Eraser') { await this.$confirm( @@ -1874,8 +1880,10 @@ export default { const type = parseInt(value) // 1:默认值;2:垂直翻转;3:水平翻转;4:左转90度;5:右转90度; if (type === 1) { - viewport.resetCamera() - viewport.resetProperties() + // viewport.resetCamera() + // viewport.resetProperties() + // viewport.render() + viewport.setViewPresentation({ rotation: 0 }) viewport.render() } else if (type === 2) { const { flipVertical } = viewport.getCamera() @@ -2421,6 +2429,17 @@ export default { } return obj }, + viewCustomAnnotationSeries(obj) { + const i = this.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId) + if (i === -1) return + const studyList = this.visitTaskList[i].StudyList + let series = this.getMarkedSeries(studyList, obj.annotation) + if (series) { + this.$refs[`${this.viewportKey}-${this.cells.length - 1}`][0].setSeriesInfo(series, true) + this.activeViewportIndex = i + this.$refs[series.TaskInfo.VisitTaskId][0].setSeriesActive(series.StudyIndex, series.SeriesIndex) + } + }, async getScreenshots(measureData, callback) { if (measureData) { await this.imageLocation(measureData) diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/customize/QuestionFormItem.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/customize/QuestionFormItem.vue index add002a1..22c6e7b1 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/customize/QuestionFormItem.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/customize/QuestionFormItem.vue @@ -233,7 +233,7 @@ type="number" @change="(val) => { formItemNumberChange(val, question) }" v-model="questionForm[question.Id]" - :disabled="readingTaskState === 2" + disabled style="width: 150px;" >