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 d7bdb6a0..bb042b64 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue @@ -219,6 +219,48 @@ + + +
+
+ +
+
{{ $t('trials:reading:button:keySeries') }}
+
+
+
@@ -706,6 +748,7 @@ import downloadDicomAndNonedicom from '@/components/downloadDicomAndNonedicom' import SignForm from '@/views/trials/components/newSignForm' import { getCriterionReadingInfo, verifyVisitTaskQuestions, submitDicomVisitTask, setReadKeyFile } from '@/api/trials' import { setSkipReadingCache } from '@/api/reading' +import { getMarkList } from '@/api/reading' import { getAutoCutNextTask } from '@/api/user' import const_ from '@/const/sign-code' import { changeURLStatic } from '@/utils/history.js' @@ -903,6 +946,9 @@ export default { uploadTrialCriterion: {}, uploadStatus: 'upload', taskId: '', + keySeries: [], + keySeriesPopoverVisible: false, + keySeriesLoading: false, signVisible: false, signCode: null, currentUser: zzSessionStorage.getItem('userName'), @@ -1349,6 +1395,46 @@ export default { resetViewport() { this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].resetViewport() }, + getKeySeriesVisitTaskId() { + const currentCanvas = this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`] + if (currentCanvas && currentCanvas[0] && currentCanvas[0].stack && currentCanvas[0].stack.visitTaskId) { + return currentCanvas[0].stack.visitTaskId + } + return this.activeSeries && this.activeSeries.visitTaskId ? this.activeSeries.visitTaskId : '' + }, + async showKeySeriesPanel() { + this.keySeries = [] + this.keySeriesLoading = true + const idx = this.visitTaskList.findIndex(i => i.IsCurrentTask) + if (idx === -1) return + const visitTaskId = this.visitTaskList[idx].VisitTaskId + try { + const res = await getMarkList({ visitTaskId }) + if (res && res.Result) { + this.keySeries = res.Result + } + } catch (err) { + console.error(err) + } finally { + this.keySeriesLoading = false + } + }, + jumpToKeySeries(kf) { + this.keySeriesPopoverVisible = false + const idx = this.visitTaskList.findIndex(i => i.IsCurrentTask) + if (idx === -1) return + const visitTaskId = this.visitTaskList[idx].VisitTaskId + if (!visitTaskId) return + let annotation = {} + try { + annotation = kf.MeasureData ? JSON.parse(kf.MeasureData) : {} + } catch (err) { + console.error(err) + } + const series = this.getSeriesInfoByMark(visitTaskId, {lesionName: kf.MarkName}) + if (!series) return + this.loadImageStack(series) + }, previewConfig() { this.activeName = '1' this.personalConfigDialog.visible = true @@ -3030,3 +3116,135 @@ export default { flex-grow: 1; } + 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 9b4e9303..9fd7bc87 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 @@ -94,7 +94,7 @@ export default { this.resetSuvQuestions() }) FusionEvent.$on('addAnnotation', obj => { - this.$set(obj, 'SaveEnum', 1) + // this.$set(obj, 'SaveEnum', 1) this.addAnnotation(obj) }) FusionEvent.$on('removeAnnotation', obj => { diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Questions.vue b/src/views/trials/trials-panel/reading/dicoms/components/Questions.vue index 2cc8b0dc..19d7fcd9 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Questions.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Questions.vue @@ -115,7 +115,7 @@ export default { }) if (this.groupClassify === 3) { DicomEvent.$on('addAnnotation', obj => { - this.$set(obj, 'SaveEnum', 1) + // this.$set(obj, 'SaveEnum', 1) this.addAnnotation(obj) }) DicomEvent.$on('removeAnnotation', obj => {