RetrievalFacade.java 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package com.diagbot.facade;
  2. import com.diagbot.client.CdssCoreClient;
  3. import com.diagbot.dto.RespDTO;
  4. import com.diagbot.dto.RetrievalConceptDTO;
  5. import com.diagbot.dto.RetrievalDTO;
  6. import com.diagbot.exception.CommonErrorCode;
  7. import com.diagbot.exception.CommonException;
  8. import com.diagbot.util.RespDTOUtil;
  9. import com.diagbot.util.StringUtil;
  10. import com.diagbot.vo.HospitalCheckVO;
  11. import com.diagbot.vo.RetrievalVO;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Component;
  14. import java.util.ArrayList;
  15. import java.util.List;
  16. /**
  17. * @Description:
  18. * @Author:zhaops
  19. * @time: 2020/8/12 16:44
  20. */
  21. @Component
  22. public class RetrievalFacade {
  23. @Autowired
  24. private CdssCoreClient cdssCoreClient;
  25. @Autowired
  26. private HospitalInfoFacade hospitalInfoFacade;
  27. @Autowired
  28. private MappingConfigFacade mappingConfigFacade;
  29. /**
  30. * 检索
  31. *
  32. * @param retrievalVO
  33. * @return
  34. */
  35. public RetrievalDTO index(RetrievalVO retrievalVO) {
  36. RetrievalDTO retrievalDTO = new RetrievalDTO();
  37. if (null == retrievalVO
  38. || (null != retrievalVO
  39. && (null == retrievalVO.getHospitalId() || retrievalVO.getHospitalId().equals(-1L)))) {
  40. //无医院或者朗通医院查询标准词
  41. RespDTO<RetrievalDTO> respDTO = cdssCoreClient.index(retrievalVO);
  42. RespDTOUtil.respNGDealCover(respDTO, "检索失败");
  43. retrievalDTO = respDTO.data;
  44. } else {
  45. //实际医院查询医院词
  46. if (StringUtil.isBlank(retrievalVO.getInputStr())) {
  47. throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "请输入检索内容!");
  48. }
  49. HospitalCheckVO hospitalCheckVO = new HospitalCheckVO();
  50. hospitalCheckVO.setHospitalId(retrievalVO.getHospitalId());
  51. if (!hospitalInfoFacade.checkHospital(hospitalCheckVO)) {
  52. throw new CommonException(CommonErrorCode.NOT_EXISTS, "该医院ID不存在或者未启用!");
  53. } else {
  54. switch (retrievalVO.getType()) {
  55. case 2:
  56. retrievalDTO.setLisDetailNames(mappingConfigFacade.getHisDetailNames(retrievalVO));
  57. break;
  58. case 1:
  59. case 3:
  60. case 4:
  61. case 5:
  62. case 6:
  63. case 7:
  64. case 8:
  65. case 10:
  66. case 11:
  67. case 12:
  68. case 13:
  69. case 14:
  70. List<RetrievalConceptDTO> hisNameList = new ArrayList<>();
  71. List<String> hisNames = mappingConfigFacade.getHisNames(retrievalVO);
  72. for (String str : hisNames) {
  73. RetrievalConceptDTO data = new RetrievalConceptDTO();
  74. data.setName(str);
  75. hisNameList.add(data);
  76. }
  77. retrievalDTO.setNameList(hisNameList);
  78. break;
  79. }
  80. }
  81. }
  82. return retrievalDTO;
  83. }
  84. }