普通标记在多个三维序列渲染问题

uat_us
wangxiaoshuang 2026-03-30 13:27:24 +08:00
parent b77dc34523
commit a35309d9b5
3 changed files with 25 additions and 22 deletions

View File

@ -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 })
})
},

View File

@ -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);

View File

@ -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 });