修改配置

main
wangxiaoshuang 2024-04-11 09:30:42 +08:00
parent 39b9249ae7
commit 010d26029c
12 changed files with 914 additions and 518 deletions

View File

@ -38,4 +38,4 @@ VUE_APP_OSS_CONFIG_REGION = 'oss-cn-shanghai'
VUE_APP_OSS_CONFIG_BUCKET = 'zyypacs-prod'
VUE_APP_OSS_PATH = '/study_prod/dist'
VUE_APP_OSS_PATH = '/hir_prod/dist'

View File

@ -45,4 +45,4 @@ VUE_APP_OSS_CONFIG_REGION = 'oss-cn-shanghai'
VUE_APP_OSS_CONFIG_BUCKET = 'zyypacs'
VUE_APP_OSS_PATH = '/study_test/dist'
VUE_APP_OSS_PATH = '/hir_test/dist'

View File

@ -38,4 +38,4 @@ VUE_APP_OSS_CONFIG_REGION = 'oss-cn-shanghai'
VUE_APP_OSS_CONFIG_BUCKET = 'zyypacs-uat'
VUE_APP_OSS_PATH = '/study_uat/dist'
VUE_APP_OSS_PATH = '/hir_uat/dist'

21
.eslintignore Normal file
View File

@ -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/*

4
.gitignore vendored
View File

@ -14,5 +14,5 @@ tests/**/coverage/
*.ntvs*
*.njsproj
*.sln
.eslintignore
/.eslintignore
# .eslintignore
# /.eslintignore

View File

