220 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			220 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
| <template>
 | |
|   <el-form
 | |
|     ref="selectSubjectForm"
 | |
|     size="small"
 | |
|     label-width="130px"
 | |
|     :inline="true"
 | |
|   >
 | |
|     <div class="base-dialog-body">
 | |
|       <el-divider content-position="left">筛选规则</el-divider>
 | |
|       <el-form-item
 | |
|         label="评估影像检查部位"
 | |
|         prop="IsJoinEvaluation"
 | |
|       >
 | |
|         脑部
 | |
|       </el-form-item>
 | |
|       <el-divider content-position="left">待处理访视列表</el-divider>
 | |
|       <el-table
 | |
|         ref="subjectList"
 | |
|         v-loading="btnLoading"
 | |
|         :data="list"
 | |
|         stripe
 | |
|       >
 | |
|         <el-table-column
 | |
|           prop="VisitName"
 | |
|           label="访视"
 | |
|           sortable="custom"
 | |
|           show-overflow-tooltip
 | |
|           width="120"
 | |
|         />
 | |
|         <el-table-column
 | |
|           prop="EarliestScanDate"
 | |
|           label="最早拍片日期"
 | |
|           sortable="custom"
 | |
|           show-overflow-tooltip
 | |
|         />
 | |
|         <el-table-column
 | |
|           prop="LatestScanDate"
 | |
|           label="最晚拍片日期"
 | |
|           sortable="custom"
 | |
|           show-overflow-tooltip
 | |
|         />
 | |
|         <el-table-column
 | |
|           prop="ImageFilterState"
 | |
|           label="影像筛选状态"
 | |
|           sortable="custom"
 | |
|           show-overflow-tooltip
 | |
|         >
 | |
|           <template slot-scope="scope">
 | |
|             {{ $fd('ImageFilterState', scope.row.ImageFilterState) }}
 | |
|           </template>
 | |
|         </el-table-column>
 | |
|         <el-table-column
 | |
|           :label="$t('common:action:action')"
 | |
|           width="120"
 | |
|           fixed="right"
 | |
|         >
 | |
|           <template slot-scope="scope">
 | |
|             <!-- 影像筛选 -->
 | |
|             <el-button
 | |
|               circle
 | |
|               title="影像筛选"
 | |
|               icon="el-icon-picture-outline"
 | |
|               @click="handleImageScreening(scope.row)"
 | |
|             />
 | |
|             <!-- 生成任务 -->
 | |
|             <el-button
 | |
|               circle
 | |
|               :disabled="scope.row.ImageFilterState !== 2"
 | |
|               title="生成任务"
 | |
|               icon="el-icon-success"
 | |
|               @click="handleCreateTask(scope.row)"
 | |
|             />
 | |
|           </template>
 | |
|         </el-table-column>
 | |
|       </el-table>
 | |
|       <el-divider content-position="left">已生成任务访视列表</el-divider>
 | |
|       <el-table
 | |
|         ref="subjectList"
 | |
|         v-loading="btnLoading"
 | |
|         :data="list2"
 | |
|         stripe
 | |
|       >
 | |
|         <el-table-column
 | |
|           prop="VisitName"
 | |
|           label="访视"
 | |
|           sortable="custom"
 | |
|           show-overflow-tooltip
 | |
|           width="120"
 | |
|         />
 | |
|         <el-table-column
 | |
|           prop="TaskCode"
 | |
|           label="任务Id"
 | |
|           sortable="custom"
 | |
|           show-overflow-tooltip
 | |
|           width="120"
 | |
|         />
 | |
|         <el-table-column
 | |
|           prop="TaskBlindName"
 | |
|           label="盲态任务名称"
 | |
|           sortable="custom"
 | |
|           show-overflow-tooltip
 | |
|         />
 | |
|         <el-table-column
 | |
|           prop="CreateTime"
 | |
|           label="任务创建时间"
 | |
|           sortable="custom"
 | |
|           show-overflow-tooltip
 | |
|         />
 | |
|       </el-table>
 | |
|     </div>
 | |
|     <div class="base-dialog-footer" style="text-align:right;margin-top:10px;">
 | |
|       <el-form-item>
 | |
|         <!-- 取消 -->
 | |
|         <el-button
 | |
|           :disabled="btnLoading"
 | |
