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 e247b0a3..93aa41ee 100644 --- a/tcm/src/main/java/com/ccsens/tcm/api/StatisticalAnalysisController.java +++ b/tcm/src/main/java/com/ccsens/tcm/api/StatisticalAnalysisController.java @@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.List; /** * @author wang @@ -40,5 +41,13 @@ public class StatisticalAnalysisController { log.info("统计每日病例调用完成"); return JsonResponse.newInstance().ok(countCase); } - + @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) { + log.info("病例分析参数:{}",params); + List selGroupNum= patientService.countAnalysis(params.getParam(),params.getUserId()); + log.info("病例分析调用完成"); + return JsonResponse.newInstance().ok(selGroupNum); + } } 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 fa929f9c..d45cb80c 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 @@ -1,15 +1,18 @@ package com.ccsens.tcm.bean.dto; import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; import java.util.Date; +import java.util.List; @Data public class StatisticDto { @Data + @ApiModel("每日病例统计传参") public static class SelCount{ @ApiModelProperty("主治大夫id") private Long userId; @@ -22,4 +25,16 @@ public class StatisticDto { @ApiModelProperty("结束时间") private Date endDate; } + @Data + @ApiModel("病例分析传参") + public static class SelBinLCount{ + @ApiModelProperty("搜索条件集合,不包含时间格式的条件") + private List conditionList; + @ApiModelProperty("搜索条件集合,是包含时间格式的条件") + private List conditionListDate; + @ApiModelProperty("对照组id") + private Long[] inpatientId; + @ApiModelProperty("试题id") + private Long id; + } } diff --git a/tcm/src/main/java/com/ccsens/tcm/bean/vo/StatisticVo.java b/tcm/src/main/java/com/ccsens/tcm/bean/vo/StatisticVo.java index 8c8681d6..c148c8ff 100644 --- a/tcm/src/main/java/com/ccsens/tcm/bean/vo/StatisticVo.java +++ b/tcm/src/main/java/com/ccsens/tcm/bean/vo/StatisticVo.java @@ -19,13 +19,17 @@ public class StatisticVo { @Data @ApiModel("病例分析") public static class SelGroupNum{ + @ApiModelProperty("对照组id") private Long inpatientId; + @ApiModelProperty("试题数量") private List list; } @Data @ApiModel("病例分析详细数量") public static class SelGroupList{ - private String contents; + @ApiModelProperty("试题内容") + private String content; + @ApiModelProperty("数量") private Integer nums; } } 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 adc793f5..73ac2dcb 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 @@ -23,4 +23,7 @@ public interface PatientDao { List selPatientInformationList(PatientDto.SelPatientList param); Integer countCase(@Param("param") StatisticDto.SelCount param,@Param("inputStatus") byte inputStatus); + + + StatisticVo.SelGroupList countAnalysis(List conditionList, List conditionListDate, Long aLong, Long id); } diff --git a/tcm/src/main/java/com/ccsens/tcm/service/IPatientService.java b/tcm/src/main/java/com/ccsens/tcm/service/IPatientService.java index f6f2a6c0..a7bda7cd 100644 --- a/tcm/src/main/java/com/ccsens/tcm/service/IPatientService.java +++ b/tcm/src/main/java/com/ccsens/tcm/service/IPatientService.java @@ -28,4 +28,6 @@ public interface IPatientService { PageInfo selPatientInformationList(PatientDto.SelPatientList param, Long userId); StatisticVo.SelCountS countCase(StatisticDto.SelCount param, Long userId); + + List countAnalysis(StatisticDto.SelBinLCount param, Long userId); } 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 9a7a41d0..bb14fde4 100644 --- a/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java +++ b/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java @@ -32,6 +32,8 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.List; @@ -84,6 +86,8 @@ public class PatientService implements IPatientService { PatientInformation patientInformation = patientInformationMapper.selectByPrimaryKey(param.getPatientId()); onsetTime=patientInformation.getCreatedAt(); } + //先查一下需要搜集多少次 + //试题只需要记录3次的 9 和30 算分界限 <9 =0 ;<30 =14 ; >30 =90 记录2次的 270 算分界线 <270 算180 ,>270 算365 int one=9; int two=30; @@ -93,17 +97,16 @@ public class PatientService implements IPatientService { int three=270; int threeFront=180; int threeAfter=365; - //试题只需要记录2次的 if(param.getList().size()>0) { for (int i = 0; i < param.getList().size(); i++) { - //先查询试题id,查看需要记录的次数 + //先查询试题id,查看试题需要记录的次数 ReportCode reportCode = reportCodeMapper.selectByPrimaryKey(param.getList().get(i).getTestQuestionsId()); PatientRecord patientRecord=new PatientRecord(); BeanUtils.copyProperties(param.getList().get(i),patientRecord); patientRecord.setPatientId(param.getPatientId()); - + patientRecord.setId(param.getList().get(i).getPatientRecordId()); if(param.getList().get(i).getPatientRecordId()!=null){ //患者记录表的id patientRecord.setId(param.getList().get(i).getPatientRecordId()); @@ -214,6 +217,20 @@ public class PatientService implements IPatientService { return selCountS; } + @Override + public List countAnalysis(StatisticDto.SelBinLCount param, Long userId) { + List selGroupNumsList= new ArrayList(); + if(param.getInpatientId()!=null && param.getInpatientId().length>0) + return selGroupNumsList; + for (int i = 0; i < param.getInpatientId().length; i++) { + StatisticVo.SelGroupNum selGroupNum =new StatisticVo.SelGroupNum(); + StatisticVo.SelGroupList selGroupList= patientDao.countAnalysis(param.getConditionList(),param.getConditionListDate(),param.getInpatientId()[i],param.getId()); + selGroupNum.setInpatientId(param.getInpatientId()[i]); + selGroupNum.getList().add(selGroupList); + } + return selGroupNumsList; + } + /** * 换算时间差 ,返回两个时间 之间差几天,要是小于1天,按照1的算,要是大于1的话,小于2的话,说的是秒啊。按照2的算,进一法啊 * @param bigDate 大时间 diff --git a/tcm/src/main/resources/application.yml b/tcm/src/main/resources/application.yml index 4ecd13fd..f59084b0 100644 --- a/tcm/src/main/resources/application.yml +++ b/tcm/src/main/resources/application.yml @@ -1,5 +1,5 @@ spring: profiles: - active: dev - include: common, util-dev + active: test + include: common, util-test diff --git a/tcm/src/main/resources/mapper_dao/PatientDao.xml b/tcm/src/main/resources/mapper_dao/PatientDao.xml index e6c75345..74164f17 100644 --- a/tcm/src/main/resources/mapper_dao/PatientDao.xml +++ b/tcm/src/main/resources/mapper_dao/PatientDao.xml @@ -130,4 +130,55 @@ and tpi.update_at < #{param.endDate} + \ No newline at end of file