From 049128b90e96279911cac4e41a762320203e5935 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Wed, 28 May 2025 15:44:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=98=85=E7=89=87=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E6=94=AF=E6=8C=81=E6=B7=BB=E5=8A=A0=E4=B8=B4=E6=97=B6?= =?UTF-8?q?=E6=A0=87=E6=B3=A8=EF=BC=88=E5=8E=86=E5=8F=B2=E6=A0=87=E6=B3=A8?= =?UTF-8?q?=E4=B8=8D=E5=85=81=E8=AE=B8=E6=9B=B4=E6=94=B9=EF=BC=89=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=8F=8A=E9=98=85=E7=89=87=E9=A1=B5=E9=9D=A2=E5=8F=8C?= =?UTF-8?q?=E5=87=BB=E6=94=BE=E5=A4=A7=E7=BC=BA=E9=99=B7=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/dicoms/components/DicomCanvas.vue | 21 +++++++++++-- .../reading/dicoms/components/DicomViewer.vue | 30 ++++++++++++------- .../dicoms/customize/CustomizeDicomViewer.vue | 17 +++++++---- 3 files changed, 50 insertions(+), 18 deletions(-) diff --git a/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue b/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue index 0bc5056d..e744e8d0 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue @@ -263,7 +263,7 @@ export default { series: '', ToolStateManager: null, renderedMeasured: [], - measuredTools: ['Length', 'Bidirectional', 'ArrowAnnotate', 'RectangleRoi'], + measuredTools: ['Length', 'Bidirectional', 'ArrowAnnotate', 'RectangleRoi', 'Probe'], measureData: [], selectedLesion: null, activeTool: 0, // 0:enable 1:passive 2:active @@ -607,7 +607,11 @@ export default { if ((i.LesionType === 0 || i.LesionType === 1 || i.LesionType === 7) && i.IsFirstChangeTask) { arr.push(i.OrderMarkName) } + if (i.Id && this.readingTaskState >= 2) { + arr.push(i.OrderMarkName) + } }) + console.log(arr) return arr }, getMergeMarks(measureDatas) { @@ -616,6 +620,9 @@ export default { if ((i.LesionType === 0) && i.SplitOrMergeType === 1) { arr.push(i.OrderMarkName) } + if (i.Id && this.readingTaskState >= 2) { + arr.push(i.OrderMarkName) + } }) return arr }, @@ -692,7 +699,7 @@ export default { } else if (criterionType === 2) { this.disabledMarks = this.getMergeMarks(this.visitTaskList[idx].MeasureData) } else { - this.disabledMarks = [] + this.disabledMarks = this.getDisabledMarks(this.visitTaskList[idx].MeasureData) } return true }, @@ -901,6 +908,9 @@ export default { } } else if (this.activeTool === 1 && this.readingTaskState < 2) { cornerstoneTools.setToolPassiveForElement(element, data.MeasureData.type, { mouseButtonMask: 1 }) + } else if (this.readingTaskState >= 2 && this.isCurrentTask) { + // setToolPassiveForElement + cornerstoneTools.setToolEnabledForElement(element, data.MeasureData.type, { mouseButtonMask: 1 }) } else { cornerstoneTools.setToolEnabledForElement(element, data.MeasureData.type, { mouseButtonMask: 1 }) } @@ -919,6 +929,9 @@ export default { } } }) + if (this.readingTaskState >= 2 && this.activeToolName && this.isCurrentTask) { + cornerstoneTools.setToolActiveForElement(element, this.activeToolName, { mouseButtonMask: 1 }) + } }, setMeasureDataVisible() { if (this.readingTaskState >= 2) return @@ -986,6 +999,7 @@ export default { } }, mouseClick(e) { + if (this.readingTaskState >= 2) return const { element, currentPoints, image, viewport } = e.detail var imageId = image.imageId const imageInfo = this.getInstanceInfo(imageId) @@ -1073,7 +1087,8 @@ export default { } else if (criterionType === 2) { this.disabledMarks = this.getMergeMarks(this.visitTaskList[idx].MeasureData) } else { - this.disabledMarks = [] + // this.disabledMarks = [] + this.disabledMarks = this.getDisabledMarks(this.visitTaskList[idx].MeasureData) } this.maxVistNum = this.visitTaskList[this.visitTaskList.length - 1].VisitTaskNum diff --git a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue index f401fbed..8bfe1c85 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue @@ -416,7 +416,7 @@ { - // this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].reloadCanvas() for (var i = 0; i < this.maxCanvas; i++) { this.$refs[`dicomCanvas${i}`][0].reloadCanvas() } @@ -1941,6 +1947,7 @@ export default { }, // 切换布局 changeLayout(name) { + this.fullScreenIndex = -1 if (this.activeTool) { if (this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].isCurrentTask && this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].readingTaskState < 2) { this.$nextTick(() => { @@ -2043,14 +2050,17 @@ export default { if (i === -1) return var isCurrentTask = this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].isCurrentTask var readingTaskState = this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].readingTaskState - if (!isCurrentTask || readingTaskState >= 2) { + if (!isCurrentTask) { this.measuredTools[i].isDisabled = true e.target.style.cursor = 'not-allowed' if (this.activeTool) { this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].setToolEnabled(toolName) this.activeTool = '' } - } else { + } else if (isCurrentTask && readingTaskState >= 2) { + this.measuredTools[i].isDisabled = false + e.target.style.cursor = 'pointer' + } else if (isCurrentTask && readingTaskState < 2) { // var obj = this.$refs['measurementList'].isCanActiveTool(toolName, true) var obj = this.$refs['measurementList'].isCanActiveTool(toolName, true) this.measuredTools[i].disabledReason = obj.reason @@ -2087,7 +2097,7 @@ export default { var toolObj = this.measuredTools.find(i => i.toolName === toolName) if (!toolObj || toolObj.isDisabled) return var dicomSeries = this.canvasObj[this.currentDicomCanvasIndex] - if (dicomSeries.isCurrentTask && isMeasuredTool && dicomSeries.readingTaskState < 2) { + if (dicomSeries.isCurrentTask && isMeasuredTool) { if (this.activeTool) { this.measuredTools.forEach(item => { this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].setToolPassive(item.toolName) diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomViewer.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomViewer.vue index eb4146a6..958bcb56 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomViewer.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomViewer.vue @@ -556,7 +556,7 @@ { - // this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].reloadCanvas() for (var i = 0; i < this.maxCanvas; i++) { this.$refs[`dicomCanvas${i}`][0].reloadCanvas() } @@ -1928,6 +1934,7 @@ export default { }, // 切换布局 changeLayout(name) { + this.fullScreenIndex = -1 if (this.activeTool) { if ( this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0]