修改配置
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_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_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_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*
|
*.ntvs*
|
||||||
*.njsproj
|
*.njsproj
|
||||||
*.sln
|
*.sln
|
||||||
.eslintignore
|
# .eslintignore
|
||||||
/.eslintignore
|
# /.eslintignore
|
|
@ -78,7 +78,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.show = process.env.VUE_APP_OSS_PATH === '/study_test/dist'
|
this.show = process.env.VUE_APP_OSS_PATH === '/hir_test/dist'
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
changeValue(target, attr, e) {
|
changeValue(target, attr, e) {
|
||||||
|
|
|
@ -404,10 +404,10 @@ export default {
|
||||||
if (!fd) return;
|
if (!fd) return;
|
||||||
let data = {
|
let data = {
|
||||||
TrialId: this.submitMessage.TrialId,
|
TrialId: this.submitMessage.TrialId,
|
||||||
SubjectVisitList: [],
|
SubjectVisitIdList : [],
|
||||||
};
|
};
|
||||||
this.tableSelectData.forEach((item) => {
|
this.tableSelectData.forEach((item) => {
|
||||||
data.SubjectVisitList.push(item.SubjectVisitId);
|
data.SubjectVisitIdList .push(item.SubjectVisitId);
|
||||||
});
|
});
|
||||||
try {
|
try {
|
||||||
this.btnLoading2 = true;
|
this.btnLoading2 = true;
|
||||||
|
|
|
@ -406,7 +406,7 @@ export default {
|
||||||
if (confirm !== "confirm") return;
|
if (confirm !== "confirm") return;
|
||||||
let data = {
|
let data = {
|
||||||
TrialId: this.$route.query.trialId,
|
TrialId: this.$route.query.trialId,
|
||||||
SubjectVisitList: [item.SubjectVisitId],
|
SubjectVisitIdList: [item.SubjectVisitId],
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
|
@ -418,7 +418,7 @@ export default {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
this.btnLoading2 = false;
|
this.loading = false;
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,65 +1,152 @@
|
||||||
<template>
|
<template>
|
||||||
<BaseContainer>
|
<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">
|
<div slot="search-container">
|
||||||
<el-form :inline="true">
|
<el-form :inline="true">
|
||||||
<!-- 中心编号 -->
|
<!-- 阅片标准 -->
|
||||||
<el-form-item :label="$t('trials:reviewTrack:table:siteCode')">
|
<el-form-item :label="$t('trials:auditRecord:table:criterion')">
|
||||||
<el-select v-model="searchData.SiteId" clearable filterable style="width:120px;">
|
<el-select
|
||||||
|
v-model="searchData.TrialReadingCriterionId"
|
||||||
|
clearable
|
||||||
|
style="width: 120px"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(item,index) of siteOptions"
|
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"
|
:key="index"
|
||||||
:label="item.TrialSiteCode"
|
:label="item.TrialSiteCode"
|
||||||
:value="item.SiteId"
|
:value="item.SiteId"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</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-form-item
|
||||||
<el-select v-model="searchData.DoctorUserId" clearable style="width:120px;">
|
style="margin-bottom: 10px"
|
||||||
<el-option v-for="item of DoctorUserList" :key="'DoctorUserId' + item.DoctorUserId" :value="item.DoctorUserId" :label="`${item.UserName}(${item.FullName})`" />
|
: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-select>
|
||||||
</el-form-item>
|
</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-form-item
|
||||||
<el-select v-model="searchData.PIAuditState" clearable style="width:120px;">
|
style="margin-bottom: 10px"
|
||||||
<el-option v-for="item of $d.PIAuditState" :key="'PIAuditState' + item.label" :value="item.value" :label="item.label" />
|
: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-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item style="margin-bottom:10px">
|
<!-- 是否入组 -->
|
||||||
|
<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">
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||||
{{ $t('common:button:search') }}
|
{{ $t("common:button:search") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
|
<el-button
|
||||||
{{ $t('common:button:reset') }}
|
type="primary"
|
||||||
|
icon="el-icon-refresh-left"
|
||||||
|
@click="handleReset"
|
||||||
|
>
|
||||||
|
{{ $t("common:button:reset") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<div slot="main-container">
|
<div slot="main-container">
|
||||||
<el-table
|
<el-table
|
||||||
v-adaptive="{bottomOffset:75}"
|
v-adaptive="{ bottomOffset: 75 }"
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
:data="list"
|
:data="list"
|
||||||
ref="myTable"
|
ref="myTable"
|
||||||
|
@ -75,14 +162,6 @@
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<!-- 中心编号 -->
|
|
||||||
<el-table-column
|
|
||||||
prop="TrialSiteCode"
|
|
||||||
:label="$t('trials:reviewTrack:table:siteCode')"
|
|
||||||
width="100"
|
|
||||||
sortable="custom"
|
|
||||||
show-overflow-tooltip
|
|
||||||
/>
|
|
||||||
<!-- 受试者编号 -->
|
<!-- 受试者编号 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="SubjectCode"
|
prop="SubjectCode"
|
||||||
|
@ -103,6 +182,14 @@
|
||||||
{{ scope.row.TaskName }}
|
{{ scope.row.TaskName }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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
|
<el-table-column
|
||||||
prop="UserName"
|
prop="UserName"
|
||||||
|
@ -115,6 +202,14 @@
|
||||||
{{ scope.row.UserName }}({{ scope.row.FullName }})
|
{{ scope.row.UserName }}({{ scope.row.FullName }})
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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
|
<el-table-column
|
||||||
prop="TrialReadingCriterionName"
|
prop="TrialReadingCriterionName"
|
||||||
|
@ -156,23 +251,43 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{ $fd('PIAuditState', scope.row.PIAuditState) }}</el-tag>
|
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{
|
||||||
<el-tag v-else-if="scope.row.PIAuditState === 1" type="primary">{{ $fd('PIAuditState', scope.row.PIAuditState) }}</el-tag>
|
$fd("PIAuditState", scope.row.PIAuditState)
|
||||||
<el-tag v-else-if="scope.row.PIAuditState === 2" type="warning">{{ $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>
|
</el-tag>
|
||||||
<span v-else>{{ $fd('PIAuditState', scope.row.PIAuditState) }}</span>
|
<span v-else>{{
|
||||||
|
$fd("PIAuditState", scope.row.PIAuditState)
|
||||||
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="item.QuestionId"
|
prop="item.QuestionId"
|
||||||
:label="item.QuestionName"
|
:label="item.QuestionName"
|
||||||
min-width="140"
|
min-width="140"
|
||||||
v-for="item of QuestionList"
|
v-for="(item, index) of QuestionList"
|
||||||
:key="Math.random()"
|
:key="'QuestionId' + index"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 是否入组 -->
|
<!-- 是否入组 -->
|
||||||
|
@ -185,9 +300,13 @@
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.IsEnrollment === true" type="primary">
|
<el-tag v-if="scope.row.IsEnrollment === true" type="primary">
|
||||||
{{ $fd('YesOrNo', scope.row.IsEnrollment) }}
|
{{ $fd("YesOrNo", scope.row.IsEnrollment) }}
|
||||||
</el-tag>
|
</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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 是否PD -->
|
<!-- 是否PD -->
|
||||||
|
@ -200,9 +319,11 @@
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.IsPDConfirm === true" type="primary">
|
<el-tag v-if="scope.row.IsPDConfirm === true" type="primary">
|
||||||
{{ $fd('YesOrNo', scope.row.IsPDConfirm) }}
|
{{ $fd("YesOrNo", scope.row.IsPDConfirm) }}
|
||||||
</el-tag>
|
</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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 最新回复人 -->
|
<!-- 最新回复人 -->
|
||||||
|
@ -238,7 +359,9 @@
|
||||||
<el-button
|
<el-button
|
||||||
circle
|
circle
|
||||||
icon="el-icon-tickets"
|
icon="el-icon-tickets"
|
||||||
:disabled="scope.row.TaskState !== 0 || scope.row.PIAuditState === 0"
|
:disabled="
|
||||||
|
scope.row.TaskState !== 0 || scope.row.PIAuditState === 0
|
||||||
|
"
|
||||||
:title="$t('trials:auditRecord:table:auditRecords')"
|
:title="$t('trials:auditRecord:table:auditRecords')"
|
||||||
@click="handleAuditRecords(scope.row)"
|
@click="handleAuditRecords(scope.row)"
|
||||||
/>
|
/>
|
||||||
|
@ -246,42 +369,50 @@
|
||||||
</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"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</el-tab-pane>
|
|
||||||
</el-tabs>
|
|
||||||
<!-- 审核记录 -->
|
<!-- 审核记录 -->
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-if="auditRecordVisible"
|
v-if="auditRecordVisible"
|
||||||
:visible.sync="auditRecordVisible"
|
:visible.sync="auditRecordVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
custom-class="base-dialog-wrapper"
|
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"
|
width="600px"
|
||||||
>
|
>
|
||||||
<ChatForm
|
<ChatForm
|
||||||
:row-data="currentRow"
|
:row-data="currentRow"
|
||||||
@getList="getList"
|
@getList="getList"
|
||||||
@close="auditRecordVisible=false"
|
@close="auditRecordVisible = false"
|
||||||
/>
|
/>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</BaseContainer>
|
</BaseContainer>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getPIReadingAuditList } from '@/api/reading'
|
import { getPIReadingAuditList } from "@/api/reading";
|
||||||
import { getTrialCriterionList, getDoctorUserSelectList } from '@/api/trials/reading'
|
import {
|
||||||
import { getTrialSiteSelect } from '@/api/trials'
|
getTrialCriterionList,
|
||||||
import { getToken } from '@/utils/auth'
|
getDoctorUserSelectList,
|
||||||
import BaseContainer from '@/components/BaseContainer'
|
} from "@/api/trials/reading";
|
||||||
import Pagination from '@/components/Pagination'
|
import { getTrialSiteSelect } from "@/api/trials";
|
||||||
import ChatForm from './components/ChatForm'
|
import { getToken } from "@/utils/auth";
|
||||||
|
import BaseContainer from "@/components/BaseContainer";
|
||||||
|
import Pagination from "@/components/Pagination";
|
||||||
|
import ChatForm from "./components/ChatForm";
|
||||||
const searchDataDefault = () => {
|
const searchDataDefault = () => {
|
||||||
return {
|
return {
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 20,
|
PageSize: 20,
|
||||||
Asc: true,
|
Asc: true,
|
||||||
SortField: '',
|
SortField: "",
|
||||||
TrialId: null,
|
TrialId: null,
|
||||||
SiteId: null,
|
SiteId: null,
|
||||||
SubjectId: null,
|
SubjectId: null,
|
||||||
|
@ -292,11 +423,11 @@ const searchDataDefault = () => {
|
||||||
DoctorUserId: null,
|
DoctorUserId: null,
|
||||||
ReadingTaskState: 2,
|
ReadingTaskState: 2,
|
||||||
PIAuditState: null,
|
PIAuditState: null,
|
||||||
IsWaitPIAudit: null
|
IsWaitPIAudit: null,
|
||||||
}
|
};
|
||||||
}
|
};
|
||||||
export default {
|
export default {
|
||||||
name: 'AuditRecords', // PI审核
|
name: "AuditRecords", // PI审核
|
||||||
components: { BaseContainer, Pagination, ChatForm },
|
components: { BaseContainer, Pagination, ChatForm },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -304,105 +435,112 @@ export default {
|
||||||
list: [],
|
list: [],
|
||||||
total: 0,
|
total: 0,
|
||||||
loading: false,
|
loading: false,
|
||||||
userListLoading: '',
|
userListLoading: "",
|
||||||
trialId: '',
|
trialId: "",
|
||||||
trialCriterionList: [],
|
trialCriterionList: [],
|
||||||
siteOptions: [],
|
siteOptions: [],
|
||||||
DoctorUserList: [],
|
DoctorUserList: [],
|
||||||
auditRecordVisible: false,
|
auditRecordVisible: false,
|
||||||
TrialReadingCriterionId: '0',
|
TrialReadingCriterionId: "0",
|
||||||
openWindow: null,
|
openWindow: null,
|
||||||
QuestionList: []
|
QuestionList: [],
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
TrialReadingCriterionId(v) {
|
TrialReadingCriterionId(v) {
|
||||||
if (v) {
|
if (v) {
|
||||||
this.getList()
|
this.getList();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
},
|
||||||
beforeUpdate() {
|
beforeUpdate() {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.myTable.doLayout()
|
this.$refs.myTable.doLayout();
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.trialId = this.$route.query.trialId
|
this.trialId = this.$route.query.trialId;
|
||||||
this.getTrialCriterionList()
|
this.getTrialCriterionList();
|
||||||
this.getSite()
|
this.getSite();
|
||||||
this.getDoctorUserSelectList()
|
this.getDoctorUserSelectList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true
|
this.loading = true;
|
||||||
this.searchData.TrialId = this.trialId
|
this.searchData.TrialId = this.trialId;
|
||||||
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId
|
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId;
|
||||||
getPIReadingAuditList(this.searchData).then(res => {
|
getPIReadingAuditList(this.searchData)
|
||||||
this.loading = false
|
.then((res) => {
|
||||||
this.QuestionList = res.OtherInfo.OtherObj
|
this.loading = false;
|
||||||
|
this.QuestionList = res.OtherInfo.OtherObj;
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.list = res.Result.CurrentPageData
|
this.list = res.Result.CurrentPageData;
|
||||||
}, 100)
|
}, 100);
|
||||||
this.total = res.Result.TotalCount
|
this.total = res.Result.TotalCount;
|
||||||
this.$refs.myTable.doLayout()
|
this.$refs.myTable.doLayout();
|
||||||
|
});
|
||||||
})
|
})
|
||||||
}).catch(() => { this.loading = false })
|
.catch(() => {
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
handleAuditRecords(row) {
|
handleAuditRecords(row) {
|
||||||
this.currentRow = { ...row }
|
this.currentRow = { ...row };
|
||||||
this.auditRecordVisible = true
|
this.auditRecordVisible = true;
|
||||||
},
|
},
|
||||||
// 查看阅片结果
|
// 查看阅片结果
|
||||||
handleView(row) {
|
handleView(row) {
|
||||||
if (this.openWindow) {
|
if (this.openWindow) {
|
||||||
this.openWindow.close()
|
this.openWindow.close();
|
||||||
}
|
}
|
||||||
var token = getToken()
|
var token = getToken();
|
||||||
var path
|
var path;
|
||||||
if (row.ReadingTool === 0) {
|
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 {
|
} 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() {
|
||||||
getTrialCriterionList(this.trialId).then(res => {
|
getTrialCriterionList(this.trialId)
|
||||||
this.trialCriterionList = res.Result
|
.then((res) => {
|
||||||
this.TrialReadingCriterionId = this.trialCriterionList[0].TrialReadingCriterionId
|
this.trialCriterionList = res.Result;
|
||||||
}).catch(() => {})
|
this.TrialReadingCriterionId =
|
||||||
|
this.trialCriterionList[0].TrialReadingCriterionId;
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
},
|
},
|
||||||
getDoctorUserSelectList() {
|
getDoctorUserSelectList() {
|
||||||
getDoctorUserSelectList(this.$route.query.trialId).then(res => {
|
getDoctorUserSelectList(this.$route.query.trialId).then((res) => {
|
||||||
this.DoctorUserList = res.Result
|
this.DoctorUserList = res.Result;
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
getSite() {
|
getSite() {
|
||||||
getTrialSiteSelect(this.trialId).then(res => {
|
getTrialSiteSelect(this.trialId).then((res) => {
|
||||||
this.siteOptions = res.Result
|
this.siteOptions = res.Result;
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
handleSearch() {
|
handleSearch() {
|
||||||
this.searchData.PageIndex = 1
|
this.searchData.PageIndex = 1;
|
||||||
this.getList()
|
this.getList();
|
||||||
},
|
},
|
||||||
handleReset() {
|
handleReset() {
|
||||||
this.searchData = searchDataDefault()
|
this.searchData = searchDataDefault();
|
||||||
this.getList()
|
this.getList();
|
||||||
},
|
},
|
||||||
// 排序
|
// 排序
|
||||||
handleSortChange(column) {
|
handleSortChange(column) {
|
||||||
if (column.order === 'ascending') {
|
if (column.order === "ascending") {
|
||||||
this.searchData.Asc = true
|
this.searchData.Asc = true;
|
||||||
} else {
|
} else {
|
||||||
this.searchData.Asc = false
|
this.searchData.Asc = false;
|
||||||
}
|
}
|
||||||
this.searchData.SortField = column.prop
|
this.searchData.SortField = column.prop;
|
||||||
this.searchData.PageIndex = 1
|
this.searchData.PageIndex = 1;
|
||||||
this.getList()
|
this.getList();
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1,87 +1,162 @@
|
||||||
<template>
|
<template>
|
||||||
<BaseContainer>
|
<BaseContainer>
|
||||||
<el-tabs v-model="TrialReadingCriterionId" type="border-card">
|
<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 v-if="TrialReadingCriterionId === item.TrialReadingCriterionId">
|
||||||
<div slot="search-container">
|
<div slot="search-container">
|
||||||
<el-form :inline="true">
|
<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-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>
|
||||||
<!-- 任务名称 -->
|
<!-- 任务名称 -->
|
||||||
<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
|
<el-input
|
||||||
v-model="searchData.TaskName"
|
v-model="searchData.TaskName"
|
||||||
style="width:100px;"
|
style="width: 100px"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 阅片人 -->
|
<!-- 阅片人 -->
|
||||||
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:reader')">
|
<el-form-item
|
||||||
<el-select v-model="searchData.DoctorUserId" clearable style="width:120px;">
|
style="margin-bottom: 10px"
|
||||||
<el-option v-for="item of DoctorUserList" :key="'DoctorUserId' + item.DoctorUserId" :value="item.DoctorUserId" :label="`${item.UserName}(${item.FullName})`" />
|
: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-select>
|
||||||
</el-form-item>
|
</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-form-item
|
||||||
<el-select v-model="searchData.IsUrgent" clearable style="width:120px;">
|
style="margin-bottom: 10px"
|
||||||
<el-option v-for="item of $d.YesOrNo" :key="'IsUrgent' + item.label" :value="item.value" :label="item.label" />
|
: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-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 任务状态 -->
|
<!-- 任务状态 -->
|
||||||
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:taskStatus')">
|
<el-form-item
|
||||||
<el-select v-model="searchData.TaskState" clearable style="width:120px;">
|
style="margin-bottom: 10px"
|
||||||
<el-option v-for="item of $d.TaskState" :key="'TaskState' + item.label" :value="item.value" :label="item.label" />
|
: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-select>
|
||||||
</el-form-item>
|
</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-form-item
|
||||||
<el-select v-model="searchData.PIAuditState" clearable style="width:120px;">
|
style="margin-bottom: 10px"
|
||||||
<el-option v-for="item of $d.PIAuditState" :key="'PIAuditState' + item.label" :value="item.value" :label="item.label" />
|
: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-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item style="margin-bottom:10px">
|
<!-- 是否入组 -->
|
||||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
<el-form-item
|
||||||
{{ $t('common:button:search') }}
|
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>
|
||||||
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
|
<el-button
|
||||||
{{ $t('common:button:reset') }}
|
type="primary"
|
||||||
|
icon="el-icon-refresh-left"
|
||||||
|
@click="handleReset"
|
||||||
|
>
|
||||||
|
{{ $t("common:button:reset") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<div slot="main-container">
|
<div slot="main-container">
|
||||||
<el-table
|
<el-table
|
||||||
v-adaptive="{bottomOffset:80}"
|
v-adaptive="{ bottomOffset: 80 }"
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
:data="list"
|
:data="list"
|
||||||
stripe
|
stripe
|
||||||
|
@ -101,15 +176,52 @@
|
||||||
<el-tag v-else type="primary">{{ $fd('YesOrNo', scope.row.IsUrgent) }}</el-tag> -->
|
<el-tag v-else type="primary">{{ $fd('YesOrNo', scope.row.IsUrgent) }}</el-tag> -->
|
||||||
<el-tooltip placement="top">
|
<el-tooltip placement="top">
|
||||||
<div slot="content">
|
<div slot="content">
|
||||||
<span>{{ `${$t('trials:pendingReview:title:urgentReason')} ${$fd('TaskUrgentType',scope.row.TaskUrgentType)}` }}</span><br>
|
<span>{{
|
||||||
<span>{{ scope.row.TaskUrgentRemake?`${$t('trials:pendingReview:title:urgentNote')} ${scope.row.TaskUrgentRemake}`:'' }}</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>
|
||||||
<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>
|
</div>
|
||||||
</el-tooltip>
|
</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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 任务编号 -->
|
<!-- 任务编号 -->
|
||||||
|
@ -120,14 +232,6 @@
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<!-- 中心编号 -->
|
|
||||||
<el-table-column
|
|
||||||
prop="TrialSiteCode"
|
|
||||||
:label="$t('trials:reviewTrack:table:siteCode')"
|
|
||||||
width="100"
|
|
||||||
sortable="custom"
|
|
||||||
show-overflow-tooltip
|
|
||||||
/>
|
|
||||||
<!-- 受试者编号 -->
|
<!-- 受试者编号 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="SubjectCode"
|
prop="SubjectCode"
|
||||||
|
@ -173,11 +277,21 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<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 === 0" type="primary">{{
|
||||||
<el-tag v-if="scope.row.TaskState === 1" type="info">{{ $fd('TaskState', scope.row.TaskState) }}</el-tag>
|
$fd("TaskState", scope.row.TaskState)
|
||||||
<el-tag v-if="scope.row.TaskState === 3" type="danger">{{ $fd('TaskState', scope.row.TaskState) }}</el-tag>
|
}}</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 === 1" type="info">{{
|
||||||
<el-tag v-if="scope.row.TaskState === 5" type="danger">{{ $fd('TaskState', scope.row.TaskState) }}</el-tag>
|
$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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 角色 -->
|
<!-- 角色 -->
|
||||||
|
@ -210,14 +324,6 @@
|
||||||
{{ scope.row.UserName }}({{ scope.row.FullName }})
|
{{ scope.row.UserName }}({{ scope.row.FullName }})
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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
|
<el-table-column
|
||||||
prop="SuggesteFinishedTime"
|
prop="SuggesteFinishedTime"
|
||||||
|
@ -235,8 +341,16 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.ReadingTaskState === 2" type="primary">{{ $fd('ReadingTaskState', scope.row.ReadingTaskState) }}</el-tag>
|
<el-tag
|
||||||
<el-tag v-else type="danger">{{ $fd('ReadingTaskState', scope.row.ReadingTaskState) }}</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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 阅片完成时间 -->
|
<!-- 阅片完成时间 -->
|
||||||
|
@ -256,9 +370,30 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<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
|
||||||
<el-tag v-if="scope.row.ReReadingApplyState === 2" type="primary">{{ $fd('ReReadingApplyState', scope.row.ReReadingApplyState) }}</el-tag>
|
v-if="
|
||||||
<el-tag v-if="scope.row.ReReadingApplyState === 3" type="warning">{{ $fd('ReReadingApplyState', scope.row.ReReadingApplyState) }}</el-tag>
|
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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 审核结果 -->
|
<!-- 审核结果 -->
|
||||||
|
@ -270,23 +405,47 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{ $fd('PIAuditState', scope.row.PIAuditState) }}</el-tag>
|
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{
|
||||||
<el-tag v-else-if="scope.row.PIAuditState === 1" type="primary">{{ $fd('PIAuditState', scope.row.PIAuditState) }}</el-tag>
|
$fd("PIAuditState", scope.row.PIAuditState)
|
||||||
<el-tag v-else-if="scope.row.PIAuditState === 2" type="warning">{{ $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>
|
</el-tag>
|
||||||
<span v-else>{{ $fd('PIAuditState', scope.row.PIAuditState) }}</span>
|
<span v-else>{{
|
||||||
|
$fd("PIAuditState", scope.row.PIAuditState)
|
||||||
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="item.QuestionId"
|
prop="item.QuestionId"
|
||||||
:label="item.QuestionName"
|
:label="item.QuestionName"
|
||||||
min-width="140"
|
min-width="140"
|
||||||
v-for="item of QuestionList"
|
v-for="(item, index) of QuestionList"
|
||||||
:key="Math.random()"
|
:key="'QuestionId1' + index"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 是否入组 -->
|
<!-- 是否入组 -->
|
||||||
|
@ -299,9 +458,13 @@
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.IsEnrollment === true" type="primary">
|
<el-tag v-if="scope.row.IsEnrollment === true" type="primary">
|
||||||
{{ $fd('YesOrNo', scope.row.IsEnrollment) }}
|
{{ $fd("YesOrNo", scope.row.IsEnrollment) }}
|
||||||
</el-tag>
|
</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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 是否PD -->
|
<!-- 是否PD -->
|
||||||
|
@ -314,9 +477,13 @@
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.IsPDConfirm === true" type="primary">
|
<el-tag v-if="scope.row.IsPDConfirm === true" type="primary">
|
||||||
{{ $fd('YesOrNo', scope.row.IsPDConfirm) }}
|
{{ $fd("YesOrNo", scope.row.IsPDConfirm) }}
|
||||||
</el-tag>
|
</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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
@ -338,7 +505,10 @@
|
||||||
circle
|
circle
|
||||||
icon="el-icon-edit-outline"
|
icon="el-icon-edit-outline"
|
||||||
:title="$t('trials:pendingReview:button:audit')"
|
: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)"
|
@click="handleAudit(scope.row)"
|
||||||
/>
|
/>
|
||||||
<!-- 入组确认 -->
|
<!-- 入组确认 -->
|
||||||
|
@ -347,7 +517,14 @@
|
||||||
circle
|
circle
|
||||||
icon="el-icon-s-claim"
|
icon="el-icon-s-claim"
|
||||||
:title="$t('trials:pendingReview:button:enrollmentConfirm')"
|
: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)"
|
@click="handleEnrollConfirm(scope.row)"
|
||||||
/>
|
/>
|
||||||
<!-- PD确认 -->
|
<!-- PD确认 -->
|
||||||
|
@ -356,7 +533,14 @@
|
||||||
circle
|
circle
|
||||||
icon="el-icon-s-claim"
|
icon="el-icon-s-claim"
|
||||||
:title="$t('trials:pendingReview:button:pdConfirm')"
|
: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)"
|
@click="handlePDConfirm(scope.row)"
|
||||||
/>
|
/>
|
||||||
<!-- 审核记录 -->
|
<!-- 审核记录 -->
|
||||||
|
@ -364,14 +548,24 @@
|
||||||
circle
|
circle
|
||||||
icon="el-icon-tickets"
|
icon="el-icon-tickets"
|
||||||
:title="$t('trials:pendingReview:button:auditRecords')"
|
: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)"
|
@click="handleAuditRecords(scope.row)"
|
||||||
/>
|
/>
|
||||||
</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"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
@ -382,14 +576,16 @@
|
||||||
:visible.sync="auditVisible"
|
:visible.sync="auditVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
custom-class="base-dialog-wrapper"
|
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"
|
width="600px"
|
||||||
>
|
>
|
||||||
<AuditForm
|
<AuditForm
|
||||||
:row-data="currentRow"
|
:row-data="currentRow"
|
||||||
@viewReaingResult="viewReaingResult"
|
@viewReaingResult="viewReaingResult"
|
||||||
@getList="getList"
|
@getList="getList"
|
||||||
@close="auditVisible=false"
|
@close="auditVisible = false"
|
||||||
/>
|
/>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!-- 入组确认 -->
|
<!-- 入组确认 -->
|
||||||
|
@ -398,14 +594,16 @@
|
||||||
:visible.sync="enrollVisible"
|
:visible.sync="enrollVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
custom-class="base-dialog-wrapper"
|
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"
|
width="400px"
|
||||||
>
|
>
|
||||||
<EnrollForm
|
<EnrollForm
|
||||||
:row-data="currentRow"
|
:row-data="currentRow"
|
||||||
@viewReaingResult="viewReaingResult"
|
@viewReaingResult="viewReaingResult"
|
||||||
@getList="getList"
|
@getList="getList"
|
||||||
@close="enrollVisible=false"
|
@close="enrollVisible = false"
|
||||||
/>
|
/>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!-- PD确认 -->
|
<!-- PD确认 -->
|
||||||
|
@ -414,14 +612,16 @@
|
||||||
:visible.sync="pdVisible"
|
:visible.sync="pdVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
custom-class="base-dialog-wrapper"
|
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"
|
width="400px"
|
||||||
>
|
>
|
||||||
<PdForm
|
<PdForm
|
||||||
:row-data="currentRow"
|
:row-data="currentRow"
|
||||||
@viewReaingResult="viewReaingResult"
|
@viewReaingResult="viewReaingResult"
|
||||||
@getList="getList"
|
@getList="getList"
|
||||||
@close="pdVisible=false"
|
@close="pdVisible = false"
|
||||||
/>
|
/>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!-- 审核记录 -->
|
<!-- 审核记录 -->
|
||||||
|
@ -430,34 +630,39 @@
|
||||||
:visible.sync="auditRecordVisible"
|
:visible.sync="auditRecordVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
custom-class="base-dialog-wrapper"
|
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"
|
width="600px"
|
||||||
>
|
>
|
||||||
<ChatForm
|
<ChatForm
|
||||||
:row-data="currentRow"
|
:row-data="currentRow"
|
||||||
@getList="getList"
|
@getList="getList"
|
||||||
@close="auditRecordVisible=false"
|
@close="auditRecordVisible = false"
|
||||||
/>
|
/>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</BaseContainer>
|
</BaseContainer>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getPIReadingAuditList } from '@/api/reading'
|
import { getPIReadingAuditList } from "@/api/reading";
|
||||||
import { getTrialCriterionList, getDoctorUserSelectList } from '@/api/trials/reading'
|
import {
|
||||||
import { getTrialSiteSelect } from '@/api/trials'
|
getTrialCriterionList,
|
||||||
import { getToken } from '@/utils/auth'
|
getDoctorUserSelectList,
|
||||||
import BaseContainer from '@/components/BaseContainer'
|
} from "@/api/trials/reading";
|
||||||
import Pagination from '@/components/Pagination'
|
import { getTrialSiteSelect } from "@/api/trials";
|
||||||
import AuditForm from './components/AuditForm'
|
import { getToken } from "@/utils/auth";
|
||||||
import EnrollForm from './components/EnrollForm'
|
import BaseContainer from "@/components/BaseContainer";
|
||||||
import PdForm from './components/PdForm'
|
import Pagination from "@/components/Pagination";
|
||||||
import ChatForm from './components/ChatForm'
|
import AuditForm from "./components/AuditForm";
|
||||||
|
import EnrollForm from "./components/EnrollForm";
|
||||||
|
import PdForm from "./components/PdForm";
|
||||||
|
import ChatForm from "./components/ChatForm";
|
||||||
const searchDataDefault = () => {
|
const searchDataDefault = () => {
|
||||||
return {
|
return {
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 20,
|
PageSize: 20,
|
||||||
Asc: true,
|
Asc: true,
|
||||||
SortField: '',
|
SortField: "",
|
||||||
TrialId: null,
|
TrialId: null,
|
||||||
SiteId: null,
|
SiteId: null,
|
||||||
SubjectId: null,
|
SubjectId: null,
|
||||||
|
@ -468,20 +673,27 @@ const searchDataDefault = () => {
|
||||||
DoctorUserId: null,
|
DoctorUserId: null,
|
||||||
ReadingTaskState: 2,
|
ReadingTaskState: 2,
|
||||||
PIAuditState: null,
|
PIAuditState: null,
|
||||||
IsWaitPIAudit: null
|
IsWaitPIAudit: null,
|
||||||
}
|
};
|
||||||
}
|
};
|
||||||
export default {
|
export default {
|
||||||
name: 'PendingReview',
|
name: "PendingReview",
|
||||||
components: { BaseContainer, Pagination, AuditForm, EnrollForm, PdForm, ChatForm },
|
components: {
|
||||||
|
BaseContainer,
|
||||||
|
Pagination,
|
||||||
|
AuditForm,
|
||||||
|
EnrollForm,
|
||||||
|
PdForm,
|
||||||
|
ChatForm,
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
searchData: searchDataDefault(),
|
searchData: searchDataDefault(),
|
||||||
list: [],
|
list: [],
|
||||||
total: 0,
|
total: 0,
|
||||||
loading: false,
|
loading: false,
|
||||||
userListLoading: '',
|
userListLoading: "",
|
||||||
trialId: '',
|
trialId: "",
|
||||||
trialCriterionList: [],
|
trialCriterionList: [],
|
||||||
siteOptions: [],
|
siteOptions: [],
|
||||||
DoctorUserList: [],
|
DoctorUserList: [],
|
||||||
|
@ -492,116 +704,123 @@ export default {
|
||||||
auditRecordVisible: false,
|
auditRecordVisible: false,
|
||||||
otherInfo: {},
|
otherInfo: {},
|
||||||
openWindow: null,
|
openWindow: null,
|
||||||
TrialReadingCriterionId: '0'
|
TrialReadingCriterionId: "0",
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
TrialReadingCriterionId(v) {
|
TrialReadingCriterionId(v) {
|
||||||
if (v) {
|
if (v) {
|
||||||
this.getList()
|
this.getList();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.trialId = this.$route.query.trialId
|
this.trialId = this.$route.query.trialId;
|
||||||
this.getTrialCriterionList()
|
this.getTrialCriterionList();
|
||||||
// this.getList()
|
// this.getList()
|
||||||
this.getSite()
|
this.getSite();
|
||||||
this.getDoctorUserSelectList()
|
this.getDoctorUserSelectList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true
|
this.loading = true;
|
||||||
this.searchData.TrialId = this.trialId
|
this.searchData.TrialId = this.trialId;
|
||||||
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId
|
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId;
|
||||||
getPIReadingAuditList(this.searchData).then(res => {
|
getPIReadingAuditList(this.searchData)
|
||||||
this.loading = false
|
.then((res) => {
|
||||||
this.QuestionList = res.OtherInfo.OtherObj
|
this.loading = false;
|
||||||
|
this.QuestionList = res.OtherInfo.OtherObj;
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.list = res.Result.CurrentPageData
|
this.list = res.Result.CurrentPageData;
|
||||||
}, 100)
|
}, 100);
|
||||||
this.total = res.Result.TotalCount
|
this.total = res.Result.TotalCount;
|
||||||
this.otherInfo = res.OtherInfo
|
this.otherInfo = res.OtherInfo;
|
||||||
this.$refs.myTable.doLayout()
|
this.$refs.myTable.doLayout();
|
||||||
|
});
|
||||||
})
|
})
|
||||||
}).catch(() => { this.loading = false })
|
.catch(() => {
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
// 审核
|
// 审核
|
||||||
handleAudit(row) {
|
handleAudit(row) {
|
||||||
this.handleView(row)
|
this.handleView(row);
|
||||||
this.currentRow = { ...row }
|
this.currentRow = { ...row };
|
||||||
this.auditVisible = true
|
this.auditVisible = true;
|
||||||
},
|
},
|
||||||
// 入组确认
|
// 入组确认
|
||||||
handleEnrollConfirm(row) {
|
handleEnrollConfirm(row) {
|
||||||
this.handleView(row)
|
this.handleView(row);
|
||||||
this.currentRow = { ...row }
|
this.currentRow = { ...row };
|
||||||
this.enrollVisible = true
|
this.enrollVisible = true;
|
||||||
},
|
},
|
||||||
// PD确认
|
// PD确认
|
||||||
handlePDConfirm(row) {
|
handlePDConfirm(row) {
|
||||||
this.handleView(row)
|
this.handleView(row);
|
||||||
this.currentRow = { ...row }
|
this.currentRow = { ...row };
|
||||||
this.pdVisible = true
|
this.pdVisible = true;
|
||||||
},
|
},
|
||||||
handleAuditRecords(row) {
|
handleAuditRecords(row) {
|
||||||
this.currentRow = { ...row }
|
this.currentRow = { ...row };
|
||||||
this.auditRecordVisible = true
|
this.auditRecordVisible = true;
|
||||||
},
|
},
|
||||||
viewReaingResult() {
|
viewReaingResult() {
|
||||||
if (!this.currentRow) return
|
if (!this.currentRow) return;
|
||||||
this.handleView(this.currentRow)
|
this.handleView(this.currentRow);
|
||||||
},
|
},
|
||||||
// 查看阅片结果
|
// 查看阅片结果
|
||||||
handleView(row) {
|
handleView(row) {
|
||||||
if (this.openWindow) {
|
if (this.openWindow) {
|
||||||
this.openWindow.close()
|
this.openWindow.close();
|
||||||
}
|
}
|
||||||
var token = getToken()
|
var token = getToken();
|
||||||
var path
|
var path;
|
||||||
if (row.ReadingTool === 0) {
|
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 {
|
} 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() {
|
||||||
getTrialCriterionList(this.trialId).then(res => {
|
getTrialCriterionList(this.trialId)
|
||||||
this.trialCriterionList = res.Result
|
.then((res) => {
|
||||||
this.TrialReadingCriterionId = this.trialCriterionList[0].TrialReadingCriterionId
|
this.trialCriterionList = res.Result;
|
||||||
}).catch(() => {})
|
this.TrialReadingCriterionId =
|
||||||
|
this.trialCriterionList[0].TrialReadingCriterionId;
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
},
|
},
|
||||||
getDoctorUserSelectList() {
|
getDoctorUserSelectList() {
|
||||||
getDoctorUserSelectList(this.$route.query.trialId).then(res => {
|
getDoctorUserSelectList(this.$route.query.trialId).then((res) => {
|
||||||
this.DoctorUserList = res.Result
|
this.DoctorUserList = res.Result;
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
getSite() {
|
getSite() {
|
||||||
getTrialSiteSelect(this.trialId).then(res => {
|
getTrialSiteSelect(this.trialId).then((res) => {
|
||||||
this.siteOptions = res.Result
|
this.siteOptions = res.Result;
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
handleSearch() {
|
handleSearch() {
|
||||||
this.searchData.PageIndex = 1
|
this.searchData.PageIndex = 1;
|
||||||
this.getList()
|
this.getList();
|
||||||
},
|
},
|
||||||
handleReset() {
|
handleReset() {
|
||||||
this.searchData = searchDataDefault()
|
this.searchData = searchDataDefault();
|
||||||
this.getList()
|
this.getList();
|
||||||
},
|
},
|
||||||
// 排序
|
// 排序
|
||||||
handleSortChange(column) {
|
handleSortChange(column) {
|
||||||
if (column.order === 'ascending') {
|
if (column.order === "ascending") {
|
||||||
this.searchData.Asc = true
|
this.searchData.Asc = true;
|
||||||
} else {
|
} else {
|
||||||
this.searchData.Asc = false
|
this.searchData.Asc = false;
|
||||||
}
|
}
|
||||||
this.searchData.SortField = column.prop
|
this.searchData.SortField = column.prop;
|
||||||
this.searchData.PageIndex = 1
|
this.searchData.PageIndex = 1;
|
||||||
this.getList()
|
this.getList();
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -224,10 +224,17 @@
|
||||||
:label="$t('common:action:action')"
|
:label="$t('common:action:action')"
|
||||||
width="250"
|
width="250"
|
||||||
fixed="right"
|
fixed="right"
|
||||||
|
v-if="
|
||||||
|
hasPermi(['trials:readTask:view']) ||
|
||||||
|
hasPermi(['trials:readTask:reread']) ||
|
||||||
|
hasPermi(['trials:readTask:report']) ||
|
||||||
|
hasPermi(['trials:readTask:auditRecord'])
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<!-- 查看 -->
|
<!-- 查看 -->
|
||||||
<el-button
|
<el-button
|
||||||
|
v-hasPermi="['trials:readTask:view']"
|
||||||
circle
|
circle
|
||||||
:title="$t('trials:readTask:button:view')"
|
:title="$t('trials:readTask:button:view')"
|
||||||
icon="el-icon-view"
|
icon="el-icon-view"
|
||||||
|
@ -235,6 +242,7 @@
|
||||||
/>
|
/>
|
||||||
<!-- 重阅 -->
|
<!-- 重阅 -->
|
||||||
<el-button
|
<el-button
|
||||||
|
v-hasPermi="['trials:readTask:reread']"
|
||||||
circle
|
circle
|
||||||
:title="$t('trials:readTask:button:reread')"
|
:title="$t('trials:readTask:button:reread')"
|
||||||
icon="el-icon-collection"
|
icon="el-icon-collection"
|
||||||
|
@ -242,11 +250,20 @@
|
||||||
/>
|
/>
|
||||||
<!-- 下载报告 -->
|
<!-- 下载报告 -->
|
||||||
<el-button
|
<el-button
|
||||||
|
v-hasPermi="['trials:readTask:report']"
|
||||||
circle
|
circle
|
||||||
:title="$t('trials:reading:button:uploadReport')"
|
:title="$t('trials:reading:button:uploadReport')"
|
||||||
icon="el-icon-collection"
|
icon="el-icon-collection"
|
||||||
@click="handleReadImage(scope.row)"
|
@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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
width="500px"
|
width="500px"
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
append-to-body
|
append-to-body
|
||||||
|
:before-close="handleCancel"
|
||||||
>
|
>
|
||||||
<el-form
|
<el-form
|
||||||
ref="editVisitForm"
|
ref="editVisitForm"
|
||||||
|
|
Loading…
Reference in New Issue