Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is pending Details

main
caiyiling 2026-05-26 10:24:43 +08:00
commit d83a086087
4 changed files with 39 additions and 18 deletions

View File

@ -6,6 +6,7 @@
<div>Series #{{ dicomInfo.series }}</div>
<div>Image #{{ dicomInfo.frame }}</div>
<div>{{ dicomInfo.modality }}</div>
<div v-if="isComparison" style="font-size: 30px;color: #428bca;">{{ tip }}</div>
</div>
<div v-show="dicomInfo.series" class="info-image">
<!-- <div>
@ -110,6 +111,12 @@ export default {
return `${this.$store.state.trials.downloadSize}, NS: ${this.$store.state.trials.downloadTip}`
},
},
props: {
isComparison: {
type: Boolean,
default: false
}
},
data() {
return {
loading: false,
@ -167,6 +174,7 @@ export default {
orientationMarkers: [],
originalMarkers: [],
dcmTag: { visible: false, title: this.$t('trials:dicom-tag:title') },
tip: ''
}
},
@ -201,7 +209,8 @@ export default {
},
methods: {
loadImageStack(dicomSeries) {
loadImageStack(dicomSeries, text = '') {
this.tip = text
this.$nextTick(() => {
if (!dicomSeries || !Array.isArray(dicomSeries.imageIds) || dicomSeries.imageIds.length === 0) {
return
@ -392,7 +401,7 @@ export default {
// let instanceInfo = this.series.instanceInfoList.find(item => item.ImageId === e.detail.image.imageId)
let instanceInfo = this.series?.instanceInfoList.find(item => {
let s1 = item.ImageId ? item.ImageId.split("?")[0] : ''
let s2 = e.detail.image.imageId ? e.detail.image.imageId.split("?")[0] : ''
let s2 = e.detail.image.imageId ? e.detail.image.imageId.split("?")[0] : ''
return s1 === s2
})
this.dicomInfo.IsMasked = instanceInfo ? instanceInfo.IsMasked : false

View File

@ -3,7 +3,7 @@
<div ref="dicomViewer" class="dicom-viewer">
<!-- <div v-for="i in layoutRow" :key="i" class="dicom-row" :style="{height: rowHeight}">
<div v-for="j in layoutCol" :key="j" class="dicom-item" oncontextmenu="return false">
<dicom-canvas ref="dicomCanvas" style="width:100%;height:100%" />
<dicom-canvas :isComparison="isComparison" ref="dicomCanvas" style="width:100%;height:100%" />
</div>
</div>-->
<div class="Anonymous" v-if="isAnonymous">
@ -33,17 +33,17 @@
<div v-show="layoutRow >= 1 && layoutCol >= 1" class="dicom-item"
:class="{ 'activeItem': activeItem == 'dicomCanvas0' }" data-index="0" @click="activateDicomCanvas(0)"
@dblclick="setFullScreen($event)">
<dicom-canvas ref="dicomCanvas0" style="width:100%;height:100%" />
<dicom-canvas :isComparison="isComparison" ref="dicomCanvas0" style="width:100%;height:100%" />
</div>
<div v-show="layoutRow >= 1 && layoutCol >= 2" class="dicom-item"
:class="{ 'activeItem': activeItem == 'dicomCanvas1' }" data-index="1" @click="activateDicomCanvas(1)"
@dblclick="setFullScreen($event)">
<dicom-canvas ref="dicomCanvas1" style="width:100%;height:100%" />
<dicom-canvas :isComparison="isComparison" ref="dicomCanvas1" style="width:100%;height:100%" />
</div>
<div v-show="layoutRow >= 1 && layoutCol >= 3" class="dicom-item"
:class="{ 'activeItem': activeItem == 'dicomCanvas2' }" data-index="2" @click="activateDicomCanvas(2)"
@dblclick="setFullScreen($event)">
<dicom-canvas ref="dicomCanvas2" style="width:100%;height:100%" />
<dicom-canvas :isComparison="isComparison" ref="dicomCanvas2" style="width:100%;height:100%" />
</div>
</div>
@ -51,17 +51,17 @@
<div v-show="layoutRow >= 2 && layoutCol >= 1" class="dicom-item"
:class="{ 'activeItem': activeItem == 'dicomCanvas3' }" data-index="3" @click="activateDicomCanvas(3)"
@dblclick="setFullScreen($event)">
<dicom-canvas ref="dicomCanvas3" style="width:100%;height:100%" />
<dicom-canvas :isComparison="isComparison" ref="dicomCanvas3" style="width:100%;height:100%" />
</div>
<div v-show="layoutRow >= 2 && layoutCol >= 2" class="dicom-item"
:class="{ 'activeItem': activeItem == 'dicomCanvas4' }" data-index="4" @click="activateDicomCanvas(4)"
@dblclick="setFullScreen($event)">
<dicom-canvas ref="dicomCanvas4" style="width:100%;height:100%" />
<dicom-canvas :isComparison="isComparison" ref="dicomCanvas4" style="width:100%;height:100%" />
</div>
<div v-show="layoutRow >= 2 && layoutCol >= 3" class="dicom-item"
:class="{ 'activeItem': activeItem == 'dicomCanvas5' }" data-index="5" @click="activateDicomCanvas(5)"
@dblclick="setFullScreen($event)">
<dicom-canvas ref="dicomCanvas5" style="width:100%;height:100%" />
<dicom-canvas :isComparison="isComparison" ref="dicomCanvas5" style="width:100%;height:100%" />
</div>
</div>
@ -69,17 +69,17 @@
<div v-show="layoutRow == 3 && layoutCol >= 1" class="dicom-item"
:class="{ 'activeItem': activeItem == 'dicomCanvas6' }" data-index="6" @click="activateDicomCanvas(6)"
@dblclick="setFullScreen($event)">
<dicom-canvas ref="dicomCanvas6" style="width:100%;height:100%" />
<dicom-canvas :isComparison="isComparison" ref="dicomCanvas6" style="width:100%;height:100%" />
</div>
<div v-show="layoutRow == 3 && layoutCol >= 2" class="dicom-item"
:class="{ 'activeItem': activeItem == 'dicomCanvas7' }" data-index="7" @click="activateDicomCanvas(7)"
@dblclick="setFullScreen($event)">
<dicom-canvas ref="dicomCanvas7" style="width:100%;height:100%" />
<dicom-canvas :isComparison="isComparison" ref="dicomCanvas7" style="width:100%;height:100%" />
</div>
<div v-show="layoutRow == 3 && layoutCol >= 3" class="dicom-item"
:class="{ 'activeItem': activeItem == 'dicomCanvas8' }" data-index="8" @click="activateDicomCanvas(8)"
@dblclick="setFullScreen($event)">
<dicom-canvas ref="dicomCanvas8" style="width:100%;height:100%" />
<dicom-canvas :isComparison="isComparison" ref="dicomCanvas8" style="width:100%;height:100%" />
</div>
</div>
</div>
@ -488,7 +488,7 @@ export default {
},
computed: {
isMultiple() {
return this.series?.instanceInfoList[0]?.NumberOfFrames > 0
return this.series?.instanceInfoList[0]?.NumberOfFrames > 1
}
},
mounted() {
@ -562,8 +562,8 @@ export default {
],
imageIds: [newImageId]
}, serie)
this.$refs[`dicomCanvas0`].loadImageStack(dicomCanvas0_info)
this.$refs[`dicomCanvas1`].loadImageStack(dicomCanvas1_info)
this.$refs[`dicomCanvas0`].loadImageStack(dicomCanvas0_info, this.$t('DicomViewer:anonymous:before'))
this.$refs[`dicomCanvas1`].loadImageStack(dicomCanvas1_info, this.$t('DicomViewer:anonymous:after'))
})
} else {
this.isComparison = f

View File

@ -1,5 +1,5 @@
<template>
<el-form ref="equipmentForm" :model="form" :rules="rules" label-width="350px">
<el-form ref="equipmentForm" :model="form" :rules="rules" label-width="380px">
<div class="base-dialog-body">
<!-- 扫描设备 -->
<el-form-item :label="$t('trials:equiptResearch:form:equipment')" prop="EquipmentTypeEnum"

View File

@ -95,7 +95,8 @@
<span>{{ $t('trials:reading:Segmentations:title:Show:Fill&Outline') }}</span>
<div style="display: flex;">
<div :class="['tool-item', SegmentConfig.renderOutline && SegmentConfig.renderFill ? 'tool-item-active' : '']"
:title="$t('trials:dicom-show:fill_outline')" @click.stop="changeSegmentConfig(true, true)">
:title="$t('trials:dicom-show:fill_outline')"
@click.stop="changeSegmentConfig(true, true)">
<svg-icon icon-class="fill_outline" class="svg-icon" />
</div>
<div :class="['tool-item', SegmentConfig.renderOutline && !SegmentConfig.renderFill ? 'tool-item-active' : '']"
@ -242,7 +243,13 @@
<el-color-picker v-model="item.color" size="mini"
@change="(e) => changeColor(e, item)"></el-color-picker>
<div class="SegmentName">{{ item.SegmentLabel }}</div>
<div style="width: 100%;display: flex;align-items: center;justify-content: space-between;">
<div class="SegmentName">{{ item.SegmentLabel }}</div>
<div v-if="item.stats && item.stats['volume']">{{
Number(item.stats['volume'].value).toFixed(digitPlaces) }}{{
item.stats['volume'].unit }}</div>
</div>
</div>
<div class="btnBox">
<svg-icon :icon-class="item && !item.view ? 'eye' : 'eye-open'"
@ -2248,6 +2255,7 @@ export default {
display: flex;
align-items: center;
margin-left: 30px;
width: 70%;
.serialNum {
position: absolute;
@ -2271,6 +2279,10 @@ export default {
.SegmentName {
margin-left: 5px;
max-width: 120px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}