From cd630a70fba15ea005ebdba463e36f6b45c3075a Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Thu, 6 Mar 2025 15:10:11 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=85=E7=89=87=E5=B8=83=E5=B1=80=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E5=8F=8A=E4=B8=AD=E5=BF=83=E8=B0=83=E7=A0=94=E6=9B=B4?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../research-mobile/components/BasicInfo.vue | 2 +- src/views/research/components/BaseInfo.vue | 2 +- .../visit-review/components/FileViewer.vue | 79 +++++++++++++++++-- .../visit-review/components/StudyList.vue | 17 ++-- 4 files changed, 86 insertions(+), 14 deletions(-) diff --git a/src/views/research-mobile/components/BasicInfo.vue b/src/views/research-mobile/components/BasicInfo.vue index a36c3d9e..cbd723fe 100644 --- a/src/views/research-mobile/components/BasicInfo.vue +++ b/src/views/research-mobile/components/BasicInfo.vue @@ -61,7 +61,7 @@ - + diff --git a/src/views/research/components/BaseInfo.vue b/src/views/research/components/BaseInfo.vue index 9f5a7d5c..4d7ee5cd 100644 --- a/src/views/research/components/BaseInfo.vue +++ b/src/views/research/components/BaseInfo.vue @@ -56,7 +56,7 @@ - + diff --git a/src/views/trials/trials-panel/reading/visit-review/components/FileViewer.vue b/src/views/trials/trials-panel/reading/visit-review/components/FileViewer.vue index c46a8dc6..34553451 100644 --- a/src/views/trials/trials-panel/reading/visit-review/components/FileViewer.vue +++ b/src/views/trials/trials-panel/reading/visit-review/components/FileViewer.vue @@ -47,7 +47,14 @@ > - + + + + {{ `${taskInfo.SubjectCode} ${v.taskInfo.TaskBlindName} ` }} - {{ v.currentFileName }} + {return}" @mousedown.stop="sliderMousedown($event, index)" /> - - + + + + + + + + {{ `${taskInfo.SubjectCode} ${v.taskInfo.TaskBlindName} ` }} + + + + + + + + + + {{ v.taskInfo.TaskBlindName }} + + + + + + + + + + + @@ -176,6 +231,7 @@ const { ZoomTool, PlanarRotateTool, ArrowAnnotateTool, + RectangleROITool, PlanarFreehandROITool, EraserTool } = cornerstoneTools @@ -344,6 +400,7 @@ export default { cornerstoneTools.addTool(ZoomTool) cornerstoneTools.addTool(PlanarRotateTool) cornerstoneTools.addTool(ArrowAnnotateTool) + cornerstoneTools.addTool(RectangleROITool) cornerstoneTools.addTool(PlanarFreehandROITool) cornerstoneTools.addTool(EraserTool) @@ -364,6 +421,7 @@ export default { return doneChangingTextCallback(await this.customPrompt()) } }) + toolGroup.addTool(RectangleROITool.toolName) toolGroup.addTool(PlanarFreehandROITool.toolName, { allowOpenContours: false // cachedStats: false @@ -377,9 +435,11 @@ export default { toolGroup.setToolPassive(PlanarRotateTool.toolName) if (this.readingTaskState < 2) { toolGroup.setToolPassive(ArrowAnnotateTool.toolName) + toolGroup.setToolPassive(RectangleROITool.toolName) toolGroup.setToolPassive(PlanarFreehandROITool.toolName) } else { toolGroup.setToolEnabled(ArrowAnnotateTool.toolName) + toolGroup.setToolEnabled(RectangleROITool.toolName) toolGroup.setToolEnabled(PlanarFreehandROITool.toolName) } toolGroup.setToolPassive(EraserTool.toolName) @@ -585,6 +645,8 @@ export default { }, // 切换全屏 toggleFullScreen(e, index) { + const i = this.viewportInfos.findIndex(i => i.index === index) + if (i === -1 && this.viewportInfos[i].fileType !== 'image/jpeg') return this.fullScreenIndex = this.fullScreenIndex === index ? null : index this.activeCanvasIndex = index }, @@ -685,7 +747,7 @@ export default { const { annotation } = e.detail if (!annotation) return if (!annotation.annotationId) return - if (!annotation.data.contour.closed) return + if (annotation.metadata.toolName === 'PlanarFreehandROI' && !annotation.data.contour.closed) return const i = this.viewportInfos.findIndex(i => i.index === this.activeCanvasIndex) if (i === -1) return if (this.viewportInfos[i].taskInfo.VisitTaskId !== this.taskInfo.VisitTaskId) return @@ -711,7 +773,7 @@ export default { if (this.readingTaskState === 2) return const { annotation } = e.detail if (!annotation) return - if (!annotation.data.contour.closed) return + if (annotation.metadata.toolName === 'PlanarFreehandROI' && !annotation.data.contour.closed) return const i = this.viewportInfos.findIndex(i => i.index === this.activeCanvasIndex) if (i === -1) return if (this.viewportInfos[i].taskInfo.VisitTaskId !== this.taskInfo.VisitTaskId) return @@ -885,7 +947,10 @@ export default { grid-column: 1 / -1; grid-row: 1 / -1; } - + .flex_col { + display: flex; + flex-direction: column; + } .content { width: 100%; height: 100%; diff --git a/src/views/trials/trials-panel/reading/visit-review/components/StudyList.vue b/src/views/trials/trials-panel/reading/visit-review/components/StudyList.vue index f01af885..33ad2195 100644 --- a/src/views/trials/trials-panel/reading/visit-review/components/StudyList.vue +++ b/src/views/trials/trials-panel/reading/visit-review/components/StudyList.vue @@ -15,7 +15,7 @@ - + @@ -90,7 +90,7 @@ export default { this.studyList = this.visitTaskInfo.StudyList if (this.studyList.length === 0) return this.$nextTick(() => { - this.activeNames.push(this.studyList[0].Id) + this.activeStudy(this.studyList[0].Id) }) }, methods: { @@ -98,7 +98,7 @@ export default { setInitActiveFile() { if (this.studyList.length === 0) return this.$nextTick(() => { - this.activeNames.push(this.studyList[0].Id) + this.activeStudy(this.studyList[0].Id) this.selectFile(this.studyList[0], 0, 0) }) }, @@ -113,12 +113,19 @@ export default { if (this.studyList.length === 0) return const i = this.studyList.findIndex(i => i.Id === obj.studyId) if (i === -1) return - this.activeNames.push(obj.studyId) + this.activeStudy(obj.studyId) this.activeStudyIndex = i const fileList = this.studyList[i].NoneDicomStudyFileList const fIndex = fileList.findIndex(f => f.Path === obj.path) if (fIndex === -1) return this.activeFileIndex = fIndex + }, + activeStudy(id) { + if (this.activeNames.indexOf(id) > -1) return + this.activeNames.push(id) + }, + handleChange(v) { + console.log(v) } } }