|
|
@ -6,10 +6,10 @@ |
|
|
@queryTable="getList" |
|
|
@queryTable="getList" |
|
|
></right-toolbar> |
|
|
></right-toolbar> |
|
|
</el-row> |
|
|
</el-row> |
|
|
<el-tabs v-model="activeName" @tab-click="handleClick"> |
|
|
<el-tabs v-model="queryParams.param.status" @tab-click="handleClick"> |
|
|
<el-tab-pane label="待随访" name="first"></el-tab-pane> |
|
|
<el-tab-pane label="待随访" name="0"></el-tab-pane> |
|
|
<el-tab-pane label="已随访" name="second"></el-tab-pane> |
|
|
<el-tab-pane label="已随访" name="1"></el-tab-pane> |
|
|
<el-tab-pane label="失访" name="third"></el-tab-pane> |
|
|
<el-tab-pane label="失访" name="2"></el-tab-pane> |
|
|
</el-tabs> |
|
|
</el-tabs> |
|
|
<el-table |
|
|
<el-table |
|
|
v-loading="loading" |
|
|
v-loading="loading" |
|
|
@ -17,7 +17,26 @@ |
|
|
@selection-change="handleSelectionChange" |
|
|
@selection-change="handleSelectionChange" |
|
|
> |
|
|
> |
|
|
<el-table-column type="selection" width="55" align="center" /> |
|
|
<el-table-column type="selection" width="55" align="center" /> |
|
|
<el-table-column label="姓名" align="center" prop="name" width="100" /> |
|
|
<el-table-column |
|
|
|
|
|
label="工单id" |
|
|
|
|
|
show-overflow-tooltip |
|
|
|
|
|
align="center" |
|
|
|
|
|
prop="" |
|
|
|
|
|
width="100" |
|
|
|
|
|
/> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
label="随访队列" |
|
|
|
|
|
show-overflow-tooltip |
|
|
|
|
|
align="" |
|
|
|
|
|
prop="name" |
|
|
|
|
|
width="100" |
|
|
|
|
|
/> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
label="患者姓名" |
|
|
|
|
|
align="center" |
|
|
|
|
|
prop="name" |
|
|
|
|
|
width="100" |
|
|
|
|
|
/> |
|
|
<el-table-column |
|
|
<el-table-column |
|
|
label="性别" |
|
|
label="性别" |
|
|
align="center" |
|
|
align="center" |
|
|
@ -32,25 +51,18 @@ |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
|
|
|
|
|
|
<el-table-column |
|
|
<el-table-column |
|
|
label="出生日期" |
|
|
label="年龄" |
|
|
align="center" |
|
|
align="center" |
|
|
prop="birthDate" |
|
|
prop="age" |
|
|
show-overflow-tooltip |
|
|
show-overflow-tooltip |
|
|
width="150" |
|
|
width="150" |
|
|
/> |
|
|
/> |
|
|
<el-table-column |
|
|
<el-table-column |
|
|
label="民族" |
|
|
label="证件号码" |
|
|
align="center" |
|
|
|
|
|
prop="ethnicity" |
|
|
|
|
|
show-overflow-tooltip |
|
|
|
|
|
width="100" |
|
|
|
|
|
/> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
label="受教育年限" |
|
|
|
|
|
align="center" |
|
|
align="center" |
|
|
prop="educationYears" |
|
|
prop="idCard" |
|
|
show-overflow-tooltip |
|
|
show-overflow-tooltip |
|
|
width="100" |
|
|
width="180" |
|
|
/> |
|
|
/> |
|
|
<el-table-column |
|
|
<el-table-column |
|
|
label="手机号码" |
|
|
label="手机号码" |
|
|
@ -60,89 +72,74 @@ |
|
|
width="150" |
|
|
width="150" |
|
|
/> |
|
|
/> |
|
|
<el-table-column |
|
|
<el-table-column |
|
|
label="证件类型" |
|
|
label="随访序号" |
|
|
align="center" |
|
|
align="center" |
|
|
prop="idCardType" |
|
|
prop="phone" |
|
|
show-overflow-tooltip |
|
|
show-overflow-tooltip |
|
|
width="200" |
|
|
width="150" |
|
|
> |
|
|
/> |
|
|
<template slot-scope="scope"> |
|
|
|
|
|
{{ idCardTypeValue[scope.row.idCardType] }} |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
<el-table-column |
|
|
label="证件号码" |
|
|
label="开始时间" |
|
|
align="center" |
|
|
align="center" |
|
|
prop="idCard" |
|
|
prop="phone" |
|
|
show-overflow-tooltip |
|
|
show-overflow-tooltip |
|
|
width="180" |
|
|
width="150" |
|
|
/> |
|
|
/> |
|
|
|
|
|
|
|
|
<el-table-column |
|
|
<el-table-column |
|
|
label="建档人" |
|
|
label="结束时间" |
|
|
align="center" |
|
|
align="center" |
|
|
prop="createBy" |
|
|
prop="phone" |
|
|
show-overflow-tooltip |
|
|
show-overflow-tooltip |
|
|
width="100" |
|
|
width="150" |
|
|
/> |
|
|
/> |
|
|
|
|
|
<!--待随访: 随访状态(待随访/即将超期/超期) --> |
|
|
|
|
|
<!--已随访: 随访状态(已随访/超随访期) --> |
|
|
|
|
|
<!--待随访: 随访状态(待随访) --> |
|
|
<el-table-column |
|
|
<el-table-column |
|
|
label="建档组织(医院名称)" |
|
|
label="随访状态" |
|
|
align="center" |
|
|
align="center" |
|
|
prop="organization" |
|
|
prop="phone" |
|
|
show-overflow-tooltip |
|
|
show-overflow-tooltip |
|
|
width="150" |
|
|
width="150" |
|
|
/> |
|
|
> |
|
|
<el-table-column label="建档日期" align="center" width="130"> |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<span>{{ |
|
|
{{ status[scope.row.status] }} |
|
|
parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}") |
|
|
|
|
|
}}</span> |
|
|
|
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column |
|
|
<el-table-column |
|
|
fixed="right" |
|
|
label="失访状态" |
|
|
label="来源" |
|
|
|
|
|
align="center" |
|
|
align="center" |
|
|
prop="source" |
|
|
prop="phone" |
|
|
show-overflow-tooltip |
|
|
show-overflow-tooltip |
|
|
width="100" |
|
|
width="150" |
|
|
> |
|
|
/> |
|
|
<template slot-scope="scope"> |
|
|
<el-table-column |
|
|
<span v-if="scope.row.gender == 0">筛查</span> |
|
|
label="失访原因" |
|
|
<span v-if="scope.row.gender == 1">录入</span> |
|
|
align="center" |
|
|
<span v-if="scope.row.gender == 2">HIS</span> |
|
|
prop="phone" |
|
|
</template> |
|
|
show-overflow-tooltip |
|
|
</el-table-column> |
|
|
width="150" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<el-table-column fixed="right" label="操作" align="center" width="150"> |
|
|
<el-table-column fixed="right" label="操作" align="center" width="150"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<!-- :disabled="scope.row.status !== '0'" --> |
|
|
<el-button |
|
|
<el-button |
|
|
size="mini" |
|
|
size="mini" |
|
|
type="text" |
|
|
type="text" |
|
|
icon="el-icon-edit" |
|
|
icon="el-icon-s-check" |
|
|
@click="handleUpdate(scope.row)" |
|
|
@click="handleFollow(scope.row)" |
|
|
>修改</el-button |
|
|
|
|
|
> |
|
|
|
|
|
<el-button |
|
|
|
|
|
size="mini" |
|
|
|
|
|
type="text" |
|
|
|
|
|
icon="el-icon-delete" |
|
|
|
|
|
@click="handleDelete(scope.row)" |
|
|
|
|
|
>删除</el-button |
|
|
|
|
|
> |
|
|
|
|
|
<el-button |
|
|
|
|
|
size="mini" |
|
|
|
|
|
type="text" |
|
|
|
|
|
icon="el-icon-tickets" |
|
|
|
|
|
@click="handleDetails(scope.row)" |
|
|
|
|
|
>详情</el-button |
|
|
|
|
|
> |
|
|
> |
|
|
|
|
|
随访 |
|
|
|
|
|
</el-button> |
|
|
<el-button |
|
|
<el-button |
|
|
size="mini" |
|
|
size="mini" |
|
|
type="text" |
|
|
type="text" |
|
|
icon="el-icon-notebook-2" |
|
|
icon="el-icon-s-release" |
|
|
@click="handleDelete(scope.row)" |
|
|
@click="handleLossFollow(scope.row)" |
|
|
>诊疗档案</el-button |
|
|
|
|
|
> |
|
|
> |
|
|
|
|
|
失访 |
|
|
|
|
|
</el-button> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
</el-table> |
|
|
</el-table> |
|
|
@ -155,10 +152,10 @@ |
|
|
@pagination="getList" |
|
|
@pagination="getList" |
|
|
/> |
|
|
/> |
|
|
|
|
|
|
|
|
<!-- 添加或修改公告对话框 --> |
|
|
<!-- 失访 --> |
|
|
<el-dialog |
|
|
<el-dialog |
|
|
class="popup" |
|
|
class="popup" |
|
|
:title="title" |
|
|
title="失访" |
|
|
:visible.sync="open" |
|
|
:visible.sync="open" |
|
|
width="780px" |
|
|
width="780px" |
|
|
append-to-body |
|
|
append-to-body |
|
|
@ -170,8 +167,58 @@ |
|
|
:rules="rules" |
|
|
:rules="rules" |
|
|
label-width="90px" |
|
|
label-width="90px" |
|
|
> |
|
|
> |
|
|
<el-form-item label="姓名" prop="name"> |
|
|
<el-form-item label="随访次数" prop="times"> |
|
|
<el-input v-model="form.name" placeholder="请输入" /> |
|
|
<el-input v-model="form.times" placeholder="请输入" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="失访原因" prop="reason"> |
|
|
|
|
|
<el-select v-model="form.reason" placeholder="请选择"> |
|
|
|
|
|
<el-option-group |
|
|
|
|
|
v-for="group in options" |
|
|
|
|
|
:key="group.label" |
|
|
|
|
|
:label="group.label" |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in group.options" |
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
:label="item.label" |
|
|
|
|
|
:value="item.value" |
|
|
|
|
|
> |
|
|
|
|
|
</el-option> |
|
|
|
|
|
</el-option-group> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<div slot="footer" class="dialog-footer"> |
|
|
|
|
|
<el-button type="primary" @click="submitForm">确 定</el-button> |
|
|
|
|
|
<el-button @click="cancel">取 消</el-button> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-dialog> |
|
|
|
|
|
<!-- 随访 --> |
|
|
|
|
|
<el-dialog |
|
|
|
|
|
class="popup" |
|
|
|
|
|
title="失访" |
|
|
|
|
|
:visible.sync="open1" |
|
|
|
|
|
width="780px" |
|
|
|
|
|
append-to-body |
|
|
|
|
|
> |
|
|
|
|
|
<el-form |
|
|
|
|
|
class="formStep" |
|
|
|
|
|
ref="form" |
|
|
|
|
|
:model="form" |
|
|
|
|
|
:rules="rules" |
|
|
|
|
|
label-width="90px" |
|
|
|
|
|
> |
|
|
|
|
|
<el-form-item label="随访人" prop="followuper"> |
|
|
|
|
|
<el-input v-model="form.followuper" placeholder="请输入" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="随访时间" prop="followupTime"> |
|
|
|
|
|
<el-input v-model="form.followupTime" placeholder="请输入" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="随访次数" prop="times"> |
|
|
|
|
|
<el-input v-model="form.times" placeholder="请输入" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="随访内容" prop="followupText"> |
|
|
|
|
|
<el-input v-model="form.followupText" placeholder="请输入" /> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<div slot="footer" class="dialog-footer"> |
|
|
<div slot="footer" class="dialog-footer"> |
|
|
@ -183,20 +230,70 @@ |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
import { getToken } from "@/utils/auth"; |
|
|
import { queryTask, updStatus, followPatient } from "@/api/followupFile"; |
|
|
import { queryTask } from "@/api/followupFile"; |
|
|
|
|
|
export default { |
|
|
export default { |
|
|
name: "Notice", |
|
|
name: "Notice", |
|
|
dicts: ["sys_notice_status", "sys_notice_type"], |
|
|
|
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
|
|
|
options: [ |
|
|
|
|
|
{ |
|
|
|
|
|
label: "患者原因", |
|
|
|
|
|
options: [ |
|
|
|
|
|
{ |
|
|
|
|
|
value: "患者病情加重或死亡,无法参与随访", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
value: "患者依从性差,不配合随访", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
value: "患者主动退出或不愿继续随访", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
value: "患者搬迁、工作变动、联系方式更换,无法联系到患者", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
value: "信息记录不准确,错误记录患者联系方式或地址", |
|
|
|
|
|
}, |
|
|
|
|
|
], |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
label: "医疗机构原因", |
|
|
|
|
|
options: [ |
|
|
|
|
|
{ |
|
|
|
|
|
value: "随访管理不足,未及时安排随访", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
value: "随访人员更换,管理混乱导致遗漏", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
value: "转诊或转院", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
value: "医疗资源受限", |
|
|
|
|
|
}, |
|
|
|
|
|
], |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
label: "不可抗力", |
|
|
|
|
|
options: [ |
|
|
|
|
|
{ |
|
|
|
|
|
value: "社会动荡或自然灾害", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
value: "疫情或公共卫生事件", |
|
|
|
|
|
}, |
|
|
|
|
|
], |
|
|
|
|
|
}, |
|
|
|
|
|
], |
|
|
activeName: "", |
|
|
activeName: "", |
|
|
headers: { |
|
|
status: { |
|
|
Authorization: "Bearer " + getToken(), |
|
|
0: "待随访", |
|
|
deptId: localStorage.getItem("hospitalId"), |
|
|
1: "已随访", |
|
|
|
|
|
2: "失访", |
|
|
|
|
|
3: "即将超期", |
|
|
|
|
|
4: "超期未随访", |
|
|
|
|
|
5: "超期已随访", |
|
|
}, |
|
|
}, |
|
|
uploadFileUrl1: process.env.VUE_APP_BASE_API + "/pms/importTjbgZip", // 上传的图片服务器地址 |
|
|
|
|
|
fileList: [], |
|
|
|
|
|
idCardType: [ |
|
|
idCardType: [ |
|
|
{ |
|
|
{ |
|
|
label: "身份证", |
|
|
label: "身份证", |
|
|
@ -230,13 +327,14 @@ export default { |
|
|
listDat: [{}], // 公告表格数据 |
|
|
listDat: [{}], // 公告表格数据 |
|
|
title: "", // 弹出层标题 |
|
|
title: "", // 弹出层标题 |
|
|
open: false, // 是否显示弹出层 |
|
|
open: false, // 是否显示弹出层 |
|
|
|
|
|
open1: false, // 是否显示弹出层 |
|
|
importOpen: false, // 导入弹窗 |
|
|
importOpen: false, // 导入弹窗 |
|
|
// 查询参数 |
|
|
// 查询参数 |
|
|
queryParams: { |
|
|
queryParams: { |
|
|
pageNum: 1, |
|
|
pageNum: 1, |
|
|
pageSize: 10, |
|
|
pageSize: 10, |
|
|
param: { |
|
|
param: { |
|
|
keywords: "", //关键字 |
|
|
status: "0", |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
formDisabled: false, |
|
|
formDisabled: false, |
|
|
@ -245,8 +343,21 @@ export default { |
|
|
form: {}, |
|
|
form: {}, |
|
|
// 表单校验 |
|
|
// 表单校验 |
|
|
rules: { |
|
|
rules: { |
|
|
name: [ |
|
|
followuper: [ |
|
|
{ required: true, message: "患者姓名不能为空", trigger: "blur" }, |
|
|
{ required: true, message: "随访人不能为空", trigger: "blur" }, |
|
|
|
|
|
], |
|
|
|
|
|
followupTime: [ |
|
|
|
|
|
{ required: true, message: "随访时间不能为空", trigger: "change" }, |
|
|
|
|
|
], |
|
|
|
|
|
followupText: [ |
|
|
|
|
|
{ required: true, message: "随访内容不能为空", trigger: "blur" }, |
|
|
|
|
|
], |
|
|
|
|
|
times: [ |
|
|
|
|
|
{ required: true, message: "随访次数不能为空", trigger: "blur" }, |
|
|
|
|
|
], |
|
|
|
|
|
|
|
|
|
|
|
reason: [ |
|
|
|
|
|
{ required: true, message: "失访原因不能为空", trigger: "change" }, |
|
|
], |
|
|
], |
|
|
}, |
|
|
}, |
|
|
}; |
|
|
}; |
|
|
@ -256,7 +367,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
handleClick(tab, event) { |
|
|
handleClick(tab, event) { |
|
|
console.log(tab, event); |
|
|
this.getList(); |
|
|
}, |
|
|
}, |
|
|
/** 查询公告列表 */ |
|
|
/** 查询公告列表 */ |
|
|
getList() { |
|
|
getList() { |
|
|
@ -274,18 +385,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
// 表单重置 |
|
|
// 表单重置 |
|
|
reset() { |
|
|
reset() { |
|
|
this.form = { |
|
|
this.form = {}; |
|
|
name: "", // 姓名 |
|
|
|
|
|
gender: 0, // 性别 |
|
|
|
|
|
birthDate: "", // 出生日期 |
|
|
|
|
|
ethnicity: "", // 民族 |
|
|
|
|
|
educationYears: "", // 教育程度 |
|
|
|
|
|
phone: "", // 联系电话 |
|
|
|
|
|
idCardType: "", // 证件类型 |
|
|
|
|
|
idCard: "", // 证件号码 |
|
|
|
|
|
currentIllnessHistory: [], // 现病史 |
|
|
|
|
|
currentIllnessHistoryQT: "", // 现病史 |
|
|
|
|
|
}; |
|
|
|
|
|
this.resetForm("form"); |
|
|
this.resetForm("form"); |
|
|
}, |
|
|
}, |
|
|
/** 搜索按钮操作 */ |
|
|
/** 搜索按钮操作 */ |
|
|
@ -308,25 +408,17 @@ export default { |
|
|
handleAdd() { |
|
|
handleAdd() { |
|
|
this.reset(); |
|
|
this.reset(); |
|
|
this.open = true; |
|
|
this.open = true; |
|
|
this.title = "新增患者档案"; |
|
|
|
|
|
this.formDisabled = false; |
|
|
|
|
|
}, |
|
|
}, |
|
|
/** 修改按钮操作 */ |
|
|
/** 随访 */ |
|
|
handleUpdate(row) { |
|
|
handleFollow(row) { |
|
|
this.open = true; |
|
|
this.open1 = true; |
|
|
this.title = "修改患者档案"; |
|
|
|
|
|
this.formDisabled = false; |
|
|
|
|
|
this.form = JSON.parse(JSON.stringify(row)); |
|
|
this.form = JSON.parse(JSON.stringify(row)); |
|
|
// 字符串转数组 |
|
|
|
|
|
this.form.currentIllnessHistory = |
|
|
|
|
|
this.form.currentIllnessHistory.split(","); |
|
|
|
|
|
}, |
|
|
}, |
|
|
/** 详情按钮操作 */ |
|
|
/** 失访 */ |
|
|
handleDetails(row) { |
|
|
handleLossFollow(row) { |
|
|
this.open = true; |
|
|
this.open = true; |
|
|
this.title = "患者档案详情"; |
|
|
|
|
|
this.formDisabled = true; |
|
|
|
|
|
this.form = JSON.parse(JSON.stringify(row)); |
|
|
this.form = JSON.parse(JSON.stringify(row)); |
|
|
|
|
|
this.form.status = 2; |
|
|
}, |
|
|
}, |
|
|
/** 提交按钮 */ |
|
|
/** 提交按钮 */ |
|
|
submitForm: function () { |
|
|
submitForm: function () { |
|
|
|