【dicom分割】MPR横截面的普通标记绑定保存时会提示是否切换至二维视图
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
653faaf4ba
commit
8315bcf59f
|
|
@ -3723,7 +3723,7 @@ export default {
|
||||||
})
|
})
|
||||||
this.setToolsPassive()
|
this.setToolsPassive()
|
||||||
},
|
},
|
||||||
async activeSeries(obj) {
|
async activeSeries(obj, isSave = false) {
|
||||||
if (this.readingTool === 3) {
|
if (this.readingTool === 3) {
|
||||||
let res = await this.changeScreenSave()
|
let res = await this.changeScreenSave()
|
||||||
if (!res) return false
|
if (!res) return false
|
||||||
|
|
@ -3735,6 +3735,7 @@ export default {
|
||||||
if (!confirm) return false
|
if (!confirm) return false
|
||||||
this.$refs[`ecrf_${this.taskInfo.VisitTaskId}`][0].removeAllNoSaveAnnotation()
|
this.$refs[`ecrf_${this.taskInfo.VisitTaskId}`][0].removeAllNoSaveAnnotation()
|
||||||
} else {
|
} else {
|
||||||
|
if (isSave) return false
|
||||||
const confirm = await this.$confirm(this.$t('trials:reading:confirm:changeStack'))
|
const confirm = await this.$confirm(this.$t('trials:reading:confirm:changeStack'))
|
||||||
if (!confirm) return false
|
if (!confirm) return false
|
||||||
}
|
}
|
||||||
|
|
@ -4022,7 +4023,7 @@ export default {
|
||||||
}
|
}
|
||||||
let res = await this.openMPRViewport(series)
|
let res = await this.openMPRViewport(series)
|
||||||
if (!res) {
|
if (!res) {
|
||||||
this.$refs[series.TaskInfo.VisitTaskId][0].setSeriesActive(series.StudyIndex, series.SeriesIndex)
|
this.$refs[series.TaskInfo.VisitTaskId][0].setSeriesActive(series.StudyIndex, series.SeriesIndex, true)
|
||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
const divForDownloadViewport = document.querySelector(
|
const divForDownloadViewport = document.querySelector(
|
||||||
`div[data-viewport-uid="${this.viewportKey}-${this.activeViewportIndex}"]`
|
`div[data-viewport-uid="${this.viewportKey}-${this.activeViewportIndex}"]`
|
||||||
|
|
@ -4534,7 +4535,7 @@ export default {
|
||||||
return new Promise(async (resolve, reject) => {
|
return new Promise(async (resolve, reject) => {
|
||||||
this.setToolsPassive()
|
this.setToolsPassive()
|
||||||
if (this.isMPR) {
|
if (this.isMPR) {
|
||||||
this.activeSeries(this.$refs[`viewport-MPR-0`][0].series)
|
this.activeSeries(this.$refs[`viewport-MPR-0`][0].series, true)
|
||||||
resolve(false)
|
resolve(false)
|
||||||
if (!data) return resolve(false)
|
if (!data) return resolve(false)
|
||||||
let viewportSeries = this.$refs[`viewport-MPR-0`][0].series
|
let viewportSeries = this.$refs[`viewport-MPR-0`][0].series
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
<div class="ps">
|
<div class="ps">
|
||||||
<el-collapse v-model="activeNames">
|
<el-collapse v-model="activeNames">
|
||||||
|
|
||||||
<el-collapse-item v-for="(study, index) in studyList" :key="`${study.StudyId}`" :name="`${study.StudyId}`">
|
<el-collapse-item v-for="(study, index) in studyList" :key="`${study.StudyId}`" :name="`${study.StudyId}`">
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
<div v-if="!study.IsCriticalSequence" class="dicom-desc">
|
<div v-if="!study.IsCriticalSequence" class="dicom-desc">
|
||||||
<div style="text-overflow: ellipsis;overflow: hidden;">
|
<div style="text-overflow: ellipsis;overflow: hidden;">
|
||||||
|
|
@ -24,7 +24,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span class="study-meta-line" :title="study.Modalities">
|
<span class="study-meta-line" :title="study.Modalities">
|
||||||
<span v-if="taskInfo && taskInfo.IsReadingTaskViewInOrder !== 0" class="study-code" :title="study.StudyCode">{{ study.StudyCode }}</span>
|
<span v-if="taskInfo && taskInfo.IsReadingTaskViewInOrder !== 0" class="study-code"
|
||||||
|
:title="study.StudyCode">{{ study.StudyCode }}</span>
|
||||||
<span class="study-modality">{{ `${study.Modalities}(${study.SeriesCount})` }}</span>
|
<span class="study-modality">{{ `${study.Modalities}(${study.SeriesCount})` }}</span>
|
||||||
<span class="patient-info" v-if="['PT、CT', 'CT、PT', 'PET-CT'].includes(study.Modalities)">
|
<span class="patient-info" v-if="['PT、CT', 'CT、PT', 'PET-CT'].includes(study.Modalities)">
|
||||||
<el-popover placement="right-start" trigger="hover" popper-class="patient-info-popper">
|
<el-popover placement="right-start" trigger="hover" popper-class="patient-info-popper">
|
||||||
|
|
@ -81,8 +82,7 @@
|
||||||
style="position: absolute;right: 0;top: 0;">
|
style="position: absolute;right: 0;top: 0;">
|
||||||
<el-popover placement="right" trigger="hover" popper-class="instance_frame_wrapper">
|
<el-popover placement="right" trigger="hover" popper-class="instance_frame_wrapper">
|
||||||
<div class="frame_list">
|
<div class="frame_list">
|
||||||
<div v-for="(instance, idx) in series.InstanceInfoList" :key="instance.Id"
|
<div v-for="(instance, idx) in series.InstanceInfoList" :key="instance.Id" class="frame_content"
|
||||||
class="frame_content"
|
|
||||||
:class="{ 'frame_content_active': activeInstanceId === instance.Id }"
|
:class="{ 'frame_content_active': activeInstanceId === instance.Id }"
|
||||||
:style="{ 'margin-bottom': idx < series.InstanceInfoList.length - 1 ? '5px' : '0px' }"
|
:style="{ 'margin-bottom': idx < series.InstanceInfoList.length - 1 ? '5px' : '0px' }"
|
||||||
@click.stop="showMultiFrames(index, series, i, instance)">
|
@click.stop="showMultiFrames(index, series, i, instance)">
|
||||||
|
|
@ -130,7 +130,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
|
|
||||||
|
|
||||||
</el-collapse>
|
</el-collapse>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -205,18 +205,19 @@ export default {
|
||||||
this.activeStudyIndex = studyIndex
|
this.activeStudyIndex = studyIndex
|
||||||
this.activeSeriesIndex = seriesIndex
|
this.activeSeriesIndex = seriesIndex
|
||||||
this.activeInstanceId = null
|
this.activeInstanceId = null
|
||||||
},
|
},
|
||||||
activeStudy(id) {
|
activeStudy(id) {
|
||||||
console.log('activeStudy')
|
console.log('activeStudy')
|
||||||
if (this.activeNames.indexOf(id) > -1) return
|
if (this.activeNames.indexOf(id) > -1) return
|
||||||
this.activeNames.push(id)
|
this.activeNames.push(id)
|
||||||
},
|
},
|
||||||
setSeriesActive(studyIndex, seriesIndex) {
|
setSeriesActive(studyIndex, seriesIndex, isSave = false) {
|
||||||
this.activeStudyIndex = studyIndex
|
this.activeStudyIndex = studyIndex
|
||||||
this.activeSeriesIndex = seriesIndex
|
this.activeSeriesIndex = seriesIndex
|
||||||
const studyId = this.studyList[studyIndex].StudyId
|
const studyId = this.studyList[studyIndex].StudyId
|
||||||
if (!studyId) return
|
if (!studyId) return
|
||||||
this.activeStudy(studyId)
|
this.activeStudy(studyId)
|
||||||
|
if (isSave) return false
|
||||||
DicomEvent.$emit('activeSeries', this.studyList[studyIndex].SeriesList[this.activeSeriesIndex])
|
DicomEvent.$emit('activeSeries', this.studyList[studyIndex].SeriesList[this.activeSeriesIndex])
|
||||||
},
|
},
|
||||||
showMultiFrames(studyIndex, series, seriesIndex, instance) {
|
showMultiFrames(studyIndex, series, seriesIndex, instance) {
|
||||||
|
|
@ -482,25 +483,29 @@ export default {
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.study-wrapper {
|
.study-wrapper {
|
||||||
.instance_frame_wrapper{
|
.instance_frame_wrapper {
|
||||||
min-width: 120px;
|
min-width: 120px;
|
||||||
background-color: #2c2c2c;
|
background-color: #2c2c2c;
|
||||||
border: 1px solid #2c2c2c;
|
border: 1px solid #2c2c2c;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
}
|
}
|
||||||
.frame_list{
|
|
||||||
|
.frame_list {
|
||||||
max-height: 500px;
|
max-height: 500px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.instance_frame_wrapper ::-webkit-scrollbar {
|
.instance_frame_wrapper ::-webkit-scrollbar {
|
||||||
width: 7px;
|
width: 7px;
|
||||||
height: 7px;
|
height: 7px;
|
||||||
}
|
}
|
||||||
.instance_frame_wrapper ::-webkit-scrollbar-thumb {
|
|
||||||
|
.instance_frame_wrapper ::-webkit-scrollbar-thumb {
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
background: #d0d0d0;
|
background: #d0d0d0;
|
||||||
}
|
}
|
||||||
.frame_content{
|
|
||||||
|
.frame_content {
|
||||||
height: 50px;
|
height: 50px;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -509,6 +514,7 @@ export default {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
border: 1px solid #404040;
|
border: 1px solid #404040;
|
||||||
}
|
}
|
||||||
|
|
||||||
.frame_content:hover {
|
.frame_content:hover {
|
||||||
/* font-weight: bold; */
|
/* font-weight: bold; */
|
||||||
/* box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); */
|
/* box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); */
|
||||||
|
|
@ -517,10 +523,10 @@ 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue