From 9ff7928b16c85b3479a7a419bbcb746dcf88ad38 Mon Sep 17 00:00:00 2001
From: wangxiaoshuang <825034831@qq.com>
Date: Wed, 6 May 2026 14:38:26 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=8C=BF=E5=90=8D?=
=?UTF-8?q?=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 | 2 +-
src/components/Dicom/DicomViewer.vue | 40 +++++++++++++++++++++-------
2 files changed, 31 insertions(+), 11 deletions(-)
diff --git a/src/components/Dicom/DicomCanvas.vue b/src/components/Dicom/DicomCanvas.vue
index 45721380..a82ec638 100644
--- a/src/components/Dicom/DicomCanvas.vue
+++ b/src/components/Dicom/DicomCanvas.vue
@@ -304,7 +304,7 @@ export default {
cornerstoneTools.addToolForElement(element, Note_RectangleRoiTool, {
configuration: {
color: '#f00',
- lineWidth: 0.5,
+ lineWidth: 2,
drawHandles: false,
fillColor: 'rgba(0, 0, 0, 1)',
},
diff --git a/src/components/Dicom/DicomViewer.vue b/src/components/Dicom/DicomViewer.vue
index 9b916af2..6fa58ec3 100644
--- a/src/components/Dicom/DicomViewer.vue
+++ b/src/components/Dicom/DicomViewer.vue
@@ -9,10 +9,10 @@
{{
+ @click="setToolActive($event, 'Note_RectangleRoi', true)">{{
$t('DicomViewer:anonymous:Note_RectangleRoi') }}
{{
+ @click="setToolActive($event, 'Eraser', true)">{{
$t('DicomViewer:anonymous:Eraser') }}
{{
@@ -299,7 +299,8 @@
v-if="type === 'Study' && modality && ['PT、CT', 'CT、PT', 'PET-CT'].includes(modality)">
{{ $t('trials:tab:patientData') }}
WW/WL: {{ imageInfo.wwwc }}
@@ -658,13 +658,12 @@ export default {
}
})
viewport.render()
- if (this.series.Modality === 'PT') {
+ if (this.series.Modality === 'PT' || this.series.Modality === 'NM') {
setTimeout(() => {
- viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true })
- viewport.resetProperties()
- viewport.setProperties({ voiRange: { upper: 5, lower: 0 } })
+ // viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true })
+ // viewport.resetProperties()
+ viewport.setProperties({ voiRange: { upper: 5, lower: 0 }, invert: true }, this.volumeId)
viewport.render()
- renderingEngine.render()
}, 100)
}
await renderSegmentation(this.series, this.series.TaskInfo, this.viewportId, this.SegmentConfig, this.renderingEngineId, null, this.actionConfiguration, this.segmentationId, this.segmentIndex)
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 3bf43e90..4a6264e4 100644
--- a/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue
+++ b/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue
@@ -3052,7 +3052,6 @@ export default {
if (this.readingTool !== 3) {
viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true, resetRotation: true })
}
- viewport.resetProperties()
if (this.isMPR) {
let volume = cache.getVolume(this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].volumeId)
const voi = metaData.get('voiLutModule', volume._imageIds[Math.ceil((volume._imageIds.length - 1) / 2)])
@@ -3068,9 +3067,12 @@ export default {
return this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].setFullScreen(index)
}
+ // viewport.resetProperties()
this.setToolsPassive()
if (this.readingTool === 3 && this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].series.Modality === 'PT') {
- viewport.setProperties({ voiRange: { upper: 5, lower: 0 } })
+ viewport.setProperties({ voiRange: { upper: 5, lower: 0 }, invert: true }, this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].volumeId)
+ } else {
+ viewport.resetProperties()
}
viewport.render()
// renderingEngine.render()
@@ -3405,6 +3407,7 @@ export default {
// 切换全屏
async toggleFullScreen(e, index) {
if (this.isDelay && (this.readingTool === 3 || this.isMPR)) return false
+ if (this.readingTool === 3 && this.isMPR) return false
if (this.readingTool === 3) {
let res = await this.changeScreenSave()
if (!res) return false
diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/VolumeViewport.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/VolumeViewport.vue
index 30ff1fa5..bd295701 100644
--- a/src/views/trials/trials-panel/reading/dicoms3D/components/VolumeViewport.vue
+++ b/src/views/trials/trials-panel/reading/dicoms3D/components/VolumeViewport.vue
@@ -59,10 +59,10 @@
Location: {{
`${Number(imageInfo.location).toFixed(digitPlaces)} mm`
- }}
+ }}
Slice Thickness: {{
`${Number(imageInfo.sliceThickness).toFixed(digitPlaces)} mm`
- }}
+ }}
WW/WL: {{ imageInfo.wwwc }}
@@ -706,11 +706,10 @@ export default {
viewport.render()
if (this.series.Modality === 'PT' || this.series.Modality === 'NM') {
setTimeout(() => {
- viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true })
- viewport.resetProperties()
- viewport.setProperties({ voiRange: { upper: 5, lower: 0 } })
+ // viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true })
+ // viewport.resetProperties()
+ viewport.setProperties({ voiRange: { upper: 5, lower: 0 }, invert: true }, this.volumeId)
viewport.render()
- renderingEngine.render()
}, 100)
}
await renderSegmentation(this.series, this.series.TaskInfo, this.viewportId, this.SegmentConfig, this.renderingEngineId, data.segment, this.actionConfiguration, this.segmentationId, this.segmentIndex)
From 07b1e5d1f97161793b968feaca6a03e72868f8ca Mon Sep 17 00:00:00 2001
From: wangxiaoshuang <825034831@qq.com>
Date: Wed, 6 May 2026 15:32:51 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E5=8C=BF=E5=90=8D=E5=A4=B1=E8=B4=A5?=
=?UTF-8?q?=E8=BF=9B=E8=A1=8C=E6=8F=90=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/Dicom/DicomViewer.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/Dicom/DicomViewer.vue b/src/components/Dicom/DicomViewer.vue
index 6fa58ec3..602ac1f2 100644
--- a/src/components/Dicom/DicomViewer.vue
+++ b/src/components/Dicom/DicomViewer.vue
@@ -642,7 +642,7 @@ export default {
})
})
let res = await this.studyMaskImage(data)
- if (!res || res.length <= 0) return false
+ if (!res || res.length <= 0) return this.$confirm(this.$t("DicomViewer:anonymous:studyMaskImageFail"))
this.$emit("update:loading", true)
if (!isAll) {
let strs = image.imageId.split("?")