|
|
@ -1,113 +1,203 @@ |
|
|
|
<template> |
|
|
|
<div class="app-container"> |
|
|
|
<div class="hospital">山西因孚社区</div> |
|
|
|
<el-form |
|
|
|
v-if="stepNum == 1" |
|
|
|
:rules="rules" |
|
|
|
ref="form" |
|
|
|
:model="form" |
|
|
|
label-width="110px" |
|
|
|
:model="queryParams" |
|
|
|
ref="queryForm" |
|
|
|
size="small" |
|
|
|
:inline="true" |
|
|
|
v-show="showSearch" |
|
|
|
label-width="68px" |
|
|
|
> |
|
|
|
<!-- 姓名、性别(单选)、出生日期、年龄、联系方式 --> |
|
|
|
<div class="card"> |
|
|
|
<div class="card-title">基本信息</div> |
|
|
|
<div> |
|
|
|
<el-form-item label="姓名" prop="name"> |
|
|
|
<el-input v-model="form.name" placeholder="请输入姓名"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="性别" prop="sex"> |
|
|
|
<el-radio v-model="form.sex" label="0">男</el-radio> |
|
|
|
<el-radio v-model="form.sex" label="1">女</el-radio> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="出生日期" prop="dateOfBirth"> |
|
|
|
<el-date-picker |
|
|
|
v-model="form.dateOfBirth" |
|
|
|
type="date" |
|
|
|
placeholder="选择日期" |
|
|
|
> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="年龄" prop="age"> |
|
|
|
<el-input |
|
|
|
v-model="form.age" |
|
|
|
type="number" |
|
|
|
placeholder="请输入姓名" |
|
|
|
></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="联系方式" prop="phone"> |
|
|
|
<el-input |
|
|
|
v-model="form.phone" |
|
|
|
type="number" |
|
|
|
placeholder="请输入联系方式" |
|
|
|
></el-input> |
|
|
|
</el-form-item> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 身高、体重,BMI --> |
|
|
|
<div class="card"> |
|
|
|
<div class="card-title">体重自评</div> |
|
|
|
<el-form-item label="身高cm" prop="height"> |
|
|
|
<el-input |
|
|
|
@blur="calculateBMI" |
|
|
|
v-model="form.height" |
|
|
|
type="number" |
|
|
|
placeholder="请输入身高" |
|
|
|
></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="体重kg" prop="weight"> |
|
|
|
<el-form-item label="" prop="noticeTitle"> |
|
|
|
<el-input |
|
|
|
style="width: 300px" |
|
|
|
v-model="queryParams.param.keywords" |
|
|
|
placeholder="支持姓名、全拼、简拼、手机号码" |
|
|
|
clearable |
|
|
|
@keyup.enter.native="handleQuery" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="年龄范围" prop="createBy"> |
|
|
|
<div class="form-item-age"> |
|
|
|
<el-input |
|
|
|
@blur="calculateBMI" |
|
|
|
v-model="form.weight" |
|
|
|
type="number" |
|
|
|
placeholder="请输入体重" |
|
|
|
></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="BMI" prop="BMI"> |
|
|
|
v-model="queryParams.param.startAge" |
|
|
|
placeholder="最小年龄" |
|
|
|
clearable |
|
|
|
@keyup.enter.native="handleQuery" |
|
|
|
/> |
|
|
|
<span>—</span> |
|
|
|
<el-input |
|
|
|
:disabled="true" |
|
|
|
v-model="form.BMI" |
|
|
|
type="number" |
|
|
|
placeholder="BMI" |
|
|
|
></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="结论" prop="verdict"> |
|
|
|
<span :class="`BIMTips${BMIVerdict[form.verdict]}`"> |
|
|
|
{{ form.verdict || "- - -" }}</span |
|
|
|
> |
|
|
|
</el-form-item> |
|
|
|
</div> |
|
|
|
v-model="queryParams.param.endAge" |
|
|
|
placeholder="最大年龄" |
|
|
|
clearable |
|
|
|
@keyup.enter.native="handleQuery" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
<!-- <el-form-item label="建档组织" prop="tenantId"> |
|
|
|
<el-select |
|
|
|
v-model="queryParams.param.tenantId" |
|
|
|
placeholder="请选择" |
|
|
|
clearable |
|
|
|
filterable |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="(item, index) in tenantsListData" |
|
|
|
:label="item.name" |
|
|
|
:value="item.id" |
|
|
|
:key="index" |
|
|
|
/> |
|
|
|
</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> |
|
|
|
<div class="card" v-if="stepNum == 2"> |
|
|
|
<div class="card-title">失眠自评(SRSS)</div> |
|
|
|
<div |
|
|
|
class="item-container" |
|
|
|
v-for="(item, index) in scaleList" |
|
|
|
:key="index" |
|
|
|
|
|
|
|
<el-row :gutter="10" class="mb8"> |
|
|
|
<el-col :span="1.5"> |
|
|
|
<el-button |
|
|
|
type="danger" |
|
|
|
plain |
|
|
|
icon="el-icon-delete" |
|
|
|
size="mini" |
|
|
|
:disabled="multiple" |
|
|
|
@click="handleDelete" |
|
|
|
>删除</el-button |
|
|
|
> |
|
|
|
</el-col> |
|
|
|
<el-col :span="1.5"> |
|
|
|
<el-button |
|
|
|
type="warning" |
|
|
|
plain |
|
|
|
icon="el-icon-download" |
|
|
|
size="mini" |
|
|
|
@click="handleExport" |
|
|
|
> |
|
|
|
导出 |
|
|
|
</el-button> |
|
|
|
</el-col> |
|
|
|
<right-toolbar |
|
|
|
:showSearch.sync="showSearch" |
|
|
|
@queryTable="getList" |
|
|
|
></right-toolbar> |
|
|
|
</el-row> |
|
|
|
|
|
|
|
<el-table |
|
|
|
v-loading="loading" |
|
|
|
:data="listDat" |
|
|
|
@selection-change="handleSelectionChange" |
|
|
|
max-height="600" |
|
|
|
> |
|
|
|
<el-table-column type="selection" width="55" align="center" /> |
|
|
|
<el-table-column |
|
|
|
label="姓名" |
|
|
|
align="center" |
|
|
|
prop="name" |
|
|
|
min-width="100" |
|
|
|
show-overflow-tooltip |
|
|
|
fixed |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
label="性别" |
|
|
|
align="center" |
|
|
|
prop="name" |
|
|
|
min-width="100" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
label="出生日期" |
|
|
|
align="center" |
|
|
|
prop="name" |
|
|
|
min-width="100" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
label="年龄" |
|
|
|
align="center" |
|
|
|
prop="name" |
|
|
|
min-width="100" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
label="联系方式" |
|
|
|
align="center" |
|
|
|
prop="name" |
|
|
|
min-width="100" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
label="身高cm" |
|
|
|
align="center" |
|
|
|
prop="name" |
|
|
|
min-width="100" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
label="体重kg" |
|
|
|
align="center" |
|
|
|
prop="name" |
|
|
|
min-width="100" |
|
|
|
/> |
|
|
|
<el-table-column label="BMI" align="center" prop="name" min-width="100" /> |
|
|
|
<el-table-column |
|
|
|
show-overflow-tooltip |
|
|
|
label="结论" |
|
|
|
align="center" |
|
|
|
prop="name" |
|
|
|
min-width="150" |
|
|
|
> |
|
|
|
<div class="item-title">{{ index + 1 }}. {{ item.question }}</div> |
|
|
|
<div class="item-radio-box"> |
|
|
|
<el-radio-group v-model="form[`topic${index + 1}`]"> |
|
|
|
<el-radio |
|
|
|
class="item-radio" |
|
|
|
v-for="(criteria, index) in item.options" |
|
|
|
:key="index" |
|
|
|
:label="criteria.score" |
|
|
|
>{{ criteria.label }} |
|
|
|
</el-radio> |
|
|
|
</el-radio-group> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="submit-box" v-if="stepNum == 1"> |
|
|
|
<el-button type="primary" class="submit-box-but" @click="submitForm"> |
|
|
|
下一步 |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
<div class="submit-box" v-if="stepNum == 2"> |
|
|
|
<el-button type="primary" class="submit-box-but" @click="scaleSubmitForm"> |
|
|
|
提交 |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
label="失眠自评(SRSS)" |
|
|
|
align="center" |
|
|
|
prop="name" |
|
|
|
min-width="150" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
fixed="right" |
|
|
|
label="创建人/创建时间" |
|
|
|
align="center" |
|
|
|
min-width="140" |
|
|
|
> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div>{{ scope.row.createBy }}</div> |
|
|
|
<span>{{ |
|
|
|
parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}") |
|
|
|
}}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column fixed="right" label="操作" align="center" width="150"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button |
|
|
|
size="mini" |
|
|
|
type="text" |
|
|
|
icon="el-icon-download" |
|
|
|
@click="handleArchives(scope.row)" |
|
|
|
>导出 |
|
|
|
</el-button> |
|
|
|
<el-button |
|
|
|
size="mini" |
|
|
|
type="text" |
|
|
|
icon="el-icon-delete" |
|
|
|
@click="handleArchives(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> |
|
|
|
|
|
|
@ -119,12 +209,13 @@ import { |
|
|
|
patientUpd, |
|
|
|
patientDel, |
|
|
|
} from "@/api/patientFile"; |
|
|
|
// import { tenantsList } from "@/api/member"; |
|
|
|
export default { |
|
|
|
name: "Notice", |
|
|
|
dicts: ["sys_notice_status", "sys_notice_type"], |
|
|
|
data() { |
|
|
|
return { |
|
|
|
stepNum: 2, |
|
|
|
tenantsListData: [], // 组织列表 |
|
|
|
headers: { |
|
|
|
Authorization: "Bearer " + getToken(), |
|
|
|
deptId: localStorage.getItem("hospitalId"), |
|
|
@ -132,269 +223,171 @@ export default { |
|
|
|
uploadFileUrl1: |
|
|
|
process.env.VUE_APP_API_QZURL + "/acupuncture/patient/import", // 上传的图片服务器地址 |
|
|
|
fileList: [], |
|
|
|
// 表单参数 |
|
|
|
form: { |
|
|
|
name: "", |
|
|
|
sex: "0", |
|
|
|
dateOfBirth: "", |
|
|
|
age: "", |
|
|
|
phone: "", |
|
|
|
height: "", |
|
|
|
weight: "", |
|
|
|
BMI: "", |
|
|
|
verdict: "", |
|
|
|
}, |
|
|
|
BMITips: [ |
|
|
|
// 现病史 |
|
|
|
medicalHistory: [ |
|
|
|
"高血压", |
|
|
|
"脑血管病", |
|
|
|
"恶性肿瘤", |
|
|
|
"冠心病", |
|
|
|
"精神疾病", |
|
|
|
"胃和十二指肠溃疡", |
|
|
|
"肥胖症", |
|
|
|
"骨质疏松症", |
|
|
|
"遗传性、先天性疾病", |
|
|
|
"糖尿病", |
|
|
|
"慢性肺系疾病", |
|
|
|
"高脂血症", |
|
|
|
"肝脏疾病(脂肪肝、乙型肝炎、肝硬化等)", |
|
|
|
"过敏性疾病", |
|
|
|
"关节炎", |
|
|
|
"痛风", |
|
|
|
"肾炎、肾病", |
|
|
|
"高脂血症", |
|
|
|
], |
|
|
|
idCardType: [ |
|
|
|
{ |
|
|
|
label: "偏瘦", |
|
|
|
score: 18.5, |
|
|
|
label: "身份证", |
|
|
|
value: 0, |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "正常", |
|
|
|
score: 23.9, |
|
|
|
label: "护照或外国人永居证", |
|
|
|
value: 1, |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "偏胖", |
|
|
|
score: 27.9, |
|
|
|
label: "港澳居民来往内地通行", |
|
|
|
value: 2, |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "肥胖", |
|
|
|
score: 28, |
|
|
|
label: "台湾居民来往大陆通行证", |
|
|
|
value: 3, |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "其他", |
|
|
|
value: 4, |
|
|
|
}, |
|
|
|
], |
|
|
|
idCardTypeValue: { |
|
|
|
0: "身份证", |
|
|
|
1: "护照或外国人永居证", |
|
|
|
2: "港澳居民来往内地通行", |
|
|
|
3: "台湾居民来往大陆通行证", |
|
|
|
4: "其他", |
|
|
|
}, |
|
|
|
loading: false, // 遮罩层 |
|
|
|
ids: [], // 选中数组 |
|
|
|
single: true, // 非单个禁用 |
|
|
|
multiple: true, // 非多个禁用 |
|
|
|
showSearch: true, // 显示搜索条件 |
|
|
|
total: 0, // 总条数 |
|
|
|
listDat: [{}], // 公告表格数据 |
|
|
|
title: "", // 弹出层标题 |
|
|
|
open: false, // 是否显示弹出层 |
|
|
|
importOpen: false, // 导入弹窗 |
|
|
|
// 查询参数 |
|
|
|
queryParams: { |
|
|
|
pageNum: 1, |
|
|
|
pageSize: 10, |
|
|
|
param: { |
|
|
|
keywords: "", //关键字 |
|
|
|
startAge: "", //开始年龄 |
|
|
|
endAge: "", //结束年龄 |
|
|
|
tenantId: "", //建档组织 |
|
|
|
createBy: "", //建档人 |
|
|
|
sourceId: "", //来源 |
|
|
|
}, |
|
|
|
}, |
|
|
|
formDisabled: false, |
|
|
|
importform: {}, |
|
|
|
// 表单参数 |
|
|
|
form: {}, |
|
|
|
// 表单校验 |
|
|
|
rules: { |
|
|
|
name: [ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: "姓名不能为空", |
|
|
|
message: "患者姓名不能为空", |
|
|
|
trigger: "blur", |
|
|
|
}, |
|
|
|
], |
|
|
|
sex: [ |
|
|
|
gender: [ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: "性别不能为空", |
|
|
|
trigger: "blur", |
|
|
|
trigger: "change", |
|
|
|
}, |
|
|
|
], |
|
|
|
dateOfBirth: [ |
|
|
|
birthDate: [ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: "出生日期不能为空", |
|
|
|
trigger: "change", |
|
|
|
}, |
|
|
|
], |
|
|
|
age: [ |
|
|
|
phone: [ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: "年龄不能为空", |
|
|
|
message: "手机号码不能为空", |
|
|
|
trigger: "blur", |
|
|
|
}, |
|
|
|
], |
|
|
|
phone: [ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: "联系方式不能为空", |
|
|
|
pattern: /^1[3456789]\d{9}$/, |
|
|
|
message: "手机号码格式不正确", |
|
|
|
trigger: "blur", |
|
|
|
}, |
|
|
|
], |
|
|
|
ethnicity: [ |
|
|
|
{ |
|
|
|
pattern: /^1[3456789]\d{9}$/, |
|
|
|
message: "格式不正确", |
|
|
|
trigger: "change", |
|
|
|
required: true, |
|
|
|
message: "民族不能为空", |
|
|
|
trigger: "blur", |
|
|
|
}, |
|
|
|
], |
|
|
|
age: [ |
|
|
|
idCardType: [ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: "年龄不能为空", |
|
|
|
message: "证件类型不能为空", |
|
|
|
trigger: "blur", |
|
|
|
}, |
|
|
|
], |
|
|
|
height: [ |
|
|
|
idCard: [ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: "身高不能为空", |
|
|
|
message: "证件号码不能为空", |
|
|
|
trigger: "blur", |
|
|
|
}, |
|
|
|
], |
|
|
|
weight: [ |
|
|
|
educationYears: [ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: "体重不能为空", |
|
|
|
message: "受教育年限不能为空", |
|
|
|
trigger: "blur", |
|
|
|
}, |
|
|
|
], |
|
|
|
BMI: [ |
|
|
|
currentIllnessHistory: [ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: "BMI不能为空", |
|
|
|
message: "现病史不能为空", |
|
|
|
trigger: "blur", |
|
|
|
}, |
|
|
|
], |
|
|
|
}, |
|
|
|
BMIVerdict: { |
|
|
|
偏瘦: "1", |
|
|
|
正常: "2", |
|
|
|
偏胖: "3", |
|
|
|
肥胖: "4", |
|
|
|
}, |
|
|
|
// 1.您觉得平时睡眠足够吗 ? |
|
|
|
// ①睡眠过多了 ②睡眠正好 ③睡眠欠一些 ④睡眠不够 ⑤睡眠时间远远不够 |
|
|
|
// 2.您在睡眠后是否已觉得充分休息过了 ? |
|
|
|
// ①觉得充分休息过了 ②觉得休息过了 ③觉得休息了一点 ④不觉得休息过了 ⑤觉得一点儿也没休息 |
|
|
|
// 3.您晚上已睡过觉,白天是否打瞌睡 ? |
|
|
|
// ① 0~5 天 ②很少 (6~12 天) ③有时 (13~18 天)) ④经常(19~24 天) ⑤总是(25~31 天) |
|
|
|
// 4.您平均每个晚上大约能睡几小时 ? |
|
|
|
// ①≥9小时 ② 7~8 小时 ③ 5~6 小时 ④ 3~4 小时 ⑤ 1~2 小时 |
|
|
|
// 5.您是否有入睡困难 ? |
|
|
|
// ①0~5 天 ②很少 (6~12 天) ③有时(13~18 天 ) ④经常(19~24 天) ⑤总是(25~31 天) |
|
|
|
// 6.您入睡后中间是否易醒 ? |
|
|
|
// ①0~5 天 ②很少(6~12 天) ③有时(13~18 天) ④经常 (19~24 天) ⑤总是(25~31 天) |
|
|
|
// 7.您在醒后是否难于再入睡 ? |
|
|
|
// ①0~5天 ②很少(61~2 天) ③有时 (13~18 天) ④经常 (19~24 天) ⑤总是 (25~31 天) |
|
|
|
// 8.您是否多梦或常被恶梦惊醒 ? |
|
|
|
// ①0~5天 ②很少(61~2 天) ③有时 (13~18 天) ④经常 (19~24 天) ⑤总是 (25~31 天) |
|
|
|
// 9.为了睡眠 , 您是否吃安眠药 ? |
|
|
|
// ①0~5天 ②很少(61~2 天) ③有时 (13~18 天) ④经常 (19~24 天) ⑤总是 (25~31 天) |
|
|
|
// 10.您失眠后心情(心境)如何 ? |
|
|
|
// ①无不适 ②无所谓 ③有时心烦、急躁 ④心慌、气短 ⑤乏力、没精神、做事效率低 |
|
|
|
scaleList: [ |
|
|
|
{ |
|
|
|
question: "您觉得平时睡眠足够吗 ?", |
|
|
|
options: [ |
|
|
|
{ label: "睡眠过多了", score: 1 }, |
|
|
|
{ label: "睡眠正好", score: 2 }, |
|
|
|
{ label: "睡眠欠一些", score: 3 }, |
|
|
|
{ label: "睡眠不够", score: 4 }, |
|
|
|
{ label: "睡眠时间远远不够", score: 5 }, |
|
|
|
], |
|
|
|
}, |
|
|
|
{ |
|
|
|
question: "您在睡眠后是否已觉得充分休息过了 ?", |
|
|
|
options: [ |
|
|
|
{ label: "觉得充分休息过了", score: 1 }, |
|
|
|
{ label: "觉得休息过了", score: 2 }, |
|
|
|
{ label: "觉得休息了一点", score: 3 }, |
|
|
|
{ label: "不觉得休息过了", score: 4 }, |
|
|
|
{ label: "觉得一点儿也没休息", score: 5 }, |
|
|
|
], |
|
|
|
}, |
|
|
|
{ |
|
|
|
question: "您晚上已睡过觉,白天是否打瞌睡 ?", |
|
|
|
options: [ |
|
|
|
{ label: "0~5 天", score: 1 }, |
|
|
|
{ label: "很少 (6~12 天)", score: 2 }, |
|
|
|
{ label: "有时 (13~18 天)", score: 3 }, |
|
|
|
{ label: "经常(19~24 天)", score: 4 }, |
|
|
|
{ label: "总是(25~31 天)", score: 5 }, |
|
|
|
], |
|
|
|
}, |
|
|
|
{ |
|
|
|
question: "您平均每个晚上大约能睡几小时 ?", |
|
|
|
options: [ |
|
|
|
{ label: "≥9小时", score: 1 }, |
|
|
|
{ label: "7~8 小时", score: 2 }, |
|
|
|
{ label: "5~6 小时", score: 3 }, |
|
|
|
{ label: "3~4 小时", score: 4 }, |
|
|
|
{ label: "1~2 小时", score: 5 }, |
|
|
|
], |
|
|
|
}, |
|
|
|
{ |
|
|
|
question: "您是否有入睡困难 ?", |
|
|
|
options: [ |
|
|
|
{ label: "0~5 天", score: 1 }, |
|
|
|
{ label: "很少 (6~12 天)", score: 2 }, |
|
|
|
{ label: "有时(13~18 天 )", score: 3 }, |
|
|
|
{ label: "经常(19~24 天)", score: 4 }, |
|
|
|
{ label: "总是(25~31 天)", score: 5 }, |
|
|
|
], |
|
|
|
}, |
|
|
|
{ |
|
|
|
question: "您入睡后中间是否易醒 ?", |
|
|
|
options: [ |
|
|
|
{ label: "0~5 天", score: 1 }, |
|
|
|
{ label: "很少(6~12 天)", score: 2 }, |
|
|
|
{ label: "有时(13~18 天)", score: 3 }, |
|
|
|
{ label: "经常 (19~24 天)", score: 4 }, |
|
|
|
{ label: "总是(25~31 天)", score: 5 }, |
|
|
|
], |
|
|
|
}, |
|
|
|
{ |
|
|
|
question: "您在醒后是否难于再入睡 ?", |
|
|
|
options: [ |
|
|
|
{ label: "0~5天", score: 1 }, |
|
|
|
{ label: "很少(6~12 天)", score: 2 }, |
|
|
|
{ label: "有时 (13~18 天)", score: 3 }, |
|
|
|
{ label: "经常 (19~24 天)", score: 4 }, |
|
|
|
{ label: "总是 (25~31 天)", score: 5 }, |
|
|
|
], |
|
|
|
}, |
|
|
|
{ |
|
|
|
question: "您是否多梦或常被恶梦惊醒 ?", |
|
|
|
options: [ |
|
|
|
{ label: "0~5天", score: 1 }, |
|
|
|
{ label: "很少(6~12 天)", score: 2 }, |
|
|
|
{ label: "有时 (13~18 天)", score: 3 }, |
|
|
|
{ label: "经常 (19~24 天)", score: 4 }, |
|
|
|
{ label: "总是 (25~31 天)", score: 5 }, |
|
|
|
], |
|
|
|
}, |
|
|
|
{ |
|
|
|
question: "为了睡眠 , 您是否吃安眠药 ?", |
|
|
|
options: [ |
|
|
|
{ label: "0~5天", score: 1 }, |
|
|
|
{ label: "很少(6~12 天)", score: 2 }, |
|
|
|
{ label: "有时 (13~18 天)", score: 3 }, |
|
|
|
{ label: "经常 (19~24 天)", score: 4 }, |
|
|
|
{ label: "总是 (25~31 天)", score: 5 }, |
|
|
|
], |
|
|
|
}, |
|
|
|
{ |
|
|
|
question: "您失眠后心情(心境)如何 ?", |
|
|
|
options: [ |
|
|
|
{ label: "无不适", score: 1 }, |
|
|
|
{ label: "无所谓", score: 2 }, |
|
|
|
{ label: "有时心烦、急躁", score: 3 }, |
|
|
|
{ label: "心慌、气短", score: 4 }, |
|
|
|
{ label: "乏力、没精神、做事效率低", score: 5 }, |
|
|
|
], |
|
|
|
}, |
|
|
|
], |
|
|
|
}; |
|
|
|
}, |
|
|
|
created() {}, |
|
|
|
created() { |
|
|
|
let idCard = this.$route.query.idCard; |
|
|
|
this.queryParams.param.keywords = idCard || ""; |
|
|
|
this.getList(); // 列表 |
|
|
|
// this.getTenantsList(); // 组织列表 |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
// 计算BIM |
|
|
|
calculateBMI() { |
|
|
|
if (this.form.weight && this.form.height) { |
|
|
|
const weight = parseFloat(this.form.weight); |
|
|
|
const height = parseFloat(this.form.height); |
|
|
|
const bmi = weight / (height / 100) ** 2; |
|
|
|
this.form.BMI = bmi.toFixed(2); |
|
|
|
this.getBMITips(bmi); |
|
|
|
} |
|
|
|
}, |
|
|
|
// 通过BIM结果显示对于的结论 |
|
|
|
// <18.5:偏瘦 |
|
|
|
// 18.5~23.9:正常 |
|
|
|
// 24~27.9:偏胖 |
|
|
|
// ≥28:肥胖 |
|
|
|
getBMITips(bmi) { |
|
|
|
let tips = ""; |
|
|
|
if (bmi < 18.5) { |
|
|
|
tips = "偏瘦"; |
|
|
|
} |
|
|
|
if (bmi >= 18.5 && bmi < 23.9) { |
|
|
|
tips = "正常"; |
|
|
|
} |
|
|
|
if (bmi >= 24 && bmi < 27.9) { |
|
|
|
tips = "偏胖"; |
|
|
|
} |
|
|
|
if (bmi >= 28) { |
|
|
|
tips = "肥胖"; |
|
|
|
} |
|
|
|
this.form.verdict = tips; |
|
|
|
// 组织列表 |
|
|
|
getTenantsList() { |
|
|
|
tenantsList({ |
|
|
|
pageNum: -1, |
|
|
|
param: {}, |
|
|
|
}).then((res) => { |
|
|
|
this.tenantsListData = res.data.list; |
|
|
|
}); |
|
|
|
}, |
|
|
|
// 上传成功回 - pdg |
|
|
|
handleUploadPdfAdd1(res) { |
|
|
@ -441,126 +434,155 @@ export default { |
|
|
|
}, |
|
|
|
// 表单重置 |
|
|
|
reset() { |
|
|
|
this.form = {}; |
|
|
|
this.form = { |
|
|
|
name: "", // 姓名 |
|
|
|
gender: 0, // 性别 |
|
|
|
birthDate: "", // 出生日期 |
|
|
|
ethnicity: "", // 民族 |
|
|
|
educationYears: "", // 教育程度 |
|
|
|
phone: "", // 联系电话 |
|
|
|
idCardType: "", // 证件类型 |
|
|
|
idCard: "", // 证件号码 |
|
|
|
source: 1, |
|
|
|
currentIllnessHistory: [], // 现病史 |
|
|
|
currentIllnessHistoryQt: "", // 现病史 |
|
|
|
}; |
|
|
|
this.resetForm("form"); |
|
|
|
}, |
|
|
|
/** 基本信息 */ |
|
|
|
/** 搜索按钮操作 */ |
|
|
|
handleQuery() { |
|
|
|
this.queryParams.pageNum = 1; |
|
|
|
this.getList(); |
|
|
|
}, |
|
|
|
/** 重置按钮操作 */ |
|
|
|
resetQuery() { |
|
|
|
this.queryParams.param = { |
|
|
|
keywords: "", //关键字 |
|
|
|
startAge: "", //开始年龄 |
|
|
|
endAge: "", //结束年龄 |
|
|
|
tenantId: "", //建档组织 |
|
|
|
createBy: "", //建档人 |
|
|
|
sourceId: "", //来源 |
|
|
|
}; |
|
|
|
this.handleQuery(); |
|
|
|
}, |
|
|
|
// 多选框选中数据 |
|
|
|
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 = "新增患者档案"; |
|
|
|
this.formDisabled = false; |
|
|
|
}, |
|
|
|
/** 修改按钮操作 */ |
|
|
|
handleUpdate(row) { |
|
|
|
this.open = true; |
|
|
|
this.title = "修改患者档案"; |
|
|
|
this.formDisabled = false; |
|
|
|
this.form = JSON.parse(JSON.stringify(row)); |
|
|
|
// 字符串转数组 |
|
|
|
this.form.currentIllnessHistory = |
|
|
|
this.form.currentIllnessHistory?.split(",") || []; |
|
|
|
}, |
|
|
|
/** 详情按钮操作 */ |
|
|
|
handleDetails(row) { |
|
|
|
this.open = true; |
|
|
|
this.title = "患者档案详情"; |
|
|
|
this.formDisabled = true; |
|
|
|
this.form = JSON.parse(JSON.stringify(row)); |
|
|
|
// 字符串转数组 |
|
|
|
this.form.currentIllnessHistory = |
|
|
|
this.form.currentIllnessHistory?.split(",") || []; |
|
|
|
}, |
|
|
|
/** 诊疗档案 */ |
|
|
|
handleArchives(row) { |
|
|
|
this.$router.push({ |
|
|
|
path: `/medicalFile/index?idCard=${row.idCard}`, |
|
|
|
}); |
|
|
|
}, |
|
|
|
/** 提交按钮 */ |
|
|
|
submitForm: function () { |
|
|
|
this.$refs["form"].validate((valid) => { |
|
|
|
if (valid) { |
|
|
|
// patientAdd(this.form).then((response) => { |
|
|
|
// this.$modal.msgSuccess("新增成功"); |
|
|
|
// this.open = false; |
|
|
|
// this.getList(); |
|
|
|
// }); |
|
|
|
this.stepNum++; |
|
|
|
if (this.form.id != undefined) { |
|
|
|
patientUpd(this.form).then((response) => { |
|
|
|
this.$modal.msgSuccess("修改成功"); |
|
|
|
this.open = false; |
|
|
|
this.getList(); |
|
|
|
}); |
|
|
|
} else { |
|
|
|
patientAdd(this.form).then((response) => { |
|
|
|
this.$modal.msgSuccess("新增成功"); |
|
|
|
this.open = false; |
|
|
|
this.getList(); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
// 量表结果 |
|
|
|
scaleSubmitForm() { |
|
|
|
let score = 0; |
|
|
|
// 计算总分, topic${i}属性不一定存在,先校验是否存在 |
|
|
|
for (let i = 1; i <= 24; i++) { |
|
|
|
if (this.form[`topic${i}`] !== undefined) { |
|
|
|
score += this.form[`topic${i}`]; |
|
|
|
} |
|
|
|
} |
|
|
|
console.log("score", score); |
|
|
|
|
|
|
|
/** 删除按钮操作 */ |
|
|
|
handleDelete(row) { |
|
|
|
const idList = row.id ? [row.id] : this.ids; |
|
|
|
this.$modal |
|
|
|
.confirm("是否确认删除当前选择的数据?") |
|
|
|
.then(function () { |
|
|
|
return patientDel({ |
|
|
|
idList: idList, |
|
|
|
}); |
|
|
|
}) |
|
|
|
.then(() => { |
|
|
|
this.getList(); |
|
|
|
this.$modal.msgSuccess("删除成功"); |
|
|
|
}) |
|
|
|
.catch(() => {}); |
|
|
|
}, |
|
|
|
/** 导出按钮操作 */ |
|
|
|
handleExport() { |
|
|
|
this.download1( |
|
|
|
"/patient/export", |
|
|
|
{ |
|
|
|
...this.queryParams.params, |
|
|
|
}, |
|
|
|
`患者档案.xlsx` |
|
|
|
); |
|
|
|
}, |
|
|
|
/** 下载按钮操作 */ |
|
|
|
handleDownload() { |
|
|
|
window.open( |
|
|
|
`${process.env.VUE_APP_API_QZURL}/acupuncture/profile/PatientTemplate.xlsx` |
|
|
|
); |
|
|
|
// this.download1( |
|
|
|
// "/patient/export", {}, |
|
|
|
// `患者档案导入模版.xlsx` |
|
|
|
// ); |
|
|
|
}, |
|
|
|
/** 导入按钮操作 */ |
|
|
|
handleImport() { |
|
|
|
this.fileList = []; |
|
|
|
this.importOpen = true; |
|
|
|
}, |
|
|
|
}, |
|
|
|
}; |
|
|
|
</script> |
|
|
|
<style scoped src="@/assets/styles/common.css"></style> |
|
|
|
<style scoped> |
|
|
|
.hospital { |
|
|
|
background: #fff; |
|
|
|
font-size: 20px; |
|
|
|
color: #70483e; |
|
|
|
line-height: 50px; |
|
|
|
font-weight: 600; |
|
|
|
margin-bottom: 10px; |
|
|
|
border-radius: 6px; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
.BIMTips1 { |
|
|
|
color: #cccccc; |
|
|
|
} |
|
|
|
.BIMTips2 { |
|
|
|
color: #66cc00; |
|
|
|
} |
|
|
|
.BIMTips3 { |
|
|
|
color: #ffff00; |
|
|
|
} |
|
|
|
.BIMTips4 { |
|
|
|
color: #ff9900; |
|
|
|
} |
|
|
|
.item-radio { |
|
|
|
display: block; |
|
|
|
margin-bottom: 10px; |
|
|
|
} |
|
|
|
.item-title { |
|
|
|
font-size: 18px; |
|
|
|
font-weight: bold; |
|
|
|
color: #3d3d3d; |
|
|
|
line-height: 26px; |
|
|
|
} |
|
|
|
.item-radio-box { |
|
|
|
margin: 16px 0px; |
|
|
|
} |
|
|
|
>>> .el-radio__label { |
|
|
|
font-size: 16px; |
|
|
|
color: #555555; |
|
|
|
line-height: 20px; |
|
|
|
} |
|
|
|
.submit-box { |
|
|
|
.form-item-age { |
|
|
|
display: flex; |
|
|
|
justify-content: center; |
|
|
|
align-items: center; |
|
|
|
.submit-box-but { |
|
|
|
background: #c6a268; |
|
|
|
width: 100%; |
|
|
|
font-size: 16px; |
|
|
|
} |
|
|
|
} |
|
|
|
.card { |
|
|
|
padding: 16px; |
|
|
|
background: #fff; |
|
|
|
border-radius: 6px; |
|
|
|
margin-bottom: 14px; |
|
|
|
} |
|
|
|
|
|
|
|
.card-title { |
|
|
|
font-weight: 600; |
|
|
|
font-size: 20px; |
|
|
|
margin-bottom: 16px; |
|
|
|
} |
|
|
|
|
|
|
|
/* */ |
|
|
|
.app-container { |
|
|
|
/* background: linear-gradient(to bottom, #70483e, #f7f8fa); */ |
|
|
|
background: #70483e; |
|
|
|
min-height: 100vh; |
|
|
|
} |
|
|
|
>>> .el-input__inner { |
|
|
|
border: none; |
|
|
|
border-bottom: 1px solid #dcdfe6; |
|
|
|
border-radius: 0; |
|
|
|
} |
|
|
|
>>> .el-date-editor.el-input { |
|
|
|
width: 100% !important; |
|
|
|
} |
|
|
|
>>> .el-form-item--medium .el-form-item__label { |
|
|
|
padding-right: 30px; |
|
|
|
} |
|
|
|
|
|
|
|
>>> .el-radio input[aria-hidden="true"] { |
|
|
|
display: none !important; |
|
|
|
.form-item-age span { |
|
|
|
margin: 0 10px; |
|
|
|
} |
|
|
|
|
|
|
|
>>> .el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) |
|
|
|
.el-radio__inner { |
|
|
|
box-shadow: none !important; |
|
|
|
.form-item-age >>> .el-input { |
|
|
|
width: 100px; |
|
|
|
} |
|
|
|
</style> |
|
|
|
<!-- >>> .el-input__inner { |
|
|
|