From 65b9cff361caf46c60d4c0dbe3feef125aadf4c3 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Thu, 18 Jul 2024 11:14:01 +0800 Subject: [PATCH 01/12] =?UTF-8?q?Lugano=E6=A0=87=E5=87=86=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=87=8D=E7=BD=AE=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/dicoms/components/DicomViewer.vue | 4 + .../dicoms/components/Fusion/PetCt.vue | 68 +- .../dicoms/components/Fusion/Questions.vue | 217 +-- .../components/Fusion/TableQuestionItem.vue | 232 +-- .../components/IRecist/QuestionList.vue | 27 +- .../dicoms/components/Lugano/QuestionForm.vue | 1457 ++++++++--------- .../dicoms/components/Lugano/QuestionList.vue | 135 +- .../dicoms/components/PCWG/QuestionList.vue | 27 +- .../reading/dicoms/components/Questions.vue | 12 - .../dicoms/components/Recist/QuestionList.vue | 27 +- .../components/RecistBM/QuestionList.vue | 65 +- 11 files changed, 1157 insertions(+), 1114 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 b2453258..f085022f 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue @@ -1021,6 +1021,10 @@ export default { if (!this.petctWindow) return this.petctWindow.postMessage({ type: 'readingPageUpdate', data: data }, window.location) }) + DicomEvent.$on('resetPage', () => { + if (!this.petctWindow) return + this.petctWindow.postMessage({ type: 'resetPage' }, window.location) + }) DicomEvent.$on('setReadingState', (data) => { if (!this.petctWindow) return this.petctWindow.postMessage({ type: 'setReadingState', data: data }, window.location) 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 c251c89a..9ca41a88 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 @@ -798,17 +798,17 @@ export default { var imageIds = [] var instanceList = [] series.InstanceInfoList.forEach(instance => { - if (instance.NumberOfFrames && instance.NumberOfFrames > 1) { - for (let i = 0; i < instance.NumberOfFrames; i++) { - const imageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${instance.Path}?frame=${i}` - imageIds.push(imageId) - } - } else { - const imageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${instance.Path}` + if (instance.NumberOfFrames && instance.NumberOfFrames > 1) { + for (let i = 0; i < instance.NumberOfFrames; i++) { + const imageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${instance.Path}?frame=${i}` imageIds.push(imageId) } - instanceList.push(instance.Id) - }) + } else { + const imageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${instance.Path}` + imageIds.push(imageId) + } + instanceList.push(instance.Id) + }) resolve({ imageIds: imageIds, instanceList: instanceList, @@ -2149,7 +2149,49 @@ export default { this.screenshotWindow.close() } }, + async clearAnnotations() { + const viewportIds = ['PT_AXIAL', 'CT_AXIAL', 'FUSION_AXIAL'] + viewportIds.map(v => { + const viewport = renderingEngine.getViewport(v) + if (viewport) { + var annotations = annotation.state.getAnnotations('CircleROI', viewport.element) + + if (annotations && annotations.length > 0) { + annotations.map(i => { + if (i.metadata.toolName === 'CircleROI') { + annotation.state.removeAnnotation(i.annotationUID) + } + }) + } + } + viewport.render() + }) + try { + const visitTaskId = this.$route.query.visitTaskId + const res = await getTableAnswerRowInfoList(visitTaskId) + if (res.IsSuccess) { + var arr = [] + res.Result.forEach(el => { + if (el.OtherMeasureData) { + el.OtherMeasureData = JSON.parse(el.OtherMeasureData) + el.OtherMeasureData.invalidated = false + if (this.readingTaskState === 2) { + el.OtherMeasureData.isLocked = true + } + el.OtherMeasureData.data.remark = el.OrderMarkName + const viewport = renderingEngine.getViewport('PT_AXIAL') + annotation.state.addAnnotation(el.OtherMeasureData, viewport.element) + } + arr.push(el) + }) + this.measureDatas = arr + } + } catch (e) { + + } + }, async receiveMsg(event) { + console.log(event.data.type) if (event.data.type === 'readingPageUpdate') { // this.$refs['questions'].initList() this.$refs['tableQuestions'].initList(true) @@ -2171,6 +2213,14 @@ export default { FusionEvent.$emit('closeHistoryScreenshot') window.close() } + } else if (event.data.type === 'resetPage') { + if (this.screenshotWindow) { + this.screenshotWindow.close() + } + this.$refs['tableQuestions'].initList(true) + this.$refs['questions'].initList(true) + this.isLocate = true + this.clearAnnotations() } }, startTimer() { diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/Questions.vue b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/Questions.vue index ddb2848e..cce388e7 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/Questions.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/Questions.vue @@ -14,7 +14,7 @@ :question-form="questionForm" :reading-task-state="readingTaskState" :visit-task-id="visitTaskId" - :pet5PS="questionForm[pet5PSId]" + :pet5p-s="questionForm[pet5PSId]" :lung-is-inside-volume="lungIsInsideVolume" :liver-is-inside-volume="liverIsInsideVolume" @setFormItemData="setFormItemData" @@ -163,42 +163,48 @@ export default { } this.initList(true) }, - initList(isInit) { + async initList(isInit) { this.loading = true - var params = { - trialId: this.trialId, - visitTaskId: this.visitTaskId, - questionClassify: 0 - } - getDicomReadingQuestionAnswer(params).then(res => { - var questions = res.Result + try { + const params = { + trialId: this.trialId, + visitTaskId: this.visitTaskId, + questionClassify: 0 + } + const res = await getDicomReadingQuestionAnswer(params) + if (res.IsSuccess) { + const questions = res.Result - questions.map((v) => { - v.IsBaseLineTask = this.isBaseLineTask - if (v.Type === 'group' && v.Childrens.length === 0) return - if (!v.IsPage && v.Type !== 'group' && v.Type !== 'summary') { - this.$set(this.questionForm, v.Id, v.Answer ? v.Answer : null) - } - if (v.Childrens.length > 0) { - this.setChild(v.Childrens) - } - }) - this.questions = questions - this.setPet5PSCommentDisplay() - this.measurements = [] - res.OtherInfo.QuestionMarkInfoList.forEach(i => { - if (i.OtherMeasureData) { - i.OtherMeasureData = JSON.parse(i.OtherMeasureData) - if (i.QuestionType === 51 && isInit) { - this.liverRender = false - } else if (i.QuestionType === 52 && isInit) { - this.lungRender = false + questions.map((v) => { + v.IsBaseLineTask = this.isBaseLineTask + if (v.Type === 'group' && v.Childrens.length === 0) return + if (!v.IsPage && v.Type !== 'group' && v.Type !== 'summary') { + this.$set(this.questionForm, v.Id, v.Answer ? v.Answer : null) } - } - this.measurements.push(i) - }) + if (v.Childrens.length > 0) { + this.setChild(v.Childrens) + } + }) + this.questions = questions + this.setPet5PSCommentDisplay() + this.measurements = [] + res.OtherInfo.QuestionMarkInfoList.forEach(i => { + if (i.OtherMeasureData) { + i.OtherMeasureData = JSON.parse(i.OtherMeasureData) + if (i.QuestionType === 51 && isInit) { + this.liverRender = false + } else if (i.QuestionType === 52 && isInit) { + this.lungRender = false + } + } + this.measurements.push(i) + }) + } this.loading = false - }).catch(() => { this.loading = false }) + } catch (e) { + console.log(e) + this.loading = false + } }, setChild(obj) { obj.forEach(i => { @@ -263,37 +269,28 @@ export default { // } }) }, - saveQuestionsForm() { + async saveQuestionsForm() { this.loading = true - var answers = [] - for (const k in this.questionForm) { - answers.push({ id: k, answer: this.questionForm[k] }) - } - // var questionMarkInfoList = [] - // this.measurements.forEach(item => { - // var i = Object.assign({}, item) - // if (i.OtherMeasureData) { - // for (const k in i.OtherMeasureData.data.cachedStats) { - // i.OtherMeasureData.data.cachedStats[k].pointsInShape = [] - // } - // i.OtherMeasureData = JSON.stringify(i.OtherMeasureData) - // } - - // questionMarkInfoList.push(i) - // }) - var params = { - visitTaskId: this.visitTaskId, - answers: answers - // questionMarkInfoList - } - saveTaskQuestion(1, params).then(async res => { - window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location) + try { + var answers = [] + for (const k in this.questionForm) { + answers.push({ id: k, answer: this.questionForm[k] }) + } + var params = { + visitTaskId: this.visitTaskId, + answers: answers + } + const res = await saveTaskQuestion(1, params) + if (res.IsSuccess) { + window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location) + this.loading = false + this.questionFormChangeState = false + this.$message({ message: this.$t('common:message:savedSuccessfully'), type: 'success', duration: 2000 }) + } + } catch (e) { + console.log(e) this.loading = false - this.questionFormChangeState = false - this.$message({ message: this.$t('common:message:savedSuccessfully'), type: 'success', duration: 2000 }) - }).catch(() => { - this.loading = false - }) + } }, checkAnnotationStatus(obj) { for (let i = 0; i < obj.length; i++) { @@ -422,21 +419,27 @@ export default { break } } - var params = { - visitTaskId: this.visitTaskId, - answers, - questionMarkInfoList + try { + var params = { + visitTaskId: this.visitTaskId, + answers, + questionMarkInfoList + } + const qsType = question.QuestionType === 51 ? 2 : question.QuestionType === 52 ? 3 : null + + const res = await saveTaskQuestion(qsType, params) + if (res.IsSuccess) { + this.$set(question, 'SaveEnum', 0) + window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location) + loading.close() + this.$message({ message: this.$t('common:message:savedSuccessfully'), type: 'success', duration: 2000 }) + this.resetSuvQuestions(1) + } + loading.close() + } catch (e) { + console.log(e) + loading.close() } - const qsType = question.QuestionType === 51 ? 2 : question.QuestionType === 52 ? 3 : null - saveTaskQuestion(qsType, params).then(async res => { - this.$set(question, 'SaveEnum', 0) - window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location) - loading.close() - this.$message({ message: this.$t('common:message:savedSuccessfully'), type: 'success', duration: 2000 }) - this.resetSuvQuestions(1) - }).catch(() => { - loading.close() - }) }) }, viewAnnotations(question) { @@ -622,7 +625,7 @@ export default { console.log('setfocalFDG') if (this.questionForm[this.pet5PSId] !== '-1' && this.questionForm[this.focalFDGId] === '1') { this.questionForm[this.focalFDGId] = '' - } + } }, setpet5PS() { console.log('setpet5PS') @@ -654,40 +657,38 @@ export default { return '' } }, - resetSuvQuestions(type = 0) { + async resetSuvQuestions(type = 0) { this.loading = true - var params = { - trialId: this.trialId, - visitTaskId: this.visitTaskId, - questionClassify: 0 - } - getDicomReadingQuestionAnswer(params).then(res => { - var questions = res.Result - questions.map((v) => { - if (v.Type === 'group' && v.Childrens.length === 0) return - // if (!v.IsPage && v.Type !== 'group' && v.Type !== 'summary') { - // this.$set(this.questionForm, v.Id, v.Answer ? v.Answer : null) - // } - if (v.Childrens.length > 0) { - this.setSuvChild(v.Childrens, type) - } - // var pet5PS = this.setpet5PS() - // this.questionForm[this.pet5PSId] = pet5PS - // this.calculatePet5PS = pet5PS - // this.setPet5PSCommentDisplay() - // this.setUptakeFormBaseline() - }) - for (let i = 0; i < this.questions[0].Childrens[0].Childrens.length; i++) { - if (this.questions[0].Childrens[0].Childrens[i].QuestionType === 59) { - this.questions[0].Childrens[0].Childrens[i].ShowQuestion = 2 - this.questions[0].Childrens[0].Childrens[i].IsRequired = 3 - this.questionForm[this.pet5PSCommentsId] = '' - break - } + try { + const params = { + trialId: this.trialId, + visitTaskId: this.visitTaskId, + questionClassify: 0 + } + const res = await getDicomReadingQuestionAnswer(params) + if (res.IsSuccess) { + const questions = res.Result + questions.map((v) => { + if (v.Type === 'group' && v.Childrens.length === 0) return + if (v.Childrens.length > 0) { + this.setSuvChild(v.Childrens, type) + } + }) + for (let i = 0; i < this.questions[0].Childrens[0].Childrens.length; i++) { + if (this.questions[0].Childrens[0].Childrens[i].QuestionType === 59) { + this.questions[0].Childrens[0].Childrens[i].ShowQuestion = 2 + this.questions[0].Childrens[0].Childrens[i].IsRequired = 3 + this.questionForm[this.pet5PSCommentsId] = '' + break + } + } + this.questionFormChangeState = true } - this.questionFormChangeState = true this.loading = false - }).catch(() => { this.loading = false }) + } catch (e) { + console.log(e) + this.loading = false + } }, setSuvChild(obj, type) { obj.forEach(i => { 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 0fd43d8b..f16cbf50 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 @@ -316,7 +316,7 @@ export default { this.$set(this.questionForm, 'OrganInfoId', this.answers.OrganInfoId ? this.answers.OrganInfoId : '') // saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断);2:已保存,信息完整 - var lesionState = this.getQuestionVal(7) + // var lesionState = this.getQuestionVal(7) if (!isRerender) { if (this.questionForm.RowId) { this.$set(this.questionForm, 'saveTypeEnum', 2) @@ -625,7 +625,7 @@ export default { } } } - var lesionState = this.getQuestionVal(7) + // var lesionState = this.getQuestionVal(7) if (this.firstRenderAnnotation) { this.$set(this.questionForm, 'saveTypeEnum', 2) } else { @@ -871,75 +871,79 @@ export default { this.deleteInfo = null params.rowId = '' } - submitTableQuestion(params).then(async res => { - this.currentMarkTool = otherMeasureData ? otherMeasureData.type : '' - // saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断);2:已保存,信息完整 + try { + const res = await submitTableQuestion(params) + if (res.IsSuccess) { + this.currentMarkTool = otherMeasureData ? otherMeasureData.type : '' + this.$set(this.questionForm, 'saveTypeEnum', 2) + this.originalQuestionForm = { ...this.questionForm } + var isLymphLesion = this.getQuestionVal(2) + isLymphLesion = isLymphLesion ? parseInt(isLymphLesion) : null + var lesionOrgan = this.getQuestionVal(6) + this.$set(this.questionForm, 'RowId', res.Result.RowId) + const lesionPart = this.getQuestionVal(8) + const suvMax = this.getQuestionVal(20) + this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, suvMax, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm }) - this.$set(this.questionForm, 'saveTypeEnum', 2) - this.originalQuestionForm = { ...this.questionForm } - loading.close() - var isLymphLesion = this.getQuestionVal(2) - isLymphLesion = isLymphLesion ? parseInt(isLymphLesion) : null - var lesionOrgan = this.getQuestionVal(6) - this.$set(this.questionForm, 'RowId', res.Result.RowId) - const lesionPart = this.getQuestionVal(8) - const suvMax = this.getQuestionVal(20) - this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, suvMax, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm }) + FusionEvent.$emit('resetSuvQuestions') + window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location) + this.$emit('close') - // FusionEvent.$emit('getAnnotations') - FusionEvent.$emit('resetSuvQuestions') - window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location) - this.$emit('close') + this.$message({ message: this.$t('common:message:savedSuccessfully'), type: 'success', duration: 2000 }) + } loading.close() - this.$message({ message: this.$t('common:message:savedSuccessfully'), type: 'success', duration: 2000 }) - }).catch(() => { loading.close() }) + } catch (e) { + console.log(e) + loading.close() + } }) }) }, - handleDeleteMeasureData() { + async handleDeleteMeasureData() { // 是否确认清除标记? - this.$confirm(this.$t('trials:reading:warnning:msg47'), { - type: 'warning', - distinguishCancelAndClose: true - }) - .then(async() => { - this.organList = [] - await this.getOrganInfoList() - // 重置SUV - var suvId = this.getQuestionId(20) - this.$set(this.questionForm, suvId, '') - // saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断) - if (this.questionForm.RowId) { - this.$set(this.questionForm, 'saveTypeEnum', 1) - } else { - this.$set(this.questionForm, 'saveTypeEnum', 0) - } - FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData, type: 'clear' }) - // await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex }) + const confirm = await this.$confirm( + this.$t('trials:reading:warnning:msg47'), + { + type: 'warning', + distinguishCancelAndClose: true + } + ) + if (confirm !== 'confirm') return + this.organList = [] + await this.getOrganInfoList() + // 重置SUV + var suvId = this.getQuestionId(20) + this.$set(this.questionForm, suvId, '') + // saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断) + if (this.questionForm.RowId) { + this.$set(this.questionForm, 'saveTypeEnum', 1) + } else { + this.$set(this.questionForm, 'saveTypeEnum', 0) + } + FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData, type: 'clear' }) + // await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex }) - // Store.$emit('updateImage', this.questionForm.MeasureData.instanceId) - var isLymphLesion = this.getQuestionVal(2) - isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null - const lesionPart = this.getQuestionVal(8) - const lesionOrgan = this.getQuestionVal(6) + // Store.$emit('updateImage', this.questionForm.MeasureData.instanceId) + var isLymphLesion = this.getQuestionVal(2) + isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null + const lesionPart = this.getQuestionVal(8) + const lesionOrgan = this.getQuestionVal(6) - if (!this.questionForm.IsDicomReading) { + if (!this.questionForm.IsDicomReading) { - } - this.$set(this.questionForm, 'IsDicomReading', true) + } + this.$set(this.questionForm, 'IsDicomReading', true) - this.$set(this.questionForm, 'OtherMeasureData', '') - let anwsers = null - if (this.answers.measureObj) { - anwsers = Object.assign({ measureObj: '' }, this.questionForm) - } else { - anwsers = Object.assign({}, this.questionForm) - } - var suvMax = this.getQuestionVal(20) - this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, suvMax, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers }) - this.isInsideVolume = true - }) - .catch(() => {}) + this.$set(this.questionForm, 'OtherMeasureData', '') + let anwsers = null + if (this.answers.measureObj) { + anwsers = Object.assign({ measureObj: '' }, this.questionForm) + } else { + anwsers = Object.assign({}, this.questionForm) + } + var suvMax = this.getQuestionVal(20) + this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, suvMax, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers }) + this.isInsideVolume = true }, async clearMeasurement() { this.organList = [] @@ -975,65 +979,63 @@ export default { this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, suvMax, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers }) this.isInsideVolume = true }, - handleDelete() { - // 是否确认删除? - this.$confirm(this.$t('trials:reading:warnning:msg48'), { - type: 'warning', - distinguishCancelAndClose: true - }) - .then(async() => { - if (this.questionForm.RowId) { - const loading = this.$loading({ fullscreen: true }) - var param = { - visitTaskId: this.visitTaskId, - questionId: this.parentQsId, - rowId: this.questionForm.RowId - } - deleteReadingRowAnswer(param) - .then(async res => { - loading.close() - if (res.IsSuccess) { - // this.$emit('getReadingQuestionAndAnswer') - if (this.questionForm.IsDicomReading && this.questionForm.OtherMeasureData) { - // await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex }) - FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData, type: 'delete' }) - } - this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId }) - - // '删除成功!' - this.$message.success(this.$t('common:message:deletedSuccessfully')) - loading.close() - window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location) - } - }).catch(() => { loading.close() }) - } else { - // const loading = this.$loading({ fullscreen: true }) - // 移除新建病灶并关闭窗口 - if (this.questionForm.OtherMeasureData && this.questionForm.IsDicomReading) { - // await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex }) - FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData }) - } - this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId }) - // loading.close() - } - }) - }, - handleClose() { - if (!this.questionForm.RowId) { - // '当前病灶为新建病灶,未保存。如果关闭窗口,将会删除病灶信息,是否继续?' - this.$confirm(this.$t('trials:reading:warnning:msg49'), { + async handleDelete() { + const confirm = await this.$confirm( + this.$t('trials:reading:warnning:msg48'), + { type: 'warning', distinguishCancelAndClose: true - }) - .then(async() => { - // 移除新建病灶并关闭窗口 - if (this.questionForm.OtherMeasureData) { - FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData }) - // await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex }) + } + ) + if (confirm !== 'confirm') return + if (this.questionForm.RowId) { + const loading = this.$loading({ fullscreen: true }) + try { + var param = { + visitTaskId: this.visitTaskId, + questionId: this.parentQsId, + rowId: this.questionForm.RowId + } + const res = await deleteReadingRowAnswer(param) + if (res.IsSuccess) { + if (this.questionForm.IsDicomReading && this.questionForm.OtherMeasureData) { + FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData, type: 'delete' }) } this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId }) - }) - .catch(() => {}) + // '删除成功!' + this.$message.success(this.$t('common:message:deletedSuccessfully')) + loading.close() + window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location) + } + loading.close() + } catch (e) { + console.log(e) + loading.close() + } + } else { + // 移除新建病灶并关闭窗口 + if (this.questionForm.OtherMeasureData && this.questionForm.IsDicomReading) { + FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData }) + } + this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId }) + } + }, + async handleClose() { + if (!this.questionForm.RowId) { + // '当前病灶为新建病灶,未保存。如果关闭窗口,将会删除病灶信息,是否继续?' + const confirm = await this.$confirm( + this.$t('trials:reading:warnning:msg49'), + { + type: 'warning', + distinguishCancelAndClose: true + } + ) + if (confirm !== 'confirm') return + // 移除新建病灶并关闭窗口 + if (this.questionForm.OtherMeasureData) { + FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData }) + } + this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId }) } else { if (this.questionForm.saveTypeEnum === 1) { this.$emit('close') diff --git a/src/views/trials/trials-panel/reading/dicoms/components/IRecist/QuestionList.vue b/src/views/trials/trials-panel/reading/dicoms/components/IRecist/QuestionList.vue index 31bbc9d2..8ef8db80 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/IRecist/QuestionList.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/IRecist/QuestionList.vue @@ -1080,17 +1080,17 @@ export default { this.$refs['ecrf'].getQuestions(obj.visitTaskId) }, async resetMeasuredData() { + const confirm = await this.$confirm( + this.$t('trials:dicomReading:message:confirmReset1'), + this.$t('trials:dicomReading:message:confirmReset2'), + { + type: 'warning', + distinguishCancelAndClose: true + } + ) + if (confirm !== 'confirm') return + const loading = this.$loading({ fullscreen: true }) try { - const confirm = await this.$confirm( - this.$t('trials:dicomReading:message:confirmReset1'), - this.$t('trials:dicomReading:message:confirmReset2'), - { - type: 'warning', - distinguishCancelAndClose: true - } - ) - if (confirm !== 'confirm') return - this.loading = true const res = await resetReadingTask({ visitTaskId: this.visitTaskId }) this.loading = false if (res.IsSuccess) { @@ -1099,13 +1099,16 @@ export default { this.activeItem.activeRowIndex = null this.activeItem.activeCollapseId = null await this.getReadingQuestionAndAnswer(this.visitTaskId) - this.$refs['ecrf'].resetQSForm() + const triald = this.$router.currentRoute.query.trialId + await store.dispatch('reading/refreshDicomReadingQuestionAnswer', { trialId: triald, visitTaskId: this.visitTaskId }) + this.$refs['ecrf'].getQuestions(this.visitTaskId, true) DicomEvent.$emit('getMeasureData') DicomEvent.$emit('getReportInfo', true) DicomEvent.$emit('refreshStudyListMeasureData') } + loading.close() } catch (e) { - this.loading = false + loading.close() console.log(e) } }, 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 c123bdff..522abe26 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 @@ -436,34 +436,20 @@ export default { if (this.answers.measureObj) { await this.setMeasureData(this.answers.measureObj, true) } else { - // let isLymphLesion = this.getQuestionVal(2) - // isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null - // if (isLymphLesion === 1) { - // // 淋巴结类型 - // this.organList = [] - // await this.getOrganInfoList(1) - // } else if (isLymphLesion === 0) { - // this.organList = [] - // await this.getOrganInfoList(0) - // } else { - // this.organList = [] - // await this.getOrganInfoList() - // } this.organList = [] await this.getOrganInfoList() } // 首次分裂的病灶默认状态为空时,设置默认值为存在 - if (this.answers.IsFristAdd === 'True' && this.answers.SplitOrMergeType === '0' && isNaN(parseInt(this.getQuestionVal(7)))) { + if (this.answers.IsFristAdd === 'True' && this.answers.SplitOrMergeType === '0' && lesionState === '') { const stateId = this.getQuestionId(7) this.$set(this.questionForm, stateId, 0) var isLymphLesion = this.getQuestionVal(2) - isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null const lesionPart = this.getQuestionVal(8) const lesionOrgan = this.getQuestionVal(6) - const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : '' - const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : '' - const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : '' + const lesionLength = this.getQuestionVal(0) + const lesionShort = this.getQuestionVal(1) + const lesionState = this.getQuestionVal(7) this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm }) } if (this.lesionType === 0 && params) { @@ -479,7 +465,6 @@ export default { // 如果当前病灶状态为“疾病进展”,且满足疾病进展的条件,则状态不允许更改 var state = this.getQuestionVal(7)// 长径 - state = isNaN(parseInt(state)) ? 0 : parseInt(state) var ldi = this.getQuestionVal(0)// 长径 ldi = isNaN(parseFloat(ldi)) ? 0 : ldi var pddIncrease = this.getQuestionVal(17) // 相比最低点PPD增加百分比 @@ -671,24 +656,24 @@ export default { }) }, deleteLesionInfo() { - return new Promise((resolve, reject) => { + return new Promise(async(resolve, reject) => { const loading = this.$loading({ fullscreen: true }) var param = { visitTaskId: this.visitTaskId, questionId: this.parentQsId, rowId: this.questionForm.RowId } - deleteReadingRowAnswer(param) - .then(async res => { - if (res.IsSuccess) { - DicomEvent.$emit('getReportInfo', true) - } - loading.close() - resolve() - }).catch(() => { - loading.close() - reject() - }) + try { + const res = await deleteReadingRowAnswer(param) + if (res.IsSuccess) { + DicomEvent.$emit('getReportInfo', true) + } + loading.close() + resolve() + } catch (e) { + loading.close() + reject() + } }) }, async formItemChange(v, question) { @@ -717,12 +702,11 @@ export default { this.$set(this.questionForm, 'saveTypeEnum', 0) } var isLymphLesion = this.getQuestionVal(2) - isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null const lesionPart = this.getQuestionVal(8) const lesionOrgan = this.getQuestionVal(6) - const lesionLength = !isNaN(parseFloat(this.getQuestionVal(0))) ? this.getQuestionVal(0) : '' - const lesionShort = !isNaN(parseFloat(this.getQuestionVal(1))) ? this.getQuestionVal(1) : '' - const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : '' + const lesionLength = this.getQuestionVal(0) + const lesionShort = this.getQuestionVal(1) + const lesionState = this.getQuestionVal(7) this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm }) if (question.QuestionMark === 7) { @@ -772,46 +756,10 @@ export default { this.$set(this.questionForm, lengthObj.Id, '') this.$set(this.questionForm, shortObj.Id, '') } - // if (this.toolType !== measureData.type) { - // 获取器官问题 - // var organ = this.getQuestionVal(5) - - // 十字线工具 器官只能是淋巴结类型 - - // if (measureData.type === 'Bidirectional') { - // this.organList = [] - // this.getOrganInfoList(1) - // } else if (measureData.type === 'Length') { - // // 直径测量工具 且是靶病灶 器官只能是非淋巴结类型 - // this.organList = [] - // this.getOrganInfoList(0) - // } else { - // this.organList = [] - // this.getOrganInfoList() - // } var isLymphLesion = this.getQuestionVal(2) - isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null - // if (isLymphLesion === 1) { - // // 淋巴结类型 - // this.organList = [] - // this.getOrganInfoList(1) - // } else if (isLymphLesion === 0) { - // this.organList = [] - // this.getOrganInfoList(0) - // } else { - // this.organList = [] - // this.getOrganInfoList() - // } this.organList = [] this.getOrganInfoList() - // if (this.toolType) { - // this.questionForm[this.getQuestionId(8)] = '' - // this.questionForm[this.getQuestionId(5)] = '' - // this.questionForm[this.getQuestionId(6)] = '' - // this.questionForm[this.getQuestionId(2)] = '' - // } - var data = {} if (measureData.isDicomReading === false) { this.$set(this.questionForm, 'IsDicomReading', false) @@ -836,11 +784,7 @@ export default { const stateId = this.getQuestionId(7) this.$set(this.questionForm, stateId, 0) } - - // var isLymphLesion = this.getQuestionVal(2) - // isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null - var lesionLength = !isNaN(parseFloat(this.getQuestionVal(0))) ? this.getQuestionVal(0) : '' - // var lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : '' + var lesionLength = this.getQuestionVal(0) // 当前添加的新病灶不做处理 if (!(this.isCurrentTaskAdd === 'True') && this.lesionType === 0 && !this.isBaseLineTask && measureData.type === 'Bidirectional') { if (isLymphLesion) { @@ -869,7 +813,7 @@ export default { if (this.lesionType === 0) { this.calculatePPD() } - const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : '' + const lesionState = this.getQuestionVal(7) var status = '' if (lesionState) { if (this.lesionType === 0 && lesionState === 1) { @@ -914,14 +858,11 @@ export default { } this.$set(this.questionForm, 'MeasureData', measureData) var isLymph = this.getQuestionVal(2) - isLymph = !isNaN(parseInt(isLymph)) ? parseInt(isLymph) : null const lesionPart = this.getQuestionVal(8) const lesionOrgan = this.getQuestionVal(6) - // const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? Number(this.getQuestionVal(0)) : '' - // const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? Number(this.getQuestionVal(1)) : '' - const lesionL = !isNaN(parseFloat(this.getQuestionVal(0))) ? this.getQuestionVal(0) : '' - const lesionS = !isNaN(parseFloat(this.getQuestionVal(1))) ? this.getQuestionVal(1) : '' - var lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : '' + const lesionL = this.getQuestionVal(0) + const lesionS = this.getQuestionVal(1) + var lesionState = this.getQuestionVal(7) // // 状态为空时,非淋巴结靶病灶长径>0mm,自动给“存在”状态,如果淋巴结靶病灶短径>=10mm,自动给“存在”状态。淋巴结靶病灶在短径小于10mm时,用十字线标记测量时标记为消失 // if (!this.isBaseLineTask && this.lesionType === 0 && ((isLymphLesion === 0 && lesionLength > 0) || (isLymphLesion === 1 && lesionShort >= 10))) { // const stateId = this.getQuestionId(7) @@ -1081,27 +1022,31 @@ export default { } }, getQuestionVal(questionMark) { - var idx = this.questions.findIndex(i => i.QuestionMark === questionMark) + const idx = this.questions.findIndex(i => i.QuestionMark === questionMark) if (idx > -1) { - var questionId = this.questions[idx].Id - return this.questionForm[questionId] + const questionId = this.questions[idx].Id + const answer = this.questionForm[questionId] + if (isNaN(parseFloat(answer))) { + return answer + } else { + return parseFloat(answer) + } } else { return '' } }, filterState(arr) { if (!this.isBaseLineTask) { - var isLymphLesion = this.getQuestionVal(2) - isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null - const lesionLength = !isNaN(parseFloat(this.getQuestionVal(0))) ? this.getQuestionVal(0) : 0 - const lesionShort = !isNaN(parseFloat(this.getQuestionVal(1))) ? this.getQuestionVal(1) : 0 - const lastLesionL = !isNaN(parseFloat(this.answers.LastTaskMajorAxis)) ? parseFloat(this.answers.LastTaskMajorAxis) : 0 - const lastLesionS = !isNaN(parseFloat(this.answers.LastTaskShortAxis)) ? parseFloat(this.answers.LastTaskShortAxis) : 0 - if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionShort < lastLesionS) { + const isLymphLesion = this.getQuestionVal(2) + const lesionLength = this.getQuestionVal(0) + const lesionShort = this.getQuestionVal(1) + const bLesionL = !isNaN(parseInt(this.answers.LastTaskMajorAxis)) ? parseInt(this.answers.LastTaskMajorAxis) : 0 + const bLesionS = !isNaN(parseInt(this.answers.LastTaskShortAxis)) ? parseInt(this.answers.LastTaskShortAxis) : 0 + if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && this.questionForm.MeasureData.type === 'Bidirectional' && lesionShort < bLesionS) { arr = arr.filter(i => i.value !== 1) - } else if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionShort >= 10 && lesionShort > lastLesionS) { + } else if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && this.questionForm.MeasureData.type === 'Bidirectional' && lesionShort >= 10 && lesionShort > bLesionS) { arr = arr.filter(i => i.value === 0 || i.value === 1) - } else if (this.lesionType === 1 && isLymphLesion === 0 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionLength < lastLesionL) { + } else if (this.lesionType === 1 && isLymphLesion === 0 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionLength < bLesionL) { arr = arr.filter(i => i.value !== 1) } return arr @@ -1112,20 +1057,6 @@ export default { setDeleteInfo(deleteInfo) { this.deleteInfo = deleteInfo }, - deleteOldLesion(questionId, rowId) { - return new Promise((resolve, reject) => { - var param = { - visitTaskId: this.visitTaskId, - questionId: questionId, - rowId: rowId - } - deleteReadingRowAnswer(param) - .then(async res => { - resolve() - }).catch(() => { - }) - }) - }, // async uploadScreenshots(fileName, file) { // try { // file = this.convertBase64ToBlob(file) @@ -1179,630 +1110,630 @@ export default { // 生成Blob对象(文件对象) return new Blob([bytesCode], { type: imgtype }) }, - handleSave() { - console.log('handleSave') - this.$refs.measurementForm.validate(async valid => { - if (!valid) { - if(this.lesionType === 0){ - this.$refs['scrollPanel'].scrollTo({ top: 0, behavior: 'smooth' }) - } - return + async handleSave() { + const valid = await this.$refs.measurementForm.validate() + if (!valid) { + if (this.lesionType === 0) { + this.$refs['scrollPanel'].scrollTo({ top: 0, behavior: 'smooth' }) } - const loading = this.$loading({ fullscreen: true }) - var measureData = this.questionForm.MeasureData - var lesionState = this.getQuestionVal(7) - // var lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? Number(this.getQuestionVal(0)) : '' - // var lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? Number(this.getQuestionVal(1)) : '' - var lesionLength = !isNaN(parseFloat(this.getQuestionVal(0))) ? this.getQuestionVal(0) : '' - var lesionShort = !isNaN(parseFloat(this.getQuestionVal(1))) ? this.getQuestionVal(1) : '' - var lymphNodes = this.getQuestionVal(2) - lymphNodes = (lymphNodes !== null && lymphNodes !== undefined) ? parseInt(lymphNodes) : null - if (this.isBaseLineTask) { - // 基线 - // 靶病灶且状态为存在(0) - if (this.lesionType === 0 && lesionState === 0) { - if (lymphNodes === 1) { - // 评估状态为“存在”的淋巴结靶病灶,长径应大于15 mm,请使用长短径测量工具添加标记。 - if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 15 && lesionLength >= 2 * measureData.thick)) { - this.$confirm(this.$t('trials:lugano:message:validState1'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } else { - // 评估状态为“存在”的非淋巴结靶病灶,长径应大于10 mm,请使用长短径测量工具添加标记。 - if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 10 && lesionLength >= 2 * measureData.thick)) { - this.$confirm(this.$t('trials:lugano:message:validState2'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } + return + } + const loading = this.$loading({ fullscreen: true }) + var measureData = this.questionForm.MeasureData + var lesionState = this.getQuestionVal(7) + var lesionLength = this.getQuestionVal(0) + var lesionShort = this.getQuestionVal(1) + var lymphNodes = this.getQuestionVal(2) + lymphNodes = (lymphNodes !== null && lymphNodes !== undefined) ? parseInt(lymphNodes) : null + if (this.isBaseLineTask) { + // 基线 + // 靶病灶且状态为存在(0) + if (this.lesionType === 0 && lesionState === 0) { + if (lymphNodes === 1) { + // 评估状态为“存在”的淋巴结靶病灶,长径应大于15 mm,请使用长短径测量工具添加标记。 + if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 15 && lesionLength >= 2 * measureData.thick)) { + this.$confirm(this.$t('trials:lugano:message:validState1'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } else { + // 评估状态为“存在”的非淋巴结靶病灶,长径应大于10 mm,请使用长短径测量工具添加标记。 + if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 10 && lesionLength >= 2 * measureData.thick)) { + this.$confirm(this.$t('trials:lugano:message:validState2'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return } } + } - // 非靶病灶且状态为存在(0) - if (this.lesionType === 1 && lesionState === 0) { - if (lymphNodes === 1) { - if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) { + // 非靶病灶且状态为存在(0) + if (this.lesionType === 1 && lesionState === 0) { + if (lymphNodes === 1) { + if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) { // 评估状态为存在的淋巴结非靶病灶需使用长短径测量工具或矩形工具添加标记 - this.$confirm(this.$t('trials:reading:warnning:msg21'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } else { - if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) { + this.$confirm(this.$t('trials:reading:warnning:msg21'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } else { + if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) { // 评估状态为存在的非淋巴结非靶病灶需使用长短径测量工具或矩形工具添加标记 - this.$confirm(this.$t('trials:lugano:message:validState12'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } - } - } else { - // 非基线 - // 靶病灶且状态为存在(0) - if (this.lesionType === 0 && lesionState === 0) { - if (lymphNodes === 1) { - if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 15)) { - // 状态为“存在”的淋巴结靶病灶,长径应大于15 mm,请使用长短径测量工具添加标记。 - this.$confirm(this.$t('trials:lugano:message:validState3'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } else { - // 非淋巴结靶病灶 长短径测量工具 - if (!(measureData && measureData.type === 'Bidirectional')) { - // 状态为“存在”的非淋巴结靶病灶,长径应大于10 mm,请使用长短径测量工具添加标记。 - this.$confirm(this.$t('trials:lugano:message:validState4'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } - } - // 靶病灶且状态为太小(1) - if (this.lesionType === 0 && lesionState === 1) { - if (lymphNodes === 1) { - // 淋巴结靶病灶 必须使用箭头工具,长径、短径记录为5mm - if (!(measureData && (measureData.type === 'ArrowAnnotate'))) { - // 评估状态为太小的淋巴结靶病灶需使用箭头工具添加标记! - this.$confirm(this.$t('trials:reading:warnning:msg25'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } else if (measureData && measureData.type === 'ArrowAnnotate') { - const shortId = this.getQuestionId(1) - this.$set(this.questionForm, shortId, 5) - lesionShort = 5 - const lengthId = this.getQuestionId(0) - this.$set(this.questionForm, lengthId, 5) - lesionLength = 5 - } - } else { - // 非淋巴结靶病灶 箭头工具,长径记录为5mm - if (!(measureData && (measureData.type === 'ArrowAnnotate'))) { - // 评估状态为太小的非淋巴结靶病灶需使用箭头工具添加标记! - this.$confirm(this.$t('trials:reading:warnning:msg26'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } else if (measureData && measureData.type === 'ArrowAnnotate') { - const shortId = this.getQuestionId(1) - this.$set(this.questionForm, shortId, 5) - lesionShort = 5 - const lengthId = this.getQuestionId(0) - this.$set(this.questionForm, lengthId, 5) - lesionLength = 5 - } - } - } - - // 靶病灶且状态为无法评估(2) - if (this.lesionType === 0 && lesionState === 2) { - if (lymphNodes === 1) { - // 淋巴结靶病灶 不需要添加标记 - if (measureData) { - // 评估状态为无法评估的淋巴结靶病灶不需要添加标记! - this.$confirm(this.$t('trials:reading:warnning:msg27'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } else { - // 非淋巴结靶病灶 不需要添加标记 - if (measureData) { - // 状态为无法评估的非淋巴结靶病灶不需要添加标记! - this.$confirm(this.$t('trials:reading:warnning:msg28'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } - } - - // 靶病灶且状态为消失(3) - if (this.lesionType === 0 && lesionState === 3) { - if (lymphNodes === 1) { - // 淋巴结靶病灶 使用箭头工具 - if (!(measureData && (measureData.type === 'ArrowAnnotate' || measureData.type === 'Bidirectional'))) { - // 评估状态为消失的淋巴结靶病灶需使用箭头工具或长短径工具添加标记! - this.$confirm(this.$t('trials:lugano:message:validState5'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } else if (measureData && measureData.type === 'Bidirectional' && lesionLength > 15) { - // 评估状态为消失的淋巴结靶病灶,短径应不大于15mm! - this.$confirm(this.$t('trials:lugano:message:validState6'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - // if (!(measureData && (measureData.type === 'Bidirectional' && lesionShort < 10))) { - // // `评估状态为消失的淋巴结靶病灶需使用长短径工具添加标记,且短径需小于10mm!` - // this.$confirm(this.$t('trials:reading:warnning:msg29'), { - // type: 'warning', - // showCancelButton: false, - // callback: action => {} - // }) - // loading.close() - // return - // } - } else { - // 非淋巴结靶病灶 箭头工具 - if (!(measureData && measureData.type === 'ArrowAnnotate')) { - // 评估状态为消失的非淋巴结靶病灶只能使用箭头工具添加标记! - this.$confirm(this.$t('trials:reading:warnning:msg30'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - // else if (measureData && measureData.type === 'ArrowAnnotate') { - // const lId = this.getQuestionId(0) - // this.$set(this.questionForm, lId, 0) - // lesionLength = 0 - // } - } - if (measureData && measureData.type === 'ArrowAnnotate') { - const shortId = this.getQuestionId(1) - this.$set(this.questionForm, shortId, null) - lesionShort = null - const lengthId = this.getQuestionId(0) - this.$set(this.questionForm, lengthId, null) - lesionLength = null - } - } - - // 靶病灶且状态为疾病进展 (4) - if (this.lesionType === 0 && lesionState === 4) { - if (lymphNodes === 1) { - if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 15)) { - // 状态为“疾病进展”的淋巴结靶病灶,长径应大于15 mm,请使用长短径测量工具添加标记。 - this.$confirm(this.$t('trials:lugano:message:validState7'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } else { - // 非淋巴结靶病灶 直径测量工具 - if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 10)) { - // 状态为“疾病进展”的非淋巴结靶病灶,长径应大于10 mm,请使用长短径测量工具添加标记。 - this.$confirm(this.$t('trials:lugano:message:validState8'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } - } - - // 非靶病灶且状态为存在(0) - if (this.lesionType === 1 && lesionState === 0) { - if (lymphNodes === 1) { - // 淋巴结非靶病灶 必须使用长短径测量工具、箭头工具 - if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) { - // 评估状态为存在的淋巴结非靶病灶需使用长短径测量工具或箭头工具添加标记! - this.$confirm(this.$t('trials:reading:warnning:msg31'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } else { - // 非淋巴结非靶病灶 直径测量工具、箭头工具 - if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) { - // 评估状态为存在的非淋巴结非靶病灶需使用长短径测量工具或箭头工具添加标记! - this.$confirm(this.$t('trials:lugano:message:validState9'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } - } - - // 非靶病灶且状态为显著增大(1) - if (this.lesionType === 1 && lesionState === 1) { - if (lymphNodes === 1) { - // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具 - if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) { - // `评估状态为显著增大的淋巴结非靶病灶需使用长短径测量工具或矩形工具添加标记!` - this.$confirm(this.$t('trials:reading:warnning:msg33'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } else { - // 非淋巴结非靶病灶 矩形工具 - if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) { - // 评估状态为显著增大的非淋巴结非靶病灶需使用矩形工具添加标记! - this.$confirm(this.$t('trials:lugano:message:validState10'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } - } - - // 非靶病灶且状态为无法评估(2) - if (this.lesionType === 1 && lesionState === 2) { - if (lymphNodes === 1) { - // 淋巴结靶病灶 无标记 - if (measureData) { - // 评估状态为无法评估的淋巴结非靶病灶不需要添加标记! - this.$confirm(this.$t('trials:reading:warnning:msg35'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } else { - // 非淋巴结非靶病灶 无标记 - if (measureData) { - // 评估状态为无法评估的非淋巴结非靶病灶不需要添加标记! - this.$confirm(this.$t('trials:reading:warnning:msg36'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } - } - - // 非靶病灶且状态为消失(3) - if (this.lesionType === 1 && lesionState === 3) { - if (lymphNodes === 1) { - // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具 - if (!(measureData && (measureData.type === 'ArrowAnnotate'))) { - // 评估状态为消失的淋巴结非靶病灶需使用箭头工具添加标记! - this.$confirm(this.$t('trials:reading:warnning:msg37'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } else { - // 非淋巴结非靶病灶 箭头工具 - if (!(measureData && (measureData.type === 'ArrowAnnotate'))) { - // 评估状态为消失的非淋巴结非靶病灶需使用箭头工具添加标记! - this.$confirm(this.$t('trials:reading:warnning:msg38'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } - } - - // 新病灶且状态为存在(0) - if (this.lesionType === 2 && lesionState === 0) { - if (lymphNodes === 1) { - // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具 - if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'ArrowAnnotate'))) { - // 评估状态为存在的淋巴结新病灶需使用长短径测量工具或箭头工具添加标记! - this.$confirm(this.$t('trials:reading:warnning:msg39'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } else { - // 非淋巴结非靶病灶 直径测量工具、箭头工具 - if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'ArrowAnnotate'))) { - // 评估状态为存在的非淋巴结新病灶需使用长短径测量工具或箭头工具添加标记! - this.$confirm(this.$t('trials:lugano:message:validState11'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } - } - - // 新病灶且状态为疑似 不限制(1) - // if (this.lesionType === 2 && lesionState === 1) { - // if (lymphNodes === 1) { - // // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具 - // if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'ArrowAnnotate'))) { - // // 评估状态为疑似的淋巴结新病灶需使用长短径测量工具或箭头工具添加标记! - // this.$confirm(this.$t('trials:reading:warnning:msg41'), { - // type: 'warning', - // showCancelButton: false, - // callback: action => {} - // }) - // loading.close() - // return - // } - // } else { - // // 非淋巴结非靶病灶 直径测量工具、箭头工具 - // if (!(measureData && (measureData.type === 'Length' || measureData.type === 'ArrowAnnotate'))) { - // // `评估状态为疑似的非淋巴结新病灶需使用直径测量工具或箭头工具添加标记!` - // this.$confirm(this.$t('trials:reading:warnning:msg42'), { - // type: 'warning', - // showCancelButton: false, - // callback: action => {} - // }) - // loading.close() - // return - // } - // } - // } - - // 新病灶且状态为无法评估(2) - if (this.lesionType === 2 && lesionState === 2) { - if (lymphNodes === 1) { - // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具 - if (measureData) { - // `评估状态为无法评估的淋巴结新病灶不需要添加标记!` - this.$confirm(this.$t('trials:reading:warnning:msg43'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } else { - // 非淋巴结非靶病灶 直径测量工具、箭头工具 - if (measureData) { - // 评估状态为无法评估的非淋巴结新病灶不需要添加标记! - this.$confirm(this.$t('trials:reading:warnning:msg44'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } - } - - // 新病灶且状态为消失(3) - if (this.lesionType === 2 && lesionState === 3) { - if (lymphNodes === 1) { - // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具 - if (!(measureData && (measureData.type === 'ArrowAnnotate'))) { - // 评估状态为消失的淋巴结新病灶需使用箭头工具添加标记! - this.$confirm(this.$t('trials:reading:warnning:msg45'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } - } else { - // 箭头工具 - if (!(measureData && (measureData.type === 'ArrowAnnotate'))) { - // 评估状态为消失的非淋巴结新病灶需使用箭头工具添加标记! - this.$confirm(this.$t('trials:reading:warnning:msg46'), { - type: 'warning', - showCancelButton: false, - callback: action => {} - }) - loading.close() - return - } + this.$confirm(this.$t('trials:lugano:message:validState12'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return } } } - DicomEvent.$emit('getScreenshots', { questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex, visitTaskId: this.visitTaskId, lesionName: this.lesionMark, lesionType: this.lesionType, isMarked: !!measureData }, async val => { - // 靶病灶状态为0(存在)时,一定存在长径或者长短径(长径、十字线 ) - // 普通靶病灶:长径大于10mm且不小于2倍层厚(基线校验) - // 淋巴结靶病灶:短径大于15mm且不小于2倍层厚(基线校验) - var picturePath = '' - if (val && measureData && this.questionForm.IsDicomReading) { - var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val) - picturePath = pictureObj.isSuccess ? this.$getObjectName(pictureObj.result.url) : '' - } - var answers = [] - var reg = new RegExp(/^[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}$/) - for (const k in this.questionForm) { - if (reg.test(k)) { - if (answers.findIndex(i => i.tableQuestionId === k) === -1) { - answers.push({ tableQuestionId: k, answer: this.questionForm[k] }) - } + } else { + // 非基线 + // 靶病灶且状态为存在(0) + if (this.lesionType === 0 && lesionState === 0) { + if (lymphNodes === 1) { + if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 15)) { + // 状态为“存在”的淋巴结靶病灶,长径应大于15 mm,请使用长短径测量工具添加标记。 + this.$confirm(this.$t('trials:lugano:message:validState3'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } else { + // 非淋巴结靶病灶 长短径测量工具 + if (!(measureData && measureData.type === 'Bidirectional')) { + // 状态为“存在”的非淋巴结靶病灶,长径应大于10 mm,请使用长短径测量工具添加标记。 + this.$confirm(this.$t('trials:lugano:message:validState4'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return } } + } + // 靶病灶且状态为太小(1) + if (this.lesionType === 0 && lesionState === 1) { + if (lymphNodes === 1) { + // 淋巴结靶病灶 必须使用箭头工具,长径、短径记录为5mm + if (!(measureData && (measureData.type === 'ArrowAnnotate'))) { + // 评估状态为太小的淋巴结靶病灶需使用箭头工具添加标记! + this.$confirm(this.$t('trials:reading:warnning:msg25'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } else if (measureData && measureData.type === 'ArrowAnnotate') { + const shortId = this.getQuestionId(1) + this.$set(this.questionForm, shortId, 5) + lesionShort = 5 + const lengthId = this.getQuestionId(0) + this.$set(this.questionForm, lengthId, 5) + lesionLength = 5 + } + } else { + // 非淋巴结靶病灶 箭头工具,长径记录为5mm + if (!(measureData && (measureData.type === 'ArrowAnnotate'))) { + // 评估状态为太小的非淋巴结靶病灶需使用箭头工具添加标记! + this.$confirm(this.$t('trials:reading:warnning:msg26'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } else if (measureData && measureData.type === 'ArrowAnnotate') { + const shortId = this.getQuestionId(1) + this.$set(this.questionForm, shortId, 5) + lesionShort = 5 + const lengthId = this.getQuestionId(0) + this.$set(this.questionForm, lengthId, 5) + lesionLength = 5 + } + } + } - var params = { - computationTrigger: -2, - questionId: this.parentQsId, - rowId: this.questionForm.RowId, - rowIndex: this.answers.RowIndex, + // 靶病灶且状态为无法评估(2) + if (this.lesionType === 0 && lesionState === 2) { + if (lymphNodes === 1) { + // 淋巴结靶病灶 不需要添加标记 + if (measureData) { + // 评估状态为无法评估的淋巴结靶病灶不需要添加标记! + this.$confirm(this.$t('trials:reading:warnning:msg27'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } else { + // 非淋巴结靶病灶 不需要添加标记 + if (measureData) { + // 状态为无法评估的非淋巴结靶病灶不需要添加标记! + this.$confirm(this.$t('trials:reading:warnning:msg28'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } + } + + // 靶病灶且状态为消失(3) + if (this.lesionType === 0 && lesionState === 3) { + if (lymphNodes === 1) { + // 淋巴结靶病灶 使用箭头工具 + if (!(measureData && (measureData.type === 'ArrowAnnotate' || measureData.type === 'Bidirectional'))) { + // 评估状态为消失的淋巴结靶病灶需使用箭头工具或长短径工具添加标记! + this.$confirm(this.$t('trials:lugano:message:validState5'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } else if (measureData && measureData.type === 'Bidirectional' && lesionLength > 15) { + // 评估状态为消失的淋巴结靶病灶,短径应不大于15mm! + this.$confirm(this.$t('trials:lugano:message:validState6'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + // if (!(measureData && (measureData.type === 'Bidirectional' && lesionShort < 10))) { + // // `评估状态为消失的淋巴结靶病灶需使用长短径工具添加标记,且短径需小于10mm!` + // this.$confirm(this.$t('trials:reading:warnning:msg29'), { + // type: 'warning', + // showCancelButton: false, + // callback: action => {} + // }) + // loading.close() + // return + // } + } else { + // 非淋巴结靶病灶 箭头工具 + if (!(measureData && measureData.type === 'ArrowAnnotate')) { + // 评估状态为消失的非淋巴结靶病灶只能使用箭头工具添加标记! + this.$confirm(this.$t('trials:reading:warnning:msg30'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + // else if (measureData && measureData.type === 'ArrowAnnotate') { + // const lId = this.getQuestionId(0) + // this.$set(this.questionForm, lId, 0) + // lesionLength = 0 + // } + } + if (measureData && measureData.type === 'ArrowAnnotate') { + const shortId = this.getQuestionId(1) + this.$set(this.questionForm, shortId, null) + lesionShort = null + const lengthId = this.getQuestionId(0) + this.$set(this.questionForm, lengthId, null) + lesionLength = null + } + } + + // 靶病灶且状态为疾病进展 (4) + if (this.lesionType === 0 && lesionState === 4) { + if (lymphNodes === 1) { + if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 15)) { + // 状态为“疾病进展”的淋巴结靶病灶,长径应大于15 mm,请使用长短径测量工具添加标记。 + this.$confirm(this.$t('trials:lugano:message:validState7'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } else { + // 非淋巴结靶病灶 直径测量工具 + if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 10)) { + // 状态为“疾病进展”的非淋巴结靶病灶,长径应大于10 mm,请使用长短径测量工具添加标记。 + this.$confirm(this.$t('trials:lugano:message:validState8'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } + } + + // 非靶病灶且状态为存在(0) + if (this.lesionType === 1 && lesionState === 0) { + if (lymphNodes === 1) { + // 淋巴结非靶病灶 必须使用长短径测量工具、箭头工具 + if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) { + // 评估状态为存在的淋巴结非靶病灶需使用长短径测量工具或箭头工具添加标记! + this.$confirm(this.$t('trials:reading:warnning:msg31'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } else { + // 非淋巴结非靶病灶 直径测量工具、箭头工具 + if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) { + // 评估状态为存在的非淋巴结非靶病灶需使用长短径测量工具或箭头工具添加标记! + this.$confirm(this.$t('trials:lugano:message:validState9'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } + } + + // 非靶病灶且状态为显著增大(1) + if (this.lesionType === 1 && lesionState === 1) { + if (lymphNodes === 1) { + // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具 + if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) { + // `评估状态为显著增大的淋巴结非靶病灶需使用长短径测量工具或矩形工具添加标记!` + this.$confirm(this.$t('trials:reading:warnning:msg33'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } else { + // 非淋巴结非靶病灶 矩形工具 + if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) { + // 评估状态为显著增大的非淋巴结非靶病灶需使用矩形工具添加标记! + this.$confirm(this.$t('trials:lugano:message:validState10'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } + } + + // 非靶病灶且状态为无法评估(2) + if (this.lesionType === 1 && lesionState === 2) { + if (lymphNodes === 1) { + // 淋巴结靶病灶 无标记 + if (measureData) { + // 评估状态为无法评估的淋巴结非靶病灶不需要添加标记! + this.$confirm(this.$t('trials:reading:warnning:msg35'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } else { + // 非淋巴结非靶病灶 无标记 + if (measureData) { + // 评估状态为无法评估的非淋巴结非靶病灶不需要添加标记! + this.$confirm(this.$t('trials:reading:warnning:msg36'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } + } + + // 非靶病灶且状态为消失(3) + if (this.lesionType === 1 && lesionState === 3) { + if (lymphNodes === 1) { + // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具 + if (!(measureData && (measureData.type === 'ArrowAnnotate'))) { + // 评估状态为消失的淋巴结非靶病灶需使用箭头工具添加标记! + this.$confirm(this.$t('trials:reading:warnning:msg37'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } else { + // 非淋巴结非靶病灶 箭头工具 + if (!(measureData && (measureData.type === 'ArrowAnnotate'))) { + // 评估状态为消失的非淋巴结非靶病灶需使用箭头工具添加标记! + this.$confirm(this.$t('trials:reading:warnning:msg38'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } + } + + // 新病灶且状态为存在(0) + if (this.lesionType === 2 && lesionState === 0) { + if (lymphNodes === 1) { + // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具 + if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'ArrowAnnotate'))) { + // 评估状态为存在的淋巴结新病灶需使用长短径测量工具或箭头工具添加标记! + this.$confirm(this.$t('trials:reading:warnning:msg39'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } else { + // 非淋巴结非靶病灶 直径测量工具、箭头工具 + if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'ArrowAnnotate'))) { + // 评估状态为存在的非淋巴结新病灶需使用长短径测量工具或箭头工具添加标记! + this.$confirm(this.$t('trials:lugano:message:validState11'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } + } + + // 新病灶且状态为疑似 不限制(1) + // if (this.lesionType === 2 && lesionState === 1) { + // if (lymphNodes === 1) { + // // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具 + // if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'ArrowAnnotate'))) { + // // 评估状态为疑似的淋巴结新病灶需使用长短径测量工具或箭头工具添加标记! + // this.$confirm(this.$t('trials:reading:warnning:msg41'), { + // type: 'warning', + // showCancelButton: false, + // callback: action => {} + // }) + // loading.close() + // return + // } + // } else { + // // 非淋巴结非靶病灶 直径测量工具、箭头工具 + // if (!(measureData && (measureData.type === 'Length' || measureData.type === 'ArrowAnnotate'))) { + // // `评估状态为疑似的非淋巴结新病灶需使用直径测量工具或箭头工具添加标记!` + // this.$confirm(this.$t('trials:reading:warnning:msg42'), { + // type: 'warning', + // showCancelButton: false, + // callback: action => {} + // }) + // loading.close() + // return + // } + // } + // } + + // 新病灶且状态为无法评估(2) + if (this.lesionType === 2 && lesionState === 2) { + if (lymphNodes === 1) { + // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具 + if (measureData) { + // `评估状态为无法评估的淋巴结新病灶不需要添加标记!` + this.$confirm(this.$t('trials:reading:warnning:msg43'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } else { + // 非淋巴结非靶病灶 直径测量工具、箭头工具 + if (measureData) { + // 评估状态为无法评估的非淋巴结新病灶不需要添加标记! + this.$confirm(this.$t('trials:reading:warnning:msg44'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } + } + + // 新病灶且状态为消失(3) + if (this.lesionType === 2 && lesionState === 3) { + if (lymphNodes === 1) { + // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具 + if (!(measureData && (measureData.type === 'ArrowAnnotate'))) { + // 评估状态为消失的淋巴结新病灶需使用箭头工具添加标记! + this.$confirm(this.$t('trials:reading:warnning:msg45'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } else { + // 箭头工具 + if (!(measureData && (measureData.type === 'ArrowAnnotate'))) { + // 评估状态为消失的非淋巴结新病灶需使用箭头工具添加标记! + this.$confirm(this.$t('trials:reading:warnning:msg46'), { + type: 'warning', + showCancelButton: false, + callback: action => {} + }) + loading.close() + return + } + } + } + } + DicomEvent.$emit('getScreenshots', { questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex, visitTaskId: this.visitTaskId, lesionName: this.lesionMark, lesionType: this.lesionType, isMarked: !!measureData }, async val => { + // 靶病灶状态为0(存在)时,一定存在长径或者长短径(长径、十字线 ) + // 普通靶病灶:长径大于10mm且不小于2倍层厚(基线校验) + // 淋巴结靶病灶:短径大于15mm且不小于2倍层厚(基线校验) + var picturePath = '' + if (val && measureData && this.questionForm.IsDicomReading) { + var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val) + picturePath = pictureObj.isSuccess ? this.$getObjectName(pictureObj.result.url) : '' + } + var answers = [] + var reg = new RegExp(/^[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}$/) + for (const k in this.questionForm) { + if (reg.test(k)) { + if (answers.findIndex(i => i.tableQuestionId === k) === -1) { + answers.push({ tableQuestionId: k, answer: this.questionForm[k] }) + } + } + } + + var params = { + computationTrigger: -2, + questionId: this.parentQsId, + rowId: this.questionForm.RowId, + rowIndex: this.answers.RowIndex, + visitTaskId: this.visitTaskId, + trialId: this.trialId, + measureData: measureData ? JSON.stringify(measureData) : '', + answerList: answers, + isCanEditPosition: this.questionForm.IsCanEditPosition, + studyId: measureData ? this.questionForm.MeasureData.studyId : '', + seriesId: measureData ? this.questionForm.MeasureData.seriesId : '', + instanceId: measureData ? this.questionForm.MeasureData.instanceId : '', + numberOfFrames: measureData && !isNaN(parseInt(this.questionForm.MeasureData.frame)) ? parseInt(this.questionForm.MeasureData.frame) : 0, + picturePath: picturePath, + organInfoId: this.questionForm.OrganInfoId, + markTool: measureData ? measureData.type : '' + } + if (this.questionForm.IsDicomReading === false) { + params.isDicomReading = false + } + if (this.deleteInfo) { + var param = { visitTaskId: this.visitTaskId, - trialId: this.trialId, - measureData: measureData ? JSON.stringify(measureData) : '', - answerList: answers, - isCanEditPosition: this.questionForm.IsCanEditPosition, - studyId: measureData ? this.questionForm.MeasureData.studyId : '', - seriesId: measureData ? this.questionForm.MeasureData.seriesId : '', - instanceId: measureData ? this.questionForm.MeasureData.instanceId : '', - numberOfFrames: measureData && !isNaN(parseInt(this.questionForm.MeasureData.frame)) ? parseInt(this.questionForm.MeasureData.frame) : 0, - picturePath: picturePath, - organInfoId: this.questionForm.OrganInfoId, - markTool: measureData ? measureData.type : '' + questionId: this.deleteInfo.questionId, + rowId: this.deleteInfo.rowId } - if (this.questionForm.IsDicomReading === false) { - params.isDicomReading = false - } - if (this.deleteInfo) { - await this.deleteOldLesion(this.deleteInfo.questionId, this.deleteInfo.rowId) - this.deleteInfo = null - params.rowId = '' - } - submitTableQuestion(params).then(async res => { + await deleteReadingRowAnswer(param) + this.deleteInfo = null + params.rowId = '' + } + try { + const res = await submitTableQuestion(params) + if (res.IsSuccess) { // 保存成功! this.$message.success(this.$t('common:message:savedSuccessfully')) this.currentMarkTool = measureData ? measureData.type : '' - // saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断);2:已保存,信息完整 - this.$set(this.questionForm, 'saveTypeEnum', 2) this.originalQuestionForm = { ...this.questionForm } var isLymphLesion = this.getQuestionVal(2) - isLymphLesion = isLymphLesion ? parseInt(isLymphLesion) : null var lesionOrgan = this.getQuestionVal(6) this.$set(this.questionForm, 'RowId', res.Result.RowId) const lesionPart = this.getQuestionVal(8) - const lesionState = Number(this.getQuestionVal(7)) + const lesionState = this.getQuestionVal(7) this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, lesionState, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm }) - - // await store.dispatch('reading/refreshMeasuredData', this.visitTaskId) - // DicomEvent.$emit('getMeasureData') this.$emit('close') DicomEvent.$emit('readingPageUpdate', {}) DicomEvent.$emit('getReportInfo', true) DicomEvent.$emit('setMeasuredToolsPassive') - loading.close() if (parseInt(this.answers.SplitOrMergeType) === 0) { this.$emit('getReadingQuestionAndAnswer') } - }).catch(() => { loading.close() }) - }) + } + loading.close() + } catch (e) { + loading.close() + } }) }, - handleDeleteMeasureData() { + async handleDeleteMeasureData() { // 是否确认清除标记? - this.$confirm(this.$t('trials:reading:warnning:msg47'), { - type: 'warning', - distinguishCancelAndClose: true - }) - .then(async() => { - this.stateDisabled = false - this.organList = [] - await this.getOrganInfoList() - // 重置长短径 和 状态 - var lengId = this.getQuestionId(0) - this.$set(this.questionForm, lengId, '') - var shortId = this.getQuestionId(1) - this.$set(this.questionForm, shortId, '') - var stateId = this.getQuestionId(7) - this.$set(this.questionForm, stateId, '') - // saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断) - if (this.questionForm.RowId) { - this.$set(this.questionForm, 'saveTypeEnum', 1) - } else { - this.$set(this.questionForm, 'saveTypeEnum', 0) - } - await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex }) - DicomEvent.$emit('getMeasureData') - // Store.$emit('updateImage', this.questionForm.MeasureData.instanceId) - var isLymphLesion = this.getQuestionVal(2) - isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null - const lesionPart = this.getQuestionVal(8) - const lesionOrgan = this.getQuestionVal(6) - const lesionLength = '' - const lesionShort = '' - const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : '' + const confirm = await this.$confirm( + this.$t('trials:reading:warnning:msg47'), + { + type: 'warning', + distinguishCancelAndClose: true + } + ) + if (confirm !== 'confirm') return + this.stateDisabled = false + this.organList = [] + await this.getOrganInfoList() + // 重置长短径 和 状态 + var lengId = this.getQuestionId(0) + this.$set(this.questionForm, lengId, '') + var shortId = this.getQuestionId(1) + this.$set(this.questionForm, shortId, '') + var stateId = this.getQuestionId(7) + this.$set(this.questionForm, stateId, '') + // saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断) + if (this.questionForm.RowId) { + this.$set(this.questionForm, 'saveTypeEnum', 1) + } else { + this.$set(this.questionForm, 'saveTypeEnum', 0) + } + await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex }) + DicomEvent.$emit('getMeasureData') + // Store.$emit('updateImage', this.questionForm.MeasureData.instanceId) + const isLymphLesion = this.getQuestionVal(2) + const lesionPart = this.getQuestionVal(8) + const lesionOrgan = this.getQuestionVal(6) + const lesionLength = '' + const lesionShort = '' + const lesionState = this.getQuestionVal(7) - if (!this.questionForm.IsDicomReading) { - DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData) - } - this.$set(this.questionForm, 'IsDicomReading', true) + if (!this.questionForm.IsDicomReading) { + DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData) + } + this.$set(this.questionForm, 'IsDicomReading', true) - this.$set(this.questionForm, 'MeasureData', '') - let anwsers = null - if (this.answers.measureObj) { - anwsers = Object.assign({ measureObj: '' }, this.questionForm) - } else { - anwsers = Object.assign({}, this.questionForm) - } - this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers }) - if (this.lesionType === 0) { - this.calculatePPD() - } - DicomEvent.$emit('refreshStudyListMeasureData') - }) - .catch(() => {}) + this.$set(this.questionForm, 'MeasureData', '') + let anwsers = null + if (this.answers.measureObj) { + anwsers = Object.assign({ measureObj: '' }, this.questionForm) + } else { + anwsers = Object.assign({}, this.questionForm) + } + this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers }) + if (this.lesionType === 0) { + this.calculatePPD() + } + DicomEvent.$emit('refreshStudyListMeasureData') }, async handleDelete() { let message = this.$t('trials:reading:warnning:msg48') @@ -1814,90 +1745,71 @@ export default { message = this.$t('trials:reading:warnning:msg58') } } - - // 是否确认删除? - this.$confirm(message, { - type: 'warning', - distinguishCancelAndClose: true - }) - .then(async() => { - if (this.questionForm.RowId) { - const loading = this.$loading({ fullscreen: true }) - var param = { - visitTaskId: this.visitTaskId, - questionId: this.parentQsId, - rowId: this.questionForm.RowId - } - deleteReadingRowAnswer(param) - .then(async res => { - loading.close() - if (res.IsSuccess) { - // this.$emit('getReadingQuestionAndAnswer') - if (this.questionForm.IsDicomReading && this.questionForm.MeasureData) { - await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex }) - } - // await store.dispatch('reading/removeReadingQuestionAndAnswer', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId }) - // DicomEvent.$emit('getMeasureData') - if (!this.questionForm.IsDicomReading && this.questionForm.MeasureData) { - DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData) - } - this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId }) - DicomEvent.$emit('getReportInfo', true) - DicomEvent.$emit('readingPageUpdate', {}) - // if (!this.questionForm.IsDicomReading) { - // DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData) - // } - // '删除成功!' - this.$message.success(this.$t('common:message:deletedSuccessfully')) - loading.close() - } - }).catch(() => { loading.close() }) - } else { - // const loading = this.$loading({ fullscreen: true }) - // 移除新建病灶并关闭窗口 - if (this.questionForm.MeasureData && this.questionForm.IsDicomReading) { + const confirm = await this.$confirm( + message, + { + type: 'warning', + distinguishCancelAndClose: true + } + ) + if (confirm !== 'confirm') return + if (this.questionForm.RowId) { + const loading = this.$loading({ fullscreen: true }) + var param = { + visitTaskId: this.visitTaskId, + questionId: this.parentQsId, + rowId: this.questionForm.RowId + } + try { + const res = await deleteReadingRowAnswer(param) + if (res.IsSuccess) { + if (this.questionForm.IsDicomReading && this.questionForm.MeasureData) { await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex }) } - // DicomEvent.$emit('getMeasureData') if (!this.questionForm.IsDicomReading && this.questionForm.MeasureData) { DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData) } this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId }) - // loading.close() + DicomEvent.$emit('getReportInfo', true) + DicomEvent.$emit('readingPageUpdate', {}) + // '删除成功!' + this.$message.success(this.$t('common:message:deletedSuccessfully')) } - DicomEvent.$emit('refreshStudyListMeasureData') - }) + loading.close() + } catch (e) { + console.log(e) + loading.close() + } + } else { + // 移除新建病灶并关闭窗口 + if (this.questionForm.MeasureData && this.questionForm.IsDicomReading) { + await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex }) + } + if (!this.questionForm.IsDicomReading && this.questionForm.MeasureData) { + DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData) + } + this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId }) + } + DicomEvent.$emit('refreshStudyListMeasureData') }, - handleClose() { + async handleClose() { if (!this.questionForm.RowId) { // '当前病灶为新建病灶,未保存。如果关闭窗口,将会删除病灶信息,是否继续?' - this.$confirm(this.$t('trials:reading:warnning:msg49'), { - type: 'warning', - distinguishCancelAndClose: true - }) - .then(async() => { - // 移除新建病灶并关闭窗口 - if (this.questionForm.MeasureData) { - await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex }) - } - // await store.dispatch('reading/removeReadingQuestionAndAnswer', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId }) - DicomEvent.$emit('getMeasureData') - this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId }) - }) - .catch(() => {}) + const confirm = await this.$confirm( + this.$t('trials:reading:warnning:msg49'), + { + type: 'warning', + distinguishCancelAndClose: true + } + ) + if (confirm !== 'confirm') return + if (this.questionForm.MeasureData) { + await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex }) + } + DicomEvent.$emit('getMeasureData') + this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId }) } else { - // saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断) - if (this.questionForm.saveTypeEnum === 1) { - // // 当前病灶信息有更新,未保存,是否继续? - // this.$confirm(this.$t('trials:reading:warnning:msg50'), { - // type: 'warning', - // distinguishCancelAndClose: true - // }) - // .then(() => { - // this.$emit('close') - // }) - // .catch(() => {}) this.$emit('close') } else { this.$emit('close') @@ -1913,13 +1825,12 @@ export default { const stateId = this.getQuestionId(7) this.$set(this.questionForm, stateId, 2) } - var isLymphLesion = this.getQuestionVal(2) - isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null + const isLymphLesion = this.getQuestionVal(2) const lesionPart = this.getQuestionVal(8) const lesionOrgan = this.getQuestionVal(6) - const lesionLength = !isNaN(parseFloat(this.getQuestionVal(0))) ? this.getQuestionVal(0) : '' - const lesionShort = !isNaN(parseFloat(this.getQuestionVal(1))) ? this.getQuestionVal(1) : '' - const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : '' + const lesionLength = this.getQuestionVal(0) + const lesionShort = this.getQuestionVal(1) + const lesionState = this.getQuestionVal(7) this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm }) } } diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Lugano/QuestionList.vue b/src/views/trials/trials-panel/reading/dicoms/components/Lugano/QuestionList.vue index 4e13e38d..f8659653 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Lugano/QuestionList.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Lugano/QuestionList.vue @@ -2,10 +2,20 @@
-

- {{ subjectCode }} - {{ taskBlindName }} -

+
+

+ {{ subjectCode }} + {{ taskBlindName }} +

+
+ + + +
+
@@ -216,6 +226,7 @@ @@ -368,6 +407,22 @@ export default { .container{ padding: 10px; + .basic-info{ + display: flex; + justify-content: space-between; + align-items: center; + h3{ + color: #ddd; + padding: 5px 0px; + margin: 0; + } + i{ + color: #fff; + font-size: 22px; + font-weight: bold; + cursor: pointer; + } + } } .title{ padding: 5px; 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 6dfe9c03..0184a1f9 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeStudyList.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeStudyList.vue @@ -257,7 +257,10 @@ export default { this.subjectCode = localStorage.getItem('subjectCode') var digitPlaces = Number(localStorage.getItem('digitPlaces')) this.digitPlaces = digitPlaces === -1 ? this.digitPlaces : digitPlaces - + DicomEvent.$on('refreshStudyListMeasureData', () => { + var idx = this.visitTaskList.findIndex(i => i.VisitTaskId === this.visitTaskId) + this.measureData = this.visitTaskList[idx].MeasureData + }) // DicomEvent.$on('setReadingState', readingTaskState => { // var idx = this.visitTaskList.findIndex(i => i.VisitTaskId === this.visitTaskId) // if (idx > -1) { @@ -271,6 +274,7 @@ export default { window.addEventListener('beforeunload', e => { cornerstone.imageCache.purgeCache() }) + }, beforeDestroy() { cornerstone.imageCache.purgeCache() From a8bebaba49cdb3034a49ed267a5c95d26d425737 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Thu, 18 Jul 2024 14:46:41 +0800 Subject: [PATCH 06/12] 1 --- .../reading/dicoms/customize/CustomizeMeasurementList.vue | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeMeasurementList.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeMeasurementList.vue index 28ccfeef..afe87973 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeMeasurementList.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeMeasurementList.vue @@ -179,7 +179,6 @@ export default { methods: { async initList(){ if (this.visitTaskId !== this.lastCanvasTaskId) { - this.activeName = '' this.ecrfShow = true var i = this.visitTaskList.findIndex(i => i.VisitTaskId === this.lastCanvasTaskId) console.log(i) @@ -364,7 +363,6 @@ export default { if (this.visitTaskId !== obj.visitTaskId) { this.visitTaskId = obj.visitTaskId this.taskBlindName = obj.taskBlindName - this.activeName = '' this.ecrfShow = true } }, @@ -384,7 +382,6 @@ export default { this.loading = false if (res.IsSuccess) { // 刷新标注、表单、报告页信息 - this.activeName = '' this.$refs['QuestionsPreview'].getCustomTableQuestionAnswer(this.visitTaskId ) await store.dispatch('reading/refreshCustomizeMeasuredData', this.visitTaskId) DicomEvent.$emit('getMeasureData') From a0bbb7b64c02efc7fb36db41b974cc1e8d4a52d3 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 18 Jul 2024 15:14:02 +0800 Subject: [PATCH 07/12] =?UTF-8?q?pacs=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/uploadDicomFiles2.vue | 2 +- .../crc-upload/components/uploadDiocmPacs.vue | 160 ++++++++++++------ 2 files changed, 106 insertions(+), 56 deletions(-) diff --git a/src/views/trials/trials-panel/visit/crc-upload/components/uploadDicomFiles2.vue b/src/views/trials/trials-panel/visit/crc-upload/components/uploadDicomFiles2.vue index bc285faf..04336c95 100644 --- a/src/views/trials/trials-panel/visit/crc-upload/components/uploadDicomFiles2.vue +++ b/src/views/trials/trials-panel/visit/crc-upload/components/uploadDicomFiles2.vue @@ -813,7 +813,7 @@ export default { }, data() { return { - uploadActiveName: "pacs", + uploadActiveName: "file", editStudyInfoVisible: false, studyForm: { StudyCode: "", diff --git a/src/views/trials/trials-panel/visit/crc-upload/components/uploadDiocmPacs.vue b/src/views/trials/trials-panel/visit/crc-upload/components/uploadDiocmPacs.vue index 551b57d9..fe67452f 100644 --- a/src/views/trials/trials-panel/visit/crc-upload/components/uploadDiocmPacs.vue +++ b/src/views/trials/trials-panel/visit/crc-upload/components/uploadDiocmPacs.vue @@ -70,62 +70,126 @@