Browse Source

同步诊疗菜单内容

newMaster
1747191978@qq.com 4 months ago
parent
commit
1743536485
  1. 368
      acupuncture-后台/src/views/medicalFile/components/anxiety/HAMD.vue
  2. 317
      acupuncture-后台/src/views/medicalFile/components/anxiety/SAS.vue
  3. 197
      acupuncture-后台/src/views/medicalFile/components/posture/PHQ-9.vue
  4. 166
      acupuncture-后台/src/views/medicalFile/components/posture/PSQI.vue
  5. 185
      acupuncture-后台/src/views/medicalFile/components/posture/epworth.vue
  6. 169
      acupuncture-后台/src/views/medicalFile/details.vue
  7. 1047
      acupuncture-后台/src/views/medicalFile/index.vue

368
acupuncture-后台/src/views/medicalFile/components/anxiety/HAMD.vue

@ -0,0 +1,368 @@
<template>
<div>
<!--
1 抑郁情绪 01只在问到时才诉述2在访谈中自发地表达3从表情姿势声音中流露4几乎完全表现为这种情绪
2 有罪感 01责备自己感到连累他人2认为自己犯了罪3认为疾病是惩罚4罪恶妄想伴有幻觉
3 自杀 01觉得活着没有意义2希望死去3有自杀念头4有自杀行为
4 入睡困难 01有时入睡困难2每晚入睡困难
5 睡眠不深 01睡眠浅多恶梦2半夜醒来
6 早醒 01早醒但能重新入睡2早醒后无法重新入睡
7 工作和兴趣 0无困难1提问时才诉述2自发表达对活动失去兴趣3病室劳动或娱乐不满3小时4停止工作或无法完成日常事务
8 迟缓 01提问时才诉述2自发表达迟缓3明显迟缓4完全迟缓
9 激越 01有些心神不宁2明显心神不宁3不能静坐4严重激越
10 精神性焦虑 01问时诉述2自发表达3明显忧虑4明显惊恐
11 躯体性焦虑 01轻度2中度3重度4严重影响生活
12 胃肠道症状 01食欲减退2进食需他人催促3需用泻药或助消化药
13 全身症状 01轻度2明显
14 性症状 01轻度2重度3不适合或不能肯定
15 疑病 01对身体过分关注2反复考虑健康问题3有疑病妄想4伴有幻觉的疑病妄想
16 体重减轻 01可能有体重减轻2肯定体重减轻
17 自知力 0知道自己有病1归咎于其他原因2完全否认有病
18 认知障碍 01轻度2中度3重度4极重度
19 日夜变化 01有日夜变化
20 人格解体 01轻度2中度3重度4极重度
21 偏执症状 01轻度2中度3重度4极重度
22 强迫症状 01轻度2中度3重度4极重度
23 躯体化症状 01轻度2中度3重度4极重度
24 社交退缩 01轻度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" class="submit-box-but" @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;
}
.submit-box {
display: flex;
justify-content: center;
align-items: center;
.submit-box-but {
width: 200px;
}
}
</style>

317
acupuncture-后台/src/views/medicalFile/components/anxiety/SAS.vue

