熊飞 2024-03-06 14:19:03 +08:00
parent 19bc56bb66
commit a048167ab0
11 changed files with 266 additions and 272 deletions

View File

@ -3558,3 +3558,11 @@ export function resetAndAsyncCriterion(param) {
data: param
})
}
export function batchSetCriterionJoinJoinAnalysis(param) {
return request({
url: `/DoctorWorkload/batchSetCriterionJoinJoinAnalysis`,
method: 'post',
data: param
})
}

View File

@ -7,6 +7,7 @@
<el-button
size="mini"
type="primary"
:disabled="isCompleteConfig"
@click="handleAdd"
style="margin-right: 10px;"
>
@ -59,12 +60,13 @@
show-overflow-tooltip
>
<template slot-scope="scope">
<el-button size="small" type="primary" @click="openChildren(scope.row)">
<el-button size="small" :disabled="isCompleteConfig" type="primary" @click="openChildren(scope.row)">
配置
</el-button>
<el-button
type="danger"
size="small"
:disabled="isCompleteConfig"
@click="handleDelete(scope.row)"
>
删除
@ -151,6 +153,10 @@ export default {
criterionId: {
type: String,
required: true
},
isCompleteConfig: {
type: Boolean,
required: true
}
},
components: {

View File

@ -83,7 +83,6 @@
<el-button
type="primary"
size="mini"
:disabled="scope.row.IsCompleteConfig"
@click="handleEdit(scope.row)"
>
编辑
@ -192,6 +191,7 @@ export default {
addDialog: { title: '', visible: false }
}
},
mounted() {
this.getList()
},

View File

@ -118,7 +118,6 @@
</template>
</el-table-column>
<el-table-column
label="操作用户名"
:label="$t('system:loginLog:table:OptUserName')"
prop="OptUserName"
min-width="90"
@ -126,7 +125,6 @@
show-overflow-tooltip
/>
<el-table-column
label="操作用户类型"
:label="$t('system:loginLog:table:OptUserType')"
prop="OptUserTypeEnum"
min-width="90"
@ -138,7 +136,6 @@
</template>
</el-table-column>
<el-table-column
label="创建时间"
:label="$t('system:loginLog:table:CreateTime')"
prop="CreateTime"
min-width="90"

View File

@ -377,6 +377,18 @@
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:ir'])"
prop="IR_ReadingCriterionList"
:label="$t('trials:trials-list:table:IR_ReadingCriterionList')"
show-overflow-tooltip
sortable="custom"
width="160"
>
<template slot-scope="scope">
{{scope.row.IR_ReadingCriterionList.join(', ')}}
</template>
</el-table-column>
<el-table-column
v-if="hasPermi(['role:ir'])"
prop="IR_UrgentCount"

View File

