diff --git a/src/main/java/com/peanut/modules/common/controller/SelfEvaluationFormController.java b/src/main/java/com/peanut/modules/common/controller/SelfEvaluationFormController.java index 0c32b822..e99989c2 100644 --- a/src/main/java/com/peanut/modules/common/controller/SelfEvaluationFormController.java +++ b/src/main/java/com/peanut/modules/common/controller/SelfEvaluationFormController.java @@ -10,10 +10,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 心身医学自评表 @@ -32,10 +29,10 @@ public class SelfEvaluationFormController { public R formList() { List res = new ArrayList(); res.add(yiyu); -// res.add(jiaolv); + res.add(jiaolv); // res.add(zibi); -// res.add(zaokuang); -// res.add(zilian); + res.add(zaokuang); + res.add(zilian); return R.ok().put("formList",res); } @@ -45,6 +42,12 @@ public class SelfEvaluationFormController { List list = null; if ("yiyu".equals(params.get("type").toString())){ list = yiyuList; + }else if ("jiaolv".equals(params.get("type").toString())){ + list = jiaolvList; + }else if ("zaokuang".equals(params.get("type").toString())){ + list = zaokuangList; + }else if ("zilian".equals(params.get("type").toString())){ + list = zilianList; } return R.ok().put("list",list); } @@ -58,6 +61,12 @@ public class SelfEvaluationFormController { String city = params.get("city").toString(); if ("yiyu".equals(params.get("type").toString())){ res = countyiyu(list,country); + }else if ("zilian".equals(params.get("type").toString())) { + res = countzilian(list); + }else if ("jiaolv".equals(params.get("type").toString())) { + res = countjiaolv(list); + }else if ("zaokuang".equals(params.get("type").toString())) { + res = countzaokuang(list); } SelfEvaluationForm f = new SelfEvaluationForm(); f.setType(params.get("type").toString()); @@ -102,6 +111,70 @@ public class SelfEvaluationFormController { } return R.ok().put("total",total).put("status",status); } + public R countjiaolv(List list) { + int total = 0; + for (int i=0;i < list.size(); i++) { + //反向题 + if (i==1||i==2||i==3||i==4||i==6||i==7||i==8||i==10||i==11||i==12||i==14||i==15||i==16||i==18||i==20){ + if (list.get(i)==1){ + total += 1; + }else if(list.get(i)==2){ + total += 2; + }else if (list.get(i) == 3) { + total += 3; + }else { + total += 4; + } + }else { + total += list.get(i); + } + } + total = (int)(total*1.25); + String status ="正常"; + if (total>=70){ + status ="重度焦虑"; + }else if (total >= 60) { + status ="中至重度焦虑"; + }else if (total >= 50) { + status ="轻微至轻度焦虑"; + } + return R.ok().put("total",total).put("status",status); + } + public R countzaokuang(List list) { + int total = 0; + for (int i=0;i < list.size(); i++) { + if (list.get(i)==1){ + total += 0; + }else if(list.get(i)==2){ + total += 1; + }else if (list.get(i) == 3) { + total += 2; + }else { + total += 3; + } + } + String status ="无双相情感障碍 (注意自我保重)"; + if (total>=19){ + status ="可能有双相情感账啊  (一定要看心理医生或精神科医生)"; + }else if (total >= 9) { + status ="可能有轻微的双相情感障碍  (建议咨询心理医生或精神科医生)"; + } + return R.ok().put("total",total).put("status",status); + } + + public R countzilian(List list) { + int total = 0; + for (int i=0;i < list.size(); i++) { + if (1==list.get(i)){ + total++; + } + } + String status ="自恋型人格障碍"; + if (total>=5){ + status ="正常"; + } + return R.ok().put("total",total).put("status",status); + } @@ -109,15 +182,15 @@ public class SelfEvaluationFormController { private static final Map yiyu; -// private static final Map jiaolv; + private static final Map jiaolv; // private static final Map zibi; -// private static final Map zaokuang; -// private static final Map zilian; + private static final Map zaokuang; + private static final Map zilian; private static final List yiyuList; -// private static final List jiaolvList; + private static final List jiaolvList; // private static final List zibiList; -// private static final List zaokuangList; -// private static final List zilianList; + private static final List zaokuangList; + private static final List zilianList; static { yiyu = new HashMap<>(); @@ -142,6 +215,7 @@ public class SelfEvaluationFormController { "正向题,依次评为粗分1、2、3、4分   (1 3 4 7 8 9 10 13 15 19)\n" + "反向题,依次评为粗分4、3、2、1分   (2 5 6 11 12 14 16 17 18 20)\n" + "20项相加得到原始分,原始分分乘以1.25以后取整,得到标准分。"); + yiyu.put("result", Arrays.asList("没有或很少时间","小部分时间","相当多时间","绝大部分或全部时间")); yiyuList = new ArrayList(); yiyuList.add("我觉得闷闷不乐,情绪低沉"); yiyuList.add("我觉得一天之中早晨最好"); @@ -164,17 +238,41 @@ public class SelfEvaluationFormController { yiyuList.add("我认为如果我死了别人会生活得好些"); yiyuList.add("我平常感兴趣的事我仍然照样感兴趣"); -// jiaolv = new HashMap<>(); -// jiaolv.put("title","焦虑量表"); -// jiaolv.put("des","你焦虑吗"); -// jiaolv.put("num","20道题目"); -// jiaolv.put("tip","请仔细阅读每道题目,把意思弄明白,然后根据最近一周的实际感觉,选择适当的选项。"); -// jiaolv.put("cnRes","否"); -// jiaolv.put("worldRes","否"); -// jiaolv.put("role","大于0就焦虑"); + jiaolv = new HashMap<>(); + jiaolv.put("title","SAS焦虑量表"); + jiaolv.put("type","jiaolv"); + jiaolv.put("des","焦虑自评量表,由W.K.Zung于1971年编制。从量表结构的形式到具体评定方法,都与抑郁自评量表(SDS)十分相似,用于评定病人焦虑的主观感受及其在治疗中的变化。SAS适用于具有焦虑症状的成年人,它与SDS一样具有广泛的应用性。焦虑是心理咨询门诊中较为常见的一种情绪障碍,因此SAS可作为咨询门诊中了解焦虑症状的自评工具。"); + jiaolv.put("num","20道题目"); + jiaolv.put("tip","请仔细阅读每道题目,把意思弄明白,然后根据最近一周的实际感觉,选择适当的选项。"); + jiaolv.put("cnRes","SAS标准差的分界值为50分,其中50~59分为轻度焦虑,60~69分为中度焦虑,69分以上为重度焦虑。"); + jiaolv.put("worldRes","SAS标准差的分界值为50分,其中50~59分为轻度焦虑,60~69分为中度焦虑,69分以上为重度焦虑。"); + jiaolv.put("role","若为正向评分题,依次评为粗分1、2、3、4分;反向评分题(带有*号者),则评为4、3、2、1分。与SDS一样,20个项目得分相加即得粗分(X),经过公式换算,即用粗分乘以1.25以后取整数部分,就得标准分(Y)。"); + jiaolv.put("result", Arrays.asList("没有或很少时间","小部分时间","相当多时间","绝大部分或全部时间")); + jiaolvList = new ArrayList(); + jiaolvList.add("我觉得比平常容易紧张和着急"); + jiaolvList.add("我无缘无故地感到害怕"); + jiaolvList.add("我容易心里烦乱或觉得惊恐"); + jiaolvList.add("我觉得我可能将要发疯"); + jiaolvList.add("我觉得一切都很好,也不会发生什么不幸"); + jiaolvList.add("我手脚发抖打颤"); + jiaolvList.add("我因为头疼、头颈痛和背痛而苦恼"); + jiaolvList.add("我感到容易衰弱和疲乏"); + jiaolvList.add("我觉得心平气和,并且容易安静坐着"); + jiaolvList.add("我觉得心跳得很快"); + jiaolvList.add("我因为一阵阵头晕而苦恼"); + jiaolvList.add("我有晕倒发作或觉得要晕倒似的"); + jiaolvList.add("我呼气、吸气都感到很容易"); + jiaolvList.add("我手脚麻木和刺痛"); + jiaolvList.add("我因为胃痛和消化不良而苦恼"); + jiaolvList.add("我常常要小便"); + jiaolvList.add("我的手脚常常是干燥温暖的"); + jiaolvList.add("我脸红发热"); + jiaolvList.add("我容易入睡,并且一夜睡得很好"); + jiaolvList.add("我做恶梦(恶梦)"); // zibi = new HashMap<>(); // zibi.put("title","自闭量表"); +// zibi.put("type","zibi"); // zibi.put("des","你自闭了吗"); // zibi.put("num","20道题目"); // zibi.put("tip","请仔细阅读每道题目,把意思弄明白,然后根据最近一周的实际感觉,选择适当的选项。"); @@ -182,23 +280,56 @@ public class SelfEvaluationFormController { // zibi.put("worldRes","否"); // zibi.put("role","大于0就自闭"); -// zaokuang = new HashMap<>(); -// zaokuang.put("title","躁狂量表"); -// zaokuang.put("des","不要躁狂"); -// zaokuang.put("num","20道题目"); -// zaokuang.put("tip","请仔细阅读每道题目,把意思弄明白,然后根据最近一周的实际感觉,选择适当的选项。"); -// zaokuang.put("cnRes","否"); -// zaokuang.put("worldRes","否"); -// zaokuang.put("role","大于0就躁狂"); + zaokuang = new HashMap<>(); + zaokuang.put("title","双相情感障碍/躁郁症量表"); + zaokuang.put("type","zaokuang"); + zaokuang.put("des","BSQ主要用于对双相情感障碍(躁狂抑郁症)进行筛查,量表主要包含12个项目。对于双向情感障碍的筛查,除了通过专门的双向情感障碍量表筛查外,也可以结合躁狂症筛查量表、抑郁症筛查量表一起进行,如果即有躁狂症状又有抑郁症状,则需要考虑双向情感障碍的可能性。"); + zaokuang.put("num","12道题目"); + zaokuang.put("tip","请仔细阅读每道题目,把意思弄明白,然后根据最近一周的实际感觉,选择适当的选项。"); + zaokuang.put("cnRes","0-8  无双相情感障碍 (注意自我保重)\n" + + "9-18  可能有轻微的双相情感障碍  (建议咨询心理医生或精神科医生)\n" + + "19-36 可能有双相情感账啊  (一定要看心理医生或精神科医生)"); + zaokuang.put("worldRes","0-8  无双相情感障碍 (注意自我保重)\n" + + "9-18  可能有轻微的双相情感障碍  (建议咨询心理医生或精神科医生)\n" + + "19-36 可能有双相情感账啊  (一定要看心理医生或精神科医生)"); + zaokuang.put("role","没有=0,轻度=1,中度数=2,非常严重=3.\n" + + "总分0-36分"); + zaokuang.put("result",Arrays.asList("没有","轻度","中度","非常严重")); + zaokuangList = new ArrayList(); + zaokuangList.add("有时我突然变得非常健谈而且语速非常快。"); + zaokuangList.add("有时我突然变得特别主动,做一些平时都不做的事情。"); + zaokuangList.add("有时候我觉得时间过得很快,这种时候我感到有些生气!"); + zaokuangList.add("我有时候会一方面觉得自己情绪高涨,另一方面又觉得有些沮丧。"); + zaokuangList.add("别人对我的评价经常提到,有段时间显得过于自卑,有段时间又显得过于自信。"); + zaokuangList.add("我的工作业绩(学习成绩)不是很稳定,一段时间能做很多事情,也能出成果,另外一段时间却什么都做不出来。"); + zaokuangList.add("有时候,我会有不明原因的愤怒,甚至想打人。"); + zaokuangList.add("我在某段时间觉得脑中空空如也,什么都想不出;而在另外一段时间的想法又特别多,很有创意。"); + zaokuangList.add("我在一些时间喜欢和别人黏在一起玩耍,而在另外一段时间我却只想单独呆着。"); + zaokuangList.add("我在某段时间觉得特别乐观;另外一段时间我又觉得特别悲观。"); + zaokuangList.add("我在某段时间感到食欲不振;另外一段时间却情不自禁地暴饮暴食。"); + zaokuangList.add("我在某段时间觉得特别想哭哭不出来;另外一段时间却特别幽默搞笑。"); -// zilian = new HashMap<>(); -// zilian.put("title","自恋型人格量表"); -// zilian.put("des","我很帅"); -// zilian.put("num","20道题目"); -// zilian.put("tip","请仔细阅读每道题目,把意思弄明白,然后根据最近一周的实际感觉,选择适当的选项。"); -// zilian.put("cnRes","否"); -// zilian.put("worldRes","否"); -// zilian.put("role","大于0就自恋"); + zilian = new HashMap<>(); + zilian.put("title","自恋型人格障碍量表"); + zilian.put("type","zilian"); + zilian.put("des","自恋型人格障碍量表 (是否题)"); + zilian.put("num","10道题目"); + zilian.put("tip","请仔细阅读每道题目,把意思弄明白,然后根据最近一周的实际感觉,选择适当的选项。"); + zilian.put("cnRes","出现是其中的五项,即可诊断为自恋型人格障碍。"); + zilian.put("worldRes","出现是其中的五项,即可诊断为自恋型人格障碍。"); + zilian.put("role","出现是其中的五项,即可诊断为自恋型人格障碍。"); + zilian.put("result",Arrays.asList("是","否")); + zilianList = new ArrayList(); + zilianList.add("自高自大,对自己的才能夸大其辞,希望受人特别关注。(自高自大)"); + zilianList.add("坚信他关注的问题是世上独有的,不能被某些特殊的人物了解。(不被理解)"); + zilianList.add("对权力、金钱、荣誉、美丽或理想爱情有过分幻想。(不切实际)"); + zilianList.add("缺乏同情心。(不能共情)"); + zilianList.add("有很强的嫉妒心。"); + zilianList.add("对批评的反应是愤怒、羞愧或感到耻辱(尽管不一定当即表露出来)(永不认错)"); + zilianList.add("渴望持久的关注与赞美。(渴望关注)"); + zilianList.add("喜欢指使他人,要他人为自己服务。(被服务)"); + zilianList.add("认为自己应享有他人没有的特权。(控制关系)"); + zilianList.add("亲密关系困难(婚姻关系,亲子关系等)"); }