StrTransferOutNoteFacade.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.diagbot.facade;
  2. import com.diagbot.dto.AnalyzeRunDTO;
  3. import com.diagbot.dto.RespDTO;
  4. import com.diagbot.entity.MedicalRecord;
  5. import com.diagbot.entity.StrTransferOutNote;
  6. import com.diagbot.exception.CommonErrorCode;
  7. import com.diagbot.exception.CommonException;
  8. import com.diagbot.service.impl.StrTransferOutNoteServiceImpl;
  9. import com.diagbot.vo.AnalyzeRunVO;
  10. import com.diagbot.vo.str.StrTransferOutNoteVO;
  11. import com.fasterxml.jackson.core.JsonProcessingException;
  12. import com.fasterxml.jackson.databind.ObjectMapper;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Component;
  15. /**
  16. * @Description:
  17. * @author: cy
  18. * @time: 2020/9/23 11:39
  19. */
  20. @Component
  21. public class StrTransferOutNoteFacade extends StrTransferOutNoteServiceImpl {
  22. @Autowired
  23. private MedicalRecordFacade medicalRecordFacade;
  24. @Autowired
  25. private BehospitalInfoFacade behospitalInfoFacade;
  26. public RespDTO<StrTransferOutNoteVO> sendTransferOutNoteInfos(StrTransferOutNote strTransferOutNote) {
  27. try {
  28. //根据病历id、病历模版id和记录时间查询文书记录id
  29. MedicalRecord medicalRecord = medicalRecordFacade.lambdaQuery()
  30. .like(MedicalRecord::getBehospitalCode, strTransferOutNote.getBehospitalCode())
  31. .eq(MedicalRecord::getModeId, 27)//转出记录的病历模版id为27,写死
  32. .eq(MedicalRecord::getRecDate, strTransferOutNote.getRecDate())
  33. .one();
  34. //病历id合法性校验
  35. if(medicalRecord == null){
  36. throw new CommonException(CommonErrorCode.NOT_EXISTS);
  37. }
  38. strTransferOutNote.setRecId(medicalRecord.getRecId());
  39. //将实体类字段转json
  40. ObjectMapper objectWriter = new ObjectMapper();
  41. String strResult = objectWriter.writeValueAsString(strTransferOutNote);
  42. strTransferOutNote.setWholeData(strResult);
  43. //修改或更新表中记录
  44. boolean saveOrUpdate = this.saveOrUpdate(strTransferOutNote);
  45. //修改评分数据,并进行质控评分
  46. if(saveOrUpdate){
  47. AnalyzeRunVO analyzeRunVO=new AnalyzeRunVO();
  48. analyzeRunVO.setBehospitalCode(medicalRecord.getBehospitalCode());
  49. analyzeRunVO.setHospitalId(medicalRecord.getHospitalId());
  50. analyzeRunVO.setModeId(medicalRecord.getModeId());
  51. AnalyzeRunDTO analyzeRunDTO=behospitalInfoFacade.analyzeRun(analyzeRunVO);
  52. }
  53. return saveOrUpdate == true? RespDTO.onSuc("操作正常!") : RespDTO.onError("保存记录失败!");
  54. } catch (JsonProcessingException e) {
  55. throw new CommonException(CommonErrorCode.INSERT_DATA_FAILED);
  56. }
  57. }
  58. }