|
@@ -23,6 +23,7 @@ import com.diagbot.util.HttpUtils;
|
|
|
import com.diagbot.util.IdCard;
|
|
|
import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.StringUtil;
|
|
|
+import com.diagbot.vo.CheckAndSyncVO;
|
|
|
import com.diagbot.vo.GetInquiryIdVO;
|
|
|
import com.diagbot.vo.GetInquiryVO;
|
|
|
import com.diagbot.vo.HospitalVO;
|
|
@@ -30,6 +31,7 @@ import com.diagbot.vo.InquiryCodeVO;
|
|
|
import com.diagbot.vo.InquiryDetailVO;
|
|
|
import com.diagbot.vo.InquiryPatInquiryVO;
|
|
|
import com.diagbot.vo.InquiryPatVO;
|
|
|
+import com.diagbot.vo.SaveInquiry2VO;
|
|
|
import com.diagbot.vo.SaveInquiryDetailVO;
|
|
|
import com.diagbot.vo.SaveInquiryVO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -158,14 +160,24 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
|
|
|
|
|
|
public GetInquiryDTO getInquiry(GetInquiryVO getInquiryVO) {
|
|
|
GetInquiryDTO getInquiryDTO = new GetInquiryDTO();
|
|
|
-
|
|
|
- InquiryInfo inquiryInfo = this.getOne(new QueryWrapper<InquiryInfo>()
|
|
|
- .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
- .eq("hospital_code", getInquiryVO.getHospitalCode())
|
|
|
- .eq("inquiry_code", getInquiryVO.getInquiryCode())
|
|
|
- .orderByDesc("gmt_modified"), false
|
|
|
- );
|
|
|
-
|
|
|
+ InquiryInfo inquiryInfo = null;
|
|
|
+ if (StringUtil.isNotBlank(getInquiryVO.getInquiryCode())) {
|
|
|
+ inquiryInfo = this.getOne(new QueryWrapper<InquiryInfo>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("hospital_code", getInquiryVO.getHospitalCode())
|
|
|
+ .eq("inquiry_code", getInquiryVO.getInquiryCode())
|
|
|
+ .orderByDesc("gmt_modified"), false
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if (inquiryInfo == null) {
|
|
|
+ inquiryInfo = this.getOne(new QueryWrapper<InquiryInfo>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("hospital_code", getInquiryVO.getHospitalCode())
|
|
|
+ .eq("id_type", getInquiryVO.getIdType())
|
|
|
+ .eq("id_num", getInquiryVO.getIdNum())
|
|
|
+ .orderByDesc("gmt_modified"), false
|
|
|
+ );
|
|
|
+ }
|
|
|
if (null != inquiryInfo) {
|
|
|
BeanUtil.copyProperties(inquiryInfo, getInquiryDTO);
|
|
|
List<InquiryDetail> list = inquiryDetailFacade.list(new QueryWrapper<InquiryDetail>()
|
|
@@ -188,7 +200,7 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
|
|
|
getInquiryDTO.setInquiryDetailDTOS(inquiryDetailDTOS);
|
|
|
}
|
|
|
} else {
|
|
|
- throw new CommonException(CommonErrorCode.NOT_EXISTS, "该医院下该就诊序列号无病历信息!");
|
|
|
+ throw new CommonException(CommonErrorCode.NOT_EXISTS, "该医院下无病历信息!");
|
|
|
}
|
|
|
return getInquiryDTO;
|
|
|
}
|
|
@@ -243,4 +255,102 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
|
|
|
);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public Boolean checkAndSync(CheckAndSyncVO checkAndSyncVO) {
|
|
|
+ Date now = DateUtil.now();
|
|
|
+ String dateStr = DateUtil.formatDate(now);
|
|
|
+ List<InquiryInfo> inquiryInfoList = this.list(new QueryWrapper<InquiryInfo>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("hospital_code", checkAndSyncVO.getHospitalCode())
|
|
|
+ .eq("id_type", checkAndSyncVO.getIdType())
|
|
|
+ .eq("id_num", checkAndSyncVO.getIdNum())
|
|
|
+ .eq("source", checkAndSyncVO.getSource())
|
|
|
+ .apply("date_format(gmt_create, '%Y-%m-%d')={0}", dateStr)
|
|
|
+ );
|
|
|
+ // 未填写
|
|
|
+ if (ListUtil.isEmpty(inquiryInfoList)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+// // 已填写
|
|
|
+// List<String> inquiryCode = inquiryInfoList.stream().map(r -> r.getInquiryCode()).collect(Collectors.toList());
|
|
|
+// if (inquiryCode.contains(checkAndSyncVO.getInquiryCode())) {
|
|
|
+// return true; // 当前病历已同步
|
|
|
+// }
|
|
|
+// // 添加主表
|
|
|
+// InquiryInfo inquiryInfoSave = new InquiryInfo();
|
|
|
+// BeanUtil.copyProperties(checkAndSyncVO, inquiryInfoSave);
|
|
|
+// inquiryInfoSave.setIp(HttpUtils.getIpAddress());
|
|
|
+// inquiryInfoSave.setGmtCreate(now);
|
|
|
+// inquiryInfoSave.setGmtModified(now);
|
|
|
+// this.save(inquiryInfoSave);
|
|
|
+//
|
|
|
+// // 添加明细表
|
|
|
+// List<InquiryDetail> inquiryDetailList = inquiryDetailFacade.list(new QueryWrapper<InquiryDetail>()
|
|
|
+// .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+// .eq("inquiry_id", inquiryInfoList.get(0).getId())
|
|
|
+// );
|
|
|
+// // 添加明细表
|
|
|
+// for (InquiryDetail inquiryDetail : inquiryDetailList) {
|
|
|
+// inquiryDetail.setId(null);
|
|
|
+// inquiryDetail.setInquiryId(inquiryInfoSave.getId());
|
|
|
+// inquiryDetail.setGmtCreate(now);
|
|
|
+// inquiryDetail.setGmtModified(now);
|
|
|
+// }
|
|
|
+// inquiryDetailService.saveBatch(inquiryDetailList);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public Long saveInquiry2(SaveInquiry2VO saveInquiry2VO) {
|
|
|
+ if (StringUtil.isBlank(saveInquiry2VO.getHospitalCode())) {
|
|
|
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "医院名称不能为空!");
|
|
|
+ }
|
|
|
+ Date now = DateUtil.now();
|
|
|
+ String dateStr = DateUtil.formatDate(now);
|
|
|
+ InquiryInfo inquiryInfo = this.getOne(new QueryWrapper<InquiryInfo>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("hospital_code", saveInquiry2VO.getHospitalCode())
|
|
|
+ .eq("id_type", saveInquiry2VO.getIdType())
|
|
|
+ .eq("id_num", saveInquiry2VO.getIdNum())
|
|
|
+ .eq("source", saveInquiry2VO.getSource())
|
|
|
+ .apply("date_format(gmt_create, '%Y-%m-%d')={0}", dateStr)
|
|
|
+ .orderByDesc("gmt_modified"), false
|
|
|
+ );
|
|
|
+ // 已填写
|
|
|
+ if (inquiryInfo != null) {
|
|
|
+ return inquiryInfo.getId();
|
|
|
+ }
|
|
|
+ // 未填写,保存主表
|
|
|
+ InquiryInfo inquiryInfoSave = new InquiryInfo();
|
|
|
+ BeanUtil.copyProperties(saveInquiry2VO, inquiryInfoSave);
|
|
|
+ inquiryInfo.setGmtCreate(now);
|
|
|
+ inquiryInfo.setGmtModified(now);
|
|
|
+ inquiryInfo.setIp(HttpUtils.getIpAddress());
|
|
|
+ save(inquiryInfo);
|
|
|
+
|
|
|
+ // 保存明细表
|
|
|
+ Long id = inquiryInfoSave.getId();
|
|
|
+ List<InquiryDetail> inquiryDetailList = new ArrayList<>();
|
|
|
+ if (ListUtil.isNotEmpty(saveInquiry2VO.getDetailList())) {
|
|
|
+ for (SaveInquiryDetailVO saveInquiryDetailVO : saveInquiry2VO.getDetailList()) {
|
|
|
+ InquiryDetail inquiryDetail = new InquiryDetail();
|
|
|
+ BeanUtil.copyProperties(saveInquiryDetailVO, inquiryDetail);
|
|
|
+ inquiryDetail.setInquiryId(id);
|
|
|
+ inquiryDetail.setGmtCreate(now);
|
|
|
+ inquiryDetail.setGmtModified(now);
|
|
|
+ if (ListUtil.isNotEmpty(saveInquiryDetailVO.getOptions())) {
|
|
|
+ inquiryDetail.setRemark(GsonUtil.toJson(saveInquiryDetailVO.getOptions()));
|
|
|
+ }
|
|
|
+ inquiryDetailList.add(inquiryDetail);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ inquiryDetailService.saveBatch(inquiryDetailList);
|
|
|
+
|
|
|
+ HospitalVO hospitalVO = new HospitalVO();
|
|
|
+ hospitalVO.setHospitalCode(saveInquiry2VO.getHospitalCode());
|
|
|
+ // 保存记录表
|
|
|
+ optInfoFacade.saveOptOnfo(hospitalVO, "2");
|
|
|
+ return id;
|
|
|
+ }
|
|
|
+
|
|
|
}
|