Browse Source

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

pt
zy_Java 4 years ago
parent
commit
845351afd1
  1. 6
      cloudutil/src/main/java/com/ccsens/cloudutil/aspect/MustLoginAspect.java
  2. 2
      cloudutil/src/main/resources/application-util-test.yml
  3. 8
      tcm/src/main/java/com/ccsens/tcm/api/InpatientController.java
  4. 24
      tcm/src/main/java/com/ccsens/tcm/api/PatientController.java
  5. 25
      tcm/src/main/java/com/ccsens/tcm/bean/dto/PatientDto.java
  6. 17
      tcm/src/main/java/com/ccsens/tcm/bean/vo/PatientVo.java
  7. 25
      tcm/src/main/java/com/ccsens/tcm/persist/dao/InpatientDao.java
  8. 7
      tcm/src/main/java/com/ccsens/tcm/service/IInpatientService.java
  9. 15
      tcm/src/main/java/com/ccsens/tcm/service/IPatientService.java
  10. 12
      tcm/src/main/java/com/ccsens/tcm/service/InpatientService.java
  11. 77
      tcm/src/main/java/com/ccsens/tcm/service/PatientService.java
  12. 2
      tcm/src/main/java/com/ccsens/tcm/uitl/Constant.java
  13. 4
      tcm/src/main/resources/application-test.yml
  14. 4
      tcm/src/main/resources/application.yml
  15. 30
      tcm/src/main/resources/mapper_dao/InpatientDao.xml
  16. 2
      tcm/src/main/resources/mapper_dao/PatientDao.xml

6
cloudutil/src/main/java/com/ccsens/cloudutil/aspect/MustLoginAspect.java

