Browse Source

诊疗档案添加失眠评估-匹兹堡睡眠质量指数(PSQI)

newMaster
1747191978@qq.com 4 months ago
parent
commit
7fd554d290
  1. 156
      acupuncture-前台/src/views/medicalFile/components/posture/PSQI.vue
  2. 174
      acupuncture-前台/src/views/medicalFile/components/posture/epworth copy.vue
  3. 21
      acupuncture-前台/src/views/medicalFile/details.vue

156
acupuncture-前台/src/views/medicalFile/components/posture/PSQI.vue

@ -0,0 +1,156 @@
<template>
<div>
<div>
<div
class="item-container"
v-for="(item, index) in questions"
:key="index"
>
<div class="item-title">{{ item.index }}. {{ item.question }}</div>
<div class="item-radio-box">
<el-radio-group v-model="form[`topic${item.index}`]">
<el-radio
v-for="(criteria, index) in item.criteria"
:key="index"
:label="criteria.value"
>{{ criteria.label }}
</el-radio>
</el-radio-group>
</div>
</div>
<div class="submit-box">
<el-button type="primary" @click="submitForm">提交</el-button>
</div>
</div>
</div>
</template>
<script>
export default {
name: "PHQ9",
props: ["scaleCode"],
data() {
return {
form: {},
questions: [
{
index: 1,
question: "睡眠质量-总体评价睡眠质量",
criteria: [
{ label: "很好", value: 0 },
{ label: "较好", value: 1 },
{ label: "较差", value: 2 },
{ label: "很差", value: 3 },
],
},
{
index: 2,
question: "入睡时间-从上床到入睡的时间",
criteria: [
{ label: "≤15分钟", value: 0 },
{ label: "16~30分钟", value: 1 },
{ label: "31~60分钟", value: 2 },
{ label: "≥60分钟", value: 3 },
],
},
{
index: 3,
question: "睡眠时间-每晚实际睡眠时间",
criteria: [
{ label: ">7小时", value: 0 },
{ label: "6~7小时", value: 1 },
{ label: "5~6小时", value: 2 },
{ label: "<5小时", value: 3 },
],
},
{
index: 4,
question: "睡眠效率-睡眠时间与床上时间的比例",
criteria: [
{ label: ">85%", value: 0 },
{ label: "75%~84%", value: 1 },
{ label: "65%~74%", value: 2 },
{ label: "<65%", value: 3 },
],
},
{
index: 5,
question: "睡眠障碍-夜间醒来、呼吸困难、噩梦等",
criteria: [
{ label: "每项无", value: 0 },
{ label: "<1次/周", value: 1 },
{ label: "1~2次/周", value: 2 },
{ label: "≥3次/周", value: 3 },
],
},
{
index: 6,
question: "催眠药物-使用催眠药物的频率",
criteria: [
{ label: "无", value: 0 },
{ label: "<1次/周", value: 1 },
{ label: "1~2次/周", value: 2 },
{ label: "≥3次/周", value: 3 },
],
},
{
index: 7,
question: "日间功能障碍-白天困倦、注意力不集中等",
criteria: [
{ label: "无", value: 0 },
{ label: "<1次/周", value: 1 },
{ label: "1~2次/周", value: 2 },
{ label: "≥3次/周", value: 3 },
],
},
],
scaleData: {},
};
},
created() {
console.log("this.scaleCode", this.scaleCode);
this.treatmentId = this.$route.query.treatmentId; // id
let scaleData = localStorage.getItem("scaleData"); //
this.scaleData = scaleData
? JSON.parse(scaleData)
: {
[this.treatmentId]: {},
};
this.form = this.scaleData[this.treatmentId][this.scaleCode] || {}; // form
},
methods: {
submitForm() {
let score = 0;
// , topic${i}
for (let i = 1; i <= 9; i++) {
if (this.form[`topic${i}`] !== undefined) {
score += this.form[`topic${i}`];
}
}
//
this.scaleData[this.treatmentId][this.scaleCode] = this.form;
localStorage.setItem("scaleData", JSON.stringify(this.scaleData));
//
this.$emit("getScaleResult", score, this.scaleCode);
},
},
};
</script>
<style scoped src="@/assets/styles/common.css"></style>
<style scoped>
.item-title {
font-size: 20px;
font-weight: bold;
color: #3d3d3d;
line-height: 26px;
}
.item-radio-box {
margin: 16px 0px;
}
>>> .el-radio__label {
font-size: 18px;
color: #555555;
line-height: 20px;
}
</style>

174
acupuncture-前台/src/views/medicalFile/components/posture/epworth copy.vue

