|
@@ -1,5 +1,6 @@
|
|
|
package com.diagbot.facade;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -11,12 +12,15 @@ import org.springframework.stereotype.Component;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.diagbot.dto.GetExportInquirysDTO;
|
|
|
import com.diagbot.dto.HisInquirysForJzDTO;
|
|
|
import com.diagbot.entity.InquiryDetail;
|
|
|
import com.diagbot.entity.InquiryInfo;
|
|
|
import com.diagbot.entity.PatientInfo;
|
|
|
import com.diagbot.enums.IsDeleteEnum;
|
|
|
import com.diagbot.enums.SexTypeEnum;
|
|
|
+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.util.BeanUtil;
|
|
@@ -25,6 +29,7 @@ import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.vo.AddDiagnoseSecondVO;
|
|
|
import com.diagbot.vo.HisInquirysForJzVO;
|
|
|
import com.diagbot.vo.SaveInquiryToHisVO;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
|
|
|
/**
|
|
|
* @Description: 对接层问诊信息业务逻辑
|
|
@@ -114,7 +119,7 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl{
|
|
|
List<Long> inquiryIdList = hisInquirysForJzDTOList.stream().map(i -> i.getInquiryId()).distinct().collect(Collectors.toList());
|
|
|
|
|
|
Map<Long, PatientInfo> patientInfoMap = patientInfoFacade.patientInfoMapByIds(patientIdList);
|
|
|
- Map<Long, List<InquiryDetail>> inquiryDetailMap = inquiryDetailFacade.getDetailsByInquryIds(inquiryIdList);
|
|
|
+ Map<Long, List<InquiryDetail>> inquiryDetailListMap = inquiryDetailFacade.getDetailsByInquryIds(inquiryIdList);
|
|
|
|
|
|
hisInquirysForJzDTOList.forEach(i -> {
|
|
|
PatientInfo patientInfo = patientInfoMap.get(i.getPatientId());
|
|
@@ -125,7 +130,7 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl{
|
|
|
i.setPatientAge(DateUtil.yearCompare(patientInfo.getBirthday(), DateUtil.now()));
|
|
|
}
|
|
|
|
|
|
- List<InquiryDetail> detailList= inquiryDetailMap.get(i.getInquiryId());
|
|
|
+ List<InquiryDetail> detailList= inquiryDetailListMap.get(i.getInquiryId()).stream().filter(inquiryDetail->inquiryDetail.getType()!=9).collect(Collectors.toList());
|
|
|
i.setDetailList(detailList);
|
|
|
String diagnose = detailList.stream().filter(inquiryDetail->inquiryDetail.getType()==7).map(inquiryDetail->inquiryDetail.getContentValue()).collect(Collectors.toList()).get(0);
|
|
|
i.setDiagnose(diagnose.split(";")[0]);
|
|
@@ -161,6 +166,57 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl{
|
|
|
|
|
|
return inquiryDetailFacade.save(inquiryDetail);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 急诊-获取需要导出的问诊数据
|
|
|
+ *
|
|
|
+ * @param inquiryIds
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<GetExportInquirysDTO> getExportInquirys(List<Long> inquiryIds){
|
|
|
+ List<GetExportInquirysDTO> getExportInquirysDTOList = new ArrayList<>();
|
|
|
+
|
|
|
+ if(inquiryIds.stream().distinct().count()!=inquiryIds.size()){
|
|
|
+ throw new CommonException(CommonErrorCode.PARAM_IS_ERROR);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<InquiryInfo> inquiryInfoList = Lists.newArrayList(listByIds(inquiryIds));
|
|
|
+ if(inquiryInfoList.size()!=inquiryIds.size()){
|
|
|
+ throw new CommonException(CommonErrorCode.PARAM_IS_ERROR);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Long> patientIdList = inquiryInfoList.stream().map(i -> i.getPatientId()).distinct().collect(Collectors.toList());
|
|
|
+ Map<Long, PatientInfo> patientInfoMap = patientInfoFacade.patientInfoMapByIds(patientIdList);
|
|
|
+ Map<Long,InquiryInfo> inquiryInfoMap = inquiryInfoList.stream().collect(Collectors.toMap(InquiryInfo::getId,i->i));
|
|
|
+ Map<Long, List<InquiryDetail>> inquiryDetailListMap = inquiryDetailFacade.getDetailsByInquryIds(inquiryIds);
|
|
|
+
|
|
|
+ Integer lineNum = 1;
|
|
|
+ PatientInfo patientInfo = null;
|
|
|
+ String diagnose = null;
|
|
|
+ for(Long inquiryId : inquiryIds){
|
|
|
+ GetExportInquirysDTO getExportInquirysDTO = new GetExportInquirysDTO();
|
|
|
+ getExportInquirysDTO.setLineNum(lineNum);
|
|
|
+ patientInfo = patientInfoMap.get(inquiryInfoMap.get(inquiryId).getPatientId());
|
|
|
+ if (patientInfo != null) {
|
|
|
+ getExportInquirysDTO.setPatientSex(SexTypeEnum.getName(patientInfo.getSex()));
|
|
|
+ getExportInquirysDTO.setPatientAge(DateUtil.yearCompare(patientInfo.getBirthday(), DateUtil.now()));
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<Integer,String> detailMap = inquiryDetailListMap.get(inquiryId).stream().collect(Collectors.toMap(InquiryDetail::getType, i->i.getContentValue()==null?"":i.getContentValue()));
|
|
|
+ diagnose = detailMap.get(7);
|
|
|
+ detailMap.put(7, detailMap.get(8));
|
|
|
+ if(detailMap.get(9)!=null){
|
|
|
+ diagnose = "";
|
|
|
+ }
|
|
|
+ detailMap.put(8, diagnose);
|
|
|
+ getExportInquirysDTO.setDetailMap(detailMap);
|
|
|
+
|
|
|
+ getExportInquirysDTOList.add(getExportInquirysDTO);
|
|
|
+ lineNum++;
|
|
|
+ }
|
|
|
+
|
|
|
+ return getExportInquirysDTOList;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|