From d9b5d76ac741192323b41308d0e932b86bef7415 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Wed, 13 Mar 2024 13:54:22 +0800 Subject: [PATCH] =?UTF-8?q?=E7=97=85=E7=81=B6=E6=A0=87=E8=AE=B0=E6=88=AA?= =?UTF-8?q?=E5=9B=BE=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/dicoms/components/DicomViewer.vue | 11 +++++++++-- .../reading/dicoms/components/Fusion/PetCt.vue | 12 +++++++++--- .../reading/dicoms/components/QuestionItem.vue | 4 ++-- 3 files changed, 20 insertions(+), 7 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 92a5efe9..4ca04daa 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue @@ -339,6 +339,7 @@ :is-reading-task-view-in-order="isReadingTaskViewInOrder" :current-dicom-canvas-index="currentDicomCanvasIndex" :custom-wwc-tpl="customWwcTpl" + :data-canvas-uid="`dicomCanvas${i-1}`" @setCornerstoneStyle="setCornerstoneStyle(i-1)" @setMeasureData="setMeasureData" @modifyMeasureData="modifyMeasureData" @@ -636,6 +637,7 @@ import Hotkeys from './Hotkeys' import WL from './WL' import Others from './Others' import DicomEvent from './DicomEvent' +import html2canvas from 'html2canvas' export default { name: 'DicomViewer', components: { @@ -887,9 +889,14 @@ export default { } console.log('getMeasureData') }) - DicomEvent.$on('getScreenshots', (callback) => { + DicomEvent.$on('getScreenshots', async(callback) => { if (this.currentDicomCanvasIndex > -1) { - var base64Str = this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].getScreenshots() + // var base64Str = this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].getScreenshots() + const divForDownloadViewport = document.querySelector( + `div[data-canvas-uid="dicomCanvas${this.currentDicomCanvasIndex}"]` + ) + var canvas = await html2canvas(divForDownloadViewport) + var base64Str = canvas.toDataURL('image/png', 1) callback(base64Str) } console.log('getScreenshots') 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 8fd4f03d..1ac3f6e0 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 @@ -375,6 +375,7 @@ import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransf import vtkPiecewiseFunction from '@kitware/vtk.js/Common/DataModel/PiecewiseFunction' // import vtkOrientationMarkerWidget from '@kitware/vtk.js/Interaction/Widgets/OrientationMarkerWidget' import { mat4, vec3 } from 'gl-matrix' +import html2canvas from 'html2canvas' // import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction' // import vtkMath from '@kitware/vtk.js/Common/Core/Math' import CircleROITool from './tools/CircleROITool' @@ -596,8 +597,13 @@ export default { this.imageLocation(obj) }) FusionEvent.$on('getScreenshots', async(callback) => { - var base64Str = await this.$refs['FUSION_AXIAL'].getScreenshots() - callback(base64Str) + // var base64Str = await this.$refs['FUSION_AXIAL'].getScreenshots() + const divForDownloadViewport = document.querySelector( + '.dicom-container' + ) + var canvas = await html2canvas(divForDownloadViewport) + var pictureBaseStr = canvas.toDataURL('image/png', 1) + callback(pictureBaseStr) }) }, destroyed() { @@ -803,7 +809,7 @@ export default { }, removeAnnotation(obj) { const { otherMeasureData, type } = obj - if(!otherMeasureData || !otherMeasureData.data) return + if (!otherMeasureData || !otherMeasureData.data) return const { data } = otherMeasureData const i = this.measureDatas.findIndex(item => item.OtherMeasureData && item.OtherMeasureData.data.remark === data.remark) if (i > -1) { diff --git a/src/views/trials/trials-panel/reading/dicoms/components/QuestionItem.vue b/src/views/trials/trials-panel/reading/dicoms/components/QuestionItem.vue index 476b07a2..dd73622f 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/QuestionItem.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/QuestionItem.vue @@ -337,10 +337,10 @@ export default { // if (parseInt(v) !== 5) { // return // } - + if (question.Childrens.length > 0) { this.resetChild(question.Childrens) - }else{ + } else { this.$emit('setFormItemData', { key: question.Id, val: v }) } },