|           size="small"
 | |
|           type="primary"
 | |
|           @click="close"
 | |
|         >
 | |
|           {{ $t('common:button:cancel') }}
 | |
|         </el-button>
 | |
|       </el-form-item>
 | |
|     </div>
 | |
|     <el-dialog
 | |
|       v-if="selectSubjectImage.visible"
 | |
|       :title="selectSubjectImage.title"
 | |
|       :visible.sync="selectSubjectImage.visible"
 | |
|       :fullscreen="true"
 | |
|       :append-to-body="true"
 | |
|     >
 | |
|       <subject-study :data="rowData" @close="selectSubjectImage.visible = false" @getList="getList"></subject-study>
 | |
|     </el-dialog>
 | |
|   </el-form>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| import { getSubjectCriteriaEvaluationList, batchAddOrUpdateSubjectCriteriaEvaluation, getSubjectCriteriaEvaluationVisitFilterList, getHaveGeneratedTaskList, batchGenerateTask, getVisitStudyAndSeriesList, batchAddSubjectCriteriaEvaluationVisitStudyFilter } from '@/api/trials/subject'
 | |
| import subjectStudy from "./subjectStudy";
 | |
| export default {
 | |
|   name: 'selectSubjectImage',
 | |
|   components: { subjectStudy },
 | |
|   props: {
 | |
|     data: {
 | |
|       type: Object,
 | |
|       default: () => {}
 | |
|     }
 | |
|   },
 | |
|   data() {
 | |
|     return {
 | |
|       trialId: this.$route.query.trialId,
 | |
|       btnLoading: false,
 | |
|       list: [],
 | |
|       list2: [],
 | |
|       selectSubjectImage: { visible: false, title: '筛选影像' },
 | |
|       rowData: null
 | |
|     }
 | |
|   },
 | |
|   mounted() {
 | |
|     this.getList()
 | |
|   },
 | |
|   methods: {
 | |
|     close() {
 | |
|       this.$emit('close')
 | |
|     },
 | |
|     getHaveGeneratedTaskList() {
 | |
|       var params = {
 | |
|         TrialReadingCriterionId: this.data.TrialReadingCriterionId,
 | |
|         SubjectId: this.data.SubjectId
 | |
|       }
 | |
|       this.btnLoading = true
 | |
|       getHaveGeneratedTaskList(params).then(res => {
 | |
|         this.list2 = res.Result
 | |
|         this.btnLoading = false
 | |
|       }).catch(() => {
 | |
|         this.btnLoading = false
 | |
|       })
 | |
|     },
 | |
|     handleImageScreening(row) {
 | |
|       this.rowData = row
 | |
|       this.selectSubjectImage.visible = true
 | |
|     },
 | |
|     handleCreateTask(row) {
 | |
|       var params = {
 | |
|         TrialReadingCriterionId: row.TrialReadingCriterionId,
 | |
|         TrialId: this.trialId,
 | |
|         SubjectId: row.SubjectId,
 | |
|         SubjectVisitIdList: [row.SubjectVisitId],
 | |
|       }
 | |
|       this.btnLoading = true
 | |
|       batchAddSubjectCriteriaEvaluationVisitStudyFilter(params).then(res => {
 | |
|         this.$message.success('生成成功')
 | |
|         this.getList()
 | |
|         this.btnLoading = false
 | |
|       }).catch(() => {
 | |
|         this.btnLoading = false
 | |
|       })
 | |
|     },
 | |
|     getList() {
 | |
|       var params = {
 | |
|         IsGeneratedTask: false,
 | |
|         TrialReadingCriterionId: this.data.TrialReadingCriterionId,
 | |
|         SubjectId: this.data.SubjectId
 | |
|       }
 | |
|       this.btnLoading = true
 | |
|       getSubjectCriteriaEvaluationVisitFilterList(params).then(res => {
 | |
|         this.btnLoading = false
 | |
|         this.list = res.Result
 | |
|         this.getHaveGeneratedTaskList()
 | |
|       }).catch(() => {
 | |
|         this.btnLoading = false
 | |
|       })
 | |
|     }
 | |
|   }
 | |
| }
 | |
| </script>
 | |
| 
 | |
| <style scoped>
 | |
| 
 | |
| </style>
 |