项目->检查列表接口对接调试
parent
94f8461dfb
commit
aaf9b99301
|
@ -0,0 +1,20 @@
|
|||
// 项目管理->详情->检查
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 检查列表->未提交
|
||||
export function getPatientStudyBeforeConfirmList(data) {
|
||||
return request({
|
||||
url: '/Patient/getPatientStudyBeforeConfirmList',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 检查列表->已提交
|
||||
export function getTrialPatientStudyList(data) {
|
||||
return request({
|
||||
url: '/Patient/getTrialPatientStudyList',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
// eslint-disable-next-line no-undef
|
||||
module.exports = {
|
||||
|
||||
title: 'IRCIS',
|
||||
title: 'HIRIS',
|
||||
|
||||
/**
|
||||
* @type {boolean} true | false
|
||||
|
|
|
@ -103,11 +103,11 @@ export default {
|
|||
components: { Pagination, trialsSelect, confirmTrialsList },
|
||||
props: {
|
||||
visible: {
|
||||
require: true,
|
||||
required: true,
|
||||
default: false,
|
||||
},
|
||||
Patient: {
|
||||
require: true,
|
||||
required: true,
|
||||
default: () => {
|
||||
return {};
|
||||
},
|
||||
|
|
|
@ -157,12 +157,23 @@ import {
|
|||
addSubjectPatientStudyBinding,
|
||||
submitVisitStudyBinding,
|
||||
} from "@/api/inspection.js";
|
||||
|
||||
const defaultSearchData = () => {
|
||||
return {
|
||||
EarliestStudyTime: null,
|
||||
LatestStudyTime: null,
|
||||
Asc: false,
|
||||
SortField: "StudyTime",
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
};
|
||||
};
|
||||
export default {
|
||||
name: "confirmVisitList",
|
||||
components: { Pagination },
|
||||
props: {
|
||||
Patient: {
|
||||
require: true,
|
||||
required: true,
|
||||
default: () => {
|
||||
return {};
|
||||
},
|
||||
|
@ -182,14 +193,7 @@ export default {
|
|||
return {
|
||||
// 查询
|
||||
dateValue: [],
|
||||
searchData: {
|
||||
EarliestStudyTime: null,
|
||||
LatestStudyTime: null,
|
||||
Asc: false,
|
||||
SortField: "StudyTime",
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
},
|
||||
searchData: defaultSearchData(),
|
||||
// 访视列表
|
||||
total: 0,
|
||||
loading: false,
|
||||
|
@ -289,6 +293,7 @@ export default {
|
|||
},
|
||||
// 查询
|
||||
handleSearch() {
|
||||
this.searchData.PageIndex = 1;
|
||||
this.getList();
|
||||
},
|
||||
// 重置
|
||||
|
@ -298,13 +303,7 @@ export default {
|
|||
},
|
||||
// 初始化
|
||||
reset(flag = false) {
|
||||
Object.keys(this.searchData).forEach((key) => {
|
||||
this.searchData[key] = null;
|
||||
});
|
||||
this.searchData.PageIndex = 1;
|
||||
this.searchData.PageSize = 20;
|
||||
this.searchData.Asc = false;
|
||||
this.searchData.SortField = "StudyTime";
|
||||
this.searchData = defaultSearchData();
|
||||
this.dateValue = [];
|
||||
this.$refs.confirmVisitList.clearSort();
|
||||
if (flag) this.list = [];
|
||||
|
@ -352,6 +351,16 @@ export default {
|
|||
},
|
||||
// 确认提交
|
||||
async confirmSubmit() {
|
||||
let confirm = await this.$confirm(
|
||||
this.$t("trials:adjustRecord:message:confirm"),
|
||||
{
|
||||
type: "warning",
|
||||
distinguishCancelAndClose: true,
|
||||
confirmButtonText: this.$t("common:button:confirm"),
|
||||
cancelButtonText: this.$t("recompose:button:cancel"),
|
||||
}
|
||||
);
|
||||
if (confirm !== "confirm") return;
|
||||
let fd = await this.formatData();
|
||||
if (!fd) return;
|
||||
let data = {
|
||||
|
|
|
@ -110,11 +110,11 @@ export default {
|
|||
components: { Pagination },
|
||||
props: {
|
||||
visible: {
|
||||
require: true,
|
||||
required: true,
|
||||
default: false,
|
||||
},
|
||||
Patient: {
|
||||
require: true,
|
||||
required: true,
|
||||
default: () => {
|
||||
return {};
|
||||
},
|
||||
|
@ -167,7 +167,7 @@ export default {
|
|||
researchProgramNo: item.ResearchProgramNo,
|
||||
};
|
||||
this.$router.push({
|
||||
path: "/trials/trials-panel/subject/subject-list",
|
||||
path: "/trials/trials-panel/study",
|
||||
query,
|
||||
});
|
||||
},
|
||||
|
|
|
@ -163,15 +163,15 @@ export default {
|
|||
name: "trialsSelect",
|
||||
props: {
|
||||
options: {
|
||||
require: true,
|
||||
required: true,
|
||||
default: () => [],
|
||||
},
|
||||
data: {
|
||||
require: true,
|
||||
required: true,
|
||||
default: () => {},
|
||||
},
|
||||
status: {
|
||||
require: true,
|
||||
required: true,
|
||||
default: "trial",
|
||||
},
|
||||
},
|
||||
|
|
|
@ -130,16 +130,27 @@
|
|||
import Pagination from "@/components/Pagination";
|
||||
import { getPatientStudyList } from "@/api/inspection.js";
|
||||
import { getToken } from "@/utils/auth";
|
||||
|
||||
const defaultSearchData = () => {
|
||||
return {
|
||||
Modalities: null,
|
||||
EarliestStudyTime: null,
|
||||
LatestStudyTime: null,
|
||||
PatientId: null,
|
||||
Asc: false,
|
||||
SortField: "StudyTime",
|
||||
};
|
||||
};
|
||||
export default {
|
||||
name: "viewStudyList",
|
||||
components: { Pagination },
|
||||
props: {
|
||||
visible: {
|
||||
require: true,
|
||||
required: true,
|
||||
default: false,
|
||||
},
|
||||
Patient: {
|
||||
require: true,
|
||||
required: true,
|
||||
default: () => {
|
||||
return {};
|
||||
},
|
||||
|
@ -148,14 +159,7 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
// 查询
|
||||
searchData: {
|
||||
Modalities: null,
|
||||
EarliestStudyTime: null,
|
||||
LatestStudyTime: null,
|
||||
PatientId: null,
|
||||
Asc: false,
|
||||
SortField: "StudyTime",
|
||||
},
|
||||
searchData: defaultSearchData(),
|
||||
dateValue: [],
|
||||
// 可加入项目列表
|
||||
loading: false,
|
||||
|
@ -198,6 +202,7 @@ export default {
|
|||
},
|
||||
// 查询
|
||||
handleSearch() {
|
||||
this.searchData.PageIndex = 1;
|
||||
this.getList();
|
||||
},
|
||||
// 重置
|
||||
|
@ -207,11 +212,7 @@ export default {
|
|||
},
|
||||
// 初始化
|
||||
reset() {
|
||||
Object.keys(this.searchData).forEach((key) => {
|
||||
this.searchData[key] = null;
|
||||
});
|
||||
this.searchData.Asc = false;
|
||||
this.searchData.SortField = "StudyTime";
|
||||
this.searchData = defaultSearchData();
|
||||
this.dateValue = [];
|
||||
},
|
||||
// 查看影像
|
||||
|
|
|
@ -225,6 +225,19 @@ import addTrialsList from "./components/add-trials-list";
|
|||
import viewStudyList from "./components/view-study-list";
|
||||
import { getPatientList } from "@/api/inspection.js";
|
||||
import { getDicomCalledAEList } from "@/api/dicomAE.js";
|
||||
|
||||
const defaultSearchData = () => {
|
||||
return {
|
||||
PatientIdStr: null,
|
||||
PatientName: null,
|
||||
CalledAEList: [],
|
||||
ExperimentName: null,
|
||||
Asc: false,
|
||||
SortField: "LatestPushTime",
|
||||
PageIndex: 1,
|
||||
PageSize: 10,
|
||||
};
|
||||
};
|
||||
export default {
|
||||
name: "inspection",
|
||||
components: {
|
||||
|
@ -237,16 +250,7 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
// 查询
|
||||
searchData: {
|
||||
PatientIdStr: null,
|
||||
PatientName: null,
|
||||
CalledAEList: [],
|
||||
ExperimentName: null,
|
||||
Asc: false,
|
||||
SortField: "LatestPushTime",
|
||||
PageIndex: 1,
|
||||
PageSize: 10,
|
||||
},
|
||||
searchData: defaultSearchData(),
|
||||
dicomAeList: [],
|
||||
// 检查列表
|
||||
total: 0,
|
||||
|
@ -298,18 +302,12 @@ export default {
|
|||
},
|
||||
// 查询
|
||||
handleSearch() {
|
||||
this.searchData.PageIndex = 1;
|
||||
this.getList();
|
||||
},
|
||||
// 重置
|
||||
handleReset() {
|
||||
Object.keys(this.searchData).forEach((key) => {
|
||||
this.searchData[key] = null;
|
||||
});
|
||||
this.searchData.PageIndex = 1;
|
||||
this.searchData.PageSize = 10;
|
||||
this.searchData.CalledAEList = [];
|
||||
this.searchData.Asc = false;
|
||||
this.searchData.SortField = "LatestPushTime";
|
||||
this.searchData = defaultSearchData();
|
||||
this.$refs.inspectionList.clearSort();
|
||||
this.getList();
|
||||
},
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
<el-dialog
|
||||
:visible.sync="visible"
|
||||
:close-on-click-modal="false"
|
||||
:title="`${$t('trials:study:button:editVisit')}(1 | 2 | 3)`"
|
||||
:title="`${$t('trials:study:button:editVisit')} (${data.SubjectCode} | ${
|
||||
data.SubjectShortName
|
||||
})`"
|
||||
width="500px"
|
||||
custom-class="base-dialog-wrapper"
|
||||
append-to-body
|
||||
|
@ -20,19 +22,19 @@
|
|||
:label="$t('trials:uploadDicomList:table:patientName')"
|
||||
prop="reason"
|
||||
>
|
||||
<el-input v-model="form.reason" disabled />
|
||||
<el-input v-model="data.SubjectShortName" disabled />
|
||||
</el-form-item>
|
||||
<!--访视-->
|
||||
<el-form-item
|
||||
:label="$t('trials:auditRecord:table:visit')"
|
||||
prop="visit"
|
||||
prop="SubjectVisitId"
|
||||
>
|
||||
<el-select v-model="form.visit" clearable>
|
||||
<el-select v-model="form.SubjectVisitId" clearable>
|
||||
<el-option
|
||||
v-for="item of $d.sex"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
v-for="item of visitList"
|
||||
:key="item.SubjectVisitId"
|
||||
:label="item.VisitName"
|
||||
:value="item.SubjectVisitId"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
|
@ -65,31 +67,46 @@
|
|||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
getSubjectVisitSelectList,
|
||||
addSubjectPatientStudyBinding,
|
||||
} from "@/api/inspection.js";
|
||||
export default {
|
||||
name: "editVisitDialog",
|
||||
props: {
|
||||
visible: {
|
||||
require: true,
|
||||
required: true,
|
||||
default: false,
|
||||
},
|
||||
data: {
|
||||
required: true,
|
||||
default: () => {
|
||||
return {};
|
||||
},
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
form: {
|
||||
visit: null,
|
||||
SubjectVisitId: null,
|
||||
},
|
||||
rules: {
|
||||
visit: [
|
||||
SubjectVisitId: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t("trials:study:formRlue:selectVisit"),
|
||||
trigger: "blur",
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
},
|
||||
btnLoading: false,
|
||||
visitList: [],
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getSubjectVisitSelectList();
|
||||
// this.form.SubjectVisitId = this.data.SubjectVisitId;
|
||||
},
|
||||
methods: {
|
||||
// 取消
|
||||
handleCancel() {
|
||||
|
@ -100,6 +117,50 @@ export default {
|
|||
try {
|
||||
let validate = await this.$refs.editVisitForm.validate();
|
||||
if (!validate) return;
|
||||
this.confirm();
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
},
|
||||
// 确认
|
||||
async confirm() {
|
||||
let obj = {
|
||||
TrialId: this.data.TrialId,
|
||||
SubjectId: this.data.SubjectId,
|
||||
SubjectVisitId: this.form.SubjectVisitId,
|
||||
ScpStudyId: this.data.StudyId,
|
||||
};
|
||||
let arr = [obj];
|
||||
try {
|
||||
this.btnLoading = true;
|
||||
let res = await addSubjectPatientStudyBinding(arr);
|
||||
this.btnLoading = false;
|
||||
if (res.IsSuccess) {
|
||||
this.$message.success(this.$t("common:message:savedSuccessfully"));
|
||||
this.$emit("update:visible", false);
|
||||
this.$emit("getList");
|
||||
}
|
||||
} catch (err) {
|
||||
this.btnLoading = false;
|
||||
console.log(err);
|
||||
}
|
||||
},
|
||||
// 获取已存在的访视
|
||||
async getSubjectVisitSelectList() {
|
||||
let data = {
|
||||
TrialId: this.data.TrialId,
|
||||
SubjectId: this.data.SubjectId,
|
||||
};
|
||||
try {
|
||||
let res = await getSubjectVisitSelectList(data);
|
||||
if (res.IsSuccess) {
|
||||
// this.visitRule = res.OtherInfo;
|
||||
this.visitList = res.Result.map((item) => {
|
||||
item.SubjectVisitId = item.Id;
|
||||
return item;
|
||||
});
|
||||
this.form.SubjectVisitId = this.data.SubjectVisitId;
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,358 @@
|
|||
<template>
|
||||
<BaseContainer>
|
||||
<!-- 搜索框 -->
|
||||
<template slot="search-container">
|
||||
<el-form :inline="true">
|
||||
<!-- 受试者编号 -->
|
||||
<el-form-item :label="$t('trials:subject:table:subjectId')">
|
||||
<el-input v-model="searchData.SubjectCode" style="width: 140px" />
|
||||
</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:subject:table:gender')">
|
||||
<el-select v-model="searchData.PatientSex" clearable>
|
||||
<el-option
|
||||
v-for="item of $d.sex"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 申请号 -->
|
||||
<!-- <el-form-item :label="$t('trials:study:form:accessionNumber')">
|
||||
<el-input v-model="searchData.SubjectInfo" style="width: 140px" />
|
||||
</el-form-item> -->
|
||||
<!-- 检查设备 -->
|
||||
<!-- <el-form-item :label="$t('trials:studyList:table:modality')">
|
||||
<el-select v-model="searchData.VisitPlanArray" clearable>
|
||||
<el-option
|
||||
v-for="item of $d.sex"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<!-- 检查类型 -->
|
||||
<!-- <el-form-item :label="$t('trials:seletctedReviews:form:modality')">
|
||||
<el-select v-model="searchData.Modalities" clearable>
|
||||
<el-option
|
||||
v-for="item of $d.modalType"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<!-- 检查日期 -->
|
||||
<el-form-item :label="$t('trials:audit:table:studyDate')">
|
||||
<el-date-picker
|
||||
v-model="dateValue"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- 状态 -->
|
||||
<!-- <el-form-item :label="$t('trials:seletctedReviews:table:status')">
|
||||
<el-select v-model="searchData.VisitPlanArray" clearable>
|
||||
<el-option
|
||||
v-for="item of $d.sex"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</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>
|
||||
</template>
|
||||
|
||||
<!-- 检查列表 -->
|
||||
<template slot="main-container">
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
v-adaptive="{ bottomOffset: 80 }"
|
||||
:data="list"
|
||||
stripe
|
||||
height="100"
|
||||
@sort-change="handleSortByColumn"
|
||||
:default-sort="{ prop: 'StudyTime', order: 'descending' }"
|
||||
>
|
||||
<el-table-column type="index" width="40" />
|
||||
<!-- 受试者编号 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
:label="$t('trials:subject:table:subjectId')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- 患者编号 -->
|
||||
<el-table-column
|
||||
prop="PatientList.PatientIdStr"
|
||||
:label="$t('trials:uploadDicomList:table:pId')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
v-for="(item, index) in scope.row.PatientList"
|
||||
:key="item.PatientId"
|
||||
>
|
||||
{{
|
||||
index === scope.row.PatientList.length - 1
|
||||
? item.PatientIdStr
|
||||
: `${item.PatientIdStr}, `
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 患者姓名 -->
|
||||
<el-table-column
|
||||
prop="SubjectShortName"
|
||||
:label="$t('trials:uploadDicomList:table:patientName')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- 性别 -->
|
||||
<el-table-column
|
||||
prop="SubjectSex"
|
||||
:label="$t('trials:subject:table:gender')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- 申请号 -->
|
||||
<!-- <el-table-column
|
||||
prop="StudyCode"
|
||||
:label="$t('trials:study:form:accessionNumber')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/> -->
|
||||
<!-- 检查设备 -->
|
||||
<el-table-column
|
||||
prop="Modalities"
|
||||
:label="$t('trials:studyList:table:modality')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- 检查类型 -->
|
||||
<el-table-column
|
||||
prop="ModalityForEdit"
|
||||
:label="$t('trials:audit:table:modality')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- 检查日期 -->
|
||||
<el-table-column
|
||||
prop="StudyTime"
|
||||
:label="$t('trials:audit:table:studyDate')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- 访视 -->
|
||||
<el-table-column
|
||||
prop="VisitName"
|
||||
:label="$t('trials:auditRecord:table:visit')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- 状态 -->
|
||||
<el-table-column
|
||||
prop="SubmitState"
|
||||
:label="$t('trials:trials-list:table:status')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
:label="$t('common:action:action')"
|
||||
min-width="100"
|
||||
fixed="right"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<!-- 查看 -->
|
||||
<el-button type="text" @click="handleViewStudy(scope.row)">{{
|
||||
$t("trials:studyList:button:view")
|
||||
}}</el-button>
|
||||
<!-- 修改访视 -->
|
||||
<el-button
|
||||
type="text"
|
||||
@click="editVisitFn(scope.row)"
|
||||
v-if="activeName === 'notSubmit'"
|
||||
>{{ $t("trials:study:button:editVisit") }}</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!-- 分页组件 -->
|
||||
<pagination
|
||||
class="page"
|
||||
:total="total"
|
||||
:page.sync="searchData.PageIndex"
|
||||
:limit.sync="searchData.PageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</template>
|
||||
<editVisit
|
||||
v-if="editVisitVisible"
|
||||
:visible.sync="editVisitVisible"
|
||||
:data="editVisitMessage"
|
||||
@getList="getList"
|
||||
/>
|
||||
</BaseContainer>
|
||||
</template>
|
||||
<script>
|
||||
import BaseContainer from "@/components/BaseContainer";
|
||||
import Pagination from "@/components/Pagination";
|
||||
import editVisit from "./edit-visit";
|
||||
import {
|
||||
getPatientStudyBeforeConfirmList,
|
||||
getTrialPatientStudyList,
|
||||
} from "@/api/study.js";
|
||||
let defaultSearchData = () => {
|
||||
return {
|
||||
SubjectCode: null,
|
||||
PatientIdStr: null,
|
||||
PatientSex: null,
|
||||
BeginStudyTime: null,
|
||||
EndStudyTime: null,
|
||||
Asc: false,
|
||||
SortField: "StudyTime",
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
};
|
||||
};
|
||||
export default {
|
||||
name: "studyList",
|
||||
components: {
|
||||
BaseContainer,
|
||||
Pagination,
|
||||
editVisit,
|
||||
},
|
||||
props: {
|
||||
activeName: {
|
||||
required: true,
|
||||
default: "notSubmit",
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 搜索
|
||||
searchData: defaultSearchData(),
|
||||
dateValue: [],
|
||||
// 列表
|
||||
list: [{ SubmitTime: 1 }],
|
||||
loading: false,
|
||||
total: 0,
|
||||
|
||||
// 修改访视相关
|
||||
editVisitVisible: false,
|
||||
editVisitMessage: {},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
// 修改访视
|
||||
editVisitFn(item) {
|
||||
this.editVisitVisible = true;
|
||||
this.editVisitMessage = item;
|
||||
this.editVisitMessage.TrialId = this.$route.query.trialId;
|
||||
},
|
||||
// 获取检查列表数据
|
||||
async getList() {
|
||||
let data = {};
|
||||
Object.keys(this.searchData).forEach((key) => {
|
||||
data[key] = this.searchData[key];
|
||||
});
|
||||
data.TrialId = this.$route.query.trialId;
|
||||
if (this.dateValue[0] && this.dateValue[1]) {
|
||||
data.BeginStudyTime = this.dateValue[0].toISOString();
|
||||
data.EndStudyTime = this.dateValue[1].toISOString();
|
||||
} else {
|
||||
data.BeginStudyTime = null;
|
||||
data.EndStudyTime = null;
|
||||
}
|
||||
try {
|
||||
let res = null;
|
||||
this.loading = true;
|
||||
if (this.activeName === "notSubmit") {
|
||||
res = await getPatientStudyBeforeConfirmList(data);
|
||||
} else {
|
||||
res = await getTrialPatientStudyList(data);
|
||||
}
|
||||
this.loading = false;
|
||||
if (res.IsSuccess) {
|
||||
this.list = res.Result.CurrentPageData;
|
||||
this.total = res.Result.TotalCount;
|
||||
}
|
||||
} catch (err) {
|
||||
this.loading = false;
|
||||
console.log(err);
|
||||
}
|
||||
},
|
||||
// 查询
|
||||
handleSearch() {
|
||||
this.searchData.PageIndex = 1;
|
||||
this.getList();
|
||||
},
|
||||
// 重置
|
||||
handleReset() {
|
||||
this.reset();
|
||||
this.getList();
|
||||
},
|
||||
// 初始化
|
||||
reset() {
|
||||
this.searchData = defaultSearchData();
|
||||
this.dateValue = [];
|
||||
},
|
||||
// 排序
|
||||
handleSortByColumn(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>
|
||||
</style>
|
|
@ -1,233 +1,19 @@
|
|||
<template>
|
||||
<BaseContainer>
|
||||
<!-- 搜索框 -->
|
||||
<template slot="search-container">
|
||||
<el-form :inline="true">
|
||||
<!-- 受试者编号 -->
|
||||
<el-form-item :label="$t('trials:subject:table:subjectId')">
|
||||
<el-input v-model="searchData.SubjectInfo" style="width: 140px" />
|
||||
</el-form-item>
|
||||
<!-- 患者姓名 -->
|
||||
<el-form-item :label="$t('trials:uploadDicomList:table:patientName')">
|
||||
<el-input v-model="searchData.SubjectInfo" style="width: 140px" />
|
||||
</el-form-item>
|
||||
<!-- 性别 -->
|
||||
<el-form-item :label="$t('trials:subject:table:gender')">
|
||||
<el-select
|
||||
v-model="searchData.VisitPlanArray"
|
||||
clearable
|
||||
filterable
|
||||
multiple
|
||||
collapse-tags
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.sex"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 申请号 -->
|
||||
<el-form-item :label="$t('trials:study:form:accessionNumber')">
|
||||
<el-input v-model="searchData.SubjectInfo" style="width: 140px" />
|
||||
</el-form-item>
|
||||
<!-- 检查设备 -->
|
||||
<el-form-item :label="$t('trials:studyList:table:modality')">
|
||||
<el-select
|
||||
v-model="searchData.VisitPlanArray"
|
||||
clearable
|
||||
filterable
|
||||
multiple
|
||||
collapse-tags
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.sex"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 检查类型 -->
|
||||
<el-form-item :label="$t('trials:seletctedReviews:form:modality')">
|
||||
<el-select
|
||||
v-model="searchData.VisitPlanArray"
|
||||
clearable
|
||||
filterable
|
||||
multiple
|
||||
collapse-tags
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.sex"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 检查日期 -->
|
||||
<el-form-item :label="$t('trials:audit:table:studyDate')">
|
||||
<el-date-picker
|
||||
v-model="searchData.date"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- 状态 -->
|
||||
<el-form-item :label="$t('trials:seletctedReviews:table:status')">
|
||||
<el-select
|
||||
v-model="searchData.VisitPlanArray"
|
||||
clearable
|
||||
filterable
|
||||
multiple
|
||||
collapse-tags
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.sex"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</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>
|
||||
</template>
|
||||
|
||||
<!-- 检查列表 -->
|
||||
<template slot="main-container">
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
v-adaptive="{ bottomOffset: 60 }"
|
||||
:data="list"
|
||||
stripe
|
||||
height="100"
|
||||
@sort-change="handleSortByColumn"
|
||||
<div>
|
||||
<el-tabs type="border-card" v-model="activeName">
|
||||
<el-tab-pane
|
||||
:label="$t('trials:study:tabpane:notSubmit')"
|
||||
name="notSubmit"
|
||||
>
|
||||
<el-table-column type="index" width="40" />
|
||||
<!-- 受试者编号 -->
|
||||
<el-table-column
|
||||
prop="StudyCode"
|
||||
:label="$t('trials:subject:table:subjectId')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- 患者编号 -->
|
||||
<el-table-column
|
||||
prop="StudyCode"
|
||||
:label="$t('trials:uploadDicomList:table:pId')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- 患者姓名 -->
|
||||
<el-table-column
|
||||
prop="StudyCode"
|
||||
:label="$t('trials:uploadDicomList:table:patientName')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- 性别 -->
|
||||
<el-table-column
|
||||
prop="StudyCode"
|
||||
:label="$t('trials:subject:table:gender')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- 申请号 -->
|
||||
<el-table-column
|
||||
prop="StudyCode"
|
||||
:label="$t('trials:study:form:accessionNumber')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- 检查设备 -->
|
||||
<el-table-column
|
||||
prop="StudyCode"
|
||||
:label="$t('trials:studyList:table:modality')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- 检查类型 -->
|
||||
<el-table-column
|
||||
prop="StudyCode"
|
||||
:label="$t('trials:audit:table:modality')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- 检查日期 -->
|
||||
<el-table-column
|
||||
prop="StudyCode"
|
||||
:label="$t('trials:audit:table:studyDate')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- 访视 -->
|
||||
<el-table-column
|
||||
prop="StudyCode"
|
||||
:label="$t('trials:auditRecord:table:visit')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
:label="$t('common:action:action')"
|
||||
min-width="100"
|
||||
fixed="right"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<!-- 查看 -->
|
||||
<el-button
|
||||
:disabled="!scope.row.Count"
|
||||
type="text"
|
||||
@click="handleViewStudy(scope.row)"
|
||||
>{{ $t("trials:studyList:button:view") }}</el-button
|
||||
>
|
||||
<!-- 修改访视 -->
|
||||
<el-button type="text" @click="editVisitFn(scope.row)">{{
|
||||
$t("trials:study:button:editVisit")
|
||||
}}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!-- 分页组件 -->
|
||||
<pagination
|
||||
class="page"
|
||||
:total="total"
|
||||
:page.sync="searchData.PageIndex"
|
||||
:limit.sync="searchData.PageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</template>
|
||||
<studyList activeName="notSubmit" v-if="activeName === 'notSubmit'" />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane
|
||||
:label="$t('trials:consistencyCheck:title:submitted')"
|
||||
name="submit"
|
||||
>
|
||||
<studyList activeName="submit" v-if="activeName === 'submit'" />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
<base-model :config="share_model">
|
||||
<template slot="dialog-body">
|
||||
|
@ -269,50 +55,30 @@
|
|||
/>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<editVisit :visible.sync="editVisitVisible" />
|
||||
</BaseContainer>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
getDicomAndNoneDicomStudyList,
|
||||
getTrialSiteSelect,
|
||||
getSeriesList,
|
||||
getTrialVisitStageSelect,
|
||||
getNoneDicomStudyFileList,
|
||||
} from "@/api/trials";
|
||||
import { createImageShare } from "@/api/share";
|
||||
import BaseContainer from "@/components/BaseContainer";
|
||||
import Pagination from "@/components/Pagination";
|
||||
import BaseModel from "@/components/BaseModel";
|
||||
import NonDicomPreview from "./components/nonDicomPreview";
|
||||
import editVisit from "./components/edit-visit";
|
||||
import moment from "moment";
|
||||
import { getToken } from "@/utils/auth";
|
||||
const searchDataDefault = () => {
|
||||
return {
|
||||
SubjectInfo: "",
|
||||
VisitPlanArray: [],
|
||||
Status: "",
|
||||
SiteId: "",
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
};
|
||||
};
|
||||
import studyList from "./components/list.vue";
|
||||
export default {
|
||||
name: "StudyList",
|
||||
components: {
|
||||
BaseContainer,
|
||||
Pagination,
|
||||
BaseModel,
|
||||
NonDicomPreview,
|
||||
editVisit,
|
||||
studyList,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
searchData: searchDataDefault(),
|
||||
list: [],
|
||||
loading: false,
|
||||
total: 0,
|
||||
siteOptions: [],
|
||||
visitPlanOptions: [],
|
||||
seriesList: [],
|
||||
|
@ -335,33 +101,14 @@ export default {
|
|||
tokenKey: getToken(),
|
||||
openWindow: null,
|
||||
|
||||
editVisitVisible: false,
|
||||
activeName: "notSubmit", // notSubmit 未提交 submit 提交
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getSite();
|
||||
this.getVisitPlanOptions();
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
// 修改访视
|
||||
editVisitFn() {
|
||||
this.editVisitVisible = true;
|
||||
},
|
||||
// 获取检查列表数据
|
||||
getList() {
|
||||
this.loading = true;
|
||||
this.searchData.TrialId = this.trialId;
|
||||
getDicomAndNoneDicomStudyList(this.searchData)
|
||||
.then((res) => {
|
||||
this.loading = false;
|
||||
this.list = res.Result.CurrentPageData;
|
||||
this.total = res.Result.TotalCount;
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 获取某个Dicom检查下的序列信息
|
||||
handleGetseriesList(row) {
|
||||
this.seriesLoading = true;
|
||||
|
@ -504,27 +251,6 @@ export default {
|
|||
onCopyError() {
|
||||
this.$alert("复制失败");
|
||||
},
|
||||
// 查询
|
||||
handleSearch() {
|
||||
this.searchData.PageIndex = 1;
|
||||
this.getList();
|
||||
},
|
||||
// 重置
|
||||
handleReset() {
|
||||
this.searchData = searchDataDefault();
|
||||
this.getList();
|
||||
},
|
||||
// 排序
|
||||
handleSortByColumn(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>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -462,7 +462,7 @@
|
|||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-tabs v-model="activeName" type="border-card" style="flex:1;">
|
||||
<el-tabs v-model="activeName" type="border-card" lesty="flex:1;">
|
||||
<!-- DICOM影像上传 -->
|
||||
<el-tab-pane :label="$t('trials:uploadedDicoms:tab:uploadDicoms')" name="dicom">
|
||||
<upload-dicom-files2 v-if="uploadVisible2" :data="rowData" :subject-id="rowData.SubjectId" :subject-visit-id="rowData.Id" @getList="getList" @close="closeUpload" />
|
||||
|
|
|
@ -13,7 +13,7 @@ function resolve(dir) {
|
|||
return path.join(__dirname, dir)
|
||||
}
|
||||
|
||||
const name = defaultSettings.title || 'IRCIS' // page title
|
||||
const name = defaultSettings.title || 'HIRIS' // page title
|
||||
|
||||
// eslint-disable-next-line no-undef
|
||||
module.exports = {
|
||||
|
|
Loading…
Reference in New Issue