158 lines
4.5 KiB
Plaintext
158 lines
4.5 KiB
Plaintext
<template>
|
|
<div style="width:100%;height:100%">
|
|
|
|
<div v-if="readingCategory && readingCategory=== 1" class="reading-wrapper">
|
|
<el-tabs v-model="activeName" v-loading="loading" :before-leave="beforeLeave">
|
|
<el-tab-pane label="阅片" name="read">
|
|
<ReadPage
|
|
v-if="tabs.includes('read')"
|
|
:trial-id="trialId"
|
|
:visit-task-id="visitTaskId"
|
|
:subject-id="subjectId"
|
|
:is-exists-clinical-data="isExistsClinicalData"
|
|
/>
|
|
</el-tab-pane>
|
|
<el-tab-pane label="报告" name="report">
|
|
<ReportPage v-if="tabs.includes('report')" :visit-task-id="visitTaskId" />
|
|
</el-tab-pane>
|
|
</el-tabs>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
<script>
|
|
import { getNextTask } from '@/api/trials'
|
|
import ReadPage from './components/ReadPage'
|
|
import ReportPage from './components/ReportPage'
|
|
import DicomEvent from './components/DicomEvent'
|
|
// import Store from './components/Store'
|
|
export default {
|
|
name: 'Reading',
|
|
components: {
|
|
ReadPage,
|
|
ReportPage
|
|
},
|
|
data() {
|
|
return {
|
|
activeName: '',
|
|
tabs: [],
|
|
trialId: '',
|
|
subjectCode: '',
|
|
subjectId: '',
|
|
visitTaskId: '',
|
|
loading: false,
|
|
readingCategory: null,
|
|
isReadingShowSubjectInfo: false,
|
|
isReadingShowPreviousResults: false,
|
|
isExistsClinicalData: false
|
|
}
|
|
},
|
|
mounted() {
|
|
this.activeName = this.$router.currentRoute.query.tabName
|
|
this.tabs.push(this.activeName)
|
|
this.trialId = this.$router.currentRoute.query.trialId
|
|
this.subjectCode = this.$router.currentRoute.query.subjectCode
|
|
this.subjectId = this.$router.currentRoute.query.subjectId
|
|
this.visitTaskId = this.$router.currentRoute.query.visitTaskId
|
|
this.readingCategory = parseInt(this.$router.currentRoute.query.readingCategory)
|
|
|
|
this.taskBlindName = this.$router.currentRoute.query.taskBlindName
|
|
this.isReadingShowSubjectInfo = this.$router.currentRoute.query.isReadingShowSubjectInfo
|
|
this.isReadingShowPreviousResults = this.$router.currentRoute.query.isReadingShowPreviousResults
|
|
this.isExistsClinicalData = this.$router.currentRoute.query.isExistsClinicalData === 'true'
|
|
|
|
// this.getTaskInfo()
|
|
},
|
|
methods: {
|
|
getTaskInfo() {
|
|
this.loading = true
|
|
var param = {
|
|
subjectId: this.subjectId,
|
|
trialId: this.trialId,
|
|
visistTaskId: this.visitTaskId
|
|
}
|
|
getNextTask(param).then(async res => {
|
|
this.readingCategory = res.Result.ReadingCategory
|
|
this.subjectId = res.Result.SubjectId
|
|
this.visitTaskId = res.Result.VisitTaskId
|
|
this.subjectCode = res.Result.SubjectCode
|
|
this.taskBlindName = res.Result.TaskBlindName
|
|
this.isReadingShowSubjectInfo = res.Result.IsReadingShowSubjectInfo
|
|
this.isReadingShowPreviousResults = res.Result.IsReadingShowPreviousResults
|
|
|
|
this.loading = false
|
|
}).catch(() => { this.loading = false })
|
|
},
|
|
|
|
beforeLeave(activeName, oldActiveName) {
|
|
if (oldActiveName === 'read') {
|
|
var list = null
|
|
DicomEvent.$emit('getAllUnSaveLesions', val => {
|
|
console.log(val)
|
|
list = val
|
|
})
|
|
if (list.length > 0) {
|
|
var arr = []
|
|
list.map(i => {
|
|
arr.push(i.lessionName)
|
|
})
|
|
this.$confirm(`请先保存${arr.join('、')}病灶信息!`, {
|
|
type: 'warning',
|
|
showCancelButton: false
|
|
}).then(() => {
|
|
}).catch(() => {
|
|
})
|
|
return false
|
|
} else {
|
|
if (!this.tabs.includes(activeName)) {
|
|
this.tabs.push(activeName)
|
|
}
|
|
return true
|
|
}
|
|
} else {
|
|
if (!this.tabs.includes(activeName)) {
|
|
this.tabs.push(activeName)
|
|
}
|
|
return true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
.reading-wrapper{
|
|
width: 100%;
|
|
height: 100%;
|
|
padding: 0 5px;
|
|
box-sizing: border-box;
|
|
background-color: #000;
|
|
.el-tabs{
|
|
box-sizing: border-box;
|
|
height: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
.el-tabs__item{
|
|
color: #fff;
|
|
}
|
|
>>>.el-tabs__header{
|
|
height: 50px;
|
|
margin:0px;
|
|
box-sizing: border-box;
|
|
}
|
|
>>>.el-tabs__content{
|
|
flex: 1;
|
|
margin:0px;
|
|
box-sizing: border-box;
|
|
}
|
|
>>>.el-tabs__item{
|
|
color: #fff;
|
|
}
|
|
>>>.el-tab-pane{
|
|
height: 100%;
|
|
}
|
|
|
|
}
|
|
}
|
|
</style>
|