@ -110,6 +110,22 @@
</el-button>
</template>
</el-table-column>
<el-table-column
:label="$t('trials:enrolledReviews:table:consistency-analysis')"
width="160"
show-overflow-tooltip
>
<template slot-scope="scope">
<el-switch
v-model="scope.row.CriterionCategoryList.find(v => {return v.TrialReadingCriterionId === ite.TrialReadingCriterionId}).IsJoinAnalysis"
:active-value="true"
:inactive-value="false"
@change="(v) => {return isConsistencyChange(scope.row, ite, v, true)}"
/>
<span v-if="scope.row.CriterionCategoryList.find(v => {return v.TrialReadingCriterionId === ite.TrialReadingCriterionId}).IsJoinAnalysis">{{$fd('YesOrNo', scope.row.CriterionCategoryList.find(v => {return v.TrialReadingCriterionId === ite.TrialReadingCriterionId}).IsJoinAnalysis)}}</span>
<span v-else>{{$fd('YesOrNo',false)}}</span>
</template>
</el-table-column>
<el-table-column
:label="$t('trials:enrolledReviews:message:SOW')"
width="160"
@ -348,7 +364,8 @@ import {
deleteReviewerAckSOW,
updateReviewerReadingType,
enrollBackOrOut,
setEnrollReadingCategory
setEnrollReadingCategory,
batchSetCriterionJoinJoinAnalysis
} from '@/api/trials'
import { addDoctorCriterionFile } from '@/api/reviewers'
import { uploadFile } from '@/api/attachment'
@ -438,6 +455,47 @@ export default {
this.initPage()
},
methods: {
isConsistencyChange(row, ite, value, showMessage) {
this.batchSetCriterionJoinJoinAnalysis(row, ite, value, showMessage)
},
batchSetCriterionJoinJoinAnalysis(row, ite, value, showMessage) {
let params
if (row.DoctorCriterionStatusList && row.DoctorCriterionStatusList.length > 0) {
if (ite) {
let item = row.CriterionCategoryList.find(v => v.TrialReadingCriterionId === ite.TrialReadingCriterionId)
if (item) {
params = [{
Id: item.Id,
EnrollId: item.EnrollId,
TrialReadingCriterionId: item.TrialReadingCriterionId,
IsJoinAnalysis: value
}]
}
} else {
params = row.DoctorCriterionStatusList.map(v => {
return {
Id: v.Id,
EnrollId: v.EnrollId,
TrialReadingCriterionId: v.TrialReadingCriterionId,
IsJoinAnalysis: v.IsJoinAnalysis
}
})
}
} else {
params = row.CriterionCategoryList.map(v => {
return {
EnrollId: v.EnrollId,
TrialReadingCriterionId: v.TrialReadingCriterionId,
IsJoinAnalysis: false
}
})
}
batchSetCriterionJoinJoinAnalysis(params).then(res => {
if (showMessage) {
this.$message.success(this.$t('trials:enrolledReviews:message:batchSetCriterionJoinJoinAnalysis1'))
}
})
},
go(path) {
window.open(path)
},
@ -589,7 +647,27 @@ export default {
this.listLoading = true
getTrialEnrollmentWorkloadStats(this.listQuery).then((res) => {
this.listLoading = false
this.list = res.Result.CurrentPageData
let resArray = res.Result.CurrentPageData
try {
resArray.forEach(v => {
if (v.DoctorCriterionStatusList && v.DoctorCriterionStatusList.length === 0) {
this.isConsistencyChange(v, null,false, false)
}
v.CriterionCategoryList.forEach(v1 => {
let o = v.DoctorCriterionStatusList.find(v2 => {
return v2.TrialReadingCriterionId === v1.TrialReadingCriterionId
})
if (o) {
this.$set(v1, 'Id', o.Id)
this.$set(v1, 'IsJoinAnalysis', o.IsJoinAnalysis)
}
})
v.DoctorCriterionStatusList.push({})
})
} catch (e) {
console.log(e)
}
this.list = resArray
if (this.list.length > 0) {
this.TrialReadingCriterionList = this.list[0].TrialReadingCriterionList
}

View File

@ -103,13 +103,13 @@ export default {
form: {
Id: null,
TrialId: this.$route.query.trialId,
PlanSubjectCount: 0,
PlanVisitCount: 0,
IntervalWeeks: 0,
PlanSubjectCount: 10,
PlanVisitCount: 3,
IntervalWeeks: 3,
IsHaveReadingPeriod: null,
IsGenerateGlobalTask: null,
BlindTrialSiteCode: '',
BlindSubjectNumberOfPlaces: 0,
BlindSubjectNumberOfPlaces: 3,
IsEnable: true,
Note: ''
},
@ -156,6 +156,7 @@ export default {
this.loading = false
this.btnLoading = false
this.$message.success(this.$t('common:message:savedSuccessfully'))
this.$emit('close')
this.$emit('getList')
}).catch(() => {
this.loading = false

View File

@ -825,7 +825,13 @@ export default {
},
clickTab(tab, event) {
this.loading = true
this.title = `${this.$t('trials:selftConsistencyAnalysis:button:config')}(${this.trialCriterionList.find(v => v.TrialReadingCriterionId === this.TrialReadingCriterionId).TrialReadingCriterionName})`
getSelfConsistentDoctorStatList({TrialId: this.trialId, TrialReadingCriterionId: tab.name}).then(res => {
if (res.OtherInfo) {
this.ReaderRulesFormVisible = false
} else {
this.ReaderRulesFormVisible = true
}
// this.ReaderRulesFormVisible = false
// this.DoctorConsistentRuleSubjectTableVisible = false
this.TaskConsistentRuleList = res.Result
@ -838,13 +844,20 @@ export default {
})
},
openTaskConsistentRule(IsSelfAnalysis) {
if (this.trialCriterionList.length === 0) {
this.$alert(this.$t('trials:trials-panel:consistency-analysis:trialCriterionListLength'))
return
}
this.loading = true
if (IsSelfAnalysis) {
// ''
this.title = this.$t('trials:selftConsistencyAnalysis:button:config')
this.title = `${this.$t('trials:selftConsistencyAnalysis:button:config')}(${this.trialCriterionList.find(v => v.TrialReadingCriterionId === this.TrialReadingCriterionId).TrialReadingCriterionName})`
getSelfConsistentDoctorStatList({TrialId: this.trialId, TrialReadingCriterionId: this.TrialReadingCriterionId}).then(res => {
this.ReaderRulesFormVisible = false
if (res.OtherInfo) {
this.ReaderRulesFormVisible = false
} else {
this.ReaderRulesFormVisible = true
}
this.DoctorConsistentRuleSubjectTableVisible = false
this.TaskConsistentRuleList = res.Result
this.IsSelfAnalysis = IsSelfAnalysis

View File

@ -19,21 +19,21 @@
/>
</el-form-item>
<!-- 语言类型 -->
<el-form-item
:label="$t('common:title:languageType')"
>
<el-select
v-model="searchData.LanguageType"
clearable style="width:120px;"
>
<el-option
v-for="item of $d.LanguageType"
:key="item.value"
:value="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<!-- <el-form-item-->
<!-- :label="$t('common:title:languageType')"-->
<!-- >-->
<!-- <el-select-->
<!-- v-model="searchData.LanguageType"-->
<!-- clearable style="width:120px;"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item of $d.LanguageType"-->
<!-- :key="item.value"-->
<!-- :value="item.value"-->
<!-- :label="item.label"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- 类型 -->
<el-form-item
:label="$t('trials:medicalFeedbackCfg:title:taskType')"
@ -109,16 +109,16 @@
:label="$t('trials:qcCfg:table:questionName')"
show-overflow-tooltip
/>
<!-- 审核问题 -->
<el-table-column
prop="LanguageType"
:label="$t('common:title:languageType')"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ $fd('LanguageType', scope.row.LanguageType) }}
</template>
</el-table-column>
<!-- &lt;!&ndash; 审核问题 &ndash;&gt;-->
<!-- <el-table-column-->
<!-- prop="LanguageType"-->
<!-- :label="$t('common:title:languageType')"-->
<!-- show-overflow-tooltip-->
<!-- >-->
<!-- <template slot-scope="scope">-->
<!-- {{ $fd('LanguageType', scope.row.LanguageType) }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- 类型 -->
<el-table-column
prop="Type"
@ -211,16 +211,16 @@
{{ $fd('YesOrNo', scope.row.IsRequired) }}
</template>
</el-table-column>
<!-- 启用状态 -->
<el-table-column
prop="IsEnable"
:label="$t('trials:qcCfg:table:isEnable')"
min-width="120"
>
<template slot-scope="scope">
{{ $fd('YesOrNo', scope.row.IsEnable) }}
</template>
</el-table-column>
<!-- &lt;!&ndash; 启用状态 &ndash;&gt;-->
<!-- <el-table-column-->
<!-- prop="IsEnable"-->
<!-- :label="$t('trials:qcCfg:table:isEnable')"-->
<!-- min-width="120"-->
<!-- >-->
<!-- <template slot-scope="scope">-->
<!-- {{ $fd('YesOrNo', scope.row.IsEnable) }}-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<Pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" />
</box-content>

View File

@ -19,21 +19,21 @@
/>
</el-form-item>
<!-- 语言类型 -->
<el-form-item
:label="$t('common:title:languageType')"
>
<el-select
v-model="searchData.LanguageType"
clearable
>
<el-option
v-for="item of $d.LanguageType"
:key="item.value"
:value="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<!-- <el-form-item-->
<!-- :label="$t('common:title:languageType')"-->
<!-- >-->
<!-- <el-select-->
<!-- v-model="searchData.LanguageType"-->
<!-- clearable-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item of $d.LanguageType"-->
<!-- :key="item.value"-->
<!-- :value="item.value"-->
<!-- :label="item.label"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- 类型 -->
<el-form-item
:label="$t('trials:medicalFeedbackCfg:title:taskType')"
@ -50,21 +50,21 @@
/>
</el-select>
</el-form-item>
<el-form-item
:label="$t('trials:qcCfg:table:isEnable')"
>
<el-select
v-model="searchData.IsEnable"
clearable
>
<el-option
v-for="item of $d.YesOrNo"
:key="item.value"
:value="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<!-- <el-form-item-->
<!-- :label="$t('trials:qcCfg:table:isEnable')"-->
<!-- >-->
<!-- <el-select-->
<!-- v-model="searchData.IsEnable"-->
<!-- clearable-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item of $d.YesOrNo"-->
<!-- :key="item.value"-->
<!-- :value="item.value"-->
<!-- :label="item.label"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item
:label="$t('trials:qcCfg:table:isRequired')"
>
@ -112,14 +112,6 @@
>
{{ $t('trials:qcCfg:button:default') }}
</el-button>
<el-button
v-if="!otherInfo.IsConfirmMedicineQuestion && hasPermi(['trials:trials-panel:setting:medical-audit:confirm'])"
type="primary"
icon="el-icon-plus"
@click="handleBatchDelete"
>
{{ $t('common:button:batchDelete') }}
</el-button>
<el-button
v-if="!otherInfo.IsConfirmMedicineQuestion && hasPermi(['trials:trials-panel:setting:medical-audit:confirm'])"
type="primary"
@ -128,6 +120,15 @@
>
{{ $t('trials:qcCfg:button:custom') }}
</el-button>
<el-button
v-if="!otherInfo.IsConfirmMedicineQuestion && hasPermi(['trials:trials-panel:setting:medical-audit:confirm'])"
:disabled="list.length === 0"
type="primary"
icon="el-icon-delete"
@click="handleBatchDelete"
>
{{ $t('common:button:batchDelete') }}
</el-button>
<el-button
v-if="!otherInfo.IsConfirmMedicineQuestion && hasPermi(['trials:trials-panel:setting:medical-audit:confirm'])"
:disabled="otherInfo.QuestionCount===0"
@ -164,17 +165,18 @@
prop="QuestionName"
:label="$t('trials:MIMqcCfg:table:questionName')"
show-overflow-tooltip
min-width="260"
/>
<!-- 审核问题 -->
<el-table-column
prop="LanguageType"
:label="$t('common:title:languageType')"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ $fd('LanguageType', scope.row.LanguageType) }}
</template>
</el-table-column>
<!-- &lt;!&ndash; 审核问题 &ndash;&gt;-->
<!-- <el-table-column-->
<!-- prop="LanguageType"-->
<!-- :label="$t('common:title:languageType')"-->
<!-- show-overflow-tooltip-->
<!-- >-->
<!-- <template slot-scope="scope">-->
<!-- {{ $fd('LanguageType', scope.row.LanguageType) }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- 类型 -->
<el-table-column
prop="Type"
@ -234,15 +236,15 @@
{{ $fd('YesOrNo', scope.row.IsRequired) }}
</template>
</el-table-column>
<!-- 启用状态 -->
<el-table-column
prop="IsEnable"
:label="$t('trials:qcCfg:table:isEnable')"
>
<template slot-scope="scope">
{{ $fd('YesOrNo', scope.row.IsEnable) }}
</template>
</el-table-column>
<!-- &lt;!&ndash; 启用状态 &ndash;&gt;-->
<!-- <el-table-column-->
<!-- prop="IsEnable"-->
<!-- :label="$t('trials:qcCfg:table:isEnable')"-->
<!-- >-->
<!-- <template slot-scope="scope">-->
<!-- {{ $fd('YesOrNo', scope.row.IsEnable) }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
v-if="!otherInfo.IsConfirmMedicineQuestion && hasPermi(['trials:trials-panel:setting:medical-audit:confirm'])"

View File

@ -5,218 +5,94 @@
</div>
<div class="workbench-content" style="height: 100%">
<div style="height: 100%">
<el-tabs style="height: 100%" tab-position="left">
<el-tabs v-model="activeName" style="height: 100%" tab-position="left">
<!-- PM/APM -->
<!-- 阅片期 -->
<el-tab-pane v-if="hasPermi(['trials:trials-panel:subject:readingPeriod:edit'])" :label="`${$t('trials:crcUpload:label:clinicalData')} (${tabList.PM_ClinicalDataCount})`">
<clinicalDataPM :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="clinicalDataPM" v-if="hasPermi(['trials:trials-panel:subject:readingPeriod:edit'])" :label="`${$t('trials:crcUpload:label:clinicalData')} (${tabList.PM_ClinicalDataCount})`">
<clinicalDataPM v-if="activeName === 'clinicalDataPM'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:consistencyCheck'])" :label="`${$t('trials:tab:consistencyCheck')} (${tabList.PM_CheckCount})`">
<consistencyCheck :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="consistencyCheck" v-if="hasPermi(['trials:trials-workbench:consistencyCheck'])" :label="`${$t('trials:tab:consistencyCheck')} (${tabList.PM_CheckCount})`">
<consistencyCheck v-if="activeName === 'consistencyCheck'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 重阅审批 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:rereadApproval'])" :label="`${$t('trials:trials-panel:attachments:reReadingTracking')} (${tabList.PM_ReReadingApprovalCount})`">
<RereadApproval :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="RereadApproval" v-if="hasPermi(['trials:trials-workbench:rereadApproval'])" :label="`${$t('trials:trials-panel:attachments:reReadingTracking')} (${tabList.PM_ReReadingApprovalCount})`">
<RereadApproval v-if="activeName === 'RereadApproval'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 阅片人筛选 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:reviewerScreen'])" :label="`${$t('trials:trials-list:PendingDetails:ReviewerSelection')} (${tabList.PM_ReviewerSelectCount})`">
<ReviewerScreen :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="ReviewerScreen" v-if="hasPermi(['trials:trials-workbench:reviewerScreen'])" :label="`${$t('trials:trials-list:PendingDetails:ReviewerSelection')} (${tabList.PM_ReviewerSelectCount})`">
<ReviewerScreen v-if="activeName === 'ReviewerScreen'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 中心调研 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:reviewerScreen'])" :label="`${$t('trials:workbench:title:pendingSiteResearch')} (${tabList.PM_SiteSurveryCount})`">
<SiteResearch :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="SiteResearch" v-if="hasPermi(['trials:trials-workbench:reviewerScreen'])" :label="`${$t('trials:workbench:title:pendingSiteResearch')} (${tabList.PM_SiteSurveryCount})`">
<SiteResearch v-if="activeName === 'SiteResearch'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- SPM/CPM -->
<!-- 阅片人审批 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:reviewerApproval'])" :label="`${$t('trials:sysDocBeSigned:table:reviewerApproval')} (${tabList.SPM_ReviewerApprovalCount})`">
<ReviewerApproval :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="ReviewerApproval" v-if="hasPermi(['trials:trials-workbench:reviewerApproval'])" :label="`${$t('trials:sysDocBeSigned:table:reviewerApproval')} (${tabList.SPM_ReviewerApprovalCount})`">
<ReviewerApproval v-if="activeName === 'ReviewerApproval'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 重阅审批 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:spmRereadApproval'])" :label="`${$t('trials:trials-panel:attachments:reReadingTracking')} (${tabList.SPM_ReReadingApprovalCount})`">
<SpmRereadApproval :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="SpmRereadApproval" v-if="hasPermi(['trials:trials-workbench:spmRereadApproval'])" :label="`${$t('trials:trials-panel:attachments:reReadingTracking')} (${tabList.SPM_ReReadingApprovalCount})`">
<SpmRereadApproval v-if="activeName === 'SpmRereadApproval'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- CRC -->
<!-- 临床数据录入 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:clinicalDataEntry'])" :label="`${$t('trials:workbench:title:ClinicalDataEnter')} (${tabList.CRC_ClinicalDataTobeDoneCount})`">
<clinicalData :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="clinicalData" v-if="hasPermi(['trials:trials-workbench:clinicalDataEntry'])" :label="`${$t('trials:workbench:title:ClinicalDataEnter')} (${tabList.CRC_ClinicalDataTobeDoneCount})`">
<clinicalData v-if="activeName === 'clinicalData'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 临床数据确认 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:clinicalDataEntry'])" :label="`${$t('trials:audit:tab:clinicalDataconfirm')} (${tabList.CRC_ClinialDataTobeConfirmCount})`">
<clinicalDataConfirm :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="consistencyCheck" v-if="hasPermi(['trials:trials-workbench:clinicalDataEntry'])" :label="`${$t('trials:audit:tab:clinicalDataconfirm')} (${tabList.CRC_ClinialDataTobeConfirmCount})`">
<clinicalDataConfirm v-if="activeName === 'clinicalDataConfirm'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 影像质疑 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:imageQuestion'])" :label="`${$t('trials:tab:crcQuality')} (${tabList.CRC_ImageQuestionCount})`">
<ImageQuestion :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="ImageQuestion" v-if="hasPermi(['trials:trials-workbench:imageQuestion'])" :label="`${$t('trials:tab:crcQuality')} (${tabList.CRC_ImageQuestionCount})`">
<ImageQuestion v-if="activeName === 'ImageQuestion'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 核查质疑 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:imageVerification'])" :label="`${$t('trials:sysDocBeSigned:table:ImageCheck')} (${tabList.CRC_CheckQuestionCount})`">
<ImageVerification :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="ImageVerification" v-if="hasPermi(['trials:trials-workbenck:imageVerification'])" :label="`${$t('trials:sysDocBeSigned:table:ImageCheck')} (${tabList.CRC_CheckQuestionCount})`">
<ImageVerification v-if="activeName === 'ImageVerification'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 影像重传 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:imageReupload'])" :label="`${$t('trials:workbench:title:ImageRetransmission')} (${tabList.CRC_ImageReUploadCount})`">
<ImageReupload :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="ImageReupload" v-if="hasPermi(['trials:trials-workbenck:imageReupload'])" :label="`${$t('trials:workbench:title:ImageRetransmission')} (${tabList.CRC_ImageReUploadCount})`">
<ImageReupload v-if="activeName === 'ImageReupload'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 加急影像提交 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:imageSubmission'])" :label="`${$t('trials:workbench:title:ExpeditedImageSubmission')} (${tabList.CRC_ImageSubmitCount})`">
<ImageSubmission :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="ImageSubmission" v-if="hasPermi(['trials:trials-workbenck:imageSubmission'])" :label="`${$t('trials:workbench:title:ExpeditedImageSubmission')} (${tabList.CRC_ImageSubmitCount})`">
<ImageSubmission v-if="activeName === 'ImageSubmission'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- IQC -->
<!-- 影像质控 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:imageQC'])" :label="`${$t('trials:tab:dicomsQuality')} (${tabList.IQC_IamgeQCCount})`">
<ImageQualityControl :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="ImageQualityControl" v-if="hasPermi(['trials:trials-workbenck:imageQC'])" :label="`${$t('trials:tab:dicomsQuality')} (${tabList.IQC_IamgeQCCount})`">
<ImageQualityControl v-if="activeName === 'ImageQualityControl'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- QC质疑 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:qcQuestion'])" :label="`${$t('trials:tab:qcQuality')} (${tabList.IQC_QCQuestionCount})`">
<QcQuestion :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="QcQuestion" v-if="hasPermi(['trials:trials-workbenck:qcQuestion'])" :label="`${$t('trials:tab:qcQuality')} (${tabList.IQC_QCQuestionCount})`">
<QcQuestion v-if="activeName === 'QcQuestion'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- IR -->
<!-- 影像待阅 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:imagesToRead'])" :label="`${$t('trials:tab:pendingReadingTasks')} (${tabList.IR_IamgeWaitReadingCount})`">
<ImagesToRead :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="ImagesToRead" v-if="hasPermi(['trials:trials-workbenck:imagesToRead'])" :label="`${$t('trials:tab:pendingReadingTasks')} (${tabList.IR_IamgeWaitReadingCount})`">
<ImagesToRead v-if="activeName === 'ImagesToRead'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 医学反馈 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:medicalFeedback'])" :label="`${$t('trials:trials-panel:tab:medicalFeedback')} (${tabList.IR_MedicalReviewCount})`">
<MedicalFeedback :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="MedicalFeedback" v-if="hasPermi(['trials:trials-workbenck:medicalFeedback'])" :label="`${$t('trials:trials-panel:tab:medicalFeedback')} (${tabList.IR_MedicalReviewCount})`">
<MedicalFeedback v-if="activeName === 'MedicalFeedback'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- MIM -->
<!-- 医学审核 -->
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:medicalAudit'])" :label="`${$t('trials:trials-panel:tab:pmMedicalFeedback')} (${tabList.MIM_MedicalReviewCount})`">
<MedicalAudit :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="MedicalAudit" v-if="hasPermi(['trials:trials-workbenck:medicalAudit'])" :label="`${$t('trials:trials-panel:tab:pmMedicalFeedback')} (${tabList.MIM_MedicalReviewCount})`">
<MedicalAudit v-if="activeName === 'MedicalAudit'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 项目签署文件 -->
<el-tab-pane v-if="!hasPermi(['role:zys'])" :label="`${$t('trials:workbench:title:trialDocBeSigned')} (${tabList.TrialWaitSignDocCount})`">
<NeedSignTrialDoc :is-sign-system-doc="isSignSystemDoc" />
<el-tab-pane name="NeedSignTrialDoc" v-if="!hasPermi(['role:zys'])" :label="`${$t('trials:workbench:title:trialDocBeSigned')} (${tabList.TrialWaitSignDocCount})`">
<NeedSignTrialDoc v-if="activeName === 'NeedSignTrialDoc'" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 系统签署文件 -->
<el-tab-pane v-if="!hasPermi(['role:zys'])" :label="`${$t('trials:workbench:title:sysDocBeSigned')} (${tabList.SysWaitSignDocCount})`">
<NeedSignSysDoc @refreshStats="refreshStats" />
<el-tab-pane name="NeedSignSysDoc" v-if="!hasPermi(['role:zys'])" :label="`${$t('trials:workbench:title:sysDocBeSigned')} (${tabList.SysWaitSignDocCount})`">
<NeedSignSysDoc v-if="activeName === 'NeedSignSysDoc'" @refreshStats="refreshStats" />
</el-tab-pane>
</el-tabs>
</div>
<!-- &lt;!&ndash; SPM/CPM &ndash;&gt;-->
<!-- &lt;!&ndash; 阅片人审批 &ndash;&gt;-->
<!-- &lt;!&ndash; 重阅审批 &ndash;&gt;-->
<!-- &lt;!&ndash; CRC &ndash;&gt;-->
<!-- &lt;!&ndash; 临床数据录入 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbench:clinicalDataEntry'])" class="item">-->
<!-- -->
<!-- <clinicalData :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; 临床数据确认 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbench:clinicalDataEntry'])" class="item">-->
<!-- -->
<!-- <clinicalDataConfirm :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; 影像质疑 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbench:imageQuestion'])" class="item">-->
<!-- -->
<!-- <ImageQuestion :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; 核查质疑 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:imageVerification'])" class="item">-->
<!-- -->
<!-- <ImageVerification :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; 影像重传 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:imageReupload'])" class="item">-->
<!-- -->
<!-- <ImageReupload :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; 加急影像提交 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:imageSubmission'])" class="item">-->
<!-- -->
<!-- <ImageSubmission :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; IQC &ndash;&gt;-->
<!-- &lt;!&ndash; 影像质控 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:imageQC'])" class="item">-->
<!-- -->
<!-- <ImageQualityControl :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; QC质疑 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:qcQuestion'])" class="item">-->
<!-- -->
<!-- <QcQuestion :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; IR &ndash;&gt;-->
<!-- &lt;!&ndash; 影像待阅 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:imagesToRead'])" class="item">-->
<!-- -->
<!-- <ImagesToRead :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; 医学反馈 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:medicalFeedback'])" class="item">-->
<!-- -->
<!-- <MedicalFeedback :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; MIM &ndash;&gt;-->
<!-- &lt;!&ndash; 医学审核 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:medicalAudit'])" class="item">-->
<!-- -->
<!-- <MedicalAudit :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- <div v-if="!isSignSystemDoc && !hasPermi(['role:zys'])" class="item">-->
<!-- -->
<!-- <NeedSignTrialDoc />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- <div v-if="isSignSystemDoc || hasPermi(['role:zys'])" class="item">-->
<!-- -->
<!-- <NeedSignSysDoc @refreshStats="refreshStats" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- </div>-->
</div>
</div>
</template>
@ -253,7 +129,8 @@ export default {
return {
isSignSystemDoc: false,
trialIdList: [],
tabList: {}
tabList: {},
activeName: ''
}
},
mounted() {