diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue index 2508f272..3b16a915 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue @@ -25,6 +25,7 @@ v-if="selectArr.includes(s.VisitTaskId) && s.StudyList.length > 0" :ref="s.VisitTaskId" :visit-task-info="s" + :markedSeriesIds="markedSeriesIds" @activeSeries="activeSeries" /> @@ -573,7 +574,8 @@ export default { lastViewportTaskId: '', digitPlaces: 2, instanceInfo: {}, - lastViewportTaskIds: [] + lastViewportTaskIds: [], + markedSeriesIds: [] } }, computed: { @@ -711,7 +713,16 @@ export default { if (!this.selectArr.includes(item.VisitTaskId)) { this.selectArr.push(item.VisitTaskId) } + if (item.IsCurrentTask) { + this.markedSeriesIds = [] + annotations.map(i=> { + if (i.MeasureData && i.MeasureData.seriesId) { + this.markedSeriesIds.push(i.MeasureData.seriesId) + } + }) + } } + this.visitTaskList.push({ ...item, StudyList: studyList, @@ -1075,7 +1086,6 @@ export default { }) }, addAnnotationListeners() { - console.log(toolsEvents) const debouncedCallback = this.debounce((evt) => { this.annotationModifiedListener(evt) }, 100) @@ -1109,7 +1119,7 @@ export default { console.log(arr) }, annotationAddedListener(e) { - console.log('annotationAddedListener', e) + }, annotationCompletedListener(e) { console.log('Completed') @@ -1128,9 +1138,12 @@ export default { annotation.sliceThickness = series.SliceThickness annotation.numberOfFrames = isNaN(parseInt(params.frame)) ? null : parseInt(params.frame) annotation.markTool = annotation.metadata.toolName + // this.$refs['ecrf'].setAnnotation({ annotation, toolName: annotation.metadata.toolName }) this.$refs[`ecrf_${this.lastViewportTaskId}`][0].setAnnotation({ annotation, toolName: annotation.metadata.toolName }) + this.markedSeriesIds.push(series.Id) } + this.setToolsPassive() }, annotationModifiedListener(e) { @@ -1147,7 +1160,16 @@ export default { this.setToolsPassive() }, annotationRemovedListener(e) { - + if (this.readingTaskState === 2) return + const { annotation } = e.detail + if (!annotation) return + if (annotation.visitTaskId === this.taskInfo.VisitTaskId && annotation.seriesId) { + const index = this.markedSeriesIds.indexOf(annotation.seriesId) + if (index !== -1) { + this.markedSeriesIds.splice(index, 1) + } + } + console.log(this.markedSeriesIds) }, removeAnnotation(annotation) { cornerstoneTools.annotation.state.removeAnnotation(annotation.annotationUID) @@ -1433,11 +1455,11 @@ export default { viewport.render() } else if (type === 4) { const { rotation } = viewport.getViewPresentation() - viewport.setViewPresentation({ rotation: rotation + 90 }) + viewport.setViewPresentation({ rotation: rotation === 0 ? 270 : rotation - 90 }) viewport.render() } else if (type === 5) { const { rotation } = viewport.getViewPresentation() - viewport.setViewPresentation({ rotation: rotation - 90 }) + viewport.setViewPresentation({ rotation: rotation + 90 }) viewport.render() } this.$refs[`viewport-${this.activeViewportIndex}`][0].rotateOrientationMarkers(type) @@ -1624,10 +1646,9 @@ export default { bindHotKey() { const container = this.$refs['container'] container.addEventListener('keydown', event => { - event.preventDefault() - var idx = this.hotKeyList.findIndex(i => i.code === event.code && i.ctrlKey === event.ctrlKey && i.shiftKey === event.shiftKey && i.altKey === event.altKey) + let idx = this.hotKeyList.findIndex(i => i.code === event.code && i.ctrlKey === event.ctrlKey && i.shiftKey === event.shiftKey && i.altKey === event.altKey) if (idx === -1) return - var shortcutKeyEnum = this.hotKeyList[idx].shortcutKeyEnum + let shortcutKeyEnum = this.hotKeyList[idx].shortcutKeyEnum if (shortcutKeyEnum === 1) { // 前一图像视口 @@ -1705,6 +1726,9 @@ export default { const viewportIds = ['viewport-0', 'viewport-1', 'viewport-2', 'viewport-3'] renderingEngine.renderViewports(viewportIds) } + event.stopImmediatePropagation() + event.stopPropagation() + event.preventDefault() }) }, // 重置热键信息 @@ -2006,12 +2030,15 @@ export default { return } else if (Object.keys(firstAddSeries).length !== 0 && Object.keys(currentAddSeries).length === 0) { // 当前访视序列与首次出现病灶的序列对齐 - currentAddSeries = this.getRelatedSeries(this.visitTaskList[index], firstAddSeries) + // currentAddSeries = this.getRelatedSeries(this.visitTaskList[index], firstAddSeries) - if (Object.keys(currentAddSeries).length === 0) { - // 未找到对齐的,则就显示当前最后一个窗口现实的序列信息 - currentAddSeries = this.$refs[`viewport-${this.cells.length - 1}`][0].series - } + // if (Object.keys(currentAddSeries).length === 0) { + // // 未找到对齐的,则就显示当前最后一个窗口现实的序列信息 + // currentAddSeries = this.$refs[`viewport-${this.cells.length - 1}`][0].series + // } + + // 显示当前序列 + currentAddSeries = this.$refs[`viewport-${this.cells.length - 1}`][0].series } } else { // 无序 @@ -2026,6 +2053,7 @@ export default { if (i === this.cells.length - 1) { this.$refs[`viewport-${i}`][0].setSeriesInfo(currentAddSeries, true) this.activeViewportIndex = i + this.$refs[currentAddSeries.TaskInfo.VisitTaskId][0].setSeriesActive(currentAddSeries.StudyIndex, currentAddSeries.SeriesIndex) } else { this.$refs[`viewport-${i}`][0].setSeriesInfo(firstAddSeries, true) } diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/StudyList.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/StudyList.vue index 9ebbed55..58a30484 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/StudyList.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/StudyList.vue @@ -48,7 +48,7 @@