From f8d921d9e550e7afcc0847bfafdaf383343cef4f Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Tue, 28 May 2024 13:54:57 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=85=E7=89=87=E8=B7=9F=E8=B8=AA=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E8=B0=83=E6=95=B4=E5=8F=8A=E9=98=85=E7=89=87=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Dicom/DicomCanvas.vue | 30 +++++++++++++++---- .../reading/dicoms/components/DicomCanvas.vue | 6 ++++ .../dicoms/customize/CustomizeDicomCanvas.vue | 10 +++++-- .../components/RecordList.vue | 25 +++++++++++++++- .../reading/reading-tracking/index.vue | 6 ++-- 5 files changed, 65 insertions(+), 12 deletions(-) diff --git a/src/components/Dicom/DicomCanvas.vue b/src/components/Dicom/DicomCanvas.vue index b5f9304d..eca7365e 100644 --- a/src/components/Dicom/DicomCanvas.vue +++ b/src/components/Dicom/DicomCanvas.vue @@ -8,7 +8,6 @@ style="width:100%;height:100%;position:relative;" class="cornerstone-element" @contextmenu.prevent="onContextmenu" - @mousemove="sliderMousemove" @mouseup="sliderMouseup" >
@@ -54,7 +53,7 @@
-
+
@@ -186,6 +185,9 @@ export default { document.addEventListener('mouseup', () => { this.sliderMouseup() }) + document.addEventListener('mousemove', (e) => { + this.sliderMousemove(e) + }) this.canvas.addEventListener('cornerstonetoolsstackscroll', this.stackScrollCallback) }, @@ -356,6 +358,12 @@ export default { if (this.dicomInfo.thick) { this.dicomInfo.thick = this.dicomInfo.thick.toFixed(2) } + let newImageIdIndex = this.stack.imageIds.findIndex(i=>i===e.detail.image.imageId) + if(newImageIdIndex === -1) return + this.stack.currentImageIdIndex = newImageIdIndex + this.stack.imageIdIndex = newImageIdIndex + this.series.imageIdIndex = newImageIdIndex + this.height = (this.stack.currentImageIdIndex) * 100 / (this.stack.imageIds.length - 1) }, stackScrollCallback(e) { const { detail } = e @@ -438,10 +446,10 @@ export default { } }, onImageLoaded(e) { - var image = e.detail.image - // var seriesIndex = -1 - var seriesUid = image.data.string('x0020000e') - console.log(seriesUid) + // var image = e.detail.image + // // var seriesIndex = -1 + // var seriesUid = image.data.string('x0020000e') + // console.log(seriesUid) }, getToolForElement(toolName) { var isExist = false @@ -521,6 +529,9 @@ export default { this.sliderInfo.oldB = parseInt(e.srcElement.style.top) * boxHeight / 100 this.sliderInfo.oldM = e.clientY this.sliderInfo.isMove = true + e.stopImmediatePropagation() + e.stopPropagation() + e.preventDefault() }, sliderMousemove(e) { if (!this.sliderInfo.isMove) return @@ -540,6 +551,13 @@ export default { sliderMouseup(e) { this.sliderInfo.isMove = false }, + goViewer(e) { + // console.log(this.$refs['sliderBox'].clientHeight) + var height = e.offsetY * 100 / this.$refs['sliderBox'].clientHeight + this.height = height + var index = Math.trunc(this.stack.imageIds.length * this.height / 100) + scroll(this.canvas, index) + }, onClipStopped() { this.toolState.clipPlaying = false }, diff --git a/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue b/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue index 96c62808..7f5f93a6 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue @@ -1243,6 +1243,12 @@ export default { if (this.dicomInfo.thick) { this.dicomInfo.thick = this.dicomInfo.thick.toFixed(2) } + let newImageIdIndex = this.stack.imageIds.findIndex(i=>i===imageId) + if(newImageIdIndex === -1) return + this.stack.currentImageIdIndex = newImageIdIndex + this.stack.imageIdIndex = newImageIdIndex + this.series.imageIdIndex = newImageIdIndex + this.height = (this.stack.currentImageIdIndex) * 100 / (this.stack.imageIds.length - 1) }, getScreenshots() { const canvas = this.canvas.querySelector('canvas') diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue index 7a5ae40f..8c03ec06 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue @@ -799,7 +799,7 @@ export default { } }, stackScrollCallback(e) { - console.log('stackScrollCallback') + // console.log('stackScrollCallback') const { detail } = e if (this.isScrollSync && this.currentDicomCanvasIndex === this.canvasIndex) { this.scrollSyncInfo.canvasIndex = this.canvasIndex @@ -1181,7 +1181,7 @@ export default { }) }, onNewImage(e) { - console.log('cornerstonenewimage') + // console.log('cornerstonenewimage') if (this.isCurrentTask && this.readingTaskState < 2) { this.resetHideMeasureArr() } @@ -1218,6 +1218,12 @@ export default { if (this.dicomInfo.thick) { this.dicomInfo.thick = this.dicomInfo.thick.toFixed(2) } + let newImageIdIndex = this.stack.imageIds.findIndex(i=>i===imageId) + if(newImageIdIndex === -1) return + this.stack.currentImageIdIndex = newImageIdIndex + this.stack.imageIdIndex = newImageIdIndex + this.series.imageIdIndex = newImageIdIndex + this.height = (this.stack.currentImageIdIndex) * 100 / (this.stack.imageIds.length - 1) }, getScreenshots() { const canvas = this.canvas.querySelector('canvas') diff --git a/src/views/trials/trials-panel/reading/reading-tracking/components/RecordList.vue b/src/views/trials/trials-panel/reading/reading-tracking/components/RecordList.vue index 954e6fab..8198dfc7 100644 --- a/src/views/trials/trials-panel/reading/reading-tracking/components/RecordList.vue +++ b/src/views/trials/trials-panel/reading/reading-tracking/components/RecordList.vue @@ -557,7 +557,8 @@ export default { trialId: this.$route.query.trialId, reReadingOrBackVisible: false, loading2: false, - influenceTaskList: [] + influenceTaskList: [], + openWindow: null, } }, mounted() { @@ -566,6 +567,11 @@ export default { this.getDoctorUserSelectList() this.getTrialCriterionList() }, + beforeDestroy() { + if (this.openWindow) { + this.openWindow.close() + } + }, methods: { getList() { this.searchData.TrialId = this.$route.query.trialId @@ -600,6 +606,23 @@ export default { this.trialCriterionList = res.Result }).catch(() => {}) }, + // 查看阅片结果 + lookReadingResults(row) { + if (this.openWindow) { + this.openWindow.close() + } + var token = getToken() + var path + if (row.ReadingTool === 0) { + path = `/readingDicoms?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}` + } else { + path = `/noneDicomReading?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}` + } + // const routeData = this.$router.resolve({ + // path: `/readingPage?subjectId=${row.SubjectId}&trialId=${row.TrialId}&visitTaskId=${row.Id}&TokenKey=${token}` + // }) + this.openWindow = window.open(path, '_blank') + }, changeTimeList() { if (this.timeList) { this.searchData.BeginAllocateDate = this.timeList[0] diff --git a/src/views/trials/trials-panel/reading/reading-tracking/index.vue b/src/views/trials/trials-panel/reading/reading-tracking/index.vue index afecf6b5..15be0ea3 100644 --- a/src/views/trials/trials-panel/reading/reading-tracking/index.vue +++ b/src/views/trials/trials-panel/reading/reading-tracking/index.vue @@ -349,7 +349,7 @@