From f4842ba34d055b28feee9e4c7070dbadd1cd6cde Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Wed, 27 Mar 2024 14:54:06 +0800 Subject: [PATCH 1/3] =?UTF-8?q?MIP=E5=9B=BE=E7=A7=BB=E9=99=A4VOLUME=5FNEW?= =?UTF-8?q?=5FIMAGE=E7=9B=91=E5=90=AC=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/dicoms/components/Fusion/PetCt.vue | 18 ++++++++++-------- .../dicoms/components/Fusion/Viewport.vue | 4 +++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue index 295304c7..4c14176d 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue @@ -691,9 +691,9 @@ export default { this.setUpToolGroups() this.setUpSynchronizers() - this.$refs['CT_AXIAL'].scroll(0) - this.$refs['PT_AXIAL'].scroll(0) - this.$refs['FUSION_AXIAL'].scroll(0) + // this.$refs['CT_AXIAL'].scroll(0) + // this.$refs['PT_AXIAL'].scroll(0) + // this.$refs['FUSION_AXIAL'].scroll(0) const viewport = renderingEngine.getViewport('CT_AXIAL') if (viewport) { this.defaultCamera = viewport.getCamera() @@ -1996,12 +1996,14 @@ export default { if (index > -1) { viewportId = 'PT_AXIAL' this.$refs[viewportId].scroll(index) + }else{ + index = this.ctSeries.instanceList.findIndex(i => i === instanceId) + if (index > -1) { + viewportId = 'CT_AXIAL' + this.$refs[viewportId].scroll(index) + } } - index = this.ctSeries.instanceList.findIndex(i => i === instanceId) - if (index > -1) { - viewportId = 'CT_AXIAL' - this.$refs[viewportId].scroll(index) - } + resolve() }) }, diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/Viewport.vue b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/Viewport.vue index 0b72eed8..9c96b17d 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/Viewport.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/Viewport.vue @@ -232,7 +232,9 @@ export default { methods: { handleVolumeNewImage(e) { const { imageIndex } = e.detail - this.seriesInfo.imageIdIndex = imageIndex + if(this.viewportId === e.detail.viewportId && this.index !== 4){ + this.seriesInfo.imageIdIndex = imageIndex + } renderingEngine = getRenderingEngine(this.renderingEngineId) viewport = renderingEngine.getViewport(this.viewportId) From c745756c8c2257446fc4a75e09c9685dd151c562 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Wed, 27 Mar 2024 15:09:44 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E9=87=8D=E9=98=85=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E6=A0=87=E8=AE=B0=E6=B8=B2=E6=9F=93=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dicoms/components/Fusion/PetCt.vue | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue index 4c14176d..6a070362 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue @@ -527,7 +527,8 @@ export default { initAnnotations: [], activeCanvasWW: null, activeCanvasWC: null, - fusion: { visible: false } // 历史记录融合调窗 + fusion: { visible: false }, // 历史记录融合调窗 + // initFirstAnnotation:false } }, computed: { @@ -709,18 +710,20 @@ export default { } }) eventTarget.addEventListener(cornerstoneTools.Enums.Events.ANNOTATION_ADDED, (e) => { + console.log('ANNOTATION_ADDED') this.onAnnotationAdded(e) }) const debouncedCallback = this.debounce((e) => { - const { annotation } = e.detail - const { remark } = annotation.data - var idx = this.initAnnotations.findIndex(i => i.orderMark === remark) - if (this.initAnnotations.length > 0 && idx > -1 && this.initAnnotations[idx].orderMark === remark && !this.initAnnotations[idx].isInit) { - this.initAnnotations[idx].isInit = true - } else { - this.onAnnotationModified(e) - } + this.onAnnotationModified(e) + // const { annotation } = e.detail + // const { remark } = annotation.data + // var idx = this.initAnnotations.findIndex(i => i.orderMark === remark) + // if (this.initAnnotations.length > 0 && idx > -1 && this.initAnnotations[idx].orderMark === remark && !this.initAnnotations[idx].isInit) { + // this.initAnnotations[idx].isInit = true + // } else { + // this.onAnnotationModified(e) + // } // const { cachedStats } = annotation.data // var isNotValidAnnotationNum = 0 // for (const volumeId in cachedStats) { @@ -756,6 +759,7 @@ export default { // } }, 120) eventTarget.addEventListener(cornerstoneTools.Enums.Events.ANNOTATION_MODIFIED, (e) => { + console.log('ANNOTATION_MODIFIED') debouncedCallback(e) }) eventTarget.addEventListener(cornerstoneTools.Enums.Events.ANNOTATION_SELECTION_CHANGE, (e) => { From 4fabe3fa14e92129a7f6efe80a4d5f26426a682d Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Wed, 27 Mar 2024 16:45:09 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=BD=B1=E5=83=8F=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=9B=BE=E5=83=8F=E5=8A=9F=E8=83=BD=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/dicoms/components/DicomViewer.vue | 19 +++++++++++++++++-- .../dicoms/components/Fusion/PetCt.vue | 6 +++--- .../dicoms/components/Fusion/Viewport.vue | 2 +- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue index f108525a..5f18ffed 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue @@ -1866,8 +1866,23 @@ export default { this.$refs['measurementList'].modifyMeasuredData(data) this.activeTool = '' }, - saveImage() { - this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].saveImage() + async saveImage() { + // this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].saveImage() + // canvas为转换后的Canvas对象 + const divForDownloadViewport = document.querySelector( + `div[data-canvas-uid="dicomCanvas${this.currentDicomCanvasIndex}"]` + ) + var canvas = await html2canvas(divForDownloadViewport) + let oImg = new Image() + oImg = canvas.toDataURL('image/png', 1)// 导出图片 + var oA = document.createElement('a') + var subjectCode = this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].subjectCode + var taskBlindName = this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].stack.taskBlindName + oA.download = `${subjectCode}_${taskBlindName}`// 设置下载的文件名,默认是'下载' + oA.href = oImg + document.body.appendChild(oA) + oA.click() + oA.remove() // 下载之后把创建的元素删除 }, // 设置窗宽/窗位 setDicomCanvasWwwc(v) { diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue index 6a070362..eda2ef90 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue @@ -527,7 +527,7 @@ export default { initAnnotations: [], activeCanvasWW: null, activeCanvasWC: null, - fusion: { visible: false }, // 历史记录融合调窗 + fusion: { visible: false } // 历史记录融合调窗 // initFirstAnnotation:false } }, @@ -2000,14 +2000,14 @@ export default { if (index > -1) { viewportId = 'PT_AXIAL' this.$refs[viewportId].scroll(index) - }else{ + } else { index = this.ctSeries.instanceList.findIndex(i => i === instanceId) if (index > -1) { viewportId = 'CT_AXIAL' this.$refs[viewportId].scroll(index) } } - + resolve() }) }, diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/Viewport.vue b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/Viewport.vue index 9c96b17d..29bbade4 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/Viewport.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/Viewport.vue @@ -232,7 +232,7 @@ export default { methods: { handleVolumeNewImage(e) { const { imageIndex } = e.detail - if(this.viewportId === e.detail.viewportId && this.index !== 4){ + if (this.viewportId === e.detail.viewportId && this.index !== 4) { this.seriesInfo.imageIdIndex = imageIndex } renderingEngine = getRenderingEngine(this.renderingEngineId)