待阅列表添加标注tab;修改检查页面添加排序;修改项目状态签名bug修复
parent
c2f5c2238f
commit
6a6048ee31
|
@ -67,7 +67,7 @@
|
|||
<span style="font-size:18px;">{{ $t('common:dialogTitle:sign') }}</span>
|
||||
<span style="font-size:12px;margin-left:5px">{{ `(${$t('common:label:sign')}${ currentUser })` }}</span>
|
||||
</div>
|
||||
<SignForm ref="signForm" :trial-id="trialId" :sign-code-enum="signCode" @close="closeSignDialog" />
|
||||
<SignForm ref="signForm" :trial-id="trialId" :sign-code-enum="signCode" @closeDialog="closeSignDialog" />
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -33,6 +33,8 @@
|
|||
:data="topList"
|
||||
stripe
|
||||
height="30vh"
|
||||
@sort-change="handleSortByColumn"
|
||||
:default-sort="{ prop: 'StudyTime', order: 'ascending' }"
|
||||
>
|
||||
<!-- <el-table-column type="selection" align="center" width="45" /> -->
|
||||
<!--患者编号-->
|
||||
|
@ -41,6 +43,7 @@
|
|||
prop="PatientIdStr"
|
||||
:label="$t('trials:uploadDicomList:table:pId')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
></el-table-column>
|
||||
<!--检查类型-->
|
||||
<el-table-column
|
||||
|
@ -48,6 +51,7 @@
|
|||
prop="Modalities"
|
||||
:label="$t('trials:audit:table:modality')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
></el-table-column>
|
||||
<!--序列数量-->
|
||||
<el-table-column
|
||||
|
@ -55,6 +59,7 @@
|
|||
prop="SeriesCount"
|
||||
:label="$t('trials:audit:table:seriesCount')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
></el-table-column>
|
||||
<!--图像数量-->
|
||||
<el-table-column
|
||||
|
@ -62,6 +67,7 @@
|
|||
prop="InstanceCount"
|
||||
:label="$t('trials:audit:table:instanceCount')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
></el-table-column>
|
||||
<!--检查日期-->
|
||||
<el-table-column
|
||||
|
@ -69,6 +75,7 @@
|
|||
prop="StudyTime"
|
||||
:label="$t('trials:audit:table:studyDate')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
></el-table-column>
|
||||
<!--所属访视-->
|
||||
<el-table-column
|
||||
|
@ -76,6 +83,7 @@
|
|||
prop="VisitName"
|
||||
:label="$t('trials:hirVisit:table:ownershipVisit')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
></el-table-column>
|
||||
<!--操作-->
|
||||
<el-table-column
|
||||
|
|
|
@ -0,0 +1,338 @@
|
|||
<template>
|
||||
<BaseContainer
|
||||
v-loading="loading"
|
||||
style="background-color: #fff"
|
||||
>
|
||||
<div slot="search-container">
|
||||
<el-form :inline="true">
|
||||
<!-- 受试者编号 -->
|
||||
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
|
||||
<el-input v-model="searchData.SubjectCode" style="width: 100px" />
|
||||
</el-form-item>
|
||||
<!-- 患者编号 -->
|
||||
<el-form-item :label="$t('trials:uploadDicomList:table:pId')">
|
||||
<el-input v-model="searchData.PatientIdStr" style="width: 140px" />
|
||||
</el-form-item>
|
||||
<!-- 患者姓名 -->
|
||||
<el-form-item :label="$t('trials:uploadDicomList:table:patientName')">
|
||||
<el-input v-model="searchData.PatientName" style="width: 140px" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<!-- 查询 -->
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||
{{ $t("common:button:search") }}
|
||||
</el-button>
|
||||
<!-- 重置 -->
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-refresh-left"
|
||||
@click="handleReset"
|
||||
>
|
||||
{{ $t("common:button:reset") }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div slot="main-container">
|
||||
<el-table
|
||||
v-adaptive="{ bottomOffset: 75 }"
|
||||
:data="list"
|
||||
stripe
|
||||
height="100"
|
||||
@sort-change="handleSortChange"
|
||||
>
|
||||
<el-table-column type="index" width="40" align="left" />
|
||||
<!-- 受试者编号 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
min-width="100"
|
||||
:label="$t('trials:reviewTrack:table:subjectCode')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<!-- 患者编号 -->
|
||||
<el-table-column
|
||||
prop="PatientIdStr"
|
||||
min-width="100"
|
||||
:label="$t('trials:uploadDicomList:table:pId')"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
v-for="(item, index) in scope.row.PatientList"
|
||||
:key="`${index}${item.PatientId}`"
|
||||
>
|
||||
{{
|
||||
index === scope.row.PatientList.length - 1
|
||||
? item.PatientIdStr
|
||||
: `${item.PatientIdStr}, `
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 患者姓名 -->
|
||||
<el-table-column
|
||||
prop="SubjectShortName"
|
||||
min-width="100"
|
||||
:label="$t('trials:uploadDicomList:table:patientName')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<!-- 剩余阅片量 -->
|
||||
<el-table-column
|
||||
prop="UnReadCanReadTaskCount"
|
||||
min-width="100"
|
||||
:label="$t('trials:pendingReadingTasks:table:remainingReadingVolume')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<!-- 建议完成时间 -->
|
||||
<el-table-column
|
||||
prop="SuggesteFinishedTime"
|
||||
min-width="100"
|
||||
:label="
|
||||
$t('trials:pendingReadingTasks:table:suggestedCompletionTime')
|
||||
"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.SuggesteFinishedTime
|
||||
? scope.row.SuggesteFinishedTime.split(":")[0] + ":00:00"
|
||||
: ""
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!--操作-->
|
||||
<el-table-column
|
||||
:label="$t('common:action:action')"
|
||||
width="250"
|
||||
fixed="right"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<!-- 阅片 -->
|
||||
<el-button
|
||||
:disabled="
|
||||
scope.row.ExistReadingApply ||
|
||||
(scope.row.ClaimUserId && scope.row.ClaimUserId !== userId)
|
||||
"
|
||||
circle
|
||||
:title="
|
||||
scope.row.ExistReadingApply
|
||||
? $t('trials:pendingReadingTasks:button:ExistReadingApply')
|
||||
: $t('trials:pendingReadingTasks:button:review')
|
||||
"
|
||||
icon="el-icon-edit-outline"
|
||||
@click="handleReadImage(scope.row)"
|
||||
/>
|
||||
<!-- 释放 -->
|
||||
<el-button
|
||||
:disabled="
|
||||
!scope.row.ClaimUserId ||
|
||||
(scope.row.ClaimUserId && scope.row.ClaimUserId !== userId)
|
||||
"
|
||||
circle
|
||||
:title="$t('trials:pendingReadingTasks:button:release')"
|
||||
icon="el-icon-s-release"
|
||||
@click="handleReleaseTasks(scope.row)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
class="page"
|
||||
:total="total"
|
||||
:page.sync="searchData.PageIndex"
|
||||
:limit.sync="searchData.PageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
</BaseContainer>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
getIRUnReadSubjectTaskList,
|
||||
verifyReadingRestTime,
|
||||
} from "@/api/trials";
|
||||
import { getTrialCriterionList } from "@/api/trials/reading";
|
||||
import { claimOrCancelSubject } from "@/api/reading";
|
||||
import BaseContainer from "@/components/BaseContainer";
|
||||
import Pagination from "@/components/Pagination";
|
||||
import { getToken } from "@/utils/auth";
|
||||
const searchDataDefault = () => {
|
||||
return {
|
||||
SubjectCode: "",
|
||||
PatientIdStr: null,
|
||||
PatientName: null,
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
};
|
||||
};
|
||||
export default {
|
||||
name: "ReadingTaskList",
|
||||
props: {
|
||||
trialCriterionInfo: {
|
||||
type: Object,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
components: { BaseContainer, Pagination },
|
||||
data() {
|
||||
return {
|
||||
searchData: searchDataDefault(),
|
||||
list: [],
|
||||
total: 0,
|
||||
loading: false,
|
||||
trialId: "",
|
||||
isReadingTaskViewInOrder: null,
|
||||
randomReadInfo: {},
|
||||
isRender: false,
|
||||
isTableShow: true,
|
||||
readingTool: null,
|
||||
criterionType: null,
|
||||
openWindow: null,
|
||||
userId: zzSessionStorage.getItem("userId"),
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
window.addEventListener("message", this.receiveMsg);
|
||||
this.trialId = this.$route.query.trialId;
|
||||
this.getList()
|
||||
},
|
||||
beforeDestroy() {
|
||||
window.removeEventListener("message", this.receiveMsg);
|
||||
if (this.openWindow) {
|
||||
this.openWindow.close();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
this.loading = true;
|
||||
this.searchData.TrialId = this.trialId;
|
||||
this.searchData.TrialReadingCriterionId = this.trialCriterionInfo.TrialReadingCriterionId;
|
||||
this.isRender = false;
|
||||
getIRUnReadSubjectTaskList(this.searchData)
|
||||
.then((res) => {
|
||||
this.isReadingTaskViewInOrder =
|
||||
res.OtherInfo.IsReadingTaskViewInOrder;
|
||||
this.readingTool = res.OtherInfo.ReadingTool;
|
||||
this.criterionType = res.OtherInfo.CriterionType;
|
||||
if (res.OtherInfo.IsReadingTaskViewInOrder) {
|
||||
this.list = res.Result.CurrentPageData;
|
||||
this.total = res.Result.TotalCount;
|
||||
} else {
|
||||
this.randomReadInfo = res.OtherInfo.RandomReadInfo;
|
||||
}
|
||||
this.isRender = true;
|
||||
this.loading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
this.isRender = true;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 释放
|
||||
handleReleaseTasks(row) {
|
||||
this.loading = true;
|
||||
var params = {
|
||||
isInOrder: true,
|
||||
subejctId: row.SubjectId,
|
||||
isClaim: false,
|
||||
trialReadingCriterionId: this.trialCriterionInfo.TrialReadingCriterionId
|
||||
};
|
||||
claimOrCancelSubject(params)
|
||||
.then((res) => {
|
||||
// '释放成功!'
|
||||
this.$message.success(
|
||||
this.$t("trials:pendingReadingTasks:message:released")
|
||||
);
|
||||
this.loading = false;
|
||||
this.getList();
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
handleSearch() {
|
||||
this.searchData.PageIndex = 1;
|
||||
this.getList();
|
||||
},
|
||||
handleReset() {
|
||||
this.searchData = searchDataDefault();
|
||||
this.getList();
|
||||
},
|
||||
handleReadImage(row) {
|
||||
if (this.openWindow) {
|
||||
this.openWindow.close();
|
||||
}
|
||||
this.loading = true;
|
||||
verifyReadingRestTime()
|
||||
.then((_) => {
|
||||
this.loading = false;
|
||||
|
||||
window.localStorage.setItem(
|
||||
"TrialReadingCriterionId",
|
||||
this.trialCriterionInfo.TrialReadingCriterionId
|
||||
);
|
||||
var token = getToken();
|
||||
var path = "";
|
||||
var criterionName = this.trialCriterionInfo.TrialReadingCriterionName;
|
||||
if (this.readingTool === 0) {
|
||||
path = `/readingDicoms?TrialReadingCriterionId=${this.trialCriterionInfo.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&isReadingTaskViewInOrder=${this.isReadingTaskViewInOrder}&criterionType=${this.criterionType}&criterionName=${criterionName}&readingTool=${this.readingTool}&TokenKey=${token}`;
|
||||
} else {
|
||||
path = `/noneDicomReading?TrialReadingCriterionId=${this.trialCriterionInfo.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&isReadingTaskViewInOrder=${this.isReadingTaskViewInOrder}&criterionType=${this.criterionType}&criterionName=${criterionName}&readingTool=${this.readingTool}&TokenKey=${token}`;
|
||||
}
|
||||
var routeData = this.$router.resolve({ path });
|
||||
|
||||
this.openWindow = window.open(routeData.href, "_blank");
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
handleOutOfOrderReading() {
|
||||
if (this.openWindow) {
|
||||
this.openWindow.close();
|
||||
}
|
||||
this.loading = true;
|
||||
verifyReadingRestTime()
|
||||
.then((_) => {
|
||||
this.loading = false;
|
||||
window.localStorage.setItem(
|
||||
"TrialReadingCriterionId",
|
||||
this.TrialReadingCriterionId
|
||||
);
|
||||
var token = getToken();
|
||||
var path = "";
|
||||
if (this.readingTool === 0) {
|
||||
path = `/readingDicoms?TrialReadingCriterionId=${this.TrialReadingCriterionId}&trialId=${this.trialId}&isReadingTaskViewInOrder=${this.isReadingTaskViewInOrder}&criterionType=${this.criterionType}&readingTool=${this.readingTool}&TokenKey=${token}`;
|
||||
} else {
|
||||
path = `/noneDicomReading?TrialReadingCriterionId=${this.TrialReadingCriterionId}&trialId=${this.trialId}&isReadingTaskViewInOrder=${this.isReadingTaskViewInOrder}&criterionType=${this.criterionType}&readingTool=${this.readingTool}&TokenKey=${token}`;
|
||||
}
|
||||
var routeData = this.$router.resolve({ path });
|
||||
this.openWindow = window.open(routeData.href, "_blank");
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
receiveMsg(event) {
|
||||
if (event.data === "refreshTaskList") {
|
||||
this.getList();
|
||||
}
|
||||
},
|
||||
// 排序
|
||||
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>
|
|
@ -1,352 +1,57 @@
|
|||
<template>
|
||||
<BaseContainer
|
||||
v-loading="loading"
|
||||
style="height: 100%; background-color: #fff"
|
||||
>
|
||||
<div slot="search-container">
|
||||
<el-form :inline="true">
|
||||
<!-- 受试者编号 -->
|
||||
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
|
||||
<el-input v-model="searchData.SubjectCode" style="width: 100px" />
|
||||
</el-form-item>
|
||||
<!-- 患者编号 -->
|
||||
<el-form-item :label="$t('trials:uploadDicomList:table:pId')">
|
||||
<el-input v-model="searchData.PatientIdStr" style="width: 140px" />
|
||||
</el-form-item>
|
||||
<!-- 患者姓名 -->
|
||||
<el-form-item :label="$t('trials:uploadDicomList:table:patientName')">
|
||||
<el-input v-model="searchData.PatientName" style="width: 140px" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<!-- 查询 -->
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||
{{ $t("common:button:search") }}
|
||||
</el-button>
|
||||
<!-- 重置 -->
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-refresh-left"
|
||||
@click="handleReset"
|
||||
>
|
||||
{{ $t("common:button:reset") }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div slot="main-container">
|
||||
<el-table
|
||||
v-adaptive="{ bottomOffset: 75 }"
|
||||
:data="list"
|
||||
stripe
|
||||
height="100"
|
||||
@sort-change="handleSortChange"
|
||||
<div>
|
||||
<el-tabs v-model="activeName" type="border-card">
|
||||
<!-- <el-tab-pane :label="$t('trials:study:tabpane:notBind')" name="notBind">
|
||||
<notBindStudyList
|
||||
activeName="notBind"
|
||||
v-if="activeName === 'notBind'"
|
||||
/>
|
||||
</el-tab-pane> -->
|
||||
<el-tab-pane
|
||||
v-for="i in trialCriterionList"
|
||||
:key="i.TrialReadingCriterionId"
|
||||
:label="i.TrialReadingCriterionName"
|
||||
:name="i.TrialReadingCriterionId"
|
||||
>
|
||||
<el-table-column type="index" width="40" align="left" />
|
||||
<!-- 受试者编号 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
min-width="100"
|
||||
:label="$t('trials:reviewTrack:table:subjectCode')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
<TaskList
|
||||
v-if="activeName === i.TrialReadingCriterionId"
|
||||
:trial-criterion-info="i"
|
||||
/>
|
||||
<!-- 患者编号 -->
|
||||
<el-table-column
|
||||
prop="PatientIdStr"
|
||||
min-width="100"
|
||||
:label="$t('trials:uploadDicomList:table:pId')"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
v-for="(item, index) in scope.row.PatientList"
|
||||
:key="`${index}${item.PatientId}`"
|
||||
>
|
||||
{{
|
||||
index === scope.row.PatientList.length - 1
|
||||
? item.PatientIdStr
|
||||
: `${item.PatientIdStr}, `
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 患者姓名 -->
|
||||
<el-table-column
|
||||
prop="SubjectShortName"
|
||||
min-width="100"
|
||||
:label="$t('trials:uploadDicomList:table:patientName')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<!-- 剩余阅片量 -->
|
||||
<el-table-column
|
||||
prop="UnReadCanReadTaskCount"
|
||||
min-width="100"
|
||||
:label="$t('trials:pendingReadingTasks:table:remainingReadingVolume')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<!-- 建议完成时间 -->
|
||||
<el-table-column
|
||||
prop="SuggesteFinishedTime"
|
||||
min-width="100"
|
||||
:label="
|
||||
$t('trials:pendingReadingTasks:table:suggestedCompletionTime')
|
||||
"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.SuggesteFinishedTime
|
||||
? scope.row.SuggesteFinishedTime.split(":")[0] + ":00:00"
|
||||
: ""
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!--操作-->
|
||||
<el-table-column
|
||||
:label="$t('common:action:action')"
|
||||
width="250"
|
||||
fixed="right"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<!-- 阅片 -->
|
||||
<el-button
|
||||
:disabled="
|
||||
scope.row.ExistReadingApply ||
|
||||
(scope.row.ClaimUserId && scope.row.ClaimUserId !== userId)
|
||||
"
|
||||
circle
|
||||
:title="
|
||||
scope.row.ExistReadingApply
|
||||
? $t('trials:pendingReadingTasks:button:ExistReadingApply')
|
||||
: $t('trials:pendingReadingTasks:button:review')
|
||||
"
|
||||
icon="el-icon-edit-outline"
|
||||
@click="handleReadImage(scope.row)"
|
||||
/>
|
||||
<!-- 释放 -->
|
||||
<el-button
|
||||
:disabled="
|
||||
!scope.row.ClaimUserId ||
|
||||
(scope.row.ClaimUserId && scope.row.ClaimUserId !== userId)
|
||||
"
|
||||
circle
|
||||
:title="$t('trials:pendingReadingTasks:button:release')"
|
||||
icon="el-icon-s-release"
|
||||
@click="handleReleaseTasks(scope.row)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
class="page"
|
||||
:total="total"
|
||||
:page.sync="searchData.PageIndex"
|
||||
:limit.sync="searchData.PageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
</BaseContainer>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
getIRUnReadSubjectTaskList,
|
||||
verifyReadingRestTime,
|
||||
} from "@/api/trials";
|
||||
import { getTrialCriterionList } from "@/api/trials/reading";
|
||||
import { claimOrCancelSubject } from "@/api/reading";
|
||||
import BaseContainer from "@/components/BaseContainer";
|
||||
import Pagination from "@/components/Pagination";
|
||||
import { getToken } from "@/utils/auth";
|
||||
const searchDataDefault = () => {
|
||||
return {
|
||||
SubjectCode: "",
|
||||
PatientIdStr: null,
|
||||
PatientName: null,
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
};
|
||||
};
|
||||
import { getTrialCriterionList } from '@/api/trials/reading'
|
||||
import TaskList from './components/TaskList'
|
||||
export default {
|
||||
name: "ReadingTaskList",
|
||||
components: { BaseContainer, Pagination },
|
||||
name: 'ReadingTask',
|
||||
components: {
|
||||
TaskList
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
searchData: searchDataDefault(),
|
||||
list: [],
|
||||
total: 0,
|
||||
loading: false,
|
||||
trialId: "",
|
||||
isReadingTaskViewInOrder: null,
|
||||
randomReadInfo: {},
|
||||
isRender: false,
|
||||
trialCriterionList: [],
|
||||
TrialReadingCriterionId: "",
|
||||
isTableShow: true,
|
||||
readingTool: null,
|
||||
criterionType: null,
|
||||
openWindow: null,
|
||||
userId: zzSessionStorage.getItem("userId"),
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
TrialReadingCriterionId(v) {
|
||||
if (!v) return;
|
||||
this.getList();
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
window.addEventListener("message", this.receiveMsg);
|
||||
this.trialId = this.$route.query.trialId;
|
||||
// this.getList()
|
||||
this.getTrialCriterionList();
|
||||
},
|
||||
beforeDestroy() {
|
||||
window.removeEventListener("message", this.receiveMsg);
|
||||
if (this.openWindow) {
|
||||
this.openWindow.close();
|
||||
activeName: '',
|
||||
trialId: '',
|
||||
trialCriterionList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getTrialCriterionList() {
|
||||
getTrialCriterionList(this.trialId)
|
||||
.then((res) => {
|
||||
this.trialCriterionList = res.Result;
|
||||
this.TrialReadingCriterionId =
|
||||
this.trialCriterionList[0].TrialReadingCriterionId;
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
getList() {
|
||||
this.loading = true;
|
||||
this.searchData.TrialId = this.trialId;
|
||||
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId;
|
||||
this.isRender = false;
|
||||
getIRUnReadSubjectTaskList(this.searchData)
|
||||
.then((res) => {
|
||||
this.isReadingTaskViewInOrder =
|
||||
res.OtherInfo.IsReadingTaskViewInOrder;
|
||||
this.readingTool = res.OtherInfo.ReadingTool;
|
||||
this.criterionType = res.OtherInfo.CriterionType;
|
||||
if (res.OtherInfo.IsReadingTaskViewInOrder) {
|
||||
this.list = res.Result.CurrentPageData;
|
||||
this.total = res.Result.TotalCount;
|
||||
} else {
|
||||
this.randomReadInfo = res.OtherInfo.RandomReadInfo;
|
||||
}
|
||||
this.isRender = true;
|
||||
this.loading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
this.isRender = true;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 释放
|
||||
handleReleaseTasks(row) {
|
||||
this.loading = true;
|
||||
var params = {
|
||||
isInOrder: true,
|
||||
subejctId: row.SubjectId,
|
||||
isClaim: false,
|
||||
trialReadingCriterionId: this.TrialReadingCriterionId,
|
||||
};
|
||||
claimOrCancelSubject(params)
|
||||
.then((res) => {
|
||||
// '释放成功!'
|
||||
this.$message.success(
|
||||
this.$t("trials:pendingReadingTasks:message:released")
|
||||
);
|
||||
this.loading = false;
|
||||
this.getList();
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
handleSearch() {
|
||||
this.searchData.PageIndex = 1;
|
||||
this.getList();
|
||||
},
|
||||
handleReset() {
|
||||
this.searchData = searchDataDefault();
|
||||
this.getList();
|
||||
},
|
||||
handleReadImage(row) {
|
||||
if (this.openWindow) {
|
||||
this.openWindow.close();
|
||||
}
|
||||
this.loading = true;
|
||||
verifyReadingRestTime()
|
||||
.then((_) => {
|
||||
this.loading = false;
|
||||
|
||||
window.localStorage.setItem(
|
||||
"TrialReadingCriterionId",
|
||||
this.TrialReadingCriterionId
|
||||
);
|
||||
var token = getToken();
|
||||
var path = "";
|
||||
var criterionName = this.trialCriterionList.find(
|
||||
(i) => i.TrialReadingCriterionId === this.TrialReadingCriterionId
|
||||
).TrialReadingCriterionName;
|
||||
if (this.readingTool === 0) {
|
||||
path = `/readingDicoms?TrialReadingCriterionId=${this.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&isReadingTaskViewInOrder=${this.isReadingTaskViewInOrder}&criterionType=${this.criterionType}&criterionName=${criterionName}&readingTool=${this.readingTool}&TokenKey=${token}`;
|
||||
} else {
|
||||
path = `/noneDicomReading?TrialReadingCriterionId=${this.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&isReadingTaskViewInOrder=${this.isReadingTaskViewInOrder}&criterionType=${this.criterionType}&criterionName=${criterionName}&readingTool=${this.readingTool}&TokenKey=${token}`;
|
||||
}
|
||||
var routeData = this.$router.resolve({ path });
|
||||
|
||||
this.openWindow = window.open(routeData.href, "_blank");
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
handleOutOfOrderReading() {
|
||||
if (this.openWindow) {
|
||||
this.openWindow.close();
|
||||
}
|
||||
this.loading = true;
|
||||
verifyReadingRestTime()
|
||||
.then((_) => {
|
||||
this.loading = false;
|
||||
window.localStorage.setItem(
|
||||
"TrialReadingCriterionId",
|
||||
this.TrialReadingCriterionId
|
||||
);
|
||||
var token = getToken();
|
||||
var path = "";
|
||||
if (this.readingTool === 0) {
|
||||
path = `/readingDicoms?TrialReadingCriterionId=${this.TrialReadingCriterionId}&trialId=${this.trialId}&isReadingTaskViewInOrder=${this.isReadingTaskViewInOrder}&criterionType=${this.criterionType}&readingTool=${this.readingTool}&TokenKey=${token}`;
|
||||
} else {
|
||||
path = `/noneDicomReading?TrialReadingCriterionId=${this.TrialReadingCriterionId}&trialId=${this.trialId}&isReadingTaskViewInOrder=${this.isReadingTaskViewInOrder}&criterionType=${this.criterionType}&readingTool=${this.readingTool}&TokenKey=${token}`;
|
||||
}
|
||||
var routeData = this.$router.resolve({ path });
|
||||
this.openWindow = window.open(routeData.href, "_blank");
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
receiveMsg(event) {
|
||||
if (event.data === "refreshTaskList") {
|
||||
this.getList();
|
||||
}
|
||||
},
|
||||
// 排序
|
||||
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();
|
||||
},
|
||||
mounted() {
|
||||
this.trialId = this.$route.query.trialId
|
||||
this.getTrialCriterionList()
|
||||
},
|
||||
};
|
||||
methods: {
|
||||
async getTrialCriterionList() {
|
||||
try {
|
||||
const res = await getTrialCriterionList(this.trialId)
|
||||
if (res.IsSuccess) {
|
||||
this.trialCriterionList = res.Result
|
||||
this.activeName = this.trialCriterionList.length > 0 ? this.trialCriterionList[0].TrialReadingCriterionId : ''
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
Loading…
Reference in New Issue