Browse Source

修改更新疾病筛查的功能

humingfen 6 years ago
parent
commit
6db55442e5

+ 97 - 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,98 @@ 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);
        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);
        }
        //解析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);
        return resultCode;
    }
    public JSONObject getScreenResultDetail(String code) throws Exception {
        JSONObject json = new JSONObject();
        //登记信息