irc_web/.svn/pristine/d5/d5cb0d7306a8c7d09cd57ff9537...

847 lines
33 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/* eslint-disable */
<template>
<BaseContainer>
<template slot="search-container">
<el-form :inline="true">
<el-form-item :label="$t('trials:consistencyCheck:table:siteId')">
<el-select v-model="searchData.TrialSiteCode" clearable filterable style="width:120px;">
<el-option
v-for="(item,index) of siteOptions"
:key="index"
:label="item"
:value="item"
/>
</el-select>
</el-form-item>
<!-- 受试者编号 -->
<el-form-item :label="$t('trials:consistencyCheck:table:subjectId')">
<el-input v-model="searchData.SubjectCode" style="width:100px;" />
</el-form-item>
<el-form-item style="margin-bottom:10px" label="访视/阅片期名称">
<el-input
v-model="searchData.TaskName"
style="width:100px;"
clearable
/>
</el-form-item>
<el-form-item style="margin-bottom:10px" label="角色">
<el-select v-model="searchData.ArmEnum" clearable style="width:120px;">
<el-option v-for="item of $d.ArmEnum" :key="'ArmEnum' + item.label" :value="item.value" :label="item.label" />
</el-select>
</el-form-item>
<el-form-item style="margin-bottom:10px" label="阅片人">
<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="阅片标准">
<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="是否加急">
<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="任务状态">
<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="任务类型">
<el-select v-model="searchData.ReadingCategory" clearable style="width:120px;">
<el-option v-for="item of $d.ReadingCategory" :key="'ReadingCategory' + item.label" :value="item.value" :label="item.label" />
</el-select>
</el-form-item>
<el-form-item style="margin-bottom:10px" label="一致性分析类别">
<el-select v-model="searchData.IsSelfAnalysis" clearable style="width:120px;">
<el-option v-for="item of $d.IsSelfAnalysis" :key="'IsSelfAnalysis' + item.label" :value="item.value" :label="item.label" />
</el-select>
</el-form-item>
<el-form-item style="margin-bottom:10px" label="分配状态">
<el-select v-model="searchData.TaskAllocationState" clearable style="width:120px;">
<el-option v-for="item of $d.TaskAllocationState" :key="'TaskAllocationState' + item.label" :value="item.value" :label="item.label" />
</el-select>
</el-form-item>
<el-form-item style="margin-bottom:10px" label="分配时间">
<el-date-picker
v-model="timeList"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="changeTimeList"
/>
</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-button type="primary" v-if="hasPermi(['trials:trials-panel:reading:consistency-analysis:edit'])" @click="openTaskConsistentRule(true)">
自身一致性分析
</el-button>
<el-button type="primary" v-if="hasPermi(['trials:trials-panel:reading:consistency-analysis:edit'])" @click="openTaskConsistentRule(false)">
组间一致性分析
</el-button>
</el-form-item>
</el-form>
</template>
<template slot="main-container">
<el-table
v-adaptive="{bottomOffset:60}"
v-loading="loading"
:data="list"
stripe
height="100"
@sort-change="handleSortChange"
>
<el-table-column
prop="IsUrgent"
:label="$t('trials:consistencyCheck:table:isUrgent')"
show-overflow-tooltip
min-width="100"
sortable="custom"
>
<template slot-scope="scope">
<el-tag v-if="scope.row.IsUrgent" type="danger">{{ $fd('YesOrNo', scope.row.IsUrgent) }}</el-tag>
<el-tag v-else type="primary">{{ $fd('YesOrNo', scope.row.IsUrgent) }}</el-tag>
</template>
</el-table-column>
<el-table-column
prop="TaskCode"
label="任务编号"
min-width="100"
sortable="custom"
show-overflow-tooltip
/>
<el-table-column
prop="TrialSiteCode"
label="中心编号"
min-width="100"
sortable="custom"
show-overflow-tooltip
/>
<el-table-column
prop="SubjectCode"
label="受试者编号"
min-width="120"
sortable="custom"
show-overflow-tooltip
>
<template slot-scope="scope">
{{scope.row.SubjectCode}}
<span v-if="scope.row.IsReReadingOrBackInfluenceAnalysis" class="status-primary-circle">
</span>
</template>
</el-table-column>
<el-table-column
prop="VisitTaskNum"
label="访视/阅片期名称"
min-width="160"
sortable="custom"
show-overflow-tooltip
>
<template slot-scope="scope">
{{scope.row.TaskName}}
</template>
</el-table-column>
<el-table-column
prop="TaskBlindName"
label="访视盲态名称"
min-width="140"
sortable="custom"
show-overflow-tooltip
/>
<el-table-column
prop="ReadingCategory"
label="任务类型"
min-width="100"
sortable="custom"
show-overflow-tooltip
>
<template slot-scope="scope">
<el-tag v-if="scope.row.ReadingCategory === 1" type="primary">{{ $fd('ReadingCategory', scope.row.ReadingCategory) }}</el-tag>
<el-tag v-if="scope.row.ReadingCategory === 2" type="info">{{ $fd('ReadingCategory', scope.row.ReadingCategory) }}</el-tag>
<el-tag v-if="scope.row.ReadingCategory === 4" type="danger">{{ $fd('ReadingCategory', scope.row.ReadingCategory) }}</el-tag>
<el-tag v-if="scope.row.ReadingCategory === 5" type="warning">{{ $fd('ReadingCategory', scope.row.ReadingCategory) }}</el-tag>
</template>
</el-table-column>
<el-table-column
prop="IsSelfAnalysis"
label="一致性分析类别"
min-width="160"
sortable="custom"
show-overflow-tooltip
>
<template slot-scope="scope">
<el-tag v-if="scope.row.IsSelfAnalysis" type="primary">{{ $fd('IsSelfAnalysis', scope.row.IsSelfAnalysis) }}</el-tag>
<el-tag v-else type="warning">{{ $fd('IsSelfAnalysis', scope.row.IsSelfAnalysis) }}</el-tag>
</template>
</el-table-column>
<el-table-column
prop="ArmEnum"
label="角色"
min-width="80"
sortable="custom"
show-overflow-tooltip
>
<template slot-scope="scope">
<el-tag v-if="scope.row.ArmEnum === 1" type="primary">{{$fd('ArmEnum', scope.row.ArmEnum)}}</el-tag>
<el-tag v-if="scope.row.ArmEnum === 2" type="success">{{$fd('ArmEnum', scope.row.ArmEnum)}}</el-tag>
<el-tag v-if="scope.row.ArmEnum === 3" type="info">{{$fd('ArmEnum', scope.row.ArmEnum)}}</el-tag>
<el-tag v-if="scope.row.ArmEnum === 4" type="danger">{{$fd('ArmEnum', scope.row.ArmEnum)}}</el-tag>
<el-tag v-if="scope.row.ArmEnum === 5" type="warning">{{$fd('ArmEnum', scope.row.ArmEnum)}}</el-tag>
<el-tag v-if="scope.row.ArmEnum === 8" style="border-color: #4c2791;color:#4c2791;">{{$fd('ArmEnum', scope.row.ArmEnum)}}</el-tag>
</template>
</el-table-column>
<el-table-column
prop="UserName"
label="阅片人"
min-width="100"
sortable="custom"
show-overflow-tooltip
>
<template slot-scope="scope">
{{scope.row.UserName}}({{scope.row.FullName}})
</template>
</el-table-column>
<el-table-column
prop="TrialReadingCriterionName"
label="阅片标准"
min-width="180"
sortable="custom"
show-overflow-tooltip
/>
<el-table-column
prop="TaskState"
label="任务状态"
min-width="100"
sortable="custom"
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>
</template>
</el-table-column>
<el-table-column
prop="AllocateTime"
label="分配时间"
min-width="140"
sortable="custom"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop="SuggesteFinishedTime"
label="建议完成时间"
min-width="140"
sortable="custom"
show-overflow-tooltip
/>
<el-table-column
prop="ReadingTaskState"
label="阅片状态"
min-width="120"
sortable="custom"
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>
</template>
</el-table-column>
<el-table-column
prop="SignTime"
label="阅片完成时间"
min-width="140"
sortable="custom"
show-overflow-tooltip
/>
<el-table-column
prop="ReReadingApplyState"
label="申请状态"
min-width="140"
sortable="custom"
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>
</template>
</el-table-column>
<el-table-column
prop="IsReReadingOrBackInfluenceAnalysis"
label="是否受到退回影响"
min-width="160"
sortable="custom"
show-overflow-tooltip>
<template slot-scope="scope">
<el-tag v-if="!scope.row.IsReReadingOrBackInfluenceAnalysis" type="danger">{{ $fd('YesOrNo', scope.row.IsReReadingOrBackInfluenceAnalysis) }}</el-tag>
<el-tag v-if="scope.row.IsReReadingOrBackInfluenceAnalysis" type="primary">{{ $fd('YesOrNo', scope.row.IsReReadingOrBackInfluenceAnalysis) }}</el-tag>
</template>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="110"
>
<template slot-scope="scope">
<el-button
:disabled="scope.row.ReadingTaskState !== 2"
icon="el-icon-view"
circle
title="查看阅片结果"
@click="lookReadingResults(scope.row)"
/>
<el-button
:disabled="!scope.row.IsReReadingOrBackInfluenceAnalysis || scope.row.TaskState === 1"
v-if="hasPermi(['trials:trials-panel:reading:consistency-analysis:edit'])"
icon="el-icon-close"
circle
title="设置为失效"
@click="setAnalysisTaskInvalid(scope.row)"
/>
<!-- <el-button-->
<!-- :disabled="scope.row.TaskState !== 0 || scope.row.ReadingTaskState !== 2 || scope.row.ReReadingApplyState === 2 || scope.row.ReReadingApplyState === 1"-->
<!-- icon="el-icon-collection"-->
<!-- circle-->
<!-- title="申请重阅"-->
<!-- @click="openApplyReReading(scope.row)"-->
<!-- />-->
<!-- <el-button-->
<!-- :disabled="!scope.row.ReReadingApplyState"-->
<!-- icon="el-icon-toilet-paper"-->
<!-- circle-->
<!-- title="退回重阅历史"-->
<!-- @click="reReadingHistory(scope.row, 1)"-->
<!-- />-->
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" />
<div class="remark">
<!-- √已设置访视基准日期末次访视失访PDPD进展入组确认 -->
<span class="status-primary-circle">
</span>
<span>: 受到退回影响</span>
</div>
<el-dialog
v-if="ReaderRulesVisible"
:title="title"
:visible.sync="ReaderRulesVisible"
width="1200px"
append-to-body
:close-on-click-modal="false"
custom-class="base-dialog-wrapper"
>
<el-tabs type="border-card" v-model="TrialReadingCriterionId">
<el-tab-pane :label="item.TrialReadingCriterionName" :name="item.TrialReadingCriterionId" v-for="item of trialCriterionList">
<el-button size="small" type="primary" style="position: absolute;right: 20px;top: 10px;z-index: 100;" :loading="btnLoading" @click="addReaderRulesForm()">
配置{{ title }}规则
</el-button>
<div class="base-dialog-body" v-if="IsSelfAnalysis" style="margin-top: 32px;">
<el-table
v-loading="loading"
:data="TaskConsistentRuleList"
stripe
>
<el-table-column
prop="TaskCode"
label="阅片人"
min-width="140"
show-overflow-tooltip
>
<template slot-scope="scope" v-if="scope.row.AnalysisDoctorUser">
{{scope.row.AnalysisDoctorUser.UserName}}({{scope.row.AnalysisDoctorUser.FullName}})
</template>
</el-table-column>
<el-table-column
prop="PlanVisitCount"
label="访视数"
min-width="90"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop="IntervalWeeks"
label="间隔周期"
min-width="100"
show-overflow-tooltip
v-if="IsSelfAnalysis"
>
</el-table-column>
<el-table-column
prop="IsHaveReadingPeriod"
label="所选访视是否有阅片期"
min-width="180"
show-overflow-tooltip
>
<template slot-scope="scope">
<el-tag v-if="scope.row.IsHaveReadingPeriod" size="success">{{$fd('YesOrNo', scope.row.IsHaveReadingPeriod)}}</el-tag>
<el-tag v-else size="danger">{{$fd('YesOrNo', scope.row.IsHaveReadingPeriod)}}</el-tag>
</template>
</el-table-column>
<el-table-column
prop="IsGenerateGlobalTask"
label="是否生成全局阅片任务"
min-width="180"
show-overflow-tooltip
>
<template slot-scope="scope">
<el-tag v-if="scope.row.IsGenerateGlobalTask" size="success">{{$fd('YesOrNo', scope.row.IsGenerateGlobalTask)}}</el-tag>
<el-tag v-else size="danger">{{$fd('YesOrNo', scope.row.IsGenerateGlobalTask)}}</el-tag>
</template>
</el-table-column>
<el-table-column
prop="PlanSubjectCount"
label="计划受试者数"
min-width="120"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop="GeneratedSubjectCount"
label="已生成受试者数"
min-width="130"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="110"
>
<template slot-scope="scope">
<el-button
circle
icon="el-icon-s-check"
title="选择"
@click="openDoctorConsistentRuleSubjectTable(scope.row)"
/>
</template>
</el-table-column>
</el-table>
</div>
</el-tab-pane>
</el-tabs>
<div slot="footer" class="dialog-footer">
<!-- 取消 -->
<el-button :disabled="btnLoading" size="small" type="primary" @click="ReaderRulesVisible = false">
{{ $t('common:button:cancel') }}
</el-button>
<!-- 保存 -->
</div>
</el-dialog>
<el-dialog
v-if="ReaderRulesVisible2"
:title="title"
:visible.sync="ReaderRulesVisible2"
width="1200px"
append-to-body
:close-on-click-modal="false"
custom-class="base-dialog-wrapper"
>
<el-tabs type="border-card" v-model="TrialReadingCriterionId">
<el-tab-pane :label="item.TrialReadingCriterionName" :name="item.TrialReadingCriterionId" v-for="item of trialCriterionList">
<el-button size="small" type="primary" style="position: absolute;right: 20px;top: 10px;z-index: 100;" :loading="btnLoading" @click="addReaderRulesForm('g')">
配置{{ title }}规则
</el-button>
<GroupConsistentRuleSubjectTable :TrialReadingCriterionId="TrialReadingCriterionId" ref="GroupConsistentRuleSubjectTable" style="margin-top: 40px" :IsSelfAnalysis="IsSelfAnalysis" :changeNum="changeNum" @close="() => {ReaderRulesVisible2 = false; ; rowData = {}}" @getList="getList()" />
</el-tab-pane>
</el-tabs>
</el-dialog>
<el-dialog
v-if="ReaderRulesFormVisible"
:title=" `配置${title}规则`"
:visible.sync="ReaderRulesFormVisible"
width="480px"
:close-on-click-modal="false"
>
<ReaderRulesForm :isDisable="isDisable" :TrialReadingCriterionId="TrialReadingCriterionId" :data="rowData" :select-list="SelectList" :doctor-user-list="DoctorUserList" :is-self-analysis="IsSelfAnalysis" @close="() => {ReaderRulesFormVisible = false; rowData = {}}" @getList="openTaskConsistentRule(IsSelfAnalysis)" />
</el-dialog>
<el-dialog
v-if="DoctorConsistentRuleSubjectTableVisible"
title="选择受试者"
:visible.sync="DoctorConsistentRuleSubjectTableVisible"
width="1000px"
:close-on-click-modal="false"
>
<DoctorConsistentRuleSubjectTable :data="rowData" @close="() => {DoctorConsistentRuleSubjectTableVisible = false; ; rowData = {}}" @getList="openTaskConsistentRule(IsSelfAnalysis)" />
</el-dialog>
<el-dialog
v-if="ApplyforReasonVisible"
title="申请重阅"
:visible.sync="ApplyforReasonVisible"
width="600px"
append-to-body
:close-on-click-modal="false"
custom-class="base-dialog-wrapper"
>
<div style="padding:10px;border: 1px solid #e0e0e0;max-height:650px;overflow-y: auto;">
<el-form
ref="reasonForm"
:rules="rules"
:model="ApplyforReasonForm"
class="demo-ruleForm"
size="small"
label-width="120px"
>
<el-form-item
label="申请原因"
prop="Type"
:rules="[
{ required: true, message: $t('common:ruleMessage:select')},
]"
>
<el-radio-group v-model="ApplyforReasonForm.Type">
<!-- 问题已解决 -->
<el-radio :label="1">图像重传</el-radio>
<!-- 问题无法解决强制关闭质疑 -->
<el-radio :label="2">其他</el-radio>
</el-radio-group>
</el-form-item>
<!-- 原因 -->
<el-form-item v-if="ApplyforReasonForm.Type === 2" label="备注" prop="RequestReReadingReason">
<el-input
v-model="ApplyforReasonForm.RequestReReadingReason"
type="textarea"
:autosize="{ minRows: 2, maxRows: 4}"
:placeholder="$t('common:ruleMessage:specify')"
maxlength="500"
show-word-limit
/>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<!-- 取消 -->
<el-button :disabled="btnLoading" size="small" type="primary" @click="ApplyforReasonVisible = false;ApplyforReasonForm = { Type: null, RequestReReadingReason: null }">
{{ $t('common:button:cancel') }}
</el-button>
<!-- 保存 -->
<el-button :loading="btnLoading" size="small" type="primary" @click="applyReReading">
{{ $t('common:button:save') }}
</el-button>
</div>
</el-dialog>
</template>
</BaseContainer>
</template>
<script>
import { getTrialCriterionList, getSelfConsistentDoctorStatList, setAnalysisTaskInvalid, getTrialSiteCodeSelect, getDoctorUserSelectList, getAnalysisTaskList, applyReReading, getDoctorConsistentRuleSubjectList, confirmGenerateConsistentTask, getTaskConsistentRuleList, addOrUpdateTaskConsistentRule, deleteTaskConsistentRule } from '@/api/trials/reading'
import ReaderRulesForm from './components/ReaderRulesForm'
import DoctorConsistentRuleSubjectTable from './components/DoctorConsistentRuleSubjectTable'
import GroupConsistentRuleSubjectTable from './components/GroupConsistentRuleSubjectTable'
import BaseContainer from '@/components/BaseContainer'
import Pagination from '@/components/Pagination'
import { getToken } from '@/utils/auth'
const searchDataDefault = () => {
return {
PageIndex: 1,
PageSize: 20,
Asc: true,
SortField: '',
TrialId: null,
SiteId: null,
SubjectId: null,
SubjectCode: null,
TrialSiteCode: null,
IsUrgent: null,
TaskName: null,
TaskState: null,
DoctorUserId: null,
ReadingCategory: null,
TaskAllocationState: null,
BeginAllocateDate: null,
EndAllocateDate: null
}
}
export default {
name: 'TrialsNotice',
components: { BaseContainer, Pagination, ReaderRulesForm, DoctorConsistentRuleSubjectTable, GroupConsistentRuleSubjectTable },
data() {
return {
TrialReadingCriterionId: null,
trialCriterionList: [],
searchData: searchDataDefault(),
maxLength: 0,
list: [],
siteOptions: [],
total: 0,
loading: false,
ReaderRulesVisible: false,
DoctorConsistentRuleSubjectTableVisible: false,
trialId: this.$route.query.trialId,
ReaderRulesVisible2: false,
currentData: {},
param: {},
DoctorUserList: [],
btnLoading: false,
rowData: {},
OtherInfo: null,
title: null,
SelectList: [],
TaskConsistentRuleList: [],
isDisable: false,
ReaderRulesFormVisible: false,
IsSelfAnalysis: true,
timeList: [],
ApplyforReasonVisible: false,
ApplyforReasonForm: {
Type: null,
RequestReReadingReason: null
},
rules: {
Type: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }],
RequestReReadingReason: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }]
},
changeNum: 0
}
},
mounted() {
this.getList()
this.getSite()
this.getDoctorUserSelectList()
this.getTrialCriterionList()
},
methods: {
getTrialCriterionList() {
getTrialCriterionList(this.trialId).then(res => {
this.trialCriterionList = res.Result
this.TrialReadingCriterionId = this.trialCriterionList[0].TrialReadingCriterionId
}).catch(() => {})
},
setAnalysisTaskInvalid(row) {
this.$confirm('确定要将该一致性任务设置成失效吗?').then(() => {
this.loading = true
setAnalysisTaskInvalid([
row.Id
]).then(res => {
this.$message.success('设置成功')
this.getList()
this.loading = false
}).catch(() => {
this.loading = false
})
})
},
changeTimeList() {
if (this.timeList) {
this.searchData.BeginAllocateDate = this.timeList[0]
this.searchData.EndAllocateDate = this.timeList[1]
} else {
this.searchData.BeginAllocateDate = null
this.searchData.EndAllocateDate = null
}
},
// 重阅历史
reReadingHistory(row) {
this.$router.push({ path: `/trials/trials-panel/reading/reReadingTracking?trialId=${this.$route.query.trialId}&trialCode=${this.$route.query.trialCode}&researchProgramNo=${this.$route.query.researchProgramNo}&SiteId=${row.SiteId}&SubjectCode=${row.SubjectCode}&TaskName=${row.TaskName}&DoctorUserId=${row.DoctorUserId}` })
},
// 申请重阅
applyReReading() {
this.$refs.reasonForm.validate((valid) => {
if (!valid) return
this.loading = true
this.btnLoading = true
var params = {
TaskIdList: [
this.rowData.Id
],
TrialId: this.$route.query.trialId,
RequestReReadingType: 2,
RequestReReadingReason: this.ApplyforReasonForm.Type === 2 ? this.ApplyforReasonForm.RequestReReadingReason : '图像重传'
}
applyReReading(params).then(res => {
this.loading = false
this.btnLoading = false
this.$message.success('申请重阅成功')
this.getList()
this.ApplyforReasonVisible = false
}).catch(() => {
this.loading = false
this.btnLoading = false
})
})
},
lookReadingResults(row) {
var token = getToken()
const routeData = this.$router.resolve({
path: `/readingPage?TrialReadingCriterionId=${row.TrialReadingCriterionId}&subjectId=${row.SubjectId}&trialId=${row.TrialId}&visitTaskId=${row.Id}&TokenKey=${token}`
})
window.open(routeData.href, '_blank')
},
openApplyReReading(row) {
this.rowData = { ...row }
this.ApplyforReasonVisible = true
this.ApplyforReasonForm = {
Type: null,
Remake: null
}
},
editReaderRulesForm(row) {
this.rowData = {...row}
this.ReaderRulesFormVisible = true
},
openDoctorConsistentRuleSubjectTable(row) {
this.rowData = {...row}
this.DoctorConsistentRuleSubjectTableVisible = true
},
addReaderRulesForm(isg) {
this.isDisable = false
if (isg) {
if (this.$refs['GroupConsistentRuleSubjectTable'].list) {
this.$refs['GroupConsistentRuleSubjectTable'].list.forEach(v => {
if (v.IsHaveGeneratedTask) {
this.isDisable = true
}
})
}
} else {
if (this.TaskConsistentRuleList.length > 0) {
this.rowData = {...this.TaskConsistentRuleList[0]}
this.TaskConsistentRuleList.forEach(v => {
if (v.GeneratedSubjectCount) {
this.isDisable = true
}
})
} else {
this.rowData = {}
}
}
this.ReaderRulesFormVisible = true
},
openTaskConsistentRule(IsSelfAnalysis) {
this.loading = true
if (IsSelfAnalysis) {
this.title = '自身一致性分析'
getSelfConsistentDoctorStatList({TrialId: this.trialId, TrialReadingCriterionId: this.TrialReadingCriterionId}).then(res => {
this.ReaderRulesFormVisible = false
this.DoctorConsistentRuleSubjectTableVisible = false
this.TaskConsistentRuleList = res.Result
this.IsSelfAnalysis = IsSelfAnalysis
this.ReaderRulesVisible = true
this.getList()
this.loading = false
}).catch(() => {
this.loading = false
})
} else {
this.changeNum ++
this.ReaderRulesFormVisible = false
this.title = '组间一致性分析'
this.IsSelfAnalysis = IsSelfAnalysis
this.ReaderRulesVisible2 = true
this.loading = false
}
// getTaskConsistentRuleList({
// IsSelfAnalysis: IsSelfAnalysis,
// TrialId: this.trialId
// }).then(res => {
// this.ReaderRulesFormVisible = false
// this.DoctorConsistentRuleSubjectTableVisible = false
// this.TaskConsistentRuleList = res.Result
// this.IsSelfAnalysis = IsSelfAnalysis
// this.ReaderRulesVisible = true
// })
},
getDoctorUserSelectList() {
getDoctorUserSelectList(this.$route.query.trialId).then(res => {
this.DoctorUserList = res.Result
if (this.DoctorUserList.length > 0) {
this.ReadingType = this.DoctorUserList[0].ReadingType
} else {
}
})
},
getList() {
this.searchData.TrialId = this.$route.query.trialId
this.loading = true
getAnalysisTaskList(this.searchData).then(res => {
this.loading = false
this.OtherInfo = res.OtherInfo
this.list = res.Result.CurrentPageData
this.total = res.Result.TotalCount
this.ReaderRulesVisible2 = false
this.AssignMedicalReviewTaskVisible = false
}).catch(() => { this.loading = false })
},
handleSearch() {
this.searchData.PageIndex = 1
this.getList()
},
handleReset() {
this.searchData = searchDataDefault()
this.getList()
},
getSite() {
getTrialSiteCodeSelect(this.trialId).then(res => {
this.siteOptions = res.Result
})
},
// 排序
handleSortChange(column) {
if (column.order === 'ascending') {
this.searchData.Asc = true
} else {
this.searchData.Asc = false
}
this.searchData.SortField = column.prop
this.searchData.PageIndex = 1
this.getList()
}
}
}
</script>
<style lang="scss" scoped>
.remark{
position: absolute;
left: 5px;
bottom: 7px;
font-size: 12px;
}
.status-primary-circle{
display: inline-block;
width:20px;
height:20px;
text-align: center;
line-height: 18px;
border-radius: 50%;
// background: #f56c6c;
border: 1px solid #f56c6c;
color:#f56c6c;
font-size: 10px;
}
>>>.hidden-row{
display: none;
}
>>>.el-dialog__body {
padding: 15px 20px;
}
>>>.el-tag--danger.el-tag--dark {
// background-color: #f56c6c!important;
border-color: none!important;
// color: #fff!important;
}
>>>#TaskAllocationRuleList thead .el-checkbox__inner{
display: none;
}
>>>.el-descriptions-item__label.has-colon:after{
display: none;
}
</style>