Browse Source

修改病例基础信息 tcm

pt
zhizhi wu 4 years ago
parent
commit
1c42230e95
  1. 24
      tcm/src/main/java/com/ccsens/tcm/api/PatientController.java
  2. 25
      tcm/src/main/java/com/ccsens/tcm/bean/dto/PatientDto.java
  3. 17
      tcm/src/main/java/com/ccsens/tcm/bean/vo/PatientVo.java
  4. 15
      tcm/src/main/java/com/ccsens/tcm/service/IPatientService.java
  5. 67
      tcm/src/main/java/com/ccsens/tcm/service/PatientService.java

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 {

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);
}

67
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;
@ -81,16 +82,7 @@ public class PatientService implements IPatientService {
}
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();
@ -489,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;
}
}

Loading…
Cancel
Save