|
@@ -8,16 +8,27 @@ 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;
|
|
|
+import com.diagbot.dto.HisInquiryDTO;
|
|
|
import com.diagbot.dto.SaveInquiryDTO;
|
|
|
import com.diagbot.entity.InquiryDetail;
|
|
|
+import com.diagbot.entity.InquiryEvaluator;
|
|
|
import com.diagbot.entity.InquiryInfo;
|
|
|
import com.diagbot.entity.InquiryReport;
|
|
|
import com.diagbot.enums.IsDeleteEnum;
|
|
|
+import com.diagbot.enums.SexEnum;
|
|
|
+import com.diagbot.exception.CommonErrorCode;
|
|
|
+import com.diagbot.exception.CommonException;
|
|
|
import com.diagbot.service.impl.InquiryDetailServiceImpl;
|
|
|
import com.diagbot.service.impl.InquiryInfoServiceImpl;
|
|
|
import com.diagbot.service.impl.InquiryReportServiceImpl;
|
|
|
import com.diagbot.util.BeanUtil;
|
|
|
import com.diagbot.util.DateUtil;
|
|
|
+import com.diagbot.util.ListUtil;
|
|
|
+import com.diagbot.util.StringUtil;
|
|
|
+import com.diagbot.vo.GetInquiryDetailVO;
|
|
|
+import com.diagbot.vo.HisInquirysVO;
|
|
|
import com.diagbot.vo.SaveInquiryVO;
|
|
|
|
|
|
/**
|
|
@@ -32,6 +43,8 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
|
|
|
@Autowired
|
|
|
private InquiryReportFacade inquiryReportFacade;
|
|
|
@Autowired
|
|
|
+ private InquiryEvaluatorFacade inquiryEvaluatorFacade;
|
|
|
+ @Autowired
|
|
|
@Qualifier("inquiryDetailServiceImpl")
|
|
|
private InquiryDetailServiceImpl inquiryDetailServiceImpl;
|
|
|
@Autowired
|
|
@@ -95,5 +108,119 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
|
|
|
|
|
|
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或者医院编码)必传!");
|
|
|
+ }
|
|
|
+
|
|
|
+ QueryWrapper<InquiryInfo> inquiryInfoQe = new QueryWrapper<InquiryInfo>();
|
|
|
+ inquiryInfoQe.eq("is_deleted", IsDeleteEnum.N.getKey());
|
|
|
+ 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(StringUtil.isNotBlank(hisInquirysVO.getHospitalDeptCode()), "hospital_dept_code", hisInquirysVO.getHospitalDeptCode());
|
|
|
+ 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(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");
|
|
|
+ }
|
|
|
+
|
|
|
+ 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()));
|
|
|
+ });
|
|
|
+
|
|
|
+ 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>();
|
|
|
+ inquiryInfoQe.eq("is_deleted", IsDeleteEnum.N.getKey());
|
|
|
+ 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(StringUtil.isNotBlank(getInquiryDetailVO.getHospitalDeptCode()), "hospital_dept_code", getInquiryDetailVO.getHospitalDeptCode());
|
|
|
+ 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(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);
|
|
|
+
|
|
|
+ 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.setImageList(BeanUtil.listCopyTo(inquiryReportList, GetInquiryDetailImgDTO.class));
|
|
|
+
|
|
|
+ return getInquiryDetailDTO;
|
|
|
+ }
|
|
|
|
|
|
}
|