From b5f327fc3cbb1d78da9aafd7186ed3c3cff06811 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Wed, 24 Dec 2025 16:24:23 +0800 Subject: [PATCH] =?UTF-8?q?MPR=E5=A2=9E=E5=8A=A0=E5=BD=B1=E5=83=8F?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E5=89=8D=E7=9A=84=E9=AA=8C=E8=AF=81=EF=BC=9A?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E6=9D=A1=E4=BB=B6=EF=BC=9A=E5=BA=8F=E5=88=97?= =?UTF-8?q?=E7=9A=84=E6=96=87=E4=BB=B6=E6=95=B0=E9=87=8F>5,=E5=BD=B1?= =?UTF-8?q?=E5=83=8F=E5=85=B7=E5=A4=87imageOrientationPatient,imagePositio?= =?UTF-8?q?nPatient?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/dicoms3D/components/PetCtViewport.vue | 6 +++--- .../trials-panel/reading/dicoms3D/components/ReadPage.vue | 8 ++++++-- .../trials-panel/reading/dicoms3D/components/Viewport.vue | 6 +++++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/PetCtViewport.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/PetCtViewport.vue index 28eb5452..3125926b 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/PetCtViewport.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/PetCtViewport.vue @@ -479,9 +479,9 @@ export default { async setSeriesInfo(obj, isLocate = false, option = {}) { try { let { data } = obj - // if (this.series && data.Id === this.series.Id && data.Description === this.series.Description) { - // data.SliceIndex = this.series.SliceIndex - // } + if (this.series && data.Id === this.series.Id && data.Description === this.series.Description && !isLocate) { + data.SliceIndex = this.series.SliceIndex + } // this.series = { ...data } const renderingEngine = getRenderingEngine(this.renderingEngineId) const viewport = renderingEngine.getViewport(this.viewportId) 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 6b917441..7ffb0a12 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue @@ -3280,13 +3280,17 @@ export default { let viewportSeries = this.$refs[`viewport-volume-0`][0].series if (data && viewportSeries.SeriesInstanceUid === data.SeriesInstanceUid) return resolve(true) } - + if (!data) { + let { imageOrientationPatient, imagePositionPatient } = this.$refs[`viewport-${this.activeViewportIndex}`][0].imageInfo + if (!imageOrientationPatient || !imagePositionPatient || imagePositionPatient.length <= 0 || imageOrientationPatient.length <= 0) return this.$confirm(this.$t('trials:reading:confirm:imageNotMPR')) + } + const series = data ? data : this.$refs[`viewport-${this.activeViewportIndex}`][0].series + if (series.ImageIds.length <= 5) return this.$confirm(this.$t('trials:reading:confirm:smallNumberOfimage')) this.isMPR = true this.rows = 3 this.cols = 1 this.loading = true this.loadingText = this.$t('trials:lugano:message:loadVolumes') - const series = data ? data : this.$refs[`viewport-${this.activeViewportIndex}`][0].series if (!data) this.activeViewportIndex = 0 const visitTaskId = this.visitTaskList[this.activeTaskIndex].VisitTaskId this.$refs[visitTaskId][0].setSeriesActive(series.StudyIndex, series.SeriesIndex) diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/Viewport.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/Viewport.vue index 7698146c..549618a5 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/Viewport.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/Viewport.vue @@ -141,7 +141,9 @@ export default { size: null, location: null, sliceThickness: null, - wwwc: null + wwwc: null, + imageOrientationPatient: [], + imagePositionPatient: [] }, digitPlaces: 2, orientationMarkers: [], @@ -194,6 +196,8 @@ export default { this.imageInfo.zoom = zoom.toFixed(4) this.imageInfo.size = `${detail.image.columns}*${detail.image.rows}` const imagePlaneModule = metaData.get('imagePlaneModule', detail.imageId) + this.imageInfo.imageOrientationPatient = imagePlaneModule.imageOrientationPatient + this.imageInfo.imagePositionPatient = imagePlaneModule.imagePositionPatient this.imageInfo.location = imagePlaneModule.sliceLocation // this.imageInfo.wwwc = `${Math.round(detail.image.windowWidth)}/${Math.round(detail.image.windowCenter)}` this.getOrientationMarker()