@ -0,0 +1,317 @@
<template>
<div>
<!--
1 我觉得比平常容易紧张和着急焦虑 1没有或很少时间2小部分时间3相当多时间4绝大部分或全部时间
2 我无缘无故地感到害怕害怕 1没有或很少时间2小部分时间3相当多时间4绝大部分或全部时间
3 我容易心里烦乱或觉得惊恐惊恐 1没有或很少时间2小部分时间3相当多时间4绝大部分或全部时间
4 我觉得我可能将要发疯发疯感 1没有或很少时间2小部分时间3相当多时间4绝大部分或全部时间
5 我觉得一切都很好也不会发生什么不幸不幸预感 4没有或很少时间3小部分时间2相当多时间1绝大部分或全部时间
6 我手脚发抖打颤手足颤抖 1没有或很少时间2小部分时间3相当多时间4绝大部分或全部时间
7 我因为头痛头颈痛和背痛而苦恼躯体疼痛 1没有或很少时间2小部分时间3相当多时间4绝大部分或全部时间
8 我感觉容易衰弱和疲乏乏力 1没有或很少时间2小部分时间3相当多时间4绝大部分或全部时间
9 我觉得心平气和并且容易安静坐着静坐不能 4没有或很少时间3小部分时间2相当多时间1绝大部分或全部时间
10 我觉得心跳得很快心悸 1没有或很少时间2小部分时间3相当多时间4绝大部分或全部时间
11 我因为一阵阵头晕而苦恼头晕 1没有或很少时间2小部分时间3相当多时间4绝大部分或全部时间
12 我有晕倒发作或觉得要晕倒似的晕厥感 1没有或很少时间2小部分时间3相当多时间4绝大部分或全部时间
13 我呼气吸气都感到很容易呼吸困难 4没有或很少时间3小部分时间2相当多时间1绝大部分或全部时间
14 我手脚麻木和刺痛手足刺痛 1没有或很少时间2小部分时间3相当多时间4绝大部分或全部时间
15 我因为胃痛和消化不良而苦恼胃痛消化不良 1没有或很少时间2小部分时间3相当多时间4绝大部分或全部时间
16 我常常要小便尿意频数 1没有或很少时间2小部分时间3相当多时间4绝大部分或全部时间
17 我的手常常是干燥温暖的多汗 4没有或很少时间3小部分时间2相当多时间1绝大部分或全部时间
18 我脸红发热面部潮红 1没有或很少时间2小部分时间3相当多时间4绝大部分或全部时间
19 我容易入睡并且一夜睡得很好睡眠障碍 4没有或很少时间3小部分时间2相当多时间1绝大部分或全部时间
20 我做噩梦噩梦 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" class="submit-box-but" @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: 1 },
{ label: "小部分时间", value: 2 },
{ label: "相当多时间", value: 3 },
{ label: "绝大部分或全部时间", value: 4 },
],
},
{
index: 2,
question: "我无缘无故地感到害怕(害怕)",
criteria: [
{ label: "没有或很少时间", value: 1 },
{ label: "小部分时间", value: 2 },
{ label: "相当多时间", value: 3 },
{ label: "绝大部分或全部时间", value: 4 },
],
},
{
index: 3,
question: "我容易心里烦乱或觉得惊恐(惊恐)",
criteria: [
{ label: "没有或很少时间", value: 1 },
{ label: "小部分时间", value: 2 },
{ label: "相当多时间", value: 3 },
{ label: "绝大部分或全部时间", value: 4 },
],
},
{
index: 4,
question: "我觉得我可能将要发疯(发疯感)",
criteria: [
{ label: "没有或很少时间", value: 1 },
{ label: "小部分时间", value: 2 },
{ label: "相当多时间", value: 3 },
{ label: "绝大部分或全部时间", value: 4 },
],
},
{
index: 5,
question: "我觉得一切都很好,也不会发生什么不幸(不幸预感)",
criteria: [
{ label: "没有或很少时间", value: 4 },
{ label: "小部分时间", value: 3 },
{ label: "相当多时间", value: 2 },
{ label: "绝大部分或全部时间", value: 1 },
],
},
{
index: 6,
question: "我手脚发抖打颤(手足颤抖)",
criteria: [
{ label: "没有或很少时间", value: 1 },
{ label: "小部分时间", value: 2 },
{ label: "相当多时间", value: 3 },
{ label: "绝大部分或全部时间", value: 4 },
],
},
{
index: 7,
question: "我因为头痛、头颈痛和背痛而苦恼(躯体疼痛)",
criteria: [
{ label: "没有或很少时间", value: 1 },
{ label: "小部分时间", value: 2 },
{ label: "相当多时间", value: 3 },
{ label: "绝大部分或全部时间", value: 4 },
],
},
{
index: 8,
question: "我感觉容易衰弱和疲乏(乏力)",
criteria: [
{ label: "没有或很少时间", value: 1 },
{ label: "小部分时间", value: 2 },
{ label: "相当多时间", value: 3 },
{ label: "绝大部分或全部时间", value: 4 },
],
},
{
index: 9,
question: "我觉得心平气和,并且容易安静坐着(静坐不能)",
criteria: [
{ label: "没有或很少时间", value: 4 },
{ label: "小部分时间", value: 3 },
{ label: "相当多时间", value: 2 },
{ label: "绝大部分或全部时间", value: 1 },
],
},
{
index: 10,
question: "我觉得心跳得很快(心悸)",
criteria: [
{ label: "没有或很少时间", value: 1 },
{ label: "小部分时间", value: 2 },
{ label: "相当多时间", value: 3 },
{ label: "绝大部分或全部时间", value: 4 },
],
},
{
index: 11,
question: "我因为一阵阵头晕而苦恼(头晕)",
criteria: [
{ label: "没有或很少时间", value: 1 },
{ label: "小部分时间", value: 2 },
{ label: "相当多时间", value: 3 },
{ label: "绝大部分或全部时间", value: 4 },
],
},
{
index: 12,
question: "我有晕倒发作或觉得要晕倒似的(晕厥感)",
criteria: [
{ label: "没有或很少时间", value: 1 },
{ label: "小部分时间", value: 2 },
{ label: "相当多时间", value: 3 },
{ label: "绝大部分或全部时间", value: 4 },
],
},
{
index: 13,
question: "我呼气、吸气都感到很容易(呼吸困难)",
criteria: [
{ label: "没有或很少时间", value: 4 },
{ label: "小部分时间", value: 3 },
{ label: "相当多时间", value: 2 },
{ label: "绝大部分或全部时间", value: 1 },
],
},
{
index: 14,
question: "我手脚麻木和刺痛(手足刺痛)",
criteria: [
{ label: "没有或很少时间", value: 1 },
{ label: "小部分时间", value: 2 },
{ label: "相当多时间", value: 3 },
{ label: "绝大部分或全部时间", value: 4 },
],
},
{
index: 15,
question: "我因为胃痛和消化不良而苦恼(胃痛,消化不良)",
criteria: [
{ label: "没有或很少时间", value: 1 },
{ label: "小部分时间", value: 2 },
{ label: "相当多时间", value: 3 },
{ label: "绝大部分或全部时间", value: 4 },
],
},
{
index: 16,
question: "我常常要小便(尿意频数)",
criteria: [
{ label: "没有或很少时间", value: 1 },
{ label: "小部分时间", value: 2 },
{ label: "相当多时间", value: 3 },
{ label: "绝大部分或全部时间", value: 4 },
],
},
{
index: 17,
question: "我的手常常是干燥温暖的(多汗)",
criteria: [
{ label: "没有或很少时间", value: 4 },
{ label: "小部分时间", value: 3 },
{ label: "相当多时间", value: 2 },
{ label: "绝大部分或全部时间", value: 1 },
],
},
{
index: 18,
question: "我脸红发热(面部潮红)",
criteria: [
{ label: "没有或很少时间", value: 1 },
{ label: "小部分时间", value: 2 },
{ label: "相当多时间", value: 3 },
{ label: "绝大部分或全部时间", value: 4 },
],
},
{
index: 19,
question: "我容易入睡,并且一夜睡得很好(睡眠障碍)",
criteria: [
{ label: "没有或很少时间", value: 4 },
{ label: "小部分时间", value: 3 },
{ label: "相当多时间", value: 2 },
{ label: "绝大部分或全部时间", value: 1 },
],
},
{
index: 20,
question: "我做噩梦(噩梦)",
criteria: [
{ 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 <= 20; 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;
}
.submit-box {
display: flex;
justify-content: center;
align-items: center;
.submit-box-but {
width: 200px;
}
}
</style>

197
acupuncture-后台/src/views/medicalFile/components/posture/PHQ-9.vue

@ -0,0 +1,197 @@
<template>
<div>
<!--
分值范围
评分方法每个条目根据症状频率评分0分表示完全没有1分表示有几天2分表示七天以上3分表示接近每天总分范围为0~27
分值意义
0~4无或极轻微的抑郁症状
5~9轻度抑郁
10~14中度抑郁
15~19中重度抑郁
20~27重度抑郁
-->
<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 class="submit-box-but" 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: "完全没有", 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 },
],
},
{
index: 9,
question: "想到自己不如死了算了,或者有自残的念头",
criteria: [
{ label: "完全没有", value: 0 },
{ label: "有几天", value: 1 },
{ label: "七天以上", value: 2 },
{ label: "接近每天", 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;
}
.submit-box {
display: flex;
justify-content: center;
align-items: center;
.submit-box-but {
width: 200px;
}
}
</style>

166
acupuncture-后台/src/views/medicalFile/components/posture/PSQI.vue

@ -0,0 +1,166 @@
<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 class="submit-box-but" 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 <= 7; 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;
}
.submit-box {
display: flex;
justify-content: center;
align-items: center;
.submit-box-but {
width: 200px;
}
}
</style>

185
acupuncture-后台/src/views/medicalFile/components/posture/epworth.vue

@ -0,0 +1,185 @@
<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 class="submit-box-but" 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 <= 8; 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;
}
.submit-box {
display: flex;
justify-content: center;
align-items: center;
.submit-box-but {
width: 200px;
}
}
</style>

