|
@ -78,6 +78,10 @@
|
|
}
|
|
}
|
|
.protect-label {
|
|
.protect-label {
|
|
}
|
|
}
|
|
|
|
.device-title {
|
|
|
|
font-weight: bold;
|
|
|
|
font-size: 16px;
|
|
|
|
}
|
|
</style>
|
|
</style>
|
|
</head>
|
|
</head>
|
|
<body>
|
|
<body>
|
|
@ -86,58 +90,58 @@
|
|
<el-tab-pane label="体征记录" name="body">
|
|
<el-tab-pane label="体征记录" name="body">
|
|
<div class="body-record-box">
|
|
<div class="body-record-box">
|
|
<div class="title">慢病体征</div>
|
|
<div class="title">慢病体征</div>
|
|
<div class="body-record-item" @click="openBodyRecordDetail(0)">
|
|
|
|
|
|
<div class="body-record-item" @click="openBodyRecordDetail(0,bodyData.xy.recordDate)" v-if="bodyData.xy">
|
|
<div class="record-label">
|
|
<div class="record-label">
|
|
<div>血压</div>
|
|
<div>血压</div>
|
|
<div>2024-10-14 10:21 设备上传</div>
|
|
|
|
|
|
<div>{{bodyData.xy.recordDate}} {{getRecordType(bodyData.xy.deviceSn)}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="record-value flex">
|
|
<div class="record-value flex">
|
|
<div>
|
|
<div>
|
|
<div style="text-align: right">122/71</div>
|
|
|
|
<div>脉搏:56次/分</div>
|
|
|
|
|
|
<div style="text-align: right">{{bodyData.xy.value1}}/{{bodyData.xy.value2}}</div>
|
|
|
|
<div>脉搏:{{bodyData.xy.value3}}次/分</div>
|
|
</div>
|
|
</div>
|
|
<i class="el-icon-arrow-right ml10"></i>
|
|
<i class="el-icon-arrow-right ml10"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="body-record-item" @click="openBodyRecordDetail(1)">
|
|
|
|
|
|
<div class="body-record-item" @click="openBodyRecordDetail(1,bodyData.xt.recordDate)" v-if="bodyData.xt">
|
|
<div class="record-label">
|
|
<div class="record-label">
|
|
<div>血糖</div>
|
|
<div>血糖</div>
|
|
<div>2024-10-14 10:21 设备上传</div>
|
|
|
|
|
|
<div>{{bodyData.xt.recordDate}} {{bodyData.xt.during}} {{getRecordType(bodyData.xt.deviceSn)}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="record-value flex">
|
|
<div class="record-value flex">
|
|
<el-tag type="danger">偏高</el-tag>
|
|
|
|
<span>18.5</span>
|
|
|
|
|
|
<el-tag :type="bodyData.xt.tagType" v-if="bodyData.xt.tagName">{{bodyData.xt.tagName}}</el-tag>
|
|
|
|
<span>{{ bodyData.xt.value1}}</span>
|
|
<i class="el-icon-arrow-right ml10"></i>
|
|
<i class="el-icon-arrow-right ml10"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="title">一般检查</div>
|
|
<div class="title">一般检查</div>
|
|
<div class="body-record-item" @click="openBodyRecordDetail(2)">
|
|
|
|
|
|
<div class="body-record-item" @click="openBodyRecordDetail(2, bodyData.tz.recordDate)" v-if="bodyData.tz">
|
|
<div class="record-label">
|
|
<div class="record-label">
|
|
<div>身高体重</div>
|
|
<div>身高体重</div>
|
|
<div>2024-10-14 10:21 手动记录</div>
|
|
|
|
|
|
<div>{{bodyData.tz.recordDate}} {{getRecordType(bodyData.tz.deviceSn)}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="record-value flex">
|
|
<div class="record-value flex">
|
|
<el-tag>正常</el-tag>
|
|
|
|
|
|
<el-tag :type="getTixingType(bodyData.tz.value4)" effect="dark">{{getTixingName(bodyData.tz.value4)}}</el-tag>
|
|
<i class="el-icon-arrow-right ml10"></i>
|
|
<i class="el-icon-arrow-right ml10"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="body-record-item" @click="openBodyRecordDetail(3)">
|
|
|
|
|
|
<div class="body-record-item" @click="openBodyRecordDetail(3, bodyData.sg.recordDate)" v-if="bodyData.sg">
|
|
<div class="record-label">
|
|
<div class="record-label">
|
|
<div>腰围</div>
|
|
<div>腰围</div>
|
|
<div>2024-10-14 10:21 手动记录</div>
|
|
|
|
|
|
<div>{{bodyData.sg.recordDate}} {{getRecordType(bodyData.sg.deviceSn)}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="record-value flex">
|
|
<div class="record-value flex">
|
|
<span>56cm</span>
|
|
|
|
|
|
<span>{{bodyData.sg.value1}}cm</span>
|
|
<i class="el-icon-arrow-right ml10"></i>
|
|
<i class="el-icon-arrow-right ml10"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="body-record-item" @click="openBodyRecordDetail(4)">
|
|
|
|
|
|
<div class="body-record-item" @click="openBodyRecordDetail(4, bodyData.xl.recordDate)" v-if="bodyData.xl">
|
|
<div class="record-label">
|
|
<div class="record-label">
|
|
<div>心率</div>
|
|
<div>心率</div>
|
|
<div>2024-10-14 10:21 设备上传</div>
|
|
|
|
|
|
<div>{{bodyData.xl.recordDate}} {{getRecordType(bodyData.xl.deviceSn)}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="record-value flex">
|
|
<div class="record-value flex">
|
|
<span>88次/分</span>
|
|
|
|
|
|
<span>{{bodyData.xl.value1}}次/分</span>
|
|
<i class="el-icon-arrow-right ml10"></i>
|
|
<i class="el-icon-arrow-right ml10"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@ -147,11 +151,11 @@
|
|
<div class="device-box">
|
|
<div class="device-box">
|
|
<div class="device-item" v-for="(item,i) in deviceList" :key="i">
|
|
<div class="device-item" v-for="(item,i) in deviceList" :key="i">
|
|
<div class="flex">
|
|
<div class="flex">
|
|
<img src="../../../images/img.png" alt="" />
|
|
|
|
<div style="margin-left: 16px;">
|
|
|
|
<div class="device-info">{{item.name}}</div>
|
|
|
|
<div class="device-info">{{item.time}}</div>
|
|
|
|
<div class="device-info">{{item.people}}</div>
|
|
|
|
|
|
<img :src="item.devicePhoto" alt="" style="width: 100px" />
|
|
|
|
<div style="margin-left: 16px">
|
|
|
|
<div class="device-info device-title">{{item.deviceName}}</div>
|
|
|
|
<div class="device-info">绑定时间:{{item.czrq}}</div>
|
|
|
|
<div class="device-info" v-if="item.categoryCode != 10 && item.categoryCode != 11">绑定人:{{item.people}}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<i class="el-icon-arrow-right ml10"></i>
|
|
<i class="el-icon-arrow-right ml10"></i>
|
|
@ -164,10 +168,10 @@
|
|
<el-tab-pane label="保健记录" name="healthProtect">
|
|
<el-tab-pane label="保健记录" name="healthProtect">
|
|
<div class="health-protect-box">
|
|
<div class="health-protect-box">
|
|
<div class="title">保健记录</div>
|
|
<div class="title">保健记录</div>
|
|
<div class="health-protect-item" v-for="(item,i) in healthProtectList" :key="i" @click="openHealthProtectDetail(i)">
|
|
|
|
|
|
<div class="health-protect-item" v-for="(item,i) in healthProtectList" :key="i" @click="openHealthProtectDetail(i,item.time)">
|
|
<div class="protect-label">
|
|
<div class="protect-label">
|
|
<div>{{item.name}}</div>
|
|
<div>{{item.name}}</div>
|
|
<div>{{item.time}} {{item.recordMehtd}}</div>
|
|
|
|
|
|
<div>{{item.time}} {{item.recordMethod}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="flex">
|
|
<div class="flex">
|
|
<span>{{item.lastData}}</span>
|
|
<span>{{item.lastData}}</span>
|
|
@ -195,60 +199,107 @@
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
active: 'body',
|
|
active: 'body',
|
|
deviceList: [
|
|
|
|
{
|
|
|
|
name: '脉搏仪',
|
|
|
|
time: '2023-11-13 10:50:14',
|
|
|
|
people: '患者绑定'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: '华米手表',
|
|
|
|
time: '2023-11-13 10:50:14',
|
|
|
|
people: '患者绑定'
|
|
|
|
}
|
|
|
|
],
|
|
|
|
|
|
deviceList: [],
|
|
healthProtectList: [
|
|
healthProtectList: [
|
|
{
|
|
{
|
|
name: '运动',
|
|
name: '运动',
|
|
time: '2024-10-14 10:21',
|
|
|
|
recordMehtd: '手动记录',
|
|
|
|
lastData: '跑步'
|
|
|
|
|
|
time: ' ',
|
|
|
|
recordMethod: ' ',
|
|
|
|
lastData: ' '
|
|
},
|
|
},
|
|
{
|
|
{
|
|
name: '用药',
|
|
name: '用药',
|
|
time: '2024-10-14 10:21',
|
|
|
|
recordMehtd: '手动记录',
|
|
|
|
lastData: '阿司匹林'
|
|
|
|
|
|
time: '',
|
|
|
|
recordMethod: '',
|
|
|
|
lastData: ''
|
|
},
|
|
},
|
|
{
|
|
{
|
|
name: '饮食',
|
|
name: '饮食',
|
|
time: '2024-10-14 10:21',
|
|
|
|
recordMehtd: '设备上传',
|
|
|
|
lastData: '黄瓜'
|
|
|
|
|
|
time: '',
|
|
|
|
recordMethod: '',
|
|
|
|
lastData: ''
|
|
}
|
|
}
|
|
]
|
|
|
|
|
|
],
|
|
|
|
patient: '',
|
|
|
|
bodyData: {},
|
|
|
|
healthProtect: {}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
mounted() {
|
|
|
|
this.patient = GetRequest().patient
|
|
|
|
this.getBodyData()
|
|
|
|
this.getDeviceList()
|
|
|
|
this.getHealthProtect()
|
|
|
|
},
|
|
methods: {
|
|
methods: {
|
|
openBodyRecordDetail(key) {
|
|
|
|
var title = ""
|
|
|
|
switch (key){
|
|
|
|
|
|
getBodyData() {
|
|
|
|
const vm = this
|
|
|
|
httpRequest.get('doctor/health_index/last', { data: { patient: this.patient } }).then(function (res) {
|
|
|
|
vm.bodyData = res.data
|
|
|
|
|
|
|
|
vm.getXtType(res.data.xt)
|
|
|
|
})
|
|
|
|
},
|
|
|
|
getDeviceList() {
|
|
|
|
const vm = this
|
|
|
|
httpRequest.get('doctor/device/PatientDeviceList', { data: { page: 1, pagesize: 100, patient: this.patient } }).then(function (res) {
|
|
|
|
vm.deviceList = res.data
|
|
|
|
vm.getBindUser()
|
|
|
|
})
|
|
|
|
},
|
|
|
|
getHealthProtect() {
|
|
|
|
const vm = this
|
|
|
|
|
|
|
|
httpRequest.get('doctor/health_record/recent', { data: { patient: this.patient } }).then(function (res) {
|
|
|
|
const healthProtect = res.data
|
|
|
|
|
|
|
|
for (let i in healthProtect) {
|
|
|
|
switch (i) {
|
|
|
|
case 'sprot':
|
|
|
|
vm.healthProtectList[0].lastData = healthProtect.sprot.sports
|
|
|
|
vm.healthProtectList[0].time = healthProtect.sprot.recordDate
|
|
|
|
vm.healthProtectList[0].recordMethod = vm.getBJRecordType(healthProtect.sprot.source)
|
|
|
|
break
|
|
|
|
case 'medication':
|
|
|
|
vm.healthProtectList[1].lastData = healthProtect.medication.medication
|
|
|
|
vm.healthProtectList[1].time = healthProtect.medication.recordDate
|
|
|
|
vm.healthProtectList[1].recordMethod = vm.getBJRecordType(healthProtect.medication.source)
|
|
|
|
break
|
|
|
|
case 'diet':
|
|
|
|
vm.healthProtectList[2].lastData = healthProtect.diet.diet
|
|
|
|
vm.healthProtectList[2].time = healthProtect.diet.recordDate
|
|
|
|
vm.healthProtectList[2].recordMethod = vm.getBJRecordType(healthProtect.diet.source)
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
vm.$forceUpdate()
|
|
|
|
})
|
|
|
|
},
|
|
|
|
getBJRecordType(isDevice) {
|
|
|
|
return isDevice === 0 ? '手动记录' : isDevice == 1 ? '设备上传' : ''
|
|
|
|
},
|
|
|
|
openBodyRecordDetail(key,time) {
|
|
|
|
var title = ''
|
|
|
|
switch (key) {
|
|
case 0:
|
|
case 0:
|
|
title = "血压记录"
|
|
|
|
break;
|
|
|
|
|
|
title = '血压记录'
|
|
|
|
break
|
|
case 1:
|
|
case 1:
|
|
title = "血糖记录"
|
|
|
|
break;
|
|
|
|
|
|
title = '血糖记录'
|
|
|
|
break
|
|
case 2:
|
|
case 2:
|
|
title = "身高体重"
|
|
|
|
break;
|
|
|
|
|
|
title = '身高体重'
|
|
|
|
break
|
|
case 3:
|
|
case 3:
|
|
title = "腰围"
|
|
|
|
break;
|
|
|
|
|
|
title = '腰围'
|
|
|
|
break
|
|
case 4:
|
|
case 4:
|
|
title = "心率"
|
|
|
|
break;
|
|
|
|
|
|
title = '心率'
|
|
|
|
break
|
|
}
|
|
}
|
|
|
|
console.log(`rehabilitation/html/healthBodyRecord.html?key=${key}&patient=${this.patient}&time=${time.substring(0, 10)}`);
|
|
|
|
|
|
top.layer.open({
|
|
top.layer.open({
|
|
type: 2,
|
|
type: 2,
|
|
area: ['700px', '700px'],
|
|
area: ['700px', '700px'],
|
|
@ -259,21 +310,21 @@
|
|
closeBtn: 1,
|
|
closeBtn: 1,
|
|
// shift: 5,
|
|
// shift: 5,
|
|
shadeClose: false, //点击遮罩关闭层
|
|
shadeClose: false, //点击遮罩关闭层
|
|
content: './healthBodyRecord.html?key='+key
|
|
|
|
|
|
content: `../../rehabilitation/html/healthBodyRecord.html?key=${key}&patient=${this.patient}&time=${time.substring(0, 10)}`
|
|
})
|
|
})
|
|
},
|
|
},
|
|
openHealthProtectDetail(key){
|
|
|
|
var title = ""
|
|
|
|
switch(key){
|
|
|
|
|
|
openHealthProtectDetail(key,time) {
|
|
|
|
var title = ''
|
|
|
|
switch (key) {
|
|
case 0:
|
|
case 0:
|
|
title = "运动记录"
|
|
|
|
break;
|
|
|
|
|
|
title = '运动记录'
|
|
|
|
break
|
|
case 1:
|
|
case 1:
|
|
title = "用药记录"
|
|
|
|
break;
|
|
|
|
|
|
title = '用药记录'
|
|
|
|
break
|
|
case 2:
|
|
case 2:
|
|
title = "饮食记录"
|
|
|
|
break;
|
|
|
|
|
|
title = '饮食记录'
|
|
|
|
break
|
|
}
|
|
}
|
|
top.layer.open({
|
|
top.layer.open({
|
|
type: 2,
|
|
type: 2,
|
|
@ -285,21 +336,99 @@
|
|
closeBtn: 1,
|
|
closeBtn: 1,
|
|
// shift: 5,
|
|
// shift: 5,
|
|
shadeClose: false, //点击遮罩关闭层
|
|
shadeClose: false, //点击遮罩关闭层
|
|
content: './healthProtect.html?key='+key
|
|
|
|
|
|
content: `../../rehabilitation/html/healthProtect.html?key=${key}&patient=${this.patient}&time=${time}`
|
|
})
|
|
})
|
|
},
|
|
},
|
|
addDevice(){
|
|
|
|
|
|
addDevice() {
|
|
top.layer.open({
|
|
top.layer.open({
|
|
type: 2,
|
|
type: 2,
|
|
area: ['700px', '700px'],
|
|
area: ['700px', '700px'],
|
|
shade: 0.5,
|
|
shade: 0.5,
|
|
title: "新增设备",
|
|
|
|
|
|
title: '新增设备',
|
|
fixed: true, //不固定
|
|
fixed: true, //不固定
|
|
maxmin: true,
|
|
maxmin: true,
|
|
closeBtn: 1,
|
|
closeBtn: 1,
|
|
// shift: 5,
|
|
// shift: 5,
|
|
shadeClose: false, //点击遮罩关闭层
|
|
shadeClose: false, //点击遮罩关闭层
|
|
content: './device.html'
|
|
|
|
|
|
content: '../../rehabilitation/html/device.html?patient=' + this.patient
|
|
|
|
})
|
|
|
|
},
|
|
|
|
getRecordType(isDevice) {
|
|
|
|
return isDevice === null ? '手动记录' : isDevice != null ? '设备上传' : ''
|
|
|
|
},
|
|
|
|
getTixingName(value) {
|
|
|
|
switch (value) {
|
|
|
|
case '-1':
|
|
|
|
return '偏胖'
|
|
|
|
case '1':
|
|
|
|
return '偏瘦'
|
|
|
|
default:
|
|
|
|
return '正常'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
getTixingType(value) {
|
|
|
|
switch (value) {
|
|
|
|
case '-1':
|
|
|
|
return 'danger'
|
|
|
|
case '1':
|
|
|
|
return 'success'
|
|
|
|
default:
|
|
|
|
return ''
|
|
|
|
}
|
|
|
|
},
|
|
|
|
getXtType(o) {
|
|
|
|
var duringIndex = o.value2 ? o.value2 : 0
|
|
|
|
if (o.flag == 2) {
|
|
|
|
if (duringIndex == 1) {
|
|
|
|
o.during = '餐前血糖'
|
|
|
|
} else if (duringIndex == 2) {
|
|
|
|
o.during = '餐后血糖'
|
|
|
|
} else if (duringIndex == 3) {
|
|
|
|
o.during = '随机血糖'
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
o.during = duringIndex ? xuetangDuring[duringIndex] : ''
|
|
|
|
}
|
|
|
|
o.value = o.value1
|
|
|
|
var levels = [[], [7.0, 3.9], [11.1, 4.0], [7.0, 3.9], [11.1, 4.0], [7.0, 3.9], [11.1, 4.0], [7.0, 3.9]][duringIndex]
|
|
|
|
o.tagType = getLevelClazzType(o.value, levels[0], levels[1])
|
|
|
|
o.tagName = getLevelClazzName(o.value, levels[0], levels[1])
|
|
|
|
},
|
|
|
|
getLevelClazzType(value, max, min) {
|
|
|
|
if (!value || (!max && !min)) {
|
|
|
|
return ''
|
|
|
|
}
|
|
|
|
|
|
|
|
var value = parseFloat(value)
|
|
|
|
if (value < min) {
|
|
|
|
return 'success'
|
|
|
|
} else if (value > max) {
|
|
|
|
return 'error'
|
|
|
|
} else {
|
|
|
|
return ''
|
|
|
|
}
|
|
|
|
},
|
|
|
|
getLevelClazzName(value, max, min) {
|
|
|
|
if (!value || (!max && !min)) {
|
|
|
|
return ''
|
|
|
|
}
|
|
|
|
|
|
|
|
var value = parseFloat(value)
|
|
|
|
if (value < min) {
|
|
|
|
return '偏低'
|
|
|
|
} else if (value > max) {
|
|
|
|
return '偏高'
|
|
|
|
} else {
|
|
|
|
return ''
|
|
|
|
}
|
|
|
|
},
|
|
|
|
getBindUser() {
|
|
|
|
this.deviceList.forEach(function (item) {
|
|
|
|
var bindUser = '患者绑定'
|
|
|
|
if (!!rowData.doctor) {
|
|
|
|
bindUser = item.doctorName
|
|
|
|
}
|
|
|
|
item.people = bindUser
|
|
})
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|