uat_us
caiyiling 2024-03-06 15:09:47 +08:00
commit 5782fa5f38
11 changed files with 266 additions and 272 deletions

View File

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

View File

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

View File

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

View File

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

View File

@ -377,6 +377,18 @@
sortable="custom" sortable="custom"
width="160" 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 <el-table-column
v-if="hasPermi(['role:ir'])" v-if="hasPermi(['role:ir'])"
prop="IR_UrgentCount" prop="IR_UrgentCount"

View File

@ -110,6 +110,22 @@
</el-button> </el-button>
</template> </template>
</el-table-column> </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 <el-table-column
:label="$t('trials:enrolledReviews:message:SOW')" :label="$t('trials:enrolledReviews:message:SOW')"
width="160" width="160"
@ -348,7 +364,8 @@ import {
deleteReviewerAckSOW, deleteReviewerAckSOW,
updateReviewerReadingType, updateReviewerReadingType,
enrollBackOrOut, enrollBackOrOut,
setEnrollReadingCategory setEnrollReadingCategory,
batchSetCriterionJoinJoinAnalysis
} from '@/api/trials' } from '@/api/trials'
import { addDoctorCriterionFile } from '@/api/reviewers' import { addDoctorCriterionFile } from '@/api/reviewers'
import { uploadFile } from '@/api/attachment' import { uploadFile } from '@/api/attachment'
@ -438,6 +455,47 @@ export default {
this.initPage() this.initPage()
}, },
methods: { 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) { go(path) {
window.open(path) window.open(path)
}, },
@ -589,7 +647,27 @@ export default {
this.listLoading = true this.listLoading = true
getTrialEnrollmentWorkloadStats(this.listQuery).then((res) => { getTrialEnrollmentWorkloadStats(this.listQuery).then((res) => {
this.listLoading = false 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) { if (this.list.length > 0) {
this.TrialReadingCriterionList = this.list[0].TrialReadingCriterionList this.TrialReadingCriterionList = this.list[0].TrialReadingCriterionList
} }

View File

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

View File

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

View File

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

View File

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

View File

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