浏览代码

Merge branch 'develop' into dev/zzcx20200202_init

# Conflicts:
#	common/src/main/java/com/diagbot/enums/SysTypeEnum.java
#	pom.xml
zhoutg 5 年之前
父节点
当前提交
ae47feb762
共有 100 个文件被更改,包括 2573 次插入435 次删除
  1. 96 40
      aipt-service/src/main/java/com/diagbot/aggregate/PushItemAggregate.java
  2. 36 8
      aipt-service/src/main/java/com/diagbot/aggregate/SearchItemAggregate.java
  3. 1 1
      aipt-service/src/main/java/com/diagbot/aggregate/TreatmentAggregate.java
  4. 102 0
      aipt-service/src/main/java/com/diagbot/aop/CryptAspect.java
  5. 41 41
      aipt-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java
  6. 41 0
      aipt-service/src/main/java/com/diagbot/client/AINeoServiceClient.java
  7. 10 0
      aipt-service/src/main/java/com/diagbot/client/TranServiceClient.java
  8. 49 0
      aipt-service/src/main/java/com/diagbot/client/hystrix/AINeoServiceHystrix.java
  9. 13 1
      aipt-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java
  10. 29 0
      aipt-service/src/main/java/com/diagbot/config/CryptConfiguer.java
  11. 2 0
      aipt-service/src/main/java/com/diagbot/dto/ConceptBaseDTO.java
  12. 6 0
      aipt-service/src/main/java/com/diagbot/dto/ConceptPushDTO.java
  13. 5 0
      aipt-service/src/main/java/com/diagbot/dto/ConceptRetrievalDTO.java
  14. 30 0
      aipt-service/src/main/java/com/diagbot/dto/ConceptRetrievalExtDTO.java
  15. 2 0
      aipt-service/src/main/java/com/diagbot/dto/DisDTO.java
  16. 2 0
      aipt-service/src/main/java/com/diagbot/dto/DiseaseIcdDTO.java
  17. 23 22
      aipt-service/src/main/java/com/diagbot/dto/EvaluationDTO.java
  18. 3 0
      aipt-service/src/main/java/com/diagbot/dto/FeatureConceptDTO.java
  19. 20 0
      aipt-service/src/main/java/com/diagbot/dto/FeatureDTO.java
  20. 29 28
      aipt-service/src/main/java/com/diagbot/dto/IndexConfigDTO.java
  21. 26 26
      aipt-service/src/main/java/com/diagbot/dto/IndexDTO.java
  22. 4 0
      aipt-service/src/main/java/com/diagbot/dto/RetrievalDTO.java
  23. 3 0
      aipt-service/src/main/java/com/diagbot/dto/ScaleIndexDTO.java
  24. 16 0
      aipt-service/src/main/java/com/diagbot/dto/UsualDTO.java
  25. 4 0
      aipt-service/src/main/java/com/diagbot/entity/ConceptDetail.java
  26. 2 0
      aipt-service/src/main/java/com/diagbot/entity/DiseaseIcd.java
  27. 2 0
      aipt-service/src/main/java/com/diagbot/entity/HospitalDept.java
  28. 78 0
      aipt-service/src/main/java/com/diagbot/entity/KlSymptom.java
  29. 2 1
      aipt-service/src/main/java/com/diagbot/entity/Symptom.java
  30. 44 2
      aipt-service/src/main/java/com/diagbot/facade/AssembleFacade.java
  31. 10 1
      aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java
  32. 19 10
      aipt-service/src/main/java/com/diagbot/facade/ConceptDetailFacade.java
  33. 38 0
      aipt-service/src/main/java/com/diagbot/facade/ConceptDetailTestFacade.java
  34. 110 3
      aipt-service/src/main/java/com/diagbot/facade/ConceptFacade.java
  35. 7 0
      aipt-service/src/main/java/com/diagbot/facade/DisScaleFacade.java
  36. 20 2
      aipt-service/src/main/java/com/diagbot/facade/DisTypeFacade.java
  37. 3 0
      aipt-service/src/main/java/com/diagbot/facade/DiseaseIcdFacade.java
  38. 16 7
      aipt-service/src/main/java/com/diagbot/facade/EvaluationFacade.java
  39. 25 10
      aipt-service/src/main/java/com/diagbot/facade/FeatureFacade.java
  40. 75 0
      aipt-service/src/main/java/com/diagbot/facade/FeatureV2Facade.java
  41. 10 0
      aipt-service/src/main/java/com/diagbot/facade/KlSymptomFacade.java
  42. 26 3
      aipt-service/src/main/java/com/diagbot/facade/LisMappingFacade.java
  43. 28 10
      aipt-service/src/main/java/com/diagbot/facade/PartFacade.java
  44. 21 3
      aipt-service/src/main/java/com/diagbot/facade/PatientInfoFacade.java
  45. 51 4
      aipt-service/src/main/java/com/diagbot/facade/PushFacade.java
  46. 91 0
      aipt-service/src/main/java/com/diagbot/facade/PushV2Facade.java
  47. 318 0
      aipt-service/src/main/java/com/diagbot/facade/TranEnDeFacade.java
  48. 84 51
      aipt-service/src/main/java/com/diagbot/facade/TransferFacade.java
  49. 18 5
      aipt-service/src/main/java/com/diagbot/facade/TreatmentFacade.java
  50. 8 1
      aipt-service/src/main/java/com/diagbot/mapper/ConceptDetailMapper.java
  51. 12 1
      aipt-service/src/main/java/com/diagbot/mapper/ConceptMapper.java
  52. 16 0
      aipt-service/src/main/java/com/diagbot/mapper/KlSymptomMapper.java
  53. 8 1
      aipt-service/src/main/java/com/diagbot/service/ConceptDetailService.java
  54. 10 0
      aipt-service/src/main/java/com/diagbot/service/ConceptService.java
  55. 16 0
      aipt-service/src/main/java/com/diagbot/service/KlSymptomService.java
  56. 12 1
      aipt-service/src/main/java/com/diagbot/service/impl/ConceptDetailServiceImpl.java
  57. 12 0
      aipt-service/src/main/java/com/diagbot/service/impl/ConceptServiceImpl.java
  58. 20 0
      aipt-service/src/main/java/com/diagbot/service/impl/KlSymptomServiceImpl.java
  59. 2 0
      aipt-service/src/main/java/com/diagbot/vo/ConceptBaseVO.java
  60. 35 0
      aipt-service/src/main/java/com/diagbot/vo/ConceptDetailPageVO.java
  61. 2 0
      aipt-service/src/main/java/com/diagbot/vo/ConceptIntroduceVO.java
  62. 18 0
      aipt-service/src/main/java/com/diagbot/vo/ConceptNameVO.java
  63. 2 0
      aipt-service/src/main/java/com/diagbot/vo/ConceptUsualVO.java
  64. 4 0
      aipt-service/src/main/java/com/diagbot/vo/ConnectIntroduceVO.java
  65. 2 1
      aipt-service/src/main/java/com/diagbot/vo/DisScaleVO.java
  66. 2 0
      aipt-service/src/main/java/com/diagbot/vo/DisTypeVO.java
  67. 2 0
      aipt-service/src/main/java/com/diagbot/vo/GetLisMappingVO.java
  68. 2 0
      aipt-service/src/main/java/com/diagbot/vo/GetStaticKnowledgeVO.java
  69. 18 16
      aipt-service/src/main/java/com/diagbot/vo/IndexConfigdiseaseNameVO.java
  70. 37 35
      aipt-service/src/main/java/com/diagbot/vo/IndexDataFindVO.java
  71. 15 0
      aipt-service/src/main/java/com/diagbot/vo/NLPVO.java
  72. 19 0
      aipt-service/src/main/java/com/diagbot/vo/OperationConfigVO.java
  73. 2 0
      aipt-service/src/main/java/com/diagbot/vo/RetrievalVO.java
  74. 2 0
      aipt-service/src/main/java/com/diagbot/vo/ScaleIndexVO.java
  75. 26 0
      aipt-service/src/main/java/com/diagbot/web/ConceptController.java
  76. 97 0
      aipt-service/src/main/java/com/diagbot/web/ConceptDetailTestController.java
  77. 54 54
      aipt-service/src/main/java/com/diagbot/web/DisScaleController.java
  78. 1 1
      aipt-service/src/main/java/com/diagbot/web/DiseaseIcdController.java
  79. 37 0
      aipt-service/src/main/java/com/diagbot/web/FeatureV2Controller.java
  80. 44 44
      aipt-service/src/main/java/com/diagbot/web/IndexConfigController.java
  81. 14 0
      aipt-service/src/main/java/com/diagbot/web/PushController.java
  82. 44 0
      aipt-service/src/main/java/com/diagbot/web/PushV2Controller.java
  83. 18 0
      aipt-service/src/main/resources/mapper/ConceptDetailMapper.xml
  84. 25 0
      aipt-service/src/main/resources/mapper/ConceptMapper.xml
  85. 37 0
      common-biz-client/pom.xml
  86. 37 1
      common/pom.xml
  87. 26 0
      common/src/main/java/com/diagbot/annotation/CryptField.java
  88. 2 0
      common/src/main/java/com/diagbot/biz/push/entity/AdverseReaction.java
  89. 3 0
      common/src/main/java/com/diagbot/biz/push/entity/FeatureRate.java
  90. 18 0
      common/src/main/java/com/diagbot/biz/push/entity/FeatureRateV2.java
  91. 16 0
      common/src/main/java/com/diagbot/biz/push/entity/FeatureRateWithExplain.java
  92. 16 0
      common/src/main/java/com/diagbot/biz/push/entity/FeatureRateWithExplainV2.java
  93. 6 0
      common/src/main/java/com/diagbot/biz/push/entity/MedicalIndication.java
  94. 2 0
      common/src/main/java/com/diagbot/biz/push/entity/Medicition.java
  95. 3 0
      common/src/main/java/com/diagbot/biz/push/entity/MedicitionClass.java
  96. 26 0
      common/src/main/java/com/diagbot/biz/push/entity/ResponseDataV2.java
  97. 25 0
      common/src/main/java/com/diagbot/biz/push/entity/ResponseDataWithExplain.java
  98. 25 0
      common/src/main/java/com/diagbot/biz/push/entity/ResponseDataWithExplainV2.java
  99. 2 0
      common/src/main/java/com/diagbot/enums/SysTypeEnum.java
  100. 0 0
      common/src/main/java/com/diagbot/util/AopUtil.java

+ 96 - 40
aipt-service/src/main/java/com/diagbot/aggregate/PushItemAggregate.java

@@ -7,22 +7,24 @@ import com.diagbot.biz.push.entity.MedicalIndication;
 import com.diagbot.biz.push.entity.MedicalIndicationDetail;
 import com.diagbot.biz.push.entity.MedicalIndicationDetail;
 import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.biz.push.enums.FeatureTypeEnum;
 import com.diagbot.biz.push.enums.FeatureTypeEnum;
-import com.diagbot.client.TranServiceClient;
 import com.diagbot.client.bean.CalculateData;
 import com.diagbot.client.bean.CalculateData;
 import com.diagbot.client.bean.HosCodeVO;
 import com.diagbot.client.bean.HosCodeVO;
+import com.diagbot.config.CryptConfiguer;
 import com.diagbot.dto.ConceptPushDTO;
 import com.diagbot.dto.ConceptPushDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushDTO;
-import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.Concept;
+import com.diagbot.entity.KlSymptom;
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.enums.SysTypeEnum;
 import com.diagbot.facade.ClinicalFacade;
 import com.diagbot.facade.ClinicalFacade;
 import com.diagbot.facade.ConceptFacade;
 import com.diagbot.facade.ConceptFacade;
+import com.diagbot.facade.TranEnDeFacade;
+import com.diagbot.util.CryptUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.util.ParamConvertUtil;
-import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.LisConfigVO;
 import com.diagbot.vo.LisConfigVO;
@@ -51,9 +53,11 @@ public class PushItemAggregate {
     @Autowired
     @Autowired
     private ConceptFacade conceptFacade;
     private ConceptFacade conceptFacade;
     @Autowired
     @Autowired
-    private TranServiceClient tranServiceClient;
+    private TranEnDeFacade tranEnDeFacade;
     @Autowired
     @Autowired
     private ClinicalFacade clinicalFacade;
     private ClinicalFacade clinicalFacade;
+    @Autowired
+    CryptConfiguer cryptConfiguer;
 
 
     @DataProvider("setAll")
     @DataProvider("setAll")
     public PushDTO setAll(
     public PushDTO setAll(
@@ -114,14 +118,25 @@ public class PushItemAggregate {
         //没有推送信息时,默认取全科模板
         //没有推送信息时,默认取全科模板
         if (StringUtil.isBlank(deptName)) {
         if (StringUtil.isBlank(deptName)) {
             deptName = "全科";
             deptName = "全科";
+            if (cryptConfiguer.cryptFlag) {
+                deptName = CryptUtil.encrypt_char(deptName);
+            }
         }
         }
         ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
         ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
         conceptBaseVO.setName(deptName);
         conceptBaseVO.setName(deptName);
         conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
         conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
         ConceptPushDTO deptDTO = new ConceptPushDTO();
         ConceptPushDTO deptDTO = new ConceptPushDTO();
         Concept dept = conceptFacade.getConcept(conceptBaseVO);
         Concept dept = conceptFacade.getConcept(conceptBaseVO);
-        if (dept == null && deptName.equals("全科") == false) {
-            deptName = "全科";
+        if (dept == null) {
+            if (cryptConfiguer.cryptFlag) {
+                if (deptName.equals(CryptUtil.encrypt_char("全科")) == false) {
+                    deptName = CryptUtil.encrypt_char("全科");
+                }
+            } else {
+                if (deptName.equals("全科") == false) {
+                    deptName = "全科";
+                }
+            }
             conceptBaseVO.setName(deptName);
             conceptBaseVO.setName(deptName);
             dept = conceptFacade.getConcept(conceptBaseVO);
             dept = conceptFacade.getConcept(conceptBaseVO);
         }
         }
@@ -135,7 +150,8 @@ public class PushItemAggregate {
 
 
     @DataProvider("setSymptom")
     @DataProvider("setSymptom")
     public List<ConceptPushDTO> setSymptom(@InvokeParameter("featureTypeSet") Set<String> featureTypeSet,
     public List<ConceptPushDTO> setSymptom(@InvokeParameter("featureTypeSet") Set<String> featureTypeSet,
-                                           @InvokeParameter("data") ResponseData data) {
+                                           @InvokeParameter("data") ResponseData data,
+                                           @InvokeParameter("sysType") Integer sysType) {
         List<ConceptPushDTO> symptomRes = ListUtil.newArrayList();
         List<ConceptPushDTO> symptomRes = ListUtil.newArrayList();
         //症状 概念列表
         //症状 概念列表
         if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Symptom.getKey()))) {
         if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Symptom.getKey()))) {
@@ -147,6 +163,26 @@ public class PushItemAggregate {
                         .collect(Collectors.toList());
                         .collect(Collectors.toList());
                 if (ListUtil.isNotEmpty(nameList)) {
                 if (ListUtil.isNotEmpty(nameList)) {
                     symptomRes = getConceptDTOList(nameList, LexiconTypeEnum.SYMPTOM.getKey());
                     symptomRes = getConceptDTOList(nameList, LexiconTypeEnum.SYMPTOM.getKey());
+                    if (sysType.equals(SysTypeEnum.TRIAGE_SERVICE.getKey())
+                            || sysType.equals(SysTypeEnum.PREC_SERVICE.getKey())) {
+                        Map<String, KlSymptom> klSymptomMap
+                                = conceptFacade.getSymptomWithExplain(nameList, LexiconTypeEnum.SYMPTOM.getKey());
+                        if (klSymptomMap != null) {
+                            symptomRes.forEach(conceptPushDTO -> {
+                                if (klSymptomMap.containsKey(conceptPushDTO.getName())) {
+                                    conceptPushDTO
+                                            .setDescription(klSymptomMap.get(conceptPushDTO.getName()).getDescription());
+                                    conceptPushDTO
+                                            .setExplains(klSymptomMap.get(conceptPushDTO.getName()).getExplains());
+                                    if (StringUtil.isBlank(klSymptomMap.get(conceptPushDTO.getName()).getExplains())) {
+                                        conceptPushDTO.setHasExplain(0);
+                                    } else {
+                                        conceptPushDTO.setHasExplain(1);
+                                    }
+                                }
+                            });
+                        }
+                    }
                 }
                 }
             }
             }
         }
         }
@@ -205,7 +241,6 @@ public class PushItemAggregate {
                     List<ConceptPushDTO> lisDTO = getConceptDTOList(nameList, LexiconTypeEnum.LIS_PACKAGE.getKey());
                     List<ConceptPushDTO> lisDTO = getConceptDTOList(nameList, LexiconTypeEnum.LIS_PACKAGE.getKey());
                     if (isConnect) {
                     if (isConnect) {
                         lisDTO = addClientName(lisDTO, hosCode, ConceptTypeEnum.Lis.getKey());
                         lisDTO = addClientName(lisDTO, hosCode, ConceptTypeEnum.Lis.getKey());
-                        //lisDTO = removeLisDetail(lisDTO);
                     }
                     }
                     labRes = lisDTO;
                     labRes = lisDTO;
                 }
                 }
@@ -216,9 +251,9 @@ public class PushItemAggregate {
 
 
     @DataProvider("setRetPacs")
     @DataProvider("setRetPacs")
     public List<ConceptPushDTO> setRetPacs(@InvokeParameter("featureTypeSet") Set<String> featureTypeSet,
     public List<ConceptPushDTO> setRetPacs(@InvokeParameter("featureTypeSet") Set<String> featureTypeSet,
-                                        @InvokeParameter("data") ResponseData data,
-                                        @InvokeParameter("isConnect") Boolean isConnect,
-                                        @InvokeParameter("hosCode") String hosCode) {
+                                           @InvokeParameter("data") ResponseData data,
+                                           @InvokeParameter("isConnect") Boolean isConnect,
+                                           @InvokeParameter("hosCode") String hosCode) {
         List<ConceptPushDTO> labRes = ListUtil.newArrayList();
         List<ConceptPushDTO> labRes = ListUtil.newArrayList();
         //辅检 概念列表
         //辅检 概念列表
         if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Pacs.getKey()))) {
         if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Pacs.getKey()))) {
@@ -284,6 +319,17 @@ public class PushItemAggregate {
                 disRes = disMapDTO;
                 disRes = disMapDTO;
             }
             }
         }
         }
+        //诊断转成明文
+        if (cryptConfiguer.cryptFlag) {
+            for (Map.Entry<String, List<ConceptPushDTO>> entry : disRes.entrySet()) {
+                if (ListUtil.isNotEmpty(entry.getValue())) {
+                    for (ConceptPushDTO conceptPushDTO : entry.getValue()) {
+                        conceptPushDTO.setName(CryptUtil.decrypt_char(conceptPushDTO.getName()));
+                    }
+                    disRes.put(entry.getKey(), entry.getValue());
+                }
+            }
+        }
         return disRes;
         return disRes;
     }
     }
 
 
