Browse Source

Merge branch 'pt' of dd.tall.wiki:ccsens_wiki/ccsenscloud into pt

recovery
zy_Java 4 years ago
parent
commit
ae0a29daae
  1. 2
      pims/src/main/resources/mybatis/mybatis-config.xml
  2. 4
      tall/src/main/resources/application.yml
  3. 18
      tcm/src/main/java/com/ccsens/tcm/api/StatisticalAnalysisController.java
  4. 17
      tcm/src/main/java/com/ccsens/tcm/bean/dto/StatisticDto.java
  5. 18
      tcm/src/main/java/com/ccsens/tcm/bean/vo/StatisticVo.java
  6. 2
      tcm/src/main/java/com/ccsens/tcm/persist/dao/PatientDao.java
  7. 3
      tcm/src/main/java/com/ccsens/tcm/service/IPatientService.java
  8. 32
      tcm/src/main/java/com/ccsens/tcm/service/PatientService.java
  9. 45
      tcm/src/main/resources/mapper_dao/PatientDao.xml

2
pims/src/main/resources/mybatis/mybatis-config.xml

@ -46,7 +46,7 @@
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql"/>
<!-- 该参数默认为false -->
<!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
<!-- 设置为true时,会将RowBounds第一个参数offset当成um页码使用 -->
<!-- 和startPage中的pageNum效果一样-->
<property name="offsetAsPageNum" value="false"/>
<!-- 该参数默认为false -->

4
tall/src/main/resources/application.yml

@ -1,5 +1,5 @@
spring:
profiles:
active: dev
include: util-dev,common
active: test
include: util-test,common

18
tcm/src/main/java/com/ccsens/tcm/api/StatisticalAnalysisController.java

@ -81,4 +81,22 @@ public class StatisticalAnalysisController {
log.info("查找每个医院的病例完成情况");
return JsonResponse.newInstance().ok(completeDoctors);
}
@MustLogin
@ApiOperation(value = "临近任务统计", notes = "1007:")
@RequestMapping(value = "/adjacentTasks", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<PageInfo<StatisticVo.RecentAnalysisVO>> adjacentTasks(@ApiParam @Validated @RequestBody QueryDto<StatisticDto.RecentAnalysisDto> params){
log.info("临近任务统计:{}",params);
PageInfo<StatisticVo.RecentAnalysisVO> recentAnalysisVOPageInfo=patientService.adjacentTasks(params.getParam(),params.getUserId());
log.info("临近任务统计:{}",params);
return JsonResponse.newInstance().ok(recentAnalysisVOPageInfo);
}
// @MustLogin
// @ApiOperation(value = "进行中患者进度", notes = "1007:")
// @RequestMapping(value = "/selPatientProgress", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
// public JsonResponse<PageInfo<StatisticVo.PatientProgressVo>> selPatientProgress(@ApiParam @Validated @RequestBody QueryDto<StatisticDto.RecentAnalysisDto> params){
// log.info("进行中患者进度:{}",params);
// PageInfo<StatisticVo.RecentAnalysisVO> recentAnalysisVOPageInfo=patientService.selPatientProgress(params.getParam());
// log.info("进行中患者进度:{}",params);
// return JsonResponse.newInstance().ok(recentAnalysisVOPageInfo);
// }
}

17
tcm/src/main/java/com/ccsens/tcm/bean/dto/StatisticDto.java

