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

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 => { DicomEvent.$on('addNoneDicomMeasureData', data => {
this.open.postMessage({ type: 'addNoneDicomMeasureData', data: data }, window.location) this.open.postMessage({ type: 'addNoneDicomMeasureData', data: data }, window.location)
}) })
DicomEvent.$on('activeSeries', (series) => {
this.renderedTaskIds = []
})
document.addEventListener("click", this.foo); document.addEventListener("click", this.foo);
this.getSystemInfoReading(); this.getSystemInfoReading();
}, },
@ -1601,25 +1604,21 @@ export default {
// }) // })
}, },
renderAnnotations(series) { renderAnnotations(series) {
if (series.SeriesInstanceUid) {
let volume = cache.getVolume(series.SeriesInstanceUid)
// console.log(volume.metadata.FrameOfReferenceUID);
}
const taskId = series.TaskInfo ? series.TaskInfo.VisitTaskId : null const taskId = series.TaskInfo ? series.TaskInfo.VisitTaskId : null
if (!taskId || this.renderedTaskIds.includes(taskId)) return if (!taskId || this.renderedTaskIds.includes(taskId)) return
this.renderedTaskIds.push(taskId) this.renderedTaskIds.push(taskId)
const taskIdx = this.visitTaskList.findIndex(i => i.VisitTaskId === taskId) const taskIdx = this.visitTaskList.findIndex(i => i.VisitTaskId === taskId)
if (taskIdx === -1) return if (taskIdx === -1) return
const annotations = this.visitTaskList[taskIdx].Annotations const annotations = this.visitTaskList[taskIdx].Annotations
console.log(annotations, 'annotations')
annotations.map(i => { annotations.map(i => {
if (i.MeasureData && !Object.hasOwn(i.MeasureData, 'isDicomReading')) { if (i.MeasureData && !Object.hasOwn(i.MeasureData, 'isDicomReading')) {
const annotation = i.MeasureData const annotation = i.MeasureData
annotation.highlighted = false if ((this.readingTool === 3 && annotation.seriesId === series.Id) || this.readingTool < 3) {
cornerstoneTools.annotation.state.addAnnotation(annotation) annotation.highlighted = false
if (this.visitTaskList[taskIdx].ReadingTaskState === 2) { cornerstoneTools.annotation.state.addAnnotation(annotation)
cornerstoneTools.annotation.locking.setAnnotationLocked(annotation.annotationUID) if (this.visitTaskList[taskIdx].ReadingTaskState === 2) {
cornerstoneTools.annotation.locking.setAnnotationLocked(annotation.annotationUID)
}
} }
} }
}) })
@ -3706,7 +3705,7 @@ export default {
// imageIds = this.sortImageIdsByImagePositionPatient(imageIds) // imageIds = this.sortImageIdsByImagePositionPatient(imageIds)
volume = await volumeLoader.createAndCacheVolume(volumeId, { imageIds: imageIds }) volume = await volumeLoader.createAndCacheVolume(volumeId, { imageIds: imageIds })
volume.load() volume.load()
} }
res({ volumeId, volume }) res({ volumeId, volume })
}) })
}, },

View File

@ -827,7 +827,6 @@ export default {
}, },
async customPrompt() { async customPrompt() {
try { try {
console.log(annotation.state.getAllAnnotations(), 'annotation.state.getAllAnnotations()')
const that = this const that = this
// //
let message = this.$t('trials:reading:Segmentations:message:rename') let message = this.$t('trials:reading:Segmentations:message:rename')
@ -1139,7 +1138,6 @@ export default {
if (toolName === 'ThresholdSphere') { if (toolName === 'ThresholdSphere') {
this.setDynamicRadius() this.setDynamicRadius()
} }
console.log(this.brushThreshold.dynamicRadius, 'this.brushThreshold.dynamicRadius')
}, },
setDynamicRadius() { setDynamicRadius() {
let volume = cache.getVolume(this.series.SeriesInstanceUid); let volume = cache.getVolume(this.series.SeriesInstanceUid);

View File

@ -282,6 +282,12 @@ export default {
this.imageInfo.location = imagePlaneModule.sliceLocation this.imageInfo.location = imagePlaneModule.sliceLocation
this.imageInfo.total = detail.numberOfSlices this.imageInfo.total = detail.numberOfSlices
this.getOrientationMarker() 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) this.$emit('renderAnnotations', this.series)
let properties = viewport.getProperties() let properties = viewport.getProperties()
if (this.isFusion) { if (this.isFusion) {
@ -481,14 +487,14 @@ export default {
async createImageIdsAndCacheMetaData(obj) { async createImageIdsAndCacheMetaData(obj) {
this.loading = true this.loading = true
try { try {
return await createImageIdsAndCacheMetaData({ return await createImageIdsAndCacheMetaData({
modality: obj.Modality, modality: obj.Modality,
imageIds: obj.ImageIds imageIds: obj.ImageIds
}) })
} finally { } finally {
this.loading = false this.loading = false
} }
}, },
async getVolume(serie, isFusion = false) { async getVolume(serie, isFusion = false) {
return new Promise(async res => { return new Promise(async res => {
let volumeId = `${isFusion ? 'fusion_' : ''}` + serie.SeriesInstanceUid; let volumeId = `${isFusion ? 'fusion_' : ''}` + serie.SeriesInstanceUid;
@ -496,8 +502,8 @@ export default {
if (cache.getVolume(volumeId)) { if (cache.getVolume(volumeId)) {
volume = cache.getVolume(volumeId) volume = cache.getVolume(volumeId)
} else { } else {
await this.createImageIdsAndCacheMetaData(serie) let imageIds = await this.createImageIdsAndCacheMetaData(serie)
volume = await volumeLoader.createAndCacheVolume(volumeId, { imageIds: serie.ImageIds }) volume = await volumeLoader.createAndCacheVolume(volumeId, { imageIds: imageIds })
volume.load() volume.load()
} }
res({ volumeId, volume }) 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) { if (this.series && data.Id === this.series.Id && data.Description === this.series.Description && !isLocate && !data.isLocation) {
data.SliceIndex = this.series.SliceIndex data.SliceIndex = this.series.SliceIndex
} }
// console.log(data.SliceIndex) // console.log(data)
const renderingEngine = getRenderingEngine(this.renderingEngineId) const renderingEngine = getRenderingEngine(this.renderingEngineId)
const viewport = renderingEngine.getViewport(this.viewportId) const viewport = renderingEngine.getViewport(this.viewportId)
if (isLocate) return csUtils.jumpToSlice(viewport.element, { imageIndex: data.SliceIndex }); if (isLocate) return csUtils.jumpToSlice(viewport.element, { imageIndex: data.SliceIndex });