@@ -313,6 +359,9 @@ public class PushItemAggregate {
                                 JSONObject scaleJson = detail.getContent();
                                 JSONObject scaleJson = detail.getContent();
                                 if (null != scaleJson.get("name")) {
                                 if (null != scaleJson.get("name")) {
                                     String scaleName = scaleJson.get("name").toString();
                                     String scaleName = scaleJson.get("name").toString();
+                                    if (cryptConfiguer.cryptFlag) {
+                                        scaleName = CryptUtil.encrypt_char(scaleName);
+                                    }
                                     conceptBaseVO.setName(scaleName);
                                     conceptBaseVO.setName(scaleName);
                                     conceptBaseVO.setLibType(LexiconTypeEnum.GAUGE.getKey());
                                     conceptBaseVO.setLibType(LexiconTypeEnum.GAUGE.getKey());
                                     Concept scaleConcept = conceptFacade.getConcept(conceptBaseVO);
                                     Concept scaleConcept = conceptFacade.getConcept(conceptBaseVO);
@@ -371,7 +420,6 @@ public class PushItemAggregate {
         return conceptDTOS;
         return conceptDTOS;
     }
     }
 
 
-
     /**
     /**
      * 添加外部名称(调用方)
      * 添加外部名称(调用方)
      *
      *
@@ -389,42 +437,50 @@ public class PushItemAggregate {
                 .stream()
                 .stream()
                 .map(concept -> concept.getName())
                 .map(concept -> concept.getName())
                 .collect(Collectors.toList());
                 .collect(Collectors.toList());
+        //加密情况下,转成原文调trans层接口
+        if (cryptConfiguer.cryptFlag) {
+            CryptUtil.decryptList(uniqueNameList);
+        }
         lisConfigVO.setUniqueNameList(uniqueNameList);
         lisConfigVO.setUniqueNameList(uniqueNameList);
         if (type.equals(ConceptTypeEnum.Lis.getKey())) {
         if (type.equals(ConceptTypeEnum.Lis.getKey())) {
-            RespDTO<Map<String, List<String>>> lisRes
-                    = tranServiceClient.getLisConfigByUniqueNameAndHosCode(lisConfigVO);
-            if (RespDTOUtil.respIsOK(lisRes)) {
-                Map<String, List<String>> lisMappingByUniqueName = lisRes.data;
-                for (ConceptPushDTO concept : concepts) {
-                    List<String> clientNames = lisMappingByUniqueName.get(concept.getName());
-                    if (ListUtil.isNotEmpty(clientNames)) {
-                        concept.setClientNames(clientNames);
-                    }
+            Map<String, List<String>> lisMappingByUniqueName = tranEnDeFacade.getLisConfigByUniqueNameAndHosCode(lisConfigVO);
+            for (ConceptPushDTO concept : concepts) {
+                List<String> clientNames = Lists.newLinkedList();
+                if (cryptConfiguer.cryptFlag) {
+                    clientNames = lisMappingByUniqueName.get(CryptUtil.decrypt_char(concept.getName()));
+                } else {
+                    clientNames = lisMappingByUniqueName.get(concept.getName());
+                }
+                if (ListUtil.isNotEmpty(clientNames)) {
+                    concept.setClientNames(clientNames);
                 }
                 }
             }
             }
         } else if (type.equals(ConceptTypeEnum.Pacs.getKey())) {
         } else if (type.equals(ConceptTypeEnum.Pacs.getKey())) {
-            RespDTO<Map<String, List<String>>> pacsRes
-                    = tranServiceClient.getPacsConfigByUniqueNameAndHosCode(hosCodeVO);
-            if (RespDTOUtil.respIsOK(pacsRes)) {
-                Map<String, List<String>> pacsConfigMapByUniqueName = pacsRes.data;
-                for (ConceptPushDTO concept : concepts) {
-                    List<String> clientNames = pacsConfigMapByUniqueName.get(concept.getName());
-                    if (ListUtil.isNotEmpty(clientNames)) {
-                        concept.setClientNames(clientNames);
-                    }
+            Map<String, List<String>> pacsConfigMapByUniqueName = tranEnDeFacade.getPacsConfigByUniqueNameAndHosCode(hosCodeVO);
+            for (ConceptPushDTO concept : concepts) {
+                List<String> clientNames = Lists.newLinkedList();
+                if (cryptConfiguer.cryptFlag) {
+                    clientNames = pacsConfigMapByUniqueName.get(CryptUtil.decrypt_char(concept.getName()));
+                } else {
+                    clientNames = pacsConfigMapByUniqueName.get(concept.getName());
+                }
+                if (ListUtil.isNotEmpty(clientNames)) {
+                    concept.setClientNames(clientNames);
                 }
                 }
             }
             }
         } else if (type.equals(ConceptTypeEnum.Disease.getKey())) {
         } else if (type.equals(ConceptTypeEnum.Disease.getKey())) {
-            RespDTO<Map<String, String>> disRes = tranServiceClient.getDiseaseIcdByHosCode(hosCodeVO);
-            if (RespDTOUtil.respIsOK(disRes)) {
-                Map<String, String> disMap = disRes.data;
-                for (ConceptPushDTO concept : concepts) {
-                    String clientName = disMap.get(concept.getName());
-                    if (StringUtil.isNotBlank(clientName)) {
-                        List<String> clientNames = Lists.newLinkedList();
-                        clientNames.add(clientName);
-                        concept.setClientNames(clientNames);
-                    }
+            Map<String, String> disMap = tranEnDeFacade.getDiseaseIcdByHosCode(hosCodeVO);
+            for (ConceptPushDTO concept : concepts) {
+                String clientName = "";
+                if (cryptConfiguer.cryptFlag) {
+                    clientName = disMap.get(CryptUtil.decrypt_char(concept.getName()));
+                } else {
+                    clientName = disMap.get(concept.getName());
+                }
+                if (StringUtil.isNotBlank(clientName)) {
+                    List<String> clientNames = Lists.newLinkedList();
+                    clientNames.add(clientName);
+                    concept.setClientNames(clientNames);
                 }
                 }
             }
             }
         }
         }

+ 36 - 8
aipt-service/src/main/java/com/diagbot/aggregate/SearchItemAggregate.java

@@ -5,6 +5,7 @@ import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.biz.push.entity.Pacs;
 import com.diagbot.biz.push.entity.Pacs;
 import com.diagbot.biz.push.vo.SearchVO;
 import com.diagbot.biz.push.vo.SearchVO;
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.ConceptTypeEnum;
+import com.diagbot.enums.SysTypeEnum;
 import com.diagbot.facade.TransferFacade;
 import com.diagbot.facade.TransferFacade;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Lists;
@@ -77,7 +78,10 @@ public class SearchItemAggregate {
     @DataProvider("setLis")
     @DataProvider("setLis")
     public List<Lis> setLis(@InvokeParameter("searchVO") SearchVO searchVO) {
     public List<Lis> setLis(@InvokeParameter("searchVO") SearchVO searchVO) {
         List<Lis> lis = searchVO.getLis();
         List<Lis> lis = searchVO.getLis();
-        lis = transferFacade.addLisUniqueName(lis, searchVO.getHosCode());
+        //数据引擎模式映射数据
+        if (searchVO.getSysType().intValue() == SysTypeEnum.LTAPI_SERVICE.getKey()) {
+            lis = transferFacade.addLisUniqueName(lis, searchVO.getHosCode());
+        }
         return lis;
         return lis;
     }
     }
 
 
@@ -90,7 +94,10 @@ public class SearchItemAggregate {
     @DataProvider("setPacs")
     @DataProvider("setPacs")
     public List<Pacs> setPacs(@InvokeParameter("searchVO") SearchVO searchVO) {
     public List<Pacs> setPacs(@InvokeParameter("searchVO") SearchVO searchVO) {
         List<Pacs> pacs = searchVO.getPacs();
         List<Pacs> pacs = searchVO.getPacs();
-        pacs = transferFacade.addPacsUniqueName(pacs, searchVO.getHosCode());
+        //数据引擎模式映射数据
+        if (searchVO.getSysType().intValue() == SysTypeEnum.LTAPI_SERVICE.getKey()) {
+            pacs = transferFacade.addPacsUniqueName(pacs, searchVO.getHosCode());
+        }
         return pacs;
         return pacs;
     }
     }
 
 
@@ -103,7 +110,10 @@ public class SearchItemAggregate {
     @DataProvider("setDiag")
     @DataProvider("setDiag")
     public List<Item> setDiag(@InvokeParameter("searchVO") SearchVO searchVO) {
     public List<Item> setDiag(@InvokeParameter("searchVO") SearchVO searchVO) {
         List<Item> diag = searchVO.getDiag();
         List<Item> diag = searchVO.getDiag();
-        diag = transferFacade.addItemUniqueName(diag, ConceptTypeEnum.Disease.getKey(), searchVO.getHosCode());
+        //数据引擎模式映射数据
+        if (searchVO.getSysType().intValue() == SysTypeEnum.LTAPI_SERVICE.getKey()) {
+            diag = transferFacade.addItemUniqueName(diag, ConceptTypeEnum.Disease.getKey(), searchVO.getHosCode());
+        }
         return diag;
         return diag;
     }
     }
 
 
@@ -129,7 +139,10 @@ public class SearchItemAggregate {
     @DataProvider("setLisOrder")
     @DataProvider("setLisOrder")
     public List<Lis> setLisOrder(@InvokeParameter("searchVO") SearchVO searchVO) {
     public List<Lis> setLisOrder(@InvokeParameter("searchVO") SearchVO searchVO) {
         List<Lis> lisOrder = searchVO.getLisOrder();
         List<Lis> lisOrder = searchVO.getLisOrder();
-        lisOrder = transferFacade.addLisUniqueName(lisOrder, searchVO.getHosCode());
+        //数据引擎模式映射数据
+        if (searchVO.getSysType().intValue() == SysTypeEnum.LTAPI_SERVICE.getKey()) {
+            lisOrder = transferFacade.addLisUniqueName(lisOrder, searchVO.getHosCode());
+        }
         return lisOrder;
         return lisOrder;
     }
     }
 
 
@@ -142,7 +155,10 @@ public class SearchItemAggregate {
     @DataProvider("setPacsOrder")
     @DataProvider("setPacsOrder")
     public List<Pacs> setPacsOrder(@InvokeParameter("searchVO") SearchVO searchVO) {
     public List<Pacs> setPacsOrder(@InvokeParameter("searchVO") SearchVO searchVO) {
         List<Pacs> pacsOrder = searchVO.getPacsOrder();
         List<Pacs> pacsOrder = searchVO.getPacsOrder();
-        pacsOrder = transferFacade.addPacsUniqueName(pacsOrder, searchVO.getHosCode());
+        //数据引擎模式映射数据
+        if (searchVO.getSysType().intValue() == SysTypeEnum.LTAPI_SERVICE.getKey()) {
+            pacsOrder = transferFacade.addPacsUniqueName(pacsOrder, searchVO.getHosCode());
+        }
         return pacsOrder;
         return pacsOrder;
     }
     }
 
 
@@ -155,7 +171,11 @@ public class SearchItemAggregate {
     @DataProvider("setDiagOrder")
     @DataProvider("setDiagOrder")
     public List<Item> setDiagOrder(@InvokeParameter("searchVO") SearchVO searchVO) {
     public List<Item> setDiagOrder(@InvokeParameter("searchVO") SearchVO searchVO) {
         List<Item> diagOrder = searchVO.getDiagOrder();
         List<Item> diagOrder = searchVO.getDiagOrder();
-        diagOrder = transferFacade.addItemUniqueName(diagOrder, ConceptTypeEnum.Disease.getKey(), searchVO.getHosCode());
+        //数据引擎模式映射数据
+        if (searchVO.getSysType().intValue() == SysTypeEnum.LTAPI_SERVICE.getKey()) {
+            diagOrder
+                    = transferFacade.addItemUniqueName(diagOrder, ConceptTypeEnum.Disease.getKey(), searchVO.getHosCode());
+        }
         return diagOrder;
         return diagOrder;
     }
     }
 
 
@@ -181,7 +201,12 @@ public class SearchItemAggregate {
     @DataProvider("setOperationOrder")
     @DataProvider("setOperationOrder")
     public List<Item> setOperationOrder(@InvokeParameter("searchVO") SearchVO searchVO) {
     public List<Item> setOperationOrder(@InvokeParameter("searchVO") SearchVO searchVO) {
         List<Item> operationOrder = searchVO.getOperationOrder();
         List<Item> operationOrder = searchVO.getOperationOrder();
-        operationOrder = transferFacade.addItemUniqueName(operationOrder, ConceptTypeEnum.OPERATION.getKey(), searchVO.getHosCode());
+        //数据引擎模式和页面推送模式对手术开单项入参做公表映射
+        if (searchVO.getSysType().intValue() == SysTypeEnum.DATA_SERVICE.getKey()
+                || searchVO.getSysType().intValue() == SysTypeEnum.LTAPI_SERVICE.getKey()) {
+            operationOrder
+                    = transferFacade.addItemUniqueName(operationOrder, ConceptTypeEnum.OPERATION.getKey(), searchVO.getHosCode());
+        }
         return operationOrder;
         return operationOrder;
     }
     }
 
 
@@ -210,7 +235,10 @@ public class SearchItemAggregate {
         }
         }
         List<Item> diseaseItem = Lists.newLinkedList();
         List<Item> diseaseItem = Lists.newLinkedList();
         diseaseItem.add(searchVO.getDiseaseName());
         diseaseItem.add(searchVO.getDiseaseName());
-        diseaseItem = transferFacade.addItemUniqueName(diseaseItem, ConceptTypeEnum.Disease.getKey(), searchVO.getHosCode());
+        //数据引擎模式映射数据
+        if (searchVO.getSysType().intValue() == SysTypeEnum.LTAPI_SERVICE.getKey()) {
+            diseaseItem = transferFacade.addItemUniqueName(diseaseItem, ConceptTypeEnum.Disease.getKey(), searchVO.getHosCode());
+        }
         if (ListUtil.isNotEmpty(diseaseItem)) {
         if (ListUtil.isNotEmpty(diseaseItem)) {
             return diseaseItem.get(0);
             return diseaseItem.get(0);
         } else {
         } else {

+ 1 - 1
aipt-service/src/main/java/com/diagbot/aggregate/TreatmentAggregate.java

@@ -1,7 +1,7 @@
 package com.diagbot.aggregate;
 package com.diagbot.aggregate;
 
 
-import com.diagbot.biz.push.entity.AdverseReaction;
 import com.diagbot.biz.push.dto.ConceptDetailDTO;
 import com.diagbot.biz.push.dto.ConceptDetailDTO;
+import com.diagbot.biz.push.entity.AdverseReaction;
 import com.diagbot.biz.push.entity.Medicition;
 import com.diagbot.biz.push.entity.Medicition;
 import com.diagbot.biz.push.entity.MedicitionClass;
 import com.diagbot.biz.push.entity.MedicitionClass;
 import com.diagbot.biz.push.entity.MeditionDetail;
 import com.diagbot.biz.push.entity.MeditionDetail;

+ 102 - 0
aipt-service/src/main/java/com/diagbot/aop/CryptAspect.java

@@ -0,0 +1,102 @@
+package com.diagbot.aop;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.diagbot.client.bean.Response;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.util.CryptPojoUtils;
+import com.diagbot.util.RespDTOUtil;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description: 数据库加解密
+ * @author: gaodm
+ * @time: 2019/12/31 13:17
+ */
+@Aspect
+@Component
+@ConditionalOnProperty(prefix = "crypt", value = { "enable" }, havingValue = "true")
+public class CryptAspect {
+
+    //切所有Controller
+    @Pointcut("execution(* com.diagbot.web..*.*(..))")
+    public void pointcutController() {
+    }
+
+    //Controller 入参加密出参解密
+    @Around("pointcutController()")
+    public Object aroundReturningController(ProceedingJoinPoint joinPoint) throws Throwable {
+        //获取方法参数
+        Object[] args = joinPoint.getArgs();
+
+        //获取参数实体类注解加密
+        CryptPojoUtils.encryptFields(args);
+        //执行方法后获取出参
+        Object proceed = joinPoint.proceed(args);
+        if (null == proceed) {
+            return null;
+        }
+        //解密
+        if (proceed instanceof RespDTO) {
+            RespDTO respDTO = (RespDTO) proceed;
+            if (RespDTOUtil.respIsOK(respDTO)) {
+                if (respDTO.data instanceof IPage) {
+                    Page page = (Page) respDTO.data;
+                    CryptPojoUtils.decryptFieldOrList(page.getRecords());
+                } else {
+                    CryptPojoUtils.decryptFieldOrList(respDTO.data);
+                }
+
+            }
+
+        }
+
+        return proceed;
+    }
+
+
+    @Pointcut("execution(* com.diagbot.client..*.*(..))")
+    public void pointcutRpcClient() {
+    }
+
+    //RpcClient 入参解密出参加密
+    @Around("pointcutRpcClient()")
+    public Object aroundReturningRpcClient(ProceedingJoinPoint joinPoint) throws Throwable {
+        //获取方法参数
+        Object[] args = joinPoint.getArgs();
+
+        //获取参数实体类解密
+        CryptPojoUtils.decryptFields(args);
+        //执行方法后获取出参
+        Object proceed = joinPoint.proceed(args);
+        if (null == proceed) {
+            return null;
+        }
+        //加密
+        if (proceed instanceof RespDTO) {
+            RespDTO respDTO = (RespDTO) proceed;
+            if (RespDTOUtil.respIsOK(respDTO)) {
+                if (respDTO.data instanceof IPage) {
+                    Page page = (Page) respDTO.data;
+                    CryptPojoUtils.encryptFieldOrList(page.getRecords());
+                } else {
+                    CryptPojoUtils.encryptFieldOrList(respDTO.data);
+                }
+
+            }
+        } else if (proceed instanceof Response) {
+            Response response = (Response) proceed;
+            if (null != response && null != response.getData()) {
+                CryptPojoUtils.encryptFieldOrList(response.getData());
+            }
+        }
+
+
+        return proceed;
+    }
+}

+ 41 - 41
aipt-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java

@@ -1,41 +1,41 @@
-package com.diagbot.aop;
-
-import com.diagbot.biz.log.entity.SysLog;
-import com.diagbot.enums.SysTypeEnum;
-import com.diagbot.rabbit.MySender;
-import com.diagbot.util.AopUtil;
-import org.aspectj.lang.JoinPoint;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Before;
-import org.aspectj.lang.annotation.Pointcut;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.stereotype.Component;
-
-/**
- * @Description: 日志拦截切面
- * @author: gaodm
- * @time: 2018/8/2 13:36
- */
-@Aspect
-@Component
-@ConditionalOnProperty(prefix = "syslog", value = { "enable" }, havingValue = "true")
-public class SysLoggerAspect {
-    @Autowired
-    private MySender mySender;
-
-    @Pointcut("@annotation(com.diagbot.annotation.SysLogger)")
-    public void loggerPointCut() {
-
-    }
-
-    @Before("loggerPointCut()")
-    public void saveSysLog(JoinPoint joinPoint) {
-        //入参设置
-        SysLog sysLog = AopUtil.sysLoggerAspect(joinPoint, SysTypeEnum.AIPT_SERVICE.getKey());
-        //保存系统日志
-        mySender.outputLogSend(sysLog);
-    }
-
-}
-
+//package com.diagbot.aop;
+//
+//import com.diagbot.biz.log.entity.SysLog;
+//import com.diagbot.enums.SysTypeEnum;
+//import com.diagbot.rabbit.MySender;
+//import com.diagbot.util.AopUtil;
+//import org.aspectj.lang.JoinPoint;
+//import org.aspectj.lang.annotation.Aspect;
+//import org.aspectj.lang.annotation.Before;
+//import org.aspectj.lang.annotation.Pointcut;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+//import org.springframework.stereotype.Component;
+//
+///**
+// * @Description: 日志拦截切面
+// * @author: gaodm
+// * @time: 2018/8/2 13:36
+// */
+//@Aspect
+//@Component
+//@ConditionalOnProperty(prefix = "syslog", value = { "enable" }, havingValue = "true")
+//public class SysLoggerAspect {
+//    @Autowired
+//    private MySender mySender;
+//
+//    @Pointcut("@annotation(com.diagbot.annotation.SysLogger)")
+//    public void loggerPointCut() {
+//
+//    }
+//
+//    @Before("loggerPointCut()")
+//    public void saveSysLog(JoinPoint joinPoint) {
+//        //入参设置
+//        SysLog sysLog = AopUtil.sysLoggerAspect(joinPoint, SysTypeEnum.AIPT_SERVICE.getKey());
+//        //保存系统日志
+//        mySender.outputLogSend(sysLog);
+//    }
+//
+//}
+//

+ 41 - 0
aipt-service/src/main/java/com/diagbot/client/AINeoServiceClient.java

@@ -0,0 +1,41 @@
+package com.diagbot.client;
+
+import com.diagbot.biz.push.entity.ResponseDataV2;
+import com.diagbot.client.bean.Response;
+import com.diagbot.client.bean.SearchData;
+import com.diagbot.client.hystrix.AINeoServiceHystrix;
+import com.diagbot.dto.FeatureDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.vo.NLPVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/4/16 16:27
+ */
+@FeignClient(name = "AINeo", url = "${aineo.server.address}", fallback = AINeoServiceHystrix.class)
+public interface AINeoServiceClient {
+
+    /**
+     * 推理
+     *
+     * @param searchData
+     * @return
+     */
+    @PostMapping(value = "/api/push")
+    Response<ResponseDataV2> push(@RequestBody SearchData searchData);
+
+    /**
+     * 特征词提取
+     *
+     * @param nlpvo
+     * @return
+     */
+    @PostMapping(value = "/api/extract")
+    RespDTO<List<FeatureDTO>> extract(@RequestBody NLPVO nlpvo);
+}

+ 10 - 0
aipt-service/src/main/java/com/diagbot/client/TranServiceClient.java

@@ -18,6 +18,7 @@ import com.diagbot.vo.HospitalSetVO;
 import com.diagbot.vo.IndexDataSaveVO;
 import com.diagbot.vo.IndexDataSaveVO;
 import com.diagbot.vo.IndexDataiIds;
 import com.diagbot.vo.IndexDataiIds;
 import com.diagbot.vo.LisConfigVO;
 import com.diagbot.vo.LisConfigVO;
+import com.diagbot.vo.OperationConfigVO;
 import com.diagbot.vo.PacsConfigVO;
 import com.diagbot.vo.PacsConfigVO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -97,6 +98,15 @@ public interface TranServiceClient {
     @PostMapping("/pacsConfig/getPacsConfig")
     @PostMapping("/pacsConfig/getPacsConfig")
     RespDTO<Map<String, List<String>>> getPacsConfig(@RequestBody PacsConfigVO pacsConfigVO);
     RespDTO<Map<String, List<String>>> getPacsConfig(@RequestBody PacsConfigVO pacsConfigVO);
 
 
+    /**
+     * 获取手术映射关系
+     *
+     * @param operationConfigVO
+     * @return
+     */
+    @PostMapping("/operationConfig/getOperationConfig")
+    RespDTO<Map<String, List<String>>> getOperationConfig(@RequestBody OperationConfigVO operationConfigVO);
+
     /**
     /**
      * 根据医院编码获取提示信息标题映射关系
      * 根据医院编码获取提示信息标题映射关系
      *
      *

+ 49 - 0
aipt-service/src/main/java/com/diagbot/client/hystrix/AINeoServiceHystrix.java

@@ -0,0 +1,49 @@
+package com.diagbot.client.hystrix;
+
+import com.diagbot.biz.push.entity.ResponseDataV2;
+import com.diagbot.client.AINeoServiceClient;
+import com.diagbot.client.bean.Response;
+import com.diagbot.client.bean.SearchData;
+import com.diagbot.dto.FeatureDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.vo.NLPVO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/4/16 16:27
+ */
+@Component
+@Slf4j
+public class AINeoServiceHystrix implements AINeoServiceClient {
+
+    /**
+     * 推理
+     *
+     * @param searchData
+     * @return
+     */
+    @Override
+    public Response<ResponseDataV2> push(@RequestBody SearchData searchData) {
+        log.error("【hystrix】调用{}异常", "push");
+        return null;
+    }
+
+    /**
+     * 特征词提取
+     *
+     * @param nlpvo
+     * @return
+     */
+    @Override
+    public RespDTO<List<FeatureDTO>> extract(@RequestBody NLPVO nlpvo) {
+        log.error("【hystrix】调用{}异常", "extract");
+        return null;
+    }
+}

+ 13 - 1
aipt-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java

@@ -18,10 +18,10 @@ import com.diagbot.vo.HospitalSetVO;
 import com.diagbot.vo.IndexDataSaveVO;
 import com.diagbot.vo.IndexDataSaveVO;
 import com.diagbot.vo.IndexDataiIds;
 import com.diagbot.vo.IndexDataiIds;
 import com.diagbot.vo.LisConfigVO;
 import com.diagbot.vo.LisConfigVO;
+import com.diagbot.vo.OperationConfigVO;
 import com.diagbot.vo.PacsConfigVO;
 import com.diagbot.vo.PacsConfigVO;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
-import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 
 
 import javax.validation.Valid;
 import javax.validation.Valid;
@@ -96,6 +96,18 @@ public class TranServiceHystrix implements TranServiceClient {
         return null;
         return null;
     }
     }
 
 
+    /**
+     * 获取手术映射关系
+     *
+     * @param operationConfigVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, List<String>>> getOperationConfig(@RequestBody OperationConfigVO operationConfigVO) {
+        log.error("【hystrix】调用{}异常", "getOperationConfig");
+        return null;
+    }
+
     /**
     /**
      * 根据医院编码获取提示信息标题映射关系
      * 根据医院编码获取提示信息标题映射关系
      *
      *

+ 29 - 0
aipt-service/src/main/java/com/diagbot/config/CryptConfiguer.java

@@ -0,0 +1,29 @@
+package com.diagbot.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/1/2 10:59
+ */
+@Component
+public class CryptConfiguer {
+
+    @Value("${crypt.enable}")
+    public Boolean cryptFlag;
+
+    private static CryptConfiguer cryptConfiguer;
+
+    public static CryptConfiguer getInstance() {
+        if (null == cryptConfiguer) {
+            synchronized (CryptConfiguer.class) {
+                if (null == cryptConfiguer) {
+                    cryptConfiguer = new CryptConfiguer();
+                }
+            }
+        }
+        return cryptConfiguer;
+    }
+}

+ 2 - 0
aipt-service/src/main/java/com/diagbot/dto/ConceptBaseDTO.java

@@ -1,5 +1,6 @@
 package com.diagbot.dto;
 package com.diagbot.dto;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -12,5 +13,6 @@ import lombok.Setter;
 @Setter
 @Setter
 public class ConceptBaseDTO {
 public class ConceptBaseDTO {
     private Long conceptId; // 概念id
     private Long conceptId; // 概念id
+    @CryptField
     private String name;    //概念名称
     private String name;    //概念名称
 }
 }

+ 6 - 0
aipt-service/src/main/java/com/diagbot/dto/ConceptPushDTO.java

@@ -17,4 +17,10 @@ public class ConceptPushDTO extends ConceptBaseDTO {
     //数据服务模式调用方名称
     //数据服务模式调用方名称
     private List<String> clientNames;
     private List<String> clientNames;
     private Integer type;
     private Integer type;
+    //客户端界面描述
+    private String description;
+    //是否详细阐述
+    private Integer hasExplain = 0;
+    //详细阐述
+    private String explains;
 }
 }

+ 5 - 0
aipt-service/src/main/java/com/diagbot/dto/ConceptRetrievalDTO.java

@@ -1,5 +1,6 @@
 package com.diagbot.dto;
 package com.diagbot.dto;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -12,14 +13,18 @@ import lombok.Setter;
 @Setter
 @Setter
 public class ConceptRetrievalDTO {
 public class ConceptRetrievalDTO {
     private Long selfId;//本身概念id
     private Long selfId;//本身概念id
+    @CryptField
     private String selfName;//本身名称
     private String selfName;//本身名称
     private Long parentId;//父级id
     private Long parentId;//父级id
+    @CryptField
     private String parentName;//父级名称
     private String parentName;//父级名称
+    @CryptField
     private String sameName;//同义词名称
     private String sameName;//同义词名称
     private Long showType;//显示类型(1本体,0同义词)
     private Long showType;//显示类型(1本体,0同义词)
     private Long libTypeId;//标签类型id
     private Long libTypeId;//标签类型id
     private String libTypeName;//标签类型名称
     private String libTypeName;//标签类型名称
     private Integer type;//questionType
     private Integer type;//questionType
     private Long uniqueId;//公表id
     private Long uniqueId;//公表id
+    @CryptField
     private String uniqueName;//公表名称
     private String uniqueName;//公表名称
 }
 }

+ 30 - 0
aipt-service/src/main/java/com/diagbot/dto/ConceptRetrievalExtDTO.java

@@ -0,0 +1,30 @@
+package com.diagbot.dto;
+
+import com.diagbot.annotation.CryptField;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2019/5/10 10:20
+ */
+@Getter
+@Setter
+public class ConceptRetrievalExtDTO {
+
+    private Long selfId;//本身概念id
+    @CryptField
+    private String selfName;//本身名称
+    private Long parentId;//父级id
+    @CryptField
+    private String parentName;//父级名称
+    @CryptField
+    private String sameName;//同义词名称
+    private Long showType;//显示类型(1本体,0同义词)
+    private Long libTypeId;//标签类型id
+    private String libTypeName;//标签类型名称
+    private Integer type;//questionType
+    private String description;
+    private String explains;
+}

+ 2 - 0
aipt-service/src/main/java/com/diagbot/dto/DisDTO.java

@@ -1,5 +1,6 @@
 package com.diagbot.dto;
 package com.diagbot.dto;
 
 
+import com.diagbot.annotation.CryptField;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
@@ -12,6 +13,7 @@ import lombok.Setter;
 @Getter
 @Getter
 @Setter
 @Setter
 public class DisDTO extends ConceptBaseDTO{
 public class DisDTO extends ConceptBaseDTO{
+    @CryptField
     @JsonIgnore
     @JsonIgnore
     private String typeName;//类型:慢病,急诊
     private String typeName;//类型:慢病,急诊
 }
 }

+ 2 - 0
aipt-service/src/main/java/com/diagbot/dto/DiseaseIcdDTO.java

@@ -1,5 +1,6 @@
 package com.diagbot.dto;
 package com.diagbot.dto;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -34,5 +35,6 @@ public class DiseaseIcdDTO  {
     /**
     /**
      * 朗通疾病名称
      * 朗通疾病名称
      */
      */
+    @CryptField
     private String conceptDisName;
     private String conceptDisName;
 }
 }

+ 23 - 22
aipt-service/src/main/java/com/diagbot/dto/EvaluationDTO.java

