From 015eb78b708857d6eb02e8733b67cacd65b8dd58 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Fri, 22 May 2026 12:28:28 +0800 Subject: [PATCH] =?UTF-8?q?lugano=E9=98=85=E7=89=87=E6=A0=87=E5=87=86?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=8D=81=E5=AD=97=E7=BA=BF=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dicoms/components/Fusion/PetCt.vue | 11 ++- .../components/Fusion/TableQuestions.vue | 78 +++++++++++++++---- 2 files changed, 68 insertions(+), 21 deletions(-) diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue index 5fd7308e..631e32fc 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue @@ -103,7 +103,7 @@
- +
{{ $t('trials:reading:button:crosshairsPosition') }}
@@ -468,9 +468,6 @@ export default { mounted() { document.documentElement.style.userSelect = 'none' window.addEventListener('message', this.receiveMsg) - - console.log(cornerstoneTools) - console.log(cornerstone3D) this.$i18n.locale = this.$route.query.lang this.setLanguage(this.$route.query.lang) this.readingTaskState = parseInt(this.$route.query.readingTaskState) @@ -851,6 +848,9 @@ export default { const { detail } = e const { annotation } = detail const { metadata } = annotation + if (!metadata || metadata.toolName === FusionJumpToPointTool.toolName) { + return + } const measureData = {} measureData.frame = 0 measureData.data = annotation @@ -868,6 +868,9 @@ export default { const { detail } = e const { annotation } = detail const { metadata, data } = annotation + if (!metadata || metadata.toolName === FusionJumpToPointTool.toolName) { + return + } // var i = this.initAnnotations.findIndex(i => i.orderMark === data.remark && !i.isInit) // if (i > -1) { // console.log(data.remark) diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/TableQuestions.vue b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/TableQuestions.vue index 6e46f6c6..66c91200 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/TableQuestions.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/TableQuestions.vue @@ -172,6 +172,13 @@ export default { beforeDestroy() { }, methods: { + getQuestionFormRef(refName) { + const ref = this.$refs[refName] + if (!ref) { + return null + } + return Array.isArray(ref) ? ref[0] : ref + }, handleReadingChart(e) { this.$emit('handleReadingChart', e) }, @@ -191,7 +198,8 @@ export default { this.tableQuestions.forEach(item => { item.TableQuestions.Answers.forEach(i => { var refName = `${item.Id}_${i.RowIndex}` - this.$refs[refName] && this.$refs[refName][0].initForm(isRerender) + const questionFormRef = this.getQuestionFormRef(refName) + questionFormRef && questionFormRef.initForm(isRerender) }) }) }) @@ -271,7 +279,8 @@ export default { this.tableQuestions.forEach(item => { item.TableQuestions.Answers.forEach(i => { var refName = `${item.Id}_${i.RowIndex}` - this.$refs[refName] && this.$refs[refName][0].initForm() + const questionFormRef = this.getQuestionFormRef(refName) + questionFormRef && questionFormRef.initForm() }) }) }) @@ -379,7 +388,8 @@ export default { this.tableQuestions.forEach(item => { item.TableQuestions.Answers.forEach(i => { var refName = `${item.Id}_${i.RowIndex}` - this.$refs[refName] && this.$refs[refName][0].initForm() + const questionFormRef = this.getQuestionFormRef(refName) + questionFormRef && questionFormRef.initForm() }) }) }) @@ -391,7 +401,8 @@ export default { var rowIndex = String(this.unSaveTargets[0].rowIndex) var questionId = this.unSaveTargets[0].questionId const refName = `${this.activeItem.activeCollapseId}_${this.activeItem.activeRowIndex}` - if (rowIndex === this.activeItem.activeRowIndex && questionId === this.activeItem.activeCollapseId && !this.$refs[refName][0].questionForm.OtherMeasureData) { + const questionFormRef = this.getQuestionFormRef(refName) + if (rowIndex === this.activeItem.activeRowIndex && questionId === this.activeItem.activeCollapseId && questionFormRef && !questionFormRef.questionForm.OtherMeasureData) { if (toolName === 'CircleROI') { return { isCanActiveTool: true, reason: '' } } else { @@ -522,7 +533,8 @@ export default { if (item.TableQuestions && item.TableQuestions.Answers) { item.TableQuestions.Answers.map(t => { const refName = `${item.Id}_${t.RowIndex}` - if (this.$refs[refName] && this.$refs[refName][0] && this.$refs[refName][0].questionForm.saveTypeEnum !== 2) { + const questionFormRef = this.getQuestionFormRef(refName) + if (questionFormRef && questionFormRef.questionForm.saveTypeEnum !== 2) { var lessionName = this.getLesionName(item.OrderMark, t.RowIndex) arr.push({ lessionName: lessionName, rowIndex: t.RowIndex, questionId: item.Id }) } @@ -552,11 +564,15 @@ export default { this.activeItem.activeCollapseId = arr[0] this.$nextTick(() => { const refName = `${this.activeItem.activeCollapseId}_${this.activeItem.activeRowIndex}` - if (this.$refs[refName][0].questionForm.IsDicomReading !== false) { + const questionFormRef = this.getQuestionFormRef(refName) + if (!questionFormRef) { + return + } + if (questionFormRef.questionForm.IsDicomReading !== false) { var markTool = 'CircleROI' - var isMarked = !!this.$refs[refName][0].questionForm.OtherMeasureData + var isMarked = !!questionFormRef.questionForm.OtherMeasureData } - FusionEvent.$emit('imageLocation', { otherMeasureData: this.$refs[refName][0].questionForm.OtherMeasureData, markTool, isMarked }) + FusionEvent.$emit('imageLocation', { otherMeasureData: questionFormRef.questionForm.OtherMeasureData, markTool, isMarked }) }) } else { this.activeItem.activeRowIndex = null @@ -576,7 +592,10 @@ export default { }, collapseRightClick(e, obj, activeCollapseId, activeRowIndex) { const refName = `${activeCollapseId}_${activeRowIndex}` - FusionEvent.$emit('imageLocation', { otherMeasureData: this.$refs[refName][0].questionForm.OtherMeasureData }) + const questionFormRef = this.getQuestionFormRef(refName) + if (questionFormRef) { + FusionEvent.$emit('imageLocation', { otherMeasureData: questionFormRef.questionForm.OtherMeasureData }) + } e.stopImmediatePropagation() e.stopPropagation() @@ -621,8 +640,12 @@ export default { this.activeName = `${this.activeItem.activeCollapseId}_${this.activeItem.activeRowIndex}` const refName = `${this.activeItem.activeCollapseId}_${this.activeItem.activeRowIndex}` this.$nextTick(() => { + const questionFormRef = this.getQuestionFormRef(refName) + if (!questionFormRef) { + return + } if (deleteInfo) { - this.$refs[refName][0].setDeleteInfo(deleteInfo) + questionFormRef.setDeleteInfo(deleteInfo) } if (questionsObj.otherMeasureData) { const measureData = {} @@ -631,7 +654,7 @@ export default { measureData.type = questionsObj.otherMeasureData.metadata.toolName measureData.suvMax = questionsObj.suvMax - this.$refs[refName][0].setMeasureData(measureData) + questionFormRef.setMeasureData(measureData) } }) }, @@ -719,21 +742,28 @@ export default { this.activeItem.activeRowIndex = String(measureObj.questionInfo.RowIndex) this.activeName = `${this.activeItem.activeCollapseId}_${this.activeItem.activeRowIndex}` const refName = `${this.activeItem.activeCollapseId}_${this.activeItem.activeRowIndex}` - if (this.$refs[refName]) { - this.$refs[refName][0].setMeasureData(measureObj.measureData) + const questionFormRef = this.getQuestionFormRef(refName) + if (questionFormRef) { + questionFormRef.setMeasureData(measureObj.measureData) } } }, clearMeasuredData() { if (this.activeItem.activeCollapseId && this.activeItem.activeRowIndex && this.activeName) { const refName = `${this.activeItem.activeCollapseId}_${this.activeItem.activeRowIndex}` - this.$refs[refName][0].clearMeasurement() + const questionFormRef = this.getQuestionFormRef(refName) + if (questionFormRef) { + questionFormRef.clearMeasurement() + } } }, setOutsideMeasuredData(annotation) { if (this.activeItem.activeCollapseId && this.activeItem.activeRowIndex && this.activeName) { const refName = `${this.activeItem.activeCollapseId}_${this.activeItem.activeRowIndex}` - this.$refs[refName][0].setOutsideMeasuredData(annotation) + const questionFormRef = this.getQuestionFormRef(refName) + if (questionFormRef) { + questionFormRef.setOutsideMeasuredData(annotation) + } } }, // 设置测量数据 @@ -779,8 +809,22 @@ export default { // 判断是否存在测量数据 this.$nextTick(() => { const refName = `${this.activeItem.activeCollapseId}_${this.activeItem.activeRowIndex}` - if (!this.$refs[refName][0].questionForm.OtherMeasureData) { - this.$refs[refName][0].setMeasureData(measureData) + const questionFormRef = this.getQuestionFormRef(refName) + if (!questionFormRef) { + if (this.isBaseLineTask) { + var idx = this.tableQuestions.findIndex(item => item.LesionType === 0) + if (this.tableQuestions[idx].TableQuestions.Answers.length < this.tableQuestions[idx].MaxQuestionCount && (measureData.type === 'CircleROI')) { + this.createTTarget(measureData) + } else { + this.createNTTarget(measureData) + } + } else { + this.createNLTarget(measureData) + } + return + } + if (!questionFormRef.questionForm.OtherMeasureData) { + questionFormRef.setMeasureData(measureData) } else { if (this.isBaseLineTask) { var idx = this.tableQuestions.findIndex(item => item.LesionType === 0)