From 1ec8c81d0e173ccf9aa435c34f67b0511391cca0 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Mon, 1 Sep 2025 14:18:22 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=85=E7=89=87=E9=A1=B5=E7=AB=96=E5=B1=8F?= =?UTF-8?q?=E9=80=82=E9=85=8D=E3=80=81mrecist=E6=96=B0=E7=97=85=E7=81=B6?= =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/dicoms/components/DicomViewer.vue | 216 ++++++++++++------ .../components/MRecist/QuestionForm.vue | 17 +- .../reading/dicoms/components/ReadPage.vue | 207 ++++++++++------- 3 files changed, 286 insertions(+), 154 deletions(-) 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 09294b5..6aef7e3 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue @@ -367,7 +367,7 @@
-
+
-
-
- - - - - - -

- Developing... -

+
+
+
- - + +
+ + + + + + +

+ Developing... +

+
+ +
@@ -792,6 +797,12 @@ export default { default() { return 0 } + }, + studyShow: { + type: Boolean, + default() { + return true + } } }, data() { @@ -901,6 +912,9 @@ export default { ctSeries: [], petSeries: [], petctWindow: null, + + AspectRatio: 1, + listShow: true } }, @@ -1104,6 +1118,14 @@ export default { this.petctWindow.close() } }) + let windowWidth = document.documentElement.clientWidth; + let windowHeight = document.documentElement.clientHeight; + this.AspectRatio = windowWidth / windowHeight + window.onresize = () => { + let windowWidth = document.documentElement.clientWidth; + let windowHeight = document.documentElement.clientHeight; + this.AspectRatio = windowWidth / windowHeight + }; }, beforeDestroy() { DicomEvent.$off('updateImage') @@ -1125,8 +1147,13 @@ export default { this.petctWindow.close() } }) + window.onresize = null }, methods: { + clickShow() { + this.listShow = !this.listShow; + this.changeLayout() + }, async getWwcTpl() { // const loading = this.$loading({ fullscreen: true }) try { @@ -1804,11 +1831,15 @@ export default { // 设置画布大小 setCanvasStyle() { - this.canvasW = (window.innerWidth - 570) / this.layoutCol + 'px' - this.canvasH = (window.innerHeight - 130) / this.layoutRow + 'px' + let w = 570 + if (!this.studyShow) w -= 170 + if (!this.listShow) w -= 330 + this.canvasW = (window.innerWidth - w) / (this.AspectRatio < 1 ? this.layoutRow : this.layoutCol) + 'px' + this.canvasH = (window.innerHeight - 130) / (this.AspectRatio < 1 ? this.layoutCol : this.layoutRow) + 'px' }, // 切换布局 changeLayout(name) { + if (!name) name = this.layout ? this.layout : 'A' if (this.activeTool) { if (this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].isCurrentTask && this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].readingTaskState < 2) { this.$nextTick(() => { @@ -2576,8 +2607,28 @@ export default { // position: relative; display: flex; flex-direction: column; + transition: .5s; + position: relative; } + .list_btn { + position: absolute; + width: 25px; + height: 25px; + line-height: 25px; + text-align: center; + border: 1px solid #607d8b; + top: 0px; + left: -25px; + z-index: 99; + color: #d5d5d5; + background-color: #424242; + cursor: pointer; + } + .listHide { + width: 20px; + transition: .5s; + } .form-wrapper{ flex-grow: 1; height: 0; @@ -2713,5 +2764,20 @@ export default { } } } +.listBox-leave-active, +.listBox-enter-active { + transition: all 0.5s ease; +} +.listBox-leave-active, +.listBox-enter { + // width: 0px !important; + flex-grow: 0 !important; +} + +.listBox-leave, +.listBox-enter-active { + // width: 350px; + flex-grow: 1; +} diff --git a/src/views/trials/trials-panel/reading/dicoms/components/MRecist/QuestionForm.vue b/src/views/trials/trials-panel/reading/dicoms/components/MRecist/QuestionForm.vue index d2c87b6..1cc4895 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/MRecist/QuestionForm.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/MRecist/QuestionForm.vue @@ -483,6 +483,21 @@ export default { } if (question.QuestionMark === 21) { this.$set(this.questionForm, 'IntrahepaticLesion', this.questionForm[question.Id]) + if (this.isCurrentTaskAdd === 'True') { + const lesionOrgan = this.getQuestionVal(5) + const lesionLength = this.getQuestionVal(0) + const measureData = this.questionForm['MeasureData'] + if ((lesionOrgan === '肝脏' || lesionOrgan === 'Liver') && this.questionForm[question.Id]) { + if (!this.isBaseLineTask && (measureData.type === 'Length' && lesionLength >= 10)) { + const stateId = this.getQuestionId(7) + this.$set(this.questionForm, stateId, 0) + } + if (!this.isBaseLineTask && (measureData.type === 'Length' && lesionLength < 10)) { + const stateId = this.getQuestionId(7) + this.$set(this.questionForm, stateId, 1) + } + } + } } // saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断);2:已保存,信息完整 if (this.questionForm.RowId) { @@ -831,7 +846,7 @@ export default { loading.close() return } - console.log(lesionPart, measureData.type, lesionShort, '靶病灶部位为肝门淋巴结时,选择要求时短轴≥2cm') + // console.log(lesionPart, measureData.type, lesionShort, '靶病灶部位为肝门淋巴结时,选择要求时短轴≥2cm') if ((lesionPart === '肝门淋巴结' || lesionPart === 'Lymph node-hilum of liver') && !(measureData && measureData.type === 'Bidirectional' && lesionShort >= 20)) { // 靶病灶部位为肝门淋巴结时,选择要求时短轴≥2cm this.$confirm(this.$t('trials:mRecist:warnning:msg2'), { diff --git a/src/views/trials/trials-panel/reading/dicoms/components/ReadPage.vue b/src/views/trials/trials-panel/reading/dicoms/components/ReadPage.vue index 79779bd..4e4e712 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/ReadPage.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/ReadPage.vue @@ -1,65 +1,48 @@