From 6ed8c9fac94403080953a99650ce994c287760a6 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 11 Apr 2024 15:48:59 +0800 Subject: [PATCH 01/22] =?UTF-8?q?=E4=B8=B4=E5=BA=8A=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=AE=BF=E8=A7=86=E8=80=85=E7=BA=A7=E5=88=AB=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/trials/trials-panel/visit/crc-upload/index.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/trials/trials-panel/visit/crc-upload/index.vue b/src/views/trials/trials-panel/visit/crc-upload/index.vue index 9e60f3bc..37dd9ff8 100644 --- a/src/views/trials/trials-panel/visit/crc-upload/index.vue +++ b/src/views/trials/trials-panel/visit/crc-upload/index.vue @@ -491,7 +491,7 @@ @@ -499,7 +499,7 @@ From 4c350071eb2b1aa6ce6cc4648c6185579db6c90e Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 11 Apr 2024 15:50:33 +0800 Subject: [PATCH 02/22] =?UTF-8?q?Revert=20"=E4=B8=B4=E5=BA=8A=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=AE=BF=E8=A7=86=E8=80=85=E7=BA=A7=E5=88=AB=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E9=97=AE=E9=A2=98"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 6ed8c9fac94403080953a99650ce994c287760a6. --- src/views/trials/trials-panel/visit/crc-upload/index.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/trials/trials-panel/visit/crc-upload/index.vue b/src/views/trials/trials-panel/visit/crc-upload/index.vue index 37dd9ff8..9e60f3bc 100644 --- a/src/views/trials/trials-panel/visit/crc-upload/index.vue +++ b/src/views/trials/trials-panel/visit/crc-upload/index.vue @@ -491,7 +491,7 @@ @@ -499,7 +499,7 @@ From 3f85e1bb4b76c584a9e42f2c375fdb321ef4a944 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 11 Apr 2024 16:02:59 +0800 Subject: [PATCH 03/22] =?UTF-8?q?=E4=B8=B4=E5=BA=8A=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=AE=BF=E8=A7=86=E8=80=85=E7=BA=A7=E5=88=AB=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/trials/trials-panel/visit/crc-upload/index.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/trials/trials-panel/visit/crc-upload/index.vue b/src/views/trials/trials-panel/visit/crc-upload/index.vue index 9e60f3bc..56b7c486 100644 --- a/src/views/trials/trials-panel/visit/crc-upload/index.vue +++ b/src/views/trials/trials-panel/visit/crc-upload/index.vue @@ -491,7 +491,7 @@ @@ -499,7 +499,7 @@ From 43f398df19b5e5306e2874c1b110c692f43c1564 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 11 Apr 2024 18:06:18 +0800 Subject: [PATCH 04/22] =?UTF-8?q?=E5=90=88=E5=B9=B6=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/dicoms/components/DicomCanvas.vue | 6 +- .../customize/CustomizeQuestionFormItem.vue | 15 ++- .../CustomizeQuestionTableFormItem.vue | 114 +++++++++++++++++- .../reading-unit/components/QuestionsForm.vue | 13 +- .../reading-unit/components/TableQsForm.vue | 64 +++++++--- 5 files changed, 185 insertions(+), 27 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 298bef3d..8e1a48f3 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue @@ -14,7 +14,7 @@
- +
@@ -222,7 +222,8 @@ export default { visitTaskId: '', taskBlindName: '', frame: null, - imageRendered: false + imageRendered: false, + isExistsClinicalData:false // preventCache: true }, dicomInfo: { @@ -1058,6 +1059,7 @@ export default { this.stack.seriesIndex = dicomSeries.seriesIndex this.stack.sliceThickness = dicomSeries.sliceThickness this.stack.instanceCount = dicomSeries.instanceCount + this.stack.isExistsClinicalData = dicomSeries.isExistsClinicalData // this.measuredData = dicomSeries.measuredData var idx = this.visitTaskList.findIndex(i => i.VisitTaskId === dicomSeries.visitTaskId) this.stack.visitTaskNum = this.visitTaskList[idx].VisitTaskNum diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue index 2cf652e5..e1c7c3fb 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue @@ -18,6 +18,11 @@ + + + { @@ -511,10 +517,9 @@ export default { }, getQuestionCalculateRelation() { getQuestionCalculateRelation({ - TrialReadingCriterionId: this.criterionId, ReadingQuestionId: this.question.Id }).then(res => { - this.CalculationList = res.Result + this.CalculationTabelList = res.Result }) }, save() { diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionTableFormItem.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionTableFormItem.vue index 7d1bbbb0..91316b09 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionTableFormItem.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionTableFormItem.vue @@ -211,6 +211,12 @@ export default { type: String, required: true }, + CalculationList: { + type: Array, + default() { + return [] + } + }, readingTaskState: { type: Number, required: true @@ -248,14 +254,27 @@ export default { digitPlaces: 0 } }, + // watch: { + // questionForm: { + // deep: true, + // immediate: true, + // handler(v) { + // + // } + // } + // }, watch: { questionForm: { deep: true, immediate: true, - handler(v) { - + handler(v, oldv) { + try { + if (!v[this.question.Id] || !oldv[this.question.Id]) return + } catch (e) { + } + this.formItemNumberChange(this.question.Id, false) } - } + }, }, mounted() { this.digitPlaces = localStorage.getItem('digitPlaces') ? parseInt(localStorage.getItem('digitPlaces')) : 0 @@ -323,8 +342,95 @@ export default { } else { } }, + logic(rules, num = 0) { + try { + if (rules.CalculateQuestionList.length === 0) { + return false + } + var count = 0 + var maxList = [], minList = [] + rules.CalculateQuestionList.forEach((o, i) => { + if (rules.CustomCalculateMark > 4) { + if (i !== 0) { + switch (rules.CustomCalculateMark) { + case 7: + count += parseFloat(this.questionForm[o.TableQuestionId]) + if (i === rules.CalculateQuestionList.length - 1) { + num = count / rules.CalculateQuestionList.length + } + break; + case 8: + maxList.push(this.questionForm[o.TableQuestionId]) + if (i === rules.CalculateQuestionList.length - 1) { + num = Math.max(...maxList) + } + break; + case 9: + minList.push(this.questionForm[o.TableQuestionId]) + if (i === rules.CalculateQuestionList.length - 1) { + num = Math.min(...minList) + } + break; + } + } else { + maxList.push(this.questionForm[o.TableQuestionId]) + minList.push(this.questionForm[o.TableQuestionId]) + count = parseFloat(this.questionForm[o.TableQuestionId]) + num = parseFloat(this.questionForm[o.TableQuestionId]) + } + } else { + if (i !== 0) { + switch (rules.CustomCalculateMark) { + case 1: + num += parseFloat(this.questionForm[o.TableQuestionId]) + break; + case 2: + num -= parseFloat(this.questionForm[o.TableQuestionId]) + break; + case 3: + num *= parseFloat(this.questionForm[o.TableQuestionId]) + break; + case 4: + if (parseFloat(this.questionForm[o.TableQuestionId]) === 0) { + num = 0 + } else { + num /= parseFloat(this.questionForm[o.TableQuestionId]) + } + break; + } + } else { + num = parseFloat(this.questionForm[o.TableQuestionId]) + } + } + }) + } catch (e) { + console.log(e) + } + var digitPlaces = parseInt(localStorage.getItem('digitPlaces')) + if (rules.ValueType === 2) { + num = num * 100 + } + return num.toFixed(digitPlaces) + }, formItemNumberChange(v, question) { - this.$emit('formItemTableNumberChange', v, question) + console.log(this.CalculationList) + this.CalculationList.forEach((v, i) => { + console.log('v', v) + var find = v.CalculateQuestionList.filter(o => { + return o.QuestionId === question.Id + }) + console.log('find', find) + // find的自动计算值number + if (find) { + var num = this.logic(v) + console.log(num) + if (num !== false) { + this.$set(this.questionForm, v.QuestionId, num) + // this.$emit('setFormItemData', { key: v.QuestionId, val: num }) + } + } + }) + // this.$emit('formItemTableNumberChange', v, question) }, resetChild(obj) { obj.forEach(i => { diff --git a/src/views/trials/trials-panel/setting/reading-unit/components/QuestionsForm.vue b/src/views/trials/trials-panel/setting/reading-unit/components/QuestionsForm.vue index a6fd45bf..977bf2f0 100644 --- a/src/views/trials/trials-panel/setting/reading-unit/components/QuestionsForm.vue +++ b/src/views/trials/trials-panel/setting/reading-unit/components/QuestionsForm.vue @@ -447,8 +447,8 @@ + + + + + + + + {{ item.label }} + + + - - {{ item.label }} - +
+ + {{ item.label }} + +
+
+ + {{ item.label }} + +
{ return item.QuestionId === this.form.ParentId From 5a2b1ca4576a5bc06eb6cc48ccdb93c1216dc054 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 11 Apr 2024 18:40:32 +0800 Subject: [PATCH 05/22] v1.3.2 --- package.json | 2 +- vue.config.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 7d59d226..38212714 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "EICS", - "version": "1.0.0", + "version": "1.3.2", "scripts": { "dev": "vue-cli-service serve --open", "build": "vue-cli-service build", diff --git a/vue.config.js b/vue.config.js index 522793bd..2c8ec49a 100644 --- a/vue.config.js +++ b/vue.config.js @@ -63,7 +63,7 @@ module.exports = { // target: 'http://123.56.181.144:8000/api', // 国内测试环境 // target: 'http://123.56.94.154:8079', // 国内测试环境2 // target: 'http://123.56.94.154:7000', // 国内测试环境2 - target: 'http://123.56.94.154:30668', + target: 'http://123.56.94.154:30000', // target: 'http://123.56.181.144:7000', changeOrigin: true, secure: false, From a98c44ee661445e84cc2c25a24cbb1ff58debeab Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Fri, 12 Apr 2024 08:55:44 +0800 Subject: [PATCH 06/22] v1.3.2 --- src/views/login/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 1e13f20c..a885db87 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -124,7 +124,7 @@ IRC Imaging System

- V1.3.1.001 + V1.3.2.001

Copyright © {{ new Date().getFullYear() }} 上海展影医疗科技有限公司 版权所有 From aedd35a729c32a9611267a35a8becbf72f6ab377 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Sat, 13 Apr 2024 14:26:22 +0800 Subject: [PATCH 07/22] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E9=98=85?= =?UTF-8?q?=E7=89=87=E8=87=AA=E5=8A=A8=E5=AF=B9=E9=BD=90bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vue.config.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vue.config.js b/vue.config.js index 2c8ec49a..49df6a2c 100644 --- a/vue.config.js +++ b/vue.config.js @@ -63,7 +63,8 @@ module.exports = { // target: 'http://123.56.181.144:8000/api', // 国内测试环境 // target: 'http://123.56.94.154:8079', // 国内测试环境2 // target: 'http://123.56.94.154:7000', // 国内测试环境2 - target: 'http://123.56.94.154:30000', + // target: 'http://123.56.94.154:30000', + target: 'http://47.117.164.182:7060/', // target: 'http://123.56.181.144:7000', changeOrigin: true, secure: false, From e132f84c48c1a860575d8deccb8a7112b3ae88ae Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Sat, 13 Apr 2024 14:30:15 +0800 Subject: [PATCH 08/22] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E9=98=85?= =?UTF-8?q?=E7=89=87=E8=87=AA=E5=8A=A8=E5=AF=B9=E9=BD=90bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/dicoms/components/StudyList.vue | 2 +- .../dicoms/customize/CustomizeDicomCanvas.vue | 27 +++++++++++++++++-- .../dicoms/customize/CustomizeStudyList.vue | 2 +- .../trials-panel/visit/crc-upload/index.vue | 4 +-- vue.config.js | 4 +-- 5 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/views/trials/trials-panel/reading/dicoms/components/StudyList.vue b/src/views/trials/trials-panel/reading/dicoms/components/StudyList.vue index 102d20ef..9cbb86c8 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/StudyList.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/StudyList.vue @@ -482,7 +482,7 @@ export default { idx > -1 ? seriesInfo = seriesList[idx] : seriesInfo = seriesList[0] } if (seriesInfo) { - const index = Math.floor(seriesInfo.imageIds.length * ((baseObj.series.imageIdIndex + 1) / baseObj.series.instanceCount)) + const index = Math.floor(seriesInfo.imageIds.length * ((baseObj.series.imageIdIndex + 1) / baseObj.series.imageIds.length)) seriesInfo.imageIdIndex = index > 0 ? index - 1 : 0 obj.studyIndex = seriesInfo.studyIndex obj.seriesIndex = seriesInfo.seriesIndex diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue index 6b08c699..3aec7318 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue @@ -11,6 +11,13 @@ @mouseup="sliderMouseup" @contextmenu.prevent="onContextmenu" > + +

+ + + + +
i.VisitTaskId === dicomSeries.visitTaskId) this.stack.visitTaskNum = this.visitTaskList[idx].VisitTaskNum @@ -1920,6 +1929,12 @@ export default { e.stopImmediatePropagation() e.stopPropagation() e.preventDefault() + }, + handleViewCD(e) { + DicomEvent.$emit('previewCD', this.stack.visitTaskId) + e.stopImmediatePropagation() + e.stopPropagation() + e.preventDefault() } } @@ -2008,7 +2023,15 @@ export default { font-size: 14px; } } - +.info-cd{ + position: absolute; + left: 10px; + top: 5px; + text-align: left; + color: #ddd; + font-size: 18px; + cursor: pointer; +} .info-series { position: absolute; left: 10px; diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeStudyList.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeStudyList.vue index 6f199749..c287008d 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeStudyList.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeStudyList.vue @@ -476,7 +476,7 @@ export default { idx > -1 ? seriesInfo = seriesList[idx] : seriesInfo = seriesList[0] } if (seriesInfo) { - const index = Math.floor(seriesInfo.imageIds.length * ((baseObj.series.imageIdIndex + 1) / baseObj.series.instanceCount)) + const index = Math.floor(seriesInfo.imageIds.length * ((baseObj.series.imageIdIndex + 1) / baseObj.series.imageIds.length)) seriesInfo.imageIdIndex = index > 0 ? index - 1 : 0 obj.studyIndex = seriesInfo.studyIndex obj.seriesIndex = seriesInfo.seriesIndex diff --git a/src/views/trials/trials-panel/visit/crc-upload/index.vue b/src/views/trials/trials-panel/visit/crc-upload/index.vue index 56b7c486..02ec9f3a 100644 --- a/src/views/trials/trials-panel/visit/crc-upload/index.vue +++ b/src/views/trials/trials-panel/visit/crc-upload/index.vue @@ -572,10 +572,10 @@ -

+

{{ $t('trials:crcUpload:label:clinicalData') }}

- +

diff --git a/vue.config.js b/vue.config.js index 49df6a2c..1b3e1af1 100644 --- a/vue.config.js +++ b/vue.config.js @@ -63,8 +63,8 @@ module.exports = { // target: 'http://123.56.181.144:8000/api', // 国内测试环境 // target: 'http://123.56.94.154:8079', // 国内测试环境2 // target: 'http://123.56.94.154:7000', // 国内测试环境2 - // target: 'http://123.56.94.154:30000', - target: 'http://47.117.164.182:7060/', + target: 'http://123.56.94.154:30000', + // target: 'http://47.117.164.182:7060/', // target: 'http://123.56.181.144:7000', changeOrigin: true, secure: false, From 1888ec4fe5849909d2748fe9f4f8d4b843337ff0 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Sat, 13 Apr 2024 14:41:25 +0800 Subject: [PATCH 09/22] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=A4=87=E6=B3=A8?= =?UTF-8?q?=EF=BC=9A=E5=9F=BA=E7=BA=BF=E6=98=BE=E7=A4=BA=E5=8F=97=E8=AF=95?= =?UTF-8?q?=E8=80=85=E7=BA=A7=E5=88=AB=E5=92=8C=E6=96=B9=E5=BC=8F=E7=BA=A7?= =?UTF-8?q?=E5=88=AB=E7=9A=84=E4=B8=B4=E5=BA=8A=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/trials/trials-panel/visit/crc-upload/index.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/views/trials/trials-panel/visit/crc-upload/index.vue b/src/views/trials/trials-panel/visit/crc-upload/index.vue index 02ec9f3a..135ce42e 100644 --- a/src/views/trials/trials-panel/visit/crc-upload/index.vue +++ b/src/views/trials/trials-panel/visit/crc-upload/index.vue @@ -572,6 +572,7 @@ +

{{ $t('trials:crcUpload:label:clinicalData') }}

From 11627f109dc8eff2630d2600307c6e3ed70f86e8 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Wed, 29 May 2024 15:30:21 +0800 Subject: [PATCH 10/22] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E9=98=85=E7=89=87?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E7=BC=93=E5=AD=98=E5=BD=B1=E5=83=8F=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/modules/reading.js | 64 ++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/src/store/modules/reading.js b/src/store/modules/reading.js index c6491f63..883020ad 100644 --- a/src/store/modules/reading.js +++ b/src/store/modules/reading.js @@ -20,8 +20,8 @@ const hangingAgreement = [ ] const getDefaultState = () => { return { - // visitTaskList: [], - visitTaskList: sessionStorage.getItem('visitTaskList') ? JSON.parse(sessionStorage.getItem('visitTaskList')) : [], + visitTaskList: [], + // visitTaskList: sessionStorage.getItem('visitTaskList') ? JSON.parse(sessionStorage.getItem('visitTaskList')) : [], organList: [], seriesStack: [], activeHangingAgreement: hangingAgreement[0], @@ -165,7 +165,7 @@ const actions = { item.IsInit = false }) state.visitTaskList = res.Result - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') const currentTaskIdx = res.Result.findIndex(item => item.IsCurrentTask) if (currentTaskIdx > -1) { state.currentTaskId = res.Result[currentTaskIdx].VisitTaskId @@ -177,7 +177,7 @@ const actions = { }, resetVisitTasks({ state }) { return new Promise(resolve => { - sessionStorage.setItem('visitTaskList', '') + // sessionStorage.setItem('visitTaskList', '') state.visitTaskList = [] state.currentTaskId = '' state.activeSeries = {} @@ -285,7 +285,7 @@ const actions = { } } - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }).catch(() => { resolve() }) }) @@ -301,7 +301,7 @@ const actions = { }) }) } - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }) }, @@ -320,7 +320,7 @@ const actions = { state.visitTaskList[index].Questions = res.Result state.visitTaskList[index].questionsInit = true state.visitTaskList[index].QuestionMarkInfoList = res.OtherInfo.QuestionMarkInfoList - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }).catch(() => { resolve() }) } @@ -338,7 +338,7 @@ const actions = { state.visitTaskList[index].Questions = res.Result state.visitTaskList[index].questionsInit = true state.visitTaskList[index].QuestionMarkInfoList = res.OtherInfo.QuestionMarkInfoList - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }).catch(() => { resolve() }) }) @@ -357,7 +357,7 @@ const actions = { var list = getQuestions(res.Result.SinglePage) state.visitTaskList[index].ReadingQuestions = list state.visitTaskList[index].readingQuestionsInit = true - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }).catch(() => { resolve() }) } @@ -374,7 +374,7 @@ const actions = { var list = getQuestions(res.Result.SinglePage) state.visitTaskList[index].ReadingQuestions = list state.visitTaskList[index].readingQuestionsInit = true - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }).catch(() => { resolve() }) }) @@ -385,7 +385,7 @@ const actions = { if (index > -1) { state.visitTaskList[index].ReadingQuestions = obj.questions } - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }) }, @@ -397,7 +397,7 @@ const actions = { questions = findQuestionAndAddLesion(questions, obj) state.visitTaskList[index].ReadingQuestions = questions } - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }) }, @@ -409,7 +409,7 @@ const actions = { questions = findQuestionAndUpdateLesion(questions, obj) state.visitTaskList[index].ReadingQuestions = questions } - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }) }, @@ -421,7 +421,7 @@ const actions = { questions = findQuestionAndRemoveLesion(questions, obj) state.visitTaskList[index].ReadingQuestions = questions } - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }) }, @@ -442,7 +442,7 @@ const actions = { }) state.visitTaskList[index].MeasureData = arr state.visitTaskList[index].measureDataInit = true - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }).catch(() => { resolve() }) } @@ -469,7 +469,7 @@ const actions = { }) state.visitTaskList[index].MeasureData = arr state.visitTaskList[index].measureDataInit = true - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }).catch(() => { resolve() }) } @@ -509,7 +509,7 @@ const actions = { await deleteCustomTag(obj.questionInfo.Id) state.visitTaskList[index].MeasureData = measureData } - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }) }, @@ -527,7 +527,7 @@ const actions = { }) state.visitTaskList[index].MeasureData = arr state.visitTaskList[index].measureDataInit = true - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }).catch(() => { resolve() }) }) @@ -546,7 +546,7 @@ const actions = { }) state.visitTaskList[index].MeasureData = arr state.visitTaskList[index].measureDataInit = true - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }).catch(() => { resolve() }) }) @@ -578,7 +578,7 @@ const actions = { state.visitTaskList[index].MeasureData.push(obj.data) console.log('新增标记成功') } - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') console.log(state.visitTaskList) resolve() }) @@ -600,7 +600,7 @@ const actions = { state.visitTaskList[index].MeasureData.push(obj.data) console.log('新增标记成功') } - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }) }, @@ -620,7 +620,7 @@ const actions = { } state.visitTaskList[index].MeasureData = measureData } - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }) }, @@ -639,7 +639,7 @@ const actions = { Id: obj.Id }) console.log('新增标记成功') - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() } var idx = measureData.findIndex(item => item.Id === obj.questionInfo.Id) @@ -655,7 +655,7 @@ const actions = { state.visitTaskList[index].MeasureData.push(obj.MeasureData.data) console.log('新增标记成功') } - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }) }, @@ -700,7 +700,7 @@ const actions = { // state.visitTaskList[index].MeasureData = measureData // } - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }) }, @@ -713,7 +713,7 @@ const actions = { measureData[idx].MeasureData.data.status = obj.status state.visitTaskList[index].MeasureData = measureData } - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }) }, @@ -788,7 +788,7 @@ const actions = { }) state.visitTaskList[index].StudyList = studyList state.visitTaskList[index].studyListInit = true - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }).catch(() => { resolve() }) } @@ -821,7 +821,7 @@ const actions = { } } state.visitTaskList[index].StudyList = studyList - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') } else { // console.log(obj) } @@ -841,7 +841,7 @@ const actions = { studyList[obj.studyIndex].SeriesList[obj.seriesIndex].loadStatus = true } state.visitTaskList[obj.visitTaskindex].StudyList = studyList - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') } resolve() }) @@ -849,7 +849,7 @@ const actions = { setStatus({ state }, obj) { var index = state.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId) state.visitTaskList[index].IsInit = true - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') }, setActiveSeries({ state }, series) { return new Promise(resolve => { @@ -891,7 +891,7 @@ const actions = { state.visitTaskList[index].QuestionMarkInfoList.push(obj.data) console.log('新增标记成功') } - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }) }, @@ -907,7 +907,7 @@ const actions = { } state.visitTaskList[index].QuestionMarkInfoList = measureData } - sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') + // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') resolve() }) } From d9fd181bae085cccabf49dbcdb0d4bca3a10ed6c Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Wed, 29 May 2024 17:34:30 +0800 Subject: [PATCH 11/22] =?UTF-8?q?=E7=BE=8E=E5=9B=BD=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.usa | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.usa b/.env.usa index b1d35930..0ea8fd57 100644 --- a/.env.usa +++ b/.env.usa @@ -2,7 +2,7 @@ ENV = 'production' NODE_ENV = 'production' # base public path -VUE_APP_BASE_PATH = 'https://ei-code-prod.s3.amazonaws.com/2024-04-29/' +VUE_APP_BASE_PATH = 'https://ei-code-prod.s3.amazonaws.com/2024-05-29/' # 是否开启登陆限制 true:是 false:否 VUE_APP_LOGIN_FOR_PERMISSION = false From 08c8d49ae1c6d4902cf624d3b0368ca941e732c6 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Fri, 31 May 2024 09:48:07 +0800 Subject: [PATCH 12/22] =?UTF-8?q?=E9=98=85=E7=89=87=E6=8A=A5=E5=91=8A?= =?UTF-8?q?=E9=A1=B5=E5=9B=BD=E9=99=85=E5=8C=96=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/dicoms/components/ReportPage.vue | 16 +++++++++++++++- vue.config.js | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/views/trials/trials-panel/reading/dicoms/components/ReportPage.vue b/src/views/trials/trials-panel/reading/dicoms/components/ReportPage.vue index 2e9560ba..1929c7db 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/ReportPage.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/ReportPage.vue @@ -172,7 +172,8 @@ @change="evaluateReasonChange" /> -

{{ $t('trials:readingReport:message:msg6') }}{{ $fd('ImagingOverallAssessment_Lugano',tumorEvaluate) }}{{ $fd('OverallAssessment',tumorEvaluate) }}{{ $t('trials:readingReport:message:msg7') }}{{ $fd('ImagingOverallAssessment_Lugano',currentEvaluateResult) }}{{ $fd('OverallAssessment',currentEvaluateResult) }}{{ $t('trials:readingReport:message:msg8') }}

+

+

{{ $t('trials:readingReport:title:sysEvaluationRes') }}{{ $fd('ExistDisease',isExistDisease) }}{{ $t('trials:readingReport:message:msg1') }}

0) { this.setChild(i.Childrens) } @@ -573,6 +579,7 @@ export default { if (obj.key === this.pet5PSId) { this.setPet5PSCommentDisplay() this.setUptakeFormBaseline() + this.setfocalFDG() } }, setPet5PSCommentDisplay() { @@ -604,11 +611,19 @@ export default { } else if (this.questionForm[this.pet5PSId] < this.baseLinePET5PS) { this.questionForm[this.uptakeFromBaselineId] = '2' } + } else if (this.questionForm[this.pet5PSId] !== '-1' && this.questionForm[this.uptakeFromBaselineId] === '4') { + this.questionForm[this.uptakeFromBaselineId] = '' } else if (this.questionForm[this.pet5PSId] === '' || this.questionForm[this.pet5PSId] === null) { this.questionForm[this.uptakeFromBaselineId] = '' } } }, + setfocalFDG() { + console.log('setfocalFDG') + if (this.questionForm[this.pet5PSId] !== '-1' && this.questionForm[this.focalFDGId] === '1') { + this.questionForm[this.focalFDGId] = '' + } + }, setpet5PS() { console.log('setpet5PS') // 无需标记,自主选择 1分 From ab242991bdfc77445526a9b09b20195bb47d9e4a Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Fri, 31 May 2024 15:28:07 +0800 Subject: [PATCH 16/22] =?UTF-8?q?=E5=B1=82=E5=8E=9A=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=98=BE=E7=A4=BAbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dicom-show/dicom-study.vue | 5 +- .../dicoms/components/Fusion/QuestionItem.vue | 48 +++++++++++++------ 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/src/views/dicom-show/dicom-study.vue b/src/views/dicom-show/dicom-study.vue index 2aea62e2..b47c032b 100644 --- a/src/views/dicom-show/dicom-study.vue +++ b/src/views/dicom-show/dicom-study.vue @@ -264,7 +264,8 @@ export default { getInstanceList(seriesId).then(res => { if (!res.Result || (res.Result && res.Result.length === 0)) return var seriesInstanceUid = res.Result[0].SeriesInstanceUid - var sliceLocation = res.Result[0].SliceLocation + // var sliceLocation = res.Result[0].SliceLocation + var sliceThickness = res.Result[0].SliceThickness var isReading = res.Result[0].IsReading var isDeleted = res.Result[0].IsDeleted var seriesList = [] @@ -286,7 +287,7 @@ export default { seriesId: seriesId, seriesUid: seriesInstanceUid, seriesNumber: seriesNumber, - sliceThickness: sliceLocation, + sliceThickness: sliceThickness, modality: this.modality, description: this.description, isReading, diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/QuestionItem.vue b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/QuestionItem.vue index eee5f60a..15be4395 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/QuestionItem.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/QuestionItem.vue @@ -73,13 +73,23 @@ clearable @change="((val)=>{formItemChange(val, question)})" > - + + From f9d81aa7263d915eeed7df6421cfeb34bd394b7f Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Mon, 1 Jul 2024 16:19:55 +0800 Subject: [PATCH 17/22] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E9=98=85?= =?UTF-8?q?=E7=89=87=E5=AE=8C=E6=88=90=E5=90=8E=EF=BC=8C=E5=90=8E=E7=BB=AD?= =?UTF-8?q?=E5=8F=AF=E7=BB=A7=E7=BB=AD=E5=9C=A8=E9=98=85=E7=89=87=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=B7=BB=E5=8A=A0=E4=B8=B4=E6=97=B6=E6=A0=87=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/modules/reading.js | 10 +- src/views/dicom-show/dicom-study.vue | 4 +- .../dicoms/customize/CustomizeDicomCanvas.vue | 91 +- .../dicoms/customize/CustomizeDicomViewer.vue | 1319 +++++++++-------- .../customize/CustomizeMeasurementList.vue | 55 +- .../dicoms/tools/CircleRoi/CircleRoiTool.js | 453 ++++++ .../dicoms/tools/CircleRoi/getCircleCoords.js | 21 + 7 files changed, 1235 insertions(+), 718 deletions(-) create mode 100644 src/views/trials/trials-panel/reading/dicoms/tools/CircleRoi/CircleRoiTool.js create mode 100644 src/views/trials/trials-panel/reading/dicoms/tools/CircleRoi/getCircleCoords.js diff --git a/src/store/modules/reading.js b/src/store/modules/reading.js index cfc74e05..1467ddc9 100644 --- a/src/store/modules/reading.js +++ b/src/store/modules/reading.js @@ -499,7 +499,7 @@ const actions = { // var uuid = obj.measureData.data.uuid // var idx = measureData.findIndex(item => item.MeasureData && item.MeasureData.data && item.MeasureData.data.uuid === uuid) - console.log(obj, measureData) + // console.log(obj, measureData) var idx = measureData.findIndex(item => item.Id === obj.questionInfo.Id) console.log('idx', idx) if (idx > -1) { @@ -510,7 +510,9 @@ const actions = { measureData.splice(idx, 1) console.log('移除标记成功', idx) } - await deleteCustomTag(obj.questionInfo.Id) + if (obj.questionInfo.Id) { + await deleteCustomTag(obj.questionInfo.Id) + } state.visitTaskList[index].MeasureData = measureData } else if (obj.orderMarkName) { const i = measureData.findIndex(item => item.QuestionId === obj.questionId && item.OrderMarkName === obj.orderMarkName) @@ -523,7 +525,9 @@ const actions = { console.log('移除标记成功', i) } } - await deleteCustomTag(obj.questionInfo.Id) + if (obj.questionInfo.Id) { + await deleteCustomTag(obj.questionInfo.Id) + } state.visitTaskList[index].MeasureData = measureData } // sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '') diff --git a/src/views/dicom-show/dicom-study.vue b/src/views/dicom-show/dicom-study.vue index 59bc1e8b..b51e5315 100644 --- a/src/views/dicom-show/dicom-study.vue +++ b/src/views/dicom-show/dicom-study.vue @@ -225,8 +225,8 @@ export default { }, beforeDestroy() { requestPoolManager.stopTaskTimer() - window.removeEventListener('beforeunload', e => { - cornerstone.imageCache.purgeCache() + window.removeEventListener('beforeunload', e => { + cornerstone.imageCache.purgeCache() requestPoolManager.resetRequestPool() }) }, diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue index 94ca0017..4e754cae 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue @@ -13,7 +13,7 @@
- +
@@ -146,6 +146,7 @@ import LengthTool from '@/views/trials/trials-panel/reading/dicoms/tools/Length/ import BidirectionalTool from '@/views/trials/trials-panel/reading/dicoms/tools/Bidirectional/BidirectionalTool' import ArrowAnnotateTool from '@/views/trials/trials-panel/reading/dicoms/tools/ArrowAnnotate/ArrowAnnotateTool' import RectangleRoiTool from '@/views/trials/trials-panel/reading/dicoms/tools/RectangleRoi/RectangleRoiTool' +import CircleRoiTool from '@/views/trials/trials-panel/reading/dicoms/tools/CircleRoi/CircleRoiTool' // import OrientationMarkersTool from '@/views/trials/trials-panel/reading/dicoms/tools/OrientationMarkers/OrientationMarkersTool' import ScaleOverlayTool from '@/views/trials/trials-panel/reading/dicoms/tools/ScaleOverlay/ScaleOverlayTool' import getOrientationString from '@/views/trials/trials-panel/reading/dicoms/tools/OrientationMarkers/getOrientationString' @@ -257,7 +258,7 @@ export default { series: '', ToolStateManager: null, renderedMeasured: [], - measuredTools: ['Length', 'Bidirectional', 'ArrowAnnotate', 'RectangleRoi'], + measuredTools: ['Length', 'Bidirectional', 'ArrowAnnotate', 'RectangleRoi', 'CircleRoi'], measureData: [], selectedLesion: null, activeTool: 0, // 0:enable 1:passive 2:active @@ -297,8 +298,8 @@ export default { ], scrollSyncInfo: { offset: 0 }, - hideMeasureArr: [] - + hideMeasureArr: [], + enabledElement: null } }, computed: { @@ -398,7 +399,8 @@ export default { cornerstone.updateImage(this.canvas, true) }) DicomEvent.$on('updateImage', () => { - cornerstone.updateImage(this.canvas) + if (!this.canvas) return + this.updateImage() }) // this.canvas.addEventListener('keydown', event => { // event.preventDefault() @@ -541,7 +543,7 @@ export default { this.mousePosition.y = currentPoints.image.y + 1 this.mousePosition.mo = stats.mo this.mousePosition.suv = stats.suv - if (this.isFirstChangeTask && this.pointNearTool(e)) { + if (this.pointNearTool(e)) { e.stopImmediatePropagation() e.stopPropagation() e.preventDefault() @@ -550,18 +552,14 @@ export default { mouseUp(e) { console.log('mouseUp') - if (this.readingTaskState >= 2) return + // if (this.readingTaskState >= 2) return this.image = e.detail.image this.getToolStateInfo(e) }, mouseDown(e) { this.image = e.detail.image var pointNearTool = this.pointNearTool(e) - if (this.isFirstChangeTask && pointNearTool) { - e.stopImmediatePropagation() - e.stopPropagation() - e.preventDefault() - } else if (this.activeToolName === 'Length' || this.activeToolName === 'Bidirectional' && this.readingTaskState < 2) { + if (this.activeToolName === 'Length' || this.activeToolName === 'Bidirectional') { if (!e.detail.image.columnPixelSpacing || !e.detail.image.rowPixelSpacing) { // '该影像不具备测量长度所需的必要数据,不能进行长度测量。请选择其他工具进行标注。' this.$confirm(this.$t('trials:reading:warnning:msg56'), '', { @@ -574,6 +572,10 @@ export default { e.stopPropagation() e.preventDefault() } + } else if (pointNearTool) { + e.stopImmediatePropagation() + e.stopPropagation() + e.preventDefault() } }, pointNearTool(e) { @@ -600,8 +602,8 @@ export default { getDisabledMarks(measureDatas) { var arr = [] measureDatas.map(i => { - 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.MeasureData.data.remark) } }) return arr @@ -882,7 +884,9 @@ export default { } else if (this.activeTool === 1 && this.readingTaskState < 2) { cornerstoneTools.setToolPassiveForElement(element, data.MeasureData.type, { mouseButtonMask: 1 }) } else { - cornerstoneTools.setToolEnabledForElement(element, data.MeasureData.type, { mouseButtonMask: 1 }) + // cornerstoneTools.setToolEnabledForElement(element, data.MeasureData.type, { mouseButtonMask: 1 }) + cornerstoneTools.setToolPassiveForElement(element, data.MeasureData.type, { mouseButtonMask: 1 }) + } // console.log('renderMeasuredData', this.stack.frame) @@ -986,15 +990,14 @@ export default { if (idx > -1) { console.log('mouseClick') DicomEvent.$emit('setCollapseActive', this.measureData[idx]) - if (this.readingTaskState < 2) { const measureData = {} var markName = this.measureData[idx].OrderMarkName - if (this.activeToolName === 'Eraser') { - var questionInfo = this.measureData[idx] + if (this.activeToolName === 'Eraser' && this.disabledMarks.indexOf(markName) === -1) { + const questionInfo = this.measureData[idx] this.$emit('moveMeasureData', { measureData, questionInfo }) } if ((this.disabledMarks.indexOf(markName) === -1 || !this.disabledMarks) && this.activeToolName !== 'Eraser') { - var questionInfo = this.measureData[idx] + const questionInfo = this.measureData[idx] const canvas = this.canvas.querySelector('canvas') measureData.pictureBaseStr = canvas.toDataURL('image/png', 1) measureData.studyId = this.stack.studyId @@ -1010,7 +1013,7 @@ export default { measureData.data.active = false this.$emit('modifyMeasureData', { measureData, questionInfo }) } - } + break } } @@ -1049,11 +1052,7 @@ export default { var idx = this.visitTaskList.findIndex(i => i.VisitTaskId === dicomSeries.visitTaskId) this.stack.visitTaskNum = this.visitTaskList[idx].VisitTaskNum this.isFirstChangeTask = this.visitTaskList[idx].IsFirstChangeTask - if (this.isFirstChangeTask) { - this.disabledMarks = this.getDisabledMarks(this.visitTaskList[idx].MeasureData) - } else { - this.disabledMarks = [] - } + this.disabledMarks = this.getDisabledMarks(this.visitTaskList[idx].MeasureData) this.maxVistNum = this.visitTaskList[this.visitTaskList.length - 1].VisitTaskNum this.minVistNum = this.visitTaskList[0].VisitTaskNum @@ -1114,7 +1113,6 @@ export default { if (!this.toolState.initialized) { this.toolState.initialized = true const toolButtons = document.querySelectorAll('[data-tool]') - // const scope = this Array.from(toolButtons).forEach((toolBtn) => { // Add the tool @@ -1134,6 +1132,8 @@ export default { cornerstoneTools.addToolForElement(element, ArrowAnnotateTool, { configuration: { allowEmptyLabel: true, handleRadius: false, drawHandlesOnHover: true, hideHandlesIfMoving: true }}) } else if (toolName === 'RectangleRoi') { cornerstoneTools.addToolForElement(element, RectangleRoiTool, { configuration: { allowEmptyLabel: true, handleRadius: false, drawHandlesOnHover: true, hideHandlesIfMoving: true }}) + } else if (toolName === 'CircleRoi') { + cornerstoneTools.addToolForElement(element, CircleRoiTool, { configuration: { handleRadius: false, drawHandlesOnHover: true, hideHandlesIfMoving: true, digits: this.digitPlaces, drawHandles: true, showMinMax: true }}) } else { cornerstoneTools.addToolForElement(element, apiTool) } @@ -1221,8 +1221,8 @@ export default { if (this.dicomInfo.thick) { this.dicomInfo.thick = this.dicomInfo.thick.toFixed(2) } - let newImageIdIndex = this.stack.imageIds.findIndex(i=>i===imageId) - if(newImageIdIndex === -1) return + const newImageIdIndex = this.stack.imageIds.findIndex(i => i === imageId) + if (newImageIdIndex === -1) return this.stack.currentImageIdIndex = newImageIdIndex this.stack.imageIdIndex = newImageIdIndex this.series.imageIdIndex = newImageIdIndex @@ -1298,7 +1298,7 @@ export default { this.setMarkers() }, onMeasurementcompleted(e) { - if (this.readingTaskState >= 2) return + // if (this.readingTaskState >= 2) return var element = cornerstone.getEnabledElement(this.canvas) var viewport = element.viewport @@ -1311,7 +1311,7 @@ export default { var instanceId = imageInfo.instanceId var frame = imageInfo.frame this.stack.frame = !isNaN(parseInt(frame)) ? parseInt(frame) : 0 - if (e.detail.toolName === 'Length' || e.detail.toolName === 'ArrowAnnotate' || e.detail.toolName === 'RectangleRoi') { + if (e.detail.toolName === 'Length' || e.detail.toolName === 'ArrowAnnotate' || e.detail.toolName === 'RectangleRoi' || e.detail.toolName === 'CircleRoi') { const measureData = {} measureData.studyId = this.stack.studyId measureData.seriesId = this.stack.seriesId @@ -1326,6 +1326,7 @@ export default { const canvas = this.canvas.querySelector('canvas') measureData.pictureBaseStr = canvas.toDataURL('image/png', 1) + measureData.temporary = this.readingTaskState >= 2 this.$emit('setMeasureData', measureData) cornerstoneTools.setToolPassiveForElement(this.canvas, e.detail.toolName) } else if (e.detail.toolName === 'Bidirectional') { @@ -1342,6 +1343,7 @@ export default { measureData.wc = Math.round(viewport.voi.windowCenter) const canvas = this.canvas.querySelector('canvas') measureData.pictureBaseStr = canvas.toDataURL('image/png', 1) + measureData.temporary = this.readingTaskState >= 2 this.$emit('setMeasureData', measureData) cornerstoneTools.setToolPassiveForElement(this.canvas, e.detail.toolName) } else if (!e.detail.toolName) { @@ -1422,7 +1424,7 @@ export default { onMeasurementmodified(e) { // 移动 console.log('modified') - if (this.readingTaskState >= 2) return + // if (this.readingTaskState >= 2) return const { measurementData, toolType } = e.detail var element = cornerstone.getEnabledElement(this.canvas) var viewport = element.viewport @@ -1466,15 +1468,21 @@ export default { } }, updateImage(instanceId) { + if (!this.canvas) return var i = this.visitTaskList.findIndex(i => i.VisitTaskId === this.stack.visitTaskId) this.measureData = this.visitTaskList[i].MeasureData - const ToolStateManager = cornerstoneTools.globalImageIdSpecificToolStateManager - var element = cornerstone.getEnabledElement(this.canvas) + if (!element) return var { imageId } = element.image - ToolStateManager.clearImageIdToolState(imageId) - cornerstone.updateImage(element, true) + if (imageId) { + ToolStateManager.clearImageIdToolState(imageId) + let elements = cornerstone.getEnabledElementsByImageId(imageId) + elements.map(el=>{ + cornerstone.updateImage(el.element) + }) + } + // cornerstone.updateImage(element) }, toggleSeries(evt, type) { evt.stopImmediatePropagation() @@ -1756,20 +1764,19 @@ export default { this.activeToolName = toolName this.$nextTick(() => { // console.log(cornerstoneTools.isToolActiveForElement(this.canvas, 'Bidirectional')) - if (!cornerstoneTools.isToolActiveForElement(this.canvas, toolName)) { - cornerstoneTools.setToolActiveForElement(this.canvas, toolName, { - mouseButtonMask: 1 - }) - } + if (toolName === 'Zoom') { cornerstoneTools.setToolActiveForElement(this.canvas, 'Zoom', { mouseButtonMask: [1, 2] }) - } - if (toolName === 'Pan') { + } else if (toolName === 'Pan') { cornerstoneTools.setToolActiveForElement(this.canvas, 'Pan', { mouseButtonMask: [1, 4] }) + } else { + cornerstoneTools.setToolActiveForElement(this.canvas, toolName, { + mouseButtonMask: 1 + }) } }) }, 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 9856780e..ff58527e 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomViewer.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomViewer.vue @@ -106,8 +106,7 @@ v-if="item.val === 1" class="divider" content-position="center" - >{{ ` ${$t("trials:reading:title:preset")}` }} + >{{ ` ${$t("trials:reading:title:preset")}` }}

@@ -224,8 +223,7 @@ {{ rotate.label }} + >{{ rotate.label }} @@ -318,7 +316,7 @@

{{ tool.text }}

-
{{ tool.disabledReason }} +
{{ tool.disabledReason }}
{{ tool.text }}
@@ -445,10 +443,10 @@ placement="bottom" >