From c7603f4369845efe6f563fe729b8b7aeabab42e7 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Tue, 23 Apr 2024 14:55:40 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=85=E7=89=87=E9=A1=B5=E9=9D=A2=E8=8E=B7?= =?UTF-8?q?=E5=8F=96instanceId=E6=9B=B4=E6=94=B9=E5=8F=8A=E7=A8=BD?= =?UTF-8?q?=E6=9F=A5=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/dicoms/components/DicomCanvas.vue | 90 +- .../trial-summary/audit-record/index.vue | 1722 ++++++----------- 2 files changed, 661 insertions(+), 1151 deletions(-) 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 1ad5f6e..4d77e8a 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue @@ -754,14 +754,10 @@ export default { getToolStateInfo(e) { const { element, currentPoints, image, viewport } = e.detail var imageId = image.imageId - var instanceId = imageId.split('/')[imageId.split('/').length - 1] - var frame = null - if (instanceId.includes('?frame=')) { - frame = instanceId.split('?frame=')[1] - instanceId = instanceId.split('?frame=')[0] - } + const imageInfo = this.getInstanceInfo(imageId) + var instanceId = imageInfo.instanceId + var frame = imageInfo.frame this.stack.frame = !isNaN(parseInt(frame)) ? parseInt(frame) : 0 - instanceId = instanceId.split('.')[0] const ToolStateManager = cornerstoneTools.globalImageIdSpecificToolStateManager for (var m = 0; m < this.measuredTools.length; m++) { var toolType = this.measuredTools[m] @@ -991,15 +987,10 @@ export default { mouseClick(e) { const { element, currentPoints, image, viewport } = e.detail var imageId = image.imageId - var instanceId = imageId.split('/')[imageId.split('/').length - 1] - var frame = null - if (instanceId.includes('?frame=')) { - frame = instanceId.split('?frame=')[1] - instanceId = instanceId.split('?frame=')[0] - } + const imageInfo = this.getInstanceInfo(imageId) + var instanceId = imageInfo.instanceId + var frame = imageInfo.frame this.stack.frame = !isNaN(parseInt(frame)) ? parseInt(frame) : 0 - instanceId = instanceId.split('.')[0] - const ToolStateManager = cornerstoneTools.globalImageIdSpecificToolStateManager for (let t = 0; t < this.measuredTools.length; t++) { var toolType = this.measuredTools[t] @@ -1095,14 +1086,10 @@ export default { this.minVistNum = this.visitTaskList[0].VisitTaskNum this.measureData = this.visitTaskList[idx].MeasureData const imageId = this.stack.imageIds[this.stack.currentImageIdIndex] - var instanceId = imageId.split('/')[imageId.split('/').length - 1] - var frame = null - if (instanceId.includes('?frame=')) { - frame = instanceId.split('?frame=')[1] - instanceId = instanceId.split('?frame=')[0] - } + const imageInfo = this.getInstanceInfo(imageId) + var instanceId = imageInfo.instanceId + var frame = imageInfo.frame this.stack.frame = !isNaN(parseInt(frame)) ? parseInt(frame) : 0 - instanceId = instanceId.split('.')[0] this.stack.instanceId = instanceId const ToolStateManager = cornerstoneTools.globalImageIdSpecificToolStateManager ToolStateManager.clearImageIdToolState(dicomSeries.imageIds) @@ -1141,7 +1128,7 @@ export default { }, onFirstImageLoaded(image) { console.log('onFirstImageLoaded') - return new Promise(async resolve => { + return new Promise(resolve => { const element = this.$refs.canvas var viewport = cornerstone.getDefaultViewportForImage(this.canvas, image) cornerstone.displayImage(this.canvas, image, viewport) @@ -1208,14 +1195,10 @@ export default { this.stack.firstImageLoading = false this.toolState.dicomInfoVisible = true - var instanceId = image.imageId.split('/')[image.imageId.split('/').length - 1] - var frame = null - if (instanceId.includes('?frame=')) { - frame = instanceId.split('?frame=')[1] - instanceId = instanceId.split('?frame=')[0] - } + const imageInfo = this.getInstanceInfo(image.imageId) + var instanceId = imageInfo.instanceId + var frame = imageInfo.frame this.stack.frame = !isNaN(parseInt(frame)) ? parseInt(frame) : 0 - instanceId = instanceId.split('.')[0] this.stack.instanceId = instanceId this.height = (this.stack.currentImageIdIndex) * 100 / (this.stack.imageIds.length - 1) this.resetWwwc() @@ -1281,14 +1264,10 @@ export default { this.stack.imageRendered = true // const { element } = e.detail var imageId = e.detail.image.imageId - var instanceId = imageId.split('/')[imageId.split('/').length - 1] - var frame = null - if (instanceId.includes('?frame=')) { - frame = instanceId.split('?frame=')[1] - instanceId = instanceId.split('?frame=')[0] - } + const imageInfo = this.getInstanceInfo(imageId) + var instanceId = imageInfo.instanceId + var frame = imageInfo.frame this.stack.frame = !isNaN(parseInt(frame)) ? parseInt(frame) : 0 - instanceId = instanceId.split('.')[0] if (this.imageId !== instanceId) { this.getOrientationMarker(e.detail.element) // 初次加载时,如果该影像存在标记,则以标记的窗宽窗位为初始化默认值,否则以序列的窗宽窗位为初始化默认值 @@ -1344,14 +1323,10 @@ export default { this.activeTool = 1 this.activeToolName = '' var { imageId } = element.image - var instanceId = imageId.split('/')[imageId.split('/').length - 1] - var frame = null - if (instanceId.includes('?frame=')) { - frame = instanceId.split('?frame=')[1] - instanceId = instanceId.split('?frame=')[0] - } + const imageInfo = this.getInstanceInfo(imageId) + var instanceId = imageInfo.instanceId + var frame = imageInfo.frame this.stack.frame = !isNaN(parseInt(frame)) ? parseInt(frame) : 0 - instanceId = instanceId.split('.')[0] if (e.detail.toolName === 'Length' || e.detail.toolName === 'ArrowAnnotate' || e.detail.toolName === 'RectangleRoi') { const measureData = {} measureData.studyId = this.stack.studyId @@ -1468,15 +1443,10 @@ export default { var element = cornerstone.getEnabledElement(this.canvas) var viewport = element.viewport var { imageId } = element.image - var instanceId = imageId.split('/')[imageId.split('/').length - 1] - var frame = null - if (instanceId.includes('?frame=')) { - frame = instanceId.split('?frame=')[1] - instanceId = instanceId.split('?frame=')[0] - } + const imageInfo = this.getInstanceInfo(imageId) + var instanceId = imageInfo.instanceId + var frame = imageInfo.frame this.stack.frame = !isNaN(parseInt(frame)) ? parseInt(frame) : 0 - instanceId = instanceId.split('.')[0] - var uuid = measurementData.uuid var idx = this.measureData.findIndex(item => item.MeasureData && item.MeasureData.data && item.MeasureData.data.uuid === uuid) if (idx > -1) { @@ -1533,11 +1503,8 @@ export default { // 判断有没有标记 获取第一个标记 var element = cornerstone.getEnabledElement(this.canvas) var { imageId } = element.image - var instanceId = imageId.split('/')[imageId.split('/').length - 1] - if (instanceId.includes('?frame=')) { - instanceId = instanceId.split('?frame=')[0] - } - instanceId = instanceId.split('.')[0] + const imageInfo = this.getInstanceInfo(imageId) + var instanceId = imageInfo.instanceId var idx = this.measureData.findIndex(item => item.InstanceId === instanceId) var measureData = null if (idx > -1) { @@ -1962,6 +1929,15 @@ export default { e.stopImmediatePropagation() e.stopPropagation() e.preventDefault() + }, + getInstanceInfo(imageId) { + const params = {} + const searchParams = new URLSearchParams(imageId.split('?')[1]) + + for (const [key, value] of searchParams.entries()) { + params[key] = value + } + return params } } diff --git a/src/views/trials/trials-panel/trial-summary/audit-record/index.vue b/src/views/trials/trials-panel/trial-summary/audit-record/index.vue index dc59b5e..4e268f5 100644 --- a/src/views/trials/trials-panel/trial-summary/audit-record/index.vue +++ b/src/views/trials/trials-panel/trial-summary/audit-record/index.vue @@ -3,7 +3,7 @@