添加序列层级查看临床数据

main
caiyiling 2024-04-16 11:39:21 +08:00
parent 7524c3b495
commit 40ac42dba4
5 changed files with 55 additions and 5 deletions

View File

@ -11,6 +11,13 @@
@mousemove="sliderMousemove" @mousemove="sliderMousemove"
@mouseup="sliderMouseup" @mouseup="sliderMouseup"
> >
<!-- 临床数据 -->
<div v-if="stack.isExistsClinicalData" class="info-cd" @click.stop="handleViewCD($event)">
<el-tooltip class="item" effect="dark" :content="$t('trials:reading:button:clinicalData')" placement="bottom">
<svg-icon icon-class="documentation" class="svg-icon" />
</el-tooltip>
</div>
<!-- 切换访视 --> <!-- 切换访视 -->
<div <div
v-if="stack.imageRendered && isReadingTaskViewInOrder" v-if="stack.imageRendered && isReadingTaskViewInOrder"
@ -1933,6 +1940,12 @@ export default {
e.stopImmediatePropagation() e.stopImmediatePropagation()
e.stopPropagation() e.stopPropagation()
e.preventDefault() e.preventDefault()
},
handleViewCD(e) {
DicomEvent.$emit('previewCD', this.stack.visitTaskId)
e.stopImmediatePropagation()
e.stopPropagation()
e.preventDefault()
} }
} }
@ -2021,7 +2034,15 @@ export default {
font-size: 14px; font-size: 14px;
} }
} }
.info-cd{
position: absolute;
left: 10px;
top: 5px;
text-align: left;
color: #ddd;
font-size: 18px;
cursor: pointer;
}
.info-series { .info-series {
position: absolute; position: absolute;
left: 10px; left: 10px;

View File

@ -399,7 +399,7 @@ export default {
idx > -1 ? seriesInfo = seriesList[idx] : seriesInfo = seriesList[0] idx > -1 ? seriesInfo = seriesList[idx] : seriesInfo = seriesList[0]
} }
if (seriesInfo) { if (seriesInfo) {
const index = Math.floor(seriesInfo.imageIds.length * ((baseObj.series.imageIdIndex + 1) / baseObj.series.instanceCount)) const index = Math.floor(seriesInfo.imageIds.length * ((baseObj.series.imageIdIndex + 1) / baseObj.series.imageIds.length))
seriesInfo.imageIdIndex = index > 0 ? index - 1 : 0 seriesInfo.imageIdIndex = index > 0 ? index - 1 : 0
obj.studyIndex = seriesInfo.studyIndex obj.studyIndex = seriesInfo.studyIndex
obj.seriesIndex = seriesInfo.seriesIndex obj.seriesIndex = seriesInfo.seriesIndex

View File

@ -11,6 +11,13 @@
@mousemove="sliderMousemove" @mousemove="sliderMousemove"
@mouseup="sliderMouseup" @mouseup="sliderMouseup"
> >
<!-- 临床数据 -->
<div v-if="stack.isExistsClinicalData" class="info-cd" @click.stop="handleViewCD($event)">
<el-tooltip class="item" effect="dark" :content="$t('trials:reading:button:clinicalData')" placement="bottom">
<svg-icon icon-class="documentation" class="svg-icon" />
</el-tooltip>
</div>
<!-- 切换访视 --> <!-- 切换访视 -->
<div <div
v-if="stack.imageRendered && isReadingTaskViewInOrder" v-if="stack.imageRendered && isReadingTaskViewInOrder"
@ -1930,6 +1937,12 @@ export default {
e.stopImmediatePropagation() e.stopImmediatePropagation()
e.stopPropagation() e.stopPropagation()
e.preventDefault() e.preventDefault()
},
handleViewCD(e) {
DicomEvent.$emit('previewCD', this.stack.visitTaskId)
e.stopImmediatePropagation()
e.stopPropagation()
e.preventDefault()
} }
} }
@ -2018,7 +2031,15 @@ export default {
font-size: 14px; font-size: 14px;
} }
} }
.info-cd{
position: absolute;
left: 10px;
top: 5px;
text-align: left;
color: #ddd;
font-size: 18px;
cursor: pointer;
}
.info-series { .info-series {
position: absolute; position: absolute;
left: 10px; left: 10px;

View File

@ -383,7 +383,7 @@ export default {
idx > -1 ? seriesInfo = seriesList[idx] : seriesInfo = seriesList[0] idx > -1 ? seriesInfo = seriesList[idx] : seriesInfo = seriesList[0]
} }
if (seriesInfo) { if (seriesInfo) {
let index = Math.floor(seriesInfo.imageIds.length * ((baseObj.series.imageIdIndex+ 1) / baseObj.series.instanceCount)) let index = Math.floor(seriesInfo.imageIds.length * ((baseObj.series.imageIdIndex+ 1) / baseObj.series.imageIds.length))
seriesInfo.imageIdIndex = index > 0 ? index - 1 : 0 seriesInfo.imageIdIndex = index > 0 ? index - 1 : 0
obj.studyIndex = seriesInfo.studyIndex obj.studyIndex = seriesInfo.studyIndex
obj.seriesIndex = seriesInfo.seriesIndex obj.seriesIndex = seriesInfo.seriesIndex

View File

@ -115,7 +115,7 @@
v-if="dialogVisible" v-if="dialogVisible"
:trial-id="trialId" :trial-id="trialId"
:subject-id="subjectId" :subject-id="subjectId"
:visit-task-id="visitTaskId" :visit-task-id="cdVisitTaskId"
/> />
</div> </div>
@ -315,6 +315,12 @@ export default {
} }
this.getTaskInfo(1) this.getTaskInfo(1)
}) })
DicomEvent.$on('previewCD', (taskId) => {
this.closeCDVisible = true
this.isFullscreen = false
this.dialogVisible = true
this.cdVisitTaskId = taskId
})
this.activeName = this.$router.currentRoute.query.tabName ? this.$router.currentRoute.query.tabName : 'read' this.activeName = this.$router.currentRoute.query.tabName ? this.$router.currentRoute.query.tabName : 'read'
this.tabs.push(this.activeName) this.tabs.push(this.activeName)
this.trialId = this.$router.currentRoute.query.trialId this.trialId = this.$router.currentRoute.query.trialId
@ -344,6 +350,7 @@ export default {
beforeDestroy() { beforeDestroy() {
DicomEvent.$off('getNextTask') DicomEvent.$off('getNextTask')
DicomEvent.$emit('resetOpenWindow') DicomEvent.$emit('resetOpenWindow')
DicomEvent.$off('previewCD')
window.removeEventListener('beforeunload', this.handleWindowClose) window.removeEventListener('beforeunload', this.handleWindowClose)
}, },
methods: { methods: {
@ -566,6 +573,7 @@ export default {
this.closeCDVisible = true this.closeCDVisible = true
this.isFullscreen = false this.isFullscreen = false
this.dialogVisible = true this.dialogVisible = true
this.cdVisitTaskId = this.visitTaskId
}, },
handleWindowClose() { handleWindowClose() {
DicomEvent.$emit('resetOpenWindow') DicomEvent.$emit('resetOpenWindow')