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 e6c7c385..92b4ea03 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue @@ -487,10 +487,10 @@ const newStyles = { textBoxLinkLineWidth: '1', textBoxLinkLineDash: '2,3', textBoxShadow: true, - markerSize: '10', - }, + markerSize: '10' + } } -annotation.config.style.setDefaultToolStyles(newStyles); +annotation.config.style.setDefaultToolStyles(newStyles) const { MouseBindings, Events: toolsEvents } = csToolsEnums export default { name: 'ReadPage', @@ -563,7 +563,8 @@ export default { isClinicalDataFullscreen: false, cdVisitTaskId: '', lastViewportTaskId: '', - digitPlaces: 2 + digitPlaces: 2, + instanceInfo: {} } }, computed: { @@ -717,8 +718,8 @@ export default { const res1 = await getReadingVisitStudyList(this.trialId, sujectVisitId, taskId) let keyStudyIndex = -1 let keySeriesIndex = -1 - const arr = res1.Result.filter(i => !i.IsCriticalSequence) - // const arr = res1.Result + // const arr = res1.Result.filter(i => !i.IsCriticalSequence) + const arr = res1.Result arr.forEach((study, studyIndex) => { study.SeriesList.forEach((series, seriesIndex) => { const imageIds = [] @@ -736,13 +737,14 @@ export default { const nFrames = instance.NumberOfFrames || 0 if (nFrames === 0) { // 单帧 - imageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?frame=0&instanceId=${instance.Id}&visitTaskId=${taskId}&idx=${taskIndex}|${studyIndex}|${seriesIndex}`) + imageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?frame=0&instanceId=${instance.Id}&visitTaskId=${taskId}`) } else { // 多帧 for (let frameIndex = 0; frameIndex < nFrames; frameIndex++) { - imageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?frame=${frameIndex}&instanceId=${instance.Id}&visitTaskId=${taskId}&idx=${taskIndex}|${studyIndex}|${seriesIndex}`) + imageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?frame=${frameIndex}&instanceId=${instance.Id}&visitTaskId=${taskId}`) } } + this.instanceInfo[instance.Id] = { taskIndex, studyIndex, seriesIndex } } }) series.ImageIds = imageIds @@ -759,10 +761,10 @@ export default { keyImages.forEach(instance => { if (instance.KeyFramesList.length > 0) { instance.KeyFramesList.map(i => { - keyImageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?frame=${i}&instanceId=${instance.Id}&visitTaskId=${taskId}&idx=${taskIndex}|${instance.StudyIndex}|${instance.SeriesIndex}`) + keyImageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?frame=${i}&instanceId=${instance.Id}&visitTaskId=${taskId}`) }) } else { - keyImageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?frame=0&instanceId=${instance.Id}&visitTaskId=${taskId}&idx=${taskIndex}|${instance.StudyIndex}|${instance.SeriesIndex}`) + keyImageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?frame=0&instanceId=${instance.Id}&visitTaskId=${taskId}`) } }) res1.Result[keyStudyIndex].SeriesList[keySeriesIndex].ImageIds = keyImageIds @@ -777,7 +779,6 @@ export default { } return i }) - console.log(res1.Result) return { studyList: arr, annotations: annotations, annotationUIDs, keyImages } } catch (e) { console.log(e) @@ -977,12 +978,15 @@ export default { const percentComplete = detail.percentComplete const imageId = detail.imageId const params = this.getInstanceInfo(imageId) - if (!params.hasOwnProperty('idx')) return - const indexArr = params.idx.split('|') - if (indexArr.length < 3) return - const taskIndex = parseInt(indexArr[0]) - const studyIndex = parseInt(indexArr[1]) - const seriesIndex = parseInt(indexArr[2]) + const instanceId = params.instanceId + const idxObj = this.instanceInfo[instanceId] + if (!(idxObj && typeof idxObj === 'object')) return + // if (!params.hasOwnProperty('idx')) return + // const indexArr = params.idx.split('|') + // if (indexArr.length < 3) return + const taskIndex = idxObj.taskIndex + const studyIndex = idxObj.studyIndex + const seriesIndex = idxObj.seriesIndex const isCriticalSequence = this.visitTaskList[taskIndex].StudyList[studyIndex].IsCriticalSequence const keyImages = this.visitTaskList[taskIndex].KeyImages const series = this.visitTaskList[taskIndex].StudyList[studyIndex].SeriesList[seriesIndex] @@ -1061,6 +1065,13 @@ export default { toolsEvents.ANNOTATION_REMOVED, this.annotationRemovedListener ) + eventTarget.addEventListener( + toolsEvents.ANNOTATION_ADDED, + this.annotationAddedListener + ) + }, + annotationAddedListener(e) { + console.log('annotationAddedListener', e) }, annotationCompletedListener(e) { console.log('Completed') @@ -1689,6 +1700,7 @@ export default { this.sLoading = false } } + this.setToolsPassive() }, async toggleTaskByViewport(obj) { const i = this.visitTaskList.findIndex(v => v.VisitTaskNum === obj.visitTaskNum) @@ -1725,6 +1737,7 @@ export default { this.currentVisitInfo = series.TaskInfo } }) + this.setToolsPassive() }, async activeSeries(obj) { this.$refs[`viewport-${this.activeViewportIndex}`][0].setSeriesInfo(obj) @@ -1734,6 +1747,7 @@ export default { this.lastViewportTaskId = obj.TaskInfo.VisitTaskId this.currentVisitInfo = obj.TaskInfo } + this.setToolsPassive() }, // 激活视口 activeViewport(index) { @@ -1851,7 +1865,7 @@ export default { } const imageIds = seriesList[seriesIdx].ImageIds const imageIdIdx = imageIds.findIndex(is => is.includes(filterStr)) - if (imageIdIdx) { + if (imageIdIdx > -1) { obj = Object.assign({}, seriesList[seriesIdx]) obj.SliceIndex = imageIdIdx obj.IsMarked = 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 fc97cde7..0b3ab6a2 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/StudyList.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/StudyList.vue @@ -80,7 +80,7 @@ {{ series.Modality }}: {{ series.InstanceCount }} image -