293 lines
9.0 KiB
Plaintext
293 lines
9.0 KiB
Plaintext
<template>
|
|
<div class="workbench-container">
|
|
<div class="workbench-stats">
|
|
<PanelCount ref="panelCount" @getSignSystemDocCount="getSignSystemDocCount" />
|
|
</div>
|
|
<div class="workbench-content">
|
|
<div class="content-wrapper">
|
|
<!-- PM/APM -->
|
|
<!-- 阅片期 -->
|
|
<div v-if="hasPermi(['trials:trials-panel:subject:readingPeriod:edit'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<clinicalDataPM />
|
|
</el-card>
|
|
</div>
|
|
<!-- 一致性核查 -->
|
|
<div v-if="hasPermi(['trials:trials-workbench:consistencyCheck'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<consistencyCheck />
|
|
</el-card>
|
|
</div>
|
|
<!-- 重阅审批 -->
|
|
<div v-if="hasPermi(['trials:trials-workbench:rereadApproval'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<RereadApproval />
|
|
</el-card>
|
|
</div>
|
|
<!-- 阅片人筛选 -->
|
|
<div v-if="hasPermi(['trials:trials-workbench:reviewerScreen'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<ReviewerScreen />
|
|
</el-card>
|
|
</div>
|
|
<!-- 中心调研 -->
|
|
<div v-hasPermi="['trials:trials-workbench:attachments:site-research']" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<SiteResearch />
|
|
</el-card>
|
|
</div>
|
|
<!-- 核对临床数据 -->
|
|
<!-- SPM/CPM -->
|
|
<!-- 阅片人审批 -->
|
|
<div v-if="hasPermi(['trials:trials-workbench:reviewerApproval'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<ReviewerApproval />
|
|
</el-card>
|
|
</div>
|
|
<!-- 重阅审批 -->
|
|
<div v-if="hasPermi(['trials:trials-workbench:spmRereadApproval'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<SpmRereadApproval />
|
|
</el-card>
|
|
</div>
|
|
|
|
<!-- CRC -->
|
|
<!-- 临床数据录入 -->
|
|
<div v-if="hasPermi(['trials:trials-workbench:clinicalDataEntry'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<clinicalData />
|
|
</el-card>
|
|
</div>
|
|
<!-- 临床数据确认 -->
|
|
<div v-if="hasPermi(['trials:trials-workbench:clinicalDataEntry'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<clinicalDataConfirm />
|
|
</el-card>
|
|
</div>
|
|
<!-- 影像质疑 -->
|
|
<div v-if="hasPermi(['trials:trials-workbench:imageQuestion'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<ImageQuestion />
|
|
</el-card>
|
|
</div>
|
|
|
|
<!-- 核查质疑 -->
|
|
<div v-if="hasPermi(['trials:trials-workbenck:imageVerification'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<ImageVerification />
|
|
</el-card>
|
|
</div>
|
|
<!-- 影像重传 -->
|
|
<div v-if="hasPermi(['trials:trials-workbenck:imageReupload'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<ImageReupload />
|
|
</el-card>
|
|
</div>
|
|
<!-- 加急影像提交 -->
|
|
<div v-if="hasPermi(['trials:trials-workbenck:imageSubmission'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<ImageSubmission />
|
|
</el-card>
|
|
</div>
|
|
<!-- IQC -->
|
|
<!-- 影像质控 -->
|
|
<div v-if="hasPermi(['trials:trials-workbenck:imageQC'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<ImageQualityControl />
|
|
</el-card>
|
|
</div>
|
|
<!-- QC质疑 -->
|
|
<div v-if="hasPermi(['trials:trials-workbenck:qcQuestion'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<QcQuestion />
|
|
</el-card>
|
|
</div>
|
|
<!-- IR -->
|
|
<!-- 影像待阅 -->
|
|
<div v-if="hasPermi(['trials:trials-workbenck:imagesToRead'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<ImagesToRead />
|
|
</el-card>
|
|
</div>
|
|
<!-- 医学反馈 -->
|
|
<div v-if="hasPermi(['trials:trials-workbenck:medicalFeedback'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<MedicalFeedback />
|
|
</el-card>
|
|
</div>
|
|
<!-- MIM -->
|
|
<!-- 医学审核 -->
|
|
<div v-if="hasPermi(['trials:trials-workbenck:medicalAudit'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<MedicalAudit />
|
|
</el-card>
|
|
</div>
|
|
|
|
<div v-if="!hasPermi(['role:zys'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<NeedSignTrialDoc />
|
|
</el-card>
|
|
</div>
|
|
|
|
<div v-if="isSignSystemDoc || hasPermi(['role:zys'])" class="item">
|
|
<el-card :body-style="{ padding: '10px'}" style="height:100%">
|
|
<NeedSignSysDoc @refreshStats="refreshStats" />
|
|
</el-card>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import PanelCount from './components/panelCount'
|
|
import NeedSignTrialDoc from './components/needSignTrialDoc'
|
|
import SiteResearch from './components/siteResearch'
|
|
import NeedSignSysDoc from './components/needSignSysDoc'
|
|
import consistencyCheck from './components/consistencyCheck'
|
|
import clinicalData from './components/clinicalData'
|
|
import clinicalDataConfirm from './components/clinicalDataConfirm'
|
|
import clinicalDataPM from './components/clinicalDataPM'
|
|
import RereadApproval from './components/rereadApproval'
|
|
import ReviewerScreen from './components/reviewerScreen'
|
|
import ReviewerApproval from './components/reviewerApproval'
|
|
import SpmRereadApproval from './components/spmRereadApproval'
|
|
import ImageQuestion from './components/imageQuestion'
|
|
import ImageVerification from './components/imageVerification'
|
|
import ImageReupload from './components/imageReupload'
|
|
import ImageSubmission from './components/imageSubmission'
|
|
import ImageQualityControl from './components/imageQualityControl'
|
|
import QcQuestion from './components/qcQuestion'
|
|
import ImagesToRead from './components/imagesToRead'
|
|
import MedicalFeedback from './components/medicalFeedback'
|
|
import MedicalAudit from './components/medicalAudit'
|
|
export default {
|
|
name: 'WorkBench',
|
|
components: { clinicalDataConfirm, clinicalDataPM, PanelCount, NeedSignTrialDoc, SiteResearch, NeedSignSysDoc, consistencyCheck, clinicalData, RereadApproval, ReviewerScreen, ReviewerApproval, SpmRereadApproval, ImageQuestion, ImageVerification, ImageReupload, ImageSubmission, ImageQualityControl, QcQuestion, ImagesToRead, MedicalFeedback, MedicalAudit },
|
|
data() {
|
|
return {
|
|
isSignSystemDoc: false
|
|
}
|
|
},
|
|
methods: {
|
|
getSignSystemDocCount(count) {
|
|
this.isSignSystemDoc = count > 0
|
|
},
|
|
refreshStats() {
|
|
this.$refs['panelCount'].getData()
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.workbench-container{
|
|
::-webkit-scrollbar {
|
|
width: 7px;
|
|
height: 7px;
|
|
}
|
|
::-webkit-scrollbar-thumb {
|
|
border-radius: 10px;
|
|
background: #d0d0d0;
|
|
}
|
|
display: flex;
|
|
flex-direction: column;
|
|
width: 100%;
|
|
height: 100%;
|
|
background-color: #fff;
|
|
overflow-x: hidden;
|
|
|
|
.workbench-stats{
|
|
height: 120px;
|
|
}
|
|
.workbench-content{
|
|
flex: 1;
|
|
overflow-y: auto;
|
|
.content-wrapper{
|
|
width: 100%;
|
|
height: 100%;
|
|
display: flex;
|
|
flex-flow: wrap;
|
|
padding: 5px;
|
|
.item{
|
|
width: 50%;
|
|
height: 500px;
|
|
padding: 5px;
|
|
box-sizing: border-box;
|
|
.el-card__body{
|
|
height: 100%;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.table-row__p {
|
|
color: #53646f;
|
|
font-size: 13px;
|
|
font-weight: 400;
|
|
line-height: 18px;
|
|
margin-bottom: 0px;
|
|
}
|
|
.table-row__span {
|
|
color: #9eabb4;
|
|
font-weight: 300;
|
|
font-size: 12px;
|
|
}
|
|
.el-row{
|
|
.el-col{
|
|
padding:5px;
|
|
}
|
|
}
|
|
.status:before{
|
|
content: '';
|
|
margin-bottom: 0;
|
|
width: 9px;
|
|
height: 9px;
|
|
display: inline-block;
|
|
margin-right: 7px;
|
|
border-radius: 50%;
|
|
}
|
|
.status--red:before{
|
|
background-color: #e36767;
|
|
}
|
|
|
|
.status--red{
|
|
color: #e36767;
|
|
}
|
|
|
|
.status--blue:before{
|
|
background-color: #3fd2ea;
|
|
}
|
|
|
|
.status--blue{
|
|
color: #3fd2ea;
|
|
}
|
|
|
|
.status--yellow:before{
|
|
background-color: #ecce4e;
|
|
}
|
|
|
|
.status--yellow{
|
|
color: #ecce4e;
|
|
}
|
|
|
|
.status--green{
|
|
color: #6cdb56;
|
|
}
|
|
.status--green:before{
|
|
background-color: #6cdb56;
|
|
}
|
|
|
|
.status--grey{
|
|
color: #9eabb4;
|
|
}
|
|
.status--grey:before{
|
|
background-color: #9eabb4;
|
|
}
|
|
.chart-wrapper {
|
|
background: #fff;
|
|
padding: 16px 16px 0;
|
|
margin-bottom: 32px;
|
|
}
|
|
}
|
|
</style>
|