@@ -1,22 +1,23 @@
-package com.diagbot.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2019年5月6日 下午5:14:02
- */
-@Getter
-@Setter
-public class EvaluationDTO {
-
-	private String diseaseName;// 对应术语疾病名
-	private Long conceptId;// 术语概念id
-	private String regionName; // 区域名
-	private String regionType; // 区域类型
-	private Integer orderNo; // 区域顺序
-	private Object data;
-}
+package com.diagbot.dto;
+
+import com.diagbot.annotation.CryptField;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年5月6日 下午5:14:02
+ */
+@Getter
+@Setter
+public class EvaluationDTO {
+	@CryptField
+	private String diseaseName;// 对应术语疾病名
+	private Long conceptId;// 术语概念id
+	private String regionName; // 区域名
+	private String regionType; // 区域类型
+	private Integer orderNo; // 区域顺序
+	private Object data;
+}

+ 3 - 0
aipt-service/src/main/java/com/diagbot/dto/FeatureConceptDTO.java

@@ -1,5 +1,6 @@
 package com.diagbot.dto;
 package com.diagbot.dto;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -14,4 +15,6 @@ public class FeatureConceptDTO extends ConceptBaseDTO {
     private Integer libType;
     private Integer libType;
     private Integer type;
     private Integer type;
     private Integer chronicLabel; //是否慢病复诊标志
     private Integer chronicLabel; //是否慢病复诊标志
+    @CryptField
+    private String origin;
 }
 }

+ 20 - 0
aipt-service/src/main/java/com/diagbot/dto/FeatureDTO.java

@@ -0,0 +1,20 @@
+package com.diagbot.dto;
+
+import com.diagbot.annotation.CryptField;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/4/26 13:42
+ */
+@Getter
+@Setter
+public class FeatureDTO {
+    private Long conceptId;
+    @CryptField
+    private String standard;
+    private Integer type;
+    private String origin;
+}

+ 29 - 28
aipt-service/src/main/java/com/diagbot/dto/IndexConfigDTO.java

@@ -1,28 +1,29 @@
-package com.diagbot.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2019年5月6日 下午6:45:29
- */
-@Getter
-@Setter
-public class IndexConfigDTO {
-	
-	private Long uniqueId;// 指标公表概念id
-	
-	private Long diseaseId;// 疾病概念id
-
-	private Integer groupType;// 指标项组别
-	
-	private Integer orderNo;// 显示顺序
-	
-	private String indexUnique;// 指标公表名
-
-	private String diseaseName;// 疾病概念名
-
-}
+package com.diagbot.dto;
+
+import com.diagbot.annotation.CryptField;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年5月6日 下午6:45:29
+ */
+@Getter
+@Setter
+public class IndexConfigDTO {
+	
+	private Long uniqueId;// 指标公表概念id
+	
+	private Long diseaseId;// 疾病概念id
+
+	private Integer groupType;// 指标项组别
+	
+	private Integer orderNo;// 显示顺序
+	@CryptField
+	private String indexUnique;// 指标公表名
+	@CryptField
+	private String diseaseName;// 疾病概念名
+
+}

+ 26 - 26
aipt-service/src/main/java/com/diagbot/dto/IndexDTO.java

@@ -1,26 +1,26 @@
-package com.diagbot.dto;
-
-import java.util.Date;
-import java.util.List;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2019年5月6日 下午8:09:16
- */
-@Getter
-@Setter
-public class IndexDTO {
-	
-	private String itemName; // 指标名称
-	private Long uniqueId;
-	private Integer groupType;
-	private List<String> indexUnit;//单位
-	private List<Integer> isAbnormal;//是否异常
-	private List<String> indexValue; 
-	private List<Date> creatTime;
-}
+package com.diagbot.dto;
+
+import java.util.Date;
+import java.util.List;
+
+import com.diagbot.annotation.CryptField;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年5月6日 下午8:09:16
+ */
+@Getter
+@Setter
+public class IndexDTO {
+	private String itemName; // 指标名称
+	private Long uniqueId;
+	private Integer groupType;
+	private List<String> indexUnit;//单位
+	private List<Integer> isAbnormal;//是否异常
+	private List<String> indexValue; 
+	private List<Date> creatTime;
+}

+ 4 - 0
aipt-service/src/main/java/com/diagbot/dto/RetrievalDTO.java

