|
@@ -1,12 +1,5 @@
|
|
|
package com.diagbot.facade;
|
|
|
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
-import org.springframework.stereotype.Component;
|
|
|
-
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.diagbot.dto.GetInquiryDetailDTO;
|
|
|
import com.diagbot.dto.GetInquiryDetailImgDTO;
|
|
@@ -30,6 +23,12 @@ import com.diagbot.util.StringUtil;
|
|
|
import com.diagbot.vo.GetInquiryDetailVO;
|
|
|
import com.diagbot.vo.HisInquirysVO;
|
|
|
import com.diagbot.vo.SaveInquiryVO;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* @author: zhoutg
|
|
@@ -37,29 +36,30 @@ import com.diagbot.vo.SaveInquiryVO;
|
|
|
*/
|
|
|
@Component
|
|
|
public class InquiryInfoFacade extends InquiryInfoServiceImpl {
|
|
|
-
|
|
|
- @Autowired
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private InquiryDetailFacade inquiryDetailFacade;
|
|
|
- @Autowired
|
|
|
+ @Autowired
|
|
|
private InquiryReportFacade inquiryReportFacade;
|
|
|
- @Autowired
|
|
|
+ @Autowired
|
|
|
private InquiryEvaluatorFacade inquiryEvaluatorFacade;
|
|
|
- @Autowired
|
|
|
+ @Autowired
|
|
|
@Qualifier("inquiryDetailServiceImpl")
|
|
|
private InquiryDetailServiceImpl inquiryDetailServiceImpl;
|
|
|
- @Autowired
|
|
|
+ @Autowired
|
|
|
@Qualifier("inquiryReportServiceImpl")
|
|
|
private InquiryReportServiceImpl inquiryReportServiceImpl;
|
|
|
|
|
|
/**
|
|
|
* 问诊记录保存
|
|
|
+ *
|
|
|
* @param saveInquiryVO
|
|
|
* @return
|
|
|
*/
|
|
|
- public SaveInquiryDTO saveInquiry(SaveInquiryVO saveInquiryVO){
|
|
|
- SaveInquiryDTO saveInquiryDTO = new SaveInquiryDTO();
|
|
|
+ public SaveInquiryDTO saveInquiry(SaveInquiryVO saveInquiryVO) {
|
|
|
+ SaveInquiryDTO saveInquiryDTO = new SaveInquiryDTO();
|
|
|
Date now = DateUtil.now();
|
|
|
-
|
|
|
+
|
|
|
QueryWrapper<InquiryInfo> inquiryInfoQe = new QueryWrapper<>();
|
|
|
inquiryInfoQe.eq("is_deleted", IsDeleteEnum.N.getKey());
|
|
|
inquiryInfoQe.eq("hospital_id", saveInquiryVO.getHospitalId());
|
|
@@ -68,156 +68,158 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
|
|
|
inquiryInfoQe.eq("patient_id", saveInquiryVO.getPatientId());
|
|
|
inquiryInfoQe.eq("inquiry_code", saveInquiryVO.getInquiryCode());
|
|
|
InquiryInfo inquiryInfo = this.getOne(inquiryInfoQe);
|
|
|
-
|
|
|
- if(inquiryInfo==null){
|
|
|
- inquiryInfo = new InquiryInfo();
|
|
|
- inquiryInfo.setGmtCreate(now);
|
|
|
- }else{
|
|
|
- QueryWrapper<InquiryDetail> inquiryDetailQe = new QueryWrapper<>();
|
|
|
- inquiryDetailQe.eq("inquiry_id", inquiryInfo.getId());
|
|
|
- inquiryDetailFacade.remove(inquiryDetailQe);
|
|
|
-
|
|
|
- QueryWrapper<InquiryReport> inquiryReportQe = new QueryWrapper<>();
|
|
|
- inquiryReportQe.eq("inquiry_id", inquiryInfo.getId());
|
|
|
- inquiryReportFacade.remove(inquiryReportQe);
|
|
|
+
|
|
|
+ if (inquiryInfo == null) {
|
|
|
+ inquiryInfo = new InquiryInfo();
|
|
|
+ inquiryInfo.setGmtCreate(now);
|
|
|
+ } else {
|
|
|
+ QueryWrapper<InquiryDetail> inquiryDetailQe = new QueryWrapper<>();
|
|
|
+ inquiryDetailQe.eq("inquiry_id", inquiryInfo.getId());
|
|
|
+ inquiryDetailFacade.remove(inquiryDetailQe);
|
|
|
+
|
|
|
+ QueryWrapper<InquiryReport> inquiryReportQe = new QueryWrapper<>();
|
|
|
+ inquiryReportQe.eq("inquiry_id", inquiryInfo.getId());
|
|
|
+ inquiryReportFacade.remove(inquiryReportQe);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
BeanUtil.copyProperties(saveInquiryVO, inquiryInfo);
|
|
|
inquiryInfo.setGmtModified(now);
|
|
|
saveOrUpdate(inquiryInfo);
|
|
|
-
|
|
|
+
|
|
|
Long inquiryId = inquiryInfo.getId();
|
|
|
-
|
|
|
+
|
|
|
List<InquiryDetail> inquiryDetailList = BeanUtil.listCopyTo(saveInquiryVO.getDetailList(), InquiryDetail.class);
|
|
|
- inquiryDetailList.forEach(i->{
|
|
|
- i.setInquiryId(inquiryId);
|
|
|
+ inquiryDetailList.forEach(i -> {
|
|
|
+ i.setInquiryId(inquiryId);
|
|
|
i.setGmtCreate(now);
|
|
|
i.setGmtModified(now);
|
|
|
});
|
|
|
inquiryDetailServiceImpl.saveBatch(inquiryDetailList);
|
|
|
-
|
|
|
+
|
|
|
List<InquiryReport> inquiryReportList = BeanUtil.listCopyTo(saveInquiryVO.getReportList(), InquiryReport.class);
|
|
|
- inquiryReportList.forEach(i->{
|
|
|
- i.setInquiryId(inquiryId);
|
|
|
+ inquiryReportList.forEach(i -> {
|
|
|
+ i.setInquiryId(inquiryId);
|
|
|
i.setGmtCreate(now);
|
|
|
i.setGmtModified(now);
|
|
|
});
|
|
|
inquiryReportServiceImpl.saveBatch(inquiryReportList);
|
|
|
-
|
|
|
+
|
|
|
saveInquiryDTO.setInquiryId(inquiryId);
|
|
|
-
|
|
|
- return saveInquiryDTO;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
+
|
|
|
+ return saveInquiryDTO;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 历史病历列表
|
|
|
+ *
|
|
|
* @param hisInquirysVO
|
|
|
* @return
|
|
|
*/
|
|
|
public List<HisInquiryDTO> hisInquirys(HisInquirysVO hisInquirysVO) {
|
|
|
- if(hisInquirysVO.getHospitalId()==null&&StringUtil.isBlank(hisInquirysVO.getHospitalCode())){
|
|
|
- throw new CommonException(CommonErrorCode.PARAM_IS_NULL,"医院信息(医院id或者医院编码)必传!");
|
|
|
- }
|
|
|
-
|
|
|
+ if (hisInquirysVO.getHospitalId() == null && StringUtil.isBlank(hisInquirysVO.getHospitalCode())) {
|
|
|
+ throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "医院信息(医院id或者医院编码)必传!");
|
|
|
+ }
|
|
|
+
|
|
|
QueryWrapper<InquiryInfo> inquiryInfoQe = new QueryWrapper<InquiryInfo>();
|
|
|
inquiryInfoQe.eq("is_deleted", IsDeleteEnum.N.getKey());
|
|
|
- inquiryInfoQe.eq(hisInquirysVO.getHospitalId()!=null, "hospital_id", hisInquirysVO.getHospitalId());
|
|
|
+ inquiryInfoQe.eq(hisInquirysVO.getHospitalId() != null, "hospital_id", hisInquirysVO.getHospitalId());
|
|
|
inquiryInfoQe.eq(StringUtil.isNotBlank(hisInquirysVO.getHospitalCode()), "hospital_code", hisInquirysVO.getHospitalCode());
|
|
|
- inquiryInfoQe.eq(hisInquirysVO.getHospitalDeptId()!=null, "hospital_dept_id", hisInquirysVO.getHospitalDeptId());
|
|
|
+ inquiryInfoQe.eq(hisInquirysVO.getHospitalDeptId() != null, "hospital_dept_id", hisInquirysVO.getHospitalDeptId());
|
|
|
inquiryInfoQe.eq(StringUtil.isNotBlank(hisInquirysVO.getHospitalDeptCode()), "hospital_dept_code", hisInquirysVO.getHospitalDeptCode());
|
|
|
- inquiryInfoQe.eq(hisInquirysVO.getDoctorId()!=null, "doctor_id", hisInquirysVO.getDoctorId());
|
|
|
+ inquiryInfoQe.eq(hisInquirysVO.getDoctorId() != null, "doctor_id", hisInquirysVO.getDoctorId());
|
|
|
inquiryInfoQe.eq(StringUtil.isNotBlank(hisInquirysVO.getDoctorCode()), "doctor_code", hisInquirysVO.getDoctorCode());
|
|
|
- inquiryInfoQe.eq(hisInquirysVO.getPatientId()!=null, "patient_id", hisInquirysVO.getPatientId());
|
|
|
+ inquiryInfoQe.eq(hisInquirysVO.getPatientId() != null, "patient_id", hisInquirysVO.getPatientId());
|
|
|
inquiryInfoQe.eq(StringUtil.isNotBlank(hisInquirysVO.getPatientCode()), "patient_code", hisInquirysVO.getPatientCode());
|
|
|
inquiryInfoQe.eq(StringUtil.isNotBlank(hisInquirysVO.getPatientIdNo()), "patient_id_no", hisInquirysVO.getPatientIdNo());
|
|
|
- inquiryInfoQe.eq(hisInquirysVO.getType()!=null, "type", hisInquirysVO.getType());
|
|
|
-
|
|
|
- inquiryInfoQe.ge(hisInquirysVO.getStartDate()!=null, "gmt_create", hisInquirysVO.getStartDate());
|
|
|
- inquiryInfoQe.le(hisInquirysVO.getEndDate()!=null, "gmt_create", hisInquirysVO.getEndDate());
|
|
|
-
|
|
|
- if(hisInquirysVO.getOrderType()==null||hisInquirysVO.getOrderType()==1) {
|
|
|
- inquiryInfoQe.orderByDesc("gmt_modified");
|
|
|
- }else if(hisInquirysVO.getOrderType()==2){
|
|
|
- inquiryInfoQe.orderByAsc("gmt_modified");
|
|
|
- }else if(hisInquirysVO.getOrderType()==3){
|
|
|
- inquiryInfoQe.orderByDesc("inquiry_code");
|
|
|
- }else if(hisInquirysVO.getOrderType()==4){
|
|
|
- inquiryInfoQe.orderByAsc("inquiry_code");
|
|
|
+ inquiryInfoQe.eq(hisInquirysVO.getType() != null, "type", hisInquirysVO.getType());
|
|
|
+
|
|
|
+ inquiryInfoQe.ge(hisInquirysVO.getStartDate() != null, "gmt_create", hisInquirysVO.getStartDate());
|
|
|
+ inquiryInfoQe.le(hisInquirysVO.getEndDate() != null, "gmt_create", hisInquirysVO.getEndDate());
|
|
|
+
|
|
|
+ if (hisInquirysVO.getOrderType() == null || hisInquirysVO.getOrderType() == 1) {
|
|
|
+ inquiryInfoQe.orderByDesc("gmt_modified");
|
|
|
+ } else if (hisInquirysVO.getOrderType() == 2) {
|
|
|
+ inquiryInfoQe.orderByAsc("gmt_modified");
|
|
|
+ } else if (hisInquirysVO.getOrderType() == 3) {
|
|
|
+ inquiryInfoQe.orderByDesc("inquiry_code");
|
|
|
+ } else if (hisInquirysVO.getOrderType() == 4) {
|
|
|
+ inquiryInfoQe.orderByAsc("inquiry_code");
|
|
|
}
|
|
|
|
|
|
List<HisInquiryDTO> hisInquiryDTOList = BeanUtil.listCopyTo(list(inquiryInfoQe), HisInquiryDTO.class);
|
|
|
- hisInquiryDTOList.forEach(i->{
|
|
|
- i.setPatientSexMsg(SexEnum.getName(i.getPatientSex()));
|
|
|
- i.setInquiryDate(i.getGmtModified());
|
|
|
- i.setInquiryTime(i.getGmtModified());
|
|
|
- i.setPatientAge(DateUtil.yearCompare(i.getPatientBirthday(), DateUtil.now()));
|
|
|
+ hisInquiryDTOList.forEach(i -> {
|
|
|
+ i.setPatientSexMsg(SexEnum.getName(i.getPatientSex()));
|
|
|
+ i.setInquiryDate(i.getGmtModified());
|
|
|
+ i.setInquiryTime(i.getGmtModified());
|
|
|
+ i.setPatientAge(DateUtil.yearCompare(i.getPatientBirthday(), DateUtil.now()));
|
|
|
});
|
|
|
|
|
|
return hisInquiryDTOList;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 病历详情
|
|
|
+ *
|
|
|
* @param getInquiryDetailVO
|
|
|
* @return
|
|
|
*/
|
|
|
public GetInquiryDetailDTO getInquiryDetail(GetInquiryDetailVO getInquiryDetailVO) {
|
|
|
- if(getInquiryDetailVO.getHospitalId()==null&&StringUtil.isBlank(getInquiryDetailVO.getHospitalCode())){
|
|
|
- throw new CommonException(CommonErrorCode.PARAM_IS_NULL,"医院信息(医院id或者医院编码)必传!");
|
|
|
- }
|
|
|
- if(getInquiryDetailVO.getHospitalDeptId()==null&&StringUtil.isBlank(getInquiryDetailVO.getHospitalDeptCode())){
|
|
|
- throw new CommonException(CommonErrorCode.PARAM_IS_NULL,"科室信息(科室id或者科室编码)必传!");
|
|
|
- }
|
|
|
- if(getInquiryDetailVO.getDoctorId()==null&&StringUtil.isBlank(getInquiryDetailVO.getDoctorCode())){
|
|
|
- throw new CommonException(CommonErrorCode.PARAM_IS_NULL,"医生信息(医生id或者医生编码)必传!");
|
|
|
- }
|
|
|
- if(getInquiryDetailVO.getPatientId()==null&&StringUtil.isBlank(getInquiryDetailVO.getPatientCode())&&StringUtil.isBlank(getInquiryDetailVO.getPatientIdNo())){
|
|
|
- throw new CommonException(CommonErrorCode.PARAM_IS_NULL,"患者信息(患者id或者患者编码或者患者病历号)必传!");
|
|
|
- }
|
|
|
-
|
|
|
- QueryWrapper<InquiryInfo> inquiryInfoQe = new QueryWrapper<InquiryInfo>();
|
|
|
+ if (getInquiryDetailVO.getHospitalId() == null && StringUtil.isBlank(getInquiryDetailVO.getHospitalCode())) {
|
|
|
+ throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "医院信息(医院id或者医院编码)必传!");
|
|
|
+ }
|
|
|
+ if (getInquiryDetailVO.getHospitalDeptId() == null && StringUtil.isBlank(getInquiryDetailVO.getHospitalDeptCode())) {
|
|
|
+ throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "科室信息(科室id或者科室编码)必传!");
|
|
|
+ }
|
|
|
+ if (getInquiryDetailVO.getDoctorId() == null && StringUtil.isBlank(getInquiryDetailVO.getDoctorCode())) {
|
|
|
+ throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "医生信息(医生id或者医生编码)必传!");
|
|
|
+ }
|
|
|
+ if (getInquiryDetailVO.getPatientId() == null && StringUtil.isBlank(getInquiryDetailVO.getPatientCode()) && StringUtil.isBlank(getInquiryDetailVO.getPatientIdNo())) {
|
|
|
+ throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "患者信息(患者id或者患者编码或者患者病历号)必传!");
|
|
|
+ }
|
|
|
+
|
|
|
+ QueryWrapper<InquiryInfo> inquiryInfoQe = new QueryWrapper<InquiryInfo>();
|
|
|
inquiryInfoQe.eq("is_deleted", IsDeleteEnum.N.getKey());
|
|
|
- inquiryInfoQe.eq(getInquiryDetailVO.getHospitalId()!=null, "hospital_id", getInquiryDetailVO.getHospitalId());
|
|
|
+ inquiryInfoQe.eq(getInquiryDetailVO.getHospitalId() != null, "hospital_id", getInquiryDetailVO.getHospitalId());
|
|
|
inquiryInfoQe.eq(StringUtil.isNotBlank(getInquiryDetailVO.getHospitalCode()), "hospital_code", getInquiryDetailVO.getHospitalCode());
|
|
|
- inquiryInfoQe.eq(getInquiryDetailVO.getHospitalDeptId()!=null, "hospital_dept_id", getInquiryDetailVO.getHospitalDeptId());
|
|
|
+ inquiryInfoQe.eq(getInquiryDetailVO.getHospitalDeptId() != null, "hospital_dept_id", getInquiryDetailVO.getHospitalDeptId());
|
|
|
inquiryInfoQe.eq(StringUtil.isNotBlank(getInquiryDetailVO.getHospitalDeptCode()), "hospital_dept_code", getInquiryDetailVO.getHospitalDeptCode());
|
|
|
- inquiryInfoQe.eq(getInquiryDetailVO.getDoctorId()!=null, "doctor_id", getInquiryDetailVO.getDoctorId());
|
|
|
+ inquiryInfoQe.eq(getInquiryDetailVO.getDoctorId() != null, "doctor_id", getInquiryDetailVO.getDoctorId());
|
|
|
inquiryInfoQe.eq(StringUtil.isNotBlank(getInquiryDetailVO.getDoctorCode()), "doctor_code", getInquiryDetailVO.getDoctorCode());
|
|
|
- inquiryInfoQe.eq(getInquiryDetailVO.getPatientId()!=null, "patient_id", getInquiryDetailVO.getPatientId());
|
|
|
+ inquiryInfoQe.eq(getInquiryDetailVO.getPatientId() != null, "patient_id", getInquiryDetailVO.getPatientId());
|
|
|
inquiryInfoQe.eq(StringUtil.isNotBlank(getInquiryDetailVO.getPatientCode()), "patient_code", getInquiryDetailVO.getPatientCode());
|
|
|
inquiryInfoQe.eq(StringUtil.isNotBlank(getInquiryDetailVO.getPatientIdNo()), "patient_id_no", getInquiryDetailVO.getPatientIdNo());
|
|
|
inquiryInfoQe.eq("inquiry_code", getInquiryDetailVO.getInquiryCode());
|
|
|
-
|
|
|
+
|
|
|
InquiryInfo inquiryInfo = this.getOne(inquiryInfoQe);
|
|
|
-
|
|
|
+
|
|
|
QueryWrapper<InquiryDetail> inquiryDetailQe = new QueryWrapper<>();
|
|
|
- inquiryDetailQe.eq("inquiry_id", inquiryInfo.getId());
|
|
|
- inquiryDetailQe.orderByAsc("type");
|
|
|
- List<InquiryDetail> inquiryDetailList = inquiryDetailFacade.list(inquiryDetailQe);
|
|
|
-
|
|
|
- QueryWrapper<InquiryReport> inquiryReportQe = new QueryWrapper<>();
|
|
|
- inquiryReportQe.eq("inquiry_id", inquiryInfo.getId());
|
|
|
- inquiryReportQe.orderByAsc("order_num");
|
|
|
- List<InquiryReport> inquiryReportList = inquiryReportFacade.list(inquiryReportQe);
|
|
|
-
|
|
|
- QueryWrapper<InquiryEvaluator> inquiryEvaluatorQe = new QueryWrapper<>();
|
|
|
- inquiryEvaluatorQe.eq("inquiry_id", inquiryInfo.getId());
|
|
|
- inquiryEvaluatorQe.orderByDesc("gmt_modified");
|
|
|
- inquiryEvaluatorQe.last("limit 0,1");
|
|
|
- List<InquiryEvaluator> inquiryEvaluatorList = inquiryEvaluatorFacade.list(inquiryEvaluatorQe);
|
|
|
-
|
|
|
+ inquiryDetailQe.eq("inquiry_id", inquiryInfo.getId());
|
|
|
+ inquiryDetailQe.orderByAsc("type");
|
|
|
+ List<InquiryDetail> inquiryDetailList = inquiryDetailFacade.list(inquiryDetailQe);
|
|
|
+
|
|
|
+ QueryWrapper<InquiryReport> inquiryReportQe = new QueryWrapper<>();
|
|
|
+ inquiryReportQe.eq("inquiry_id", inquiryInfo.getId());
|
|
|
+ inquiryReportQe.orderByAsc("order_num");
|
|
|
+ List<InquiryReport> inquiryReportList = inquiryReportFacade.list(inquiryReportQe);
|
|
|
+
|
|
|
+ QueryWrapper<InquiryEvaluator> inquiryEvaluatorQe = new QueryWrapper<>();
|
|
|
+ inquiryEvaluatorQe.eq("inquiry_id", inquiryInfo.getId());
|
|
|
+ inquiryEvaluatorQe.orderByDesc("gmt_modified");
|
|
|
+ inquiryEvaluatorQe.last("limit 0,1");
|
|
|
+ List<InquiryEvaluator> inquiryEvaluatorList = inquiryEvaluatorFacade.list(inquiryEvaluatorQe);
|
|
|
+
|
|
|
GetInquiryDetailDTO getInquiryDetailDTO = new GetInquiryDetailDTO();
|
|
|
BeanUtil.copyProperties(inquiryInfo, getInquiryDetailDTO);
|
|
|
getInquiryDetailDTO.setPatientSexMsg(SexEnum.getName(inquiryInfo.getPatientSex()));
|
|
|
getInquiryDetailDTO.setInquiryDate(inquiryInfo.getGmtModified());
|
|
|
getInquiryDetailDTO.setInquiryTime(inquiryInfo.getGmtModified());
|
|
|
getInquiryDetailDTO.setPatientAge(DateUtil.yearCompare(inquiryInfo.getPatientBirthday(), DateUtil.now()));
|
|
|
-
|
|
|
+
|
|
|
getInquiryDetailDTO.setChiefComplaint(inquiryDetailList.get(0).getContentValue());
|
|
|
getInquiryDetailDTO.setXbs(inquiryDetailList.get(1).getContentValue());
|
|
|
getInquiryDetailDTO.setQts(inquiryDetailList.get(2).getContentValue());
|
|
|
getInquiryDetailDTO.setSupplement(inquiryDetailList.get(3).getContentValue());
|
|
|
- getInquiryDetailDTO.setPhysicalRes(ListUtil.isNotEmpty(inquiryEvaluatorList)?inquiryEvaluatorList.get(0).getPhysicalRes():null);
|
|
|
+ getInquiryDetailDTO.setPhysicalRes(ListUtil.isNotEmpty(inquiryEvaluatorList) ? inquiryEvaluatorList.get(0).getPhysicalRes() : null);
|
|
|
getInquiryDetailDTO.setImageList(BeanUtil.listCopyTo(inquiryReportList, GetInquiryDetailImgDTO.class));
|
|
|
|
|
|
return getInquiryDetailDTO;
|