修改配置
parent
39b9249ae7
commit
010d26029c
|
@ -38,4 +38,4 @@ VUE_APP_OSS_CONFIG_REGION = 'oss-cn-shanghai'
|
|||
VUE_APP_OSS_CONFIG_BUCKET = 'zyypacs-prod'
|
||||
|
||||
|
||||
VUE_APP_OSS_PATH = '/study_prod/dist'
|
||||
VUE_APP_OSS_PATH = '/hir_prod/dist'
|
||||
|
|
|
@ -45,4 +45,4 @@ VUE_APP_OSS_CONFIG_REGION = 'oss-cn-shanghai'
|
|||
|
||||
VUE_APP_OSS_CONFIG_BUCKET = 'zyypacs'
|
||||
|
||||
VUE_APP_OSS_PATH = '/study_test/dist'
|
||||
VUE_APP_OSS_PATH = '/hir_test/dist'
|
||||
|
|
2
.env.uat
2
.env.uat
|
@ -38,4 +38,4 @@ VUE_APP_OSS_CONFIG_REGION = 'oss-cn-shanghai'
|
|||
|
||||
VUE_APP_OSS_CONFIG_BUCKET = 'zyypacs-uat'
|
||||
|
||||
VUE_APP_OSS_PATH = '/study_uat/dist'
|
||||
VUE_APP_OSS_PATH = '/hir_uat/dist'
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
build/*.js
|
||||
src/assets
|
||||
src/utils/*
|
||||
public
|
||||
dist
|
||||
src/views/dictionary/checkConfig/*
|
||||
src/views/trials/trials-panel/trial-summary/*
|
||||
src/main.js
|
||||
src/views/trials/trials-panel/reading/reading-tracking/*
|
||||
src/views/trials/trials-panel/reading/pm-medical-feedback/*
|
||||
src/views/trials/trials-panel/reading/consistency-analysis/*
|
||||
src/views/trials/trials-panel/reading/referee-allocation/*
|
||||
src/views/trials/trials-list/components/TrialForm
|
||||
src/views/trials/trials-panel/reading/read-task-allocation/*
|
||||
src/views/blindResumeInfo/*
|
||||
src/views/trials/trials-panel/visit/crc-upload/*
|
||||
src/views/trials/trials-panel/reading/dicoms/customize/*
|
||||
src/views/trials/trials-panel/subject/brain-metastasis/*
|
||||
src/views/trials/trials-panel/setting/reading-unit/components/*
|
||||
src/cornerstonejs/*
|
||||
src/*
|
|
@ -14,5 +14,5 @@ tests/**/coverage/
|
|||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
.eslintignore
|
||||
/.eslintignore
|
||||
# .eslintignore
|
||||
# /.eslintignore
|
|
@ -78,7 +78,7 @@ export default {
|
|||
}
|
||||
},
|
||||
mounted() {
|
||||
this.show = process.env.VUE_APP_OSS_PATH === '/study_test/dist'
|
||||
this.show = process.env.VUE_APP_OSS_PATH === '/hir_test/dist'
|
||||
},
|
||||
methods: {
|
||||
changeValue(target, attr, e) {
|
||||
|
|
|
@ -404,10 +404,10 @@ export default {
|
|||
if (!fd) return;
|
||||
let data = {
|
||||
TrialId: this.submitMessage.TrialId,
|
||||
SubjectVisitList: [],
|
||||
SubjectVisitIdList : [],
|
||||
};
|
||||
this.tableSelectData.forEach((item) => {
|
||||
data.SubjectVisitList.push(item.SubjectVisitId);
|
||||
data.SubjectVisitIdList .push(item.SubjectVisitId);
|
||||
});
|
||||
try {
|
||||
this.btnLoading2 = true;
|
||||
|
|
|
@ -406,7 +406,7 @@ export default {
|
|||
if (confirm !== "confirm") return;
|
||||
let data = {
|
||||
TrialId: this.$route.query.trialId,
|
||||
SubjectVisitList: [item.SubjectVisitId],
|
||||
SubjectVisitIdList: [item.SubjectVisitId],
|
||||
};
|
||||
try {
|
||||
this.loading = true;
|
||||
|
@ -418,7 +418,7 @@ export default {
|
|||
);
|
||||
}
|
||||
} catch (err) {
|
||||
this.btnLoading2 = false;
|
||||
this.loading = false;
|
||||
console.log(err);
|
||||
}
|
||||
},
|
||||
|
|
|
@ -1,287 +1,418 @@
|
|||
<template>
|
||||
<BaseContainer>
|
||||
<el-tabs v-model="TrialReadingCriterionId" type="border-card">
|
||||
<el-tab-pane v-for="item of trialCriterionList" :key="item.TrialReadingCriterionId" :label="item.TrialReadingCriterionName" :name="item.TrialReadingCriterionId">
|
||||
<div>
|
||||
<div slot="search-container">
|
||||
<el-form :inline="true">
|
||||
<!-- 中心编号 -->
|
||||
<el-form-item :label="$t('trials:reviewTrack:table:siteCode')">
|
||||
<el-select v-model="searchData.SiteId" clearable filterable style="width:120px;">
|
||||
<el-option
|
||||
v-for="(item,index) of siteOptions"
|
||||
:key="index"
|
||||
:label="item.TrialSiteCode"
|
||||
:value="item.SiteId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 受试者编号 -->
|
||||
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
|
||||
<el-input v-model="searchData.SubjectCode" style="width:100px;" />
|
||||
</el-form-item>
|
||||
<!-- 任务名称 -->
|
||||
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:taskName')">
|
||||
<el-input
|
||||
v-model="searchData.TaskName"
|
||||
style="width:100px;"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 阅片人 -->
|
||||
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:reader')">
|
||||
<el-select v-model="searchData.DoctorUserId" clearable style="width:120px;">
|
||||
<el-option v-for="item of DoctorUserList" :key="'DoctorUserId' + item.DoctorUserId" :value="item.DoctorUserId" :label="`${item.UserName}(${item.FullName})`" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <!– 阅片标准 –>-->
|
||||
<!-- <el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:criterionName')">-->
|
||||
<!-- <el-select v-model="searchData.TrialReadingCriterionId" clearable style="width:120px;">-->
|
||||
<!-- <el-option v-for="item of trialCriterionList" :key="'TrialReadingCriterionId' + item.TrialReadingCriterionId" :value="item.TrialReadingCriterionId" :label="item.TrialReadingCriterionName" />-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
<!-- 审核结果 -->
|
||||
<el-form-item style="margin-bottom:10px" :label="$t('trials:auditRecord:table:auditResult')">
|
||||
<el-select v-model="searchData.PIAuditState" clearable style="width:120px;">
|
||||
<el-option v-for="item of $d.PIAuditState" :key="'PIAuditState' + item.label" :value="item.value" :label="item.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item style="margin-bottom:10px">
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||
{{ $t('common:button:search') }}
|
||||
</el-button>
|
||||
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
|
||||
{{ $t('common:button:reset') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div slot="main-container">
|
||||
<el-table
|
||||
v-adaptive="{bottomOffset:75}"
|
||||
v-loading="loading"
|
||||
:data="list"
|
||||
ref="myTable"
|
||||
stripe
|
||||
height="100"
|
||||
@sort-change="handleSortChange"
|
||||
<div slot="search-container">
|
||||
<el-form :inline="true">
|
||||
<!-- 阅片标准 -->
|
||||
<el-form-item :label="$t('trials:auditRecord:table:criterion')">
|
||||
<el-select
|
||||
v-model="searchData.TrialReadingCriterionId"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of trialCriterionList"
|
||||
:key="'TrialReadingCriterionId' + item.TrialReadingCriterionId"
|
||||
:value="item.TrialReadingCriterionId"
|
||||
:label="item.TrialReadingCriterionName"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 受试者编号 -->
|
||||
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
|
||||
<el-input v-model="searchData.SubjectCode" style="width: 100px" />
|
||||
</el-form-item>
|
||||
<!-- 任务名称 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:reviewTrack:table:taskName')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.TaskName"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, index) of siteOptions"
|
||||
:key="index"
|
||||
:label="item.TrialSiteCode"
|
||||
:value="item.SiteId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 阅片人 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:reviewTrack:table:reader')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.DoctorUserId"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of DoctorUserList"
|
||||
:key="'DoctorUserId' + item.DoctorUserId"
|
||||
:value="item.DoctorUserId"
|
||||
:label="`${item.UserName}(${item.FullName})`"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 任务状态 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:readTask:table:taskState')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.DoctorUserId"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of DoctorUserList"
|
||||
:key="'DoctorUserId' + item.DoctorUserId"
|
||||
:value="item.DoctorUserId"
|
||||
:label="`${item.UserName}(${item.FullName})`"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 审核结果 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:auditRecord:table:auditResult')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.PIAuditState"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.PIAuditState"
|
||||
:key="'PIAuditState' + item.label"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 是否入组 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:auditRecord:table:isEnrollment')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.DoctorUserId"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of DoctorUserList"
|
||||
:key="'DoctorUserId' + item.DoctorUserId"
|
||||
:value="item.DoctorUserId"
|
||||
:label="`${item.UserName}(${item.FullName})`"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 是否PD -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:auditRecord:table:isPDConfirm')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.DoctorUserId"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of DoctorUserList"
|
||||
:key="'DoctorUserId' + item.DoctorUserId"
|
||||
:value="item.DoctorUserId"
|
||||
:label="`${item.UserName}(${item.FullName})`"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item style="margin-bottom: 10px">
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||
{{ $t("common:button:search") }}
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-refresh-left"
|
||||
@click="handleReset"
|
||||
>
|
||||
{{ $t("common:button:reset") }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div slot="main-container">
|
||||
<el-table
|
||||
v-adaptive="{ bottomOffset: 75 }"
|
||||
v-loading="loading"
|
||||
:data="list"
|
||||
ref="myTable"
|
||||
stripe
|
||||
height="100"
|
||||
@sort-change="handleSortChange"
|
||||
>
|
||||
<!-- 任务编号 -->
|
||||
<el-table-column
|
||||
prop="TaskCode"
|
||||
:label="$t('trials:reviewTrack:table:taskCode')"
|
||||
width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 受试者编号 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
:label="$t('trials:reviewTrack:table:subjectCode')"
|
||||
min-width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 任务名称 -->
|
||||
<el-table-column
|
||||
prop="VisitTaskNum"
|
||||
:label="$t('trials:reviewTrack:table:taskName')"
|
||||
width="140"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.TaskName }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 角色 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
:label="$t('trials:auditRecord:table:role')"
|
||||
min-width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 阅片人 -->
|
||||
<el-table-column
|
||||
prop="UserName"
|
||||
:label="$t('trials:reviewTrack:table:reader')"
|
||||
width="130"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template v-if="scope.row.UserName" slot-scope="scope">
|
||||
{{ scope.row.UserName }}({{ scope.row.FullName }})
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 任务状态 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
:label="$t('trials:readTask:table:taskState')"
|
||||
min-width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 阅片标准 -->
|
||||
<el-table-column
|
||||
prop="TrialReadingCriterionName"
|
||||
:label="$t('trials:reviewTrack:table:criterionName')"
|
||||
min-width="180"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 阅片完成时间 -->
|
||||
<el-table-column
|
||||
prop="SignTime"
|
||||
:label="$t('trials:reviewTrack:table:signTime')"
|
||||
min-width="180"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 创建人 -->
|
||||
<el-table-column
|
||||
prop="FirstAuditUserName"
|
||||
:label="$t('trials:auditRecord:table:creator')"
|
||||
width="130"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 创建时间 -->
|
||||
<el-table-column
|
||||
prop="FirstAuditTime"
|
||||
:label="$t('trials:auditRecord:table:createTime')"
|
||||
width="130"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 审核结果 -->
|
||||
<el-table-column
|
||||
prop="PIAuditState"
|
||||
:label="$t('trials:auditRecord:table:auditResult')"
|
||||
min-width="140"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{
|
||||
$fd("PIAuditState", scope.row.PIAuditState)
|
||||
}}</el-tag>
|
||||
<el-tag v-else-if="scope.row.PIAuditState === 1" type="primary">{{
|
||||
$fd("PIAuditState", scope.row.PIAuditState)
|
||||
}}</el-tag>
|
||||
<el-tag v-else-if="scope.row.PIAuditState === 2" type="warning"
|
||||
>{{ $fd("PIAuditState", scope.row.PIAuditState) }}
|
||||
</el-tag>
|
||||
<span v-else>{{
|
||||
$fd("PIAuditState", scope.row.PIAuditState)
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="item.QuestionId"
|
||||
:label="item.QuestionName"
|
||||
min-width="140"
|
||||
v-for="(item, index) of QuestionList"
|
||||
:key="'QuestionId' + index"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
item.DictionaryCode
|
||||
? $fd(
|
||||
item.DictionaryCode,
|
||||
parseInt(
|
||||
scope.row.PIReadingResultList.find(
|
||||
(v) => v.QuestionId === item.QuestionId
|
||||
).Answer
|
||||
)
|
||||
)
|
||||
: scope.row.PIReadingResultList.find(
|
||||
(v) => v.QuestionId === item.QuestionId
|
||||
).Answer
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 是否入组 -->
|
||||
<el-table-column
|
||||
prop="IsEnrollment"
|
||||
:label="$t('trials:auditRecord:table:isEnrollment')"
|
||||
min-width="110"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.IsEnrollment === true" type="primary">
|
||||
{{ $fd("YesOrNo", scope.row.IsEnrollment) }}
|
||||
</el-tag>
|
||||
<el-tag
|
||||
v-else-if="scope.row.IsEnrollment === false"
|
||||
type="danger"
|
||||
>{{ $fd("YesOrNo", scope.row.IsEnrollment) }}</el-tag
|
||||
>
|
||||
<!-- 任务编号 -->
|
||||
<el-table-column
|
||||
prop="TaskCode"
|
||||
:label="$t('trials:reviewTrack:table:taskCode')"
|
||||
width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 中心编号 -->
|
||||
<el-table-column
|
||||
prop="TrialSiteCode"
|
||||
:label="$t('trials:reviewTrack:table:siteCode')"
|
||||
width="100"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 受试者编号 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
:label="$t('trials:reviewTrack:table:subjectCode')"
|
||||
min-width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 任务名称 -->
|
||||
<el-table-column
|
||||
prop="VisitTaskNum"
|
||||
:label="$t('trials:reviewTrack:table:taskName')"
|
||||
width="140"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.TaskName }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 阅片人 -->
|
||||
<el-table-column
|
||||
prop="UserName"
|
||||
:label="$t('trials:reviewTrack:table:reader')"
|
||||
width="130"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template v-if="scope.row.UserName" slot-scope="scope">
|
||||
{{ scope.row.UserName }}({{ scope.row.FullName }})
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 阅片标准 -->
|
||||
<el-table-column
|
||||
prop="TrialReadingCriterionName"
|
||||
:label="$t('trials:reviewTrack:table:criterionName')"
|
||||
min-width="180"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 阅片完成时间 -->
|
||||
<el-table-column
|
||||
prop="SignTime"
|
||||
:label="$t('trials:reviewTrack:table:signTime')"
|
||||
min-width="180"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 创建人 -->
|
||||
<el-table-column
|
||||
prop="FirstAuditUserName"
|
||||
:label="$t('trials:auditRecord:table:creator')"
|
||||
width="130"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 创建时间 -->
|
||||
<el-table-column
|
||||
prop="FirstAuditTime"
|
||||
:label="$t('trials:auditRecord:table:createTime')"
|
||||
width="130"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 审核结果 -->
|
||||
<el-table-column
|
||||
prop="PIAuditState"
|
||||
:label="$t('trials:auditRecord:table:auditResult')"
|
||||
min-width="140"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{ $fd('PIAuditState', scope.row.PIAuditState) }}</el-tag>
|
||||
<el-tag v-else-if="scope.row.PIAuditState === 1" type="primary">{{ $fd('PIAuditState', scope.row.PIAuditState) }}</el-tag>
|
||||
<el-tag v-else-if="scope.row.PIAuditState === 2" type="warning">{{ $fd('PIAuditState', scope.row.PIAuditState) }}
|
||||
</el-tag>
|
||||
<span v-else>{{ $fd('PIAuditState', scope.row.PIAuditState) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="item.QuestionId"
|
||||
:label="item.QuestionName"
|
||||
min-width="140"
|
||||
v-for="item of QuestionList"
|
||||
:key="Math.random()"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ item.DictionaryCode ? $fd(item.DictionaryCode, parseInt(scope.row.PIReadingResultList.find(v => v.QuestionId === item.QuestionId).Answer)) : scope.row.PIReadingResultList.find(v => v.QuestionId === item.QuestionId).Answer}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 是否入组 -->
|
||||
<el-table-column
|
||||
prop="IsEnrollment"
|
||||
:label="$t('trials:auditRecord:table:isEnrollment')"
|
||||
min-width="110"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.IsEnrollment === true" type="primary">
|
||||
{{ $fd('YesOrNo', scope.row.IsEnrollment) }}
|
||||
</el-tag>
|
||||
<el-tag v-else-if="scope.row.IsEnrollment === false" type="danger">{{ $fd('YesOrNo', scope.row.IsEnrollment) }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 是否PD -->
|
||||
<el-table-column
|
||||
prop="IsPDConfirm"
|
||||
:label="$t('trials:auditRecord:table:isPDConfirm')"
|
||||
min-width="110"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.IsPDConfirm === true" type="primary">
|
||||
{{ $fd('YesOrNo', scope.row.IsPDConfirm) }}
|
||||
</el-tag>
|
||||
<el-tag v-else-if="scope.row.IsPDConfirm === false" type="danger">{{ $fd('YesOrNo', scope.row.IsPDConfirm) }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 最新回复人 -->
|
||||
<el-table-column
|
||||
prop="LatestReplyUserName"
|
||||
:label="$t('trials:auditRecord:table:latestReplyUserName')"
|
||||
width="130"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 最新回复时间 -->
|
||||
<el-table-column
|
||||
prop="LatestReplyTime"
|
||||
:label="$t('trials:auditRecord:table:latestReplyTime')"
|
||||
width="130"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column
|
||||
fixed="right"
|
||||
:label="$t('common:action:action')"
|
||||
width="200"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<!-- 阅片结果 -->
|
||||
<el-button
|
||||
circle
|
||||
icon="el-icon-view"
|
||||
:title="$t('trials:auditRecord:table:readingResult')"
|
||||
@click="handleView(scope.row)"
|
||||
/>
|
||||
<!-- 审核记录 -->
|
||||
<el-button
|
||||
circle
|
||||
icon="el-icon-tickets"
|
||||
:disabled="scope.row.TaskState !== 0 || scope.row.PIAuditState === 0"
|
||||
:title="$t('trials:auditRecord:table:auditRecords')"
|
||||
@click="handleAuditRecords(scope.row)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- 分页组件 -->
|
||||
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" />
|
||||
</div>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 是否PD -->
|
||||
<el-table-column
|
||||
prop="IsPDConfirm"
|
||||
:label="$t('trials:auditRecord:table:isPDConfirm')"
|
||||
min-width="110"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.IsPDConfirm === true" type="primary">
|
||||
{{ $fd("YesOrNo", scope.row.IsPDConfirm) }}
|
||||
</el-tag>
|
||||
<el-tag v-else-if="scope.row.IsPDConfirm === false" type="danger">{{
|
||||
$fd("YesOrNo", scope.row.IsPDConfirm)
|
||||
}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 最新回复人 -->
|
||||
<el-table-column
|
||||
prop="LatestReplyUserName"
|
||||
:label="$t('trials:auditRecord:table:latestReplyUserName')"
|
||||
width="130"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 最新回复时间 -->
|
||||
<el-table-column
|
||||
prop="LatestReplyTime"
|
||||
:label="$t('trials:auditRecord:table:latestReplyTime')"
|
||||
width="130"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column
|
||||
fixed="right"
|
||||
:label="$t('common:action:action')"
|
||||
width="200"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<!-- 阅片结果 -->
|
||||
<el-button
|
||||
circle
|
||||
icon="el-icon-view"
|
||||
:title="$t('trials:auditRecord:table:readingResult')"
|
||||
@click="handleView(scope.row)"
|
||||
/>
|
||||
<!-- 审核记录 -->
|
||||
<el-button
|
||||
circle
|
||||
icon="el-icon-tickets"
|
||||
:disabled="
|
||||
scope.row.TaskState !== 0 || scope.row.PIAuditState === 0
|
||||
"
|
||||
:title="$t('trials:auditRecord:table:auditRecords')"
|
||||
@click="handleAuditRecords(scope.row)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- 分页组件 -->
|
||||
<pagination
|
||||
class="page"
|
||||
:total="total"
|
||||
:page.sync="searchData.PageIndex"
|
||||
:limit.sync="searchData.PageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
<!-- 审核记录 -->
|
||||
<el-dialog
|
||||
v-if="auditRecordVisible"
|
||||
:visible.sync="auditRecordVisible"
|
||||
:close-on-click-modal="false"
|
||||
custom-class="base-dialog-wrapper"
|
||||
:title="`${$t('trials:auditRecord:table:auditRecords')}(${currentRow.SubjectCode} | ${currentRow.TaskName} | ${currentRow.UserName})`"
|
||||
:title="`${$t('trials:auditRecord:table:auditRecords')}(${
|
||||
currentRow.SubjectCode
|
||||
} | ${currentRow.TaskName} | ${currentRow.UserName})`"
|
||||
width="600px"
|
||||
>
|
||||
<ChatForm
|
||||
:row-data="currentRow"
|
||||
@getList="getList"
|
||||
@close="auditRecordVisible=false"
|
||||
@close="auditRecordVisible = false"
|
||||
/>
|
||||
</el-dialog>
|
||||
</BaseContainer>
|
||||
</template>
|
||||
<script>
|
||||
import { getPIReadingAuditList } from '@/api/reading'
|
||||
import { getTrialCriterionList, getDoctorUserSelectList } from '@/api/trials/reading'
|
||||
import { getTrialSiteSelect } from '@/api/trials'
|
||||
import { getToken } from '@/utils/auth'
|
||||
import BaseContainer from '@/components/BaseContainer'
|
||||
import Pagination from '@/components/Pagination'
|
||||
import ChatForm from './components/ChatForm'
|
||||
import { getPIReadingAuditList } from "@/api/reading";
|
||||
import {
|
||||
getTrialCriterionList,
|
||||
getDoctorUserSelectList,
|
||||
} from "@/api/trials/reading";
|
||||
import { getTrialSiteSelect } from "@/api/trials";
|
||||
import { getToken } from "@/utils/auth";
|
||||
import BaseContainer from "@/components/BaseContainer";
|
||||
import Pagination from "@/components/Pagination";
|
||||
import ChatForm from "./components/ChatForm";
|
||||
const searchDataDefault = () => {
|
||||
return {
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
Asc: true,
|
||||
SortField: '',
|
||||
SortField: "",
|
||||
TrialId: null,
|
||||
SiteId: null,
|
||||
SubjectId: null,
|
||||
|
@ -292,11 +423,11 @@ const searchDataDefault = () => {
|
|||
DoctorUserId: null,
|
||||
ReadingTaskState: 2,
|
||||
PIAuditState: null,
|
||||
IsWaitPIAudit: null
|
||||
}
|
||||
}
|
||||
IsWaitPIAudit: null,
|
||||
};
|
||||
};
|
||||
export default {
|
||||
name: 'AuditRecords', // PI审核
|
||||
name: "AuditRecords", // PI审核
|
||||
components: { BaseContainer, Pagination, ChatForm },
|
||||
data() {
|
||||
return {
|
||||
|
@ -304,105 +435,112 @@ export default {
|
|||
list: [],
|
||||
total: 0,
|
||||
loading: false,
|
||||
userListLoading: '',
|
||||
trialId: '',
|
||||
userListLoading: "",
|
||||
trialId: "",
|
||||
trialCriterionList: [],
|
||||
siteOptions: [],
|
||||
DoctorUserList: [],
|
||||
auditRecordVisible: false,
|
||||
TrialReadingCriterionId: '0',
|
||||
TrialReadingCriterionId: "0",
|
||||
openWindow: null,
|
||||
QuestionList: []
|
||||
}
|
||||
QuestionList: [],
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
TrialReadingCriterionId(v) {
|
||||
if (v) {
|
||||
this.getList()
|
||||
this.getList();
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
beforeUpdate() {
|
||||
this.$nextTick(() => {
|
||||
this.$refs.myTable.doLayout()
|
||||
})
|
||||
this.$refs.myTable.doLayout();
|
||||
});
|
||||
},
|
||||
mounted() {
|
||||
this.trialId = this.$route.query.trialId
|
||||
this.getTrialCriterionList()
|
||||
this.getSite()
|
||||
this.getDoctorUserSelectList()
|
||||
this.trialId = this.$route.query.trialId;
|
||||
this.getTrialCriterionList();
|
||||
this.getSite();
|
||||
this.getDoctorUserSelectList();
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
this.loading = true
|
||||
this.searchData.TrialId = this.trialId
|
||||
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId
|
||||
getPIReadingAuditList(this.searchData).then(res => {
|
||||
this.loading = false
|
||||
this.QuestionList = res.OtherInfo.OtherObj
|
||||
this.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
this.list = res.Result.CurrentPageData
|
||||
}, 100)
|
||||
this.total = res.Result.TotalCount
|
||||
this.$refs.myTable.doLayout()
|
||||
this.loading = true;
|
||||
this.searchData.TrialId = this.trialId;
|
||||
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId;
|
||||
getPIReadingAuditList(this.searchData)
|
||||
.then((res) => {
|
||||
this.loading = false;
|
||||
this.QuestionList = res.OtherInfo.OtherObj;
|
||||
this.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
this.list = res.Result.CurrentPageData;
|
||||
}, 100);
|
||||
this.total = res.Result.TotalCount;
|
||||
this.$refs.myTable.doLayout();
|
||||
});
|
||||
})
|
||||
}).catch(() => { this.loading = false })
|
||||
.catch(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
handleAuditRecords(row) {
|
||||
this.currentRow = { ...row }
|
||||
this.auditRecordVisible = true
|
||||
this.currentRow = { ...row };
|
||||
this.auditRecordVisible = true;
|
||||
},
|
||||
// 查看阅片结果
|
||||
handleView(row) {
|
||||
if (this.openWindow) {
|
||||
this.openWindow.close()
|
||||
this.openWindow.close();
|
||||
}
|
||||
var token = getToken()
|
||||
var path
|
||||
var token = getToken();
|
||||
var path;
|
||||
if (row.ReadingTool === 0) {
|
||||
path = `/readingDicoms?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`
|
||||
path = `/readingDicoms?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`;
|
||||
} else {
|
||||
path = `/noneDicomReading?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`
|
||||
path = `/noneDicomReading?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`;
|
||||
}
|
||||
this.openWindow = window.open(path, '_blank')
|
||||
this.openWindow = window.open(path, "_blank");
|
||||
},
|
||||
getTrialCriterionList() {
|
||||
getTrialCriterionList(this.trialId).then(res => {
|
||||
this.trialCriterionList = res.Result
|
||||
this.TrialReadingCriterionId = this.trialCriterionList[0].TrialReadingCriterionId
|
||||
}).catch(() => {})
|
||||
getTrialCriterionList(this.trialId)
|
||||
.then((res) => {
|
||||
this.trialCriterionList = res.Result;
|
||||
this.TrialReadingCriterionId =
|
||||
this.trialCriterionList[0].TrialReadingCriterionId;
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
getDoctorUserSelectList() {
|
||||
getDoctorUserSelectList(this.$route.query.trialId).then(res => {
|
||||
this.DoctorUserList = res.Result
|
||||
})
|
||||
getDoctorUserSelectList(this.$route.query.trialId).then((res) => {
|
||||
this.DoctorUserList = res.Result;
|
||||
});
|
||||
},
|
||||
getSite() {
|
||||
getTrialSiteSelect(this.trialId).then(res => {
|
||||
this.siteOptions = res.Result
|
||||
})
|
||||
getTrialSiteSelect(this.trialId).then((res) => {
|
||||
this.siteOptions = res.Result;
|
||||
});
|
||||
},
|
||||
handleSearch() {
|
||||
this.searchData.PageIndex = 1
|
||||
this.getList()
|
||||
this.searchData.PageIndex = 1;
|
||||
this.getList();
|
||||
},
|
||||
handleReset() {
|
||||
this.searchData = searchDataDefault()
|
||||
this.getList()
|
||||
this.searchData = searchDataDefault();
|
||||
this.getList();
|
||||
},
|
||||
// 排序
|
||||
handleSortChange(column) {
|
||||
if (column.order === 'ascending') {
|
||||
this.searchData.Asc = true
|
||||
if (column.order === "ascending") {
|
||||
this.searchData.Asc = true;
|
||||
} else {
|
||||
this.searchData.Asc = false
|
||||
this.searchData.Asc = false;
|
||||
}
|
||||
this.searchData.SortField = column.prop
|
||||
this.searchData.PageIndex = 1
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
}
|
||||
this.searchData.SortField = column.prop;
|
||||
this.searchData.PageIndex = 1;
|
||||
this.getList();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -1,87 +1,162 @@
|
|||
<template>
|
||||
<BaseContainer>
|
||||
<el-tabs v-model="TrialReadingCriterionId" type="border-card">
|
||||
<el-tab-pane v-for="item of trialCriterionList" :key="item.TrialReadingCriterionId" :label="item.TrialReadingCriterionName" :name="item.TrialReadingCriterionId">
|
||||
<el-tab-pane
|
||||
v-for="item of trialCriterionList"
|
||||
:key="item.TrialReadingCriterionId"
|
||||
:label="item.TrialReadingCriterionName"
|
||||
:name="item.TrialReadingCriterionId"
|
||||
>
|
||||
<div v-if="TrialReadingCriterionId === item.TrialReadingCriterionId">
|
||||
<div slot="search-container">
|
||||
<el-form :inline="true">
|
||||
<!-- 中心编号 -->
|
||||
<el-form-item :label="$t('trials:reviewTrack:table:siteCode')">
|
||||
<el-select v-model="searchData.SiteId" clearable filterable style="width:120px;">
|
||||
<el-option
|
||||
v-for="(item,index) of siteOptions"
|
||||
:key="index"
|
||||
:label="item.TrialSiteCode"
|
||||
:value="item.SiteId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 受试者编号 -->
|
||||
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
|
||||
<el-input v-model="searchData.SubjectCode" style="width:100px;" />
|
||||
<el-input
|
||||
v-model="searchData.SubjectCode"
|
||||
style="width: 100px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 任务名称 -->
|
||||
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:taskName')">
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:reviewTrack:table:taskName')"
|
||||
>
|
||||
<el-input
|
||||
v-model="searchData.TaskName"
|
||||
style="width:100px;"
|
||||
style="width: 100px"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 阅片人 -->
|
||||
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:reader')">
|
||||
<el-select v-model="searchData.DoctorUserId" clearable style="width:120px;">
|
||||
<el-option v-for="item of DoctorUserList" :key="'DoctorUserId' + item.DoctorUserId" :value="item.DoctorUserId" :label="`${item.UserName}(${item.FullName})`" />
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:reviewTrack:table:reader')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.DoctorUserId"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of DoctorUserList"
|
||||
:key="'DoctorUserId' + item.DoctorUserId"
|
||||
:value="item.DoctorUserId"
|
||||
:label="`${item.UserName}(${item.FullName})`"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 阅片标准 -->
|
||||
<!-- <el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:criterionName')">-->
|
||||
<!-- <el-select v-model="searchData.TrialReadingCriterionId" clearable style="width:120px;">-->
|
||||
<!-- <el-option v-for="item of trialCriterionList" :key="'TrialReadingCriterionId' + item.TrialReadingCriterionId" :value="item.TrialReadingCriterionId" :label="item.TrialReadingCriterionName" />-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- 是否加急 -->
|
||||
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:isUrgent')">
|
||||
<el-select v-model="searchData.IsUrgent" clearable style="width:120px;">
|
||||
<el-option v-for="item of $d.YesOrNo" :key="'IsUrgent' + item.label" :value="item.value" :label="item.label" />
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:reviewTrack:table:isUrgent')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.IsUrgent"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.YesOrNo"
|
||||
:key="'IsUrgent' + item.label"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 任务状态 -->
|
||||
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:taskStatus')">
|
||||
<el-select v-model="searchData.TaskState" clearable style="width:120px;">
|
||||
<el-option v-for="item of $d.TaskState" :key="'TaskState' + item.label" :value="item.value" :label="item.label" />
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:reviewTrack:table:taskStatus')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.TaskState"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.TaskState"
|
||||
:key="'TaskState' + item.label"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 阅片状态 -->
|
||||
<!-- <el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:readingStatus')">
|
||||
<el-select v-model="searchData.ReadingTaskState" clearable style="width:120px;">
|
||||
<el-option v-for="item of $d.ReadingTaskState" :key="'ReadingTaskState' + item.label" :value="item.value" :label="item.label" />
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<!-- <el-form-item style="margin-bottom:10px" :label="$t('trials:rereadTrack:table:ReReadingApplyState')">
|
||||
<el-select v-model="searchData.ReReadingApplyState" clearable style="width:120px;">
|
||||
<el-option v-for="item of $d.ReReadingApplyState" :key="'ReReadingApplyState' + item.label" :value="item.value" :label="item.label" />
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<!-- 审核状态 -->
|
||||
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:auditStatus')">
|
||||
<el-select v-model="searchData.PIAuditState" clearable style="width:120px;">
|
||||
<el-option v-for="item of $d.PIAuditState" :key="'PIAuditState' + item.label" :value="item.value" :label="item.label" />
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:reviewTrack:table:auditStatus')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.PIAuditState"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.PIAuditState"
|
||||
:key="'PIAuditState' + item.label"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item style="margin-bottom:10px">
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||
{{ $t('common:button:search') }}
|
||||
<!-- 是否入组 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:auditRecord:table:isEnrollment')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.PIAuditState"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.PIAuditState"
|
||||
:key="'PIAuditState' + item.label"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 是否PD -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:auditRecord:table:isPDConfirm')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.PIAuditState"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.PIAuditState"
|
||||
:key="'PIAuditState' + item.label"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item style="margin-bottom: 10px">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
@click="handleSearch"
|
||||
>
|
||||
{{ $t("common:button:search") }}
|
||||
</el-button>
|
||||
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
|
||||
{{ $t('common:button:reset') }}
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-refresh-left"
|
||||
@click="handleReset"
|
||||
>
|
||||
{{ $t("common:button:reset") }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div slot="main-container">
|
||||
<el-table
|
||||
v-adaptive="{bottomOffset:80}"
|
||||
v-adaptive="{ bottomOffset: 80 }"
|
||||
v-loading="loading"
|
||||
:data="list"
|
||||
stripe
|
||||
|
@ -101,15 +176,52 @@
|
|||
<el-tag v-else type="primary">{{ $fd('YesOrNo', scope.row.IsUrgent) }}</el-tag> -->
|
||||
<el-tooltip placement="top">
|
||||
<div slot="content">
|
||||
<span>{{ `${$t('trials:pendingReview:title:urgentReason')} ${$fd('TaskUrgentType',scope.row.TaskUrgentType)}` }}</span><br>
|
||||
<span>{{ scope.row.TaskUrgentRemake?`${$t('trials:pendingReview:title:urgentNote')} ${scope.row.TaskUrgentRemake}`:'' }}</span>
|
||||
<span>{{
|
||||
`${$t("trials:pendingReview:title:urgentReason")} ${$fd(
|
||||
"TaskUrgentType",
|
||||
scope.row.TaskUrgentType
|
||||
)}`
|
||||
}}</span
|
||||
><br />
|
||||
<span>{{
|
||||
scope.row.TaskUrgentRemake
|
||||
? `${$t("trials:pendingReview:title:urgentNote")} ${
|
||||
scope.row.TaskUrgentRemake
|
||||
}`
|
||||
: ""
|
||||
}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<el-button v-if="scope.row.IsUrgent" :disabled="!(!scope.row.TaskState && (scope.row.ReadingTaskState === 0 || scope.row.ReadingTaskState === 1)) || !scope.row.IsCanEditUrgentState" type="danger" size="mini" @click="changeUrgentStatus(scope.row)">{{ $fd('YesOrNo', scope.row.IsUrgent) }}</el-button>
|
||||
<el-button
|
||||
v-if="scope.row.IsUrgent"
|
||||
:disabled="
|
||||
!(
|
||||
!scope.row.TaskState &&
|
||||
(scope.row.ReadingTaskState === 0 ||
|
||||
scope.row.ReadingTaskState === 1)
|
||||
) || !scope.row.IsCanEditUrgentState
|
||||
"
|
||||
type="danger"
|
||||
size="mini"
|
||||
@click="changeUrgentStatus(scope.row)"
|
||||
>{{ $fd("YesOrNo", scope.row.IsUrgent) }}</el-button
|
||||
>
|
||||
</div>
|
||||
</el-tooltip>
|
||||
<el-button v-if="!scope.row.IsUrgent" :disabled="!(!scope.row.TaskState && (scope.row.ReadingTaskState === 0 || scope.row.ReadingTaskState === 1)) || !scope.row.IsCanEditUrgentState" type="primary" size="mini" @click="changeUrgentStatus(scope.row)">{{ $fd('YesOrNo', scope.row.IsUrgent) }}</el-button>
|
||||
|
||||
<el-button
|
||||
v-if="!scope.row.IsUrgent"
|
||||
:disabled="
|
||||
!(
|
||||
!scope.row.TaskState &&
|
||||
(scope.row.ReadingTaskState === 0 ||
|
||||
scope.row.ReadingTaskState === 1)
|
||||
) || !scope.row.IsCanEditUrgentState
|
||||
"
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="changeUrgentStatus(scope.row)"
|
||||
>{{ $fd("YesOrNo", scope.row.IsUrgent) }}</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 任务编号 -->
|
||||
|
@ -120,14 +232,6 @@
|
|||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 中心编号 -->
|
||||
<el-table-column
|
||||
prop="TrialSiteCode"
|
||||
:label="$t('trials:reviewTrack:table:siteCode')"
|
||||
width="100"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 受试者编号 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
|
@ -173,11 +277,21 @@
|
|||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.TaskState === 0" type="primary">{{ $fd('TaskState', scope.row.TaskState) }}</el-tag>
|
||||
<el-tag v-if="scope.row.TaskState === 1" type="info">{{ $fd('TaskState', scope.row.TaskState) }}</el-tag>
|
||||
<el-tag v-if="scope.row.TaskState === 3" type="danger">{{ $fd('TaskState', scope.row.TaskState) }}</el-tag>
|
||||
<el-tag v-if="scope.row.TaskState === 4" type="warning">{{ $fd('TaskState', scope.row.TaskState) }}</el-tag>
|
||||
<el-tag v-if="scope.row.TaskState === 5" type="danger">{{ $fd('TaskState', scope.row.TaskState) }}</el-tag>
|
||||
<el-tag v-if="scope.row.TaskState === 0" type="primary">{{
|
||||
$fd("TaskState", scope.row.TaskState)
|
||||
}}</el-tag>
|
||||
<el-tag v-if="scope.row.TaskState === 1" type="info">{{
|
||||
$fd("TaskState", scope.row.TaskState)
|
||||
}}</el-tag>
|
||||
<el-tag v-if="scope.row.TaskState === 3" type="danger">{{
|
||||
$fd("TaskState", scope.row.TaskState)
|
||||
}}</el-tag>
|
||||
<el-tag v-if="scope.row.TaskState === 4" type="warning">{{
|
||||
$fd("TaskState", scope.row.TaskState)
|
||||
}}</el-tag>
|
||||
<el-tag v-if="scope.row.TaskState === 5" type="danger">{{
|
||||
$fd("TaskState", scope.row.TaskState)
|
||||
}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 角色 -->
|
||||
|
@ -210,14 +324,6 @@
|
|||
{{ scope.row.UserName }}({{ scope.row.FullName }})
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 阅片标准 -->
|
||||
<el-table-column
|
||||
prop="TrialReadingCriterionName"
|
||||
:label="$t('trials:reviewTrack:table:criterionName')"
|
||||
min-width="180"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 建议完成时间 -->
|
||||
<el-table-column
|
||||
prop="SuggesteFinishedTime"
|
||||
|
@ -235,8 +341,16 @@
|
|||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.ReadingTaskState === 2" type="primary">{{ $fd('ReadingTaskState', scope.row.ReadingTaskState) }}</el-tag>
|
||||
<el-tag v-else type="danger">{{ $fd('ReadingTaskState', scope.row.ReadingTaskState) }}</el-tag>
|
||||
<el-tag
|
||||
v-if="scope.row.ReadingTaskState === 2"
|
||||
type="primary"
|
||||
>{{
|
||||
$fd("ReadingTaskState", scope.row.ReadingTaskState)
|
||||
}}</el-tag
|
||||
>
|
||||
<el-tag v-else type="danger">{{
|
||||
$fd("ReadingTaskState", scope.row.ReadingTaskState)
|
||||
}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 阅片完成时间 -->
|
||||
|
@ -256,9 +370,30 @@
|
|||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.ReReadingApplyState === 4 || scope.row.ReReadingApplyState === 5" type="danger">{{ $fd('ReReadingApplyState', scope.row.ReReadingApplyState) }}</el-tag>
|
||||
<el-tag v-if="scope.row.ReReadingApplyState === 2" type="primary">{{ $fd('ReReadingApplyState', scope.row.ReReadingApplyState) }}</el-tag>
|
||||
<el-tag v-if="scope.row.ReReadingApplyState === 3" type="warning">{{ $fd('ReReadingApplyState', scope.row.ReReadingApplyState) }}</el-tag>
|
||||
<el-tag
|
||||
v-if="
|
||||
scope.row.ReReadingApplyState === 4 ||
|
||||
scope.row.ReReadingApplyState === 5
|
||||
"
|
||||
type="danger"
|
||||
>{{
|
||||
$fd("ReReadingApplyState", scope.row.ReReadingApplyState)
|
||||
}}</el-tag
|
||||
>
|
||||
<el-tag
|
||||
v-if="scope.row.ReReadingApplyState === 2"
|
||||
type="primary"
|
||||
>{{
|
||||
$fd("ReReadingApplyState", scope.row.ReReadingApplyState)
|
||||
}}</el-tag
|
||||
>
|
||||
<el-tag
|
||||
v-if="scope.row.ReReadingApplyState === 3"
|
||||
type="warning"
|
||||
>{{
|
||||
$fd("ReReadingApplyState", scope.row.ReReadingApplyState)
|
||||
}}</el-tag
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 审核结果 -->
|
||||
|
@ -270,23 +405,47 @@
|
|||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{ $fd('PIAuditState', scope.row.PIAuditState) }}</el-tag>
|
||||
<el-tag v-else-if="scope.row.PIAuditState === 1" type="primary">{{ $fd('PIAuditState', scope.row.PIAuditState) }}</el-tag>
|
||||
<el-tag v-else-if="scope.row.PIAuditState === 2" type="warning">{{ $fd('PIAuditState', scope.row.PIAuditState) }}
|
||||
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{
|
||||
$fd("PIAuditState", scope.row.PIAuditState)
|
||||
}}</el-tag>
|
||||
<el-tag
|
||||
v-else-if="scope.row.PIAuditState === 1"
|
||||
type="primary"
|
||||
>{{ $fd("PIAuditState", scope.row.PIAuditState) }}</el-tag
|
||||
>
|
||||
<el-tag
|
||||
v-else-if="scope.row.PIAuditState === 2"
|
||||
type="warning"
|
||||
>{{ $fd("PIAuditState", scope.row.PIAuditState) }}
|
||||
</el-tag>
|
||||
<span v-else>{{ $fd('PIAuditState', scope.row.PIAuditState) }}</span>
|
||||
<span v-else>{{
|
||||
$fd("PIAuditState", scope.row.PIAuditState)
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="item.QuestionId"
|
||||
:label="item.QuestionName"
|
||||
min-width="140"
|
||||
v-for="item of QuestionList"
|
||||
:key="Math.random()"
|
||||
v-for="(item, index) of QuestionList"
|
||||
:key="'QuestionId1' + index"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ item.DictionaryCode ? $fd(item.DictionaryCode, parseInt(scope.row.PIReadingResultList.find(v => v.QuestionId === item.QuestionId).Answer)) : scope.row.PIReadingResultList.find(v => v.QuestionId === item.QuestionId).Answer}}
|
||||
{{
|
||||
item.DictionaryCode
|
||||
? $fd(
|
||||
item.DictionaryCode,
|
||||
parseInt(
|
||||
scope.row.PIReadingResultList.find(
|
||||
(v) => v.QuestionId === item.QuestionId
|
||||
).Answer
|
||||
)
|
||||
)
|
||||
: scope.row.PIReadingResultList.find(
|
||||
(v) => v.QuestionId === item.QuestionId
|
||||
).Answer
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 是否入组 -->
|
||||
|
@ -299,9 +458,13 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.IsEnrollment === true" type="primary">
|
||||
{{ $fd('YesOrNo', scope.row.IsEnrollment) }}
|
||||
{{ $fd("YesOrNo", scope.row.IsEnrollment) }}
|
||||
</el-tag>
|
||||
<el-tag v-else-if="scope.row.IsEnrollment === false" type="danger">{{ $fd('YesOrNo', scope.row.IsEnrollment) }}</el-tag>
|
||||
<el-tag
|
||||
v-else-if="scope.row.IsEnrollment === false"
|
||||
type="danger"
|
||||
>{{ $fd("YesOrNo", scope.row.IsEnrollment) }}</el-tag
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 是否PD -->
|
||||
|
@ -314,9 +477,13 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.IsPDConfirm === true" type="primary">
|
||||
{{ $fd('YesOrNo', scope.row.IsPDConfirm) }}
|
||||
{{ $fd("YesOrNo", scope.row.IsPDConfirm) }}
|
||||
</el-tag>
|
||||
<el-tag v-else-if="scope.row.IsPDConfirm === false" type="danger">{{ $fd('YesOrNo', scope.row.IsPDConfirm) }}</el-tag>
|
||||
<el-tag
|
||||
v-else-if="scope.row.IsPDConfirm === false"
|
||||
type="danger"
|
||||
>{{ $fd("YesOrNo", scope.row.IsPDConfirm) }}</el-tag
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
|
@ -338,7 +505,10 @@
|
|||
circle
|
||||
icon="el-icon-edit-outline"
|
||||
:title="$t('trials:pendingReview:button:audit')"
|
||||
:disabled="scope.row.TaskState !== 0 || scope.row.UserTypeShortName === 'PI'"
|
||||
:disabled="
|
||||
scope.row.TaskState !== 0 ||
|
||||
scope.row.UserTypeShortName === 'PI'
|
||||
"
|
||||
@click="handleAudit(scope.row)"
|
||||
/>
|
||||
<!-- 入组确认 -->
|
||||
|
@ -347,7 +517,14 @@
|
|||
circle
|
||||
icon="el-icon-s-claim"
|
||||
:title="$t('trials:pendingReview:button:enrollmentConfirm')"
|
||||
:disabled="!(scope.row.TaskState === 0 && scope.row.PIAuditState === 2 && scope.row.IsEnrollmentConfirm && otherInfo.EnrollConfirmDefaultUserType === 8)"
|
||||
:disabled="
|
||||
!(
|
||||
scope.row.TaskState === 0 &&
|
||||
scope.row.PIAuditState === 2 &&
|
||||
scope.row.IsEnrollmentConfirm &&
|
||||
otherInfo.EnrollConfirmDefaultUserType === 8
|
||||
)
|
||||
"
|
||||
@click="handleEnrollConfirm(scope.row)"
|
||||
/>
|
||||
<!-- PD确认 -->
|
||||
|
@ -356,7 +533,14 @@
|
|||
circle
|
||||
icon="el-icon-s-claim"
|
||||
:title="$t('trials:pendingReview:button:pdConfirm')"
|
||||
:disabled="!(scope.row.TaskState === 0 && scope.row.PIAuditState === 2 && scope.row.PDState && otherInfo.PDProgressDefaultUserType === 8)"
|
||||
:disabled="
|
||||
!(
|
||||
scope.row.TaskState === 0 &&
|
||||
scope.row.PIAuditState === 2 &&
|
||||
scope.row.PDState &&
|
||||
otherInfo.PDProgressDefaultUserType === 8
|
||||
)
|
||||
"
|
||||
@click="handlePDConfirm(scope.row)"
|
||||
/>
|
||||
<!-- 审核记录 -->
|
||||
|
@ -364,14 +548,24 @@
|
|||
circle
|
||||
icon="el-icon-tickets"
|
||||
:title="$t('trials:pendingReview:button:auditRecords')"
|
||||
:disabled="scope.row.TaskState !== 0 || scope.row.PIAuditState === 0 || scope.row.UserTypeShortName === 'PI'"
|
||||
:disabled="
|
||||
scope.row.TaskState !== 0 ||
|
||||
scope.row.PIAuditState === 0 ||
|
||||
scope.row.UserTypeShortName === 'PI'
|
||||
"
|
||||
@click="handleAuditRecords(scope.row)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</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"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
|
@ -382,14 +576,16 @@
|
|||
:visible.sync="auditVisible"
|
||||
:close-on-click-modal="false"
|
||||
custom-class="base-dialog-wrapper"
|
||||
:title="`${$t('trials:pendingReview:button:audit')}(${currentRow.SubjectCode} | ${currentRow.TaskName} | ${currentRow.UserName})`"
|
||||
:title="`${$t('trials:pendingReview:button:audit')}(${
|
||||
currentRow.SubjectCode
|
||||
} | ${currentRow.TaskName} | ${currentRow.UserName})`"
|
||||
width="600px"
|
||||
>
|
||||
<AuditForm
|
||||
:row-data="currentRow"
|
||||
@viewReaingResult="viewReaingResult"
|
||||
@getList="getList"
|
||||
@close="auditVisible=false"
|
||||
@close="auditVisible = false"
|
||||
/>
|
||||
</el-dialog>
|
||||
<!-- 入组确认 -->
|
||||
|
@ -398,14 +594,16 @@
|
|||
:visible.sync="enrollVisible"
|
||||
:close-on-click-modal="false"
|
||||
custom-class="base-dialog-wrapper"
|
||||
:title="`${$t('trials:pendingReview:button:enrollmentConfirm')}(${currentRow.SubjectCode} | ${currentRow.TaskName} | ${currentRow.UserName})`"
|
||||
:title="`${$t('trials:pendingReview:button:enrollmentConfirm')}(${
|
||||
currentRow.SubjectCode
|
||||
} | ${currentRow.TaskName} | ${currentRow.UserName})`"
|
||||
width="400px"
|
||||
>
|
||||
<EnrollForm
|
||||
:row-data="currentRow"
|
||||
@viewReaingResult="viewReaingResult"
|
||||
@getList="getList"
|
||||
@close="enrollVisible=false"
|
||||
@close="enrollVisible = false"
|
||||
/>
|
||||
</el-dialog>
|
||||
<!-- PD确认 -->
|
||||
|
@ -414,14 +612,16 @@
|
|||
:visible.sync="pdVisible"
|
||||
:close-on-click-modal="false"
|
||||
custom-class="base-dialog-wrapper"
|
||||
:title="`${$t('trials:pendingReview:button:pdConfirm')}(${currentRow.SubjectCode} | ${currentRow.TaskName} | ${currentRow.UserName})`"
|
||||
:title="`${$t('trials:pendingReview:button:pdConfirm')}(${
|
||||
currentRow.SubjectCode
|
||||
} | ${currentRow.TaskName} | ${currentRow.UserName})`"
|
||||
width="400px"
|
||||
>
|
||||
<PdForm
|
||||
:row-data="currentRow"
|
||||
@viewReaingResult="viewReaingResult"
|
||||
@getList="getList"
|
||||
@close="pdVisible=false"
|
||||
@close="pdVisible = false"
|
||||
/>
|
||||
</el-dialog>
|
||||
<!-- 审核记录 -->
|
||||
|
@ -430,34 +630,39 @@
|
|||
:visible.sync="auditRecordVisible"
|
||||
:close-on-click-modal="false"
|
||||
custom-class="base-dialog-wrapper"
|
||||
:title="`${$t('trials:pendingReview:button:auditRecords')}(${currentRow.SubjectCode} | ${currentRow.TaskName} | ${currentRow.UserName})`"
|
||||
:title="`${$t('trials:pendingReview:button:auditRecords')}(${
|
||||
currentRow.SubjectCode
|
||||
} | ${currentRow.TaskName} | ${currentRow.UserName})`"
|
||||
width="600px"
|
||||
>
|
||||
<ChatForm
|
||||
:row-data="currentRow"
|
||||
@getList="getList"
|
||||
@close="auditRecordVisible=false"
|
||||
@close="auditRecordVisible = false"
|
||||
/>
|
||||
</el-dialog>
|
||||
</BaseContainer>
|
||||
</template>
|
||||
<script>
|
||||
import { getPIReadingAuditList } from '@/api/reading'
|
||||
import { getTrialCriterionList, getDoctorUserSelectList } from '@/api/trials/reading'
|
||||
import { getTrialSiteSelect } from '@/api/trials'
|
||||
import { getToken } from '@/utils/auth'
|
||||
import BaseContainer from '@/components/BaseContainer'
|
||||
import Pagination from '@/components/Pagination'
|
||||
import AuditForm from './components/AuditForm'
|
||||
import EnrollForm from './components/EnrollForm'
|
||||
import PdForm from './components/PdForm'
|
||||
import ChatForm from './components/ChatForm'
|
||||
import { getPIReadingAuditList } from "@/api/reading";
|
||||
import {
|
||||
getTrialCriterionList,
|
||||
getDoctorUserSelectList,
|
||||
} from "@/api/trials/reading";
|
||||
import { getTrialSiteSelect } from "@/api/trials";
|
||||
import { getToken } from "@/utils/auth";
|
||||
import BaseContainer from "@/components/BaseContainer";
|
||||
import Pagination from "@/components/Pagination";
|
||||
import AuditForm from "./components/AuditForm";
|
||||
import EnrollForm from "./components/EnrollForm";
|
||||
import PdForm from "./components/PdForm";
|
||||
import ChatForm from "./components/ChatForm";
|
||||
const searchDataDefault = () => {
|
||||
return {
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
Asc: true,
|
||||
SortField: '',
|
||||
SortField: "",
|
||||
TrialId: null,
|
||||
SiteId: null,
|
||||
SubjectId: null,
|
||||
|
@ -468,20 +673,27 @@ const searchDataDefault = () => {
|
|||
DoctorUserId: null,
|
||||
ReadingTaskState: 2,
|
||||
PIAuditState: null,
|
||||
IsWaitPIAudit: null
|
||||
}
|
||||
}
|
||||
IsWaitPIAudit: null,
|
||||
};
|
||||
};
|
||||
export default {
|
||||
name: 'PendingReview',
|
||||
components: { BaseContainer, Pagination, AuditForm, EnrollForm, PdForm, ChatForm },
|
||||
name: "PendingReview",
|
||||
components: {
|
||||
BaseContainer,
|
||||
Pagination,
|
||||
AuditForm,
|
||||
EnrollForm,
|
||||
PdForm,
|
||||
ChatForm,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
searchData: searchDataDefault(),
|
||||
list: [],
|
||||
total: 0,
|
||||
loading: false,
|
||||
userListLoading: '',
|
||||
trialId: '',
|
||||
userListLoading: "",
|
||||
trialId: "",
|
||||
trialCriterionList: [],
|
||||
siteOptions: [],
|
||||
DoctorUserList: [],
|
||||
|
@ -492,116 +704,123 @@ export default {
|
|||
auditRecordVisible: false,
|
||||
otherInfo: {},
|
||||
openWindow: null,
|
||||
TrialReadingCriterionId: '0'
|
||||
}
|
||||
TrialReadingCriterionId: "0",
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
TrialReadingCriterionId(v) {
|
||||
if (v) {
|
||||
this.getList()
|
||||
this.getList();
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.trialId = this.$route.query.trialId
|
||||
this.getTrialCriterionList()
|
||||
this.trialId = this.$route.query.trialId;
|
||||
this.getTrialCriterionList();
|
||||
// this.getList()
|
||||
this.getSite()
|
||||
this.getDoctorUserSelectList()
|
||||
this.getSite();
|
||||
this.getDoctorUserSelectList();
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
this.loading = true
|
||||
this.searchData.TrialId = this.trialId
|
||||
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId
|
||||
getPIReadingAuditList(this.searchData).then(res => {
|
||||
this.loading = false
|
||||
this.QuestionList = res.OtherInfo.OtherObj
|
||||
this.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
this.list = res.Result.CurrentPageData
|
||||
}, 100)
|
||||
this.total = res.Result.TotalCount
|
||||
this.otherInfo = res.OtherInfo
|
||||
this.$refs.myTable.doLayout()
|
||||
this.loading = true;
|
||||
this.searchData.TrialId = this.trialId;
|
||||
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId;
|
||||
getPIReadingAuditList(this.searchData)
|
||||
.then((res) => {
|
||||
this.loading = false;
|
||||
this.QuestionList = res.OtherInfo.OtherObj;
|
||||
this.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
this.list = res.Result.CurrentPageData;
|
||||
}, 100);
|
||||
this.total = res.Result.TotalCount;
|
||||
this.otherInfo = res.OtherInfo;
|
||||
this.$refs.myTable.doLayout();
|
||||
});
|
||||
})
|
||||
}).catch(() => { this.loading = false })
|
||||
.catch(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 审核
|
||||
handleAudit(row) {
|
||||
this.handleView(row)
|
||||
this.currentRow = { ...row }
|
||||
this.auditVisible = true
|
||||
this.handleView(row);
|
||||
this.currentRow = { ...row };
|
||||
this.auditVisible = true;
|
||||
},
|
||||
// 入组确认
|
||||
handleEnrollConfirm(row) {
|
||||
this.handleView(row)
|
||||
this.currentRow = { ...row }
|
||||
this.enrollVisible = true
|
||||
this.handleView(row);
|
||||
this.currentRow = { ...row };
|
||||
this.enrollVisible = true;
|
||||
},
|
||||
// PD确认
|
||||
handlePDConfirm(row) {
|
||||
this.handleView(row)
|
||||
this.currentRow = { ...row }
|
||||
this.pdVisible = true
|
||||
this.handleView(row);
|
||||
this.currentRow = { ...row };
|
||||
this.pdVisible = true;
|
||||
},
|
||||
handleAuditRecords(row) {
|
||||
this.currentRow = { ...row }
|
||||
this.auditRecordVisible = true
|
||||
this.currentRow = { ...row };
|
||||
this.auditRecordVisible = true;
|
||||
},
|
||||
viewReaingResult() {
|
||||
if (!this.currentRow) return
|
||||
this.handleView(this.currentRow)
|
||||
if (!this.currentRow) return;
|
||||
this.handleView(this.currentRow);
|
||||
},
|
||||
// 查看阅片结果
|
||||
handleView(row) {
|
||||
if (this.openWindow) {
|
||||
this.openWindow.close()
|
||||
this.openWindow.close();
|
||||
}
|
||||
var token = getToken()
|
||||
var path
|
||||
var token = getToken();
|
||||
var path;
|
||||
if (row.ReadingTool === 0) {
|
||||
path = `/readingDicoms?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`
|
||||
path = `/readingDicoms?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`;
|
||||
} else {
|
||||
path = `/noneDicomReading?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`
|
||||
path = `/noneDicomReading?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`;
|
||||
}
|
||||
this.openWindow = window.open(path, '_blank')
|
||||
this.openWindow = window.open(path, "_blank");
|
||||
},
|
||||
getTrialCriterionList() {
|
||||
getTrialCriterionList(this.trialId).then(res => {
|
||||
this.trialCriterionList = res.Result
|
||||
this.TrialReadingCriterionId = this.trialCriterionList[0].TrialReadingCriterionId
|
||||
}).catch(() => {})
|
||||
getTrialCriterionList(this.trialId)
|
||||
.then((res) => {
|
||||
this.trialCriterionList = res.Result;
|
||||
this.TrialReadingCriterionId =
|
||||
this.trialCriterionList[0].TrialReadingCriterionId;
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
getDoctorUserSelectList() {
|
||||
getDoctorUserSelectList(this.$route.query.trialId).then(res => {
|
||||
this.DoctorUserList = res.Result
|
||||
})
|
||||
getDoctorUserSelectList(this.$route.query.trialId).then((res) => {
|
||||
this.DoctorUserList = res.Result;
|
||||
});
|
||||
},
|
||||
getSite() {
|
||||
getTrialSiteSelect(this.trialId).then(res => {
|
||||
this.siteOptions = res.Result
|
||||
})
|
||||
getTrialSiteSelect(this.trialId).then((res) => {
|
||||
this.siteOptions = res.Result;
|
||||
});
|
||||
},
|
||||
handleSearch() {
|
||||
this.searchData.PageIndex = 1
|
||||
this.getList()
|
||||
this.searchData.PageIndex = 1;
|
||||
this.getList();
|
||||
},
|
||||
handleReset() {
|
||||
this.searchData = searchDataDefault()
|
||||
this.getList()
|
||||
this.searchData = searchDataDefault();
|
||||
this.getList();
|
||||
},
|
||||
// 排序
|
||||
handleSortChange(column) {
|
||||
if (column.order === 'ascending') {
|
||||
this.searchData.Asc = true
|
||||
if (column.order === "ascending") {
|
||||
this.searchData.Asc = true;
|
||||
} else {
|
||||
this.searchData.Asc = false
|
||||
this.searchData.Asc = false;
|
||||
}
|
||||
this.searchData.SortField = column.prop
|
||||
this.searchData.PageIndex = 1
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
}
|
||||
this.searchData.SortField = column.prop;
|
||||
this.searchData.PageIndex = 1;
|
||||
this.getList();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -224,10 +224,17 @@
|
|||
:label="$t('common:action:action')"
|
||||
width="250"
|
||||
fixed="right"
|
||||
v-if="
|
||||
hasPermi(['trials:readTask:view']) ||
|
||||
hasPermi(['trials:readTask:reread']) ||
|
||||
hasPermi(['trials:readTask:report']) ||
|
||||
hasPermi(['trials:readTask:auditRecord'])
|
||||
"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<!-- 查看 -->
|
||||
<el-button
|
||||
v-hasPermi="['trials:readTask:view']"
|
||||
circle
|
||||
:title="$t('trials:readTask:button:view')"
|
||||
icon="el-icon-view"
|
||||
|
@ -235,6 +242,7 @@
|
|||
/>
|
||||
<!-- 重阅 -->
|
||||
<el-button
|
||||
v-hasPermi="['trials:readTask:reread']"
|
||||
circle
|
||||
:title="$t('trials:readTask:button:reread')"
|
||||
icon="el-icon-collection"
|
||||
|
@ -242,11 +250,20 @@
|
|||
/>
|
||||
<!-- 下载报告 -->
|
||||
<el-button
|
||||
v-hasPermi="['trials:readTask:report']"
|
||||
circle
|
||||
:title="$t('trials:reading:button:uploadReport')"
|
||||
icon="el-icon-collection"
|
||||
@click="handleReadImage(scope.row)"
|
||||
/>
|
||||
<!-- 审核记录 -->
|
||||
<el-button
|
||||
v-hasPermi="['trials:readTask:auditRecord']"
|
||||
circle
|
||||
:title="$t('trials:auditRecord:table:auditRecords')"
|
||||
icon="el-icon-collection"
|
||||
@click="handleReadImage(scope.row)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
width="500px"
|
||||
custom-class="base-dialog-wrapper"
|
||||
append-to-body
|
||||
:before-close="handleCancel"
|
||||
>
|
||||
<el-form
|
||||
ref="editVisitForm"
|
||||
|
|
Loading…
Reference in New Issue