5 changed files with 572 additions and 13 deletions
@ -0,0 +1,358 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<!-- |
||||
|
1 抑郁情绪 0:无;1:只在问到时才诉述;2:在访谈中自发地表达;3:从表情、姿势、声音中流露;4:几乎完全表现为这种情绪 |
||||
|
2 有罪感 0:无;1:责备自己,感到连累他人;2:认为自己犯了罪;3:认为疾病是惩罚;4:罪恶妄想伴有幻觉 |
||||
|
3 自杀 0:无;1:觉得活着没有意义;2:希望死去;3:有自杀念头;4:有自杀行为 |
||||
|
4 入睡困难 0:无;1:有时入睡困难;2:每晚入睡困难 |
||||
|
5 睡眠不深 0:无;1:睡眠浅多恶梦;2:半夜醒来 |
||||
|
6 早醒 0:无;1:早醒但能重新入睡;2:早醒后无法重新入睡 |
||||
|
7 工作和兴趣 0:无困难;1:提问时才诉述;2:自发表达对活动失去兴趣;3:病室劳动或娱乐不满3小时;4:停止工作或无法完成日常事务 |
||||
|
8 迟缓 0:无;1:提问时才诉述;2:自发表达迟缓;3:明显迟缓;4:完全迟缓 |
||||
|
9 激越 0:无;1:有些心神不宁;2:明显心神不宁;3:不能静坐;4:严重激越 |
||||
|
10 精神性焦虑 0:无;1:问时诉述;2:自发表达;3:明显忧虑;4:明显惊恐 |
||||
|
11 躯体性焦虑 0:无;1:轻度;2:中度;3:重度;4:严重影响生活 |
||||
|
12 胃肠道症状 0:无;1:食欲减退;2:进食需他人催促;3:需用泻药或助消化药 |
||||
|
13 全身症状 0:无;1:轻度;2:明显 |
||||
|
14 性症状 0:无;1:轻度;2:重度;3:不适合或不能肯定 |
||||
|
15 疑病 0:无;1:对身体过分关注;2:反复考虑健康问题;3:有疑病妄想;4:伴有幻觉的疑病妄想 |
||||
|
16 体重减轻 0:无;1:可能有体重减轻;2:肯定体重减轻 |
||||
|
17 自知力 0:知道自己有病;1:归咎于其他原因;2:完全否认有病 |
||||
|
18 认知障碍 0:无;1:轻度;2:中度;3:重度;4:极重度 |
||||
|
19 日夜变化 0:无;1:有日夜变化 |
||||
|
20 人格解体 0:无;1:轻度;2:中度;3:重度;4:极重度 |
||||
|
21 偏执症状 0:无;1:轻度;2:中度;3:重度;4:极重度 |
||||
|
22 强迫症状 0:无;1:轻度;2:中度;3:重度;4:极重度 |
||||
|
23 躯体化症状 0:无;1:轻度;2:中度;3:重度;4:极重度 |
||||
|
24 社交退缩 0:无;1:轻度;2:中度;3:重度;4:极重度 |
||||
|
--> |
||||
|
<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", |
||||
|
props: ["scaleCode"], |
||||
|
data() { |
||||
|
return { |
||||
|
form: {}, |
||||
|
questions: [ |
||||
|
{ |
||||
|
index: 1, |
||||
|
question: "抑郁情绪", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "只在问到时才诉述", value: 1 }, |
||||
|
{ label: "在访谈中自发地表达", value: 2 }, |
||||
|
{ label: "从表情、姿势、声音中流露", value: 3 }, |
||||
|
{ label: "几乎完全表现为这种情绪", value: 4 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 2, |
||||
|
question: "有罪感", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "责备自己,感到连累他人", value: 1 }, |
||||
|
{ label: "认为自己犯了罪", value: 2 }, |
||||
|
{ label: "认为疾病是惩罚", value: 3 }, |
||||
|
{ label: "罪恶妄想伴有幻觉", value: 4 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 3, |
||||
|
question: "自杀", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "觉得活着没有意义", value: 1 }, |
||||
|
{ label: "希望死去", value: 2 }, |
||||
|
{ label: "有自杀念头", value: 3 }, |
||||
|
{ label: "有自杀行为", value: 4 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 4, |
||||
|
question: "入睡困难", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "有时入睡困难", value: 1 }, |
||||
|
{ label: "每晚入睡困难", value: 2 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 5, |
||||
|
question: "睡眠不深", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "睡眠浅多恶梦", value: 1 }, |
||||
|
{ label: "半夜醒来", value: 2 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 6, |
||||
|
question: "早醒", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "早醒但能重新入睡", value: 1 }, |
||||
|
{ label: "早醒后无法重新入睡", value: 2 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 7, |
||||
|
question: "工作和兴趣", |
||||
|
criteria: [ |
||||
|
{ label: "无困难", value: 0 }, |
||||
|
{ label: "提问时才诉述", value: 1 }, |
||||
|
{ label: "自发表达对活动失去兴趣", value: 2 }, |
||||
|
{ label: "病室劳动或娱乐不满3小时", value: 3 }, |
||||
|
{ label: "停止工作或无法完成日常事务", value: 4 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 8, |
||||
|
question: "迟缓", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "提问时才诉述", value: 1 }, |
||||
|
{ label: "自发表达迟缓", value: 2 }, |
||||
|
{ label: "明显迟缓", value: 3 }, |
||||
|
{ label: "完全迟缓", value: 4 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 9, |
||||
|
question: "激越", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "有些心神不宁", value: 1 }, |
||||
|
{ label: "明显心神不宁", value: 2 }, |
||||
|
{ label: "不能静坐", value: 3 }, |
||||
|
{ label: "严重激越", value: 4 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 10, |
||||
|
question: "精神性焦虑", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "问时诉述", value: 1 }, |
||||
|
{ label: "自发表达", value: 2 }, |
||||
|
{ label: "明显忧虑", value: 3 }, |
||||
|
{ label: "明显惊恐", value: 4 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 11, |
||||
|
question: "躯体性焦虑", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "轻度", value: 1 }, |
||||
|
{ label: "中度", value: 2 }, |
||||
|
{ label: "重度", value: 3 }, |
||||
|
{ label: "严重影响生活", value: 4 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 12, |
||||
|
question: "胃肠道症状", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "食欲减退", value: 1 }, |
||||
|
{ label: "进食需他人催促", value: 2 }, |
||||
|
{ label: "需用泻药或助消化药", value: 3 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 13, |
||||
|
question: "全身症状", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "轻度", value: 1 }, |
||||
|
{ label: "明显", value: 2 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 14, |
||||
|
question: "性症状", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "轻度", value: 1 }, |
||||
|
{ label: "重度", value: 2 }, |
||||
|
{ label: "不适合或不能肯定", value: 3 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 15, |
||||
|
question: "疑病", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "对身体过分关注", value: 1 }, |
||||
|
{ label: "反复考虑健康问题", value: 2 }, |
||||
|
{ label: "有疑病妄想", value: 3 }, |
||||
|
{ label: "伴有幻觉的疑病妄想", value: 4 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 16, |
||||
|
question: "体重减轻", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "可能有体重减轻", value: 1 }, |
||||
|
{ label: "肯定体重减轻", value: 2 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 17, |
||||
|
question: "自知力", |
||||
|
criteria: [ |
||||
|
{ label: "知道自己有病", value: 0 }, |
||||
|
{ label: "归咎于其他原因", value: 1 }, |
||||
|
{ label: "完全否认有病", value: 2 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 18, |
||||
|
question: "认知障碍", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "轻度", value: 1 }, |
||||
|
{ label: "中度", value: 2 }, |
||||
|
{ label: "重度", value: 3 }, |
||||
|
{ label: "极重度", value: 4 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 19, |
||||
|
question: "日夜变化", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "有日夜变化", value: 1 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 20, |
||||
|
question: "人格解体", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "轻度", value: 1 }, |
||||
|
{ label: "中度", value: 2 }, |
||||
|
{ label: "重度", value: 3 }, |
||||
|
{ label: "极重度", value: 4 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 21, |
||||
|
question: "偏执症状", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "轻度", value: 1 }, |
||||
|
{ label: "中度", value: 2 }, |
||||
|
{ label: "重度", value: 3 }, |
||||
|
{ label: "极重度", value: 4 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 22, |
||||
|
question: "强迫症状", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "轻度", value: 1 }, |
||||
|
{ label: "中度", value: 2 }, |
||||
|
{ label: "重度", value: 3 }, |
||||
|
{ label: "极重度", value: 4 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 23, |
||||
|
question: "躯体化症状", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "轻度", value: 1 }, |
||||
|
{ label: "中度", value: 2 }, |
||||
|
{ label: "重度", value: 3 }, |
||||
|
{ label: "极重度", value: 4 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 24, |
||||
|
question: "社交退缩", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 0 }, |
||||
|
{ label: "轻度", value: 1 }, |
||||
|
{ label: "中度", value: 2 }, |
||||
|
{ label: "重度", value: 3 }, |
||||
|
{ label: "极重度", value: 4 }, |
||||
|
], |
||||
|
}, |
||||
|
], |
||||
|
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][this.scaleCode] || {}; // 将上次填写的数据赋值给form |
||||
|
}, |
||||
|
methods: { |
||||
|
submitForm() { |
||||
|
let score = 0; |
||||
|
// 计算总分, topic${i}属性不一定存在,先校验是否存在 |
||||
|
for (let i = 1; i <= 24; 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> |
@ -0,0 +1,175 @@ |
|||||
|
<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", |
||||
|
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: "从不打瞌睡", 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][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> |
Loading…
Reference in new issue