From d08f0a5feecc85c9484ea82255eaa56e36715c38 Mon Sep 17 00:00:00 2001 From: zhizhi wu <2377881365@qq.com> Date: Tue, 13 Apr 2021 14:11:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E5=8C=BB=E9=99=A2=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=20=E6=9C=AA=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/tcm/bean/dto/QuestionDto.java | 2 +- .../com/ccsens/tcm/bean/vo/QuestionVo.java | 2 ++ .../ccsens/tcm/persist/dao/QuestionDao.java | 3 +- .../ccsens/tcm/service/QuestionService.java | 5 ++- .../main/resources/mapper_dao/QuestionDao.xml | 19 ++++++++---- .../resources/mapper_dao/ReportCodeDao.xml | 31 ++++++++++++------- 6 files changed, 40 insertions(+), 22 deletions(-) diff --git a/tcm/src/main/java/com/ccsens/tcm/bean/dto/QuestionDto.java b/tcm/src/main/java/com/ccsens/tcm/bean/dto/QuestionDto.java index 998e51db..3959982a 100644 --- a/tcm/src/main/java/com/ccsens/tcm/bean/dto/QuestionDto.java +++ b/tcm/src/main/java/com/ccsens/tcm/bean/dto/QuestionDto.java @@ -20,6 +20,6 @@ public class QuestionDto { @ApiModelProperty("试题code") private String code; @ApiModelProperty("第几次录入信息,默认为0查询第一次") - private Integer nums; + private Integer nums = 0; } } diff --git a/tcm/src/main/java/com/ccsens/tcm/bean/vo/QuestionVo.java b/tcm/src/main/java/com/ccsens/tcm/bean/vo/QuestionVo.java index 30e49b09..2e0fc0ef 100644 --- a/tcm/src/main/java/com/ccsens/tcm/bean/vo/QuestionVo.java +++ b/tcm/src/main/java/com/ccsens/tcm/bean/vo/QuestionVo.java @@ -146,6 +146,8 @@ public class QuestionVo { private String units; @ApiModelProperty("类型 1单行文本,2多行文本,3单选,4多选,5下拉菜单,6日期,7图片(文件),8单选+其他,9多选+其他,10下拉+其他,11多选+其他+说明,12单选+关联其他内容 13数字类型") private byte type; + @ApiModelProperty("填写状态 0:非必填 1:必填") + private byte fillType; @ApiModelProperty("参考范围 下限") private BigDecimal referenceLower; @ApiModelProperty("参考范围 上限") diff --git a/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionDao.java b/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionDao.java index 0a919924..409699ed 100644 --- a/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionDao.java +++ b/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionDao.java @@ -39,9 +39,10 @@ public interface QuestionDao extends QuestionMapper { * @param code 试题code * @param patientId 患者id * @param nums 采集次数 + * @param hospitalId 医院ID * @return 返回所有试题和答题记录 */ - List getQuestionByCodeAndPatientId(@Param("code")String code, @Param("patientId")Long patientId, @Param("nums")Integer nums); + List getQuestionByCodeAndPatientId(@Param("code") String code, @Param("patientId") Long patientId, @Param("nums") Integer nums, @Param("hospitalId") Long hospitalId); /** * 通过选项id和采集次数,查询选项关联试题信息和患者答题记录 * @param optionId 试题code diff --git a/tcm/src/main/java/com/ccsens/tcm/service/QuestionService.java b/tcm/src/main/java/com/ccsens/tcm/service/QuestionService.java index 19d35a0a..2b7b7701 100644 --- a/tcm/src/main/java/com/ccsens/tcm/service/QuestionService.java +++ b/tcm/src/main/java/com/ccsens/tcm/service/QuestionService.java @@ -3,7 +3,6 @@ package com.ccsens.tcm.service; import cn.hutool.core.collection.CollectionUtil; import com.ccsens.tcm.bean.dto.QuestionDto; import com.ccsens.tcm.bean.po.PatientInformation; -import com.ccsens.tcm.bean.po.QuestionOption; import com.ccsens.tcm.bean.vo.QuestionVo; import com.ccsens.tcm.persist.dao.QuestionDao; import com.ccsens.tcm.persist.dao.ReportCodeDao; @@ -50,7 +49,7 @@ public class QuestionService implements IQuestionService{ // param.setNums(0); // } //根据一级code查询试题及答案 - List patientQuestionNumList = questionDao.getQuestionByCodeAndPatientId(patientCode.getCode(),param.getId(),param.getNums()); + List patientQuestionNumList = questionDao.getQuestionByCodeAndPatientId(patientCode.getCode(),param.getId(),param.getNums(), patient.getHospitalId()); //查询选项关联的试题及答案 if(CollectionUtil.isNotEmpty(patientQuestionNumList)){ patientQuestionNumList.forEach(question -> { @@ -66,7 +65,7 @@ public class QuestionService implements IQuestionService{ if(CollectionUtil.isNotEmpty(patientCode.getSubReportCodes())){ patientCode.getSubReportCodes().forEach(subReportCode -> { //查询二级code下的试题和答案 - List subpatientQuestionNumList = questionDao.getQuestionByCodeAndPatientId(subReportCode.getCode(),param.getId(),param.getNums()); + List subpatientQuestionNumList = questionDao.getQuestionByCodeAndPatientId(subReportCode.getCode(),param.getId(),param.getNums(), patient.getHospitalId()); //查询选项关联的试题及答案 if(CollectionUtil.isNotEmpty(subpatientQuestionNumList)){ subpatientQuestionNumList.forEach(question -> { diff --git a/tcm/src/main/resources/mapper_dao/QuestionDao.xml b/tcm/src/main/resources/mapper_dao/QuestionDao.xml index ad1a9a6e..0b250855 100644 --- a/tcm/src/main/resources/mapper_dao/QuestionDao.xml +++ b/tcm/src/main/resources/mapper_dao/QuestionDao.xml @@ -113,6 +113,7 @@ + @@ -143,6 +144,7 @@ q.type as qtype, q.reference_lower as referenceLower, q.reference_upper as referenceUpper, + q.fillType, q.remark as qremark, o.id as oid, o.sort as osort, @@ -163,17 +165,22 @@ ) as otherInformation FROM - t_question q + ( + select q.*, h.fill_type as fillType + from t_question q, t_question_hospital h + WHERE + q.id = h.question_id + q.`code` = #{code} + h.hospital_id = #{hospitalId} + and q.relevance_option_id = 0 + and q.rec_status = 0 + and h.rec_status = 0 + ) q LEFT JOIN t_question_option o on q.id = o.question_id and o.rec_status = 0 LEFT JOIN t_patient_record r on r.test_questions_id = q.id and r.rec_status = 0 and r.patient_id = #{patientId} and collect_time = #{nums} - WHERE - q.relevance_option_id = 0 - and q.rec_status = 0 - and q.`code` = #{code} - ) qq left join ( SELECT test_questions_id, diff --git a/tcm/src/main/resources/mapper_dao/ReportCodeDao.xml b/tcm/src/main/resources/mapper_dao/ReportCodeDao.xml index 7d68c55b..0283429c 100644 --- a/tcm/src/main/resources/mapper_dao/ReportCodeDao.xml +++ b/tcm/src/main/resources/mapper_dao/ReportCodeDao.xml @@ -128,22 +128,31 @@ c2.report_type as sReportType, c2.record_type as sRecordType FROM - t_report_code c1 + ( + select c.* from t_report_code c, t_question_record_time t + WHERE + c.code = t.code + and c.`level` = 1 + + and (c.`code` = #{code}) + + and t.rec_status = 0 + and c.rec_status = 0 + ) c1 LEFT JOIN ( SELECT - * + c.* FROM - t_report_code + t_report_code c, + t_question_record_time t WHERE - `level` = 2 - and rec_status = 0 + c.code = t.code + and t.recode_time = #{nums} + and c.`level` = 2 + and crec_status = 0 + and t.rec_status = 0 ) c2 on c1.`code` = c2.parent_code - WHERE - c1.`level` = 1 - and c1.rec_status = 0 - - and (c1.`code` = #{code}) - + and (c1.`report_type`in (0,1))