@ -1,174 +0,0 @@
<template>
<div>
<!--
1 坐着阅读书刊 0从不打瞌睡1轻度可能2中度可能3很可能打瞌睡
2 看电视 0从不打瞌睡1轻度可能2中度可能3很可能打瞌睡
3 在公共场所坐着不活动如剧院或会议 0从不打瞌睡1轻度可能2中度可能3很可能打瞌睡
4 作为乘客在车内乘坐一小时以上 0从不打瞌睡1轻度可能2中度可能3很可能打瞌睡
5 午间静卧休息 0从不打瞌睡1轻度可能2中度可能3很可能打瞌睡
6 坐着和别人交谈 0从不打瞌睡1轻度可能2中度可能3很可能打瞌睡
7 午餐后静坐不饮酒 0从不打瞌睡1轻度可能2中度可能3很可能打瞌睡
8 坐在车内当车辆因交通拥堵而停下时 0从不打瞌睡1轻度可能2中度可能3很可能打瞌睡
-->
<div>
<div
class="item-container"
v-for="(item, index) in questions"
:key="index"
>
<div class="item-title">{{ item.index }}. {{ item.question }}</div>
<div class="item-radio-box">
<el-radio-group v-model="form[`topic${item.index}`]">
<el-radio
v-for="(criteria, index) in item.criteria"
:key="index"
:label="criteria.value"
>{{ criteria.label }}
</el-radio>
</el-radio-group>
</div>
</div>
<div class="submit-box">
<el-button type="primary" @click="submitForm">提交</el-button>
</div>
</div>
</div>
</template>
<script>
export default {
name: "phq",
data() {
return {
form: {},
questions: [
{
index: 1,
question: "坐着阅读书刊",
criteria: [
{ label: "从不打瞌睡", value: 0 },
{ label: "轻度可能", value: 1 },
{ label: "中度可能", value: 2 },
{ label: "很可能打瞌睡", value: 3 },
],
},
{
index: 2,
question: "看电视",
criteria: [
{ label: "从不打瞌睡", value: 0 },
{ label: "轻度可能", value: 1 },
{ label: "中度可能", value: 2 },
{ label: "很可能打瞌睡", value: 3 },
],
},
{
index: 3,
question: "在公共场所坐着不活动(如剧院或会议)",
criteria: [
{ label: "从不打瞌睡", value: 0 },
{ label: "轻度可能", value: 1 },
{ label: "中度可能", value: 2 },
{ label: "很可能打瞌睡", value: 3 },
],
},
{
index: 4,
question: "作为乘客在车内乘坐一小时以上",
criteria: [
{ label: "从不打瞌睡", value: 0 },
{ label: "轻度可能", value: 1 },
{ label: "中度可能", value: 2 },
{ label: "很可能打瞌睡", value: 3 },
],
},
{
index: 5,
question: "午间静卧休息",
criteria: [
{ label: "从不打瞌睡", value: 0 },
{ label: "轻度可能", value: 1 },
{ label: "中度可能", value: 2 },
{ label: "很可能打瞌睡", value: 3 },
],
},
{
index: 6,
question: "坐着和别人交谈",
criteria: [
{ label: "从不打瞌睡", value: 0 },
{ label: "轻度可能", value: 1 },
{ label: "中度可能", value: 2 },
{ label: "很可能打瞌睡", value: 3 },
],
},
{
index: 7,
question: "午餐后静坐(不饮酒)",
criteria: [
{ label: "从不打瞌睡", value: 0 },
{ label: "轻度可能", value: 1 },
{ label: "中度可能", value: 2 },
{ label: "很可能打瞌睡", value: 3 },
],
},
{
index: 8,
question: "坐在车内,当车辆因交通拥堵而停下时",
criteria: [
{ label: "从不打瞌睡", value: 0 },
{ label: "轻度可能", value: 1 },
{ label: "中度可能", value: 2 },
{ label: "很可能打瞌睡", value: 3 },
],
},
],
scaleData: {},
};
},
created() {
this.treatmentId = this.$route.query.treatmentId; // id
let scaleData = localStorage.getItem("scaleData"); //
this.scaleData = scaleData
? JSON.parse(scaleData)
: {
[this.treatmentId]: {},
};
this.form = this.scaleData[this.treatmentId].epworth || {}; // form
},
methods: {
submitForm() {
let score = 0;
// , topic${i}
for (let i = 1; i <= 9; i++) {
if (this.form[`topic${i}`] !== undefined) {
score += this.form[`topic${i}`];
}
}
//
this.scaleData[this.treatmentId].epworth = this.form;
localStorage.setItem("scaleData", JSON.stringify(this.scaleData));
//
this.$emit("getScaleResult", score, "PG_SM_EPSW_DF");
},
},
};
</script>
<style scoped src="@/assets/styles/common.css"></style>
<style scoped>
.item-title {
font-size: 20px;
font-weight: bold;
color: #3d3d3d;
line-height: 26px;
}
.item-radio-box {
margin: 16px 0px;
}
>>> .el-radio__label {
font-size: 18px;
color: #555555;
line-height: 20px;
}
</style>

21
acupuncture-前台/src/views/medicalFile/details.vue

@ -263,10 +263,21 @@
placeholder="请输入"
/>
</el-form-item>
<el-form-item
label="匹兹堡睡眠质量指数(PSQI)评估得分(0~21分)"
prop="PG_SM_PSQI_DF"
<el-form-item prop="PG_SM_PSQI_DF">
<template v-slot:label>
匹兹堡睡眠质量指数PSQI评估得分(0~21)
<span
class="foem-item-pg"
@click="
handleComponents(
'PG_SM_PSQI_DF',
'匹兹堡睡眠质量指数(PSQI)'
)
"
>
评估
</span>
</template>
<el-input
v-model="detailsForm['PG_SM_PSQI_DF']"
placeholder="请输入"
@ -446,13 +457,16 @@
<script>
import { queryRecord, saveAidRecord } from "@/api/medicalFile";
//
import PHQ from "./components/posture/PHQ-9"; // PHQ-9
import epworth from "./components/posture/epworth"; // Epworth
import PSQI from "./components/posture/PSQI"; //PSQI
export default {
name: "Notice",
components: {
PHQ,
epworth,
PSQI,
},
data() {
return {
@ -462,6 +476,7 @@ export default {
//
"PG_SM_PHQ-9_DF": "PHQ", // PHQ-9
PG_SM_EPSW_DF: "epworth", // Epworth
PG_SM_PSQI_DF: "PSQI", // PSQI
}, //
componentsCode: "", // code
scaleCode: "", // code

Loading…
Cancel
Save