diff --git a/src/views/trials/trials-panel/reading/ad-review/index.vue b/src/views/trials/trials-panel/reading/ad-review/index.vue index 435edc96..0d44bab1 100644 --- a/src/views/trials/trials-panel/reading/ad-review/index.vue +++ b/src/views/trials/trials-panel/reading/ad-review/index.vue @@ -203,7 +203,7 @@ >
- +
- +
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/QuestionItem.vue b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/QuestionItem.vue index 294b31ff..64a6eb2f 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/QuestionItem.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/QuestionItem.vue @@ -66,6 +66,27 @@ + 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..c5e7430a 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 @@ -116,34 +116,38 @@ /> @@ -368,6 +404,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() diff --git a/src/views/trials/trials-panel/reading/mim-medical-audit/components/Conclusions.vue b/src/views/trials/trials-panel/reading/mim-medical-audit/components/Conclusions.vue index c34c8289..2fcdbf54 100644 --- a/src/views/trials/trials-panel/reading/mim-medical-audit/components/Conclusions.vue +++ b/src/views/trials/trials-panel/reading/mim-medical-audit/components/Conclusions.vue @@ -92,7 +92,7 @@ >
- +