@@ -1,5 +1,6 @@
 package com.diagbot.dto;
 package com.diagbot.dto;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -12,12 +13,14 @@ import lombok.Setter;
 @Setter
 @Setter
 public class RetrievalDTO {
 public class RetrievalDTO {
     //标签名称
     //标签名称
+    @CryptField
     private String name;
     private String name;
     //标签id
     //标签id
     private Long questionId;
     private Long questionId;
     //显示类型(静态知识出参时:0.同义词 1.本体 11.子项推出父项 21.(父项--子项)公表名)
     //显示类型(静态知识出参时:0.同义词 1.本体 11.子项推出父项 21.(父项--子项)公表名)
     private Long showType;
     private Long showType;
     //Tag名称
     //Tag名称
+    @CryptField
     private String retrievalName;
     private String retrievalName;
     //概念id
     //概念id
     private Long conceptId;
     private Long conceptId;
@@ -28,6 +31,7 @@ public class RetrievalDTO {
     //icss标签type
     //icss标签type
     private Integer type;
     private Integer type;
     //公表名称
     //公表名称
+    @CryptField
     private String uniqueName;
     private String uniqueName;
     //公表ID
     //公表ID
     private Long uniqueId;
     private Long uniqueId;

+ 3 - 0
aipt-service/src/main/java/com/diagbot/dto/ScaleIndexDTO.java

@@ -1,5 +1,6 @@
 package com.diagbot.dto;
 package com.diagbot.dto;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -12,7 +13,9 @@ import lombok.Setter;
 @Setter
 @Setter
 public class ScaleIndexDTO {
 public class ScaleIndexDTO {
     private Long conceptId; // 概念id
     private Long conceptId; // 概念id
+    @CryptField
     private String name;    //概念名称
     private String name;    //概念名称
+    @CryptField
     private String searchName; // 检索名称
     private String searchName; // 检索名称
     private Integer showType; // 显示类型
     private Integer showType; // 显示类型
     private Integer fromDis; // 结果是否来自诊断
     private Integer fromDis; // 结果是否来自诊断

+ 16 - 0
aipt-service/src/main/java/com/diagbot/dto/UsualDTO.java

@@ -0,0 +1,16 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description: 概念出参基础实体类
+ * @author: zhoutg
+ * @time: 2019/5/7 9:44
+ */
+@Getter
+@Setter
+public class UsualDTO extends ConceptBaseDTO{
+    private String description; // 描述
+    private String explains;   // 详细说明
+}

+ 4 - 0
aipt-service/src/main/java/com/diagbot/entity/ConceptDetail.java

@@ -3,6 +3,7 @@ package com.diagbot.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.diagbot.annotation.CryptField;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.Date;
@@ -59,16 +60,19 @@ public class ConceptDetail implements Serializable {
     /**
     /**
      * 提示明细标题
      * 提示明细标题
      */
      */
+    @CryptField
     private String title;
     private String title;
 
 
     /**
     /**
      * 提示明细内容
      * 提示明细内容
      */
      */
+    @CryptField
     private String content;
     private String content;
 
 
     /**
     /**
      * 纯文本
      * 纯文本
      */
      */
+    @CryptField
     private String text;
     private String text;
 
 
     /**
     /**

+ 2 - 0
aipt-service/src/main/java/com/diagbot/entity/DiseaseIcd.java

@@ -3,6 +3,7 @@ package com.diagbot.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.diagbot.annotation.CryptField;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.Date;
@@ -76,6 +77,7 @@ public class DiseaseIcd implements Serializable {
     /**
     /**
      * 朗通疾病名称
      * 朗通疾病名称
      */
      */
+    @CryptField
     private String conceptDisName;
     private String conceptDisName;
 
 
     public String getConceptDisName() {
     public String getConceptDisName() {

+ 2 - 0
aipt-service/src/main/java/com/diagbot/entity/HospitalDept.java

@@ -3,6 +3,7 @@ package com.diagbot.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -78,6 +79,7 @@ public class HospitalDept implements Serializable {
     /**
     /**
      * 朗通科室名称
      * 朗通科室名称
      */
      */
+    @CryptField
     private String conceptDeptName;
     private String conceptDeptName;
 
 
     /**
     /**

+ 78 - 0
aipt-service/src/main/java/com/diagbot/entity/KlSymptom.java

@@ -0,0 +1,78 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 症状扩展表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-03-20
+ */
+@TableName("kl_symptom")
+@Getter
+@Setter
+public class KlSymptom implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 详细阐述
+     */
+    private String explains;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 2 - 1
aipt-service/src/main/java/com/diagbot/entity/Symptom.java

@@ -19,5 +19,6 @@ public class Symptom extends ConceptBaseDTO {
 
 
     @JsonIgnore
     @JsonIgnore
     private Long partConceptId;
     private Long partConceptId;
-    private String desc = ""; //简述
+    private String description;
+    private String explains;
 }
 }

+ 44 - 2
aipt-service/src/main/java/com/diagbot/facade/AssembleFacade.java

@@ -2,7 +2,7 @@ package com.diagbot.facade;
 
 
 import com.diagbot.biz.push.vo.SearchVO;
 import com.diagbot.biz.push.vo.SearchVO;
 import com.diagbot.client.bean.SearchData;
 import com.diagbot.client.bean.SearchData;
-import com.diagbot.util.BeanUtil;
+import com.diagbot.enums.SysTypeEnum;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 /**
 /**
@@ -20,7 +20,20 @@ public class AssembleFacade {
      */
      */
     public SearchData assembleData(SearchVO searchVO) {
     public SearchData assembleData(SearchVO searchVO) {
         SearchData searchData = new SearchData();
         SearchData searchData = new SearchData();
-        BeanUtil.copyProperties(searchVO, searchData);
+        //BeanUtil.copyProperties(searchVO, searchData);
+        searchData.setPasts(searchVO.getPasts());
+        searchData.setAge(searchVO.getAge());
+        searchData.setRuleType(searchVO.getRuleType());
+        searchData.setHosCode(searchVO.getHosCode());
+        searchData.setScaleName(searchVO.getScaleName());
+        searchData.setDisType(searchVO.getDisType());
+        searchData.setOther(searchVO.getOther());
+        searchData.setVital(searchVO.getVital());
+        if (searchVO.getSysType() == null) {
+            searchData.setSysType(SysTypeEnum.AIPT_SERVICE.getKey());
+        } else {
+            searchData.setSysType(searchVO.getSysType());
+        }
         switch (searchVO.getSex()) {
         switch (searchVO.getSex()) {
             case 1:
             case 1:
                 searchData.setSex("M");
                 searchData.setSex("M");
@@ -32,6 +45,35 @@ public class AssembleFacade {
                 searchData.setSex("A");
                 searchData.setSex("A");
                 break;
                 break;
         }
         }
+        searchData.setAllergy(searchVO.getAllergy());
+        searchData.setChief(searchVO.getChief());
+        searchData.setDiag(searchVO.getDiag());
+        searchData.setDiagOrder(searchVO.getDiagOrder());
+        searchData.setDiagString(searchVO.getDiagString());
+        searchData.setDiseaseName(searchVO.getDiseaseName());
+        searchData.setDrug(searchVO.getDrug());
+        searchData.setDrugOrder(searchVO.getDrugOrder());
+        searchData.setDrugString(searchVO.getDrugString());
+        searchData.setFamily(searchVO.getFamily());
+        searchData.setFeatureType(searchVO.getFeatureType());
+        searchData.setInfectious(searchVO.getInfectious());
+        searchData.setLength(searchVO.getLength());
+        searchData.setLis(searchVO.getLis());
+        searchData.setLisOrder(searchVO.getLisOrder());
+        searchData.setVital(searchVO.getVital());
+        searchData.setLisString(searchVO.getLisString());
+        searchData.setMarital(searchVO.getMarital());
+        searchData.setMarriage(searchVO.getMarriage());
+        searchData.setMenstrual(searchVO.getMenstrual());
+        searchData.setOperation(searchVO.getOperation());
+        searchData.setOperationOrder(searchVO.getOperationOrder());
+        searchData.setOtherOrder(searchVO.getOtherOrder());
+        searchData.setPacs(searchVO.getPacs());
+        searchData.setPacsOrder(searchVO.getPacsOrder());
+        searchData.setPacsString(searchVO.getPacsString());
+        searchData.setPersonal(searchVO.getPersonal());
+        searchData.setSymptom(searchVO.getSymptom());
+        searchData.setVaccination(searchData.getVaccination());
         return searchData;
         return searchData;
     }
     }
 }
 }

+ 10 - 1
aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java

@@ -7,11 +7,13 @@ import com.diagbot.client.AIServiceClient;
 import com.diagbot.client.bean.CalculateData;
 import com.diagbot.client.bean.CalculateData;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.SearchData;
 import com.diagbot.client.bean.SearchData;
+import com.diagbot.config.CryptConfiguer;
 import com.diagbot.entity.ScaleContent;
 import com.diagbot.entity.ScaleContent;
 import com.diagbot.enums.ScaleTypeEnum;
 import com.diagbot.enums.ScaleTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.ScaleContentService;
 import com.diagbot.service.ScaleContentService;
+import com.diagbot.util.CryptUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -36,6 +38,8 @@ public class ClinicalFacade {
     private ScaleContentService scaleContentService;
     private ScaleContentService scaleContentService;
     @Autowired
     @Autowired
     private AssembleFacade assembleFacade;
     private AssembleFacade assembleFacade;
+    @Autowired
+    private CryptConfiguer cryptConfiguer;
 
 
     /**
     /**
      * 处理临床数据
      * 处理临床数据
@@ -64,7 +68,12 @@ public class ClinicalFacade {
         if (null == response) {
         if (null == response) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "量表没有返回结果");
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "量表没有返回结果");
         }
         }
-        List<ScaleContent> list = getContent(searchData.getScaleName(), JSON.toJSONString(response));
+        String scaleName = searchData.getScaleName();
+        //加密
+        if (cryptConfiguer.cryptFlag) {
+            scaleName = CryptUtil.encrypt_char(searchData.getScaleName());
+        }
+        List<ScaleContent> list = getContent(scaleName, JSON.toJSONString(response));
         return list;
         return list;
     }
     }
 
 

+ 19 - 10
aipt-service/src/main/java/com/diagbot/facade/ConceptDetailFacade.java

@@ -16,6 +16,7 @@ import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.ConceptDetailServiceImpl;
 import com.diagbot.service.impl.ConceptDetailServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.CryptUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.util.ParamConvertUtil;
@@ -233,7 +234,10 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
     public List<ConceptIntroduceVO> convertParam(ConnectIntroduceVO connectIntroduceVO) {
     public List<ConceptIntroduceVO> convertParam(ConnectIntroduceVO connectIntroduceVO) {
         List<ConceptIntroduceVO> retList = Lists.newLinkedList();
         List<ConceptIntroduceVO> retList = Lists.newLinkedList();
         List<String> nameList = Lists.newLinkedList();
         List<String> nameList = Lists.newLinkedList();
-        nameList.add(connectIntroduceVO.getName());
+        nameList.add(CryptUtil.decrypt_char(connectIntroduceVO.getName()));
+        if (connectIntroduceVO.getSysType() == null) {
+            connectIntroduceVO.setSysType(SysTypeEnum.AIPT_SERVICE.getKey());
+        }
         if (!connectIntroduceVO.getSysType().equals(SysTypeEnum.LTAPI_SERVICE.getKey())) {
         if (!connectIntroduceVO.getSysType().equals(SysTypeEnum.LTAPI_SERVICE.getKey())) {
             ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
             ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
             BeanUtil.copyProperties(connectIntroduceVO, conceptIntroduceVO);
             BeanUtil.copyProperties(connectIntroduceVO, conceptIntroduceVO);
@@ -248,17 +252,17 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
             if (connectIntroduceVO.getType().equals(ConceptTypeEnum.Lis.getKey())) {
             if (connectIntroduceVO.getType().equals(ConceptTypeEnum.Lis.getKey())) {
                 Map<String, Map<String, List<String>>> lisConfigMap
                 Map<String, Map<String, List<String>>> lisConfigMap
                         = transferFacade.getLisConfigByMealNameAndHosCode(nameList, connectIntroduceVO.getHosCode());
                         = transferFacade.getLisConfigByMealNameAndHosCode(nameList, connectIntroduceVO.getHosCode());
-                if (lisConfigMap.get(connectIntroduceVO.getName()) != null) {
-                    Map<String, List<String>> itemMap = lisConfigMap.get(connectIntroduceVO.getName());
+                if (lisConfigMap.get(CryptUtil.decrypt_char(connectIntroduceVO.getName())) != null) {
+                    Map<String, List<String>> itemMap = lisConfigMap.get(CryptUtil.decrypt_char(connectIntroduceVO.getName()));
                     if (StringUtil.isBlank(connectIntroduceVO.getDetailName())) {
                     if (StringUtil.isBlank(connectIntroduceVO.getDetailName())) {
-                        connectIntroduceVO.setDetailName("");
+                        connectIntroduceVO.setDetailName(CryptUtil.encrypt_char(""));
                     }
                     }
-                    List<String> uniqueNameList = itemMap.get(connectIntroduceVO.getDetailName());
+                    List<String> uniqueNameList = itemMap.get(CryptUtil.decrypt_char(connectIntroduceVO.getDetailName()));
                     if (ListUtil.isNotEmpty(uniqueNameList)) {
                     if (ListUtil.isNotEmpty(uniqueNameList)) {
                         for (String uniqueName : uniqueNameList) {
                         for (String uniqueName : uniqueNameList) {
                             ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
                             ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
                             BeanUtil.copyProperties(connectIntroduceVO, conceptIntroduceVO);
                             BeanUtil.copyProperties(connectIntroduceVO, conceptIntroduceVO);
-                            conceptIntroduceVO.setName(uniqueName);
+                            conceptIntroduceVO.setName(CryptUtil.encrypt_char(uniqueName));
                             conceptIntroduceVO.setType(ConceptTypeEnum.LIS_TABLES.getKey());
                             conceptIntroduceVO.setType(ConceptTypeEnum.LIS_TABLES.getKey());
                             conceptIntroduceVO.setLibType(LexiconTypeEnum.LIS_TABLES.getKey());
                             conceptIntroduceVO.setLibType(LexiconTypeEnum.LIS_TABLES.getKey());
                             retList.add(conceptIntroduceVO);
                             retList.add(conceptIntroduceVO);
@@ -272,10 +276,10 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
                 RespDTO<Map<String, List<String>>> pacsRespDTO = tranServiceClient.getPacsConfig(pacsConfigVO);
                 RespDTO<Map<String, List<String>>> pacsRespDTO = tranServiceClient.getPacsConfig(pacsConfigVO);
                 if (RespDTOUtil.respIsOK(pacsRespDTO)) {
                 if (RespDTOUtil.respIsOK(pacsRespDTO)) {
                     Map<String, List<String>> pacsMap = pacsRespDTO.data;
                     Map<String, List<String>> pacsMap = pacsRespDTO.data;
-                    for (String pacsStr : pacsMap.get(connectIntroduceVO.getName())) {
+                    for (String pacsStr : pacsMap.get(CryptUtil.decrypt_char(connectIntroduceVO.getName()))) {
                         ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
                         ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
                         BeanUtil.copyProperties(connectIntroduceVO, conceptIntroduceVO);
                         BeanUtil.copyProperties(connectIntroduceVO, conceptIntroduceVO);
-                        conceptIntroduceVO.setName(pacsStr);
+                        conceptIntroduceVO.setName(CryptUtil.encrypt_char(pacsStr));
                         conceptIntroduceVO.setType(ConceptTypeEnum.Pacs.getKey());
                         conceptIntroduceVO.setType(ConceptTypeEnum.Pacs.getKey());
                         conceptIntroduceVO.setLibType(LexiconTypeEnum.PACS_ITEMS.getKey());
                         conceptIntroduceVO.setLibType(LexiconTypeEnum.PACS_ITEMS.getKey());
                         retList.add(conceptIntroduceVO);
                         retList.add(conceptIntroduceVO);
@@ -290,10 +294,10 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
                 RespDTO<Map<String, String>> disRespDTO = tranServiceClient.getDiseaseIcdMap(diseaseIcdVO);
                 RespDTO<Map<String, String>> disRespDTO = tranServiceClient.getDiseaseIcdMap(diseaseIcdVO);
                 if (RespDTOUtil.respIsOK(disRespDTO)) {
                 if (RespDTOUtil.respIsOK(disRespDTO)) {
                     disMap = disRespDTO.data;
                     disMap = disRespDTO.data;
-                    if (disMap.get(connectIntroduceVO.getName()) != null) {
+                    if (disMap.get(CryptUtil.decrypt_char(connectIntroduceVO.getName())) != null) {
                         ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
                         ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
                         BeanUtil.copyProperties(connectIntroduceVO, conceptIntroduceVO);
                         BeanUtil.copyProperties(connectIntroduceVO, conceptIntroduceVO);
-                        conceptIntroduceVO.setName(disMap.get(connectIntroduceVO.getName()));
+                        conceptIntroduceVO.setName(CryptUtil.encrypt_char(disMap.get(CryptUtil.decrypt_char(connectIntroduceVO.getName()))));
                         conceptIntroduceVO.setType(ConceptTypeEnum.Disease.getKey());
                         conceptIntroduceVO.setType(ConceptTypeEnum.Disease.getKey());
                         conceptIntroduceVO.setLibType(LexiconTypeEnum.DIAGNOSIS.getKey());
                         conceptIntroduceVO.setLibType(LexiconTypeEnum.DIAGNOSIS.getKey());
                         retList.add(conceptIntroduceVO);
                         retList.add(conceptIntroduceVO);
@@ -305,6 +309,11 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
                 conceptIntroduceVO.setLibType(ParamConvertUtil.conceptConvert2Lib(conceptIntroduceVO.getType()));
                 conceptIntroduceVO.setLibType(ParamConvertUtil.conceptConvert2Lib(conceptIntroduceVO.getType()));
                 retList.add(conceptIntroduceVO);
                 retList.add(conceptIntroduceVO);
             }
             }
+        } else {
+            ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
+            BeanUtil.copyProperties(connectIntroduceVO, conceptIntroduceVO);
+            conceptIntroduceVO.setLibType(ParamConvertUtil.conceptConvert2Lib(conceptIntroduceVO.getType()));
+            retList.add(conceptIntroduceVO);
         }
         }
         return retList;
         return retList;
     }
     }

+ 38 - 0
aipt-service/src/main/java/com/diagbot/facade/ConceptDetailTestFacade.java

@@ -0,0 +1,38 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.ConceptDetail;
+import com.diagbot.service.impl.ConceptDetailServiceImpl;
+import com.diagbot.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/12/30 20:24
+ */
+@Component
+public class ConceptDetailTestFacade extends ConceptDetailServiceImpl {
+
+    public ConceptDetail saveRecord(ConceptDetail conceptDetail) {
+        this.baseMapper.insert(conceptDetail);
+        return conceptDetail;
+    }
+
+    public ConceptDetail getByIds(Long id) {
+        return this.getById(id);
+    }
+
+    public List<ConceptDetail> getByParam(ConceptDetail conceptDetail) {
+        QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
+        if (StringUtil.isNotBlank(conceptDetail.getContent())) {
+            conceptDetailQueryWrapper.like("content", conceptDetail.getContent());
+        }
+        if (StringUtil.isNotBlank(conceptDetail.getText())) {
+            conceptDetailQueryWrapper.like("text", conceptDetail.getText());
+        }
+        return this.list(conceptDetailQueryWrapper);
+    }
+}

+ 110 - 3
aipt-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -1,11 +1,15 @@
 package com.diagbot.facade;
 package com.diagbot.facade;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.config.CryptConfiguer;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.dto.ConceptRetrievalDTO;
+import com.diagbot.dto.ConceptRetrievalExtDTO;
 import com.diagbot.dto.ConceptWithOrderRes;
 import com.diagbot.dto.ConceptWithOrderRes;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.dto.RetrievalDTO;
+import com.diagbot.dto.UsualDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.Concept;
+import com.diagbot.entity.KlSymptom;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.IsDeleteEnum;
@@ -16,6 +20,7 @@ import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.ConceptServiceImpl;
 import com.diagbot.service.impl.ConceptServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.CryptUtil;
 import com.diagbot.util.IntegerUtil;
 import com.diagbot.util.IntegerUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.util.ParamConvertUtil;
@@ -46,6 +51,10 @@ import java.util.stream.Collectors;
 public class ConceptFacade extends ConceptServiceImpl {
 public class ConceptFacade extends ConceptServiceImpl {
     @Autowired
     @Autowired
     ConceptDetailFacade conceptDetailFacade;
     ConceptDetailFacade conceptDetailFacade;
+    @Autowired
+    CryptConfiguer configuer;
+    @Autowired
+    KlSymptomFacade klSymptomFacade;
 
 
     /**
     /**
      * 验证存在并且获取概念基本信息
      * 验证存在并且获取概念基本信息
@@ -99,8 +108,12 @@ public class ConceptFacade extends ConceptServiceImpl {
         //出参封装
         //出参封装
         Map<Long, String> map = new HashMap<>();
         Map<Long, String> map = new HashMap<>();
         if (ListUtil.isNotEmpty(concepts)) {
         if (ListUtil.isNotEmpty(concepts)) {
-            map = concepts.stream().collect(Collectors.toMap(r -> r.getId(), r -> r.getLibName()));
+            map = concepts
+                    .stream()
+                    .collect(Collectors.toMap(r -> r.getId(),
+                            r -> configuer.cryptFlag ? CryptUtil.decrypt_char(r.getLibName()) : r.getLibName()));
         }
         }
+
         return map;
         return map;
     }
     }
 
 
@@ -131,8 +144,12 @@ public class ConceptFacade extends ConceptServiceImpl {
         //出参封装
         //出参封装
         Map<Long, String> map = new HashMap<>();
         Map<Long, String> map = new HashMap<>();
         if (ListUtil.isNotEmpty(concepts)) {
         if (ListUtil.isNotEmpty(concepts)) {
-            map = concepts.stream().collect(Collectors.toMap(r -> r.getConceptId(), r -> r.getName()));
+            map = concepts
+                    .stream()
+                    .collect(Collectors.toMap(r -> r.getConceptId(),
+                            r -> configuer.cryptFlag ? CryptUtil.decrypt_char(r.getName()) : r.getName()));
         }
         }
+
         return map;
         return map;
     }
     }
 
 
@@ -211,6 +228,9 @@ public class ConceptFacade extends ConceptServiceImpl {
             conceptExistVO.setLibType(libType);
             conceptExistVO.setLibType(libType);
         }
         }
 
 
+        if (configuer.cryptFlag) {
+            CryptUtil.encryptList(conceptExistVO.getNameList());
+        }
         //获取结构
         //获取结构
         List<Concept> concepts
         List<Concept> concepts
                 = this.getListByNamesAndType(conceptExistVO.getNameList(), conceptExistVO.getLibType());
                 = this.getListByNamesAndType(conceptExistVO.getNameList(), conceptExistVO.getLibType());
@@ -218,7 +238,11 @@ public class ConceptFacade extends ConceptServiceImpl {
         //出参封装
         //出参封装
         Map<String, Long> map = new HashMap<>();
         Map<String, Long> map = new HashMap<>();
         if (ListUtil.isNotEmpty(concepts)) {
         if (ListUtil.isNotEmpty(concepts)) {
-            map = concepts.stream().collect(Collectors.toMap(r -> r.getLibName(), r -> r.getId()));
+            map = concepts
+                    .stream()
+                    .collect(Collectors.toMap(
+                            r -> configuer.cryptFlag ? CryptUtil.decrypt_char(r.getLibName()) : r.getLibName(),
+                            r -> r.getId()));
         }
         }
         return map;
         return map;
     }
     }
@@ -264,6 +288,36 @@ public class ConceptFacade extends ConceptServiceImpl {
         return list;
         return list;
     }
     }
 
 
+
+    /**
+     * 获取常用标签包含通俗解释和详细说明
+     *
+     * @param conceptUsualVO
+     * @return
+     */
+    public List<UsualDTO> getConceptExtUsual(ConceptUsualVO conceptUsualVO) {
+        List<UsualDTO> res = new ArrayList<>();
+        List<ConceptBaseDTO> list = getConceptUsual(conceptUsualVO);
+        if (ListUtil.isNotEmpty(list)) {
+            List<KlSymptom> klSymptomList = klSymptomFacade.list(new QueryWrapper<KlSymptom>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .in("concept_id", list.stream().map(r -> r.getConceptId()).collect(Collectors.toList()))
+            );
+            Map<Long, KlSymptom> map = klSymptomList.stream().collect(Collectors.toMap(r -> r.getConceptId(), r -> r));
+            for (ConceptBaseDTO conceptBaseDTO : list) {
+                UsualDTO usualDTO = new UsualDTO();
+                BeanUtil.copyProperties(conceptBaseDTO, usualDTO);
+                if (map != null && map.get(conceptBaseDTO.getConceptId()) != null) {
+                    usualDTO.setDescription(map.get(conceptBaseDTO.getConceptId()).getDescription());
+                    usualDTO.setExplains(map.get(conceptBaseDTO.getConceptId()).getExplains());
+                }
+                res.add(usualDTO);
+            }
+        }
+        return res;
+    }
+
+
     /**
     /**
      * 概念id检索
      * 概念id检索
      *
      *
@@ -356,6 +410,35 @@ public class ConceptFacade extends ConceptServiceImpl {
     }
     }
 
 
 
 
+    /**
+     * 概念id检索,附带通俗解释和详细说明
+     *
+     * @param retrievalVO
+     * @urn
+     */
+    public List<ConceptRetrievalExtDTO> retrivelConceptInfoExt(RetrievalVO retrievalVO) {
+        List<ConceptRetrievalExtDTO> res = new ArrayList<>();
+        List<ConceptRetrievalDTO> list = retrivelConceptInfo(retrievalVO);
+        if (ListUtil.isNotEmpty(list)) {
+            List<KlSymptom> klSymptomList = klSymptomFacade.list(new QueryWrapper<KlSymptom>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .in("concept_id", list.stream().map(r -> r.getSelfId()).collect(Collectors.toList()))
+            );
+            Map<Long, KlSymptom> map = klSymptomList.stream().collect(Collectors.toMap(r -> r.getConceptId(), r -> r));
+            for (ConceptRetrievalDTO conceptBaseDTO : list) {
+                ConceptRetrievalExtDTO conceptRetrievalExtDTO = new ConceptRetrievalExtDTO();
+                BeanUtil.copyProperties(conceptBaseDTO, conceptRetrievalExtDTO);
+                if (map != null && conceptBaseDTO.getSelfId() != null && map.get(conceptBaseDTO.getSelfId()) != null) {
+                    conceptRetrievalExtDTO.setDescription(map.get(conceptBaseDTO.getSelfId()).getDescription());
+                    conceptRetrievalExtDTO.setExplains(map.get(conceptBaseDTO.getSelfId()).getExplains());
+                }
+                res.add(conceptRetrievalExtDTO);
+            }
+        }
+        return res;
+    }
+
+
     /**
     /**
      * 静态知识标签检索
      * 静态知识标签检索
      *
      *
@@ -416,4 +499,28 @@ public class ConceptFacade extends ConceptServiceImpl {
     public List<ConceptBaseDTO> indexConceptFac(ConceptBaseVO conceptBaseVO) {
     public List<ConceptBaseDTO> indexConceptFac(ConceptBaseVO conceptBaseVO) {
         return this.indexConcept(conceptBaseVO);
         return this.indexConcept(conceptBaseVO);
     }
     }
+
+    /**
+     * 查询带名词解释的症状术语
+     *
+     * @param names
+     * @return
+     */
+    public Map<String, KlSymptom> getSymptomWithExplain(List<String> names, Integer type) {
+        List<Concept> concepts = this.list(new QueryWrapper<Concept>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("lib_type", type)
+                .in(ListUtil.isNotEmpty(names), "lib_name", names));
+        List<Long> conceptIds = concepts.stream().map(item -> item.getId()).collect(Collectors.toList());
+        List<KlSymptom> klSymptoms = klSymptomFacade.list(new QueryWrapper<KlSymptom>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in(ListUtil.isNotEmpty(conceptIds), "concept_id", conceptIds));
+        Map<Long, KlSymptom> klSymptomMap
+                = klSymptoms.stream().collect(Collectors.toMap(item -> item.getConceptId(), item -> item));
+        Map<String, KlSymptom> retMap = new HashMap<>();
+        for (Concept concept : concepts) {
+            retMap.put(concept.getLibName(), klSymptomMap.get(concept.getId()));
+        }
+        return retMap;
+    }
 }
 }

+ 7 - 0
aipt-service/src/main/java/com/diagbot/facade/DisScaleFacade.java

@@ -1,5 +1,6 @@
 package com.diagbot.facade;
 package com.diagbot.facade;
 
 
+import com.diagbot.config.CryptConfiguer;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptWithOrderRes;
 import com.diagbot.dto.ConceptWithOrderRes;
 import com.diagbot.dto.DisScaleDTO;
 import com.diagbot.dto.DisScaleDTO;
@@ -8,6 +9,7 @@ import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.enums.LexiconRSTypeEnum;
 import com.diagbot.enums.LexiconRSTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.service.impl.DisScaleServiceImpl;
 import com.diagbot.service.impl.DisScaleServiceImpl;
+import com.diagbot.util.CryptUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.DisScaleVO;
 import com.diagbot.vo.DisScaleVO;
@@ -29,6 +31,8 @@ public class DisScaleFacade extends DisScaleServiceImpl {
 
 
     @Autowired
     @Autowired
     ConceptFacade conceptFacade;
     ConceptFacade conceptFacade;
+    @Autowired
+    private CryptConfiguer cryptConfiguer;
 
 
     /**
     /**
      * 返回诊断量表列表
      * 返回诊断量表列表
@@ -74,6 +78,9 @@ public class DisScaleFacade extends DisScaleServiceImpl {
         scaleIndexVO.setStartType(LexiconTypeEnum.DIAGNOSIS.getKey());
         scaleIndexVO.setStartType(LexiconTypeEnum.DIAGNOSIS.getKey());
         scaleIndexVO.setRelationType(LexiconRSTypeEnum.ORDER_BY.getKey());
         scaleIndexVO.setRelationType(LexiconRSTypeEnum.ORDER_BY.getKey());
         scaleIndexVO.setEndType(LexiconTypeEnum.GAUGE.getKey());
         scaleIndexVO.setEndType(LexiconTypeEnum.GAUGE.getKey());
+        if (cryptConfiguer.cryptFlag) {
+            CryptUtil.encryptList(scaleIndexVO.getFilterName());
+        }
         List<ScaleIndexDTO> data = this.indexScale(scaleIndexVO);
         List<ScaleIndexDTO> data = this.indexScale(scaleIndexVO);
         List<ScaleIndexDTO> res = new ArrayList<>();
         List<ScaleIndexDTO> res = new ArrayList<>();
         List<Long> selfList = new ArrayList<>(); // 本体
         List<Long> selfList = new ArrayList<>(); // 本体

+ 20 - 2
aipt-service/src/main/java/com/diagbot/facade/DisTypeFacade.java

@@ -1,5 +1,6 @@
 package com.diagbot.facade;
 package com.diagbot.facade;
 
 
+import com.diagbot.config.CryptConfiguer;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.DisDTO;
 import com.diagbot.dto.DisDTO;
 import com.diagbot.dto.DisTypeDTO;
 import com.diagbot.dto.DisTypeDTO;
@@ -9,6 +10,7 @@ import com.diagbot.enums.DisTypeEnum;
 import com.diagbot.enums.LexiconRSTypeEnum;
 import com.diagbot.enums.LexiconRSTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.service.impl.DisTypeServiceImpl;
 import com.diagbot.service.impl.DisTypeServiceImpl;
+import com.diagbot.util.CryptUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptBaseVO;
@@ -30,6 +32,8 @@ public class DisTypeFacade extends DisTypeServiceImpl {
 
 
     @Autowired
     @Autowired
     ConceptFacade conceptFacade;
     ConceptFacade conceptFacade;
+    @Autowired
+    private CryptConfiguer cryptConfiguer;
 
 
     /**
     /**
      * 返回诊断类型
      * 返回诊断类型
@@ -57,11 +61,22 @@ public class DisTypeFacade extends DisTypeServiceImpl {
         }
         }
         Map<String, List<DisDTO>> map = EntityUtil.makeEntityListMap(data, "typeName");
         Map<String, List<DisDTO>> map = EntityUtil.makeEntityListMap(data, "typeName");
         if (map != null) {
         if (map != null) {
-            List<DisDTO> chr = map.get(DisTypeEnum.CHRONIC.getName()); //放入慢病列表
+            String typeName = "";
+            if (cryptConfiguer.cryptFlag) {
+                typeName = CryptUtil.encrypt_char(DisTypeEnum.CHRONIC.getName());
+            } else {
+                typeName = DisTypeEnum.CHRONIC.getName();
+            }
+            List<DisDTO> chr = map.get(typeName); //放入慢病列表
             if (ListUtil.isNotEmpty(chr)) {
             if (ListUtil.isNotEmpty(chr)) {
                 res.setChronic(chr);
                 res.setChronic(chr);
             }
             }
-            List<DisDTO> eme = map.get(DisTypeEnum.EMERGENCY.getName()); //放入急诊列表
+            if (cryptConfiguer.cryptFlag) {
+                typeName = CryptUtil.encrypt_char(DisTypeEnum.EMERGENCY.getName());
+            } else {
+                typeName = DisTypeEnum.EMERGENCY.getName();
+            }
+            List<DisDTO> eme = map.get(typeName); //放入急诊列表
             if (ListUtil.isNotEmpty(eme)) {
             if (ListUtil.isNotEmpty(eme)) {
                 res.setEmergency(eme);
                 res.setEmergency(eme);
             }
             }
@@ -81,6 +96,9 @@ public class DisTypeFacade extends DisTypeServiceImpl {
         conceptBaseVO.setLibType(LexiconTypeEnum.DIAGNOSIS.getKey());
         conceptBaseVO.setLibType(LexiconTypeEnum.DIAGNOSIS.getKey());
         Concept disease = conceptFacade.exist(conceptBaseVO);
         Concept disease = conceptFacade.exist(conceptBaseVO);
         String disTypeName = DisTypeEnum.getName(disTypeVO.getDisType());
         String disTypeName = DisTypeEnum.getName(disTypeVO.getDisType());
+        if (cryptConfiguer.cryptFlag) {
+            disTypeName = CryptUtil.encrypt_char(disTypeName);
+        }
         conceptBaseVO.setName(disTypeName);
         conceptBaseVO.setName(disTypeName);
         conceptBaseVO.setLibType(LexiconTypeEnum.TYPES_OF_DISEASE.getKey());
         conceptBaseVO.setLibType(LexiconTypeEnum.TYPES_OF_DISEASE.getKey());
         Concept disTypeConcept = conceptFacade.exist(conceptBaseVO);
         Concept disTypeConcept = conceptFacade.exist(conceptBaseVO);

+ 3 - 0
aipt-service/src/main/java/com/diagbot/facade/DiseaseIcdFacade.java

@@ -2,6 +2,7 @@ package com.diagbot.facade;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.client.TranServiceClient;
+import com.diagbot.config.CryptConfiguer;
 import com.diagbot.dto.DiseaseIcdDTO;
 import com.diagbot.dto.DiseaseIcdDTO;
 import com.diagbot.dto.GetDiseaseIcdDTO;
 import com.diagbot.dto.GetDiseaseIcdDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
@@ -9,8 +10,10 @@ import com.diagbot.entity.Concept;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.CryptUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.RespDTOUtil;
+import com.diagbot.util.StringUtil;
 import com.diagbot.vo.GetDiseaseIcdVO;
 import com.diagbot.vo.GetDiseaseIcdVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;

+ 16 - 7
aipt-service/src/main/java/com/diagbot/facade/EvaluationFacade.java

@@ -2,9 +2,11 @@ package com.diagbot.facade;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.diagbot.biz.push.vo.SearchVO;
 import com.diagbot.biz.push.vo.SearchVO;
+import com.diagbot.config.CryptConfiguer;
 import com.diagbot.dto.EvaluationDTO;
 import com.diagbot.dto.EvaluationDTO;
 import com.diagbot.service.impl.EvaluationServiceImpl;
 import com.diagbot.service.impl.EvaluationServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.CryptUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.EvaluationDiseaseNameVO;
 import com.diagbot.vo.EvaluationDiseaseNameVO;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Lists;
@@ -19,6 +21,8 @@ public class EvaluationFacade extends EvaluationServiceImpl {
 
 
     @Autowired
     @Autowired
     PushFacade pushFacade;
     PushFacade pushFacade;
+    @Autowired
+    private CryptConfiguer cryptConfiguer;
 
 
     /**
     /**
      * 获取管理与评估模板接口
      * 获取管理与评估模板接口
@@ -31,16 +35,21 @@ public class EvaluationFacade extends EvaluationServiceImpl {
             return Lists.newArrayList();
             return Lists.newArrayList();
         }
         }
 
 
+        Map<String, JSONObject> jsonobject = pushFacade.getManagementEvaluationContent(searchVO);
         EvaluationDiseaseNameVO evaluationdiseaseNameVO = new EvaluationDiseaseNameVO();
         EvaluationDiseaseNameVO evaluationdiseaseNameVO = new EvaluationDiseaseNameVO();
         BeanUtil.copyProperties(searchVO, evaluationdiseaseNameVO);
         BeanUtil.copyProperties(searchVO, evaluationdiseaseNameVO);
-        List<EvaluationDTO> evaluationList = this.getEvaluationModule(evaluationdiseaseNameVO);
 
 
-        Map<String, JSONObject> jsonobject = pushFacade.getManagementEvaluationContent(searchVO);
-        for (String key : jsonobject.keySet()) {
-            for (EvaluationDTO evaluadata : evaluationList) {
-                if (key.equals(evaluadata.getRegionName())) {
-                    evaluadata.setData(jsonobject.get(key));
-                }
+        if (cryptConfiguer.cryptFlag) {
+            evaluationdiseaseNameVO.getDiseaseName().setUniqueName(CryptUtil.encrypt_char(evaluationdiseaseNameVO.getDiseaseName().getUniqueName()));
+        }
+
+        List<EvaluationDTO> evaluationList = this.getEvaluationModule(evaluationdiseaseNameVO);
+        if (jsonobject == null) {
+            return evaluationList;
+        }
+        for (EvaluationDTO evaluadata : evaluationList) {
+            if (jsonobject.containsKey(evaluadata.getRegionName())) {
+                evaluadata.setData(jsonobject.get(evaluadata.getRegionName()));
             }
             }
         }
         }
         return evaluationList;
         return evaluationList;

+ 25 - 10
aipt-service/src/main/java/com/diagbot/facade/FeatureFacade.java

@@ -1,12 +1,12 @@
 package com.diagbot.facade;
 package com.diagbot.facade;
 
 
 import com.diagbot.dto.FeatureConceptDTO;
 import com.diagbot.dto.FeatureConceptDTO;
-import com.diagbot.entity.Concept;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.exception.CommonException;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.util.ParamConvertUtil;
+import com.diagbot.vo.ConceptNameVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
@@ -41,24 +41,39 @@ public class FeatureFacade {
 
 
         Map<Integer, List<FeatureConceptDTO>> symptomMap
         Map<Integer, List<FeatureConceptDTO>> symptomMap
                 = EntityUtil.makeEntityListMap(symptomFeatureList, "libType");
                 = EntityUtil.makeEntityListMap(symptomFeatureList, "libType");
-        Map<Integer, Map<String, Long>> map = new LinkedHashMap<>();
+        Map<Integer, Map<String, FeatureConceptDTO>> map = new LinkedHashMap<>();
         for (Map.Entry<Integer, List<FeatureConceptDTO>> entry : symptomMap.entrySet()) {
         for (Map.Entry<Integer, List<FeatureConceptDTO>> entry : symptomMap.entrySet()) {
-            List<Concept> concepts
-                    = conceptFacade.getListByNamesAndType(entry.getValue()
+            List<String> names = entry.getValue()
                     .stream()
                     .stream()
                     .map(i -> i.getName())
                     .map(i -> i.getName())
-                    .collect(Collectors.toList()), entry.getKey());
-            Map<String, Long> conceptMap
-                    = EntityUtil.makeMapWithKeyValue(concepts, "libName", "id");
+                    .collect(Collectors.toList());
+            ConceptNameVO conceptNameVO = new ConceptNameVO();
+            conceptNameVO.setNames(names);
+            conceptNameVO.setType(entry.getKey());
+            List<FeatureConceptDTO> featureConcepts = conceptFacade.getFeatureConcept(conceptNameVO);
+            Map<String, FeatureConceptDTO> conceptMap
+                    = EntityUtil.makeEntityMap(featureConcepts, "origin");
             map.put(entry.getKey(), conceptMap);
             map.put(entry.getKey(), conceptMap);
         }
         }
 
 
         for (FeatureConceptDTO featureConceptDTO : symptomFeatureList) {
         for (FeatureConceptDTO featureConceptDTO : symptomFeatureList) {
             if (null != featureConceptDTO.getLibType()) {
             if (null != featureConceptDTO.getLibType()) {
                 featureConceptDTO.setType(ParamConvertUtil.libConvert2Concept(featureConceptDTO.getLibType()));
                 featureConceptDTO.setType(ParamConvertUtil.libConvert2Concept(featureConceptDTO.getLibType()));
-                featureConceptDTO.setConceptId(map
-                        .get(featureConceptDTO.getLibType())
-                        .get(featureConceptDTO.getName()));
+                if (map.containsKey(featureConceptDTO.getLibType())
+                        && map.get(featureConceptDTO.getLibType()).containsKey(featureConceptDTO.getName())) {
+                    featureConceptDTO.setConceptId(map
+                            .get(featureConceptDTO.getLibType())
+                            .get(featureConceptDTO.getName())
+                            .getConceptId());
+                    featureConceptDTO.setOrigin(map
+                            .get(featureConceptDTO.getLibType())
+                            .get(featureConceptDTO.getName())
+                            .getOrigin());
+                    featureConceptDTO.setName(map
+                            .get(featureConceptDTO.getLibType())
+                            .get(featureConceptDTO.getName())
+                            .getName());
+                }
             }
             }
         }
         }
         return symptomFeatureList;
         return symptomFeatureList;

+ 75 - 0
aipt-service/src/main/java/com/diagbot/facade/FeatureV2Facade.java

@@ -0,0 +1,75 @@
+package com.diagbot.facade;
+
+import com.diagbot.client.AINeoServiceClient;
+import com.diagbot.dto.FeatureDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.Concept;
+import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.RespDTOUtil;
+import com.diagbot.vo.NLPVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/4/26 13:46
+ */
+@Component
+public class FeatureV2Facade {
+    @Autowired
+    private AINeoServiceClient aiNeoServiceClient;
+    @Autowired
+    private ConceptFacade conceptFacade;
+
+    /**
+     * 特征词提取
+     *
+     * @param nlpvo
+     * @return
+     */
+    public List<FeatureDTO> extract(NLPVO nlpvo) {
+        RespDTO<List<FeatureDTO>> respDTO = aiNeoServiceClient.extract(nlpvo);
+        RespDTOUtil.respNGDealCover(respDTO, "特征词提取失败");
+        return respDTO.data;
+    }
+
+    /**
+     * 症状特征词提取
+     *
+     * @param nlpvo
+     * @return
+     */
+    public List<FeatureDTO> symptomFeatureV2(NLPVO nlpvo) {
+        List<FeatureDTO> featureList = extract(nlpvo);
+        if (ListUtil.isNotEmpty(featureList)) {
+            List<FeatureDTO> symptoms = featureList
+                    .stream()
+                    .filter(i -> i.getType().equals(1))
+                    .collect(Collectors.toList());
+            List<String> names = symptoms
+                    .stream()
+                    .map(i -> i.getStandard())
+                    .collect(Collectors.toList());
+            List<Concept> concepts = conceptFacade.getListByNamesAndType(names, LexiconTypeEnum.SYMPTOM.getKey());
+            Map<String, Long> conceptMap
+                    = EntityUtil.makeMapWithKeyValue(concepts, "libName", "id");
+            symptoms.forEach(symptom -> {
+                if (conceptMap.containsKey(symptom.getStandard())) {
+                    symptom.setConceptId(conceptMap.get(symptom.getStandard()));
+                }
+            });
+            return symptoms;
+        } else {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "未提取到症状特征");
+        }
+    }
+}

+ 10 - 0
aipt-service/src/main/java/com/diagbot/facade/KlSymptomFacade.java

@@ -0,0 +1,10 @@
+package com.diagbot.facade;
+
+import com.diagbot.service.impl.KlSymptomServiceImpl;
+import org.springframework.stereotype.Component;
+
+@Component
+public class KlSymptomFacade extends KlSymptomServiceImpl {
+
+
+}

+ 26 - 3
aipt-service/src/main/java/com/diagbot/facade/LisMappingFacade.java

@@ -1,11 +1,14 @@
 package com.diagbot.facade;
 package com.diagbot.facade;
 
 
+import com.diagbot.config.CryptConfiguer;
 import com.diagbot.entity.wrapper.LisMappingWrapper;
 import com.diagbot.entity.wrapper.LisMappingWrapper;
 import com.diagbot.service.impl.LisMappingServiceImpl;
 import com.diagbot.service.impl.LisMappingServiceImpl;
+import com.diagbot.util.CryptUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.GetLisMappingVO;
 import com.diagbot.vo.GetLisMappingVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import java.util.LinkedHashMap;
 import java.util.LinkedHashMap;
@@ -18,10 +21,13 @@ import java.util.Map;
  * @time: 2019/9/20 13:14
  * @time: 2019/9/20 13:14
  */
  */
 @Component
 @Component
-public class LisMappingFacade  extends LisMappingServiceImpl {
+public class LisMappingFacade extends LisMappingServiceImpl {
+    @Autowired
+    private CryptConfiguer cryptConfiguer;
 
 
     /**
     /**
      * 获取化验公表映射关系 Map<mealName,Map<itemName,uniqueName>> itemName 不为空
      * 获取化验公表映射关系 Map<mealName,Map<itemName,uniqueName>> itemName 不为空
+     *
      * @param mealName
      * @param mealName
      * @return
      * @return
      */
      */
@@ -30,6 +36,18 @@ public class LisMappingFacade  extends LisMappingServiceImpl {
         LisMappingWrapper lisMappingWrapper = new LisMappingWrapper();
         LisMappingWrapper lisMappingWrapper = new LisMappingWrapper();
         lisMappingWrapper.setMealName(mealName);
         lisMappingWrapper.setMealName(mealName);
         List<LisMappingWrapper> lisMappingWrapperList = this.getLisMappingByName(lisMappingWrapper);
         List<LisMappingWrapper> lisMappingWrapperList = this.getLisMappingByName(lisMappingWrapper);
+        if (ListUtil.isEmpty(lisMappingWrapperList)) {
+            return retMap;
+        }
+
+        //解密
+        if (cryptConfiguer.cryptFlag) {
+            for (LisMappingWrapper lisMap : lisMappingWrapperList) {
+                lisMap.setItemName(CryptUtil.decrypt_char(lisMap.getItemName()));
+                lisMap.setMealName(CryptUtil.decrypt_char(lisMap.getMealName()));
+                lisMap.setUniqueName(CryptUtil.decrypt_char(lisMap.getUniqueName()));
+            }
+        }
 
 
         Map<String, List<LisMappingWrapper>> lisMappingMap
         Map<String, List<LisMappingWrapper>> lisMappingMap
                 = EntityUtil.makeEntityListMap(lisMappingWrapperList, "mealName");
                 = EntityUtil.makeEntityListMap(lisMappingWrapperList, "mealName");
@@ -47,18 +65,23 @@ public class LisMappingFacade  extends LisMappingServiceImpl {
 
 
     /**
     /**
      * 获取化验标签公表项
      * 获取化验标签公表项
+     *
      * @param getLisMappingVO
      * @param getLisMappingVO
      * @return
      * @return
      */
      */
     public Map<String, Map<String, String>> getLisMappingByQuestion(GetLisMappingVO getLisMappingVO) {
     public Map<String, Map<String, String>> getLisMappingByQuestion(GetLisMappingVO getLisMappingVO) {
-        String project=getLisMappingVO.getProject();
-        List<String> details=getLisMappingVO.getDetails();
+        String project = getLisMappingVO.getProject();
+        List<String> details = getLisMappingVO.getDetails();
         if (StringUtil.isBlank(project)) {
         if (StringUtil.isBlank(project)) {
             return null;
             return null;
         }
         }
 
 
         Map<String, Map<String, String>> lisMappingMap = getLisMappingByMealName(project);
         Map<String, Map<String, String>> lisMappingMap = getLisMappingByMealName(project);
 
 
+        //解密
+        if (cryptConfiguer.cryptFlag){
+            project = CryptUtil.decrypt_char(project);
+        }
         Map<String, Map<String, String>> retMap = new LinkedHashMap<>();
         Map<String, Map<String, String>> retMap = new LinkedHashMap<>();
         if (lisMappingMap != null && lisMappingMap.get(project) != null) {
         if (lisMappingMap != null && lisMappingMap.get(project) != null) {
             Map<String, String> projectMap = new LinkedHashMap<>();
             Map<String, String> projectMap = new LinkedHashMap<>();

+ 28 - 10
aipt-service/src/main/java/com/diagbot/facade/PartFacade.java

@@ -1,11 +1,12 @@
 package com.diagbot.facade;
 package com.diagbot.facade;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.config.CryptConfiguer;
 import com.diagbot.dto.ConceptWithOrderRes;
 import com.diagbot.dto.ConceptWithOrderRes;
 import com.diagbot.dto.PartDTO;
 import com.diagbot.dto.PartDTO;
 import com.diagbot.dto.PartSymptomDTO;
 import com.diagbot.dto.PartSymptomDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.Concept;
-import com.diagbot.entity.ConceptDetail;
+import com.diagbot.entity.KlSymptom;
 import com.diagbot.entity.Symptom;
 import com.diagbot.entity.Symptom;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.IsDeleteEnum;
@@ -13,6 +14,7 @@ import com.diagbot.enums.LexiconRSTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.exception.CommonException;
+import com.diagbot.util.CryptUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.PartSymptomVO;
 import com.diagbot.vo.PartSymptomVO;
@@ -20,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
@@ -36,6 +39,10 @@ public class PartFacade {
     ConceptFacade conceptFacade;
     ConceptFacade conceptFacade;
     @Autowired
     @Autowired
     ConceptDetailFacade conceptDetailFacade;
     ConceptDetailFacade conceptDetailFacade;
+    @Autowired
+    private CryptConfiguer cryptConfiguer;
+    @Autowired
+    KlSymptomFacade klSymptomFacade;
 
 
     /**
     /**
      * 根据已选部位返回对应的症状
      * 根据已选部位返回对应的症状
@@ -49,6 +56,9 @@ public class PartFacade {
             throw new CommonException(CommonErrorCode.PARAM_IS_NULL,
             throw new CommonException(CommonErrorCode.PARAM_IS_NULL,
                     "请选择部位");
                     "请选择部位");
         }
         }
+        if (cryptConfiguer.cryptFlag) {
+            CryptUtil.encryptList(partList);
+        }
         if (partSymptomVO.getSexType() == null) {
         if (partSymptomVO.getSexType() == null) {
             throw new CommonException(CommonErrorCode.PARAM_IS_NULL,
             throw new CommonException(CommonErrorCode.PARAM_IS_NULL,
                     "请选择性别");
                     "请选择性别");
@@ -70,6 +80,14 @@ public class PartFacade {
                 .in("lib_name", partList)
                 .in("lib_name", partList)
         );
         );
 
 
+        // 正常数据有2条,将全身区域放到最下面
+        String areaStr = cryptConfiguer.cryptFlag ?
+                CryptUtil.encrypt_char( "全身区域") : "全身区域";
+        if (ListUtil.isNotEmpty(conceptList) && conceptList.size() == 2
+                && areaStr.equals(conceptList.get(0).getLibName())) {
+            Collections.reverse(conceptList);
+        }
+
         // 设置部位区域
         // 设置部位区域
         for (Concept c : conceptList) {
         for (Concept c : conceptList) {
             PartSymptomDTO partSymptomDTO = new PartSymptomDTO();
             PartSymptomDTO partSymptomDTO = new PartSymptomDTO();
@@ -115,14 +133,14 @@ public class PartFacade {
         List<ConceptWithOrderRes> symptomList = conceptFacade.getConceptWithOrder(wrapper);
         List<ConceptWithOrderRes> symptomList = conceptFacade.getConceptWithOrder(wrapper);
         Map<Long, List<ConceptWithOrderRes>> symptomMap = EntityUtil.makeEntityListMap(symptomList, "startId");
         Map<Long, List<ConceptWithOrderRes>> symptomMap = EntityUtil.makeEntityListMap(symptomList, "startId");
 
 
-        // 获取症状的简述信息
-        List<ConceptDetail> conceptDetailList = conceptDetailFacade.list(
-                new QueryWrapper<ConceptDetail>()
-                .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .in("concept_id", symptomList.stream().map(row -> row.getEndId()).distinct().collect(Collectors.toList()))
-                .apply("find_in_set({0},position)", 7));
-        Map<Long, String> descMap = conceptDetailList.stream().collect(Collectors.toMap(row->row.getConceptId(), row->row.getText()));
 
 
+        // TODO 获取症状的简述信息
+        List<KlSymptom> klSymptomList = klSymptomFacade.list(new QueryWrapper<KlSymptom>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in("concept_id",
+                        symptomList.stream().map(row -> row.getEndId()).distinct().collect(Collectors.toList()))
+        );
+        Map<Long, KlSymptom> descMap = klSymptomList.stream().collect(Collectors.toMap(row -> row.getConceptId(), row -> row));
 
 
         // 设置部位下的症状
         // 设置部位下的症状
         for (PartSymptomDTO partSymptomDTO : res) {
         for (PartSymptomDTO partSymptomDTO : res) {
@@ -137,7 +155,8 @@ public class PartFacade {
                         bean.setName(conceptWithOrderRes.getEndName());
                         bean.setName(conceptWithOrderRes.getEndName());
                         bean.setPartConceptId(conceptWithOrderRes.getStartId());
                         bean.setPartConceptId(conceptWithOrderRes.getStartId());
                         if (descMap.get(conceptWithOrderRes.getEndId()) != null) {
                         if (descMap.get(conceptWithOrderRes.getEndId()) != null) {
-                            bean.setDesc(descMap.get(conceptWithOrderRes.getEndId()));
+                            bean.setDescription(descMap.get(conceptWithOrderRes.getEndId()).getDescription());
+                            bean.setExplains(descMap.get(conceptWithOrderRes.getEndId()).getExplains());
                         }
                         }
                         symptoms.add(bean);
                         symptoms.add(bean);
                     }
                     }
@@ -159,5 +178,4 @@ public class PartFacade {
         return res;
         return res;
     }
     }
 
 
-
 }
 }

+ 21 - 3
aipt-service/src/main/java/com/diagbot/facade/PatientInfoFacade.java

@@ -1,12 +1,15 @@
 package com.diagbot.facade;
 package com.diagbot.facade;
 
 
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.client.TranServiceClient;
+import com.diagbot.config.CryptConfiguer;
 import com.diagbot.dto.GetTopPatientInfoDTO;
 import com.diagbot.dto.GetTopPatientInfoDTO;
 import com.diagbot.dto.GetTopPatientInfoDjDTO;
 import com.diagbot.dto.GetTopPatientInfoDjDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.Concept;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.util.CryptUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.RespDTOUtil;
+import com.diagbot.util.StringUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.GetTopPatientInfoDjVO;
 import com.diagbot.vo.GetTopPatientInfoDjVO;
 import com.diagbot.vo.GetTopPatientInfoVO;
 import com.diagbot.vo.GetTopPatientInfoVO;
@@ -26,6 +29,8 @@ public class PatientInfoFacade {
     private ConceptFacade conceptFacade;
     private ConceptFacade conceptFacade;
     @Autowired
     @Autowired
     TranServiceClient tranServiceClient;
     TranServiceClient tranServiceClient;
+    @Autowired
+    private CryptConfiguer cryptConfiguer;
 
 
     /**
     /**
      * 页面顶部病人医生科室信息查询
      * 页面顶部病人医生科室信息查询
@@ -35,13 +40,20 @@ public class PatientInfoFacade {
      */
      */
     public GetTopPatientInfoDTO getTopPatientInfo(@RequestBody GetTopPatientInfoVO getTopPatientInfoVO) {
     public GetTopPatientInfoDTO getTopPatientInfo(@RequestBody GetTopPatientInfoVO getTopPatientInfoVO) {
         RespDTO<GetTopPatientInfoDTO> respDTO = tranServiceClient.getTopPatientInfo(getTopPatientInfoVO);
         RespDTO<GetTopPatientInfoDTO> respDTO = tranServiceClient.getTopPatientInfo(getTopPatientInfoVO);
-        RespDTOUtil.respNGDealCover(respDTO, "获取页面顶部病人医生科室信息失败");
+        RespDTOUtil.respNGDealCover(respDTO, respDTO.msg);
 
 
         GetTopPatientInfoDTO getTopPatientInfoDTO = respDTO.data;
         GetTopPatientInfoDTO getTopPatientInfoDTO = respDTO.data;
 
 
         ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
         ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
         conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
         conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
-        conceptBaseVO.setName(getTopPatientInfoDTO.getSelfDeptName());
+        if (StringUtil.isNotBlank(getTopPatientInfoDTO.getSelfDeptName())) {
+            if (cryptConfiguer.cryptFlag) {
+                conceptBaseVO.setName(CryptUtil.encrypt_char(getTopPatientInfoDTO.getSelfDeptName()));
+            } else {
+                conceptBaseVO.setName(getTopPatientInfoDTO.getSelfDeptName());
+            }
+        }
+
         Concept concept = conceptFacade.exist(conceptBaseVO);
         Concept concept = conceptFacade.exist(conceptBaseVO);
         getTopPatientInfoDTO.setSelfDeptId(concept.getId());
         getTopPatientInfoDTO.setSelfDeptId(concept.getId());
 
 
@@ -62,7 +74,13 @@ public class PatientInfoFacade {
 
 
         ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
         ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
         conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
         conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
-        conceptBaseVO.setName(getTopPatientInfoDjDTO.getSelfDeptName());
+        if (StringUtil.isNotBlank(getTopPatientInfoDjDTO.getSelfDeptName())) {
+            if (cryptConfiguer.cryptFlag) {
+                conceptBaseVO.setName(CryptUtil.encrypt_char(getTopPatientInfoDjDTO.getSelfDeptName()));
+            } else {
+                conceptBaseVO.setName(getTopPatientInfoDjDTO.getSelfDeptName());
+            }
+        }
         Concept concept = conceptFacade.exist(conceptBaseVO);
         Concept concept = conceptFacade.exist(conceptBaseVO);
         getTopPatientInfoDjDTO.setSelfDeptId(concept.getId());
         getTopPatientInfoDjDTO.setSelfDeptId(concept.getId());
 
 

+ 51 - 4
aipt-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -1,15 +1,22 @@
 package com.diagbot.facade;
 package com.diagbot.facade;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.diagbot.biz.push.entity.FeatureRate;
+import com.diagbot.biz.push.entity.FeatureRateWithExplain;
 import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.biz.push.entity.ResponseData;
-import com.diagbot.biz.push.vo.SearchVO;
+import com.diagbot.biz.push.entity.ResponseDataWithExplain;
 import com.diagbot.biz.push.entity.Treat;
 import com.diagbot.biz.push.entity.Treat;
 import com.diagbot.biz.push.enums.FeatureTypeEnum;
 import com.diagbot.biz.push.enums.FeatureTypeEnum;
+import com.diagbot.biz.push.vo.SearchVO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushDTO;
+import com.diagbot.entity.KlSymptom;
+import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.enums.SysTypeEnum;
 import com.diagbot.enums.SysTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.exception.CommonException;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.StringUtil;
 import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
 import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,8 +25,10 @@ import org.springframework.stereotype.Component;
 import java.util.Arrays;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.Set;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * @Description:
  * @Description:
@@ -36,6 +45,8 @@ public class PushFacade {
     private TransferFacade transferFacade;
     private TransferFacade transferFacade;
     @Autowired
     @Autowired
     DataBeanAggregateQueryFacade dataBeanAggregateQueryFacade;
     DataBeanAggregateQueryFacade dataBeanAggregateQueryFacade;
+    @Autowired
+    private ConceptFacade conceptFacade;
 
 
     /**
     /**
      * 推理接口
      * 推理接口
@@ -60,11 +71,12 @@ public class PushFacade {
 
 
         try {
         try {
             Map<String, Object> invokeParams = new HashMap<>();
             Map<String, Object> invokeParams = new HashMap<>();
-            invokeParams.put("pushDTO",pushDTO);
+            invokeParams.put("pushDTO", pushDTO);
             invokeParams.put("featureTypeSet", featureTypeSet);
             invokeParams.put("featureTypeSet", featureTypeSet);
             invokeParams.put("data", data);
             invokeParams.put("data", data);
             invokeParams.put("isConnect", isConnect);
             invokeParams.put("isConnect", isConnect);
             invokeParams.put("hosCode", searchVO.getHosCode());
             invokeParams.put("hosCode", searchVO.getHosCode());
+            invokeParams.put("sysType", searchVO.getSysType());
             pushDTO
             pushDTO
                     = dataBeanAggregateQueryFacade.get("setAll", invokeParams, PushDTO.class);
                     = dataBeanAggregateQueryFacade.get("setAll", invokeParams, PushDTO.class);
         } catch (Exception e) {
         } catch (Exception e) {
@@ -78,6 +90,41 @@ public class PushFacade {
         return pushDTO;
         return pushDTO;
     }
     }
 
 
+    /**
+     * 推理结果带名词解释
+     *
+     * @param searchVO
+     * @return
+     */
+    public ResponseDataWithExplain pushWithExplain(SearchVO searchVO) {
+        ResponseDataWithExplain responseData = new ResponseDataWithExplain();
+        ResponseData data = clinicalFacade.processClinicalData(searchVO);
+        List<FeatureRate> symptom = data.getSymptom();
+        if (ListUtil.isNotEmpty(symptom)
+                && (searchVO.getSysType().equals(SysTypeEnum.PREC_SERVICE.getKey())
+                || searchVO.getSysType().equals(SysTypeEnum.TRIAGE_SERVICE.getKey()))) {
+            List<String> names = symptom.stream().map(item -> item.getFeatureName()).collect(Collectors.toList());
+            Map<String, KlSymptom> klSymptomMap
+                    = conceptFacade.getSymptomWithExplain(names, LexiconTypeEnum.SYMPTOM.getKey());
+            List<FeatureRateWithExplain> featureRateWithExplains
+                    = BeanUtil.listCopyTo(symptom, FeatureRateWithExplain.class);
+            if (klSymptomMap != null) {
+                for (FeatureRateWithExplain featureRateWithExplain : featureRateWithExplains) {
+                    if (klSymptomMap.containsKey(featureRateWithExplain.getFeatureName())) {
+                        featureRateWithExplain
+                                .setDescription(klSymptomMap.get(featureRateWithExplain.getFeatureName()).getDescription());
+                        featureRateWithExplain
+                                .setExplains(klSymptomMap.get(featureRateWithExplain.getFeatureName()).getExplains());
+                    }
+                }
+            }
+            responseData.setSymptom(featureRateWithExplains);
+        }
+        responseData.setDis(data.getDis());
+        return responseData;
+    }
+
+
     /**
     /**
      * 获取治疗方案
      * 获取治疗方案
      *
      *
@@ -119,8 +166,8 @@ public class PushFacade {
      * @return
      * @return
      */
      */
     public SearchVO precSearchData(SearchVO searchVO, Boolean isConnect) {
     public SearchVO precSearchData(SearchVO searchVO, Boolean isConnect) {
-        //未对接或非数据引擎模式,不做映射
-        if (!isConnect || (!searchVO.getSysType().equals(SysTypeEnum.LTAPI_SERVICE.getKey()))) {
+        //未对接不做映射,细分参数是否对接单独处理,由sysType决定
+        if (!isConnect) {
             return searchVO;
             return searchVO;
         }
         }
         try {
         try {

+ 91 - 0
aipt-service/src/main/java/com/diagbot/facade/PushV2Facade.java

@@ -0,0 +1,91 @@
+package com.diagbot.facade;
+
+import com.diagbot.biz.push.entity.FeatureRate;
+import com.diagbot.biz.push.entity.FeatureRateV2;
+import com.diagbot.biz.push.entity.FeatureRateWithExplain;
+import com.diagbot.biz.push.entity.FeatureRateWithExplainV2;
+import com.diagbot.biz.push.entity.ResponseData;
+import com.diagbot.biz.push.entity.ResponseDataV2;
+import com.diagbot.biz.push.entity.ResponseDataWithExplain;
+import com.diagbot.biz.push.entity.ResponseDataWithExplainV2;
+import com.diagbot.biz.push.vo.SearchVO;
+import com.diagbot.client.AINeoServiceClient;
+import com.diagbot.client.bean.Response;
+import com.diagbot.client.bean.SearchData;
+import com.diagbot.entity.KlSymptom;
+import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.enums.SysTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.ListUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/4/16 16:32
+ */
+@Component
+public class PushV2Facade {
+    @Autowired
+    private AINeoServiceClient aiNeoServiceClient;
+    @Autowired
+    private AssembleFacade assembleFacade;
+    @Autowired
+    private ConceptFacade conceptFacade;
+
+    /**
+     * 大数据原始推理结果
+     *
+     * @param searchVO
+     * @return
+     */
+    public ResponseDataV2 originalPush(SearchVO searchVO) {
+        SearchData searchData = assembleFacade.assembleData(searchVO);
+        Response<ResponseDataV2> res = aiNeoServiceClient.push(searchData);
+        if (res == null || res.getData() == null) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "AI没有返回结果");
+        }
+        return res.getData();
+    }
+
+    /**
+     * 推理结果带名词解释
+     *
+     * @param searchVO
+     * @return
+     */
+    public ResponseDataWithExplainV2 pushWithExplain(SearchVO searchVO) {
+        ResponseDataWithExplainV2 responseData = new ResponseDataWithExplainV2();
+        ResponseDataV2 data = this.originalPush(searchVO);
+        List<FeatureRateV2> symptom = data.getSymptom();
+        if (ListUtil.isNotEmpty(symptom)
+                && (searchVO.getSysType().equals(SysTypeEnum.PREC_SERVICE.getKey())
+                || searchVO.getSysType().equals(SysTypeEnum.TRIAGE_SERVICE.getKey()))) {
+            List<String> names = symptom.stream().map(item -> item.getFeatureName()).collect(Collectors.toList());
+            Map<String, KlSymptom> klSymptomMap
+                    = conceptFacade.getSymptomWithExplain(names, LexiconTypeEnum.SYMPTOM.getKey());
+            List<FeatureRateWithExplainV2> featureRateWithExplains
+                    = BeanUtil.listCopyTo(symptom, FeatureRateWithExplainV2.class);
+            if (klSymptomMap != null) {
+                for (FeatureRateWithExplainV2 featureRateWithExplain : featureRateWithExplains) {
+                    if (klSymptomMap.containsKey(featureRateWithExplain.getFeatureName())) {
+                        featureRateWithExplain
+                                .setDescription(klSymptomMap.get(featureRateWithExplain.getFeatureName()).getDescription());
+                        featureRateWithExplain
+                                .setExplains(klSymptomMap.get(featureRateWithExplain.getFeatureName()).getExplains());
+                    }
+                }
+            }
+            responseData.setSymptom(featureRateWithExplains);
+        }
+        responseData.setDis(data.getDis());
+        return responseData;
+    }
+}

+ 318 - 0
aipt-service/src/main/java/com/diagbot/facade/TranEnDeFacade.java

@@ -0,0 +1,318 @@
+package com.diagbot.facade;
+
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.client.bean.HosCodeVO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.util.CryptUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.RespDTOUtil;
+import com.diagbot.vo.DiseaseIcdVO;
+import com.diagbot.vo.LisConfigVO;
+import com.diagbot.vo.PacsConfigVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:tran层对接时无法自动加解密的接口处理
+ * @Author:zhaops
+ * @time: 2020/1/6 10:19
+ */
+@Component
+public class TranEnDeFacade {
+    @Autowired
+    private TranServiceClient tranServiceClient;
+
+    /**
+     * 根据医院编码和套餐名称获取化验公表映射关系(返回map原文)
+     *
+     * @param lisConfigVO
+     * @return
+     */
+    public Map<String, Map<String, List<String>>> getLisConfigByMealNameAndHosCode(@RequestBody LisConfigVO lisConfigVO) {
+        RespDTO<Map<String, Map<String, List<String>>>> respDTO = tranServiceClient.getLisConfigByMealNameAndHosCode(lisConfigVO);
+        Map<String, Map<String, List<String>>> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, Map<String, List<String>>> map = respDTO.data;
+            retMap = map;
+        }
+        return retMap;
+    }
+
+    /**
+     * 根据医院编码和套餐名称获取化验公表映射关系(返回map加密)
+     *
+     * @param lisConfigVO
+     * @return
+     */
+    public Map<String, Map<String, List<String>>> getLisConfigByMealNameAndHosCode_en(@RequestBody LisConfigVO lisConfigVO) {
+        RespDTO<Map<String, Map<String, List<String>>>> respDTO = tranServiceClient.getLisConfigByMealNameAndHosCode(lisConfigVO);
+        Map<String, Map<String, List<String>>> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, Map<String, List<String>>> map = respDTO.data;
+            for (Map.Entry<String, Map<String, List<String>>> entry : map.entrySet()) {
+                Map<String, List<String>> retSubMap = new LinkedHashMap<>();
+                for (Map.Entry<String, List<String>> subEntry : entry.getValue().entrySet()) {
+                    if (ListUtil.isNotEmpty(subEntry.getValue())) {
+                        CryptUtil.encryptList(subEntry.getValue());
+                    }
+                    retSubMap.put(CryptUtil.encrypt_char(subEntry.getKey()), subEntry.getValue());
+                }
+                retMap.put(CryptUtil.encrypt_char(entry.getKey()), retSubMap);
+            }
+        }
+        return retMap;
+    }
+
+
+    /**
+     * 根据医院编码获取辅检公表映射关系(返回map原文)
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    public Map<String, String> getPacsConfigByHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        RespDTO<Map<String, String>> respDTO = tranServiceClient.getPacsConfigByHosCode(hosCodeVO);
+        Map<String, String> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, String> map = respDTO.data;
+            retMap = map;
+        }
+        return retMap;
+    }
+
+    /**
+     * 根据医院编码获取辅检公表映射关系(返回map加密)
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    public Map<String, String> getPacsConfigByHosCode_en(@RequestBody HosCodeVO hosCodeVO) {
+        RespDTO<Map<String, String>> respDTO = tranServiceClient.getPacsConfigByHosCode(hosCodeVO);
+        Map<String, String> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, String> map = respDTO.data;
+            for (Map.Entry<String, String> entry : map.entrySet()) {
+                retMap.put(CryptUtil.encrypt_char(entry.getKey()), CryptUtil.encrypt_char(entry.getValue()));
+            }
+        }
+        return retMap;
+    }
+
+    /**
+     * 获取辅检映射关系(返回map原文)
+     *
+     * @param pacsConfigVO
+     * @return
+     */
+    public Map<String, List<String>> getPacsConfig(@RequestBody PacsConfigVO pacsConfigVO) {
+        RespDTO<Map<String, List<String>>> respDTO = tranServiceClient.getPacsConfig(pacsConfigVO);
+        Map<String, List<String>> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, List<String>> map = respDTO.data;
+            retMap = map;
+        }
+        return retMap;
+    }
+
+    /**
+     * 获取辅检映射关系(返回map加密)
+     *
+     * @param pacsConfigVO
+     * @return
+     */
+    public Map<String, List<String>> getPacsConfig_en(@RequestBody PacsConfigVO pacsConfigVO) {
+        RespDTO<Map<String, List<String>>> respDTO = tranServiceClient.getPacsConfig(pacsConfigVO);
+        Map<String, List<String>> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, List<String>> map = respDTO.data;
+            for (Map.Entry<String, List<String>> entry : map.entrySet()) {
+                if (ListUtil.isNotEmpty(entry.getValue())) {
+                    CryptUtil.encryptList(entry.getValue());
+                }
+                retMap.put(CryptUtil.encrypt_char(entry.getKey()), entry.getValue());
+            }
+        }
+        return retMap;
+    }
+
+    /**
+     * 根据医院编码获取提示信息标题映射关系(返回map原文)
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    public Map<String, String> getTitleMappingHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        RespDTO<Map<String, String>> respDTO = tranServiceClient.getTitleMappingHosCode(hosCodeVO);
+        Map<String, String> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, String> map = respDTO.data;
+            retMap = map;
+        }
+        return retMap;
+    }
+
+    /**
+     * 根据医院编码获取提示信息标题映射关系(返回map加密)
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    public Map<String, String> getTitleMappingHosCode_en(@RequestBody HosCodeVO hosCodeVO) {
+        RespDTO<Map<String, String>> respDTO = tranServiceClient.getTitleMappingHosCode(hosCodeVO);
+        Map<String, String> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, String> map = respDTO.data;
+            for (Map.Entry<String, String> entry : map.entrySet()) {
+                retMap.put(CryptUtil.encrypt_char(entry.getKey()), CryptUtil.encrypt_char(entry.getValue()));
+            }
+        }
+        return retMap;
+    }
+
+    /**
+     * 根据医院编码查询诊断icd映射(返回map原文)
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    public Map<String, String> getDiseaseIcdByHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        RespDTO<Map<String, String>> respDTO = tranServiceClient.getDiseaseIcdByHosCode(hosCodeVO);
+        Map<String, String> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, String> map = respDTO.data;
+            retMap = map;
+        }
+        return retMap;
+    }
+
+    /**
+     * 根据医院编码查询诊断icd映射(返回map加密)
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    public Map<String, String> getDiseaseIcdByHosCode_en(@RequestBody HosCodeVO hosCodeVO) {
+        RespDTO<Map<String, String>> respDTO = tranServiceClient.getDiseaseIcdByHosCode(hosCodeVO);
+        Map<String, String> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, String> map = respDTO.data;
+            for (Map.Entry<String, String> entry : map.entrySet()) {
+                retMap.put(CryptUtil.encrypt_char(entry.getKey()), CryptUtil.encrypt_char(entry.getValue()));
+            }
+        }
+        return retMap;
+    }
+
+    /**
+     * 获取诊断名称映射map(返回map原文)
+     *
+     * @param diseaseIcdVO
+     * @return
+     */
+    public Map<String, String> getDiseaseIcdMap(DiseaseIcdVO diseaseIcdVO) {
+        RespDTO<Map<String, String>> respDTO = tranServiceClient.getDiseaseIcdMap(diseaseIcdVO);
+        Map<String, String> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, String> map = respDTO.data;
+            retMap = map;
+        }
+        return retMap;
+    }
+
+    /**
+     * 获取诊断名称映射map(返回map加密)
+     *
+     * @param diseaseIcdVO
+     * @return
+     */
+    public Map<String, String> getDiseaseIcdMap_en(DiseaseIcdVO diseaseIcdVO) {
+        RespDTO<Map<String, String>> respDTO = tranServiceClient.getDiseaseIcdMap(diseaseIcdVO);
+        Map<String, String> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, String> map = respDTO.data;
+            for (Map.Entry<String, String> entry : map.entrySet()) {
+                retMap.put(CryptUtil.encrypt_char(entry.getKey()), CryptUtil.encrypt_char(entry.getValue()));
+            }
+        }
+        return retMap;
+    }
+
+    /**
+     * 根据医院编码获取化验公表映射关系,公表项做key(返回map原文)
+     *
+     * @param lisConfigVO
+     * @return
+     */
+    public Map<String, List<String>> getLisConfigByUniqueNameAndHosCode(@RequestBody LisConfigVO lisConfigVO) {
+        RespDTO<Map<String, List<String>>> respDTO = tranServiceClient.getLisConfigByUniqueNameAndHosCode(lisConfigVO);
+        Map<String, List<String>> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, List<String>> map = respDTO.data;
+            retMap = map;
+        }
+        return retMap;
+    }
+
+    /**
+     * 根据医院编码获取化验公表映射关系,公表项做key(返回map加密)
+     *
+     * @param lisConfigVO
+     * @return
+     */
+    public Map<String, List<String>> getLisConfigByUniqueNameAndHosCode_en(@RequestBody LisConfigVO lisConfigVO) {
+        RespDTO<Map<String, List<String>>> respDTO = tranServiceClient.getLisConfigByUniqueNameAndHosCode(lisConfigVO);
+        Map<String, List<String>> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, List<String>> map = respDTO.data;
+            for (Map.Entry<String, List<String>> entry : map.entrySet()) {
+                if (ListUtil.isNotEmpty(entry.getValue())) {
+                    CryptUtil.encryptList(entry.getValue());
+                }
+                retMap.put(CryptUtil.encrypt_char(entry.getKey()), entry.getValue());
+            }
+        }
+        return retMap;
+    }
+
+    /**
+     * 根据医院编码查询辅检公表映射,公表项做key(返回map原文)
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    public Map<String, List<String>> getPacsConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        RespDTO<Map<String, List<String>>> respDTO = tranServiceClient.getPacsConfigByUniqueNameAndHosCode(hosCodeVO);
+        Map<String, List<String>> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, List<String>> map = respDTO.data;
+            retMap = map;
+        }
+        return retMap;
+    }
+
+    /**
+     * 根据医院编码查询辅检公表映射,公表项做key(返回map加密)
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    public Map<String, List<String>> getPacsConfigByUniqueNameAndHosCode_en(@RequestBody HosCodeVO hosCodeVO) {
+        RespDTO<Map<String, List<String>>> respDTO = tranServiceClient.getPacsConfigByUniqueNameAndHosCode(hosCodeVO);
+        Map<String, List<String>> retMap = new LinkedHashMap<>();
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<String, List<String>> map = respDTO.data;
+            for (Map.Entry<String, List<String>> entry : map.entrySet()) {
+                if (ListUtil.isNotEmpty(entry.getValue())) {
+                    CryptUtil.encryptList(entry.getValue());
+                }
+                retMap.put(CryptUtil.encrypt_char(entry.getKey()), entry.getValue());
+            }
+        }
+        return retMap;
+    }
+}

+ 84 - 51
aipt-service/src/main/java/com/diagbot/facade/TransferFacade.java

@@ -6,19 +6,20 @@ import com.diagbot.biz.push.entity.Pacs;
 import com.diagbot.biz.push.enums.FeatureTypeEnum;
 import com.diagbot.biz.push.enums.FeatureTypeEnum;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.client.bean.HosCodeVO;
 import com.diagbot.client.bean.HosCodeVO;
+import com.diagbot.config.CryptConfiguer;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.SysSetInfoDTO;
 import com.diagbot.dto.SysSetInfoDTO;
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.LisSourceEnum;
 import com.diagbot.enums.LisSourceEnum;
 import com.diagbot.enums.SysTypeEnum;
 import com.diagbot.enums.SysTypeEnum;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.BeanUtil;
-import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.DiseaseIcdVO;
 import com.diagbot.vo.DiseaseIcdVO;
 import com.diagbot.vo.HospitalSetVO;
 import com.diagbot.vo.HospitalSetVO;
 import com.diagbot.vo.LisConfigVO;
 import com.diagbot.vo.LisConfigVO;
+import com.diagbot.vo.OperationConfigVO;
 import com.diagbot.vo.PacsConfigVO;
 import com.diagbot.vo.PacsConfigVO;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +40,8 @@ import java.util.stream.Collectors;
 public class TransferFacade {
 public class TransferFacade {
     @Autowired
     @Autowired
     private TranServiceClient tranServiceClient;
     private TranServiceClient tranServiceClient;
+    @Autowired
+    CryptConfiguer cryptConfiguer;
 
 
     /**
     /**
      * 查询对接状态
      * 查询对接状态
@@ -96,11 +99,11 @@ public class TransferFacade {
         LisConfigVO lisConfigVO = new LisConfigVO();
         LisConfigVO lisConfigVO = new LisConfigVO();
         lisConfigVO.setHosCode(hosCode);
         lisConfigVO.setHosCode(hosCode);
         lisConfigVO.setMealNameList(mealNameList);
         lisConfigVO.setMealNameList(mealNameList);
-        RespDTO<Map<String, Map<String, List<String>>>> lisConfigRes
-                = tranServiceClient.getLisConfigByMealNameAndHosCode(lisConfigVO);
         Map<String, Map<String, List<String>>> lisConfigMap = new LinkedHashMap<>();
         Map<String, Map<String, List<String>>> lisConfigMap = new LinkedHashMap<>();
-        if (RespDTOUtil.respIsOK(lisConfigRes)) {
-            lisConfigMap = lisConfigRes.data;
+        RespDTO<Map<String, Map<String, List<String>>>> respDTO
+                = tranServiceClient.getLisConfigByMealNameAndHosCode(lisConfigVO);
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            lisConfigMap = respDTO.data;
         }
         }
         for (Lis lisResult : lis) {
         for (Lis lisResult : lis) {
             //内部数据,获取标签时映射, 不二次映射
             //内部数据,获取标签时映射, 不二次映射
@@ -130,7 +133,6 @@ public class TransferFacade {
         return retLis;
         return retLis;
     }
     }
 
 
-
     /**
     /**
      * 辅检结果增加公表名(辅检项目名称)
      * 辅检结果增加公表名(辅检项目名称)
      *
      *
@@ -150,24 +152,25 @@ public class TransferFacade {
                 .map(pacsResult -> pacsResult.getName())
                 .map(pacsResult -> pacsResult.getName())
                 .distinct()
                 .distinct()
                 .collect(Collectors.toList()));
                 .collect(Collectors.toList()));
-        RespDTO<Map<String, List<String>>> pacsRespDTO = tranServiceClient.getPacsConfig(pacsConfigVO);
-        if (RespDTOUtil.respIsOK(pacsRespDTO)) {
-            Map<String, List<String>> pacsMap = pacsRespDTO.data;
-            for (Pacs pacsResult : pacs) {
-                if (StringUtil.isBlank(pacsResult.getName())) {
-                    convertPacs.add(pacsResult);
-                    continue;
-                } else {
-                    if (ListUtil.isNotEmpty(pacsMap.get(pacsResult.getName()))) {
-                        for (String uniqueName : pacsMap.get(pacsResult.getName())) {
-                            Pacs convertPacsResult = new Pacs();
-                            BeanUtil.copyProperties(pacsResult, convertPacsResult);
-                            convertPacsResult.setUniqueName(uniqueName);
-                            convertPacs.add(convertPacsResult);
-                        }
-                    } else {
-                        convertPacs.add(pacsResult);
+        Map<String, List<String>> pacsMap = new LinkedHashMap<>();
+        RespDTO<Map<String, List<String>>> respDTO = tranServiceClient.getPacsConfig(pacsConfigVO);
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            pacsMap = respDTO.data;
+        }
+        for (Pacs pacsResult : pacs) {
+            if (StringUtil.isBlank(pacsResult.getName())) {
+                convertPacs.add(pacsResult);
+                continue;
+            } else {
+                if (ListUtil.isNotEmpty(pacsMap.get(pacsResult.getName()))) {
+                    for (String uniqueName : pacsMap.get(pacsResult.getName())) {
+                        Pacs convertPacsResult = new Pacs();
+                        BeanUtil.copyProperties(pacsResult, convertPacsResult);
+                        convertPacsResult.setUniqueName(uniqueName);
+                        convertPacs.add(convertPacsResult);
                     }
                     }
+                } else {
+                    convertPacs.add(pacsResult);
                 }
                 }
             }
             }
         }
         }
@@ -187,10 +190,9 @@ public class TransferFacade {
             LisConfigVO lisConfigVO = new LisConfigVO();
             LisConfigVO lisConfigVO = new LisConfigVO();
             lisConfigVO.setHosCode(hosCode);
             lisConfigVO.setHosCode(hosCode);
             lisConfigVO.setMealNameList(nameList);
             lisConfigVO.setMealNameList(nameList);
-            RespDTO<Map<String, Map<String, List<String>>>> lisConfigRes
-                    = tranServiceClient.getLisConfigByMealNameAndHosCode(lisConfigVO);
-            if (RespDTOUtil.respIsOK(lisConfigRes)) {
-                lisConfigMap = lisConfigRes.data;
+            RespDTO<Map<String, Map<String, List<String>>>> respDTO = tranServiceClient.getLisConfigByMealNameAndHosCode(lisConfigVO);
+            if (RespDTOUtil.respIsOK(respDTO)) {
+                lisConfigMap = respDTO.data;
             }
             }
         }
         }
         return lisConfigMap;
         return lisConfigMap;
@@ -217,24 +219,54 @@ public class TransferFacade {
             diseaseIcdVO.setHosCode(hosCode);
             diseaseIcdVO.setHosCode(hosCode);
             diseaseIcdVO.setDiseaseNameList(nameList);
             diseaseIcdVO.setDiseaseNameList(nameList);
             Map<String, String> disMap = new LinkedHashMap<>();
             Map<String, String> disMap = new LinkedHashMap<>();
-            RespDTO<Map<String, String>> disRespDTO = tranServiceClient.getDiseaseIcdMap(diseaseIcdVO);
-            if (RespDTOUtil.respIsOK(disRespDTO)) {
-                disMap = disRespDTO.data;
-                for (Item disease : items) {
-                    if (StringUtil.isBlank(disease.getName())) {
-                        continue;
-                    } else {
+            RespDTO<Map<String, String>> respDTO = tranServiceClient.getDiseaseIcdMap(diseaseIcdVO);
+            if (RespDTOUtil.respIsOK(respDTO)) {
+                disMap = respDTO.data;
+            }
+            for (Item disease : items) {
+                if (StringUtil.isBlank(disease.getName())) {
+                    continue;
+                } else {
+                    if (StringUtil.isNotBlank(disMap.get(disease.getName()))) {
                         disease.setUniqueName(disMap.get(disease.getName()));
                         disease.setUniqueName(disMap.get(disease.getName()));
                     }
                     }
                 }
                 }
-                convertItems = BeanUtil.listCopyTo(items, Item.class);
             }
             }
+            convertItems = BeanUtil.listCopyTo(items, Item.class);
         } else if (type.equals(ConceptTypeEnum.Drug.getKey())) {
         } else if (type.equals(ConceptTypeEnum.Drug.getKey())) {
             //暂无映射关系
             //暂无映射关系
             convertItems.addAll(items);
             convertItems.addAll(items);
         } else if (type.equals(ConceptTypeEnum.OPERATION.getKey())) {
         } else if (type.equals(ConceptTypeEnum.OPERATION.getKey())) {
-            //暂无映射关系
-            convertItems.addAll(items);
+            OperationConfigVO operationConfigVO = new OperationConfigVO();
+            operationConfigVO.setHosCode(hosCode);
+            operationConfigVO.setNameList(items
+                    .stream()
+                    .map(operation -> operation.getName())
+                    .distinct()
+                    .collect(Collectors.toList()));
+            Map<String, List<String>> operationMap = new LinkedHashMap<>();
+            RespDTO<Map<String, List<String>>> respDTO = tranServiceClient.getOperationConfig(operationConfigVO);
+            if (RespDTOUtil.respIsOK(respDTO)) {
+                operationMap = respDTO.data;
+            }
+            for (Item item : items) {
+                if (StringUtil.isBlank(item.getName())) {
+                    convertItems.add(item);
+                    continue;
+                } else {
+                    if (ListUtil.isNotEmpty(operationMap.get(item.getName()))) {
+                        //外部一个项目对应到内部多个项目的数据,都保留
+                        for (String uniqueName : operationMap.get(item.getName())) {
+                            Item convertItem = new Item();
+                            BeanUtil.copyProperties(item, convertItem);
+                            convertItem.setUniqueName(uniqueName);
+                            convertItems.add(convertItem);
+                        }
+                    } else {
+                        convertItems.add(item);
+                    }
+                }
+            }
         }
         }
         return convertItems;
         return convertItems;
     }
     }
@@ -276,13 +308,14 @@ public class TransferFacade {
             PacsConfigVO pacsConfigVO = new PacsConfigVO();
             PacsConfigVO pacsConfigVO = new PacsConfigVO();
             pacsConfigVO.setHosCode(hosCode);
             pacsConfigVO.setHosCode(hosCode);
             pacsConfigVO.setMealNameList(strList);
             pacsConfigVO.setMealNameList(strList);
-            RespDTO<Map<String, List<String>>> pacsRespDTO = tranServiceClient.getPacsConfig(pacsConfigVO);
-            if (RespDTOUtil.respIsOK(pacsRespDTO)) {
-                Map<String, List<String>> pacsMap = pacsRespDTO.data;
-                for (Map.Entry<String, List<String>> entry : pacsMap.entrySet()) {
-                    if (ListUtil.isNotEmpty(entry.getValue())) {
-                        retStr += String.join(",", entry.getValue()) + ",";
-                    }
+            Map<String, List<String>> pacsMap = new LinkedHashMap<>();
+            RespDTO<Map<String, List<String>>> respDTO = tranServiceClient.getPacsConfig(pacsConfigVO);
+            if (RespDTOUtil.respIsOK(respDTO)) {
+                pacsMap = respDTO.data;
+            }
+            for (Map.Entry<String, List<String>> entry : pacsMap.entrySet()) {
+                if (ListUtil.isNotEmpty(entry.getValue())) {
+                    retStr += String.join(",", entry.getValue()) + ",";
                 }
                 }
             }
             }
         } else if (type.equals(FeatureTypeEnum.Feature_Type_Disease.getKey())) {
         } else if (type.equals(FeatureTypeEnum.Feature_Type_Disease.getKey())) {
@@ -290,13 +323,13 @@ public class TransferFacade {
             diseaseIcdVO.setHosCode(hosCode);
             diseaseIcdVO.setHosCode(hosCode);
             diseaseIcdVO.setDiseaseNameList(strList);
             diseaseIcdVO.setDiseaseNameList(strList);
             Map<String, String> disMap = new LinkedHashMap<>();
             Map<String, String> disMap = new LinkedHashMap<>();
-            RespDTO<Map<String, String>> disRespDTO = tranServiceClient.getDiseaseIcdMap(diseaseIcdVO);
-            if (RespDTOUtil.respIsOK(disRespDTO)) {
-                disMap = disRespDTO.data;
-                for (String diseaseName : strList) {
-                    if (StringUtil.isNotBlank(disMap.get(diseaseName))) {
-                        retStr += disMap.get(diseaseName) + ",";
-                    }
+            RespDTO<Map<String, String>> respDTO = tranServiceClient.getDiseaseIcdMap(diseaseIcdVO);
+            if (RespDTOUtil.respIsOK(respDTO)) {
+                disMap = respDTO.data;
+            }
+            for (String diseaseName : strList) {
+                if (StringUtil.isNotBlank(disMap.get(diseaseName))) {
+                    retStr += disMap.get(diseaseName) + ",";
                 }
                 }
             }
             }
         }
         }

+ 18 - 5
aipt-service/src/main/java/com/diagbot/facade/TreatmentFacade.java

@@ -7,6 +7,7 @@ import com.diagbot.biz.push.entity.MedicitionClass;
 import com.diagbot.biz.push.entity.MeditionDetail;
 import com.diagbot.biz.push.entity.MeditionDetail;
 import com.diagbot.biz.push.entity.Treat;
 import com.diagbot.biz.push.entity.Treat;
 import com.diagbot.biz.push.entity.TreatmentPlan;
 import com.diagbot.biz.push.entity.TreatmentPlan;
+import com.diagbot.config.CryptConfiguer;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.ConceptDetail;
 import com.diagbot.entity.ConceptDetail;
@@ -16,6 +17,7 @@ import com.diagbot.enums.LexiconRSTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.exception.CommonException;
+import com.diagbot.util.CryptUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptBaseVO;
@@ -44,6 +46,8 @@ public class TreatmentFacade {
     ConceptDetailFacade conceptDetailFacade;
     ConceptDetailFacade conceptDetailFacade;
     @Autowired
     @Autowired
     DataBeanAggregateQueryFacade dataBeanAggregateQueryFacade;
     DataBeanAggregateQueryFacade dataBeanAggregateQueryFacade;
+    @Autowired
+    CryptConfiguer cryptConfiguer;
 
 
     /**
     /**
      * 获取治疗方案
      * 获取治疗方案
@@ -52,11 +56,16 @@ public class TreatmentFacade {
      * @return
      * @return
      */
      */
     public Treat getTreatment(Treat treat, Item diseaseName, Integer disType) {
     public Treat getTreatment(Treat treat, Item diseaseName, Integer disType) {
+        String disUniqueName = diseaseName.getUniqueName();
+        if (cryptConfiguer.cryptFlag) {
+            //加密诊断名称
+            disUniqueName = CryptUtil.encrypt_char(disUniqueName);
+        }
         List<MedicitionClass> drugsList = Lists.newLinkedList();
         List<MedicitionClass> drugsList = Lists.newLinkedList();
         List<String> conceptNameList = Lists.newLinkedList();
         List<String> conceptNameList = Lists.newLinkedList();
-        conceptNameList.add(diseaseName.getUniqueName());
+        conceptNameList.add(disUniqueName);
         ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
         ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
-        conceptBaseVO.setName(diseaseName.getUniqueName());
+        conceptBaseVO.setName(disUniqueName);
         conceptBaseVO.setLibType(LexiconTypeEnum.DIAGNOSIS.getKey());
         conceptBaseVO.setLibType(LexiconTypeEnum.DIAGNOSIS.getKey());
         Concept disease = conceptFacade.exist(conceptBaseVO);
         Concept disease = conceptFacade.exist(conceptBaseVO);
         if (disease == null) {
         if (disease == null) {
@@ -137,12 +146,16 @@ public class TreatmentFacade {
         Boolean isChronic = false;
         Boolean isChronic = false;
         if (disType != null && disType.equals(DisTypeEnum.CHRONIC.getKey())) {
         if (disType != null && disType.equals(DisTypeEnum.CHRONIC.getKey())) {
             //验证是否慢病
             //验证是否慢病
-            conceptBaseVO.setName("慢病");
+            if (cryptConfiguer.cryptFlag) {
+                conceptBaseVO.setName(CryptUtil.encrypt_char("慢病"));
+            } else {
+                conceptBaseVO.setName("慢病");
+            }
             conceptBaseVO.setLibType(LexiconTypeEnum.TYPES_OF_DISEASE.getKey());
             conceptBaseVO.setLibType(LexiconTypeEnum.TYPES_OF_DISEASE.getKey());
             Concept chronicConcept = conceptFacade.exist(conceptBaseVO);
             Concept chronicConcept = conceptFacade.exist(conceptBaseVO);
             ConceptWrapper conceptWrapper = new ConceptWrapper();
             ConceptWrapper conceptWrapper = new ConceptWrapper();
             conceptWrapper.setStartId(disease.getId());
             conceptWrapper.setStartId(disease.getId());
-            conceptWrapper.setStartName(diseaseName.getUniqueName());
+            conceptWrapper.setStartName(disUniqueName);
             conceptWrapper.setStartType(LexiconTypeEnum.DIAGNOSIS.getKey());
             conceptWrapper.setStartType(LexiconTypeEnum.DIAGNOSIS.getKey());
             conceptWrapper.setEndId(chronicConcept.getId());
             conceptWrapper.setEndId(chronicConcept.getId());
             conceptWrapper.setEndName(chronicConcept.getLibName());
             conceptWrapper.setEndName(chronicConcept.getLibName());
@@ -155,7 +168,7 @@ public class TreatmentFacade {
         try {
         try {
             Map<String, Object> invokeParams = new HashMap<>();
             Map<String, Object> invokeParams = new HashMap<>();
             invokeParams.put("treat", treat);
             invokeParams.put("treat", treat);
-            invokeParams.put("diseaseName", diseaseName.getUniqueName());
+            invokeParams.put("diseaseName", disUniqueName);
             invokeParams.put("drugsList", drugsList);
             invokeParams.put("drugsList", drugsList);
             invokeParams.put("treatmentPlan", treatmentPlanList);
             invokeParams.put("treatmentPlan", treatmentPlanList);
             invokeParams.put("conceptMap", conceptMap);
             invokeParams.put("conceptMap", conceptMap);

+ 8 - 1
aipt-service/src/main/java/com/diagbot/mapper/ConceptDetailMapper.java

@@ -1,7 +1,12 @@
 package com.diagbot.mapper;
 package com.diagbot.mapper;
 
 
-import com.diagbot.entity.ConceptDetail;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.entity.ConceptDetail;
+import com.diagbot.vo.ConceptDetailPageVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -12,5 +17,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2019-05-06
  * @since 2019-05-06
  */
  */
 public interface ConceptDetailMapper extends BaseMapper<ConceptDetail> {
 public interface ConceptDetailMapper extends BaseMapper<ConceptDetail> {
+    List<ConceptDetail> selectByParam(ConceptDetail conceptDetail);
 
 
+    IPage<ConceptDetail> selectiveTestPage(@Param("conceptDetailPageVO") ConceptDetailPageVO conceptDetailPageVO);
 }
 }

+ 12 - 1
aipt-service/src/main/java/com/diagbot/mapper/ConceptMapper.java

@@ -5,11 +5,13 @@ import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.dto.ConceptWithOrderRes;
 import com.diagbot.dto.ConceptWithOrderRes;
+import com.diagbot.dto.FeatureConceptDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptFindVO;
 import com.diagbot.vo.ConceptFindVO;
+import com.diagbot.vo.ConceptNameVO;
 import com.diagbot.vo.RetrievalVO;
 import com.diagbot.vo.RetrievalVO;
 
 
 import java.util.List;
 import java.util.List;
@@ -60,9 +62,18 @@ public interface ConceptMapper extends BaseMapper<Concept> {
 
 
     /**
     /**
      * 获得诊断依据问题词的标准词
      * 获得诊断依据问题词的标准词
+     *
      * @return
      * @return
      */
      */
     List<String> getStandWord();
     List<String> getStandWord();
 
 
     public List<ConceptBaseDTO> indexConcept(ConceptBaseVO conceptBaseVO);
     public List<ConceptBaseDTO> indexConcept(ConceptBaseVO conceptBaseVO);
-}
+
+    /**
+     * 特征词提取相关
+     *
+     * @param conceptNameVO
+     * @return
+     */
+    public List<FeatureConceptDTO> getFeatureConcept(ConceptNameVO conceptNameVO);
+}

+ 16 - 0
aipt-service/src/main/java/com/diagbot/mapper/KlSymptomMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.KlSymptom;
+
+/**
+ * <p>
+ * 症状扩展表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-03-20
+ */
+public interface KlSymptomMapper extends BaseMapper<KlSymptom> {
+
+}

+ 8 - 1
aipt-service/src/main/java/com/diagbot/service/ConceptDetailService.java

@@ -1,7 +1,11 @@
 package com.diagbot.service;
 package com.diagbot.service;
 
 
-import com.diagbot.entity.ConceptDetail;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.ConceptDetail;
+import com.diagbot.vo.ConceptDetailPageVO;
+
+import java.util.List;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -13,4 +17,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
  */
 public interface ConceptDetailService extends IService<ConceptDetail> {
 public interface ConceptDetailService extends IService<ConceptDetail> {
 
 
+    List<ConceptDetail> selectByParam(ConceptDetail conceptDetail);
+
+    IPage<ConceptDetail> selectiveTestPage(ConceptDetailPageVO conceptDetailPageVO);
 }
 }

+ 10 - 0
aipt-service/src/main/java/com/diagbot/service/ConceptService.java

@@ -5,11 +5,13 @@ import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.dto.ConceptWithOrderRes;
 import com.diagbot.dto.ConceptWithOrderRes;
+import com.diagbot.dto.FeatureConceptDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptFindVO;
 import com.diagbot.vo.ConceptFindVO;
+import com.diagbot.vo.ConceptNameVO;
 import com.diagbot.vo.RetrievalVO;
 import com.diagbot.vo.RetrievalVO;
 
 
 import java.util.List;
 import java.util.List;
@@ -74,4 +76,12 @@ public interface ConceptService extends IService<Concept> {
      */
      */
     public List<ConceptBaseDTO> indexConcept(ConceptBaseVO conceptBaseVO);
     public List<ConceptBaseDTO> indexConcept(ConceptBaseVO conceptBaseVO);
 
 
+    /**
+     * 特征词提取相关
+     *
+     * @param conceptNameVO
+     * @return
+     */
+    public List<FeatureConceptDTO> getFeatureConcept(ConceptNameVO conceptNameVO);
+
 }
 }

+ 16 - 0
aipt-service/src/main/java/com/diagbot/service/KlSymptomService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.KlSymptom;
+
+/**
+ * <p>
+ * 症状扩展表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-03-20
+ */
+public interface KlSymptomService extends IService<KlSymptom> {
+
+}

+ 12 - 1
aipt-service/src/main/java/com/diagbot/service/impl/ConceptDetailServiceImpl.java

@@ -1,11 +1,15 @@
 package com.diagbot.service.impl;
 package com.diagbot.service.impl;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.entity.ConceptDetail;
 import com.diagbot.entity.ConceptDetail;
 import com.diagbot.mapper.ConceptDetailMapper;
 import com.diagbot.mapper.ConceptDetailMapper;
 import com.diagbot.service.ConceptDetailService;
 import com.diagbot.service.ConceptDetailService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.ConceptDetailPageVO;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  * 提示信息明细表 服务实现类
  * 提示信息明细表 服务实现类
@@ -17,4 +21,11 @@ import org.springframework.stereotype.Service;
 @Service
 @Service
 public class ConceptDetailServiceImpl extends ServiceImpl<ConceptDetailMapper, ConceptDetail> implements ConceptDetailService {
 public class ConceptDetailServiceImpl extends ServiceImpl<ConceptDetailMapper, ConceptDetail> implements ConceptDetailService {
 
 
+    public List<ConceptDetail> selectByParam(ConceptDetail conceptDetail) {
+        return this.baseMapper.selectByParam(conceptDetail);
+    }
+
+    public IPage<ConceptDetail> selectiveTestPage(ConceptDetailPageVO conceptDetailPageVO) {
+        return this.baseMapper.selectiveTestPage(conceptDetailPageVO);
+    }
 }
 }

+ 12 - 0
aipt-service/src/main/java/com/diagbot/service/impl/ConceptServiceImpl.java

@@ -5,6 +5,7 @@ import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.dto.ConceptWithOrderRes;
 import com.diagbot.dto.ConceptWithOrderRes;
+import com.diagbot.dto.FeatureConceptDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.entity.wrapper.ConceptWrapper;
@@ -13,6 +14,7 @@ import com.diagbot.service.ConceptService;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptFindVO;
 import com.diagbot.vo.ConceptFindVO;
+import com.diagbot.vo.ConceptNameVO;
 import com.diagbot.vo.RetrievalVO;
 import com.diagbot.vo.RetrievalVO;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
@@ -103,4 +105,14 @@ public class ConceptServiceImpl extends ServiceImpl<ConceptMapper, Concept> impl
     public List<ConceptBaseDTO> indexConcept(ConceptBaseVO conceptBaseVO) {
     public List<ConceptBaseDTO> indexConcept(ConceptBaseVO conceptBaseVO) {
         return baseMapper.indexConcept(conceptBaseVO);
         return baseMapper.indexConcept(conceptBaseVO);
     }
     }
+
+    /**
+     * 特征词提取相关
+     *
+     * @param conceptNameVO
+     * @return
+     */
+    public List<FeatureConceptDTO> getFeatureConcept(ConceptNameVO conceptNameVO){
+        return baseMapper.getFeatureConcept(conceptNameVO);
+    }
 }
 }

+ 20 - 0
aipt-service/src/main/java/com/diagbot/service/impl/KlSymptomServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.entity.KlSymptom;
+import com.diagbot.mapper.KlSymptomMapper;
+import com.diagbot.service.KlSymptomService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 症状扩展表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-03-20
+ */
+@Service
+public class KlSymptomServiceImpl extends ServiceImpl<KlSymptomMapper, KlSymptom> implements KlSymptomService {
+
+}

+ 2 - 0
aipt-service/src/main/java/com/diagbot/vo/ConceptBaseVO.java

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 package com.diagbot.vo;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -14,6 +15,7 @@ import javax.validation.constraints.NotNull;
 @Getter
 @Getter
 @Setter
 @Setter
 public class ConceptBaseVO {
 public class ConceptBaseVO {
+    @CryptField
     @NotBlank(message = "概念名称不能为空")
     @NotBlank(message = "概念名称不能为空")
     private String name;
     private String name;
     @NotNull(message = "词性不能为空")
     @NotNull(message = "词性不能为空")

+ 35 - 0
aipt-service/src/main/java/com/diagbot/vo/ConceptDetailPageVO.java

@@ -0,0 +1,35 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.diagbot.annotation.CryptField;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/12/31 17:15
+ */
+@Getter
+@Setter
+public class ConceptDetailPageVO extends Page {
+
+    /**
+     * 提示明细标题
+     */
+    @CryptField
+    private String title;
+
+    /**
+     * 提示明细内容
+     */
+    @CryptField
+    private String content;
+
+    /**
+     * 纯文本
+     */
+    @CryptField
+    private String text;
+}

+ 2 - 0
aipt-service/src/main/java/com/diagbot/vo/ConceptIntroduceVO.java

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 package com.diagbot.vo;
 
 
+import com.diagbot.annotation.CryptField;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
@@ -16,6 +17,7 @@ import java.util.List;
 @Getter
 @Getter
 @Setter
 @Setter
 public class ConceptIntroduceVO {
 public class ConceptIntroduceVO {
+    @CryptField
     @NotBlank(message = "请输入概念名称")
     @NotBlank(message = "请输入概念名称")
     private String name;
     private String name;
     @NotNull(message = "请输入概念词性")
     @NotNull(message = "请输入概念词性")

+ 18 - 0
aipt-service/src/main/java/com/diagbot/vo/ConceptNameVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/4/28 13:11
+ */
+@Getter
+@Setter
+public class ConceptNameVO {
+    private List<String> names;
+    private Integer type;
+}

+ 2 - 0
aipt-service/src/main/java/com/diagbot/vo/ConceptUsualVO.java

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 package com.diagbot.vo;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -14,6 +15,7 @@ import javax.validation.constraints.NotNull;
 @Setter
 @Setter
 public class ConceptUsualVO {
 public class ConceptUsualVO {
 
 
+    @CryptField
     @NotNull(message = "请输入科室名称")
     @NotNull(message = "请输入科室名称")
     private String deptName;
     private String deptName;
     @NotNull(message = "请输入病人年龄")
     @NotNull(message = "请输入病人年龄")

+ 4 - 0
aipt-service/src/main/java/com/diagbot/vo/ConnectIntroduceVO.java

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 package com.diagbot.vo;
 
 
+import com.diagbot.annotation.CryptField;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
@@ -16,13 +17,16 @@ import java.util.List;
 @Getter
 @Getter
 @Setter
 @Setter
 public class ConnectIntroduceVO {
 public class ConnectIntroduceVO {
+    @CryptField
     @NotBlank(message = "请输入术语名称")
     @NotBlank(message = "请输入术语名称")
     private String name;
     private String name;
+    @CryptField
     private String detailName;
     private String detailName;
     @NotNull(message = "请输入术语类型")
     @NotNull(message = "请输入术语类型")
     private Integer type;
     private Integer type;
     @NotBlank(message = "请输入医院编码")
     @NotBlank(message = "请输入医院编码")
     private String hosCode;
     private String hosCode;
+    @CryptField
     @ApiModelProperty(hidden = true)
     @ApiModelProperty(hidden = true)
     private String uniqueName;
     private String uniqueName;
     @ApiModelProperty(hidden = true)
     @ApiModelProperty(hidden = true)

+ 2 - 1
aipt-service/src/main/java/com/diagbot/vo/DisScaleVO.java

@@ -1,10 +1,10 @@
 package com.diagbot.vo;
 package com.diagbot.vo;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
 
 
 /**
 /**
  * @Description: 诊断量表入参
  * @Description: 诊断量表入参
@@ -14,6 +14,7 @@ import javax.validation.constraints.NotNull;
 @Getter
 @Getter
 @Setter
 @Setter
 public class DisScaleVO {
 public class DisScaleVO {
+    @CryptField
     @NotBlank(message = "疾病名称不能为空")
     @NotBlank(message = "疾病名称不能为空")
     private String disName;
     private String disName;
 }
 }

+ 2 - 0
aipt-service/src/main/java/com/diagbot/vo/DisTypeVO.java

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 package com.diagbot.vo;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -14,6 +15,7 @@ import javax.validation.constraints.NotNull;
 @Getter
 @Getter
 @Setter
 @Setter
 public class DisTypeVO {
 public class DisTypeVO {
+    @CryptField
     @NotBlank(message = "请输入诊断名称")
     @NotBlank(message = "请输入诊断名称")
     private String name;
     private String name;
     @NotNull(message = "请输入诊断类型")
     @NotNull(message = "请输入诊断类型")

+ 2 - 0
aipt-service/src/main/java/com/diagbot/vo/GetLisMappingVO.java

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 package com.diagbot.vo;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -14,6 +15,7 @@ import java.util.List;
 @Getter
 @Getter
 @Setter
 @Setter
 public class GetLisMappingVO {
 public class GetLisMappingVO {
+    @CryptField
     @NotBlank(message = "请输入化验套餐项")
     @NotBlank(message = "请输入化验套餐项")
     private String project;
     private String project;
     private List<String> details;
     private List<String> details;

+ 2 - 0
aipt-service/src/main/java/com/diagbot/vo/GetStaticKnowledgeVO.java

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 package com.diagbot.vo;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -16,6 +17,7 @@ import java.util.List;
 @Setter
 @Setter
 public class GetStaticKnowledgeVO {
 public class GetStaticKnowledgeVO {
     //检索内容
     //检索内容
+    @CryptField
     @NotBlank(message = "请输入检索内容")
     @NotBlank(message = "请输入检索内容")
     private String InputStr;
     private String InputStr;
     //需要去重的id
     //需要去重的id

+ 18 - 16
aipt-service/src/main/java/com/diagbot/vo/IndexConfigdiseaseNameVO.java

@@ -1,16 +1,18 @@
-package com.diagbot.vo;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2019年5月6日 下午6:41:38
- */
-@Setter
-@Getter
-public class IndexConfigdiseaseNameVO {
-	private String diseaseName;
-}
+package com.diagbot.vo;
+
+import com.diagbot.annotation.CryptField;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年5月6日 下午6:41:38
+ */
+@Setter
+@Getter
+public class IndexConfigdiseaseNameVO {
+	@CryptField
+	private String diseaseName;
+}

+ 37 - 35
aipt-service/src/main/java/com/diagbot/vo/IndexDataFindVO.java

@@ -1,35 +1,37 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: 数据数据获取入参
- * @date 2019年5月7日 上午10:00:15
- */
-@Getter
-@Setter
-public class IndexDataFindVO {
-
-	/**
-	 * 疾病ID
-	 */
-	@NotNull(message = "请输入疾病名")
-	private String diseaseName;
-	/**
-	 * 患者id
-	 */
-	@NotNull(message = "请输入患者id")
-	private Long patientId;
-
-	@NotBlank(message = "请输入开始时间")
-	private String startTime;
-
-	@NotBlank(message = "请输入结束时间")
-	private String endTime;
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import com.diagbot.annotation.CryptField;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: 数据数据获取入参
+ * @date 2019年5月7日 上午10:00:15
+ */
+@Getter
+@Setter
+public class IndexDataFindVO {
+
+	/**
+	 * 疾病ID
+	 */
+	@NotNull(message = "请输入疾病名")
+	@CryptField
+	private String diseaseName;
+	/**
+	 * 患者id
+	 */
+	@NotNull(message = "请输入患者id")
+	private Long patientId;
+
+	@NotBlank(message = "请输入开始时间")
+	private String startTime;
+
+	@NotBlank(message = "请输入结束时间")
+	private String endTime;
+}

+ 15 - 0
aipt-service/src/main/java/com/diagbot/vo/NLPVO.java

@@ -0,0 +1,15 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/4/26 13:41
+ */
+@Getter
+@Setter
+public class NLPVO {
+    private String text;
+}

+ 19 - 0
aipt-service/src/main/java/com/diagbot/vo/OperationConfigVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import com.diagbot.client.bean.HosCodeVO;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/3/27 15:45
+ */
+@Getter
+@Setter
+public class OperationConfigVO extends HosCodeVO {
+    private List<String> nameList;
+    private List<String> uniqueNameList;
+}

+ 2 - 0
aipt-service/src/main/java/com/diagbot/vo/RetrievalVO.java

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 package com.diagbot.vo;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -17,6 +18,7 @@ public class RetrievalVO {
     private Integer type;
     private Integer type;
     private Integer age;
     private Integer age;
     @NotBlank(message = "请输入检索内容")
     @NotBlank(message = "请输入检索内容")
+    @CryptField
     private String InputStr;
     private String InputStr;
     private Integer sexType;
     private Integer sexType;
     //需要去重的id
     //需要去重的id

+ 2 - 0
aipt-service/src/main/java/com/diagbot/vo/ScaleIndexVO.java

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 package com.diagbot.vo;
 
 
+import com.diagbot.annotation.CryptField;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Getter;
@@ -17,6 +18,7 @@ import java.util.List;
 @Setter
 @Setter
 @ApiModel
 @ApiModel
 public class ScaleIndexVO {
 public class ScaleIndexVO {
+    @CryptField
     @NotBlank(message = "名称不能为空")
     @NotBlank(message = "名称不能为空")
     private String name;
     private String name;
     @ApiModelProperty(hidden = true)
     @ApiModelProperty(hidden = true)

+ 26 - 0
aipt-service/src/main/java/com/diagbot/web/ConceptController.java

@@ -4,8 +4,10 @@ package com.diagbot.web;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.dto.ConceptRetrievalDTO;
+import com.diagbot.dto.ConceptRetrievalExtDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.dto.RetrievalDTO;
+import com.diagbot.dto.UsualDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.Concept;
 import com.diagbot.facade.ConceptFacade;
 import com.diagbot.facade.ConceptFacade;
 import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.util.ParamConvertUtil;
@@ -57,6 +59,18 @@ public class ConceptController {
         return RespDTO.onSuc(data);
         return RespDTO.onSuc(data);
     }
     }
 
 
+    @ApiOperation(value = "知识库标准化-常用标签——根据科室获取常用标签包含通俗解释和详细说明[by:zhoutg]",
+            notes = "deptName:科室名称<br>" +
+                    "age:年龄<br>" +
+                    "sexType: 性别<br>" +
+                    "type:类型(1:症状 3:其他史 4:查体,5:化验 6:辅检 7:诊断),必填<br>")
+    @PostMapping("/getConceptExtUsual")
+    @SysLogger("getConceptExtUsual")
+    public RespDTO<List<UsualDTO>> getConceptExtUsual(@RequestBody @Valid ConceptUsualVO conceptUsualVO) {
+        List<UsualDTO> data = conceptFacade.getConceptExtUsual(conceptUsualVO);
+        return RespDTO.onSuc(data);
+    }
+
     /**
     /**
      * 根据概念Id列表获取概念列表Map
      * 根据概念Id列表获取概念列表Map
      *
      *
@@ -121,6 +135,18 @@ public class ConceptController {
         return RespDTO.onSuc(data);
         return RespDTO.onSuc(data);
     }
     }
 
 
+    @ApiOperation(value = "知识库标准化-标签检索,附带通俗解释和详细说明[by:zhoutg]",
+            notes = "type:类型(1:症状 3:其他史 4:查体,5:化验 6:辅检 7:诊断),必填<br>" +
+                    "age:年龄,必填<br>" +
+                    "inputStr:检索内容,必填<br>" +
+                    "sexType:性别,必填<br>" +
+                    "inputIds:需要去重的id<br>")
+    @PostMapping("/retrivelConceptInfoExt")
+    @SysLogger("retrivelConceptInfoExt")
+    public RespDTO<List<ConceptRetrievalExtDTO>> retrivelConceptInfoExt(@RequestBody @Valid RetrievalVO retrievalVO) {
+        List<ConceptRetrievalExtDTO> data = conceptFacade.retrivelConceptInfoExt(retrievalVO);
+        return RespDTO.onSuc(data);
+    }
 
 
     /**
     /**
      * 根据名称和类型获取概念列表Map
      * 根据名称和类型获取概念列表Map

+ 97 - 0
aipt-service/src/main/java/com/diagbot/web/ConceptDetailTestController.java

@@ -0,0 +1,97 @@
+//package com.diagbot.web;
+//
+//import com.baomidou.mybatisplus.core.metadata.IPage;
+//import com.diagbot.annotation.SysLogger;
+//import com.diagbot.config.CryptConfiguer;
+//import com.diagbot.dto.RespDTO;
+//import com.diagbot.entity.ConceptDetail;
+//import com.diagbot.facade.ConceptDetailTestFacade;
+//import com.diagbot.vo.ConceptDetailPageVO;
+//import io.swagger.annotations.Api;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestBody;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RequestParam;
+//import org.springframework.web.bind.annotation.RestController;
+//import springfox.documentation.annotations.ApiIgnore;
+//
+//import javax.validation.Valid;
+//import java.util.List;
+//
+///**
+// * @Description:
+// * @Author:zhaops
+// * @time: 2019/12/30 20:22
+// */
+//@RestController
+//@RequestMapping("/conceptDetailTest")
+//@Api(value = "提示信息加密测试", tags = { "知识库标准化-提示信息加密测试相关API" })
+//@SuppressWarnings("unchecked")
+//@Deprecated
+//@ApiIgnore
+//public class ConceptDetailTestController {
+//    @Autowired
+//    private CryptConfiguer cryptConfiguer;
+//
+//    @Autowired
+//    private ConceptDetailTestFacade conceptDetailTestFacade;
+//
+//    @PostMapping("/saveRecord")
+//    @SysLogger("saveRecord")
+//    public RespDTO<ConceptDetail> saveRecord(@Valid @RequestBody ConceptDetail conceptDetail) {
+//        ConceptDetail data = conceptDetailTestFacade.saveRecord(conceptDetail);
+//        return RespDTO.onSuc(data);
+//    }
+//
+//    @PostMapping("/getById")
+//    @SysLogger("getById")
+//    public RespDTO<ConceptDetail> getById(@RequestParam Long id) {
+//        ConceptDetail data = conceptDetailTestFacade.getByIds(id);
+//        System.out.println(cryptConfiguer.cryptFlag);
+//        return RespDTO.onSuc(data);
+//    }
+//
+//    @PostMapping("/getByParam")
+//    @SysLogger("getByParam")
+//    public RespDTO<ConceptDetail> getByParam(@Valid @RequestBody ConceptDetail conceptDetail) {
+//        List<ConceptDetail> data = conceptDetailTestFacade.getByParam(conceptDetail);
+//        return RespDTO.onSuc(data);
+//    }
+//
+//    @PostMapping("/selectByParam")
+//    @SysLogger("selectByParam")
+//    public RespDTO<ConceptDetail> selectByParam(@Valid @RequestBody ConceptDetail conceptDetail) {
+//        List<ConceptDetail> data = conceptDetailTestFacade.selectByParam(conceptDetail);
+//        return RespDTO.onSuc(data);
+//    }
+//
+//
+//    @PostMapping("/getOneByParam")
+//    @SysLogger("getOneByParam")
+//    public RespDTO<ConceptDetail> getOneByParam(@Valid @RequestBody ConceptDetail conceptDetail) {
+//        List<ConceptDetail> data = conceptDetailTestFacade.getByParam(conceptDetail);
+//        return RespDTO.onSuc(data.size() > 0 ? data.get(0) : null);
+//    }
+//
+//
+//    @PostMapping("/selectOneByParam")
+//    @SysLogger("selectOneByParam")
+//    public RespDTO<ConceptDetail> selectOneByParam(@Valid @RequestBody ConceptDetail conceptDetail) {
+//        List<ConceptDetail> data = conceptDetailTestFacade.selectByParam(conceptDetail);
+//        return RespDTO.onSuc(data.size() > 0 ? data.get(0) : null);
+//    }
+//
+//    /**
+//     * 分页查询静态知识,可带过滤条件
+//     *
+//     * @param conceptDetailPageVO
+//     * @return
+//     */
+//    @PostMapping("/getConceptDetailPage")
+//    @SysLogger("getConceptDetailPage")
+//    public RespDTO getConceptDetailPage(@RequestBody ConceptDetailPageVO conceptDetailPageVO) {
+//        IPage<ConceptDetail> conceptDetailIPage = conceptDetailTestFacade.selectiveTestPage(conceptDetailPageVO);
+//        return RespDTO.onSuc(conceptDetailIPage);
+//    }
+//}

+ 54 - 54
aipt-service/src/main/java/com/diagbot/web/DisScaleController.java

@@ -1,54 +1,54 @@
-package com.diagbot.web;
-
-
-import com.diagbot.dto.DisScaleDTO;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.ScaleIndexDTO;
-import com.diagbot.facade.DisScaleFacade;
-import com.diagbot.vo.DisScaleVO;
-import com.diagbot.vo.ScaleIndexVO;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.validation.Valid;
-import java.util.List;
-
-/**
- * <p>
- * 诊断量表映射表 前端控制器
- * </p>
- *
- * @author zhoutg
- * @since 2019-05-05
- */
-@RestController
-@RequestMapping("/scale")
-@Api(value = "诊断量表API", tags = { "知识库标准化-诊断量表API" })
-@SuppressWarnings("unchecked")
-public class DisScaleController {
-
-    @Autowired
-    DisScaleFacade disScaleFacade;
-
-    @ApiOperation(value = "知识库标准化-返回诊断量表列表[by:zhoutg]",
-            notes = "")
-    @PostMapping("/getList")
-    public RespDTO<List<DisScaleDTO>> getList(@Valid @RequestBody DisScaleVO scaleVO) {
-        List<DisScaleDTO> data = disScaleFacade.getDisScaleFac(scaleVO);
-        return RespDTO.onSuc(data);
-    }
-
-
-    @ApiOperation(value = "知识库标准化-量表搜索[by:zhoutg]",
-            notes = "")
-    @PostMapping("/index")
-    public RespDTO<List<ScaleIndexDTO>> index(@Valid @RequestBody ScaleIndexVO scaleVO) {
-        List<ScaleIndexDTO> data = disScaleFacade.indexFac(scaleVO);
-        return RespDTO.onSuc(data);
-    }
-}
+//package com.diagbot.web;
+//
+//
+//import com.diagbot.dto.DisScaleDTO;
+//import com.diagbot.dto.RespDTO;
+//import com.diagbot.dto.ScaleIndexDTO;
+//import com.diagbot.facade.DisScaleFacade;
+//import com.diagbot.vo.DisScaleVO;
+//import com.diagbot.vo.ScaleIndexVO;
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiOperation;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestBody;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RestController;
+//
+//import javax.validation.Valid;
+//import java.util.List;
+//
+///**
+// * <p>
+// * 诊断量表映射表 前端控制器
+// * </p>
+// *
+// * @author zhoutg
+// * @since 2019-05-05
+// */
+//@RestController
+//@RequestMapping("/scale")
+//@Api(value = "诊断量表API", tags = { "知识库标准化-诊断量表API" })
+//@SuppressWarnings("unchecked")
+//public class DisScaleController {
+//
+//    @Autowired
+//    DisScaleFacade disScaleFacade;
+//
+//    @ApiOperation(value = "知识库标准化-返回诊断量表列表[by:zhoutg]",
+//            notes = "")
+//    @PostMapping("/getList")
+//    public RespDTO<List<DisScaleDTO>> getList(@Valid @RequestBody DisScaleVO scaleVO) {
+//        List<DisScaleDTO> data = disScaleFacade.getDisScaleFac(scaleVO);
+//        return RespDTO.onSuc(data);
+//    }
+//
+//
+//    @ApiOperation(value = "知识库标准化-量表搜索[by:zhoutg]",
+//            notes = "")
+//    @PostMapping("/index")
+//    public RespDTO<List<ScaleIndexDTO>> index(@Valid @RequestBody ScaleIndexVO scaleVO) {
+//        List<ScaleIndexDTO> data = disScaleFacade.indexFac(scaleVO);
+//        return RespDTO.onSuc(data);
+//    }
+//}

+ 1 - 1
aipt-service/src/main/java/com/diagbot/web/DiseaseIcdController.java

@@ -39,7 +39,7 @@ public class DiseaseIcdController {
                     "hospitalCode:医院编号,必填<br>")
                     "hospitalCode:医院编号,必填<br>")
     @PostMapping("/getDiseaseIcds")
     @PostMapping("/getDiseaseIcds")
     @SysLogger("getDiseaseIcds")
     @SysLogger("getDiseaseIcds")
-    @ApiIgnore
+//    @ApiIgnore
     public RespDTO<List<DiseaseIcdDTO>> getDiseaseIcds(@RequestBody @Valid GetDiseaseIcdVO getDiseaseIcdVO) {
     public RespDTO<List<DiseaseIcdDTO>> getDiseaseIcds(@RequestBody @Valid GetDiseaseIcdVO getDiseaseIcdVO) {
         List<DiseaseIcdDTO> data = diseaseIcdFacade.getDiseaseIcds(getDiseaseIcdVO);
         List<DiseaseIcdDTO> data = diseaseIcdFacade.getDiseaseIcds(getDiseaseIcdVO);
         return RespDTO.onSuc(data);
         return RespDTO.onSuc(data);

+ 37 - 0
aipt-service/src/main/java/com/diagbot/web/FeatureV2Controller.java

@@ -0,0 +1,37 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.FeatureDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.FeatureV2Facade;
+import com.diagbot.vo.NLPVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/4/26 13:49
+ */
+@RestController
+@RequestMapping("/featureV2")
+@Api(value = "文本特征词提取V2相关API", tags = { "文本特征词提取V2相关API" })
+public class FeatureV2Controller {
+    @Autowired
+    private FeatureV2Facade featureV2Facade;
+
+    @ApiOperation(value = "知识库标准化-症状特征词提取", notes = "")
+    @PostMapping("/symptomFeatureV2")
+    @SysLogger("symptomFeatureV2")
+    public RespDTO<List<FeatureDTO>> symptomFeatureV2(@RequestBody NLPVO nlpvo) {
+        List<FeatureDTO> data = featureV2Facade.symptomFeatureV2(nlpvo);
+        return RespDTO.onSuc(data);
+    }
+}

+ 44 - 44
aipt-service/src/main/java/com/diagbot/web/IndexConfigController.java

@@ -1,44 +1,44 @@
-package com.diagbot.web;
-
-import com.diagbot.annotation.SysLogger;
-import com.diagbot.dto.IndexConfigDTO;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.facade.IndexConfigFacade;
-import com.diagbot.vo.IndexConfigdiseaseNameVO;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import springfox.documentation.annotations.ApiIgnore;
-
-import java.util.List;
-
-/**
- * <p>
- * 指标配置 前端控制器
- * </p>
- *
- * @author wangfeng
- * @since 2019-05-06
- */
-@RestController
-@RequestMapping("/indexConfig")
-@Api(value = "指标配置API[by:wangfeng]", tags = { "知识库标准化-指标配置API" })
-@SuppressWarnings("unchecked")
-@ApiIgnore
-public class IndexConfigController {
-
-    @Autowired
-    IndexConfigFacade indexConfigFacade;
-
-    @ApiOperation(value = "知识库标准化-根据疾病获取指标配置[by:wangfeng]", notes = "根据疾病获取指标配置")
-    @PostMapping("/getindexConfigs")
-    @SysLogger("getindexConfigs")
-    public RespDTO<List<IndexConfigDTO>> getindexConfigs(@RequestBody IndexConfigdiseaseNameVO indexConfigdiseaseNameVO) {
-        List<IndexConfigDTO> data = indexConfigFacade.getIndexConfig(indexConfigdiseaseNameVO.getDiseaseName());
-        return RespDTO.onSuc(data);
-    }
-}
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.IndexConfigDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.IndexConfigFacade;
+import com.diagbot.vo.IndexConfigdiseaseNameVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 指标配置 前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2019-05-06
+ */
+@RestController
+@RequestMapping("/indexConfig")
+@Api(value = "指标配置API[by:wangfeng]", tags = { "知识库标准化-指标配置API" })
+@SuppressWarnings("unchecked")
+//@ApiIgnore
+public class IndexConfigController {
+
+    @Autowired
+    IndexConfigFacade indexConfigFacade;
+
+    @ApiOperation(value = "知识库标准化-根据疾病获取指标配置[by:wangfeng]", notes = "根据疾病获取指标配置")
+    @PostMapping("/getindexConfigs")
+    @SysLogger("getindexConfigs")
+    public RespDTO<List<IndexConfigDTO>> getindexConfigs(@RequestBody IndexConfigdiseaseNameVO indexConfigdiseaseNameVO) {
+        List<IndexConfigDTO> data = indexConfigFacade.getIndexConfig(indexConfigdiseaseNameVO.getDiseaseName());
+        return RespDTO.onSuc(data);
+    }
+}

+ 14 - 0
aipt-service/src/main/java/com/diagbot/web/PushController.java

@@ -1,6 +1,7 @@
 package com.diagbot.web;
 package com.diagbot.web;
 
 
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.biz.push.entity.ResponseDataWithExplain;
 import com.diagbot.biz.push.vo.SearchVO;
 import com.diagbot.biz.push.vo.SearchVO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
@@ -87,4 +88,17 @@ public class PushController {
         PushDTO data = pushFacade.pushInner(searchVO);
         PushDTO data = pushFacade.pushInner(searchVO);
         return RespDTO.onSuc(data);
         return RespDTO.onSuc(data);
     }
     }
+
+    @ApiOperation(value = "知识库标准化-推理接口[by:zhaops]",
+            notes = "hosCode: 医院编码<br>" +
+                    "featureType:类型(必填多选),1:症状,7:诊断,多项用逗号分开,String<br>" +
+                    "age: 年龄(必填)<br>" +
+                    "sex:性别(必填),1:男,2:女,Integer<br>" +
+                    "symptom:现病史,String<br>")
+    @PostMapping("/pushWithExplain")
+    @SysLogger("pushWithExplain")
+    public RespDTO<ResponseDataWithExplain> pushWithExplain(@Valid @RequestBody SearchVO searchVO) {
+        ResponseDataWithExplain data = pushFacade.pushWithExplain(searchVO);
+        return RespDTO.onSuc(data);
+    }
 }
 }

+ 44 - 0
aipt-service/src/main/java/com/diagbot/web/PushV2Controller.java

@@ -0,0 +1,44 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.biz.push.entity.ResponseData;
+import com.diagbot.biz.push.entity.ResponseDataV2;
+import com.diagbot.biz.push.entity.ResponseDataWithExplainV2;
+import com.diagbot.biz.push.vo.SearchVO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.PushV2Facade;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/4/16 16:34
+ */
+@RestController
+@RequestMapping("/pushV2")
+@Api(value = "推理V2相关API", tags = { "知识库标准化-推理V2相关API" })
+public class PushV2Controller {
+    @Autowired
+    private PushV2Facade pushV2Facade;
+
+    @PostMapping("/originalPush")
+    @SysLogger("originalPush")
+    public RespDTO<ResponseDataV2> originalPush(@Valid @RequestBody SearchVO searchVO) {
+        ResponseDataV2 data = pushV2Facade.originalPush(searchVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @PostMapping("/pushWithExplainV2")
+    @SysLogger("pushWithExplainV2")
+    public RespDTO<ResponseDataWithExplainV2> pushWithExplainV2(@Valid @RequestBody SearchVO searchVO) {
+        ResponseDataWithExplainV2 data = pushV2Facade.pushWithExplain(searchVO);
+        return RespDTO.onSuc(data);
+    }
+}

+ 18 - 0
aipt-service/src/main/resources/mapper/ConceptDetailMapper.xml

@@ -20,4 +20,22 @@
         <result column="source" property="source" />
         <result column="source" property="source" />
     </resultMap>
     </resultMap>
 
 
+    <select id="selectByParam" resultType="com.diagbot.entity.ConceptDetail" parameterType="com.diagbot.entity.ConceptDetail">
+    SELECT t.*
+    FROM
+    kl_concept_detail t
+    WHERE 1=1
+    <if test="content!=null and content!=''">
+        and content like concat('%',#{content},'%')
+    </if>
+    </select>
+
+    <select id="selectiveTestPage" resultMap="BaseResultMap">
+        SELECT *
+        FROM kl_concept_detail t
+        WHERE t.is_deleted = 'N'
+        <if test="conceptDetailPageVO.content!=null and conceptDetailPageVO.content!=''">
+            and t.content like concat('%',#{conceptDetailPageVO.content},'%')
+        </if>
+    </select>
 </mapper>
 </mapper>

+ 25 - 0
aipt-service/src/main/resources/mapper/ConceptMapper.xml

@@ -1288,4 +1288,29 @@
         and a.type_id = #{libType} and b.lib_type = #{libType}
         and a.type_id = #{libType} and b.lib_type = #{libType}
     </select>
     </select>
 
 
+
+    <select id="getFeatureConcept" resultType="com.diagbot.dto.FeatureConceptDTO" parameterType="com.diagbot.vo.ConceptNameVO">
+        SELECT
+        a.NAME AS origin,
+        b.lib_name AS NAME,
+        b.id AS conceptId,
+        b.lib_type AS libType
+        FROM
+        kl_library_info a,
+        kl_concept b
+        WHERE
+        a.concept_id = b.id
+        AND a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        <if test="type!=null and type !=''">
+            AND a.type_id = #{type}
+            AND b.lib_type = #{type}
+        </if>
+        <if test="names!=null and names.size>0">
+            AND a.name IN
+            <foreach collection="names" item="name" open="(" close=")" separator=",">
+                #{name}
+            </foreach>
+        </if>
+    </select>
 </mapper>
 </mapper>

+ 37 - 0
common-biz-client/pom.xml

@@ -59,6 +59,43 @@
         </dependency>
         </dependency>
     </dependencies>
     </dependencies>
 
 
+    <!-- 私有仓库 -->
+    <repositories>
+        <repository>
+            <id>nexus-releases</id>
+            <name>Nexus Release Repository</name>
+            <url>http://192.168.2.236:8081/repository/maven-releases/</url>
+        </repository>
+    </repositories>
+    <!-- 私有仓库 -->
+    <pluginRepositories>
+        <pluginRepository>
+            <id>nexus-releases</id>
+            <name>Nexus Release Repository</name>
+            <url>http://192.168.2.236:8081/repository/maven-releases/</url>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </pluginRepository>
+    </pluginRepositories>
+
+    <distributionManagement>
+        <repository>
+            <id>nexus-releases</id>
+            <name>Nexus Release Repository</name>
+            <url>http://192.168.2.236:8081/repository/maven-releases/</url>
+        </repository>
+        <snapshotRepository>
+            <id>nexus-snapshots</id>
+            <name>Nexus Snapshot Repository</name>
+            <url>http://192.168.2.236:8081/repository/maven-snapshots/</url>
+        </snapshotRepository>
+    </distributionManagement>
+
+
     <build>
     <build>
         <plugins>
         <plugins>
             <plugin>
             <plugin>

+ 37 - 1
common/pom.xml

@@ -75,7 +75,7 @@
             <groupId>com.google.code.gson</groupId>
             <groupId>com.google.code.gson</groupId>
             <artifactId>gson</artifactId>
             <artifactId>gson</artifactId>
             <version>2.8.6</version>
             <version>2.8.6</version>
-            <scope>provided</scope>
+            <scope>compile</scope>
         </dependency>
         </dependency>
 
 
         <dependency>
         <dependency>
@@ -133,6 +133,42 @@
         <!--</dependency>-->
         <!--</dependency>-->
     </dependencies>
     </dependencies>
 
 
+    <!-- 私有仓库 -->
+    <repositories>
+        <repository>
+            <id>nexus-releases</id>
+            <name>Nexus Release Repository</name>
+            <url>http://192.168.2.236:8081/repository/maven-releases/</url>
+        </repository>
+    </repositories>
+    <!-- 私有仓库 -->
+    <pluginRepositories>
+        <pluginRepository>
+            <id>nexus-releases</id>
+            <name>Nexus Release Repository</name>
+            <url>http://192.168.2.236:8081/repository/maven-releases/</url>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </pluginRepository>
+    </pluginRepositories>
+
+    <distributionManagement>
+        <repository>
+            <id>nexus-releases</id>
+            <name>Nexus Release Repository</name>
+            <url>http://192.168.2.236:8081/repository/maven-releases/</url>
+        </repository>
+        <snapshotRepository>
+            <id>nexus-snapshots</id>
+            <name>Nexus Snapshot Repository</name>
+            <url>http://192.168.2.236:8081/repository/maven-snapshots/</url>
+        </snapshotRepository>
+    </distributionManagement>
+
     <build>
     <build>
         <plugins>
         <plugins>
             <plugin>
             <plugin>

+ 26 - 0
common/src/main/java/com/diagbot/annotation/CryptField.java

@@ -0,0 +1,26 @@
+package com.diagbot.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * @Description: 加解密注解
+ * @author: gaodm
+ * @time: 2019/12/30 18:36
+ */
+@Inherited
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ ElementType.FIELD, ElementType.PARAMETER, ElementType.METHOD })
+public @interface CryptField {
+
+    String value() default "";
+
+    boolean encrypt() default true;
+
+    boolean decrypt() default true;
+}

+ 2 - 0
common/src/main/java/com/diagbot/biz/push/entity/AdverseReaction.java

@@ -1,5 +1,6 @@
 package com.diagbot.biz.push.entity;
 package com.diagbot.biz.push.entity;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -20,6 +21,7 @@ public class AdverseReaction {
     /**
     /**
      * 术语名称
      * 术语名称
      */
      */
+    @CryptField
     private String name;
     private String name;
     /**
     /**
      * 词性
      * 词性

+ 3 - 0
common/src/main/java/com/diagbot/biz/push/entity/FeatureRate.java

@@ -1,5 +1,6 @@
 package com.diagbot.biz.push.entity;
 package com.diagbot.biz.push.entity;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -9,7 +10,9 @@ import lombok.Setter;
 @Getter
 @Getter
 @Setter
 @Setter
 public class FeatureRate {
 public class FeatureRate {
+    @CryptField
     private String featureName;
     private String featureName;
+    @CryptField
     private String extraProperty;
     private String extraProperty;
     private String desc;
     private String desc;
     private String rate;
     private String rate;

+ 18 - 0
common/src/main/java/com/diagbot/biz/push/entity/FeatureRateV2.java

@@ -0,0 +1,18 @@
+package com.diagbot.biz.push.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/4/17 10:19
+ */
+@Getter
+@Setter
+public class FeatureRateV2 extends FeatureRate {
+    /**
+     * 诊断分类
+     */
+    private String bigClass;
+}

+ 16 - 0
common/src/main/java/com/diagbot/biz/push/entity/FeatureRateWithExplain.java

@@ -0,0 +1,16 @@
+package com.diagbot.biz.push.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:推理返回类型带名词解释
+ * @Author:zhaops
+ * @time: 2020/3/23 10:44
+ */
+@Getter
+@Setter
+public class FeatureRateWithExplain extends FeatureRate {
+    private String description;
+    private String explains;
+}

+ 16 - 0
common/src/main/java/com/diagbot/biz/push/entity/FeatureRateWithExplainV2.java

@@ -0,0 +1,16 @@
+package com.diagbot.biz.push.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/4/17 10:24
+ */
+@Getter
+@Setter
+public class FeatureRateWithExplainV2 extends FeatureRateV2 {
+    private String description;
+    private String explains;
+}

+ 6 - 0
common/src/main/java/com/diagbot/biz/push/entity/MedicalIndication.java

@@ -1,5 +1,6 @@
 package com.diagbot.biz.push.entity;
 package com.diagbot.biz.push.entity;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -29,7 +30,12 @@ public class MedicalIndication {
     /**
     /**
      * 名称(术语、描述等)
      * 名称(术语、描述等)
      */
      */
+    @CryptField
     private String name;
     private String name;
+    /**
+     * 医院入参
+     */
+    private String hisName;
     /**
     /**
      * 病情提示明细
      * 病情提示明细
      */
      */

+ 2 - 0
common/src/main/java/com/diagbot/biz/push/entity/Medicition.java

@@ -1,5 +1,6 @@
 package com.diagbot.biz.push.entity;
 package com.diagbot.biz.push.entity;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -18,6 +19,7 @@ public class Medicition {
     /**
     /**
      * 药品名称
      * 药品名称
      */
      */
+    @CryptField
     private String medicitionName;
     private String medicitionName;
     /**
     /**
      * 词性(10:药品通用名)
      * 词性(10:药品通用名)

+ 3 - 0
common/src/main/java/com/diagbot/biz/push/entity/MedicitionClass.java

@@ -1,5 +1,6 @@
 package com.diagbot.biz.push.entity;
 package com.diagbot.biz.push.entity;
 
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -28,6 +29,7 @@ public class MedicitionClass {
     /**
     /**
      * 药品大类名称
      * 药品大类名称
      */
      */
+    @CryptField
     private String bigdrugsName;
     private String bigdrugsName;
     /**
     /**
      * 药品大类词性
      * 药品大类词性
@@ -44,6 +46,7 @@ public class MedicitionClass {
     /**
     /**
      * 药品小类名称
      * 药品小类名称
      */
      */
+    @CryptField
     private String subdrugsName;
     private String subdrugsName;
     /**
     /**
      * 药品小类词性
      * 药品小类词性

+ 26 - 0
common/src/main/java/com/diagbot/biz/push/entity/ResponseDataV2.java

@@ -0,0 +1,26 @@
+package com.diagbot.biz.push.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/4/17 10:13
+ */
+@Getter
+@Setter
+public class ResponseDataV2 {
+    /**
+     * 症状
+     */
+    private List<FeatureRateV2> symptom = new ArrayList<>(10);
+
+    /**
+     * 诊断
+     */
+    private List<FeatureRateV2> dis = new ArrayList<>(10);
+}

+ 25 - 0
common/src/main/java/com/diagbot/biz/push/entity/ResponseDataWithExplain.java

@@ -0,0 +1,25 @@
+package com.diagbot.biz.push.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description:推理结果带名词解释
+ * @Author:zhaops
+ * @time: 2020/3/23 10:45
+ */
+@Getter
+@Setter
+public class ResponseDataWithExplain {
+    /**
+     * 症状
+     */
+    private List<FeatureRateWithExplain> symptom = new ArrayList<>(10);
+    /**
+     * 诊断
+     */
+    private List<FeatureRate> dis = new ArrayList<>(10);
+}

+ 25 - 0
common/src/main/java/com/diagbot/biz/push/entity/ResponseDataWithExplainV2.java

@@ -0,0 +1,25 @@
+package com.diagbot.biz.push.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/4/17 10:25
+ */
+@Getter
+@Setter
+public class ResponseDataWithExplainV2 {
+    /**
+     * 症状
+     */
+    private List<FeatureRateWithExplainV2> symptom = new ArrayList<>(10);
+    /**
+     * 诊断
+     */
+    private List<FeatureRateV2> dis = new ArrayList<>(10);
+}

+ 2 - 0
common/src/main/java/com/diagbot/enums/SysTypeEnum.java

@@ -30,9 +30,11 @@ public enum SysTypeEnum implements KeyedNamed {
     PREC_SERVICE(17, "prec-service"),
     PREC_SERVICE(17, "prec-service"),
     PRECMAN_SERVICE(18, "precman-service"),
     PRECMAN_SERVICE(18, "precman-service"),
     MRQCMAN_SERVICE(19, "mrqcman-service"),
     MRQCMAN_SERVICE(19, "mrqcman-service"),
+    MRMAN_SERVICE(20, "mrman-service"),
     ZNWZ_SERVICE(21, "znwz-service"),
     ZNWZ_SERVICE(21, "znwz-service"),
     ZZCX_SERVICE(22, "zzcx-service"),
     ZZCX_SERVICE(22, "zzcx-service"),
     XLCS_SERVICE(23, "xlcs-service");
     XLCS_SERVICE(23, "xlcs-service");
+    LTKG_SERVICE(30, "ltkg-service");
 
 
     @Setter
     @Setter
     private int key;
     private int key;

+ 0 - 0
common/src/main/java/com/diagbot/util/AopUtil.java


部分文件因为文件数量过多而无法显示