阅片中上传影像后,查看后处理的影像时,关联访视的Tab需要处理
continuous-integration/drone/push Build is passing Details

rj
wangxiaoshuang 2026-06-29 17:25:04 +08:00
parent c80e7ca5a9
commit 2b93fd18ff
3 changed files with 27 additions and 16 deletions

View File

@ -304,7 +304,8 @@
</el-table> </el-table>
<study-view v-if="model_cfg.visible" :model_cfg="model_cfg" :IsDicom="true" :bodyPart="bodyPart" <study-view v-if="model_cfg.visible" :model_cfg="model_cfg" :IsDicom="true" :bodyPart="bodyPart"
:subjectVisitId="openSubjectVisitId" :modelList="modelList" :isUpload="openIsUpload" :subjectVisitId="openSubjectVisitId" :modelList="modelList" :isUpload="openIsUpload"
:visitTaskId="openVisitTaskId" :TrialModality="TrialModality" @getList="getList" /> :visitTaskId="openVisitTaskId" :TrialModality="TrialModality" :IsReadingTaskViewInOrder="IsReadingTaskViewInOrder"
@getList="getList" />
</div> </div>
</template> </template>
<script> <script>
@ -426,6 +427,7 @@ export default {
openSubjectVisitId: null, openSubjectVisitId: null,
openVisitTaskId: null, openVisitTaskId: null,
TrialModality: [], TrialModality: [],
IsReadingTaskViewInOrder: 2
} }
}, },
async mounted() { async mounted() {
@ -469,6 +471,7 @@ export default {
this.loading = false this.loading = false
if (res.IsSuccess) { if (res.IsSuccess) {
this.TrialModality = res.OtherInfo.TrialModality.split('|') this.TrialModality = res.OtherInfo.TrialModality.split('|')
this.IsReadingTaskViewInOrder = res.OtherInfo.IsReadingTaskViewInOrder || 2
this.StudyInstanceUidList = [] this.StudyInstanceUidList = []
this.SopInstanceUidList = [] this.SopInstanceUidList = []
this.UploadStudyList = [] this.UploadStudyList = []
@ -1639,7 +1642,7 @@ export default {
const routeData = this.$router.resolve({ const routeData = this.$router.resolve({
path: `/showvisitdicoms?page=upload&trialId=${trialId}&visitTaskId=${this.IsImageSegment ? 'undefined' : row.VisitTaskId path: `/showvisitdicoms?page=upload&trialId=${trialId}&visitTaskId=${this.IsImageSegment ? 'undefined' : row.VisitTaskId
}&subjectVisitId=${row.SourceSubjectVisitId }&subjectVisitId=${row.SourceSubjectVisitId
}&isReading=1&TokenKey=${token}`, }&isReading=1&TokenKey=${token}&IsReadingTaskViewInOrder=${this.IsReadingTaskViewInOrder}`,
}) })
this.open = window.open(routeData.href, '_blank') this.open = window.open(routeData.href, '_blank')
}, },

View File

@ -139,6 +139,10 @@ export default {
return {} return {}
}, },
}, },
IsReadingTaskViewInOrder: {
type: Number,
default: 2,
}
}, },
components: { components: {
'base-model': baseModel, 'base-model': baseModel,
@ -176,7 +180,7 @@ export default {
var token = getToken() var token = getToken()
let trialId = this.$route.query.trialId let trialId = this.$route.query.trialId
routeData = this.$router.resolve({ routeData = this.$router.resolve({
path: `/showvisitdicoms?trialId=${trialId}&visitTaskId=${this.visitTaskId}&subjectVisitId=${this.subjectVisitId}&isReading=1&TokenKey=${token}`, path: `/showvisitdicoms?trialId=${trialId}&visitTaskId=${this.visitTaskId}&subjectVisitId=${this.subjectVisitId}&isReading=1&TokenKey=${token}&IsReadingTaskViewInOrder=${this.IsReadingTaskViewInOrder}`,
}) })
} else { } else {
let trialId = this.$route.query.trialId let trialId = this.$route.query.trialId

View File

@ -23,10 +23,10 @@
<div class="text-desc"> <div class="text-desc">
{{ study.StudyCode }} {{ study.StudyCode }}
</div> </div>
<!-- <div v-show="study.Description" class="text-desc"> <!-- <div v-show="study.Description" class="text-desc">
{{ study.Description }} {{ study.Description }}
</div> --> </div> -->
<!-- <el-tooltip v-show="study.Description" class="item" effect="dark" :content="study.Description" <!-- <el-tooltip v-show="study.Description" class="item" effect="dark" :content="study.Description"
placement="bottom"> placement="bottom">
<div v-if="study.Description" <div v-if="study.Description"
style="width: 50px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;padding: 1x;"> style="width: 50px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;padding: 1x;">
@ -155,8 +155,8 @@
</div> </div>
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane v-show="!visitTaskId" :label="$t('trials:dicom-show:relatedVisit')" name="relation-study" <el-tab-pane v-show="!visitTaskId && IsReadingTaskViewInOrder < 2"
class="pane-relation-wrapper"> :label="$t('trials:dicom-show:relatedVisit')" name="relation-study" class="pane-relation-wrapper">
<div class="viewerSidethumbinner"> <div class="viewerSidethumbinner">
<el-collapse v-model="relationActiveName" @change="handelRelationActiveChange"> <el-collapse v-model="relationActiveName" @change="handelRelationActiveChange">
@ -172,7 +172,7 @@
<div class="text-desc"> <div class="text-desc">
{{ study.StudyCode }} {{ study.StudyCode }}
</div> </div>
<!-- <div v-show="study.Description" class="text-desc"> <!-- <div v-show="study.Description" class="text-desc">
{{ study.Description }} {{ study.Description }}
</div> --> </div> -->
@ -187,19 +187,18 @@
<div class="viewerSidethumbs ps" style="position: relative;"> <div class="viewerSidethumbs ps" style="position: relative;">
<div class="viewerSidethumbinner"> <div class="viewerSidethumbinner">
<div v-for="(seriesItem, index) in study.seriesList" :key="seriesItem.seriesId"> <div v-for="(seriesItem, index) in study.seriesList" :key="seriesItem.seriesId">
<div class="viewernavigatorwrapper" <div class="viewernavigatorwrapper" style="position: relative;border:1px solid #434343;"
style="position: relative;border:1px solid #434343;" series-type="relation" series-type="relation"
@click="showRelationSeriesImage($event, seriesItem, studyIndex, index)"> @click="showRelationSeriesImage($event, seriesItem, studyIndex, index)">
<div class="imageBox" style="width: 72px;height:72px;"> <div class="imageBox" style="width: 72px;height:72px;">
<img class="image-preview" :src="seriesItem.previewImageUrl" <img class="image-preview" :src="seriesItem.previewImageUrl" crossorigin="anonymous"
crossorigin="anonymous" alt="" style="width: 72px;height:72px;" fit="fill" /> alt="" style="width: 72px;height:72px;" fit="fill" />
<i class="el-icon-refresh" :title="$t('tip:refreshImage')" <i class="el-icon-refresh" :title="$t('tip:refreshImage')"
@click.stop="refreshImage(item)"></i> @click.stop="refreshImage(item)"></i>
</div> </div>
<div class="viewernavitextwrapper"> <div class="viewernavitextwrapper">
<div <div style="padding: 1px 5px 1px 1px;display: flex;justify-content: space-between;">
style="padding: 1px 5px 1px 1px;display: flex;justify-content: space-between;">
<div v-if="seriesItem.keySeries" style="color:red"> <div v-if="seriesItem.keySeries" style="color:red">
Key Images Key Images
</div> </div>
@ -332,7 +331,8 @@ export default {
visitTaskId: null, visitTaskId: null,
page: '', page: '',
activeSeriesId: null, activeSeriesId: null,
activeInstanceId: null activeInstanceId: null,
IsReadingTaskViewInOrder: 2
} }
}, },
mounted() { mounted() {
@ -351,6 +351,9 @@ export default {
this.isFromCRCUpload = !!this.$router.currentRoute.query.isFromCRCUpload this.isFromCRCUpload = !!this.$router.currentRoute.query.isFromCRCUpload
this.visitTaskId = this.$router.currentRoute.query.visitTaskId this.visitTaskId = this.$router.currentRoute.query.visitTaskId
this.page = this.$route.query.page this.page = this.$route.query.page
if (this.$router.currentRoute.query.IsReadingTaskViewInOrder) {
this.IsReadingTaskViewInOrder = Number(this.$router.currentRoute.query.IsReadingTaskViewInOrder)
}
this.beforeUnloadHandler = () => { this.beforeUnloadHandler = () => {
cornerstone.imageCache.purgeCache() cornerstone.imageCache.purgeCache()
requestPoolManager.resetRequestPool() requestPoolManager.resetRequestPool()
@ -951,7 +954,7 @@ export default {
if (this.imageList.length > 0) { if (this.imageList.length > 0) {
requestPoolManager.startTaskTimer() requestPoolManager.startTaskTimer()
this.imageList.map(image => { this.imageList.map(image => {
requestPoolManager.loadAndCacheImagePlus(image.imageId, image.seriesId, image.priority).catch(() => {}) requestPoolManager.loadAndCacheImagePlus(image.imageId, image.seriesId, image.priority).catch(() => { })
}) })
requestPoolManager.sortTaskPool() requestPoolManager.sortTaskPool()
this.imageList = [] this.imageList = []
@ -1338,6 +1341,7 @@ export default {
border-color: #213a54 !important; border-color: #213a54 !important;
background-color: #213a54; background-color: #213a54;
} }
.frame_content_active { .frame_content_active {
border-color: #213a54 !important; border-color: #213a54 !important;
background-color: #213a54; background-color: #213a54;