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>
 |