diff --git a/tcm/src/main/java/com/ccsens/tcm/api/StatisticalAnalysisController.java b/tcm/src/main/java/com/ccsens/tcm/api/StatisticalAnalysisController.java index 5feec3c1..19020bb9 100644 --- a/tcm/src/main/java/com/ccsens/tcm/api/StatisticalAnalysisController.java +++ b/tcm/src/main/java/com/ccsens/tcm/api/StatisticalAnalysisController.java @@ -42,7 +42,7 @@ public class StatisticalAnalysisController { log.info("统计每日病例调用完成"); return JsonResponse.newInstance().ok(countCase); } - @MustLogin +// @MustLogin @ApiOperation(value = "病例分析", notes = "w:病例分析") @RequestMapping(value = "/countAnalysis", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse countAnalysis(@ApiParam @Validated @RequestBody QueryDto params) { diff --git a/tcm/src/main/java/com/ccsens/tcm/bean/dto/PatientDto.java b/tcm/src/main/java/com/ccsens/tcm/bean/dto/PatientDto.java index fe447190..1451ba1d 100644 --- a/tcm/src/main/java/com/ccsens/tcm/bean/dto/PatientDto.java +++ b/tcm/src/main/java/com/ccsens/tcm/bean/dto/PatientDto.java @@ -7,6 +7,7 @@ import lombok.Data; import javax.validation.constraints.Max; import javax.validation.constraints.Min; +import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.Date; import java.util.List; @@ -104,6 +105,9 @@ public class PatientDto { private List conditionList; @ApiModelProperty("搜索条件集合,是包含时间格式的条件") private List conditionListDate; + @ApiModelProperty("认知报告单相关参数") + private List reportParams; + @Min(1) @ApiModelProperty("当前页") private Integer pageNum=1; @@ -112,6 +116,19 @@ public class PatientDto { @ApiModelProperty("每页数量") private Integer pageSize=10; } + + @Data + @ApiModel("搜索报告单参数-请求") + public static class Search { + @ApiModelProperty("报告单类型") + @NotEmpty(message="请选择查询类型") + private String code; + @ApiModelProperty("最低分数") + private Integer start; + @ApiModelProperty("最高分数") + private Integer end; + } + @Data @ApiModel("查询患者的搜索条件详情") public static class Condition{ diff --git a/tcm/src/main/java/com/ccsens/tcm/bean/dto/StatisticDto.java b/tcm/src/main/java/com/ccsens/tcm/bean/dto/StatisticDto.java index b67cde28..fb740465 100644 --- a/tcm/src/main/java/com/ccsens/tcm/bean/dto/StatisticDto.java +++ b/tcm/src/main/java/com/ccsens/tcm/bean/dto/StatisticDto.java @@ -41,6 +41,8 @@ public class StatisticDto { private List conditionList; @ApiModelProperty("搜索条件集合,是包含时间格式的条件") private List conditionListDate; + @ApiModelProperty("认知报告单相关参数") + private List reportParams; @ApiModelProperty("对照组id") private Long[] inpatientId; @ApiModelProperty("试题id") diff --git a/tcm/src/main/java/com/ccsens/tcm/persist/dao/PatientDao.java b/tcm/src/main/java/com/ccsens/tcm/persist/dao/PatientDao.java index 956f23c4..fc088e5d 100644 --- a/tcm/src/main/java/com/ccsens/tcm/persist/dao/PatientDao.java +++ b/tcm/src/main/java/com/ccsens/tcm/persist/dao/PatientDao.java @@ -30,6 +30,7 @@ public interface PatientDao { * * @param conditionList 没有时间条件 * @param conditionListDate 有时间条件 + * @param reportParams 认知量表 * @param inpatientId 对照组id * @param testQuestionsId 测试题id * @param hospitalization 住院号 @@ -37,7 +38,7 @@ public interface PatientDao { * @param hospitalId 医院id * @return */ - List countAnalysis(@Param("conditionList")List conditionList, @Param("conditionListDate")List conditionListDate, @Param("inpatientId")Long inpatientId, @Param("testQuestionsId")Long testQuestionsId,@Param("hospitalization")String hospitalization,@Param("inputStatus")Byte inputStatus,@Param("hospitalId")Long hospitalId); + List countAnalysis(@Param("conditionList")List conditionList, @Param("conditionListDate")List conditionListDate, @Param("reportParams") List reportParams, @Param("inpatientId")Long inpatientId, @Param("testQuestionsId")Long testQuestionsId,@Param("hospitalization")String hospitalization,@Param("inputStatus")Byte inputStatus,@Param("hospitalId")Long hospitalId); /** * 统计病例完成情况 * @param hospitalId 医院id diff --git a/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java b/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java index 8e26868c..d57d95c9 100644 --- a/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java +++ b/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java @@ -270,10 +270,10 @@ public class PatientService implements IPatientService { @Override public List countAnalysis(StatisticDto.SelBinLCount param, Long userId) { List selGroupNumsList= new ArrayList(); - if(param.getInpatientId()!=null && param.getInpatientId().length==0) { + if(param.getInpatientId() ==null || param.getInpatientId().length==0) { StatisticVo.SelGroupNum selGroupNum =new StatisticVo.SelGroupNum(); selGroupNum.setName("总人数"); - List selGroupList= patientDao.countAnalysis(param.getConditionList(),param.getConditionListDate(),null,param.getTestQuestionsId(),param.getHospitalization(),param.getInputStatus(),param.getHospitalId()); + List selGroupList= patientDao.countAnalysis(param.getConditionList(),param.getConditionListDate(), param.getReportParams(),null,param.getTestQuestionsId(),param.getHospitalization(),param.getInputStatus(),param.getHospitalId()); selGroupNum.setInpatientId(null); selGroupNum.setList(selGroupList); selGroupNumsList.add(selGroupNum); @@ -282,7 +282,7 @@ public class PatientService implements IPatientService { for (int i = 0; i < param.getInpatientId().length; i++) { StatisticVo.SelGroupNum selGroupNum =new StatisticVo.SelGroupNum(); selGroupNum.setName(inpatientMapper.selectByPrimaryKey(param.getInpatientId()[i]).getName()); - List selGroupList= patientDao.countAnalysis(param.getConditionList(),param.getConditionListDate(),param.getInpatientId()[i],param.getTestQuestionsId(),param.getHospitalization(),param.getInputStatus(),param.getHospitalId()); + List selGroupList= patientDao.countAnalysis(param.getConditionList(),param.getConditionListDate(), param.getReportParams(),param.getInpatientId()[i],param.getTestQuestionsId(),param.getHospitalization(),param.getInputStatus(),param.getHospitalId()); selGroupNum.setInpatientId(param.getInpatientId()[i]); selGroupNum.setList(selGroupList); selGroupNumsList.add(selGroupNum); diff --git a/tcm/src/main/resources/mapper_dao/PatientDao.xml b/tcm/src/main/resources/mapper_dao/PatientDao.xml index 76b77606..fbfab283 100644 --- a/tcm/src/main/resources/mapper_dao/PatientDao.xml +++ b/tcm/src/main/resources/mapper_dao/PatientDao.xml @@ -64,7 +64,7 @@ and tpi.input_status=#{inputStatus} - + and tpi.id IN ( SELECT DISTINCT ( t.patient_id ) @@ -106,6 +106,37 @@ INTERSECT + + + + SELECT + r.patient_id + FROM + question.t_ht_patient_score s, + question.t_ht_question q, + question.t_ht_patient_report r + WHERE + s.question_id = q.id + AND s.patient_report_id = r.id + AND s.question_parent_code = #{item.code} + AND s.type IN ( 0, 2 ) + AND s.is_del = 0 + AND q.is_del = 0 + GROUP BY + patient_report_id + HAVING + + + sum( score ) >= #{item.start} AND + + + sum( score ) <= #{item.end} AND + + + INTERSECT + + + ) t ) @@ -196,7 +227,7 @@ and tpi.input_status=#{inputStatus} - + and tpi.id IN ( SELECT DISTINCT ( t.patient_id ) @@ -238,6 +269,37 @@ INTERSECT + + + + SELECT + r.patient_id + FROM + question.t_ht_patient_score s, + question.t_ht_question q, + question.t_ht_patient_report r + WHERE + s.question_id = q.id + AND s.patient_report_id = r.id + AND s.question_parent_code = #{item.code} + AND s.type IN ( 0, 2 ) + AND s.is_del = 0 + AND q.is_del = 0 + GROUP BY + patient_report_id + HAVING + + + sum( score ) >= #{item.start} AND + + + sum( score ) <= #{item.end} AND + + + INTERSECT + + + ) t )