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 99f27846..6810f7fc 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue @@ -894,6 +894,9 @@ export default { DicomEvent.$on('addNoneDicomMeasureData', data => { this.open.postMessage({ type: 'addNoneDicomMeasureData', data: data }, window.location) }) + DicomEvent.$on('activeSeries', (series) => { + this.renderedTaskIds = [] + }) document.addEventListener("click", this.foo); this.getSystemInfoReading(); }, @@ -1601,25 +1604,21 @@ export default { // }) }, renderAnnotations(series) { - if (series.SeriesInstanceUid) { - let volume = cache.getVolume(series.SeriesInstanceUid) - // console.log(volume.metadata.FrameOfReferenceUID); - } - const taskId = series.TaskInfo ? series.TaskInfo.VisitTaskId : null if (!taskId || this.renderedTaskIds.includes(taskId)) return this.renderedTaskIds.push(taskId) const taskIdx = this.visitTaskList.findIndex(i => i.VisitTaskId === taskId) if (taskIdx === -1) return const annotations = this.visitTaskList[taskIdx].Annotations - console.log(annotations, 'annotations') annotations.map(i => { if (i.MeasureData && !Object.hasOwn(i.MeasureData, 'isDicomReading')) { const annotation = i.MeasureData - annotation.highlighted = false - cornerstoneTools.annotation.state.addAnnotation(annotation) - if (this.visitTaskList[taskIdx].ReadingTaskState === 2) { - cornerstoneTools.annotation.locking.setAnnotationLocked(annotation.annotationUID) + if ((this.readingTool === 3 && annotation.seriesId === series.Id) || this.readingTool < 3) { + annotation.highlighted = false + cornerstoneTools.annotation.state.addAnnotation(annotation) + if (this.visitTaskList[taskIdx].ReadingTaskState === 2) { + cornerstoneTools.annotation.locking.setAnnotationLocked(annotation.annotationUID) + } } } }) @@ -3706,7 +3705,7 @@ export default { // imageIds = this.sortImageIdsByImagePositionPatient(imageIds) volume = await volumeLoader.createAndCacheVolume(volumeId, { imageIds: imageIds }) volume.load() - } + } res({ volumeId, volume }) }) }, diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/Segmentations.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/Segmentations.vue index 06171433..b5ffb134 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/Segmentations.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/Segmentations.vue @@ -827,7 +827,6 @@ export default { }, async customPrompt() { try { - console.log(annotation.state.getAllAnnotations(), 'annotation.state.getAllAnnotations()') const that = this // 请输入标记名称 let message = this.$t('trials:reading:Segmentations:message:rename') @@ -1139,7 +1138,6 @@ export default { if (toolName === 'ThresholdSphere') { this.setDynamicRadius() } - console.log(this.brushThreshold.dynamicRadius, 'this.brushThreshold.dynamicRadius') }, setDynamicRadius() { let volume = cache.getVolume(this.series.SeriesInstanceUid); diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/VolumeViewport.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/VolumeViewport.vue index 635eb876..357d0791 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/VolumeViewport.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/VolumeViewport.vue @@ -282,6 +282,12 @@ export default { this.imageInfo.location = imagePlaneModule.sliceLocation this.imageInfo.total = detail.numberOfSlices this.getOrientationMarker() + if (this.series && this.series.Id) { + let annotations = cornerstoneTools.annotation.state.getAllAnnotations().filter(item => item.metadata.toolName !== 'ScaleOverlay' && item.metadata.volumeId !== this.volumeId && !item.metadata.segmentationId && item.seriesId !== this.series.Id) + annotations.forEach(item => { + cornerstoneTools.annotation.state.removeAnnotation(item.annotationUID) + }) + } this.$emit('renderAnnotations', this.series) let properties = viewport.getProperties() if (this.isFusion) { @@ -481,14 +487,14 @@ export default { async createImageIdsAndCacheMetaData(obj) { this.loading = true try { - return await createImageIdsAndCacheMetaData({ - modality: obj.Modality, - imageIds: obj.ImageIds - }) + return await createImageIdsAndCacheMetaData({ + modality: obj.Modality, + imageIds: obj.ImageIds + }) } finally { - this.loading = false + this.loading = false } - }, + }, async getVolume(serie, isFusion = false) { return new Promise(async res => { let volumeId = `${isFusion ? 'fusion_' : ''}` + serie.SeriesInstanceUid; @@ -496,8 +502,8 @@ export default { if (cache.getVolume(volumeId)) { volume = cache.getVolume(volumeId) } else { - await this.createImageIdsAndCacheMetaData(serie) - volume = await volumeLoader.createAndCacheVolume(volumeId, { imageIds: serie.ImageIds }) + let imageIds = await this.createImageIdsAndCacheMetaData(serie) + volume = await volumeLoader.createAndCacheVolume(volumeId, { imageIds: imageIds }) volume.load() } res({ volumeId, volume }) @@ -509,7 +515,7 @@ export default { if (this.series && data.Id === this.series.Id && data.Description === this.series.Description && !isLocate && !data.isLocation) { data.SliceIndex = this.series.SliceIndex } - // console.log(data.SliceIndex) + // console.log(data) const renderingEngine = getRenderingEngine(this.renderingEngineId) const viewport = renderingEngine.getViewport(this.viewportId) if (isLocate) return csUtils.jumpToSlice(viewport.element, { imageIndex: data.SliceIndex });