Merge remote-tracking branch 'origin/dev_2.0.0' into dev_2.0.0
commit
9825ba2ae8
@ -0,0 +1,48 @@
|
||||
package com.supervision.manage.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.manage.pojo.vo.MedicalRecManageVO;
|
||||
import com.supervision.vo.manage.MedicalRecPageResVO;
|
||||
import com.supervision.manage.service.MedicalRecManageService;
|
||||
import com.supervision.model.Disease;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.util.List;
|
||||
|
||||
@Api(tags = "病历管理")
|
||||
@RestController
|
||||
@RequestMapping("medicalRecManage")
|
||||
@RequiredArgsConstructor
|
||||
public class MedicalRecManageController {
|
||||
|
||||
private final MedicalRecManageService medicalRecManageService;
|
||||
|
||||
@ApiOperation("初步诊断下拉列表联想")
|
||||
@GetMapping("queryDiseaseListByKeyWord")
|
||||
public List<Disease> queryDiseaseListByKeyWord(@NotBlank(message = "关键字不能为空") String keyword) {
|
||||
return medicalRecManageService.queryDiseaseListByKeyWord(keyword);
|
||||
}
|
||||
|
||||
@ApiOperation("病历管理分页查询")
|
||||
@GetMapping("queryMedicalRecPage")
|
||||
public IPage<MedicalRecPageResVO> queryMedicalRecManagePage(@ApiParam("主诉") String selfDescKeyword,
|
||||
@ApiParam("性别") String gender,
|
||||
@ApiParam("疾病ID") String diseaseId,
|
||||
Integer pageNum, Integer pageSize) {
|
||||
return medicalRecManageService.queryMedicalRecManagePage(selfDescKeyword, gender, diseaseId, pageNum, pageSize);
|
||||
}
|
||||
|
||||
@ApiOperation("创建病历")
|
||||
@PostMapping("createMedicalRec")
|
||||
public void createMedicalRec(@RequestBody MedicalRecManageVO reqVO){
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
package com.supervision.manage.pojo.vo;
|
||||
|
||||
import com.supervision.model.AskPatientAnswer;
|
||||
import com.supervision.model.MedicalRec;
|
||||
import com.supervision.model.Patient;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.util.List;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@ApiModel(value = "病历管理创建及新建", parent = MedicalRec.class)
|
||||
public class MedicalRecManageVO extends MedicalRec {
|
||||
|
||||
@ApiModelProperty("step:1 基础信息")
|
||||
private Patient patient;
|
||||
|
||||
@NotBlank(message = "疾病不能为空")
|
||||
@ApiModelProperty("step:1 疾病ID(目前只支持单选疾病,且修改时不允许变更)")
|
||||
private String diseaseId;
|
||||
|
||||
@ApiModelProperty("step:4 应答策略")
|
||||
private List<AskPatientAnswer> qaList;
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.supervision.manage.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.manage.pojo.vo.MedicalRecManageVO;
|
||||
import com.supervision.vo.manage.MedicalRecPageResVO;
|
||||
import com.supervision.model.Disease;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface MedicalRecManageService {
|
||||
|
||||
List<Disease> queryDiseaseListByKeyWord(String keyword);
|
||||
|
||||
IPage<MedicalRecPageResVO> queryMedicalRecManagePage(String selfDescKeyword, String gender, String diseaseId, Integer pageNum, Integer pageSize);
|
||||
|
||||
void createMedicalRec(MedicalRecManageVO reqVO);
|
||||
}
|
@ -0,0 +1,73 @@
|
||||
package com.supervision.manage.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.supervision.exception.BusinessException;
|
||||
import com.supervision.manage.pojo.vo.MedicalRecManageVO;
|
||||
import com.supervision.model.AskPatientAnswer;
|
||||
import com.supervision.model.MedicalRec;
|
||||
import com.supervision.model.Patient;
|
||||
import com.supervision.service.AskPatientAnswerService;
|
||||
import com.supervision.vo.manage.MedicalRecPageResVO;
|
||||
import com.supervision.manage.service.MedicalRecManageService;
|
||||
import com.supervision.model.Disease;
|
||||
import com.supervision.service.DiseaseService;
|
||||
import com.supervision.service.MedicalRecService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class MedicalRecManageServiceImpl implements MedicalRecManageService {
|
||||
|
||||
private final DiseaseService diseaseService;
|
||||
|
||||
private final MedicalRecService medicalRecService;
|
||||
|
||||
private final AskPatientAnswerService askPatientAnswerService;
|
||||
|
||||
public List<Disease> queryDiseaseListByKeyWord(String keyword) {
|
||||
// 注意,这里不支持查询复杂疾病,如果需要支持复杂疾病,这里需要单独进行改造
|
||||
return diseaseService.lambdaQuery().eq(Disease::getDiseaseType, 0).like(Disease::getDiseaseName, keyword).list();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<MedicalRecPageResVO> queryMedicalRecManagePage(String selfDescKeyword, String gender, String diseaseId, Integer pageNum, Integer pageSize) {
|
||||
// 注意,这里的diseaseId不支持查询复杂疾病,如果需要支持复杂疾病,这里需要单独进行改造
|
||||
return medicalRecService.queryMedicalRecManagePage(selfDescKeyword, gender, diseaseId, pageNum, pageSize);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void createMedicalRec(MedicalRecManageVO reqVO) {
|
||||
// 首先新增病人
|
||||
Patient patient = reqVO.getPatient();
|
||||
patient.insert();
|
||||
// 然后保存病历
|
||||
MedicalRec medicalRec = BeanUtil.toBean(reqVO, MedicalRec.class);
|
||||
medicalRec.setPatientId(patient.getId());
|
||||
// 注意,这里新增的时候,目前只支持单个疾病,如果需要多个疾病,需要在这里改造,先新增出来一个疾病
|
||||
medicalRec.setDiseaseId(reqVO.getDiseaseId());
|
||||
medicalRec.insert();
|
||||
// 这里生成一个新的编号(首先去数据库里面查询编号,然后用最大的编号+1)(可能存在并发修改导致编码重复问题,不是重点,等有问题再说)
|
||||
medicalRecService.updateMedicalRecNo("QL", "男".equals(patient.getGender()) ? "M" : "F", medicalRec.getId());
|
||||
// 然后保存病历编码
|
||||
List<AskPatientAnswer> qaList = reqVO.getQaList();
|
||||
for (AskPatientAnswer askPatientAnswer : qaList) {
|
||||
if (StrUtil.isBlank(askPatientAnswer.getLibraryQuestionId())) {
|
||||
throw new BusinessException("问题ID不能为空");
|
||||
}
|
||||
askPatientAnswer.setMedicalId(medicalRec.getId());
|
||||
askPatientAnswer.setPatientId(patient.getId());
|
||||
}
|
||||
askPatientAnswerService.saveBatch(qaList);
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.supervision.vo.manage;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class MedicalRecPageResVO {
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue