检查患者列表接口对接调试
parent
1949b1f662
commit
8491862a7f
|
@ -0,0 +1,29 @@
|
||||||
|
// 检查管理
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 检查->患者列表
|
||||||
|
export function getPatientList(data) {
|
||||||
|
return request({
|
||||||
|
url: '/Patient/getPatientList',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查->患者可加入项目列表
|
||||||
|
export function getPatientJoinTrialInitList(data) {
|
||||||
|
return request({
|
||||||
|
url: '/Patient/getPatientJoinTrialInitList',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查->患者已加入项目列表
|
||||||
|
export function getPatientJoinedTrialList(data) {
|
||||||
|
return request({
|
||||||
|
url: '/Patient/getPatientJoinedTrialList',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
|
@ -174,7 +174,7 @@ export default {
|
||||||
this.searchData[key] = null;
|
this.searchData[key] = null;
|
||||||
});
|
});
|
||||||
this.searchData.PageIndex = 1;
|
this.searchData.PageIndex = 1;
|
||||||
this.searchData.PageIndex = 10;
|
this.searchData.PageSize = 10;
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
// 打开弹框
|
// 打开弹框
|
||||||
|
|
|
@ -9,27 +9,27 @@
|
||||||
>
|
>
|
||||||
<el-card class="Basic" shadow="never" size="small">
|
<el-card class="Basic" shadow="never" size="small">
|
||||||
<el-form-item label="医院名称: " prop="HospitalName">
|
<el-form-item label="医院名称: " prop="HospitalName">
|
||||||
<el-input v-model="hospital.HospitalName" />
|
<el-input v-model="hospital.HospitalName" :disabled="disabled" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="医院别称: " prop="HospitalAliasName">
|
<el-form-item label="医院别称: " prop="HospitalAliasName">
|
||||||
<el-input v-model="hospital.HospitalAliasName" />
|
<el-input v-model="hospital.HospitalAliasName" :disabled="disabled" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="国家: " prop="Country">
|
<el-form-item label="国家: " prop="Country">
|
||||||
<el-input v-model="hospital.Country" />
|
<el-input v-model="hospital.Country" :disabled="disabled" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="省份: " prop="Province">
|
<el-form-item label="省份: " prop="Province">
|
||||||
<el-input v-model="hospital.Province" />
|
<el-input v-model="hospital.Province" :disabled="disabled" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="城市: " prop="City">
|
<el-form-item label="城市: " prop="City">
|
||||||
<el-input v-model="hospital.City" />
|
<el-input v-model="hospital.City" :disabled="disabled" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="地址: " prop="Address">
|
<el-form-item label="地址: " prop="Address">
|
||||||
<el-input v-model="hospital.Address" />
|
<el-input v-model="hospital.Address" :disabled="disabled" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="联系方式: " prop="Phone">
|
<el-form-item label="联系方式: " prop="Phone">
|
||||||
<el-input v-model="hospital.Phone" />
|
<el-input v-model="hospital.Phone" :disabled="disabled" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="是否可以连接互联网: ">
|
<el-form-item label="是否可以连接互联网: ">
|
||||||
<el-switch
|
<el-switch
|
||||||
|
@ -38,11 +38,12 @@
|
||||||
inactive-color="#ff4949"
|
inactive-color="#ff4949"
|
||||||
active-text="是"
|
active-text="是"
|
||||||
inactive-text="否"
|
inactive-text="否"
|
||||||
|
:disabled="disabled"
|
||||||
>
|
>
|
||||||
</el-switch>
|
</el-switch>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-card>
|
</el-card>
|
||||||
<el-form-item>
|
<el-form-item v-hasPermi="['system:hospital:edit']">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
|
@ -97,6 +98,11 @@ export default {
|
||||||
created() {
|
created() {
|
||||||
this.getInfo();
|
this.getInfo();
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
disabled() {
|
||||||
|
return !this.hasPermi(["system:hospital:edit"]);
|
||||||
|
},
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async handleSave() {
|
async handleSave() {
|
||||||
if (this.btnLoading) return;
|
if (this.btnLoading) return;
|
||||||
|
|
|
@ -5,10 +5,18 @@
|
||||||
<el-form :inline="true" class="base-search-form">
|
<el-form :inline="true" class="base-search-form">
|
||||||
<!-- 患者ID/患者姓名 -->
|
<!-- 患者ID/患者姓名 -->
|
||||||
<el-form-item :label="$t('trials:uploadDicomList:table:pId')">
|
<el-form-item :label="$t('trials:uploadDicomList:table:pId')">
|
||||||
<el-input v-model="searchData.SubjectInfo" style="width: 100px" />
|
<el-input
|
||||||
|
v-model="searchData.PatientIdStr"
|
||||||
|
style="width: 100px"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('trials:uploadDicomList:table:patientName')">
|
<el-form-item :label="$t('trials:uploadDicomList:table:patientName')">
|
||||||
<el-input v-model="searchData.SubjectInfo" style="width: 100px" />
|
<el-input
|
||||||
|
v-model="searchData.PatientName"
|
||||||
|
style="width: 100px"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- DICOM AE -->
|
<!-- DICOM AE -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
|
@ -16,7 +24,7 @@
|
||||||
:label="$t('trials:inspection:table:DICOMAE')"
|
:label="$t('trials:inspection:table:DICOMAE')"
|
||||||
>
|
>
|
||||||
<el-select
|
<el-select
|
||||||
v-model="searchData.VisitPlanArray"
|
v-model="searchData.CalledAEList"
|
||||||
clearable
|
clearable
|
||||||
multiple
|
multiple
|
||||||
style="width: 140px"
|
style="width: 140px"
|
||||||
|
@ -24,17 +32,19 @@
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(item, index) of dicomAeList"
|
v-for="(item, index) of dicomAeList"
|
||||||
:key="index"
|
:key="index"
|
||||||
:label="item.VisitName"
|
:label="item"
|
||||||
:value="item.VisitNum"
|
:value="item"
|
||||||
>
|
>
|
||||||
<span style="float: left">{{ item.VisitName }}</span>
|
|
||||||
</el-option>
|
</el-option>
|
||||||
<el-option key="Other" label="Out of Plan" value="1.11" />
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 研究名称 -->
|
<!-- 研究名称 -->
|
||||||
<el-form-item :label="$t('trials:trials-list:table:researchName')">
|
<el-form-item :label="$t('trials:trials-list:table:researchName')">
|
||||||
<el-input v-model="searchData.SubjectInfo" style="width: 100px" />
|
<el-input
|
||||||
|
v-model="searchData.ExperimentName"
|
||||||
|
style="width: 100px"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<!-- 查询 -->
|
<!-- 查询 -->
|
||||||
|
@ -63,70 +73,78 @@
|
||||||
stripe
|
stripe
|
||||||
height="100"
|
height="100"
|
||||||
@sort-change="handleSortByColumn"
|
@sort-change="handleSortByColumn"
|
||||||
@selection-change="handleSelectionChange"
|
|
||||||
>
|
>
|
||||||
<el-table-column
|
|
||||||
type="selection"
|
|
||||||
align="left"
|
|
||||||
width="45"
|
|
||||||
:selectable="handleSelectTable"
|
|
||||||
/>
|
|
||||||
<!--患者ID-->
|
<!--患者ID-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="IsUrgent"
|
prop="PatientIdStr"
|
||||||
:label="$t('trials:uploadDicomList:table:pId')"
|
:label="$t('trials:uploadDicomList:table:pId')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
min-width="140"
|
min-width="140"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
<!--患者姓名-->
|
<!--患者姓名-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="IsUrgent"
|
prop="PatientName"
|
||||||
:label="$t('trials:uploadDicomList:table:patientName')"
|
:label="$t('trials:uploadDicomList:table:patientName')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
min-width="140"
|
min-width="140"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
<!--出生日期-->
|
<!--出生日期-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="IsUrgent"
|
prop="PatientBirthDate"
|
||||||
:label="$t('trials:inspection:table:birthdate')"
|
:label="$t('trials:inspection:table:birthdate')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
min-width="140"
|
min-width="140"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
<!--性别-->
|
<!--性别-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="IsUrgent"
|
prop="PatientSex"
|
||||||
:label="$t('trials:trials-myinfo:form:gender')"
|
:label="$t('trials:trials-myinfo:form:gender')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
min-width="140"
|
min-width="140"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
<!--DICOM AE-->
|
<!--DICOM AE-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="IsUrgent"
|
prop="CalledAEList"
|
||||||
:label="$t('trials:inspection:table:DICOMAE')"
|
:label="$t('trials:inspection:table:DICOMAE')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
min-width="140"
|
min-width="140"
|
||||||
></el-table-column>
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span
|
||||||
|
v-for="(item, index) in scope.row.CalledAEList"
|
||||||
|
:key="`CalledAEList${index}`"
|
||||||
|
>{{
|
||||||
|
index === scope.row.CalledAEList.length - 1 ? item : `${item},`
|
||||||
|
}}</span
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<!-- 研究名称 -->
|
<!-- 研究名称 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="VisitNum"
|
prop="TrialList"
|
||||||
:label="$t('trials:trials-list:table:researchName')"
|
:label="$t('trials:trials-list:table:researchName')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
min-width="160"
|
min-width="160"
|
||||||
sortable="custom"
|
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
@click="handleOpenDialog(scope.row, 'research')"
|
@click="handleOpenDialog(scope.row, 'research')"
|
||||||
|
v-for="(item, index) in scope.row.TrialList"
|
||||||
|
:key="`TrialList${index}`"
|
||||||
>
|
>
|
||||||
<span>{{ scope.row.VisitName }}</span>
|
<span>{{
|
||||||
|
index === scope.row.TrialList.length - 1
|
||||||
|
? `${item.experimentName}(${item.visitCount})`
|
||||||
|
: `${item.experimentName}(${item.visitCount}),`
|
||||||
|
}}</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- <span v-else>{{ scope.row.VisitName }}</span> -->
|
<!-- <span v-else>{{ scope.row.VisitName }}</span> -->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 检查数 -->
|
<!-- 检查数 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="VisitNum"
|
prop="StudyCount"
|
||||||
:label="$t('trials:studyList:table:count')"
|
:label="$t('trials:studyList:table:count')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
min-width="160"
|
min-width="160"
|
||||||
|
@ -134,25 +152,18 @@
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
v-if="scope.row.key === 1"
|
v-if="scope.row.StudyCount >= 1"
|
||||||
type="text"
|
type="text"
|
||||||
@click="handleOpenDialog(scope.row, 'study')"
|
@click="handleOpenDialog(scope.row, 'study')"
|
||||||
>
|
>
|
||||||
<span>{{ scope.row.VisitName }}</span>
|
<span>{{ scope.row.StudyCount }}</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
<span v-else>{{ scope.row.VisitName }}</span>
|
<span v-else>{{ scope.row.StudyCount }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!--访视数-->
|
|
||||||
<el-table-column
|
|
||||||
prop="IsUrgent"
|
|
||||||
:label="$t('trials:selftConsistencyAnalysis:table:visitNum')"
|
|
||||||
show-overflow-tooltip
|
|
||||||
min-width="140"
|
|
||||||
></el-table-column>
|
|
||||||
<!--最新接收时间-->
|
<!--最新接收时间-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="IsUrgent"
|
prop="LatestPushTime"
|
||||||
:label="$t('trials:inspection:table:latestReceiveTime')"
|
:label="$t('trials:inspection:table:latestReceiveTime')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
min-width="140"
|
min-width="140"
|
||||||
|
@ -187,6 +198,7 @@
|
||||||
<!--可加入项目列表-->
|
<!--可加入项目列表-->
|
||||||
<addTrialsList
|
<addTrialsList
|
||||||
:visible.sync="addTrialsVisible"
|
:visible.sync="addTrialsVisible"
|
||||||
|
:Patient="selectPatient"
|
||||||
@handleOpenDialog="handleOpenDialog"
|
@handleOpenDialog="handleOpenDialog"
|
||||||
/>
|
/>
|
||||||
<!--确认访视列表-->
|
<!--确认访视列表-->
|
||||||
|
@ -202,6 +214,8 @@ import researchTrialsList from "./components/research-trials-list";
|
||||||
import addTrialsList from "./components/add-trials-list";
|
import addTrialsList from "./components/add-trials-list";
|
||||||
import confirmVisitList from "./components/confirm-visit-list";
|
import confirmVisitList from "./components/confirm-visit-list";
|
||||||
import viewStudyList from "./components/view-study-list";
|
import viewStudyList from "./components/view-study-list";
|
||||||
|
import { getPatientList } from "@/api/inspection.js";
|
||||||
|
import { getDicomCalledAEList } from "@/api/dicomAE.js";
|
||||||
export default {
|
export default {
|
||||||
name: "inspection",
|
name: "inspection",
|
||||||
components: {
|
components: {
|
||||||
|
@ -215,12 +229,23 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 查询
|
// 查询
|
||||||
searchData: {},
|
searchData: {
|
||||||
|
PatientIdStr: null,
|
||||||
|
PatientName: null,
|
||||||
|
CalledAEList: [],
|
||||||
|
ExperimentName: null,
|
||||||
|
Asc: true,
|
||||||
|
SortField: null,
|
||||||
|
PageIndex: 1,
|
||||||
|
PageSize: 10,
|
||||||
|
},
|
||||||
dicomAeList: [],
|
dicomAeList: [],
|
||||||
// 检查列表
|
// 检查列表
|
||||||
total: 0,
|
total: 0,
|
||||||
loading: false,
|
loading: false,
|
||||||
list: [{ key: 1, VisitName: "123" }],
|
list: [{ key: 1, VisitName: "123" }],
|
||||||
|
// 选中的患者
|
||||||
|
selectPatient: {},
|
||||||
// 研究项目列表
|
// 研究项目列表
|
||||||
researchTrialsVisible: false,
|
researchTrialsVisible: false,
|
||||||
// 可加入项目列表
|
// 可加入项目列表
|
||||||
|
@ -231,22 +256,68 @@ export default {
|
||||||
studyTrialsVisible: false,
|
studyTrialsVisible: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
created() {
|
||||||
|
this.getDicomCalledAEList();
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 获取dicomAE列表
|
||||||
|
async getDicomCalledAEList() {
|
||||||
|
try {
|
||||||
|
let res = await getDicomCalledAEList();
|
||||||
|
if (res.IsSuccess) {
|
||||||
|
this.dicomAeList = res.Result;
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
},
|
||||||
// 获取列表数据
|
// 获取列表数据
|
||||||
getList() {},
|
async getList() {
|
||||||
|
let data = {};
|
||||||
|
Object.keys(this.searchData).forEach((key) => {
|
||||||
|
data[key] = this.searchData[key];
|
||||||
|
});
|
||||||
|
try {
|
||||||
|
this.loading = true;
|
||||||
|
let res = await getPatientList(data);
|
||||||
|
this.loading = false;
|
||||||
|
if (res.IsSuccess) {
|
||||||
|
this.list = res.Result.CurrentPageData;
|
||||||
|
this.total = res.Result.TotalCount;
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
},
|
||||||
// 查询
|
// 查询
|
||||||
handleSearch() {},
|
handleSearch() {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
// 重置
|
// 重置
|
||||||
handleReset() {},
|
handleReset() {
|
||||||
// 表格选择
|
Object.keys(this.searchData).forEach((key) => {
|
||||||
handleSelectionChange() {},
|
this.searchData[key] = null;
|
||||||
// 表格单行选择
|
});
|
||||||
handleSelectTable() {},
|
this.searchData.PageIndex = 1;
|
||||||
|
this.searchData.PageSize = 10;
|
||||||
|
this.searchData.CalledAEList = [];
|
||||||
|
this.searchData.Asc = true;
|
||||||
|
this.$refs.inspectionList.clearSort();
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
// 表格排序
|
// 表格排序
|
||||||
handleSortByColumn() {},
|
handleSortByColumn(sort) {
|
||||||
|
this.searchData.SortField = sort.prop;
|
||||||
|
if (sort.order === "ascending") this.searchData.Asc = true;
|
||||||
|
if (sort.order === "descending") this.searchData.Asc = false;
|
||||||
|
if (!sort.order) this.searchData.SortField = null;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
// 打开弹框
|
// 打开弹框
|
||||||
handleOpenDialog(item, key) {
|
handleOpenDialog(item, key) {
|
||||||
this[`${key}TrialsVisible`] = true;
|
this[`${key}TrialsVisible`] = true;
|
||||||
|
this.selectPatient = item;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue