Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
06989d5888
8
src/api/system/followup.js
Normal file
8
src/api/system/followup.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
export function manualFollowUpList(query) {
|
||||||
|
return request({
|
||||||
|
url: '/manage/signroute/manualFollowUpList',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
@ -19,7 +19,7 @@
|
|||||||
end-placeholder="结束日期"
|
end-placeholder="结束日期"
|
||||||
></el-date-picker>
|
></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="素材状态" prop="materialsStatus">
|
<!-- <el-form-item label="素材状态" prop="materialsStatus">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="queryParams.materialsStatus"
|
v-model="queryParams.materialsStatus"
|
||||||
placeholder="请选择素材状态"
|
placeholder="请选择素材状态"
|
||||||
@ -32,7 +32,7 @@
|
|||||||
>
|
>
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item label="素材名称" prop="materialsName">
|
<el-form-item label="素材名称" prop="materialsName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.materialsName"
|
v-model="queryParams.materialsName"
|
||||||
|
|||||||
706
src/views/system/followup/index.vue
Normal file
706
src/views/system/followup/index.vue
Normal file
@ -0,0 +1,706 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form
|
||||||
|
:model="queryParams"
|
||||||
|
ref="queryForm"
|
||||||
|
size="small"
|
||||||
|
:inline="true"
|
||||||
|
v-show="showSearch"
|
||||||
|
>
|
||||||
|
<el-form-item label="随访时间" prop="startDate">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="intentionalTime"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="至"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
style="width: 300px"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
@change="chooseTime"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="姓名" prop="patientName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.patientName"
|
||||||
|
placeholder="请输入就诊流水号"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="电话" prop="patientPhone">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.patientPhone"
|
||||||
|
placeholder="请输入电话"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="医院" prop="hospitalAgencyId">
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.hospitalAgencyId"
|
||||||
|
filterable
|
||||||
|
placeholder="请选择医院"
|
||||||
|
style="width: 200px"
|
||||||
|
clearable
|
||||||
|
@clear="clearhospitalAgency"
|
||||||
|
@change="changehospitalAgency"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in hospitalAgencylist"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.agencyName"
|
||||||
|
:value="item.id"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
label="院区"
|
||||||
|
prop="campusAgencyId"
|
||||||
|
v-if="queryParams.hospitalAgencyId"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.campusAgencyId"
|
||||||
|
filterable
|
||||||
|
placeholder="请选择院区"
|
||||||
|
style="width: 200px"
|
||||||
|
clearable
|
||||||
|
@clear="clearcampusAgency"
|
||||||
|
@change="changecampusAgency"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in campusAgencylist"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.agencyName"
|
||||||
|
:value="item.id"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
label="科室"
|
||||||
|
prop="departmentId"
|
||||||
|
v-if="queryParams.hospitalAgencyId"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.departmentId"
|
||||||
|
filterable
|
||||||
|
placeholder="请选择科室"
|
||||||
|
style="width: 200px"
|
||||||
|
clearable
|
||||||
|
@clear="cleardepartment"
|
||||||
|
@change="changedepartment"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in departmentlist"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.departmentName"
|
||||||
|
:value="item.id"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
label="病区"
|
||||||
|
prop="wardId"
|
||||||
|
v-if="queryParams.hospitalAgencyId"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.wardId"
|
||||||
|
filterable
|
||||||
|
placeholder="请选择病区"
|
||||||
|
style="width: 200px"
|
||||||
|
clearable
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in wardlist"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.departmentName"
|
||||||
|
:value="item.id"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="就诊类型" prop="visitMethod">
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.visitMethod"
|
||||||
|
placeholder="请选择就诊类型"
|
||||||
|
clearable
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in dict.type.visit_type"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="就诊流水号" prop="visitSerialNumber">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.visitSerialNumber"
|
||||||
|
placeholder="请输入就诊流水号"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="门诊/出院时间" prop="intentionalTimeStart">
|
||||||
|
<el-date-picker
|
||||||
|
@change="mzchange"
|
||||||
|
v-model="mzTime"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="至"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
style="width: 300px"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="入院时间" prop="intentionalTimeStart">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="ryTime"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="至"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
style="width: 300px"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
@change="rychange"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="诊断" prop="mainDiagnosis">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.mainDiagnosis"
|
||||||
|
placeholder="请选择诊断"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item
|
||||||
|
label="主治医生"
|
||||||
|
prop="attendingPhysicianId"
|
||||||
|
v-if="queryParams.hospitalAgencyId"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.attendingPhysicianId"
|
||||||
|
style="width: 200px"
|
||||||
|
filterable
|
||||||
|
placeholder="请选择主治医生"
|
||||||
|
clearable
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in attendingPhysicianlist"
|
||||||
|
:key="item.userId"
|
||||||
|
:label="item.nickName"
|
||||||
|
:value="item.userId"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-search"
|
||||||
|
size="mini"
|
||||||
|
@click="handleQuery"
|
||||||
|
>搜索</el-button
|
||||||
|
>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
||||||
|
>重置</el-button
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="taskExecuteRecordList"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
>
|
||||||
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
|
<el-table-column label="姓名" align="center" prop="patientName" />
|
||||||
|
<el-table-column label="电话" align="center" prop="patientPhone" />
|
||||||
|
<el-table-column label="性别" align="center" prop="visitSerialNumber">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ scope.row.sex == "MALE" ? "男" : "" }}
|
||||||
|
{{ scope.row.sex == "FEMALE" ? "女" : "" }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="医院" align="center" prop="hospitalAgencyName" />
|
||||||
|
<el-table-column label="院区" align="center" prop="campusAgencyName" />
|
||||||
|
<el-table-column label="科室名称" align="center" prop="departmentName" />
|
||||||
|
<el-table-column label="病区名称" align="center" prop="wardName" />
|
||||||
|
|
||||||
|
<el-table-column
|
||||||
|
label="门诊/住院号"
|
||||||
|
align="center"
|
||||||
|
prop="inHospitalNumber"
|
||||||
|
width="100"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="就诊流水号"
|
||||||
|
align="center"
|
||||||
|
prop="visitSerialNumber"
|
||||||
|
width="100"
|
||||||
|
/>
|
||||||
|
<el-table-column label="诊断" align="center" prop="mainDiagnosis" />
|
||||||
|
<el-table-column label="手术名称" align="center" prop="surgicalName" />
|
||||||
|
<el-table-column
|
||||||
|
label="主治医生"
|
||||||
|
align="center"
|
||||||
|
prop="attendingPhysicianName"
|
||||||
|
/>
|
||||||
|
<el-table-column label="就诊类型" align="center" prop="visitMethod">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span
|
||||||
|
>{{ scope.row.visitMethod == "OUTPATIENT_SERVICE" ? "门诊" : "" }}
|
||||||
|
{{ scope.row.visitMethod == "BE_HOSPITALIZED" ? "住院" : "" }}
|
||||||
|
</span>
|
||||||
|
</template></el-table-column
|
||||||
|
>
|
||||||
|
<el-table-column
|
||||||
|
label="入院时间"
|
||||||
|
align="center"
|
||||||
|
prop="admissionTime"
|
||||||
|
width="180"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ parseTime(scope.row.admissionTime, "{y}-{m}-{d}") }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="门诊/出院时间"
|
||||||
|
align="center"
|
||||||
|
prop="visitOrDischargeTime"
|
||||||
|
width="180"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{
|
||||||
|
parseTime(scope.row.visitOrDischargeTime, "{y}-{m}-{d}")
|
||||||
|
}}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="随访时间"
|
||||||
|
align="center"
|
||||||
|
prop="executeTime"
|
||||||
|
width="180"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ parseTime(scope.row.executeTime, "{y}-{m}-{d}") }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column label="随访模板" align="center" prop="templateName">
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column
|
||||||
|
label="操作"
|
||||||
|
align="center"
|
||||||
|
class-name="small-padding fixed-width"
|
||||||
|
fixed="right"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-notebook-2"
|
||||||
|
@click="handleUpdate(scope.row)"
|
||||||
|
>处理</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total > 0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
import { manualFollowUpList } from "@/api/system/followup"
|
||||||
|
import { usergetList } from "@/api/unitconfig/patientConfiguration";
|
||||||
|
|
||||||
|
import { getAge } from "@/utils/age";
|
||||||
|
import {
|
||||||
|
selectAgencyList, getAgencyList
|
||||||
|
} from "@/api/manage/selectAgencyList";
|
||||||
|
export default {
|
||||||
|
name: "TaskExecuteRecord",
|
||||||
|
dicts: ["visit_type"],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 随访时间
|
||||||
|
intentionalTime: [],
|
||||||
|
// 门诊
|
||||||
|
mzTime: [],
|
||||||
|
// 入院
|
||||||
|
ryTime: [],
|
||||||
|
//医院list
|
||||||
|
hospitalAgencylist: [],
|
||||||
|
// 院区list
|
||||||
|
campusAgencylist: [],
|
||||||
|
//科室list
|
||||||
|
departmentlist: [],
|
||||||
|
//病区list
|
||||||
|
wardlist: [],
|
||||||
|
// 主治医生
|
||||||
|
attendingPhysicianlist: [],
|
||||||
|
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 患者管理任务执行记录表格数据
|
||||||
|
taskExecuteRecordList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
followStartTime: null,
|
||||||
|
followEndTime: null,
|
||||||
|
clinicalStartTime: null,
|
||||||
|
clinicalEndTime: null,
|
||||||
|
admissionEndTime: null,
|
||||||
|
admissionStartTime: null,
|
||||||
|
mainDiagnosis: null,
|
||||||
|
|
||||||
|
visitSerialNumber: null,
|
||||||
|
attendingPhysicianId: null,
|
||||||
|
patientId: null,
|
||||||
|
visitMethod: null,
|
||||||
|
manageRouteId: null,
|
||||||
|
manageRouteNodeId: null,
|
||||||
|
patientName: null,
|
||||||
|
startDate: null,
|
||||||
|
endDate: null,
|
||||||
|
manageRouteName: null,
|
||||||
|
manageRouteNodeName: null,
|
||||||
|
taskContent: null,
|
||||||
|
executeTime: null,
|
||||||
|
executePerson: null,
|
||||||
|
executeType: null,
|
||||||
|
executeRemark: null,
|
||||||
|
hospitalAgencyId: null,
|
||||||
|
campusAgencyId: null,
|
||||||
|
departmentId: null,
|
||||||
|
wardId: null,
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
// rules: {
|
||||||
|
// patientId: [
|
||||||
|
// { required: true, message: "患者表id不能为空", trigger: "blur" },
|
||||||
|
// ],
|
||||||
|
// },
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
this.selectAgencyinfo();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//主治医生
|
||||||
|
usergetListinfo() {
|
||||||
|
usergetList({
|
||||||
|
agencyId: this.queryParams.hospitalAgencyId,
|
||||||
|
postName: 'DOCTOR'
|
||||||
|
}).then(res => {
|
||||||
|
this.attendingPhysicianlist = res.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//获取下级单位
|
||||||
|
getAgencyListinfo(nodeType, id) {
|
||||||
|
let query = {
|
||||||
|
nodeType: nodeType,
|
||||||
|
}
|
||||||
|
if (nodeType == 'HOSPITAL') {
|
||||||
|
query.hospitalId = id
|
||||||
|
} else if (nodeType == 'CAMPUS') {
|
||||||
|
query.campusId = id
|
||||||
|
} else if (nodeType == 'DEPARTMENT') {
|
||||||
|
query.departmentId = id
|
||||||
|
}
|
||||||
|
getAgencyList(query).then(res => {
|
||||||
|
if (nodeType == 'HOSPITAL') {
|
||||||
|
this.campusAgencylist = res.data.campusList
|
||||||
|
this.departmentlist = res.data.departmentList
|
||||||
|
} else if (nodeType == 'CAMPUS') {
|
||||||
|
this.departmentlist = res.data.departmentList
|
||||||
|
}
|
||||||
|
this.wardlist = res.data.wardList
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//选中医院获取院区
|
||||||
|
changehospitalAgency(id) {
|
||||||
|
this.getAgencyListinfo('HOSPITAL', id)
|
||||||
|
// let query = {
|
||||||
|
// agencyStatus: 'ON',
|
||||||
|
// nodeType: 'CAMPUS',
|
||||||
|
// parentId: id,
|
||||||
|
// }
|
||||||
|
// selectAgencyList(query).then(res => {
|
||||||
|
// this.campusAgencylist = res.data
|
||||||
|
this.queryParams.campusAgencyId = null
|
||||||
|
this.queryParams.departmentId = null
|
||||||
|
this.queryParams.wardId = null
|
||||||
|
this.queryParams.attendingPhysicianId = null
|
||||||
|
// })
|
||||||
|
//医生
|
||||||
|
this.usergetListinfo();
|
||||||
|
},
|
||||||
|
//选中院区获取科室
|
||||||
|
changecampusAgency(id) {
|
||||||
|
this.getAgencyListinfo('CAMPUS', id)
|
||||||
|
// let query = {
|
||||||
|
// nodeType: 'DEPARTMENT',
|
||||||
|
// agencyId: id,
|
||||||
|
// }
|
||||||
|
// getDepartmentList(query).then(res => {
|
||||||
|
// this.departmentlist = res.data
|
||||||
|
this.queryParams.departmentId = null
|
||||||
|
this.queryParams.wardId = null
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
//选中科室获取病区
|
||||||
|
changedepartment(id) {
|
||||||
|
this.getAgencyListinfo('DEPARTMENT', id)
|
||||||
|
// let query = {
|
||||||
|
// nodeType: 'WARD',
|
||||||
|
// parentDepartmentId: id,
|
||||||
|
// }
|
||||||
|
// getDepartmentList(query).then(res => {
|
||||||
|
// this.wardlist = res.data
|
||||||
|
this.queryParams.wardId = null
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
//清空医院
|
||||||
|
clearhospitalAgency() {
|
||||||
|
this.queryParams.campusAgencyId = null
|
||||||
|
this.queryParams.departmentId = null
|
||||||
|
this.queryParams.wardId = null
|
||||||
|
this.queryParams.attendingPhysicianId = null
|
||||||
|
},
|
||||||
|
//清空院区
|
||||||
|
clearcampusAgency() {
|
||||||
|
this.queryParams.departmentId = null
|
||||||
|
this.queryParams.wardId = null
|
||||||
|
this.getAgencyListinfo('HOSPITAL', this.queryParams.hospitalAgencyId)
|
||||||
|
},
|
||||||
|
//清空科室
|
||||||
|
cleardepartment() {
|
||||||
|
this.queryParams.wardId = null
|
||||||
|
this.getAgencyListinfo('CAMPUS', this.queryParams.campusAgencyId)
|
||||||
|
},
|
||||||
|
//获取医院list
|
||||||
|
selectAgencyinfo() {
|
||||||
|
let query = {
|
||||||
|
agencyStatus: "ON",
|
||||||
|
nodeType: "HOSPITAL",
|
||||||
|
};
|
||||||
|
selectAgencyList(query).then((res) => {
|
||||||
|
this.hospitalAgencylist = res.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 查询患者管理任务执行记录列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
manualFollowUpList(this.queryParams).then((response) => {
|
||||||
|
this.taskExecuteRecordList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
id: null,
|
||||||
|
patientId: null,
|
||||||
|
manageRouteId: null,
|
||||||
|
manageRouteNodeId: null,
|
||||||
|
patientName: null,
|
||||||
|
manageRouteName: null,
|
||||||
|
manageRouteNodeName: null,
|
||||||
|
taskContent: null,
|
||||||
|
executeTime: null,
|
||||||
|
executePerson: null,
|
||||||
|
executeType: null,
|
||||||
|
executeRemark: null,
|
||||||
|
createBy: null,
|
||||||
|
createTime: null,
|
||||||
|
updateBy: null,
|
||||||
|
updateTime: null,
|
||||||
|
};
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
// 随访时间
|
||||||
|
chooseTime() {
|
||||||
|
if (this.intentionalTime == null) {
|
||||||
|
this.intentionalTime = [];
|
||||||
|
this.queryParams.followStartTime = null
|
||||||
|
this.queryParams.followEndTime = null
|
||||||
|
} else {
|
||||||
|
this.queryParams.followStartTime = this.intentionalTime[0]
|
||||||
|
this.queryParams.followEndTime = this.intentionalTime[1]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 门诊
|
||||||
|
mzchange(){
|
||||||
|
if (this.mzTime == null) {
|
||||||
|
this.mzTime = [];
|
||||||
|
this.queryParams.clinicalStartTime = null
|
||||||
|
this.queryParams.clinicalEndTime = null
|
||||||
|
} else {
|
||||||
|
this.queryParams.clinicalStartTime = this.mzTime[0]
|
||||||
|
this.queryParams.clinicalEndTime = this.mzTime[1]
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
// 入院
|
||||||
|
rychange(){
|
||||||
|
if (this.ryTime == null) {
|
||||||
|
this.ryTime = [];
|
||||||
|
this.queryParams.admissionStartTime = null
|
||||||
|
this.queryParams.admissionEndTime = null
|
||||||
|
} else {
|
||||||
|
this.queryParams.admissionStartTime = this.ryTime[0]
|
||||||
|
this.queryParams.admissionEndTime = this.ryTime[1]
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
this.intentionalTime = [];
|
||||||
|
this.mzTime = [];
|
||||||
|
this.ryTime = [];
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map((item) => item.id);
|
||||||
|
this.single = selection.length !== 1;
|
||||||
|
this.multiple = !selection.length;
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd() {
|
||||||
|
this.reset();
|
||||||
|
this.open = true;
|
||||||
|
this.title = "添加患者管理任务执行记录";
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate(row) {
|
||||||
|
console.log(row)
|
||||||
|
this.$router.push({
|
||||||
|
path: "/task/followupsee",
|
||||||
|
query: {
|
||||||
|
patientId: row.patientId,
|
||||||
|
taskContent: row.taskContent,
|
||||||
|
cardNo: row.cardNo,
|
||||||
|
patientName: row.patientName,
|
||||||
|
patientPhone: row.patientPhone,
|
||||||
|
sex: row.sex,
|
||||||
|
birthDate: row.birthDate,
|
||||||
|
familyMemberPhone: row.familyMemberPhone,
|
||||||
|
address: row.address,
|
||||||
|
patientSource: row.patientSource,
|
||||||
|
createTime: row.createTime,
|
||||||
|
age: row.birthDate ? getAge(row.birthDate) : "",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm() {
|
||||||
|
this.$refs["form"].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.form.id != null) {
|
||||||
|
updateTaskExecuteRecord(this.form).then((response) => {
|
||||||
|
this.$modal.msgSuccess("修改成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addTaskExecuteRecord(this.form).then((response) => {
|
||||||
|
this.$modal.msgSuccess("新增成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// handleClick(tab, event) {
|
||||||
|
// this.intentionalTime = [];
|
||||||
|
// this.queryParams.startDate = null;
|
||||||
|
// this.queryParams.endDate = null;
|
||||||
|
// // this.signTime = []
|
||||||
|
// // this.queryParams.signTimeStart = null
|
||||||
|
// // this.queryParams.signTimeEnd = null
|
||||||
|
// this.getList();
|
||||||
|
// },
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const ids = row.id || this.ids;
|
||||||
|
this.$modal
|
||||||
|
.confirm(
|
||||||
|
'是否确认删除患者管理任务执行记录编号为"' + ids + '"的数据项?'
|
||||||
|
)
|
||||||
|
.then(function () {
|
||||||
|
return delTaskExecuteRecord(ids);
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
.catch(() => { });
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
this.download(
|
||||||
|
"system/taskExecuteRecord/export",
|
||||||
|
{
|
||||||
|
...this.queryParams,
|
||||||
|
},
|
||||||
|
`taskExecuteRecord_${new Date().getTime()}.xlsx`
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
326
src/views/system/followupsee/index.vue
Normal file
326
src/views/system/followupsee/index.vue
Normal file
@ -0,0 +1,326 @@
|
|||||||
|
<template>
|
||||||
|
<div class="header">
|
||||||
|
<div class="topheader">
|
||||||
|
<div class="user">
|
||||||
|
<img
|
||||||
|
class="headsculpture"
|
||||||
|
src="../../../assets/manage/touxiang.png"
|
||||||
|
alt=""
|
||||||
|
v-if="list.sex == 'MALE'"
|
||||||
|
/>
|
||||||
|
<img
|
||||||
|
class="headsculpture"
|
||||||
|
src="../../../assets/manage/nvtouxiang.png"
|
||||||
|
alt=""
|
||||||
|
v-if="list.sex == 'FEMALE'"
|
||||||
|
/>
|
||||||
|
<div class="name">
|
||||||
|
{{ list.patientName }}
|
||||||
|
</div>
|
||||||
|
<div class="gender">
|
||||||
|
{{ list.sex == "MALE" ? "男" : list.sex == "FEMALE" ? "女" : "" }}
|
||||||
|
</div>
|
||||||
|
<div class="age">
|
||||||
|
{{ list.age }}
|
||||||
|
</div>
|
||||||
|
<div class="source">
|
||||||
|
<div class="item" @click="submit"><el-button plain>保存</el-button></div>
|
||||||
|
<div class="item" @click="cencal"><el-button plain>取消</el-button></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="information">
|
||||||
|
<div class="top">
|
||||||
|
<div>身份证号:{{ list.cardNo }}</div>
|
||||||
|
<div>患者电话:{{ list.patientPhone }}</div>
|
||||||
|
<div style="width: 50%">出生日期:{{ list.birthDate }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="bottom">
|
||||||
|
<!-- <div>注册时间:{{ $route.query.createTime }}</div> -->
|
||||||
|
<div>家属电话:{{ list.familyMemberPhone }}</div>
|
||||||
|
<div style="width: 50%">住址:{{ list.address }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bottomheader">
|
||||||
|
|
||||||
|
<div style="display: flex">
|
||||||
|
<!-- 问卷模板 -->
|
||||||
|
<div
|
||||||
|
class="right"
|
||||||
|
v-if="$route.query.taskContent == 'QUESTIONNAIRE_SCALE'"
|
||||||
|
>
|
||||||
|
<div class="sport">问卷模板: Barthel指数评定问卷</div>
|
||||||
|
<div class="words">
|
||||||
|
您好!本问卷用于评估日常生活能力,请根据自身日常实际表现选择合适的选项。
|
||||||
|
</div>
|
||||||
|
<div class="words">
|
||||||
|
1.进食【单选题】
|
||||||
|
<el-radio-group v-model="radio" class="custom-radio-group">
|
||||||
|
<el-radio label="1" class="custom">备选项</el-radio>
|
||||||
|
<el-radio label="2" class="custom">备选项</el-radio>
|
||||||
|
<el-radio label="3" class="custom">备选项</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 电话外呼 -->
|
||||||
|
<div v-if="$route.query.taskContent == 'PHONE_OUTBOUND'">
|
||||||
|
<div class="sport">电话外呼</div>
|
||||||
|
<div class="nexttime">话术名称</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 人工随访 -->
|
||||||
|
<div class="right" v-if="$route.query.taskContent == 'ARTIFICIAL_FOLLOW_UP'">
|
||||||
|
<div class="sport">人工随访模板: 神经内科人工随访</div>
|
||||||
|
<div class="words">**您好!</div>
|
||||||
|
<div class="words">
|
||||||
|
我是✕✕医院的工作人员,今天给您打电话想要了解一下您的恢复情况。
|
||||||
|
</div>
|
||||||
|
<div class="words">
|
||||||
|
1.进食【单选题】
|
||||||
|
<el-radio-group v-model="radio" class="custom-radio-group">
|
||||||
|
<el-radio label="1" class="custom">备选项</el-radio>
|
||||||
|
<el-radio label="2" class="custom">备选项</el-radio>
|
||||||
|
<el-radio label="3" class="custom">备选项</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <div v-if="$route.query.taskContent == 'ARTIFICIAL_FOLLOW_UP'">
|
||||||
|
<div class="sport">人工随访模板:</div>
|
||||||
|
<div class="sport">人工随访模板内容:</div>
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { selectVisitRecord } from "@/api/system/taskExecuteRecord";
|
||||||
|
export default {
|
||||||
|
name: "patientdetails",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
radio: "1",
|
||||||
|
activeName: "first",
|
||||||
|
id: "",
|
||||||
|
list: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
console.log(this.$route.query);
|
||||||
|
this.id = this.$route.query.patientId;
|
||||||
|
this.info();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
info() {
|
||||||
|
selectVisitRecord(this.id).then((res) => {
|
||||||
|
console.log(res);
|
||||||
|
this.list = res.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 保存
|
||||||
|
submit(){},
|
||||||
|
// 取消
|
||||||
|
cencal(){
|
||||||
|
|
||||||
|
this.$router.push({
|
||||||
|
path: "/task/followup",
|
||||||
|
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
handleClick(tab, event) {
|
||||||
|
console.log(tab, event);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.custom-radio-group {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 10px 0 10px 10px;
|
||||||
|
.custom {
|
||||||
|
padding: 10px 0 10px 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.bodytop {
|
||||||
|
position: relative;
|
||||||
|
top: 20px;
|
||||||
|
// height: 500px;
|
||||||
|
width: 400px;
|
||||||
|
margin: 0 auto;
|
||||||
|
// background: red;f
|
||||||
|
overflow: auto;
|
||||||
|
border: 1px solid #e2e2e2;
|
||||||
|
.titledata {
|
||||||
|
margin: 30px 0px 15px 30px;
|
||||||
|
top: 14px;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.audiotop {
|
||||||
|
margin: 10px 0px 10px 30px;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
// width: 362px;
|
||||||
|
// height: 127px;
|
||||||
|
margin: 0px 0px 0px 30px;
|
||||||
|
}
|
||||||
|
.know {
|
||||||
|
margin: 11px 0px 10px 30px;
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 550;
|
||||||
|
}
|
||||||
|
.knowlist {
|
||||||
|
margin: 10px 0px 10px 30px;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.right {
|
||||||
|
width: 70%;
|
||||||
|
height: 500px;
|
||||||
|
// background: yellow;
|
||||||
|
}
|
||||||
|
.header {
|
||||||
|
background-color: #f1f3f5;
|
||||||
|
padding-top: 10px;
|
||||||
|
|
||||||
|
::v-deep .el-tabs__header {
|
||||||
|
margin: 0 !important;
|
||||||
|
width: 100%;
|
||||||
|
// overflow: auto;
|
||||||
|
// height: 500px;
|
||||||
|
// background: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottomheader {
|
||||||
|
width: 99%;
|
||||||
|
background-color: #fff;
|
||||||
|
margin: 10px auto;
|
||||||
|
padding: 10px 20px;
|
||||||
|
.sport {
|
||||||
|
padding: 10px 50px 10px 10px;
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
.words {
|
||||||
|
font-size: 15px;
|
||||||
|
padding: 10px 50px 10px 10px;
|
||||||
|
}
|
||||||
|
.sports {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%);
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
.word {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 550;
|
||||||
|
padding: 50px 50px 10px 10px;
|
||||||
|
}
|
||||||
|
.videoleft {
|
||||||
|
width: 40%;
|
||||||
|
height: 200px;
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
.time {
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 550;
|
||||||
|
padding: 10px 50px 10px 10px;
|
||||||
|
}
|
||||||
|
.number {
|
||||||
|
width: 25px;
|
||||||
|
height: 25px;
|
||||||
|
text-align: center;
|
||||||
|
display: inline-block;
|
||||||
|
color: white;
|
||||||
|
background: blue;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
.nexttime {
|
||||||
|
font-size: 15px;
|
||||||
|
padding: 10px 50px 10px 10px;
|
||||||
|
}
|
||||||
|
.images {
|
||||||
|
width: 53%;
|
||||||
|
height: 241px;
|
||||||
|
margin: 0 auto;
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
.attention {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 550;
|
||||||
|
padding: 10px 50px 10px 10px;
|
||||||
|
}
|
||||||
|
// .videobottom
|
||||||
|
// {
|
||||||
|
// font-size: 14px;
|
||||||
|
// font-weight: 550;
|
||||||
|
// padding: 10px 50px 10px 10px;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
.topheader {
|
||||||
|
width: 99%;
|
||||||
|
background-color: #fff;
|
||||||
|
margin: 0 auto;
|
||||||
|
|
||||||
|
.information {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
padding: 10px 20px;
|
||||||
|
height: 110px;
|
||||||
|
|
||||||
|
.top,
|
||||||
|
.bottom {
|
||||||
|
color: #666666;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
div {
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.user {
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 20px;
|
||||||
|
display: flex;
|
||||||
|
height: 80px;
|
||||||
|
align-items: center;
|
||||||
|
line-height: 80px;
|
||||||
|
|
||||||
|
.source {
|
||||||
|
display: flex;
|
||||||
|
position: relative;
|
||||||
|
right: 59px;
|
||||||
|
position: absolute;
|
||||||
|
.item{
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.name {
|
||||||
|
font-size: 20px;
|
||||||
|
padding-left: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gender {
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.age {
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.headsculpture {
|
||||||
|
border-radius: 50%;
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user