|
@@ -5,28 +5,34 @@ import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Optional;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.diagbot.dto.GetInquiryDetailDTO;
|
|
|
import com.diagbot.dto.HisInquiryDTO;
|
|
|
import com.diagbot.dto.ReadInquiryDTO;
|
|
|
import com.diagbot.dto.SaveInquiryDTO;
|
|
|
+import com.diagbot.entity.DoctorInfo;
|
|
|
+import com.diagbot.entity.HospitalDept;
|
|
|
import com.diagbot.entity.HospitalInfo;
|
|
|
import com.diagbot.entity.InquiryDetail;
|
|
|
import com.diagbot.entity.InquiryInfo;
|
|
|
import com.diagbot.entity.PatientInfo;
|
|
|
+import com.diagbot.enums.SexTypeEnum;
|
|
|
import com.diagbot.service.impl.InquiryInfoServiceImpl;
|
|
|
import com.diagbot.util.BeanUtil;
|
|
|
+import com.diagbot.util.DateUtil;
|
|
|
import com.diagbot.util.StringUtil;
|
|
|
import com.diagbot.vo.GetInquiryDetailVO;
|
|
|
import com.diagbot.vo.HisInquirysVO;
|
|
|
import com.diagbot.vo.ReadInquiryVO;
|
|
|
import com.diagbot.vo.SaveInquiryDetailVO;
|
|
|
import com.diagbot.vo.SaveInquiryVO;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
/**
|
|
|
* @Description
|
|
@@ -42,6 +48,12 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
|
|
|
private HospitalInfoFacade hospitalInfoFacade;
|
|
|
@Autowired
|
|
|
private PatientInfoFacade patientInfoFacade;
|
|
|
+ @Autowired
|
|
|
+ private DoctorInfoFacade doctorInfoFacade;
|
|
|
+ @Autowired
|
|
|
+ private HospitalDeptFacade hospitalDeptFacade;
|
|
|
+
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 问诊记录保存
|
|
@@ -137,14 +149,19 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
|
|
|
*/
|
|
|
public List<HisInquiryDTO> hisInquirys(HisInquirysVO hisInquirysVO){
|
|
|
QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
|
|
|
+ queryWrapper.eq("is_deleted", "N");
|
|
|
queryWrapper.eq("hospital_id", hisInquirysVO.getHospitalId());
|
|
|
queryWrapper.eq("hospital_dept_id", hisInquirysVO.getHospitalDeptId());
|
|
|
queryWrapper.eq("doctor_id", hisInquirysVO.getDoctorId());
|
|
|
- queryWrapper.eq("type", hisInquirysVO.getType());
|
|
|
- queryWrapper.eq("sign", hisInquirysVO.getSign());
|
|
|
if(hisInquirysVO.getPatientId()!=null){
|
|
|
queryWrapper.eq("patient_id", hisInquirysVO.getPatientId());
|
|
|
}
|
|
|
+ if(hisInquirysVO.getType()!=null){
|
|
|
+ queryWrapper.eq("type", hisInquirysVO.getType());
|
|
|
+ }
|
|
|
+ if(hisInquirysVO.getSign()!=null){
|
|
|
+ queryWrapper.eq("sign", hisInquirysVO.getSign());
|
|
|
+ }
|
|
|
if(hisInquirysVO.getStartDate()!=null){
|
|
|
queryWrapper.ge("gmt_create", hisInquirysVO.getStartDate());
|
|
|
}
|
|
@@ -156,10 +173,41 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
|
|
|
}else if(hisInquirysVO.getOrderType()==2){
|
|
|
queryWrapper.orderByAsc("gmt_create");
|
|
|
}
|
|
|
-
|
|
|
List<InquiryInfo> inquiryInfoList = this.list(queryWrapper);
|
|
|
-
|
|
|
- List<HisInquiryDTO> hisInquiryDTOList = BeanUtil.listCopyTo(inquiryInfoList, HisInquiryDTO.class);
|
|
|
+ if(inquiryInfoList.size()==0){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Long> hospitalDeptIdList = inquiryInfoList.stream().map(i->i.getHospitalDeptId()).collect(Collectors.toList());
|
|
|
+ List<Long> doctorIdList = inquiryInfoList.stream().map(i->i.getDoctorId()).collect(Collectors.toList());
|
|
|
+ List<Long> patientIdList = inquiryInfoList.stream().map(i->i.getPatientId()).collect(Collectors.toList());
|
|
|
+ List<Long> inquiryIdList = inquiryInfoList.stream().map(i->i.getId()).collect(Collectors.toList());
|
|
|
+
|
|
|
+ Map<Long,HospitalDept> hospitalDeptMap = hospitalDeptFacade.listByIds(hospitalDeptIdList).stream().filter(i->i.getIsDeleted().equals("N")&&i.getStatus()==1).collect(Collectors.toMap(HospitalDept::getId, i->i));
|
|
|
+ Map<Long,DoctorInfo> doctorInfoMap = doctorInfoFacade.listByIds(doctorIdList).stream().filter(i->i.getIsDeleted().equals("N")).collect(Collectors.toMap(DoctorInfo::getId, i->i));
|
|
|
+ Map<Long,PatientInfo> patientInfoMap = patientInfoFacade.listByIds(patientIdList).stream().filter(i->i.getIsDeleted().equals("N")).collect(Collectors.toMap(PatientInfo::getId, i->i));
|
|
|
+ Map<Long,List<InquiryDetail>> inquiryDetailMap = inquiryDetailFacade.getDetailsByInquryIds(inquiryIdList);
|
|
|
+
|
|
|
+ List<HisInquiryDTO> hisInquiryDTOList = new ArrayList<>();
|
|
|
+ inquiryInfoList.forEach(i->{
|
|
|
+ HisInquiryDTO hisInquiryDTO = new HisInquiryDTO();
|
|
|
+ BeanUtil.copyProperties(i, hisInquiryDTO);
|
|
|
+ hisInquiryDTO.setInquiryDate(i.getGmtCreate());
|
|
|
+ hisInquiryDTO.setInquiryTime(i.getGmtCreate());
|
|
|
+ hisInquiryDTO.setHospitalDeptName(Optional.ofNullable(hospitalDeptMap.get(i.getHospitalDeptId())).map(t->t.getName()).orElse(null));
|
|
|
+ hisInquiryDTO.setDoctorName(Optional.ofNullable(doctorInfoMap.get(i.getDoctorId())).map(t->t.getName()).orElse(null));
|
|
|
+ PatientInfo patientInfo = patientInfoMap.get(i.getPatientId());
|
|
|
+ if(patientInfo!=null){
|
|
|
+ hisInquiryDTO.setPatientName(patientInfo.getName());
|
|
|
+ hisInquiryDTO.setPatientIdNo(patientInfo.getIdNo());
|
|
|
+ hisInquiryDTO.setPatientSex(SexTypeEnum.getName(patientInfo.getSex()));
|
|
|
+ hisInquiryDTO.setPatientAge(DateUtil.yearCompare(patientInfo.getBirthday(),DateUtil.now()));
|
|
|
+ }
|
|
|
+
|
|
|
+ hisInquiryDTO.setDetailList(inquiryDetailMap.get(i.getId()));
|
|
|
+ hisInquiryDTOList.add(hisInquiryDTO);
|
|
|
+ });
|
|
|
+
|
|
|
|
|
|
return hisInquiryDTOList;
|
|
|
}
|