@@ -1,12 +1,17 @@
package com.peanut.modules.common.controller ;
import com.peanut.common.utils.R ;
import com.peanut.common.utils.ShiroUtils ;
import com.peanut.modules.common.entity.SelfEvaluationForm ;
import com.peanut.modules.common.service.SelfEvaluationFormService ;
import lombok.extern.slf4j.Slf4j ;
import org.springframework.beans.factory.annotation.Autowired ;
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 ;
@@ -18,26 +23,54 @@ import java.util.Map;
@RequestMapping ( " common/selfEvaluationForm " )
public class SelfEvaluationFormController {
/*
中国大陆用户
SDS的评定结果以标准分来定:
标准分小于52分为无抑郁; 标准分大于等于52分且小于62分为轻微至轻度抑郁; 标准分大于等于62分且小于72分为中至重度抑郁; 标准分大于等于72分为重度抑郁。
@Autowired
private SelfEvaluationFormService selfEvaluationFormService ;
其它国家和地区
标准分小于50分为无抑郁; 标准分大于等于50分且小于60分为轻微至轻度抑郁; 标准分大于等于60分且小于70分为中至重度抑郁; 标准分大于等于70分为重度抑郁。
计分规则:
SDS评定采用1—4制记分, 评分时间为过去一周内。
正向题,依次评为粗分1、2、3、4分 (1 3 4 7 8 9 10 13 15 19)
反向题,依次评为粗分4、3、2、1分 (2 5 6 11 12 14 16 17 18 20)
20项相加得到原始分, 原始分分乘以1.25以后取整,得到标准分。
//自测表列表
@RequestMapping ( " /formList " )
public R formList ( ) {
List res = new ArrayList ( ) ;
res . add ( yiyu ) ;
// res.add(jiaolv);
// res.add(zibi);
// res.add(zaokuang);
// res.add(zilian);
return R . ok ( ) . put ( " formList " , res ) ;
}
*/
//题目列表
@RequestMapping ( " /formSubjectList " )
public R formSubjectList ( @RequestBody Map < String , Object > params ) {
List list = null ;
if ( " yiyu " . equals ( params . get ( " type " ) . toString ( ) ) ) {
list = yiyuList ;
}
return R . ok ( ) . put ( " list " , list ) ;
}
//打分
@RequestMapping ( " /calculation Form " )
public R calculation Form ( @RequestBody Map < String , Object > params ) {
@RequestMapping ( " /count Form " )
public R count Form ( @RequestBody Map < String , Object > params ) {
R res = R . error ( ) ;
List < Integer > list = ( List ) params . get ( " resList " ) ;
String country = params . get ( " country " ) . toString ( ) ;
String city = params . get ( " city " ) . toString ( ) ;
if ( " yiyu " . equals ( params . get ( " type " ) . toString ( ) ) ) {
res = countyiyu ( list , country ) ;
}
SelfEvaluationForm f = new SelfEvaluationForm ( ) ;
f . setType ( params . get ( " type " ) . toString ( ) ) ;
f . setUserId ( ShiroUtils . getUId ( ) ) ;
f . setCountry ( country ) ;
f . setCity ( city ) ;
f . setStatus ( res . get ( " status " ) . toString ( ) ) ;
selfEvaluationFormService . save ( f ) ;
return res ;
}
public R countyiyu ( List < Integer > list , String country ) {
int total = 0 ;
for ( int i = 0 ; i < list . size ( ) ; i + + ) {
//反向题
@@ -56,47 +89,117 @@ SDS评定采用1—4制记分, 评分时间为过去一周内。
}
}
total = ( int ) ( total * 1 . 25 ) ;
String country = params . get ( " country" ) . toString ( );
if ( " CN " . equals ( country ) ) {
if ( " 中国 " . equals ( country) ) {
total = total - 2 ;
}
String re s = " 无抑郁 " ;
String statu s = " 无抑郁 " ;
if ( total > = 70 ) {
re s = " 重度抑郁 " ;
statu s = " 重度抑郁 " ;
} else if ( total > = 60 ) {
re s = " 中至重度抑郁 " ;
statu s = " 中至重度抑郁 " ;
} else if ( total > = 50 ) {
re s = " 轻微至轻度抑郁 " ;
statu s = " 轻微至轻度抑郁 " ;
}
return R . ok ( ) . put ( " re s" , re s) ;
}
//自评表题目列表
@RequestMapping ( " /getSelfEvaluationFormList " )
public R getSelfEvaluationFormList ( ) {
List list = new ArrayList ( ) ;
list . add ( " 我觉得闷闷不乐,情绪低沉 " ) ;
list . add ( " 我觉得一天之中早晨最好 " ) ;
list . add ( " 我一阵阵哭出来或觉得想哭 " ) ;
list . add ( " 我晚上睡眠不好 " ) ;
list . add ( " 我吃得跟平常一样多 " ) ;
list . add ( " 我与异性密切接触时和以往一样感到愉快 " ) ;
list . add ( " 我发觉我的体重下降 " ) ;
list . add ( " 我有便秘的苦恼 " ) ;
list . add ( " 我心跳比平时快 " ) ;
list . add ( " 我无缘无故地感到疲乏 " ) ;
list . add ( " 我的头脑跟平常一样清楚 " ) ;
list . add ( " 觉得经常做的事情并没有困难 " ) ;
list . add ( " 我觉得不安而平静不下来 " ) ;
list . add ( " 我对将来抱有希望 " ) ;
list . add ( " 我比平常容易生气激动 " ) ;
list . add ( " 我觉得作出决定是容易的 " ) ;
list . add ( " 我觉得自己是个有用的人,有人需要我 " ) ;
list . add ( " 我的生活过得很有意思 " ) ;
list . add ( " 我认为如果我死了别人会生活得好些 " ) ;
list . add ( " 我平常感兴趣的事我仍然照样感兴趣 " ) ;
return R . ok ( ) . put ( " list " , list ) ;
return R . ok ( ) . put ( " total " , total ) . put ( " statu s" , statu s) ;
}
private static final Map < String , Object > yiyu ;
// private static final Map<String, Object> jiaolv;
// private static final Map<String, Object> zibi;
// private static final Map<String, Object> zaokuang;
// private static final Map<String, Object> zilian;
private static final List yiyuList ;
// private static final List jiaolvList;
// private static final List zibiList;
// private static final List zaokuangList;
// private static final List zilianList;
static {
yiyu = new HashMap < > ( ) ;
yiyu . put ( " title " , " SDS抑郁自评量表 " ) ;
yiyu . put ( " des " , " 抑郁自测量表SDS由W.K.Zung编制于1965年, 为美国教育卫生福利部推荐的用于精神药理学研究的量表之一。因使用简便, 能相当直观地反映病人抑郁的主观感受及其在治疗中的变化, 当前已广泛应用于抑郁测试。 " ) ;
yiyu . put ( " num " , " 20道题目 " ) ;
yiyu . put ( " tip " , " 请仔细阅读每道题目,把意思弄明白,然后根据最近一周的实际感觉,选择适当的选项。 " ) ;
yiyu . put ( " cnRes " , " SDS的评定结果以标准分来定: \ n " +
" 标准分小于52分为无抑郁; \ n " +
" 标准分大于等于52分且小于62分为轻微至轻度抑郁; \ n " +
" 标准分大于等于62分且小于72分为中至重度抑郁; \ n " +
" 标准分大于等于72分为重度抑郁。 \ n " +
" 抑郁评定的临界值为T分52, 分值越高, 抑郁倾向越明显 " ) ;
yiyu . put ( " worldRes " , " SDS的评定结果以标准分来定: \ n " +
" 标准分小于50分为无抑郁; \ n " +
" 标准分大于等于50分且小于60分为轻微至轻度抑郁; \ n " +
" 标准分大于等于60分且小于70分为中至重度抑郁; \ n " +
" 标准分大于等于70分为重度抑郁。 \ n " +
" 抑郁评定的临界值为T分50, 分值越高, 抑郁倾向越明显。 " ) ;
yiyu . put ( " role " , " SDS评定采用1—4制记分, 评分时间为过去一周内。 \ n " +
" 正向题,依次评为粗分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以后取整,得到标准分。 " ) ;
yiyuList = new ArrayList ( ) ;
yiyuList . add ( " 我觉得闷闷不乐,情绪低沉 " ) ;
yiyuList . add ( " 我觉得一天之中早晨最好 " ) ;
yiyuList . add ( " 我一阵阵哭出来或觉得想哭 " ) ;
yiyuList . add ( " 我晚上睡眠不好 " ) ;
yiyuList . add ( " 我吃得跟平常一样多 " ) ;
yiyuList . add ( " 我与异性密切接触时和以往一样感到愉快 " ) ;
yiyuList . add ( " 我发觉我的体重下降 " ) ;
yiyuList . add ( " 我有便秘的苦恼 " ) ;
yiyuList . add ( " 我心跳比平时快 " ) ;
yiyuList . add ( " 我无缘无故地感到疲乏 " ) ;
yiyuList . add ( " 我的头脑跟平常一样清楚 " ) ;
yiyuList . add ( " 觉得经常做的事情并没有困难 " ) ;
yiyuList . add ( " 我觉得不安而平静不下来 " ) ;
yiyuList . add ( " 我对将来抱有希望 " ) ;
yiyuList . add ( " 我比平常容易生气激动 " ) ;
yiyuList . add ( " 我觉得作出决定是容易的 " ) ;
yiyuList . add ( " 我觉得自己是个有用的人,有人需要我 " ) ;
yiyuList . add ( " 我的生活过得很有意思 " ) ;
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就焦虑");
// zibi = new HashMap<>();
// zibi.put("title","自闭量表");
// zibi.put("des","你自闭了吗");
// zibi.put("num","20道题目");
// zibi.put("tip","请仔细阅读每道题目,把意思弄明白,然后根据最近一周的实际感觉,选择适当的选项。");
// zibi.put("cnRes","否");
// 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就躁狂");
// 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就自恋");
}
}