@ -5,12 +5,29 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.net.Inet4Address;
import java.util.Date;
import java.util.List;
@Data
public class StatisticDto {
@Data
@ApiModel("临近任务请求参数")
public static class RecentAnalysisDto{
@ApiModelProperty("第几页")
@Min(value = 1)
private int pageNum = 1;
@ApiModelProperty("每页多少条")
@Min(value = 1)
@Max(value=100)
private int pageSize = 10;
@ApiModelProperty("发病时间id,这个不用传")
private Long testQuestionsId;
}
@Data
@ApiModel("每日病例统计传参")
public static class SelCount{

18
tcm/src/main/java/com/ccsens/tcm/bean/vo/StatisticVo.java

@ -95,4 +95,22 @@ public class StatisticVo {
@ApiModelProperty("废弃的")
private Integer discarded;
}
@Data
@ApiModel("临近任务-返回参数")
public static class RecentAnalysisVO{
@ApiModelProperty("日期")
private Date shijian;
@ApiModelProperty("住院号")
private String hospitalization;
@ApiModelProperty("任务")
private String task;
}
@Data
@ApiModel("患者进度返回参数")
public static class PatientProgressVo{
@ApiModelProperty("患者姓名")
private String name;
@ApiModelProperty("患者id")
private Long id;
}
}

2
tcm/src/main/java/com/ccsens/tcm/persist/dao/PatientDao.java

@ -62,4 +62,6 @@ public interface PatientDao {
List<BiologicalSamplesVo.selBiolog> selBiologicalSamples(BiologicalSamplesDto.SelBiolog param);
List<BiologicalSamplesVo.SelBiologNums> selAllYBS();
List<StatisticVo.RecentAnalysisVO> adjacentTasks(StatisticDto.RecentAnalysisDto param,Long userId);
}

3
tcm/src/main/java/com/ccsens/tcm/service/IPatientService.java

@ -5,6 +5,7 @@ import com.ccsens.tcm.bean.dto.ConRecDto;
import com.ccsens.tcm.bean.dto.PatientDto;
import com.ccsens.tcm.bean.dto.StatisticDto;
import com.ccsens.tcm.bean.vo.*;
import com.ccsens.util.bean.dto.QueryDto;
import com.github.pagehelper.PageInfo;
import java.util.List;
@ -62,4 +63,6 @@ public interface IPatientService {
HospitalVo.SelHospitalVo getHospitalByProjectId(Long projectId);
List<BiologicalSamplesVo.SelBiologNums> selAllYBS();
PageInfo<StatisticVo.RecentAnalysisVO> adjacentTasks(StatisticDto.RecentAnalysisDto param,Long userId);
}

32
tcm/src/main/java/com/ccsens/tcm/service/PatientService.java

@ -13,6 +13,7 @@ import com.ccsens.tcm.persist.mapper.*;
import com.ccsens.tcm.uitl.Constant;
import com.ccsens.util.CodeEnum;
import com.ccsens.util.RedisUtil;
import com.ccsens.util.bean.dto.QueryDto;
import com.ccsens.util.exception.BaseException;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -26,9 +27,7 @@ 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.Date;
import java.util.List;
import java.util.*;
@Slf4j
@Service
@ -113,6 +112,22 @@ public class PatientService implements IPatientService {
Inpatient inpatient = inpatientMapper.selectByPrimaryKey(patientInformation.getInpatientId());
//下面是对试题进行提交
if(param.getList().size()>0) {
//在这个地方修改其中得集合
List<PatientDto.saveCaseMesSig> saveCaseMesSigList= param.getList();
Set<String> stringSet=new HashSet<String>();
saveCaseMesSigList.forEach(saveCaseMesSig -> {
if(saveCaseMesSig.getContentsType()==(byte)0){
stringSet.add(saveCaseMesSig.getTestQuestionsId()+"-"+saveCaseMesSig.getContents());
}
});
for (int i = param.getList().size() - 1; i >= 0; i--) {
if(param.getList().get(i).getContentsType()==(byte) 1){
if(!stringSet.contains(param.getList().get(i).getTestQuestionsId()+"-"+param.getList().get(i).getContents())){
param.getList().remove(i);
}
}
}
for (int i = 0; i < param.getList().size(); i++) {
// //先查询试题id,查看试题需要记录的次数
// ReportCode reportCode = reportCodeMapper.selectByPrimaryKey(param.getList().get(i).getTestQuestionsId());
@ -360,4 +375,15 @@ public class PatientService implements IPatientService {
List<BiologicalSamplesVo.SelBiologNums> selBiologNumsList= patientDao.selAllYBS();
return selBiologNumsList;
}
@Override
public PageInfo<StatisticVo.RecentAnalysisVO> adjacentTasks(StatisticDto.RecentAnalysisDto param,Long userId) {
Long disease_time=Long.parseLong(String.valueOf(redisUtil.get(Constant.Redis.DISEASE_TIME)));
param.setTestQuestionsId(disease_time);
PageHelper.startPage(param.getPageNum(),param.getPageSize());
List<StatisticVo.RecentAnalysisVO> recentAnalysisVOS= patientDao.adjacentTasks(param,userId);
return new PageInfo<>(recentAnalysisVOS);
}
}

45
tcm/src/main/resources/mapper_dao/PatientDao.xml

@ -158,8 +158,9 @@
<select id="countAnalysis" resultType="com.ccsens.tcm.bean.vo.StatisticVo$SelGroupList">
<if test="testQuestionsId!=null and testQuestionsId!=0">
select if(locate('其他',tpr.contents),'其他',tpr.contents) as content,count(distinct tpr.patient_id) as nums from t_patient_information tpi left join t_patient_record tpr on tpi.id=tpr.patient_id and tpr.rec_status=0
select if( tpr.contents_type =1,'其他',tpr.contents) as content,count(distinct tpr.patient_id) as nums from t_patient_information tpi left join t_patient_record tpr on tpi.id=tpr.patient_id and tpr.rec_status=0 and tpr.contents_type != 2
where tpi.rec_status=0
<if test="testQuestionsId!=null and testQuestionsId!=0">
and tpr.test_questions_id=#{testQuestionsId}
</if>
@ -209,6 +210,7 @@
WHERE
tpr.rec_status = 0
AND tpr.test_questions_id = #{item.testQuestionsId}
and tpr.contents_type != 2
<if test="item.contents!=null and item.contents!=''">
AND tpr.contents LIKE concat('%',#{item.contents},'%')
</if>
@ -224,6 +226,7 @@
WHERE
tpr.rec_status = 0
AND tpr.test_questions_id = #{item1.testQuestionsId}
and tpr.contents_type != 2
<if test="item1.startTime!=null and item1.startTime!=''">
AND tpr.contents &gt; #{item1.startTime}
</if>
@ -350,4 +353,44 @@
where tbs.rec_status=0
group by th.id
</select>
<select id="adjacentTasks" resultType="com.ccsens.tcm.bean.vo.StatisticVo$RecentAnalysisVO">
select (
CASE
WHEN ( DATEDIFF( now( ), tpr.contents ) &gt;= 11 AND DATEDIFF( now( ), tpr.contents ) &lt;= 17 ) THEN
DATE_FORMAT( FROM_UNIXTIME( UNIX_TIMESTAMP( tpr.contents ) + 14 * 24 * 60 * 60 ), '%Y-%m-%d' )
WHEN ( DATEDIFF( now( ), tpr.contents ) &gt;= 87 AND DATEDIFF( now( ), tpr.contents ) &lt;= 93 ) THEN
DATE_FORMAT( FROM_UNIXTIME( UNIX_TIMESTAMP( tpr.contents ) + 90 * 24 * 60 * 60 ), '%Y-%m-%d' )
WHEN ( DATEDIFF( now( ), tpr.contents ) &gt;= 177 AND DATEDIFF( now( ), tpr.contents ) &lt;= 183 ) THEN
DATE_FORMAT( FROM_UNIXTIME( UNIX_TIMESTAMP( tpr.contents ) + 180 * 24 * 60 * 60 ), '%Y-%m-%d' )
WHEN ( DATEDIFF( now( ), tpr.contents ) &gt;= 362 AND DATEDIFF( now( ), tpr.contents ) &lt;= 368 ) THEN
DATE_FORMAT( FROM_UNIXTIME( UNIX_TIMESTAMP( tpr.contents ) + 365 * 24 * 60 * 60 ), '%Y-%m-%d' )
WHEN ( DATEDIFF( now( ), tpr.contents ) &gt;= 0 AND DATEDIFF( now( ), tpr.contents ) &lt;= 3 ) THEN
DATE_FORMAT( FROM_UNIXTIME( UNIX_TIMESTAMP( tpr.contents ) + 1 * 24 * 60 * 60 ), '%Y-%m-%d' )
END
) as shijian,tpi.hospitalization,(
CASE
WHEN ( DATEDIFF( now( ), tpr.contents ) &gt;= 11 AND DATEDIFF( now( ), tpr.contents ) &lt;= 17 ) THEN
'14天数据搜集'
WHEN ( DATEDIFF( now( ), tpr.contents ) &gt;= 87 AND DATEDIFF( now( ), tpr.contents ) &lt;= 93 ) THEN
'90天数据搜集'
WHEN ( DATEDIFF( now( ), tpr.contents ) &gt;= 177 AND DATEDIFF( now( ), tpr.contents ) &lt;= 183 ) THEN
'180天随访'
WHEN ( DATEDIFF( now( ), tpr.contents ) &gt;= 362 AND DATEDIFF( now( ), tpr.contents ) &lt;= 368 ) THEN
'360天随访'
WHEN ( DATEDIFF( now( ), tpr.contents ) &gt;= 0 AND DATEDIFF( now( ), tpr.contents ) &lt;= 3 ) THEN
'第一次数据收集'
END
) as task from t_patient_record tpr
left join t_patient_information tpi on tpi.id=tpr.patient_id and tpi.rec_status=0
where tpr.rec_status=0
and tpr.test_questions_id=#{testQuestionsId}
and (
( DATEDIFF( now( ), tpr.contents ) &gt;= 11 AND DATEDIFF( now( ), tpr.contents ) &lt;= 17 )
OR ( DATEDIFF( now( ), tpr.contents ) &gt;= 87 AND DATEDIFF( now( ), tpr.contents ) &lt;= 93 )
OR ( DATEDIFF( now( ), tpr.contents ) &gt;= 177 AND DATEDIFF( now( ), tpr.contents ) &lt;= 183 )
OR ( DATEDIFF( now( ), tpr.contents ) &gt;= 362 AND DATEDIFF( now( ), tpr.contents ) &lt;= 368 )
OR ( DATEDIFF( now( ), tpr.contents ) &gt;= 0 AND DATEDIFF( now( ), tpr.contents ) &lt;= 3 )
)
and tpr.user_id=#{userId}
</select>
</mapper>
Loading…
Cancel
Save