PushFacade.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package com.diagbot.facade;
  2. import com.diagbot.client.AiptServiceClient;
  3. import com.diagbot.client.bean.ScaleContent;
  4. import com.diagbot.client.bean.SearchData;
  5. import com.diagbot.client.bean.Treat;
  6. import com.diagbot.dto.ConceptPushDTO;
  7. import com.diagbot.dto.PushDTO;
  8. import com.diagbot.dto.RespDTO;
  9. import com.diagbot.enums.FeatureTypeEnum;
  10. import com.diagbot.util.RespDTOUtil;
  11. import com.diagbot.vo.PushVO;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Component;
  14. import java.util.Arrays;
  15. import java.util.HashSet;
  16. import java.util.List;
  17. import java.util.Map;
  18. import java.util.Set;
  19. /**
  20. * @Description:
  21. * @Author:zhaops
  22. * @time: 2019/5/13 17:47
  23. */
  24. @Component
  25. public class PushFacade {
  26. @Autowired
  27. AiptServiceClient aiptServiceClient;
  28. @Autowired
  29. AssembleFacade assembleFacade;
  30. /**
  31. * 推理接口
  32. *
  33. * @param pushVO
  34. * @return
  35. */
  36. public PushDTO push(PushVO pushVO) {
  37. PushDTO pushDTO = new PushDTO();
  38. SearchData searchData = assembleFacade.assembleData(pushVO);
  39. RespDTO<PushDTO> respDTO = aiptServiceClient.pushInner(searchData);
  40. RespDTOUtil.respNGDeal(respDTO, "中间层没有返回结果");
  41. PushDTO data = respDTO.data;
  42. String featureType = searchData.getFeatureType();
  43. String[] featureTypes = featureType.split(",|,");
  44. Set<String> featureTypeSet = new HashSet(Arrays.asList(featureTypes));
  45. //症状
  46. if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Symptom.getKey()))) {
  47. List<ConceptPushDTO> symptom = data.getSymptom();
  48. pushDTO.setSymptom(symptom);
  49. }
  50. //其他史
  51. if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Other.getKey()))) {
  52. }
  53. //查体
  54. if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.VitalResult.getKey())) ||
  55. featureTypeSet.contains(String.valueOf(FeatureTypeEnum.VitalIndex.getKey()))) {
  56. List<ConceptPushDTO> vitals = data.getVital();
  57. pushDTO.setVital(vitals);
  58. }
  59. //化验
  60. if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Lis.getKey()))) {
  61. List<ConceptPushDTO> labs = data.getLab();
  62. pushDTO.setLab(labs);
  63. }
  64. //辅检
  65. if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Pacs.getKey()))) {
  66. pushDTO.setPacs(data.getPacs());
  67. }
  68. //诊断
  69. if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Disease.getKey()))) {
  70. pushDTO.setDis(data.getDis());
  71. }
  72. //推送指标
  73. if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.MedicalIndication.getKey()))) {
  74. pushDTO.setMedicalIndications(data.getMedicalIndications());
  75. }
  76. return pushDTO;
  77. }
  78. /**
  79. * 治疗方案推送-不包含慢病内容
  80. *
  81. * @param pushVO
  82. * @return
  83. */
  84. public Treat pushTreatment(PushVO pushVO) {
  85. SearchData searchData = assembleFacade.assembleData(pushVO);
  86. RespDTO<Treat> res = aiptServiceClient.getTreatment(searchData);
  87. RespDTOUtil.respNGDeal(res, "中间层没有返回治疗方案");
  88. return res.data;
  89. }
  90. /**
  91. * 治疗方案推送-不包含慢病内容
  92. *
  93. * @param pushVO
  94. * @return
  95. */
  96. public List<ScaleContent> pushScale(PushVO pushVO) {
  97. SearchData searchData = assembleFacade.assembleData(pushVO);
  98. RespDTO<List<ScaleContent>> res = aiptServiceClient.getScale(searchData);
  99. RespDTOUtil.respNGDeal(res, "中间层没有返回量表");
  100. List<ScaleContent> data = res.data;
  101. return data;
  102. }
  103. }