Преглед изворни кода

Merge branch 'dev' of humingfen/patient-co-management into dev

huangwenjie пре 6 година
родитељ
комит
f096e1b621

+ 4 - 1
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/synergy/QuestionnaireManageService.java

@ -11,6 +11,7 @@ import com.yihu.wlyy.repository.synergy.ManageSynergyWorkOrderDao;
import com.yihu.wlyy.repository.synergy.ManageSynergyWorkorderServicerDao;
import com.yihu.wlyy.util.HttpClientUtil;
import com.yihu.wlyy.util.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
@ -113,7 +114,9 @@ public class QuestionnaireManageService extends BaseJpaService {
        params.put("source", source);
        params.put("isAgain", 0);
        params.put("doctor", doctor);
        params.put("resultCode", resultCode);
        if(StringUtils.isNotBlank(resultCode)) {
            params.put("resultCode", resultCode);
        }
        try {
            response = httpClientUtil.post(url, params);
        } catch (Exception e) {

+ 100 - 9
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/survey/SurveyScreenResultService.java

@ -170,26 +170,22 @@ public class SurveyScreenResultService extends BaseService {
    }
    /**
     * 保存更新筛查结果
     * 保存筛查结果
     *
     * @param patientCode
     * @param doctor
     * @param source
     * @param jsonData
     */
    public String saveScreenResultAndAnswer(String patientCode, String doctor, int isAgain, int source, JSONObject jsonData, String resultCode) throws Exception {
    public String saveScreenResultAndAnswer(String patientCode, String doctor, int isAgain, int source, JSONObject jsonData) throws Exception {
        System.out.println("********保存筛查结果--jsonData********* " + jsonData);
        String surveyCode = jsonData.get("surveyCode").toString();
        SurveyTemplates surveyTemplates = surveyTemplatesDao.findById(surveyCode);
        Patient patient = patientDao.findByCode(patientCode);
        SurveyScreenResult surveyScreenResult = null;
        if(StringUtils.isNotBlank(resultCode)){
            surveyScreenResult = surveyScreenResultDao.findByCode(resultCode);
        }else {
            surveyScreenResult = new SurveyScreenResult();
            resultCode = getCode();
            surveyScreenResult.setCode(resultCode);
        }
        surveyScreenResult = new SurveyScreenResult();
        String resultCode = getCode();
        surveyScreenResult.setCode(resultCode);
        //解析json保存各种答案--获取一维数组
        JSONArray questions = jsonData.getJSONArray("questions");
        int totalScore = 0;
@ -284,6 +280,101 @@ public class SurveyScreenResultService extends BaseService {
        return resultCode;
    }
    /**
     * 保存更新筛查结果
     *
     * @param patientCode
     * @param doctor
     * @param source
     * @param jsonData
     */
    public String saveScreenResultAndAnswer(String patientCode, String doctor, int isAgain, int source, JSONObject jsonData, String resultCode) throws Exception {
        System.out.println("********保存筛查结果--jsonData********* " + jsonData);
        //判断是更新还是保存,如果是true就是保存
        Boolean save = true;
        String surveyCode = jsonData.get("surveyCode").toString();
        SurveyTemplates surveyTemplates = surveyTemplatesDao.findById(surveyCode);
        Patient patient = patientDao.findByCode(patientCode);
        SurveyScreenResult surveyScreenResult = null;
        if(StringUtils.isNotBlank(resultCode)){
            save = false;
            surveyScreenResult = surveyScreenResultDao.findByCode(resultCode);
        }else {
            surveyScreenResult = new SurveyScreenResult();
            resultCode = getCode();
            surveyScreenResult.setCode(resultCode);
        }
        //解析json保存各种答案--获取一维数组
        JSONArray questions = jsonData.getJSONArray("questions");
        int totalScore = 0;
        for (int i = 0; i < questions.length(); i++) {
            //获取每一道题的信息
            JSONObject question = new JSONObject(questions.get(i).toString());
            int type = Integer.parseInt(question.get("type").toString());
            if (type != 2) {
                if (question.has("options")) {
                    //获取每道题的所有选项
                    JSONArray options = question.getJSONArray("options");
                    for (int j = 0; j < options.length(); j++) {
                        JSONObject option = new JSONObject(options.get(j).toString());
                        int score = option.getInt("score");
                        totalScore += score;
                    }
                }
            }
        }
        //查询该筛查的结果设置
        SurveyTemplateResult surveyTemplateResult = surveyTemplateResultDao.getByTemplateCodeAndLowScoreAndHighScore(surveyCode, totalScore);
        //更新上一条数据为不可再次评估
        List<SurveyScreenResult> surveyScreenResultList = surveyScreenResultDao.findNewOneByTemplateCode(surveyCode, patientCode);
        String lastCode = "";
        String originCode = "";
        if (surveyScreenResultList != null && surveyScreenResultList.size() > 0) {
            lastCode = surveyScreenResultList.get(0).getCode();
            originCode = surveyScreenResultList.get(0).getOriginCode();
            surveyScreenResultDao.updateNoAgain(lastCode);
        }
        surveyScreenResult.setSource(source);
        //是来自再次评估
        if (isAgain == 1) {
            surveyScreenResult.setParentCode(lastCode);
            surveyScreenResult.setOriginCode(originCode);
        } else {
            //来自第一次筛查评分
            surveyScreenResult.setOriginCode(resultCode);
        }
        if (surveyTemplates != null) {
            surveyScreenResult.setTemplateCode(surveyTemplates.getCode());
            surveyScreenResult.setTemplateTitle(surveyTemplates.getTitle());
            surveyScreenResult.setDisease(surveyTemplates.getDiseaseType());
        }
        //来自医生发放和自我评估不一样来源
        if (source == 1) {
            surveyScreenResult.setDoctor(doctor);
        }
        surveyScreenResult.setPatientCode(patientCode);
        if (patient != null) {
            surveyScreenResult.setPatientName(patient.getName());
            surveyScreenResult.setOpenId(patient.getOpenid());
        }
        surveyScreenResult.setIsOrder(0);
        surveyScreenResult.setFollowing(0);
        surveyScreenResult.setOver(1);
        surveyScreenResult.setCzrq(new Date());
        surveyScreenResult.setIsAgain(1);
        surveyScreenResult.setIsEducate(0);
        surveyScreenResult.setScreenResultScore(totalScore);
        if (surveyTemplateResult != null) {
            surveyScreenResult.setScreenResultCode(surveyTemplateResult.getCode());
            surveyScreenResult.setIsDanger(surveyTemplateResult.getWarning());
            surveyScreenResult.setScreenResult(surveyTemplateResult.getResult());
        }
        surveyScreenResultDao.save(surveyScreenResult);
        managerQuestionnaireService.saveAnswer(patientCode, resultCode, jsonData, save);
        return resultCode;
    }
    public JSONObject getScreenResultDetail(String code) throws Exception {
        JSONObject json = new JSONObject();
        //登记信息

+ 66 - 10
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/survey/ManagerQuestionnaireService.java

@ -1803,16 +1803,70 @@ public class ManagerQuestionnaireService extends BaseService {
                            comment = option.get("comment").toString();
                            haveComment = 1;
                        }
//                 保存到选择题答案表
                        SurveyOptionAnswers optionAnswer = new SurveyOptionAnswers(code, patient, surveyCode, qstCode, optionCode, comment, type, createTime);
                        optionAnswer.setScreenResultCode(resultCode);
                        surveyOptionAnswersDao.save(optionAnswer);
//                选择题修改统计表数量
                        surveyStatisticsDao.modifyAmount(surveyCode, qstCode, optionCode);
                    }
                }
            } else {
                String content = question.get("content").toString();
                if (!StringUtils.isEmpty(content)) {
//                    保存到问答题答案表
                    String code = getCode();
                    SurveyAnswers surveyAnswer = new SurveyAnswers(code, surveyCode, patient, qstCode, content, createTime);
                    surveyAnswer.setQuestionResultCode(resultCode);
                    surveyAnswersDao.save(surveyAnswer);
//                问答题保存到统计表(只负责更改数量不负责创建)
                    surveyStatisticsDao.modifyAmount(surveyCode, qstCode);
                }
            }
        }
        //更改调查对象表答题状态为已答
        //surveyUserDao.modifyStatus(surveyCode, patient);
    }
    public void saveAnswer(String patient,String resultCode, JSONObject jsonData, Boolean save) throws Exception {
        System.out.println("********jsonData********* " + jsonData);
        //解析json保存各种答案
        String surveyCode = jsonData.get("surveyCode").toString();
        Date createTime = new Date();
//        获取一维数组
        JSONArray questions = jsonData.getJSONArray("questions");
        for (int i = 0; i < questions.length(); i++) {
//            获取每一道题的信息
            JSONObject question = new JSONObject(questions.get(i).toString());
            String qstCode = question.get("qstCode").toString();
            //int qstsort = Integer.parseInt(question.get("sort").toString());
            int type = Integer.parseInt(question.get("type").toString());
            if (type != 2) {
                if (question.has("options")) {
//               获取每道题的所有选项
                    JSONArray options = question.getJSONArray("options");
                    for (int j = 0; j < options.length(); j++) {
                        JSONObject option = new JSONObject(options.get(j).toString());
                        String code = getCode();
                        String optionCode = option.get("optionCode").toString();
                        //int optsort = Integer.parseInt(option.get("sort").toString());
                        String comment = null;
                        int haveComment = 0;
                        if (option.has("comment")) {
                            comment = option.get("comment").toString();
                            haveComment = 1;
                        }
//                 保存或者更新到选择题答案表
                        SurveyOptionAnswers optionAnswer = null;
                        if (StringUtils.isNotBlank(resultCode)){
                        if (save){
                            optionAnswer = new SurveyOptionAnswers(code, patient, surveyCode, qstCode, optionCode, comment, type, createTime);
                            optionAnswer.setScreenResultCode(resultCode);
                        }else {
                            optionAnswer = surveyOptionAnswersDao.findOptionAnswer(patient, surveyCode, qstCode, resultCode);
                            optionAnswer.setOptionsCode(optionCode);
                            optionAnswer.setOptionComment(comment);
                            optionAnswer.setCreateTime(new Date());
                        }else {
                            optionAnswer = new SurveyOptionAnswers(code, patient, surveyCode, qstCode, optionCode, comment, type, createTime);
                            optionAnswer.setScreenResultCode(resultCode);
                        }
                        surveyOptionAnswersDao.save(optionAnswer);
//                选择题修改统计表数量
@ -1825,14 +1879,14 @@ public class ManagerQuestionnaireService extends BaseService {
                if (!StringUtils.isEmpty(content)) {
//                    保存或者更新问答题答案表
                    SurveyAnswers surveyAnswer = null;
                    if (StringUtils.isNotBlank(resultCode)){
                        surveyAnswer = surveyAnswersDao.findSurveyAnswer(resultCode, surveyCode, qstCode, patient);
                        surveyAnswer.setContent(content);
                        surveyAnswer.setCreateTime(new Date());
                    }else {
                    if (save){
                        String code = getCode();
                        surveyAnswer = new SurveyAnswers(code, surveyCode, patient, qstCode, content, createTime);
                        surveyAnswer.setQuestionResultCode(resultCode);
                    }else {
                        surveyAnswer = surveyAnswersDao.findSurveyAnswer(resultCode, surveyCode, qstCode, patient);
                        surveyAnswer.setContent(content);
                        surveyAnswer.setCreateTime(new Date());
                    }
                    surveyAnswersDao.save(surveyAnswer);
//                问答题保存到统计表(只负责更改数量不负责创建)
@ -1960,8 +2014,10 @@ public class ManagerQuestionnaireService extends BaseService {
            questionResult.setCreateUserName(user.getName());
            questionResult.setCreateTime(new Date());
            questionResultDao.save(questionResult);
            this.saveAnswer(patientCode, resultCode, jsonData);
        }else {
            this.saveAnswer(patientCode, resultCode, jsonData, false);
        }
        this.saveAnswer(patientCode, resultCode, jsonData);
        return resultCode;
    }
}

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/third/synergy/SynergyManagerController.java

@ -206,7 +206,7 @@ public class SynergyManagerController extends BaseController{
                                       @ApiParam(name = "labelType", value = "问卷标签")@RequestParam(value = "labelType")Integer labelType,
                                       @ApiParam(name = "isAgain", value = "筛查入口(labelType=5时要填),0是第一次筛查 1是再次评估")@RequestParam(value = "isAgain", required = false)int isAgain,
                                       @ApiParam(name = "source", value = "来源(1医生发放 2居民自我评估)")@RequestParam(value = "source")int source,
                                       @ApiParam(name = "resultCode", value = "问卷结果code")@RequestParam(value = "resultCode")String resultCode) {
                                       @ApiParam(name = "resultCode", value = "问卷结果code")@RequestParam(value = "resultCode", required = false)String resultCode) {
        try {
            JSONObject json = new JSONObject(jsonData);