169
acupuncture-后台/src/views/medicalFile/details.vue

@ -10,7 +10,7 @@
</el-steps>
</div>
<div class="div-right" style="padding: 0 16px">
<a name="0"></a>
<div style="cursor: not-allowed">
<div class="div-title1">基本信息</div>
<div class="div-border div-bot20">
<el-descriptions class="margin-top" :column="3">
@ -53,10 +53,16 @@
prop="JBXX_ZYZD"
>
<el-checkbox-group v-model="detailsForm['JBXX_ZYZD']">
<el-checkbox v-for="(item, index) in medicalHistory" :label="item">
<el-checkbox
v-for="(item, index) in medicalHistory"
:label="item"
>
</el-checkbox>
</el-checkbox-group>
<el-input v-model="detailsForm['JBXX_ZYZD_QT']" placeholder="其他" />
<el-input
v-model="detailsForm['JBXX_ZYZD_QT']"
placeholder="其他"
/>
</el-form-item>
<div>
<a name="2"></a>
@ -231,28 +237,58 @@
</div>
<div class="div-title2">失眠评估</div>
<div class="human-body">
<el-form-item
label="患者健康问卷(PHQ-9)评估得分(0-27分)"
prop="PG_SM_PHQ-9_DF"
<el-form-item prop="PG_SM_PHQ-9_DF">
<template v-slot:label>
患者健康问卷PHQ-9评估得分(0-27)
<span
class="foem-item-pg"
@click="
handleComponents(
'PG_SM_PHQ-9_DF',
'患者健康问卷(PHQ-9)'
)
"
>
评估
</span>
</template>
<el-input
v-model="detailsForm['PG_SM_PHQ-9_DF']"
placeholder="请输入"
/>
</el-form-item>
<el-form-item
label="Epworth嗜睡评估得分(0-24分)"
prop="PG_SM_EPSW_DF"
<el-form-item prop="PG_SM_EPSW_DF">
<template v-slot:label>
Epworth嗜睡评估得分(0-24)
<span
class="foem-item-pg"
@click="
handleComponents('PG_SM_EPSW_DF', 'Epworth嗜睡评估')
"
>
评估
</span>
</template>
<el-input
v-model="detailsForm['PG_SM_EPSW_DF']"
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="请输入"
@ -261,19 +297,36 @@
</div>
<div class="div-title2">焦虑评估</div>
<div class="human-body">
<el-form-item
label="汉密尔顿抑郁评估(HAMD-24)得分(0-96分)"
prop="PG_JL_HAMD-24_DF"
<el-form-item prop="PG_JL_HAMD-24_DF">
<template v-slot:label>
汉密尔顿抑郁评估HAMD-24得分(0-96)
<span
class="foem-item-pg"
@click="
handleComponents(
'PG_JL_HAMD-24_DF',
'汉密尔顿抑郁评估(HAMD-24)'
)
"
>
评估
</span>
</template>
<el-input
v-model="detailsForm['PG_JL_HAMD-24_DF']"
placeholder="请输入"
/>
</el-form-item>
<el-form-item
label="焦虑自评(SAS)得分(0-100分)"
prop="PG_JL_SAS_DF"
<el-form-item prop="PG_JL_SAS_DF">
<template v-slot:label>
焦虑自评SAS得分(0-100)
<span
class="foem-item-pg"
@click="handleComponents('PG_JL_SAS_DF', '焦虑自评(SAS)')"
>
评估
</span>
</template>
<el-input
v-model="detailsForm['PG_JL_SAS_DF']"
placeholder="请输入"
@ -383,7 +436,10 @@
<el-radio label=">5000元"> </el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="中医治疗费用按照区间进行选择" prop="ZLFA_ZYZLFY">
<el-form-item
label="中医治疗费用按照区间进行选择"
prop="ZLFA_ZYZLFY"
>
<el-radio-group v-model="detailsForm['ZLFA_ZYZLFY']">
<el-radio label="<300元"> </el-radio>
<el-radio label="300 ~ 900元"> </el-radio>
@ -403,24 +459,69 @@
</el-form-item>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
</div>
<!-- <div slot="footer" class="dialog-footer">
<el-button
style="width: 140px"
type="primary"
@click="submitDetailsForm"
> </el-button
>
</div> -->
</div>
</div>
<!-- 动态量表组件框 -->
<el-dialog
class="popup"
:title="title"
:visible.sync="open"
width="1200px"
append-to-body
>
<component
@getScaleResult="getScaleResult"
:scaleCode="scaleCode"
class="popup-module"
:is="componentsCode"
></component>
</el-dialog>
</div>
</template>
<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
//
import HAMD24 from "./components/anxiety/HAMD"; // HAMD-24
import SAS from "./components/anxiety/SAS"; //
export default {
name: "Notice",
components: {
PHQ,
epworth,
PSQI,
HAMD24,
SAS,
},
data() {
return {
title: "", //
open: false, //
//
component: {
//
"PG_SM_PHQ-9_DF": "PHQ", // PHQ-9
PG_SM_EPSW_DF: "epworth", // Epworth
PG_SM_PSQI_DF: "PSQI", // PSQI
//
"PG_JL_HAMD-24_DF": "HAMD24", // HAMD-24
PG_JL_SAS_DF: "SAS", // SAS
},
componentsCode: "", // code
scaleCode: "", // code
stepActive: 0,
stepArr: [
"基本信息",
@ -885,6 +986,18 @@ export default {
this.handleDetails(treatmentId);
},
methods: {
//
getScaleResult(_scaleResult, _code) {
this.detailsForm[_code] = String(_scaleResult);
this.open = false; //
},
// code
handleComponents(_code, _title) {
this.componentsCode = this.component[_code]; // code
this.scaleCode = _code; // code
this.open = true; //
this.title = _title; //
},
/** 详情按钮操作 */
handleDetails(treatmentId) {
this.getDetailsForm(); //
@ -982,9 +1095,8 @@ export default {
treatmentId: this.form.id,
codeAndAnswerList,
}).then((response) => {
this.handleDetails(this.treatmentId);
this.$modal.msgSuccess("保存成功");
this.drawer = false;
this.getList();
});
}
});
@ -995,6 +1107,13 @@ export default {
<style scoped src="@/assets/styles/common.css"></style>
<style scoped>
.foem-item-pg {
color: blue;
border-bottom: 1px solid blue;
cursor: pointer;
position: relative;
z-index: 9;
}
.app-container {
display: flex;
}
@ -1006,8 +1125,9 @@ export default {
}
.app-container .div-right {
flex: 1;
height: calc(100vh - 130px);
height: calc(100vh - 100px);
overflow: scroll;
pointer-events: none;
}
.div-border {
border-bottom: 1px solid #d8d8d8;
@ -1094,6 +1214,7 @@ export default {
width: 50% !important;
}
.dialog-footer {
margin-bottom: 20px;
text-align: center;
}
</style>

1047
acupuncture-后台/src/views/medicalFile/index.vue

File diff suppressed because it is too large
Loading…
Cancel
Save