@ -84,12 +84,16 @@ public class MustLoginAspect {
return result;
}
//必须登录,未登录直接返回未登录相关信息
if (response == null || response.getCode().intValue() != CodeEnum.SUCCESS.getCode().intValue()) {
if (response == null) {
return JsonResponse.newInstance().ok(CodeEnum.NOT_LOGIN);
}
if (response.getCode().intValue() != CodeEnum.SUCCESS.getCode().intValue()) {
return response;
}
if (response.getData() == null) {
return JsonResponse.newInstance().ok(CodeEnum.NOT_LOGIN);
}
JSONObject json = JSONObject.parseObject(JSON.toJSONString(response.getData()));
Long userId = json.getLong("id");
String userName = json.getString("userName");

2
cloudutil/src/main/resources/application-util-test.yml

@ -85,7 +85,7 @@ eureka:
# defaultZone: http://admin:admin@49.232.6.143:7010/eureka/
# defaultZone: http://admin:admin@192.168.0.99:7010/eureka/
defaultZone: http://admin:admin@192.168.4.113:7010/eureka/
defaultZone: http://admin:admin@192.168.0.99:7010/eureka/
# defaultZone: http://admin:admin@192.168.31.13:7010/eureka/
# defaultZone: http://admin:admin@test.tall.wiki:7010/eureka/
instance:

8
tcm/src/main/java/com/ccsens/tcm/api/InpatientController.java

@ -35,6 +35,14 @@ public class InpatientController {
@ApiImplicitParams({})
@RequestMapping(value="/query",method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<InpatientVo.InpatientInfo>> queryInpatient() throws Exception {
List<InpatientVo.InpatientInfo> inpatientInfos = inpatientService.queryAllInpatient();
return JsonResponse.newInstance().ok(inpatientInfos);
}
@ApiOperation(value = "查询启用的对照组的信息",notes = "")
@ApiImplicitParams({})
@RequestMapping(value="/queryEnable",method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<InpatientVo.InpatientInfo>> queryEnable() throws Exception {
List<InpatientVo.InpatientInfo> inpatientInfos = inpatientService.queryInpatient();
return JsonResponse.newInstance().ok(inpatientInfos);
}

24
tcm/src/main/java/com/ccsens/tcm/api/PatientController.java

@ -44,13 +44,33 @@ public class PatientController {
return JsonResponse.newInstance().ok();
}
@MustLogin
@ApiOperation(value = "根据病例ID查询患者基本信息", notes = "whj")
@RequestMapping(value = "/getById", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<PatientVo.Basic> getById(@ApiParam @Validated @RequestBody QueryDto<PatientDto.Id> params) {
log.info("根据病例ID查询患者基本信息:{}",params);
PatientVo.Basic basic = patientService.getById(params.getParam(),params.getUserId());
log.info("根据病例ID查询患者基本信息成功");
return JsonResponse.newInstance().ok(basic);
}
@MustLogin
@ApiOperation(value = "修改患者基本信息", notes = "whj")
@RequestMapping(value = "/upPatient", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse upPatient(@ApiParam @Validated @RequestBody QueryDto<PatientDto.UpdatePatient> params) {
log.info("修改患者基本信息:{}",params);
patientService.upPatient(params.getParam(),params.getUserId());
log.info("修改患者基本信息成功");
return JsonResponse.newInstance().ok();
}
@MustLogin
@ApiOperation(value = "修改患者的完成状态", notes = "w:修改患者的完成状态")
@RequestMapping(value = "/upPatientMes", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse upPatientMes(@ApiParam @Validated @RequestBody QueryDto<PatientDto.UpPatient> params) {
log.info("修改患者基本信息:{}",params);
log.info("修改患者完成状态:{}",params);
patientService.upPatientMes(params.getParam(),params.getUserId());
log.info("修改患者基本信息成功");
log.info("修改患者完成状态成功");
return JsonResponse.newInstance().ok();
}
@MustLogin

25
tcm/src/main/java/com/ccsens/tcm/bean/dto/PatientDto.java

@ -15,6 +15,31 @@ import java.util.List;
*/
@Data
public class PatientDto {
@Data
@ApiModel("根据ID查询基本信息-请求")
public static class Id {
@NotNull
@ApiModelProperty("对照组id")
private Long patientId;
}
@Data
@ApiModel("保存患者基本信息")
public static class UpdatePatient {
@NotNull
@ApiModelProperty("病例id")
private Long id;
@NotBlank(message = "请输入住院号")
@ApiModelProperty("住院号")
private String hospitalization;
@NotNull(message = "请选择对照组")
@ApiModelProperty("对照组id")
private Long inpatientId;
@NotNull
@ApiModelProperty("编号顺序")
private int codeNum;
}
@Data
@ApiModel("保存患者基本信息")
public static class SavePatient {

17
tcm/src/main/java/com/ccsens/tcm/bean/vo/PatientVo.java

@ -14,6 +14,23 @@ import java.util.List;
*/
@Data
public class PatientVo {
@Data
@ApiModel("基本信息")
public static class Basic {
@ApiModelProperty("患者id")
private Long id;
@ApiModelProperty("住院号")
private String hospitalization;
@ApiModelProperty("研究编号")
private String code;
@ApiModelProperty("编号顺序")
private String codeNum;
@ApiModelProperty("对照组id")
private Long inpatientId;
@ApiModelProperty("录入状态:0:新建 1:数据搜集中 2数据搜集完成 3数据搜集超时 4:废弃")
private Byte inputStatus;
}
@Data
@ApiModel("经过搜索条件查询的患者基本信息")
public static class SelPatient {

25
tcm/src/main/java/com/ccsens/tcm/persist/dao/InpatientDao.java

@ -0,0 +1,25 @@
package com.ccsens.tcm.persist.dao;
import com.ccsens.tcm.bean.vo.InpatientVo;
import com.ccsens.tcm.persist.mapper.InpatientMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author whj
*/
public interface InpatientDao extends InpatientMapper {
/**
* 查询全部对照组含禁用
* @return
*/
List<InpatientVo.InpatientInfo> queryAllInpatient();
/**
* 根据ID查询对象含禁用
* @param id
* @return
*/
InpatientVo.InpatientInfo getAllById(@Param("id") Long id);
}

7
tcm/src/main/java/com/ccsens/tcm/service/IInpatientService.java

@ -10,9 +10,14 @@ import java.util.List;
public interface IInpatientService {
/**
* 查看有对照组
* 查看有对照组
* @return 返回对照组信息
*/
List<InpatientVo.InpatientInfo> queryInpatient();
/**
* 查询全部对照组
* @return
*/
List<InpatientVo.InpatientInfo> queryAllInpatient();
}

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

@ -98,4 +98,19 @@ public interface IPatientService {
* @return 临近任务
*/
PageInfo<StatisticVo.RecentAnalysisVO> hospitalAdjacentTasks(StatisticDto.RecentAnalysisDto param, Long userId);
/**
* 根据ID查询基础信息
* @param param ID
* @param userId 用户ID
* @return 基础信息
*/
PatientVo.Basic getById(PatientDto.Id param, Long userId);
/**
* 修改患者信息
* @param param 患者信息
* @param userId userId
*/
void upPatient(PatientDto.UpdatePatient param, Long userId);
}

12
tcm/src/main/java/com/ccsens/tcm/service/InpatientService.java

@ -4,7 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.ccsens.tcm.bean.po.Inpatient;
import com.ccsens.tcm.bean.po.InpatientExample;
import com.ccsens.tcm.bean.vo.InpatientVo;
import com.ccsens.tcm.persist.mapper.InpatientMapper;
import com.ccsens.tcm.persist.dao.InpatientDao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -25,7 +25,7 @@ import java.util.List;
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class InpatientService implements IInpatientService{
@Resource
private InpatientMapper inpatientMapper;
private InpatientDao inpatientDao;
@Override
public List<InpatientVo.InpatientInfo> queryInpatient() {
@ -33,7 +33,8 @@ public class InpatientService implements IInpatientService{
InpatientExample inpatientExample = new InpatientExample();
inpatientExample.clear();
List<Inpatient> inpatients = inpatientMapper.selectByExample(inpatientExample);
inpatientExample.setOrderByClause("code");
List<Inpatient> inpatients = inpatientDao.selectByExample(inpatientExample);
inpatients.forEach(inpatient -> {
InpatientVo.InpatientInfo inpatientInfo = new InpatientVo.InpatientInfo();
BeanUtil.copyProperties(inpatient,inpatientInfo);
@ -41,4 +42,9 @@ public class InpatientService implements IInpatientService{
});
return inpatientInfos;
}
@Override
public List<InpatientVo.InpatientInfo> queryAllInpatient() {
return inpatientDao.queryAllInpatient();
}
}

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

@ -3,6 +3,7 @@ package com.ccsens.tcm.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.ccsens.tcm.bean.dto.BiologicalSamplesDto;
import com.ccsens.tcm.bean.dto.ConRecDto;
import com.ccsens.tcm.bean.dto.PatientDto;
@ -10,11 +11,13 @@ import com.ccsens.tcm.bean.dto.StatisticDto;
import com.ccsens.tcm.bean.po.*;
import com.ccsens.tcm.bean.vo.*;
import com.ccsens.tcm.persist.dao.DoctorDao;
import com.ccsens.tcm.persist.dao.InpatientDao;
import com.ccsens.tcm.persist.dao.PatientDao;
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.WebConstant;
import com.ccsens.util.exception.BaseException;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -47,7 +50,7 @@ public class PatientService implements IPatientService {
@Resource
private BiologicalSamplesMapper biologicalSamplesMapper;
@Resource
private InpatientMapper inpatientMapper;
private InpatientDao inpatientDao;
@Resource
private HospitalMapper hospitalMapper;
@Resource
@ -73,22 +76,13 @@ public class PatientService implements IPatientService {
@Override
public void savePatient(PatientDto.SavePatient param, Long userId) {
Hospital hospital = selUserIdToHosId(userId);
Inpatient inpatient = inpatientMapper.selectByPrimaryKey(param.getInpatientId());
Inpatient inpatient = inpatientDao.selectByPrimaryKey(param.getInpatientId());
if (inpatient == null) {
throw new BaseException(CodeEnum.PARAM_ERROR);
}
log.info("医院:{},对照组:{}", hospital, inpatient);
// 生成编号
DecimalFormat df=new DecimalFormat("000");
String num = hospital.getCode() + inpatient.getCode() + df.format(param.getCodeNum());
log.info("编号:{}", num);
// 判断住院号是否存在
PatientInformationExample patientInformationExample=new PatientInformationExample();
patientInformationExample.createCriteria().andCodeEqualTo(num);
long l = patientInformationMapper.countByExample(patientInformationExample);
if(l>0){
throw new BaseException(CodeEnum.ZHUYUANIDCHONGFU);
}
String num = getNumber(inpatient.getCode(), hospital.getCode(), param.getCodeNum(), null);
PatientInformation patientInformation=new PatientInformation();
@ -310,7 +304,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());
selGroupNum.setName(inpatientDao.getAllById(param.getInpatientId()[i]).getName());
List<StatisticVo.SelGroupList> 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);
@ -467,6 +461,8 @@ public class PatientService implements IPatientService {
patientInformation.setCheckId(userId);
} else if (param.getInputStatus() == Constant.Patient.STATUS_CLOSE) {
patientInformation.setPassId(userId);
} else if (param.getInputStatus() == Constant.Patient.STATUS_DISABLE) {
patientInformation.setRecStatus(WebConstant.REC_STATUS.Disabled.value);
}
patientInformationMapper.updateByExampleSelective(patientInformation,patientInformationExample);
}
@ -485,5 +481,60 @@ public class PatientService implements IPatientService {
return new PageInfo<>(recentAnalysisVOS);
}
@Override
public PatientVo.Basic getById(PatientDto.Id param, Long userId) {
PatientInformation information = patientInformationMapper.selectByPrimaryKey(param.getPatientId());
if (information == null) {
throw new BaseException(CodeEnum.PARAM_ERROR);
}
PatientVo.Basic basic = new PatientVo.Basic();
BeanUtils.copyProperties(information, basic);
basic.setCodeNum(StrUtil.isNotBlank(basic.getCode()) && basic.getCode().length() > 2 ? basic.getCode().substring(2) : "");
return basic;
}
@Override
public void upPatient(PatientDto.UpdatePatient param, Long userId) {
PatientInformation information = patientInformationMapper.selectByPrimaryKey(param.getId());
if (information == null) {
log.info("没有对应的病例信息:{}", param.getId());
throw new BaseException(CodeEnum.PARAM_ERROR);
}
Inpatient inpatient = inpatientDao.selectByPrimaryKey(param.getInpatientId());
if (inpatient == null) {
log.info("没有对照组信息:{}", param.getInpatientId());
throw new BaseException(CodeEnum.PARAM_ERROR);
}
log.info("病例信息:{},对照组:{}", information, inpatient);
// 获取医院
Hospital hospital = hospitalMapper.selectByPrimaryKey(information.getHospitalId());
// 生成编号
String num = getNumber(inpatient.getCode(), hospital.getCode(), param.getCodeNum(), information.getId());
// 修改数据
PatientInformation patientInformation=new PatientInformation();
patientInformation.setId(param.getId());
patientInformation.setHospitalization(param.getHospitalization());
patientInformation.setInpatientId(param.getInpatientId());
patientInformation.setCode(num);
patientInformationMapper.updateByPrimaryKeySelective(patientInformation);
}
private String getNumber(String inpatientCode, String hospitalCode, int codeNum, Long id) {
DecimalFormat df = new DecimalFormat("000");
String num = hospitalCode + inpatientCode + df.format(codeNum);
log.info("编号:{}", num);
// 判断编号是否存在
PatientInformationExample patientInformationExample = new PatientInformationExample();
PatientInformationExample.Criteria criteria = patientInformationExample.createCriteria().andCodeEqualTo(num);
if (id != null && id != 0) {
criteria.andIdNotEqualTo(id);
}
long l = patientInformationMapper.countByExample(patientInformationExample);
if (l > 0) {
throw new BaseException(CodeEnum.ZHUYUANIDCHONGFU);
}
return num;
}
}

2
tcm/src/main/java/com/ccsens/tcm/uitl/Constant.java

@ -47,6 +47,8 @@ public class Constant {
public static class Patient {
/**废弃*/
public final static byte STATUS_DISABLE = 4;
/**审核通过*/
public final static byte STATUS_PASS = 5;
/**已完结*/

4
tcm/src/main/resources/application-test.yml

@ -31,8 +31,8 @@ eureka:
ip-address: 127.0.0.1
file:
path: /home/cloud/tcm/uploads/
domain: https://www.sxwikionline.com/gateway/tcm/
imgDomain: https://www.sxwikionline.com/gateway/tcm/uploads/
domain: https://test.tall.wiki/gateway/tcm/
imgDomain: https://test.tall.wiki/gateway/tcm/uploads/
day:
one: 9
two: 30

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

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

30
tcm/src/main/resources/mapper_dao/InpatientDao.xml

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.tcm.persist.dao.InpatientDao">
<select id="queryAllInpatient" resultType="com.ccsens.tcm.bean.vo.InpatientVo$InpatientInfo">
SELECT
id,
name,
remarks,
collection_num AS collectionNum
FROM
t_inpatient
WHERE
rec_status IN ( 0, 1 )
ORDER BY CODE
</select>
<select id="getAllById" resultType="com.ccsens.tcm.bean.vo.InpatientVo$InpatientInfo">
SELECT
id,
name,
remarks,
collection_num AS collectionNum
FROM
t_inpatient
WHERE
id = #{id}
AND rec_status IN ( 0, 1 )
</select>
</mapper>

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

@ -246,7 +246,7 @@
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 =0
left join t_inpatient ti on ti.id=tpi.inpatient_id and ti.rec_status = 0
left join t_inpatient ti on ti.id=tpi.inpatient_id and ti.rec_status in (0,1)
where tpi.rec_status=0
<if test="testQuestionsId!=null and testQuestionsId!=0">

Loading…
Cancel
Save