|
|
@ -101,7 +101,7 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 睡眠质量评估 --> |
|
|
|
<!-- <div class="card"> |
|
|
|
<div class="card"> |
|
|
|
<div class="card-title">睡眠质量评估</div> |
|
|
|
<el-form-item label="上床睡觉" prop="SCWJ-SCSJ"> |
|
|
|
<el-time-select |
|
|
@ -124,7 +124,6 @@ |
|
|
|
start: '00:30', |
|
|
|
step: '00:15', |
|
|
|
end: '23:59', |
|
|
|
minTime: form['SCWJ-SCSJ'], |
|
|
|
}" |
|
|
|
></el-time-select> |
|
|
|
</el-form-item> |
|
|
@ -137,7 +136,18 @@ |
|
|
|
start: '00:30', |
|
|
|
step: '00:15', |
|
|
|
end: '23:59', |
|
|
|
minTime: form['SCWJ-RSSJ'], |
|
|
|
}" |
|
|
|
></el-time-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="起床时间" prop="SCWJ-QCSJ"> |
|
|
|
<el-time-select |
|
|
|
@change="calculateSleepTime" |
|
|
|
placeholder="请选择时间" |
|
|
|
v-model="form['SCWJ-QCSJ']" |
|
|
|
:picker-options="{ |
|
|
|
start: '00:30', |
|
|
|
step: '00:15', |
|
|
|
end: '23:59', |
|
|
|
}" |
|
|
|
></el-time-select> |
|
|
|
</el-form-item> |
|
|
@ -146,7 +156,7 @@ |
|
|
|
{{ form["SCWJ-SMXL"] || "- - -" }} |
|
|
|
</span> |
|
|
|
</el-form-item> |
|
|
|
</div> --> |
|
|
|
</div> |
|
|
|
<!-- 疾病风险选择(现病史) --> |
|
|
|
<div class="card"> |
|
|
|
<div class="card-title">疾病风险选择</div> |
|
|
@ -426,10 +436,11 @@ export default { |
|
|
|
"SCWJ-BMI": "", |
|
|
|
"SCWJ-JL": "", |
|
|
|
"SCWJ-ZLFS": [], |
|
|
|
"SCWJ-SCSJ": "", |
|
|
|
"SCWJ-RSSJ": "", |
|
|
|
"SCWJ-SXSJ": "", |
|
|
|
"SCWJ-SMXL": "", |
|
|
|
"SCWJ-SCSJ": "22:00", |
|
|
|
"SCWJ-RSSJ": "22:30", |
|
|
|
"SCWJ-SXSJ": "06:30", |
|
|
|
"SCWJ-QCSJ": "07:00", |
|
|
|
"SCWJ-SMXL": "", // 睡眠效率 |
|
|
|
"SCWJ-XBS": [], |
|
|
|
"SCWJ-XBS-QT": "", |
|
|
|
// "SCWJ-NAME": "测试患者2", |
|
|
@ -536,22 +547,26 @@ export default { |
|
|
|
console.log("this.tenantId", this.tenantId); |
|
|
|
localStorage.setItem("tenantId", this.tenantId); |
|
|
|
this.getQueryHospitalNoToken(); // 组织id获取组织名称 |
|
|
|
this.calculateSleepTime(); //计算睡眠效率 |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
// 计算睡眠效率 |
|
|
|
// 上床睡觉时间、入睡时间、睡醒时间、起床时间,自动计算睡眠效率(睡眠时间/在床上时间) |
|
|
|
// 睡眠时间 = 入睡时间 - 起床时间 |
|
|
|
// 在床上时间 = 上床睡觉时间 - 入睡时间 |
|
|
|
// 睡眠时间 = 睡醒时间 - 入睡时间 |
|
|
|
// 在床上时间 = 起床时间 - 上床时间 |
|
|
|
// 睡眠效率 = 睡眠时间 / 在床上时间 |
|
|
|
|
|
|
|
// 注: |
|
|
|
// 睡醒时间 小于 入睡时间则表示是第二天的时间 |
|
|
|
// 起床时间 小于 上床则表示是第二天的时间 |
|
|
|
calculateSleepTime() { |
|
|
|
// 获取时间值 |
|
|
|
const bedTime = this.form["SCWJ-SCSJ"]; // 上床睡觉时间 |
|
|
|
const sleepTime = this.form["SCWJ-RSSJ"]; // 入睡时间 |
|
|
|
const wakeTime = this.form["SCWJ-SXSJ"]; // 睡醒时间 |
|
|
|
const wakeBedTime = this.form["SCWJ-QCSJ"]; // 起床时间 |
|
|
|
|
|
|
|
// 如果缺少任一时间,直接返回 |
|
|
|
if (!bedTime || !sleepTime || !wakeTime) return; |
|
|
|
if (!bedTime || !sleepTime || !wakeTime || !wakeBedTime) return; |
|
|
|
|
|
|
|
// 将时间字符串转换为分钟数 |
|
|
|
const toMinutes = (timeStr) => { |
|
|
@ -559,12 +574,24 @@ export default { |
|
|
|
return parseInt(hour) * 60 + parseInt(minute); |
|
|
|
}; |
|
|
|
|
|
|
|
// 计算在床上时间(入睡时间 - 上床睡觉时间) |
|
|
|
const inBedMinutes = toMinutes(sleepTime) - toMinutes(bedTime); |
|
|
|
// 计算在床上时间和睡眠时间 |
|
|
|
// 在床上时间 = 上床睡觉时间 - 入睡时间 |
|
|
|
// 睡眠时间 = 入睡时间 - 起床时间 |
|
|
|
let inBedMinutes = toMinutes(wakeBedTime) - toMinutes(bedTime); // 在床上时间 |
|
|
|
let sleepMinutes = toMinutes(wakeTime) - toMinutes(sleepTime); // 睡眠时间 |
|
|
|
|
|
|
|
// 计算睡眠时间(睡醒时间 - 入睡时间) |
|
|
|
const sleepMinutes = toMinutes(wakeTime) - toMinutes(sleepTime); |
|
|
|
// 处理跨天情况 |
|
|
|
// 如果入睡时间小于上床时间,说明跨天,加上24小时 |
|
|
|
if (inBedMinutes < 0) { |
|
|
|
inBedMinutes += 24 * 60; |
|
|
|
} |
|
|
|
|
|
|
|
// 如果睡醒时间小于入睡时间,说明跨天,加上24小时 |
|
|
|
if (sleepMinutes < 0) { |
|
|
|
sleepMinutes += 24 * 60; |
|
|
|
} |
|
|
|
console.log("inBedMinutes", inBedMinutes); |
|
|
|
console.log("sleepMinutes", sleepMinutes); |
|
|
|
// 计算睡眠效率(睡眠时间 / 在床上时间) |
|
|
|
const sleepEfficiency = (sleepMinutes / inBedMinutes) * 100; |
|
|
|
|
|
|
|