@ -78,7 +78,7 @@ export default {
}
},
mounted() {
this.show = process.env.VUE_APP_OSS_PATH === '/study_test/dist'
this.show = process.env.VUE_APP_OSS_PATH === '/hir_test/dist'
},
methods: {
changeValue(target, attr, e) {

View File

@ -404,10 +404,10 @@ export default {
if (!fd) return;
let data = {
TrialId: this.submitMessage.TrialId,
SubjectVisitList: [],
SubjectVisitIdList : [],
};
this.tableSelectData.forEach((item) => {
data.SubjectVisitList.push(item.SubjectVisitId);
data.SubjectVisitIdList .push(item.SubjectVisitId);
});
try {
this.btnLoading2 = true;

View File

@ -406,7 +406,7 @@ export default {
if (confirm !== "confirm") return;
let data = {
TrialId: this.$route.query.trialId,
SubjectVisitList: [item.SubjectVisitId],
SubjectVisitIdList: [item.SubjectVisitId],
};
try {
this.loading = true;
@ -418,7 +418,7 @@ export default {
);
}
} catch (err) {
this.btnLoading2 = false;
this.loading = false;
console.log(err);
}
},

View File

@ -1,13 +1,37 @@
<template>
<BaseContainer>
<el-tabs v-model="TrialReadingCriterionId" type="border-card">
<el-tab-pane v-for="item of trialCriterionList" :key="item.TrialReadingCriterionId" :label="item.TrialReadingCriterionName" :name="item.TrialReadingCriterionId">
<div>
<div slot="search-container">
<el-form :inline="true">
<!-- 中心编号 -->
<el-form-item :label="$t('trials:reviewTrack:table:siteCode')">
<el-select v-model="searchData.SiteId" clearable filterable style="width:120px;">
<!-- 阅片标准 -->
<el-form-item :label="$t('trials:auditRecord:table:criterion')">
<el-select
v-model="searchData.TrialReadingCriterionId"
clearable
style="width: 120px"
>
<el-option
v-for="item of trialCriterionList"
:key="'TrialReadingCriterionId' + item.TrialReadingCriterionId"
:value="item.TrialReadingCriterionId"
:label="item.TrialReadingCriterionName"
/>
</el-select>
</el-form-item>
<!-- 受试者编号 -->
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
<el-input v-model="searchData.SubjectCode" style="width: 100px" />
</el-form-item>
<!-- 任务名称 -->
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:reviewTrack:table:taskName')"
>
<el-select
v-model="searchData.TaskName"
clearable
filterable
style="width: 120px"
>
<el-option
v-for="(item, index) of siteOptions"
:key="index"
@ -16,43 +40,106 @@
/>
</el-select>
</el-form-item>
<!-- 受试者编号 -->
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
<el-input v-model="searchData.SubjectCode" style="width:100px;" />
</el-form-item>
<!-- 任务名称 -->
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:taskName')">
<el-input
v-model="searchData.TaskName"
style="width:100px;"
clearable
/>
</el-form-item>
<!-- 阅片人 -->
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:reader')">
<el-select v-model="searchData.DoctorUserId" clearable style="width:120px;">
<el-option v-for="item of DoctorUserList" :key="'DoctorUserId' + item.DoctorUserId" :value="item.DoctorUserId" :label="`${item.UserName}(${item.FullName})`" />
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:reviewTrack:table:reader')"
>
<el-select
v-model="searchData.DoctorUserId"
clearable
style="width: 120px"
>
<el-option
v-for="item of DoctorUserList"
:key="'DoctorUserId' + item.DoctorUserId"
:value="item.DoctorUserId"
:label="`${item.UserName}(${item.FullName})`"
/>
</el-select>
</el-form-item>
<!-- 任务状态 -->
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:readTask:table:taskState')"
>
<el-select
v-model="searchData.DoctorUserId"
clearable
style="width: 120px"
>
<el-option
v-for="item of DoctorUserList"
:key="'DoctorUserId' + item.DoctorUserId"
:value="item.DoctorUserId"
:label="`${item.UserName}(${item.FullName})`"
/>
</el-select>
</el-form-item>
<!-- &lt;!&ndash; 阅片标准 &ndash;&gt;-->
<!-- <el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:criterionName')">-->
<!-- <el-select v-model="searchData.TrialReadingCriterionId" clearable style="width:120px;">-->
<!-- <el-option v-for="item of trialCriterionList" :key="'TrialReadingCriterionId' + item.TrialReadingCriterionId" :value="item.TrialReadingCriterionId" :label="item.TrialReadingCriterionName" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- 审核结果 -->
<el-form-item style="margin-bottom:10px" :label="$t('trials:auditRecord:table:auditResult')">
<el-select v-model="searchData.PIAuditState" clearable style="width:120px;">
<el-option v-for="item of $d.PIAuditState" :key="'PIAuditState' + item.label" :value="item.value" :label="item.label" />
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:auditRecord:table:auditResult')"
>
<el-select
v-model="searchData.PIAuditState"
clearable
style="width: 120px"
>
<el-option
v-for="item of $d.PIAuditState"
:key="'PIAuditState' + item.label"
:value="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<!-- 是否入组 -->
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:auditRecord:table:isEnrollment')"
>
<el-select
v-model="searchData.DoctorUserId"
clearable
style="width: 120px"
>
<el-option
v-for="item of DoctorUserList"
:key="'DoctorUserId' + item.DoctorUserId"
:value="item.DoctorUserId"
:label="`${item.UserName}(${item.FullName})`"
/>
</el-select>
</el-form-item>
<!-- 是否PD -->
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:auditRecord:table:isPDConfirm')"
>
<el-select
v-model="searchData.DoctorUserId"
clearable
style="width: 120px"
>
<el-option
v-for="item of DoctorUserList"
:key="'DoctorUserId' + item.DoctorUserId"
:value="item.DoctorUserId"
:label="`${item.UserName}(${item.FullName})`"
/>
</el-select>
</el-form-item>
<el-form-item style="margin-bottom: 10px">
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
{{ $t('common:button:search') }}
{{ $t("common:button:search") }}
</el-button>
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
{{ $t('common:button:reset') }}
<el-button
type="primary"
icon="el-icon-refresh-left"
@click="handleReset"
>
{{ $t("common:button:reset") }}
</el-button>
</el-form-item>
</el-form>
@ -75,14 +162,6 @@
sortable="custom"
show-overflow-tooltip
/>
<!-- 中心编号 -->
<el-table-column
prop="TrialSiteCode"
:label="$t('trials:reviewTrack:table:siteCode')"
width="100"
sortable="custom"
show-overflow-tooltip
/>
<!-- 受试者编号 -->
<el-table-column
prop="SubjectCode"
@ -103,6 +182,14 @@
{{ scope.row.TaskName }}
</template>
</el-table-column>
<!-- 角色 -->
<el-table-column
prop="SubjectCode"
:label="$t('trials:auditRecord:table:role')"
min-width="120"
sortable="custom"
show-overflow-tooltip
/>
<!-- 阅片人 -->
<el-table-column
prop="UserName"
@ -115,6 +202,14 @@
{{ scope.row.UserName }}({{ scope.row.FullName }})
</template>
</el-table-column>
<!-- 任务状态 -->
<el-table-column
prop="SubjectCode"
:label="$t('trials:readTask:table:taskState')"
min-width="120"
sortable="custom"
show-overflow-tooltip
/>
<!-- 阅片标准 -->
<el-table-column
prop="TrialReadingCriterionName"
@ -156,23 +251,43 @@
show-overflow-tooltip
>
<template slot-scope="scope">
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{ $fd('PIAuditState', scope.row.PIAuditState) }}</el-tag>
<el-tag v-else-if="scope.row.PIAuditState === 1" type="primary">{{ $fd('PIAuditState', scope.row.PIAuditState) }}</el-tag>
<el-tag v-else-if="scope.row.PIAuditState === 2" type="warning">{{ $fd('PIAuditState', scope.row.PIAuditState) }}
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{
$fd("PIAuditState", scope.row.PIAuditState)
}}</el-tag>
<el-tag v-else-if="scope.row.PIAuditState === 1" type="primary">{{
$fd("PIAuditState", scope.row.PIAuditState)
}}</el-tag>
<el-tag v-else-if="scope.row.PIAuditState === 2" type="warning"
>{{ $fd("PIAuditState", scope.row.PIAuditState) }}
</el-tag>
<span v-else>{{ $fd('PIAuditState', scope.row.PIAuditState) }}</span>
<span v-else>{{
$fd("PIAuditState", scope.row.PIAuditState)
}}</span>
</template>
</el-table-column>
<el-table-column
prop="item.QuestionId"
:label="item.QuestionName"
min-width="140"
v-for="item of QuestionList"
:key="Math.random()"
v-for="(item, index) of QuestionList"
:key="'QuestionId' + index"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ item.DictionaryCode ? $fd(item.DictionaryCode, parseInt(scope.row.PIReadingResultList.find(v => v.QuestionId === item.QuestionId).Answer)) : scope.row.PIReadingResultList.find(v => v.QuestionId === item.QuestionId).Answer}}
{{
item.DictionaryCode
? $fd(
item.DictionaryCode,
parseInt(
scope.row.PIReadingResultList.find(
(v) => v.QuestionId === item.QuestionId
).Answer
)
)
: scope.row.PIReadingResultList.find(
(v) => v.QuestionId === item.QuestionId
).Answer
}}
</template>
</el-table-column>
<!-- 是否入组 -->
@ -185,9 +300,13 @@
>
<template slot-scope="scope">
<el-tag v-if="scope.row.IsEnrollment === true" type="primary">
{{ $fd('YesOrNo', scope.row.IsEnrollment) }}
{{ $fd("YesOrNo", scope.row.IsEnrollment) }}
</el-tag>
<el-tag v-else-if="scope.row.IsEnrollment === false" type="danger">{{ $fd('YesOrNo', scope.row.IsEnrollment) }}</el-tag>
<el-tag
v-else-if="scope.row.IsEnrollment === false"
type="danger"
>{{ $fd("YesOrNo", scope.row.IsEnrollment) }}</el-tag
>
</template>
</el-table-column>
<!-- 是否PD -->
@ -200,9 +319,11 @@
>
<template slot-scope="scope">
<el-tag v-if="scope.row.IsPDConfirm === true" type="primary">
{{ $fd('YesOrNo', scope.row.IsPDConfirm) }}
{{ $fd("YesOrNo", scope.row.IsPDConfirm) }}
</el-tag>
<el-tag v-else-if="scope.row.IsPDConfirm === false" type="danger">{{ $fd('YesOrNo', scope.row.IsPDConfirm) }}</el-tag>
<el-tag v-else-if="scope.row.IsPDConfirm === false" type="danger">{{
$fd("YesOrNo", scope.row.IsPDConfirm)
}}</el-tag>
</template>
</el-table-column>
<!-- 最新回复人 -->
@ -238,7 +359,9 @@
<el-button
circle
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')"
@click="handleAuditRecords(scope.row)"
/>
@ -246,18 +369,23 @@
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" />
<pagination
class="page"
:total="total"
:page.sync="searchData.PageIndex"
:limit.sync="searchData.PageSize"
@pagination="getList"
/>
</div>
</div>
</el-tab-pane>
</el-tabs>
<!-- 审核记录 -->
<el-dialog
v-if="auditRecordVisible"
:visible.sync="auditRecordVisible"
:close-on-click-modal="false"
custom-class="base-dialog-wrapper"
:title="`${$t('trials:auditRecord:table:auditRecords')}${currentRow.SubjectCode} | ${currentRow.TaskName} | ${currentRow.UserName}`"
:title="`${$t('trials:auditRecord:table:auditRecords')}${
currentRow.SubjectCode
} | ${currentRow.TaskName} | ${currentRow.UserName}`"
width="600px"
>
<ChatForm
@ -269,19 +397,22 @@
</BaseContainer>
</template>
<script>
import { getPIReadingAuditList } from '@/api/reading'
import { getTrialCriterionList, getDoctorUserSelectList } from '@/api/trials/reading'
import { getTrialSiteSelect } from '@/api/trials'
import { getToken } from '@/utils/auth'
import BaseContainer from '@/components/BaseContainer'
import Pagination from '@/components/Pagination'
import ChatForm from './components/ChatForm'
import { getPIReadingAuditList } from "@/api/reading";
import {
getTrialCriterionList,
getDoctorUserSelectList,
} from "@/api/trials/reading";
import { getTrialSiteSelect } from "@/api/trials";
import { getToken } from "@/utils/auth";
import BaseContainer from "@/components/BaseContainer";
import Pagination from "@/components/Pagination";
import ChatForm from "./components/ChatForm";
const searchDataDefault = () => {
return {
PageIndex: 1,
PageSize: 20,
Asc: true,
SortField: '',
SortField: "",
TrialId: null,
SiteId: null,
SubjectId: null,
@ -292,11 +423,11 @@ const searchDataDefault = () => {
DoctorUserId: null,
ReadingTaskState: 2,
PIAuditState: null,
IsWaitPIAudit: null
}
}
IsWaitPIAudit: null,
};
};
export default {
name: 'AuditRecords', // PI
name: "AuditRecords", // PI
components: { BaseContainer, Pagination, ChatForm },
data() {
return {
@ -304,105 +435,112 @@ export default {
list: [],
total: 0,
loading: false,
userListLoading: '',
trialId: '',
userListLoading: "",
trialId: "",
trialCriterionList: [],
siteOptions: [],
DoctorUserList: [],
auditRecordVisible: false,
TrialReadingCriterionId: '0',
TrialReadingCriterionId: "0",
openWindow: null,
QuestionList: []
}
QuestionList: [],
};
},
watch: {
TrialReadingCriterionId(v) {
if (v) {
this.getList()
}
this.getList();
}
},
},
beforeUpdate() {
this.$nextTick(() => {
this.$refs.myTable.doLayout()
})
this.$refs.myTable.doLayout();
});
},
mounted() {
this.trialId = this.$route.query.trialId
this.getTrialCriterionList()
this.getSite()
this.getDoctorUserSelectList()
this.trialId = this.$route.query.trialId;
this.getTrialCriterionList();
this.getSite();
this.getDoctorUserSelectList();
},
methods: {
getList() {
this.loading = true
this.searchData.TrialId = this.trialId
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId
getPIReadingAuditList(this.searchData).then(res => {
this.loading = false
this.QuestionList = res.OtherInfo.OtherObj
this.loading = true;
this.searchData.TrialId = this.trialId;
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId;
getPIReadingAuditList(this.searchData)
.then((res) => {
this.loading = false;
this.QuestionList = res.OtherInfo.OtherObj;
this.$nextTick(() => {
setTimeout(() => {
this.list = res.Result.CurrentPageData
}, 100)
this.total = res.Result.TotalCount
this.$refs.myTable.doLayout()
this.list = res.Result.CurrentPageData;
}, 100);
this.total = res.Result.TotalCount;
this.$refs.myTable.doLayout();
});
})
}).catch(() => { this.loading = false })
.catch(() => {
this.loading = false;
});
},
handleAuditRecords(row) {
this.currentRow = { ...row }
this.auditRecordVisible = true
this.currentRow = { ...row };
this.auditRecordVisible = true;
},
//
handleView(row) {
if (this.openWindow) {
this.openWindow.close()
this.openWindow.close();
}
var token = getToken()
var path
var token = getToken();
var path;
if (row.ReadingTool === 0) {
path = `/readingDicoms?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`
path = `/readingDicoms?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`;
} else {
path = `/noneDicomReading?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`
path = `/noneDicomReading?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`;
}
this.openWindow = window.open(path, '_blank')
this.openWindow = window.open(path, "_blank");
},
getTrialCriterionList() {
getTrialCriterionList(this.trialId).then(res => {
this.trialCriterionList = res.Result
this.TrialReadingCriterionId = this.trialCriterionList[0].TrialReadingCriterionId
}).catch(() => {})
getTrialCriterionList(this.trialId)
.then((res) => {
this.trialCriterionList = res.Result;
this.TrialReadingCriterionId =
this.trialCriterionList[0].TrialReadingCriterionId;
})
.catch(() => {});
},
getDoctorUserSelectList() {
getDoctorUserSelectList(this.$route.query.trialId).then(res => {
this.DoctorUserList = res.Result
})
getDoctorUserSelectList(this.$route.query.trialId).then((res) => {
this.DoctorUserList = res.Result;
});
},
getSite() {
getTrialSiteSelect(this.trialId).then(res => {
this.siteOptions = res.Result
})
getTrialSiteSelect(this.trialId).then((res) => {
this.siteOptions = res.Result;
});
},
handleSearch() {
this.searchData.PageIndex = 1
this.getList()
this.searchData.PageIndex = 1;
this.getList();
},
handleReset() {
this.searchData = searchDataDefault()
this.getList()
this.searchData = searchDataDefault();
this.getList();
},
//
handleSortChange(column) {
if (column.order === 'ascending') {
this.searchData.Asc = true
if (column.order === "ascending") {
this.searchData.Asc = true;
} else {
this.searchData.Asc = false
}
this.searchData.SortField = column.prop
this.searchData.PageIndex = 1
this.getList()
}
}
this.searchData.Asc = false;
}
this.searchData.SortField = column.prop;
this.searchData.PageIndex = 1;
this.getList();
},
},
};
</script>

View File

@ -1,80 +1,155 @@
<template>
<BaseContainer>
<el-tabs v-model="TrialReadingCriterionId" type="border-card">
<el-tab-pane v-for="item of trialCriterionList" :key="item.TrialReadingCriterionId" :label="item.TrialReadingCriterionName" :name="item.TrialReadingCriterionId">
<el-tab-pane
v-for="item of trialCriterionList"
:key="item.TrialReadingCriterionId"
:label="item.TrialReadingCriterionName"
:name="item.TrialReadingCriterionId"
>
<div v-if="TrialReadingCriterionId === item.TrialReadingCriterionId">
<div slot="search-container">
<el-form :inline="true">
<!-- 中心编号 -->
<el-form-item :label="$t('trials:reviewTrack:table:siteCode')">
<el-select v-model="searchData.SiteId" clearable filterable style="width:120px;">
<el-option
v-for="(item,index) of siteOptions"
:key="index"
:label="item.TrialSiteCode"
:value="item.SiteId"
/>
</el-select>
</el-form-item>
<!-- 受试者编号 -->
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
<el-input v-model="searchData.SubjectCode" style="width:100px;" />
<el-input
v-model="searchData.SubjectCode"
style="width: 100px"
/>
</el-form-item>
<!-- 任务名称 -->
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:taskName')">
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:reviewTrack:table:taskName')"
>
<el-input
v-model="searchData.TaskName"
style="width:100px;"
style="width: 100px"
clearable
/>
</el-form-item>
<!-- 阅片人 -->
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:reader')">
<el-select v-model="searchData.DoctorUserId" clearable style="width:120px;">
<el-option v-for="item of DoctorUserList" :key="'DoctorUserId' + item.DoctorUserId" :value="item.DoctorUserId" :label="`${item.UserName}(${item.FullName})`" />
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:reviewTrack:table:reader')"
>
<el-select
v-model="searchData.DoctorUserId"
clearable
style="width: 120px"
>
<el-option
v-for="item of DoctorUserList"
:key="'DoctorUserId' + item.DoctorUserId"
:value="item.DoctorUserId"
:label="`${item.UserName}(${item.FullName})`"
/>
</el-select>
</el-form-item>
<!-- 阅片标准 -->
<!-- <el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:criterionName')">-->
<!-- <el-select v-model="searchData.TrialReadingCriterionId" clearable style="width:120px;">-->
<!-- <el-option v-for="item of trialCriterionList" :key="'TrialReadingCriterionId' + item.TrialReadingCriterionId" :value="item.TrialReadingCriterionId" :label="item.TrialReadingCriterionName" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- 是否加急 -->
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:isUrgent')">
<el-select v-model="searchData.IsUrgent" clearable style="width:120px;">
<el-option v-for="item of $d.YesOrNo" :key="'IsUrgent' + item.label" :value="item.value" :label="item.label" />
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:reviewTrack:table:isUrgent')"
>
<el-select
v-model="searchData.IsUrgent"
clearable
style="width: 120px"
>
<el-option
v-for="item of $d.YesOrNo"
:key="'IsUrgent' + item.label"
:value="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<!-- 任务状态 -->
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:taskStatus')">
<el-select v-model="searchData.TaskState" clearable style="width:120px;">
<el-option v-for="item of $d.TaskState" :key="'TaskState' + item.label" :value="item.value" :label="item.label" />
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:reviewTrack:table:taskStatus')"
>
<el-select
v-model="searchData.TaskState"
clearable
style="width: 120px"
>
<el-option
v-for="item of $d.TaskState"
:key="'TaskState' + item.label"
:value="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<!-- 阅片状态 -->
<!-- <el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:readingStatus')">
<el-select v-model="searchData.ReadingTaskState" clearable style="width:120px;">
<el-option v-for="item of $d.ReadingTaskState" :key="'ReadingTaskState' + item.label" :value="item.value" :label="item.label" />
</el-select>
</el-form-item> -->
<!-- <el-form-item style="margin-bottom:10px" :label="$t('trials:rereadTrack:table:ReReadingApplyState')">
<el-select v-model="searchData.ReReadingApplyState" clearable style="width:120px;">
<el-option v-for="item of $d.ReReadingApplyState" :key="'ReReadingApplyState' + item.label" :value="item.value" :label="item.label" />
</el-select>
</el-form-item> -->
<!-- 审核状态 -->
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:auditStatus')">
<el-select v-model="searchData.PIAuditState" clearable style="width:120px;">
<el-option v-for="item of $d.PIAuditState" :key="'PIAuditState' + item.label" :value="item.value" :label="item.label" />
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:reviewTrack:table:auditStatus')"
>
<el-select
v-model="searchData.PIAuditState"
clearable
style="width: 120px"
>
<el-option
v-for="item of $d.PIAuditState"
:key="'PIAuditState' + item.label"
:value="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<!-- 是否入组 -->
<el-form-item
style="margin-bottom: 10px"
: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
type="primary"
icon="el-icon-search"
@click="handleSearch"
>
{{ $t("common:button:search") }}
</el-button>
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
{{ $t('common:button:reset') }}
<el-button
type="primary"
icon="el-icon-refresh-left"
@click="handleReset"
>
{{ $t("common:button:reset") }}
</el-button>
</el-form-item>
</el-form>
@ -101,15 +176,52 @@
<el-tag v-else type="primary">{{ $fd('YesOrNo', scope.row.IsUrgent) }}</el-tag> -->
<el-tooltip placement="top">
<div slot="content">
<span>{{ `${$t('trials:pendingReview:title:urgentReason')} ${$fd('TaskUrgentType',scope.row.TaskUrgentType)}` }}</span><br>
<span>{{ scope.row.TaskUrgentRemake?`${$t('trials:pendingReview:title:urgentNote')} ${scope.row.TaskUrgentRemake}`:'' }}</span>
<span>{{
`${$t("trials:pendingReview:title:urgentReason")} ${$fd(
"TaskUrgentType",
scope.row.TaskUrgentType
)}`
}}</span
><br />
<span>{{
scope.row.TaskUrgentRemake
? `${$t("trials:pendingReview:title:urgentNote")} ${
scope.row.TaskUrgentRemake
}`
: ""
}}</span>
</div>
<div>
<el-button v-if="scope.row.IsUrgent" :disabled="!(!scope.row.TaskState && (scope.row.ReadingTaskState === 0 || scope.row.ReadingTaskState === 1)) || !scope.row.IsCanEditUrgentState" type="danger" size="mini" @click="changeUrgentStatus(scope.row)">{{ $fd('YesOrNo', scope.row.IsUrgent) }}</el-button>
<el-button
v-if="scope.row.IsUrgent"
:disabled="
!(
!scope.row.TaskState &&
(scope.row.ReadingTaskState === 0 ||
scope.row.ReadingTaskState === 1)
) || !scope.row.IsCanEditUrgentState
"
type="danger"
size="mini"
@click="changeUrgentStatus(scope.row)"
>{{ $fd("YesOrNo", scope.row.IsUrgent) }}</el-button
>
</div>
</el-tooltip>
<el-button v-if="!scope.row.IsUrgent" :disabled="!(!scope.row.TaskState && (scope.row.ReadingTaskState === 0 || scope.row.ReadingTaskState === 1)) || !scope.row.IsCanEditUrgentState" type="primary" size="mini" @click="changeUrgentStatus(scope.row)">{{ $fd('YesOrNo', scope.row.IsUrgent) }}</el-button>
<el-button
v-if="!scope.row.IsUrgent"
:disabled="
!(
!scope.row.TaskState &&
(scope.row.ReadingTaskState === 0 ||
scope.row.ReadingTaskState === 1)
) || !scope.row.IsCanEditUrgentState
"
type="primary"
size="mini"
@click="changeUrgentStatus(scope.row)"
>{{ $fd("YesOrNo", scope.row.IsUrgent) }}</el-button
>
</template>
</el-table-column>
<!-- 任务编号 -->
@ -120,14 +232,6 @@
sortable="custom"
show-overflow-tooltip
/>
<!-- 中心编号 -->
<el-table-column
prop="TrialSiteCode"
:label="$t('trials:reviewTrack:table:siteCode')"
width="100"
sortable="custom"
show-overflow-tooltip
/>
<!-- 受试者编号 -->
<el-table-column
prop="SubjectCode"
@ -173,11 +277,21 @@
show-overflow-tooltip
>
<template slot-scope="scope">
<el-tag v-if="scope.row.TaskState === 0" type="primary">{{ $fd('TaskState', scope.row.TaskState) }}</el-tag>
<el-tag v-if="scope.row.TaskState === 1" type="info">{{ $fd('TaskState', scope.row.TaskState) }}</el-tag>
<el-tag v-if="scope.row.TaskState === 3" type="danger">{{ $fd('TaskState', scope.row.TaskState) }}</el-tag>
<el-tag v-if="scope.row.TaskState === 4" type="warning">{{ $fd('TaskState', scope.row.TaskState) }}</el-tag>
<el-tag v-if="scope.row.TaskState === 5" type="danger">{{ $fd('TaskState', scope.row.TaskState) }}</el-tag>
<el-tag v-if="scope.row.TaskState === 0" type="primary">{{
$fd("TaskState", scope.row.TaskState)
}}</el-tag>
<el-tag v-if="scope.row.TaskState === 1" type="info">{{
$fd("TaskState", scope.row.TaskState)
}}</el-tag>
<el-tag v-if="scope.row.TaskState === 3" type="danger">{{
$fd("TaskState", scope.row.TaskState)
}}</el-tag>
<el-tag v-if="scope.row.TaskState === 4" type="warning">{{
$fd("TaskState", scope.row.TaskState)
}}</el-tag>
<el-tag v-if="scope.row.TaskState === 5" type="danger">{{
$fd("TaskState", scope.row.TaskState)
}}</el-tag>
</template>
</el-table-column>
<!-- 角色 -->
@ -210,14 +324,6 @@
{{ scope.row.UserName }}({{ scope.row.FullName }})
</template>
</el-table-column>
<!-- 阅片标准 -->
<el-table-column
prop="TrialReadingCriterionName"
:label="$t('trials:reviewTrack:table:criterionName')"
min-width="180"
sortable="custom"
show-overflow-tooltip
/>
<!-- 建议完成时间 -->
<el-table-column
prop="SuggesteFinishedTime"
@ -235,8 +341,16 @@
show-overflow-tooltip
>
<template slot-scope="scope">
<el-tag v-if="scope.row.ReadingTaskState === 2" type="primary">{{ $fd('ReadingTaskState', scope.row.ReadingTaskState) }}</el-tag>
<el-tag v-else type="danger">{{ $fd('ReadingTaskState', scope.row.ReadingTaskState) }}</el-tag>
<el-tag
v-if="scope.row.ReadingTaskState === 2"
type="primary"
>{{
$fd("ReadingTaskState", scope.row.ReadingTaskState)
}}</el-tag
>
<el-tag v-else type="danger">{{
$fd("ReadingTaskState", scope.row.ReadingTaskState)
}}</el-tag>
</template>
</el-table-column>
<!-- 阅片完成时间 -->
@ -256,9 +370,30 @@
show-overflow-tooltip
>
<template slot-scope="scope">
<el-tag v-if="scope.row.ReReadingApplyState === 4 || scope.row.ReReadingApplyState === 5" type="danger">{{ $fd('ReReadingApplyState', scope.row.ReReadingApplyState) }}</el-tag>
<el-tag v-if="scope.row.ReReadingApplyState === 2" type="primary">{{ $fd('ReReadingApplyState', scope.row.ReReadingApplyState) }}</el-tag>
<el-tag v-if="scope.row.ReReadingApplyState === 3" type="warning">{{ $fd('ReReadingApplyState', scope.row.ReReadingApplyState) }}</el-tag>
<el-tag
v-if="
scope.row.ReReadingApplyState === 4 ||
scope.row.ReReadingApplyState === 5
"
type="danger"
>{{
$fd("ReReadingApplyState", scope.row.ReReadingApplyState)
}}</el-tag
>
<el-tag
v-if="scope.row.ReReadingApplyState === 2"
type="primary"
>{{
$fd("ReReadingApplyState", scope.row.ReReadingApplyState)
}}</el-tag
>
<el-tag
v-if="scope.row.ReReadingApplyState === 3"
type="warning"
>{{
$fd("ReReadingApplyState", scope.row.ReReadingApplyState)
}}</el-tag
>
</template>
</el-table-column>
<!-- 审核结果 -->
@ -270,23 +405,47 @@
show-overflow-tooltip
>
<template slot-scope="scope">
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{ $fd('PIAuditState', scope.row.PIAuditState) }}</el-tag>
<el-tag v-else-if="scope.row.PIAuditState === 1" type="primary">{{ $fd('PIAuditState', scope.row.PIAuditState) }}</el-tag>
<el-tag v-else-if="scope.row.PIAuditState === 2" type="warning">{{ $fd('PIAuditState', scope.row.PIAuditState) }}
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{
$fd("PIAuditState", scope.row.PIAuditState)
}}</el-tag>
<el-tag
v-else-if="scope.row.PIAuditState === 1"
type="primary"
>{{ $fd("PIAuditState", scope.row.PIAuditState) }}</el-tag
>
<el-tag
v-else-if="scope.row.PIAuditState === 2"
type="warning"
>{{ $fd("PIAuditState", scope.row.PIAuditState) }}
</el-tag>
<span v-else>{{ $fd('PIAuditState', scope.row.PIAuditState) }}</span>
<span v-else>{{
$fd("PIAuditState", scope.row.PIAuditState)
}}</span>
</template>
</el-table-column>
<el-table-column
prop="item.QuestionId"
:label="item.QuestionName"
min-width="140"
v-for="item of QuestionList"
:key="Math.random()"
v-for="(item, index) of QuestionList"
:key="'QuestionId1' + index"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ item.DictionaryCode ? $fd(item.DictionaryCode, parseInt(scope.row.PIReadingResultList.find(v => v.QuestionId === item.QuestionId).Answer)) : scope.row.PIReadingResultList.find(v => v.QuestionId === item.QuestionId).Answer}}
{{
item.DictionaryCode
? $fd(
item.DictionaryCode,
parseInt(
scope.row.PIReadingResultList.find(
(v) => v.QuestionId === item.QuestionId
).Answer
)
)
: scope.row.PIReadingResultList.find(
(v) => v.QuestionId === item.QuestionId
).Answer
}}
</template>
</el-table-column>
<!-- 是否入组 -->
@ -299,9 +458,13 @@
>
<template slot-scope="scope">
<el-tag v-if="scope.row.IsEnrollment === true" type="primary">
{{ $fd('YesOrNo', scope.row.IsEnrollment) }}
{{ $fd("YesOrNo", scope.row.IsEnrollment) }}
</el-tag>
<el-tag v-else-if="scope.row.IsEnrollment === false" type="danger">{{ $fd('YesOrNo', scope.row.IsEnrollment) }}</el-tag>
<el-tag
v-else-if="scope.row.IsEnrollment === false"
type="danger"
>{{ $fd("YesOrNo", scope.row.IsEnrollment) }}</el-tag
>
</template>
</el-table-column>
<!-- 是否PD -->
@ -314,9 +477,13 @@
>
<template slot-scope="scope">
<el-tag v-if="scope.row.IsPDConfirm === true" type="primary">
{{ $fd('YesOrNo', scope.row.IsPDConfirm) }}
{{ $fd("YesOrNo", scope.row.IsPDConfirm) }}
</el-tag>
<el-tag v-else-if="scope.row.IsPDConfirm === false" type="danger">{{ $fd('YesOrNo', scope.row.IsPDConfirm) }}</el-tag>
<el-tag
v-else-if="scope.row.IsPDConfirm === false"
type="danger"
>{{ $fd("YesOrNo", scope.row.IsPDConfirm) }}</el-tag
>
</template>
</el-table-column>
<el-table-column
@ -338,7 +505,10 @@
circle
icon="el-icon-edit-outline"
:title="$t('trials:pendingReview:button:audit')"
:disabled="scope.row.TaskState !== 0 || scope.row.UserTypeShortName === 'PI'"
:disabled="
scope.row.TaskState !== 0 ||
scope.row.UserTypeShortName === 'PI'
"
@click="handleAudit(scope.row)"
/>
<!-- 入组确认 -->
@ -347,7 +517,14 @@
circle
icon="el-icon-s-claim"
:title="$t('trials:pendingReview:button:enrollmentConfirm')"
:disabled="!(scope.row.TaskState === 0 && scope.row.PIAuditState === 2 && scope.row.IsEnrollmentConfirm && otherInfo.EnrollConfirmDefaultUserType === 8)"
:disabled="
!(
scope.row.TaskState === 0 &&
scope.row.PIAuditState === 2 &&
scope.row.IsEnrollmentConfirm &&
otherInfo.EnrollConfirmDefaultUserType === 8
)
"
@click="handleEnrollConfirm(scope.row)"
/>
<!-- PD确认 -->
@ -356,7 +533,14 @@
circle
icon="el-icon-s-claim"
:title="$t('trials:pendingReview:button:pdConfirm')"
:disabled="!(scope.row.TaskState === 0 && scope.row.PIAuditState === 2 && scope.row.PDState && otherInfo.PDProgressDefaultUserType === 8)"
:disabled="
!(
scope.row.TaskState === 0 &&
scope.row.PIAuditState === 2 &&
scope.row.PDState &&
otherInfo.PDProgressDefaultUserType === 8
)
"
@click="handlePDConfirm(scope.row)"
/>
<!-- 审核记录 -->
@ -364,14 +548,24 @@
circle
icon="el-icon-tickets"
:title="$t('trials:pendingReview:button:auditRecords')"
:disabled="scope.row.TaskState !== 0 || scope.row.PIAuditState === 0 || scope.row.UserTypeShortName === 'PI'"
:disabled="
scope.row.TaskState !== 0 ||
scope.row.PIAuditState === 0 ||
scope.row.UserTypeShortName === 'PI'
"
@click="handleAuditRecords(scope.row)"
/>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" />
<pagination
class="page"
:total="total"
:page.sync="searchData.PageIndex"
:limit.sync="searchData.PageSize"
@pagination="getList"
/>
</div>
</div>
</el-tab-pane>
@ -382,7 +576,9 @@
:visible.sync="auditVisible"
:close-on-click-modal="false"
custom-class="base-dialog-wrapper"
:title="`${$t('trials:pendingReview:button:audit')}${currentRow.SubjectCode} | ${currentRow.TaskName} | ${currentRow.UserName}`"
:title="`${$t('trials:pendingReview:button:audit')}${
currentRow.SubjectCode
} | ${currentRow.TaskName} | ${currentRow.UserName}`"
width="600px"
>
<AuditForm
@ -398,7 +594,9 @@
:visible.sync="enrollVisible"
:close-on-click-modal="false"
custom-class="base-dialog-wrapper"
:title="`${$t('trials:pendingReview:button:enrollmentConfirm')}${currentRow.SubjectCode} | ${currentRow.TaskName} | ${currentRow.UserName}`"
:title="`${$t('trials:pendingReview:button:enrollmentConfirm')}${
currentRow.SubjectCode
} | ${currentRow.TaskName} | ${currentRow.UserName}`"
width="400px"
>
<EnrollForm
@ -414,7 +612,9 @@
:visible.sync="pdVisible"
:close-on-click-modal="false"
custom-class="base-dialog-wrapper"
:title="`${$t('trials:pendingReview:button:pdConfirm')}${currentRow.SubjectCode} | ${currentRow.TaskName} | ${currentRow.UserName}`"
:title="`${$t('trials:pendingReview:button:pdConfirm')}${
currentRow.SubjectCode
} | ${currentRow.TaskName} | ${currentRow.UserName}`"
width="400px"
>
<PdForm
@ -430,7 +630,9 @@
:visible.sync="auditRecordVisible"
:close-on-click-modal="false"
custom-class="base-dialog-wrapper"
:title="`${$t('trials:pendingReview:button:auditRecords')}${currentRow.SubjectCode} | ${currentRow.TaskName} | ${currentRow.UserName}`"
:title="`${$t('trials:pendingReview:button:auditRecords')}${
currentRow.SubjectCode
} | ${currentRow.TaskName} | ${currentRow.UserName}`"
width="600px"
>
<ChatForm
@ -442,22 +644,25 @@
</BaseContainer>
</template>
<script>
import { getPIReadingAuditList } from '@/api/reading'
import { getTrialCriterionList, getDoctorUserSelectList } from '@/api/trials/reading'
import { getTrialSiteSelect } from '@/api/trials'
import { getToken } from '@/utils/auth'
import BaseContainer from '@/components/BaseContainer'
import Pagination from '@/components/Pagination'
import AuditForm from './components/AuditForm'
import EnrollForm from './components/EnrollForm'
import PdForm from './components/PdForm'
import ChatForm from './components/ChatForm'
import { getPIReadingAuditList } from "@/api/reading";
import {
getTrialCriterionList,
getDoctorUserSelectList,
} from "@/api/trials/reading";
import { getTrialSiteSelect } from "@/api/trials";
import { getToken } from "@/utils/auth";
import BaseContainer from "@/components/BaseContainer";
import Pagination from "@/components/Pagination";
import AuditForm from "./components/AuditForm";
import EnrollForm from "./components/EnrollForm";
import PdForm from "./components/PdForm";
import ChatForm from "./components/ChatForm";
const searchDataDefault = () => {
return {
PageIndex: 1,
PageSize: 20,
Asc: true,
SortField: '',
SortField: "",
TrialId: null,
SiteId: null,
SubjectId: null,
@ -468,20 +673,27 @@ const searchDataDefault = () => {
DoctorUserId: null,
ReadingTaskState: 2,
PIAuditState: null,
IsWaitPIAudit: null
}
}
IsWaitPIAudit: null,
};
};
export default {
name: 'PendingReview',
components: { BaseContainer, Pagination, AuditForm, EnrollForm, PdForm, ChatForm },
name: "PendingReview",
components: {
BaseContainer,
Pagination,
AuditForm,
EnrollForm,
PdForm,
ChatForm,
},
data() {
return {
searchData: searchDataDefault(),
list: [],
total: 0,
loading: false,
userListLoading: '',
trialId: '',
userListLoading: "",
trialId: "",
trialCriterionList: [],
siteOptions: [],
DoctorUserList: [],
@ -492,116 +704,123 @@ export default {
auditRecordVisible: false,
otherInfo: {},
openWindow: null,
TrialReadingCriterionId: '0'
}
TrialReadingCriterionId: "0",
};
},
watch: {
TrialReadingCriterionId(v) {
if (v) {
this.getList()
}
this.getList();
}
},
},
mounted() {
this.trialId = this.$route.query.trialId
this.getTrialCriterionList()
this.trialId = this.$route.query.trialId;
this.getTrialCriterionList();
// this.getList()
this.getSite()
this.getDoctorUserSelectList()
this.getSite();
this.getDoctorUserSelectList();
},
methods: {
getList() {
this.loading = true
this.searchData.TrialId = this.trialId
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId
getPIReadingAuditList(this.searchData).then(res => {
this.loading = false
this.QuestionList = res.OtherInfo.OtherObj
this.loading = true;
this.searchData.TrialId = this.trialId;
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId;
getPIReadingAuditList(this.searchData)
.then((res) => {
this.loading = false;
this.QuestionList = res.OtherInfo.OtherObj;
this.$nextTick(() => {
setTimeout(() => {
this.list = res.Result.CurrentPageData
}, 100)
this.total = res.Result.TotalCount
this.otherInfo = res.OtherInfo
this.$refs.myTable.doLayout()
this.list = res.Result.CurrentPageData;
}, 100);
this.total = res.Result.TotalCount;
this.otherInfo = res.OtherInfo;
this.$refs.myTable.doLayout();
});
})
}).catch(() => { this.loading = false })
.catch(() => {
this.loading = false;
});
},
//
handleAudit(row) {
this.handleView(row)
this.currentRow = { ...row }
this.auditVisible = true
this.handleView(row);
this.currentRow = { ...row };
this.auditVisible = true;
},
//
handleEnrollConfirm(row) {
this.handleView(row)
this.currentRow = { ...row }
this.enrollVisible = true
this.handleView(row);
this.currentRow = { ...row };
this.enrollVisible = true;
},
// PD
handlePDConfirm(row) {
this.handleView(row)
this.currentRow = { ...row }
this.pdVisible = true
this.handleView(row);
this.currentRow = { ...row };
this.pdVisible = true;
},
handleAuditRecords(row) {
this.currentRow = { ...row }
this.auditRecordVisible = true
this.currentRow = { ...row };
this.auditRecordVisible = true;
},
viewReaingResult() {
if (!this.currentRow) return
this.handleView(this.currentRow)
if (!this.currentRow) return;
this.handleView(this.currentRow);
},
//
handleView(row) {
if (this.openWindow) {
this.openWindow.close()
this.openWindow.close();
}
var token = getToken()
var path
var token = getToken();
var path;
if (row.ReadingTool === 0) {
path = `/readingDicoms?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`
path = `/readingDicoms?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`;
} else {
path = `/noneDicomReading?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`
path = `/noneDicomReading?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`;
}
this.openWindow = window.open(path, '_blank')
this.openWindow = window.open(path, "_blank");
},
getTrialCriterionList() {
getTrialCriterionList(this.trialId).then(res => {
this.trialCriterionList = res.Result
this.TrialReadingCriterionId = this.trialCriterionList[0].TrialReadingCriterionId
}).catch(() => {})
getTrialCriterionList(this.trialId)
.then((res) => {
this.trialCriterionList = res.Result;
this.TrialReadingCriterionId =
this.trialCriterionList[0].TrialReadingCriterionId;
})
.catch(() => {});
},
getDoctorUserSelectList() {
getDoctorUserSelectList(this.$route.query.trialId).then(res => {
this.DoctorUserList = res.Result
})
getDoctorUserSelectList(this.$route.query.trialId).then((res) => {
this.DoctorUserList = res.Result;
});
},
getSite() {
getTrialSiteSelect(this.trialId).then(res => {
this.siteOptions = res.Result
})
getTrialSiteSelect(this.trialId).then((res) => {
this.siteOptions = res.Result;
});
},
handleSearch() {
this.searchData.PageIndex = 1
this.getList()
this.searchData.PageIndex = 1;
this.getList();
},
handleReset() {
this.searchData = searchDataDefault()
this.getList()
this.searchData = searchDataDefault();
this.getList();
},
//
handleSortChange(column) {
if (column.order === 'ascending') {
this.searchData.Asc = true
if (column.order === "ascending") {
this.searchData.Asc = true;
} else {
this.searchData.Asc = false
}
this.searchData.SortField = column.prop
this.searchData.PageIndex = 1
this.getList()
}
}
this.searchData.Asc = false;
}
this.searchData.SortField = column.prop;
this.searchData.PageIndex = 1;
this.getList();
},
},
};
</script>

View File

@ -224,10 +224,17 @@
:label="$t('common:action:action')"
width="250"
fixed="right"
v-if="
hasPermi(['trials:readTask:view']) ||
hasPermi(['trials:readTask:reread']) ||
hasPermi(['trials:readTask:report']) ||
hasPermi(['trials:readTask:auditRecord'])
"
>
<template slot-scope="scope">
<!-- 查看 -->
<el-button
v-hasPermi="['trials:readTask:view']"
circle
:title="$t('trials:readTask:button:view')"
icon="el-icon-view"
@ -235,6 +242,7 @@
/>
<!-- 重阅 -->
<el-button
v-hasPermi="['trials:readTask:reread']"
circle
:title="$t('trials:readTask:button:reread')"
icon="el-icon-collection"
@ -242,11 +250,20 @@
/>
<!-- 下载报告 -->
<el-button
v-hasPermi="['trials:readTask:report']"
circle
:title="$t('trials:reading:button:uploadReport')"
icon="el-icon-collection"
@click="handleReadImage(scope.row)"
/>
<!-- 审核记录 -->
<el-button
v-hasPermi="['trials:readTask:auditRecord']"
circle
:title="$t('trials:auditRecord:table:auditRecords')"
icon="el-icon-collection"
@click="handleReadImage(scope.row)"
/>
</template>
</el-table-column>
</el-table>

View File

@ -8,6 +8,7 @@
width="500px"
custom-class="base-dialog-wrapper"
append-to-body
:before-close="handleCancel"
>
<el-form
ref="editVisitForm"