From c04aaf2db6646aeadc6a68777b9e17518ad8cc00 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Thu, 11 Apr 2024 13:38:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=89pet=E5=BD=B1=E5=83=8F=E4=BD=86?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=9E=8D=E5=90=88/=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E6=B5=8B=E9=87=8F=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/trials.js | 14 ++++++++ src/store/getters.js | 1 + src/store/modules/reading.js | 7 +++- .../reading/dicoms/components/DicomViewer.vue | 16 +++++++++- .../components/Fusion/TableQuestionItem.vue | 3 +- .../components/IRecist/QuestionForm.vue | 2 +- .../dicoms/components/Lugano/QuestionForm.vue | 29 ++++++++++------- .../dicoms/components/QuestionItem.vue | 2 ++ .../reading/dicoms/components/Questions.vue | 32 +++++++++++++++++-- .../dicoms/components/Recist/QuestionForm.vue | 2 +- .../components/RecistBM/QuestionForm.vue | 2 +- 11 files changed, 89 insertions(+), 21 deletions(-) diff --git a/src/api/trials.js b/src/api/trials.js index 0b468434..fcf4e657 100644 --- a/src/api/trials.js +++ b/src/api/trials.js @@ -2810,7 +2810,21 @@ export function saveImageQuality(param) { data: param }) } +export function getIsSuvMaxLesion(param) { + return request({ + url: `/LuganoCalculate/getIsSuvMaxLesion`, + method: 'post', + data: param + }) +} +export function getCanChooseNotMerge(param) { + return request({ + url: `/LuganoCalculate/getCanChooseNotMerge`, + method: 'post', + data: param + }) +} export function saveTaskQuestion(saveQuestionType, param) { return request({ url: `/SaveTaskQuestion/${saveQuestionType}`, diff --git a/src/store/getters.js b/src/store/getters.js index 817ebfa3..e79727d6 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -40,6 +40,7 @@ const getters = { activeSeries: state => state.reading.activeSeries, lastCanvasTaskId: state => state.reading.lastCanvasTaskId, imageQuality: state => state.reading.imageQuality, + imageQualityIssues: state => state.reading.imageQualityIssues, language: state => state.lang.language, TotalNeedSignSystemDocCount: state => state.user.TotalNeedSignSystemDocCount, TotalNeedSignTrialDocCount: state => state.user.TotalNeedSignTrialDocCount, diff --git a/src/store/modules/reading.js b/src/store/modules/reading.js index c6491f63..467b4655 100644 --- a/src/store/modules/reading.js +++ b/src/store/modules/reading.js @@ -29,7 +29,8 @@ const getDefaultState = () => { currentReadingTaskState: 2, activeSeries: {}, lastCanvasTaskId: '', - imageQuality: null + imageQuality: null, + imageQualityIssues: null } } function getQuestions(questions) { @@ -183,6 +184,7 @@ const actions = { state.activeSeries = {} state.lastCanvasTaskId = '' state.imageQuality = null + state.imageQualityIssues = null resolve() }) }, @@ -875,6 +877,9 @@ const actions = { setImageQuality({ state }, imageQuality) { state.imageQuality = isNaN(parseInt(imageQuality)) ? null : parseInt(imageQuality) }, + setImageQualityIssues({ state }, imageQualityIssues) { + state.imageQualityIssues = isNaN(parseInt(imageQualityIssues)) ? null : parseInt(imageQualityIssues) + }, addQuestionMeasuredData({ state }, obj) { return new Promise(resolve => { var index = state.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId) 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 e155569b..151ba2b6 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue @@ -794,7 +794,7 @@ export default { }, computed: { - ...mapGetters(['visitTaskList', 'currentReadingTaskState', 'lastCanvasTaskId']) + ...mapGetters(['visitTaskList', 'currentReadingTaskState', 'lastCanvasTaskId', 'imageQualityIssues']) }, watch: { currentReadingTaskState: { @@ -840,6 +840,10 @@ export default { this.studyList = studyList } } + }, + imageQualityIssues: { + immediate: true, + handler(v) {} } }, @@ -961,6 +965,11 @@ export default { this.petctWindow.close() } }) + DicomEvent.$on('closePetct', () => { + if (this.petctWindow) { + this.petctWindow.close() + } + }) window.addEventListener('beforeunload', () => { if (this.petctWindow) { this.petctWindow.close() @@ -978,6 +987,7 @@ export default { DicomEvent.$off('readingPageUpdate') DicomEvent.$off('setReadingState') DicomEvent.$off('reload') + DicomEvent.$off('closePetct') if (this.petctWindow) { this.petctWindow.close() } @@ -1966,6 +1976,10 @@ export default { this.$alert(this.$t('components:uploadvideo:message:xf4')) return } + if (this.imageQualityIssues && parseInt(this.imageQualityIssues) === 6) { + this.$alert(this.$t('trials:lugano:message:fusionWarn')) + return + } const i = this.activeTaskInfo.visitTaskIndex if (i < 0) return if (this.studyList.length > 0) { diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/TableQuestionItem.vue b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/TableQuestionItem.vue index 3e6b7a8a..d23dc4c2 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/TableQuestionItem.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/TableQuestionItem.vue @@ -828,7 +828,7 @@ export default { // 普通靶病灶:长径大于10mm且不小于2倍层厚(基线校验) // 淋巴结靶病灶:短径大于15mm且不小于2倍层厚(基线校验) var picturePath = '' - if (val && otherMeasureData) { + if (val && otherMeasureData && this.questionForm.IsDicomReading) { var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val) picturePath = pictureObj.isSuccess ? this.$getObjectName(pictureObj.result.url) : '' } @@ -842,6 +842,7 @@ export default { } } var params = { + computationTrigger: -3, questionId: this.parentQsId, rowId: this.questionForm.RowId, rowIndex: this.answers.RowIndex, diff --git a/src/views/trials/trials-panel/reading/dicoms/components/IRecist/QuestionForm.vue b/src/views/trials/trials-panel/reading/dicoms/components/IRecist/QuestionForm.vue index 300cceac..624016e5 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/IRecist/QuestionForm.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/IRecist/QuestionForm.vue @@ -1962,7 +1962,7 @@ export default { // 普通靶病灶:长径大于10mm且不小于2倍层厚(基线校验) // 淋巴结靶病灶:短径大于15mm且不小于2倍层厚(基线校验) var picturePath = '' - if (val && measureData) { + if (val && measureData && this.questionForm.IsDicomReading) { var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val) picturePath = pictureObj.isSuccess ? this.$getObjectName(pictureObj.result.url) : '' } diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Lugano/QuestionForm.vue b/src/views/trials/trials-panel/reading/dicoms/components/Lugano/QuestionForm.vue index 0e1d6d8d..ca2d94f0 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Lugano/QuestionForm.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Lugano/QuestionForm.vue @@ -5,7 +5,7 @@ v-loading="loading" :model="questionForm" size="mini" - class="measurement-form" + class="measurement-form" >
@@ -179,7 +179,7 @@