liuqq %!s(int64=6) %!d(string=hai) anos
pai
achega
541fa54f9b
Modificáronse 100 ficheiros con 5015 adicións e 860 borrados
  1. 1 1
      aipt-service/pom.xml
  2. 1 1
      aipt-service/src/main/java/com/diagbot/AiptServiceApplication.java
  3. 76 76
      aipt-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java
  4. 24 0
      aipt-service/src/main/java/com/diagbot/client/AIServiceClient.java
  5. 20 5
      aipt-service/src/main/java/com/diagbot/client/NLPServiceClient.java
  6. 143 0
      aipt-service/src/main/java/com/diagbot/client/TranServiceClient.java
  7. 0 25
      aipt-service/src/main/java/com/diagbot/client/UserServiceClient.java
  8. 23 0
      aipt-service/src/main/java/com/diagbot/client/bean/AdverseReaction.java
  9. 16 0
      aipt-service/src/main/java/com/diagbot/client/bean/AdverseReactionDetail.java
  10. 1 1
      aipt-service/src/main/java/com/diagbot/client/AlgorithmClassify.java
  11. 1 1
      aipt-service/src/main/java/com/diagbot/client/Feature.java
  12. 3 4
      icss-service/src/main/java/com/diagbot/client/bean/TreatInput.java
  13. 3 0
      aipt-service/src/main/java/com/diagbot/client/bean/MedicalIndication.java
  14. 28 0
      aipt-service/src/main/java/com/diagbot/client/bean/Medicition.java
  15. 27 0
      aipt-service/src/main/java/com/diagbot/client/bean/MedicitionClass.java
  16. 0 2
      aipt-service/src/main/java/com/diagbot/client/bean/SearchData.java
  17. 24 0
      aipt-service/src/main/java/com/diagbot/client/hystrix/AIServiceHystrix.java
  18. 25 2
      aipt-service/src/main/java/com/diagbot/client/hystrix/NLPServiceHystrix.java
  19. 153 0
      aipt-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java
  20. 0 23
      aipt-service/src/main/java/com/diagbot/client/hystrix/UserServiceHystrix.java
  21. 1 1
      aipt-service/src/main/java/com/diagbot/config/SwaggerConfigurer.java
  22. 16 0
      aipt-service/src/main/java/com/diagbot/dto/ConceptBaseDTO.java
  23. 33 0
      aipt-service/src/main/java/com/diagbot/dto/ConceptDetailDTO.java
  24. 18 0
      aipt-service/src/main/java/com/diagbot/dto/ConceptIntroduceDTO.java
  25. 18 0
      aipt-service/src/main/java/com/diagbot/dto/ConceptPushDTO.java
  26. 22 0
      aipt-service/src/main/java/com/diagbot/dto/ConceptRes.java
  27. 25 0
      aipt-service/src/main/java/com/diagbot/dto/ConceptRetrievalDTO.java
  28. 4 3
      icssman-service/src/main/java/com/diagbot/dto/VitalInfoDTO.java
  29. 9 0
      aipt-service/src/main/java/com/diagbot/dto/DeptInfoDTO.java
  30. 17 0
      aipt-service/src/main/java/com/diagbot/dto/DisDTO.java
  31. 15 0
      aipt-service/src/main/java/com/diagbot/dto/DisScaleDTO.java
  32. 19 0
      aipt-service/src/main/java/com/diagbot/dto/DisTypeDTO.java
  33. 66 0
      aipt-service/src/main/java/com/diagbot/dto/DisclaimerInformationDTO.java
  34. 38 0
      aipt-service/src/main/java/com/diagbot/dto/DiseaseIcdDTO.java
  35. 22 0
      aipt-service/src/main/java/com/diagbot/dto/EvaluationDTO.java
  36. 17 0
      aipt-service/src/main/java/com/diagbot/dto/FeatureConceptDTO.java
  37. 0 4
      icss-service/src/main/java/com/diagbot/dto/GetDiseaseIcdDTO.java
  38. 156 0
      aipt-service/src/main/java/com/diagbot/dto/GetTopPatientInfoDTO.java
  39. 15 0
      aipt-service/src/main/java/com/diagbot/dto/HospitalDeptInfoDTO.java
  40. 20 0
      aipt-service/src/main/java/com/diagbot/dto/IndexConfigAndDataDTO.java
  41. 28 0
      aipt-service/src/main/java/com/diagbot/dto/IndexConfigDTO.java
  42. 25 0
      aipt-service/src/main/java/com/diagbot/dto/IndexDTO.java
  43. 25 0
      aipt-service/src/main/java/com/diagbot/dto/IndexDataDTO.java
  44. 23 0
      aipt-service/src/main/java/com/diagbot/dto/Lexeme.java
  45. 5 1
      aipt-service/src/main/java/com/diagbot/dto/LisResult.java
  46. 19 0
      aipt-service/src/main/java/com/diagbot/dto/PartDTO.java
  47. 18 0
      aipt-service/src/main/java/com/diagbot/dto/PartSymptomDTO.java
  48. 27 0
      aipt-service/src/main/java/com/diagbot/dto/PushDTO.java
  49. 34 0
      aipt-service/src/main/java/com/diagbot/dto/RetrievalDTO.java
  50. 19 0
      aipt-service/src/main/java/com/diagbot/dto/ScaleIndexDTO.java
  51. 22 25
      knowledge-service/src/main/java/com/diagbot/dto/LibraryInfoDTO.java
  52. 31 31
      icssman-service/src/main/java/com/diagbot/entity/Retrieval.java
  53. 30 28
      knowledgeman-service/src/main/java/com/diagbot/entity/LibraryDetail.java
  54. 15 22
      triage-service/src/main/java/com/diagbot/entity/SymptomWrapper.java
  55. 4 3
      icssman-service/src/main/java/com/diagbot/entity/DisType.java
  56. 4 4
      icss-service/src/main/java/com/diagbot/entity/DisclaimerInformation.java
  57. 29 19
      icss-service/src/main/java/com/diagbot/entity/DiseaseIcd.java
  58. 166 167
      icssman-service/src/main/java/com/diagbot/entity/EvaluationModuleMapping.java
  59. 48 46
      icss-service/src/main/java/com/diagbot/entity/HospitalInfo.java
  60. 170 171
      icssman-service/src/main/java/com/diagbot/entity/IndexConfig.java
  61. 36 0
      aipt-service/src/main/java/com/diagbot/entity/ScaleContent.java
  62. 23 0
      aipt-service/src/main/java/com/diagbot/entity/Symptom.java
  63. 0 142
      aipt-service/src/main/java/com/diagbot/entity/User.java
  64. 43 0
      aipt-service/src/main/java/com/diagbot/entity/wrapper/ConceptWrapper.java
  65. 65 0
      aipt-service/src/main/java/com/diagbot/enums/ConceptTypeEnum.java
  66. 10 14
      icss-service/src/main/java/com/diagbot/enums/IntroducePositionEnum.java
  67. 58 0
      aipt-service/src/main/java/com/diagbot/enums/FeatureTypeEnum.java
  68. 66 0
      aipt-service/src/main/java/com/diagbot/enums/LexiconRSTypeEnum.java
  69. 120 0
      aipt-service/src/main/java/com/diagbot/enums/LexiconTypeEnum.java
  70. 49 0
      aipt-service/src/main/java/com/diagbot/enums/LisSourceEnum.java
  71. 12 11
      icssman-service/src/main/java/com/diagbot/enums/IntroducePositionEnum.java
  72. 58 0
      aipt-service/src/main/java/com/diagbot/enums/QuestionTypeEnum.java
  73. 51 0
      aipt-service/src/main/java/com/diagbot/enums/ScaleTypeEnum.java
  74. 51 0
      aipt-service/src/main/java/com/diagbot/enums/StatusEnum.java
  75. 284 4
      aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java
  76. 162 0
      aipt-service/src/main/java/com/diagbot/facade/ConceptDetailFacade.java
  77. 371 0
      aipt-service/src/main/java/com/diagbot/facade/ConceptFacade.java
  78. 52 0
      aipt-service/src/main/java/com/diagbot/facade/DeptInfoFacade.java
  79. 97 0
      aipt-service/src/main/java/com/diagbot/facade/DisScaleFacade.java
  80. 102 0
      aipt-service/src/main/java/com/diagbot/facade/DisTypeFacade.java
  81. 37 0
      aipt-service/src/main/java/com/diagbot/facade/DisclaimerInformationFacade.java
  82. 80 0
      aipt-service/src/main/java/com/diagbot/facade/DiseaseIcdFacade.java
  83. 43 0
      aipt-service/src/main/java/com/diagbot/facade/EvaluationFacade.java
  84. 42 0
      aipt-service/src/main/java/com/diagbot/facade/FeatureFacade.java
  85. 25 0
      aipt-service/src/main/java/com/diagbot/facade/IndexConfigFacade.java
  86. 143 0
      aipt-service/src/main/java/com/diagbot/facade/IndexDataFacade.java
  87. 4 4
      aipt-service/src/main/java/com/diagbot/facade/NLPFacade.java
  88. 163 0
      aipt-service/src/main/java/com/diagbot/facade/PartFacade.java
  89. 51 0
      aipt-service/src/main/java/com/diagbot/facade/PatientInfoFacade.java
  90. 493 0
      aipt-service/src/main/java/com/diagbot/facade/PushFacade.java
  91. 0 13
      aipt-service/src/main/java/com/diagbot/facade/SysLogFacade.java
  92. 239 0
      aipt-service/src/main/java/com/diagbot/facade/TreatmentFacade.java
  93. 16 0
      aipt-service/src/main/java/com/diagbot/mapper/ConceptDetailMapper.java
  94. 68 0
      aipt-service/src/main/java/com/diagbot/mapper/ConceptMapper.java
  95. 3 2
      icss-service/src/main/java/com/diagbot/mapper/DisScaleMapper.java
  96. 2 2
      icssman-service/src/main/java/com/diagbot/mapper/DisTypeMapper.java
  97. 1 2
      icss-service/src/main/java/com/diagbot/mapper/DisclaimerInformationMapper.java
  98. 27 0
      aipt-service/src/main/java/com/diagbot/mapper/EvaluationMapper.java
  99. 26 0
      aipt-service/src/main/java/com/diagbot/mapper/IndexConfigMapper.java
  100. 0 0
      icss-service/src/main/java/com/diagbot/mapper/ScaleContentMapper.java

+ 1 - 1
aipt-service/pom.xml

@@ -10,7 +10,7 @@
     <packaging>jar</packaging>
 
     <name>aipt-service</name>
-    <description>AI pre-treatment Service for Spring Boot</description>
+    <description>AI and Knowledge Service for Spring Boot</description>
 
     <parent>
         <groupId>com.diagbot</groupId>

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

@@ -14,7 +14,7 @@ import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboar
 import org.springframework.cloud.openfeign.EnableFeignClients;
 
 /**
- * @Description: BI服务启动文件
+ * @Description: 知识库服务启动文件
  * @author: gaodm
  * @time: 2018/8/7 9:24
  */

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

@@ -1,76 +1,76 @@
-package com.diagbot.aop;
-
-import com.diagbot.annotation.SysLogger;
-import com.diagbot.entity.SysLog;
-import com.diagbot.enums.SysTypeEnum;
-import com.diagbot.rabbit.MySender;
-import com.diagbot.util.GsonUtil;
-import com.diagbot.util.HttpUtils;
-import com.diagbot.util.StringUtil;
-import com.diagbot.util.UserUtils;
-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.aspectj.lang.reflect.MethodSignature;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.lang.reflect.Method;
-import java.util.Date;
-
-/**
- * @Description: 日志拦截切面
- * @author: gaodm
- * @time: 2018/8/2 13:36
- */
-@Aspect
-@Component
-public class SysLoggerAspect {
-    @Autowired
-    private MySender mySender;
-
-    @Pointcut("@annotation(com.diagbot.annotation.SysLogger)")
-    public void loggerPointCut() {
-
-    }
-
-    @Before("loggerPointCut()")
-    public void saveSysLog(JoinPoint joinPoint) {
-        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
-        Method method = signature.getMethod();
-
-        SysLog sysLog = new SysLog();
-        SysLogger sysLogger = method.getAnnotation(SysLogger.class);
-        if (sysLogger != null) {
-            //注解上的描述
-            sysLog.setOperation(sysLogger.value());
-        }
-        //请求的方法名
-        String className = joinPoint.getTarget().getClass().getName();
-        String methodName = signature.getName();
-        sysLog.setMethod(className + "." + methodName + "()");
-        //请求的参数
-        Object[] args = joinPoint.getArgs();
-        String params = "";
-        for (Object o : args) {
-            params += GsonUtil.toJson(o);
-        }
-        if (!StringUtil.isEmpty(params)) {
-            sysLog.setParams(params);
-        }
-        //设置IP地址
-        sysLog.setIp(HttpUtils.getIpAddress());
-        //用户名
-        String username = UserUtils.getCurrentPrinciple();
-        if (!StringUtil.isEmpty(username)) {
-            sysLog.setUsername(username);
-        }
-        sysLog.setGmtCreate(new Date());
-        sysLog.setSysType(SysTypeEnum.AIPT_SERVICE.getKey());
-        //保存系统日志
-        mySender.outputLogSend(sysLog);
-    }
-
-}
-
+//package com.diagbot.aop;
+//
+//import com.diagbot.annotation.SysLogger;
+//import com.diagbot.entity.SysLog;
+//import com.diagbot.enums.SysTypeEnum;
+//import com.diagbot.rabbit.MySender;
+//import com.diagbot.util.GsonUtil;
+//import com.diagbot.util.HttpUtils;
+//import com.diagbot.util.StringUtil;
+//import com.diagbot.util.UserUtils;
+//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.aspectj.lang.reflect.MethodSignature;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Component;
+//
+//import java.lang.reflect.Method;
+//import java.util.Date;
+//
+///**
+// * @Description: 日志拦截切面
+// * @author: gaodm
+// * @time: 2018/8/2 13:36
+// */
+//@Aspect
+//@Component
+//public class SysLoggerAspect {
+//    @Autowired
+//    private MySender mySender;
+//
+//    @Pointcut("@annotation(com.diagbot.annotation.SysLogger)")
+//    public void loggerPointCut() {
+//
+//    }
+//
+//    @Before("loggerPointCut()")
+//    public void saveSysLog(JoinPoint joinPoint) {
+//        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+//        Method method = signature.getMethod();
+//
+//        SysLog sysLog = new SysLog();
+//        SysLogger sysLogger = method.getAnnotation(SysLogger.class);
+//        if (sysLogger != null) {
+//            //注解上的描述
+//            sysLog.setOperation(sysLogger.value());
+//        }
+//        //请求的方法名
+//        String className = joinPoint.getTarget().getClass().getName();
+//        String methodName = signature.getName();
+//        sysLog.setMethod(className + "." + methodName + "()");
+//        //请求的参数
+//        Object[] args = joinPoint.getArgs();
+//        String params = "";
+//        for (Object o : args) {
+//            params += GsonUtil.toJson(o);
+//        }
+//        if (!StringUtil.isEmpty(params)) {
+//            sysLog.setParams(params);
+//        }
+//        //设置IP地址
+//        sysLog.setIp(HttpUtils.getIpAddress());
+//        //用户名
+//        String username = UserUtils.getCurrentPrinciple();
+//        if (!StringUtil.isEmpty(username)) {
+//            sysLog.setUsername(username);
+//        }
+//        sysLog.setGmtCreate(new Date());
+//        sysLog.setSysType(SysTypeEnum.AIPT_SERVICE.getKey());
+//        //保存系统日志
+//        mySender.outputLogSend(sysLog);
+//    }
+//
+//}
+//

+ 24 - 0
aipt-service/src/main/java/com/diagbot/client/AIServiceClient.java

@@ -19,15 +19,39 @@ import java.util.Map;
  */
 @FeignClient(name = "AI", url = "${ai.server.address}", fallback = AIServiceHystrix.class)
 public interface AIServiceClient {
+    /**
+     * 推理
+     *
+     * @param searchVo
+     * @return
+     */
     @PostMapping(value = "/push-web/algorithm/neural")
     Response<ResponseData> bayesPageData(@RequestBody SearchVo searchVo);
 
+    /**
+     * 量表推理
+     *
+     * @param searchVo
+     * @return
+     */
     @PostMapping(value = "/push-web/graph/scale")
     Map<String, Object> scale(@RequestBody SearchVo searchVo);
 
+    /**
+     * 高危诊断
+     *
+     * @param searchVo
+     * @return
+     */
     @PostMapping(value = "/push-web/graph/highRisk")
     Response<GdbResponse> highRiskPageData(@RequestBody SearchVo searchVo);
 
+    /**
+     * 计算接口
+     *
+     * @param calculateData
+     * @return
+     */
     @PostMapping(value = "/push-web/graph/scaleCalc")
     Map<String, Object> scaleCalc(@RequestBody CalculateData calculateData);
 }

+ 20 - 5
aipt-service/src/main/java/com/diagbot/client/NLPServiceClient.java

@@ -2,12 +2,12 @@ package com.diagbot.client;
 
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.hystrix.NLPServiceHystrix;
+import com.diagbot.dto.FeatureConceptDTO;
+import com.diagbot.dto.Lexeme;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * @Description:调用NLP对接层服务
@@ -16,6 +16,21 @@ import java.util.Map;
  */
 @FeignClient(name = "NLP", url = "${nlp.server.address}", fallback = NLPServiceHystrix.class)
 public interface NLPServiceClient {
-    @PostMapping(value = "/nlp-web/feature/find_symptom_feature")
-    Response<List<Map<String, Object>>> symptomFeaturePageData(@RequestParam("text") String text);
+    /**
+     * 症状特征提取
+     *
+     * @param text
+     * @return
+     */
+    @GetMapping(value = "/nlp-web/feature/find_symptom_feature")
+    Response<List<FeatureConceptDTO>> symptomFeaturePageData(@RequestParam("text") String text);
+
+    /**
+     * 分词
+     *
+     * @param text
+     * @return
+     */
+    @PostMapping(value = "/nlp-web/participle/split")
+    Response<List<Lexeme>> split(@RequestParam("content") String text);
 }

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

@@ -0,0 +1,143 @@
+package com.diagbot.client;
+
+import com.diagbot.client.bean.HosCodeVO;
+import com.diagbot.client.hystrix.TranServiceHystrix;
+import com.diagbot.dto.GetDiseaseIcdDTO;
+import com.diagbot.dto.GetTopPatientInfoDTO;
+import com.diagbot.dto.HospitalDeptInfoDTO;
+import com.diagbot.dto.IndexDataDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.SysSetInfoDTO;
+import com.diagbot.vo.GetDiseaseIcdVO;
+import com.diagbot.vo.GetTopPatientInfoVO;
+import com.diagbot.vo.HospitalDeptInfoVO;
+import com.diagbot.vo.HospitalSetVO;
+import com.diagbot.vo.IndexDataSaveVO;
+import com.diagbot.vo.IndexDataiIds;
+import com.diagbot.vo.LisConfigVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 调用信息对接层服务
+ * @author: gaodm
+ * @time: 2019/2/1 17:00
+ */
+@FeignClient(value = "tran-service", fallback = TranServiceHystrix.class)
+public interface TranServiceClient {
+    /**
+     * 获取科室信息
+     *
+     * @param hospitalDeptInfoVO
+     * @return
+     */
+    @PostMapping("/hospitalDeptInfo/getHospitalDeptInfo")
+    RespDTO<HospitalDeptInfoDTO> getHospitalDeptInfo(@RequestBody HospitalDeptInfoVO hospitalDeptInfoVO);
+
+    /**
+     * 根据医院编号疾病概念名称获取各医院对应的诊断icd
+     *
+     * @param getDiseaseIcdVO
+     * @return
+     */
+    @PostMapping("/diseaseIcd/getDiseaseIcds")
+    RespDTO<List<GetDiseaseIcdDTO>> getDiseaseIcds(@RequestBody GetDiseaseIcdVO getDiseaseIcdVO);
+
+    /**
+     * 获取页面顶部病人医生科室信息
+     *
+     * @param getTopPatientInfoVO
+     * @return
+     */
+    @PostMapping("/patientInfo/getTopPatientInfo")
+    RespDTO<GetTopPatientInfoDTO> getTopPatientInfo(@RequestBody GetTopPatientInfoVO getTopPatientInfoVO);
+
+    /**
+     * 根据医院编码和套餐名称获取化验公表映射关系
+     *
+     * @param lisConfigVO
+     * @return
+     */
+    @PostMapping("/tranLisConfig/getLisConfigByMealNameAndHosCode")
+    RespDTO<Map<String, Map<String, String>>> getLisConfigByMealNameAndHosCode(@RequestBody LisConfigVO lisConfigVO);
+
+    /**
+     * 根据医院编码获取辅检公表映射关系
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @PostMapping("/pacsConfig/getPacsConfigByHosCode")
+    RespDTO<Map<String, String>> getPacsConfigByHosCode(@RequestBody HosCodeVO hosCodeVO);
+
+    /**
+     * 根据医院编码获取提示信息标题映射关系
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @PostMapping("/introduceTitleConfig/getTitleMappingHosCode")
+    RespDTO<Map<String, String>> getTitleMappingHosCode(@RequestBody HosCodeVO hosCodeVO);
+
+    /**
+     * 根据医院编码查询诊断icd映射
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @PostMapping("/diseaseIcd/getDiseaseIcdByHosCode")
+    RespDTO<Map<String, String>> getDiseaseIcdByHosCode(@RequestBody HosCodeVO hosCodeVO);
+
+    /**
+     * 数据服务模式是否对外对接
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @PostMapping("/dataService/isConnect")
+    RespDTO<Boolean> isConnect(HosCodeVO hosCodeVO);
+
+    /**
+     * 根据医院编码获取化验公表映射关系,公表项做key
+     *
+     * @param lisConfigVO
+     * @return
+     */
+    @PostMapping("/tranLisConfig/getLisConfigByUniqueNameAndHosCode")
+    RespDTO<Map<String, List<String>>> getLisConfigByUniqueNameAndHosCode(@RequestBody LisConfigVO lisConfigVO);
+
+    /**
+     * 根据医院编码查询辅检公表映射,公表项做key
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @PostMapping("/pacsConfig/getPacsConfigByUniqueNameAndHosCode")
+    RespDTO<Map<String, List<String>>> getPacsConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO);
+
+    /**
+     * 指标数据获取
+     *
+     * @param indexDataFindVO
+     * @return
+     */
+    @PostMapping(value = "/indexData/getIndexDatas")
+    RespDTO<List<IndexDataDTO>> getIndexDatas(@RequestBody IndexDataiIds indexDataFindVO);
+
+    /**
+     * 指标数据保存
+     *
+     * @param indexDataSaveVO
+     * @return
+     */
+    @PostMapping(value = "/indexData/saveIndexDatas")
+    RespDTO<Boolean> saveIndexDatas(@RequestBody IndexDataSaveVO indexDataSaveVO);
+
+    @PostMapping("/sysSet/getSysSetInfoDatas")
+    RespDTO<List<SysSetInfoDTO>> getSysSetInfoDatas(@Valid @RequestBody HospitalSetVO hospitalSetVO);
+}

+ 0 - 25
aipt-service/src/main/java/com/diagbot/client/UserServiceClient.java

@@ -1,25 +0,0 @@
-package com.diagbot.client;
-
-import com.diagbot.client.hystrix.UserServiceHystrix;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.entity.User;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestHeader;
-
-
-/**
- * @Description: 调用用户服务
- * @author: gaodm
- * @time: 2018/8/6 9:52
- */
-@FeignClient(value = "user-service", fallback = UserServiceHystrix.class)
-public interface UserServiceClient {
-
-    @PostMapping(value = "/user/{username}")
-    RespDTO<User> getUser(@RequestHeader(value = "Authorization") String token, @PathVariable("username") String username);
-}
-
-
-

+ 23 - 0
aipt-service/src/main/java/com/diagbot/client/bean/AdverseReaction.java

@@ -0,0 +1,23 @@
+package com.diagbot.client.bean;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description: 不良反应
+ * @Author:zhaops
+ * @time: 2019/3/14 11:14
+ */
+@Getter
+@Setter
+public class AdverseReaction {
+    private Long conceptId;
+    private String name;  //名称
+    private Integer libType;
+    private Integer type;
+    private String showInfo = "0";//是否显示提示信息
+    private Integer controlType; //控件类型
+    private List<AdverseReactionDetail> details;
+}

+ 16 - 0
aipt-service/src/main/java/com/diagbot/client/bean/AdverseReactionDetail.java

@@ -0,0 +1,16 @@
+package com.diagbot.client.bean;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description: 不良反应明细
+ * @Author:zhaops
+ * @time: 2019/3/14 11:19
+ */
+@Getter
+@Setter
+public class AdverseReactionDetail {
+    private String name;
+    private Integer value; //是否选中:0-未选中,1-选中
+}

+ 1 - 1
aipt-service/src/main/java/com/diagbot/client/AlgorithmClassify.java

@@ -1,4 +1,4 @@
-package com.diagbot.client;
+package com.diagbot.client.bean;
 
 /**
  * @Auther: fyeman

+ 1 - 1
aipt-service/src/main/java/com/diagbot/client/Feature.java

@@ -1,4 +1,4 @@
-package com.diagbot.client;
+package com.diagbot.client.bean;
 
 import java.io.Serializable;
 

+ 3 - 4
icss-service/src/main/java/com/diagbot/client/bean/TreatInput.java

@@ -6,11 +6,10 @@ import lombok.Setter;
 /**
  * @Description:
  * @Author:zhaops
- * @time: 2018/12/18 10:53
+ * @time: 2019/3/12 11:05
  */
 @Getter
 @Setter
-public class TreatInput {
-    private String disease;
-    private String filds;
+public class HosCodeVO {
+    private String hosCode;
 }

+ 3 - 0
aipt-service/src/main/java/com/diagbot/client/bean/MedicalIndication.java

@@ -14,6 +14,9 @@ import java.util.List;
 @Getter
 @Setter
 public class MedicalIndication {
+    private Long conceptId;
+    private Integer libType;
+    private Integer type;
     private String name;
     private List<MedicalIndicationDetail> details;
 }

+ 28 - 0
aipt-service/src/main/java/com/diagbot/client/bean/Medicition.java

@@ -0,0 +1,28 @@
+package com.diagbot.client.bean;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:药品信息
+ * @Author:zhaops
+ * @time: 2018/12/17 13:27
+ */
+@Getter
+@Setter
+public class Medicition {
+    private Long conceptId;
+    private String medicitionName;
+    private Integer libType;
+    /**
+     * 1-显示,0-隐藏
+     */
+    private String isShow;
+    private String forbidden;
+    /**
+     * 1-有提示信息,0-没有提示信息
+     */
+    private String showInfo = "0";
+    private String rate;
+    private Integer type;
+}

+ 27 - 0
aipt-service/src/main/java/com/diagbot/client/bean/MedicitionClass.java

@@ -0,0 +1,27 @@
+package com.diagbot.client.bean;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.LinkedList;
+
+/**
+ * @Description:药品分类
+ * @Author:zhaops
+ * @time: 2018/12/17 13:32
+ */
+@Getter
+@Setter
+public class MedicitionClass {
+    private String showInfo = "0";
+    private String drugsForbidden;
+    private Long bigdrugsConceptId;//药品分类概念id-大类
+    private String bigdrugsName;//药类名
+    private Integer bigdrgusLibType;
+    private Integer bigdrugsType;
+    private Long subdrugsConceptId;//药品分类概念id-小类
+    private String subdrugsName;//药类名-小类
+    private Integer subdrugsLibType;
+    private Integer subdrugsType;
+    private LinkedList<Medicition> medicitionsList;
+}

+ 0 - 2
aipt-service/src/main/java/com/diagbot/client/bean/SearchData.java

@@ -1,7 +1,5 @@
 package com.diagbot.client.bean;
 
-import com.diagbot.client.AlgorithmClassify;
-import com.diagbot.client.Feature;
 import com.diagbot.dto.LisResult;
 import lombok.Getter;
 import lombok.Setter;

+ 24 - 0
aipt-service/src/main/java/com/diagbot/client/hystrix/AIServiceHystrix.java

@@ -20,24 +20,48 @@ import java.util.Map;
 @Component
 @Slf4j
 public class AIServiceHystrix implements AIServiceClient {
+    /**
+     * 推理
+     *
+     * @param searchVo
+     * @return
+     */
     @Override
     public Response<ResponseData> bayesPageData(SearchVo searchVo) {
         log.error("【hystrix】调用{}异常", "bayesPageData");
         return null;
     }
 
+    /**
+     * 量表推理
+     *
+     * @param searchVo
+     * @return
+     */
     @Override
     public Map<String, Object> scale(@RequestBody SearchVo searchVo) {
         log.error("【hystrix】调用{}异常", "scale");
         return null;
     }
 
+    /**
+     * 高危诊断
+     *
+     * @param searchVo
+     * @return
+     */
     @Override
     public Response<GdbResponse> highRiskPageData(@RequestBody SearchVo searchVo) {
         log.error("【hystrix】调用{}异常", "highRiskPageData");
         return null;
     }
 
+    /**
+     * 计算接口
+     *
+     * @param calculateData
+     * @return
+     */
     @Override
     public Map<String, Object> scaleCalc(@RequestBody CalculateData calculateData) {
         log.error("【hystrix】调用{}异常", "scaleCalc");

+ 25 - 2
aipt-service/src/main/java/com/diagbot/client/hystrix/NLPServiceHystrix.java

@@ -1,13 +1,17 @@
 package com.diagbot.client.hystrix;
 
 import com.diagbot.client.NLPServiceClient;
+import com.diagbot.client.bean.Feature;
 import com.diagbot.client.bean.Response;
+import com.diagbot.dto.FeatureConceptDTO;
+import com.diagbot.dto.Lexeme;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * @Description:调用NLP对接层服务
@@ -18,9 +22,28 @@ import java.util.Map;
 @Slf4j
 public class NLPServiceHystrix implements NLPServiceClient {
 
+    /**
+     * 症状特征提取
+     *
+     * @param text
+     * @return
+     */
     @Override
-    public Response<List<Map<String, Object>>> symptomFeaturePageData(@RequestParam("text") String text) {
+    public Response<List<FeatureConceptDTO>> symptomFeaturePageData(@RequestParam("text") String text) {
         log.error("【hystrix】调用{}异常", "symptomFeaturePageData");
         return null;
     }
+
+    /**
+     * 分词
+     *
+     * @param text
+     * @return
+     */
+    @Override
+    public Response<List<Lexeme>> split(@PathVariable("content") String text) {
+        log.error("【hystrix】调用{}异常", "split");
+        return null;
+    }
+
 }

+ 153 - 0
aipt-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java

@@ -0,0 +1,153 @@
+package com.diagbot.client.hystrix;
+
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.client.bean.HosCodeVO;
+import com.diagbot.dto.GetDiseaseIcdDTO;
+import com.diagbot.dto.GetTopPatientInfoDTO;
+import com.diagbot.dto.HospitalDeptInfoDTO;
+import com.diagbot.dto.IndexDataDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.SysSetInfoDTO;
+import com.diagbot.vo.GetDiseaseIcdVO;
+import com.diagbot.vo.GetTopPatientInfoVO;
+import com.diagbot.vo.HospitalDeptInfoVO;
+import com.diagbot.vo.HospitalSetVO;
+import com.diagbot.vo.IndexDataSaveVO;
+import com.diagbot.vo.IndexDataiIds;
+import com.diagbot.vo.LisConfigVO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 调用信息对接层服务
+ * @author: gaodm
+ * @time: 2019/2/1 17:00
+ */
+@Component
+@Slf4j
+public class TranServiceHystrix implements TranServiceClient {
+    @Override
+    public RespDTO<HospitalDeptInfoDTO> getHospitalDeptInfo(HospitalDeptInfoVO hospitalDeptInfoVO) {
+        log.error("【hystrix】调用{}异常", "getHospitalDeptInfo");
+        return null;
+    }
+
+    @Override
+    public RespDTO<List<GetDiseaseIcdDTO>> getDiseaseIcds(GetDiseaseIcdVO getDiseaseIcdVO) {
+        log.error("【hystrix】调用{}异常", "getDiseaseIcds");
+        return null;
+    }
+
+    @Override
+    public RespDTO<GetTopPatientInfoDTO> getTopPatientInfo(GetTopPatientInfoVO getTopPatientInfoVO) {
+        log.error("【hystrix】调用{}异常", "getTopPatientInfo");
+        return null;
+    }
+
+    /**
+     * 根据医院编码和套餐名称获取化验公表映射关系
+     *
+     * @param lisConfigVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, Map<String, String>>> getLisConfigByMealNameAndHosCode(@RequestBody LisConfigVO lisConfigVO) {
+        log.error("【hystrix】调用{}异常", "getLisConfigByMealNameAndHosCode");
+        return null;
+    }
+
+    /**
+     * 根据医院编码获取辅检公表映射关系
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, String>> getPacsConfigByHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getPacsConfigByHosCode");
+        return null;
+    }
+
+    /**
+     * 根据医院编码获取提示信息标题映射关系
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, String>> getTitleMappingHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getTitleMappingHosCode");
+        return null;
+    }
+
+    /**
+     * 根据医院编码查询诊断icd映射
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, String>> getDiseaseIcdByHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getDiseaseIcdByHosCode");
+        return null;
+    }
+
+    /**
+     * 数据服务模式是否对外对接
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @Override
+    public RespDTO<Boolean> isConnect(HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "isConnect");
+        return null;
+    }
+
+    /**
+     * 根据医院编码获取化验公表映射关系,公表项做key
+     *
+     * @param lisConfigVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, List<String>>> getLisConfigByUniqueNameAndHosCode(@RequestBody LisConfigVO lisConfigVO) {
+        log.error("【hystrix】调用{}异常", "getLisConfigByUniqueNameAndHosCode");
+        return null;
+    }
+
+    /**
+     * 根据医院编码查询辅检公表映射,公表项做key
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, List<String>>> getPacsConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getPacsConfigByUniqueNameAndHosCode");
+        return null;
+    }
+
+    @Override
+    public RespDTO<List<IndexDataDTO>> getIndexDatas(@Valid IndexDataiIds indexDataFindVO) {
+        log.error("【hystrix】调用{}异常", "getIndexDatas");
+        return null;
+    }
+
+    @Override
+    public RespDTO<Boolean> saveIndexDatas(@Valid IndexDataSaveVO indexDataSaveVO) {
+        log.error("【hystrix】调用{}异常", "saveIndexDatas");
+        return null;
+    }
+
+    @Override
+    public RespDTO<List<SysSetInfoDTO>> getSysSetInfoDatas(@Valid HospitalSetVO hospitalSetVO) {
+        log.error("【hystrix】调用{}异常", "getSysSetInfoDatas");
+        return null;
+    }
+}

+ 0 - 23
aipt-service/src/main/java/com/diagbot/client/hystrix/UserServiceHystrix.java

@@ -1,23 +0,0 @@
-package com.diagbot.client.hystrix;
-
-import com.diagbot.client.UserServiceClient;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.entity.User;
-import org.springframework.stereotype.Component;
-
-
-/**
- * @Description: 调用用户服务
- * @author: gaodm
- * @time: 2018/8/6 9:52
- */
-@Component
-public class UserServiceHystrix implements UserServiceClient {
-
-    @Override
-    public RespDTO<User> getUser(String token, String username) {
-        System.out.println(token);
-        System.out.println(username);
-        return null;
-    }
-}

+ 1 - 1
aipt-service/src/main/java/com/diagbot/config/SwaggerConfigurer.java

@@ -60,7 +60,7 @@ public class SwaggerConfigurer {
     private ApiInfo apiInfo() {
         return new ApiInfoBuilder()
                 .title(" aipt-service api ")
-                .description("aipt-service 微服务")
+                .description("知识库&推理 微服务")
                 .termsOfServiceUrl("")
                 .contact(new Contact("diagbot","",""))
                 .version("1.0")

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

@@ -0,0 +1,16 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description: 概念出参基础实体类
+ * @author: gaodm
+ * @time: 2019/5/7 9:44
+ */
+@Getter
+@Setter
+public class ConceptBaseDTO {
+    private Long conceptId; // 概念id
+    private String name;    //概念名称
+}

+ 33 - 0
aipt-service/src/main/java/com/diagbot/dto/ConceptDetailDTO.java

@@ -0,0 +1,33 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:提示信息明细
+ * @Author:zhaops
+ * @time: 2019/5/6 16:33
+ */
+@Getter
+@Setter
+public class ConceptDetailDTO {
+    /**
+     * 提示明细标题
+     */
+    private String title;
+
+    /**
+     * 提示明细内容
+     */
+    private String content;
+
+    /**
+     * 纯文本
+     */
+    private String text;
+
+    /**
+     * 是否诊断依据(1-是,0-否)
+     */
+    private Integer isReason;
+}

+ 18 - 0
aipt-service/src/main/java/com/diagbot/dto/ConceptIntroduceDTO.java

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import com.diagbot.util.ListUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:提示信息返回
+ * @Author:zhaops
+ * @time: 2019/5/6 16:32
+ */
+@Getter
+@Setter
+public class ConceptIntroduceDTO extends ConceptBaseDTO{
+    private List<ConceptDetailDTO> details = ListUtil.newArrayList();
+}

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

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/5/7 20:06
+ */
+@Getter
+@Setter
+public class ConceptPushDTO extends ConceptBaseDTO {
+    private Integer libType;
+    //数据服务模式调用方名称
+    private String clientName;
+    private Integer type;
+}

+ 22 - 0
aipt-service/src/main/java/com/diagbot/dto/ConceptRes.java

@@ -0,0 +1,22 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2019/5/6 15:59
+ */
+@Getter
+@Setter
+public class ConceptRes {
+    //关系起点术语id
+    private Long startId;
+    //关系起点术语名称
+    private String startName;
+    //关系终点术语id
+    private Long endId;
+    //关系终点术语名称
+    private String endName;
+}

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

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

+ 4 - 3
icssman-service/src/main/java/com/diagbot/dto/VitalInfoDTO.java

@@ -5,11 +5,12 @@ import lombok.Setter;
 
 /**
  * @Description:
- * @Author:zhaops
- * @time: 2018/11/29 15:09
+ * @author: gaodm
+ * @time: 2019/5/6 16:02
  */
 @Getter
 @Setter
-public class VitalInfoDTO extends QuestionShortDTO{
+public class ConceptWithOrderRes extends ConceptRes{
+    //排序号
     private Integer orderNo;
 }

+ 9 - 0
aipt-service/src/main/java/com/diagbot/dto/DeptInfoDTO.java

@@ -0,0 +1,9 @@
+package com.diagbot.dto;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2019/5/8 13:51
+ */
+public class DeptInfoDTO extends ConceptBaseDTO {
+}

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

@@ -0,0 +1,17 @@
+package com.diagbot.dto;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description: 返回诊断基本信息
+ * @Author: ztg
+ * @Date: 2018/10/24 16:11
+ */
+@Getter
+@Setter
+public class DisDTO extends ConceptBaseDTO{
+    @JsonIgnore
+    private String typeName;//类型:慢病,急诊
+}

+ 15 - 0
aipt-service/src/main/java/com/diagbot/dto/DisScaleDTO.java

@@ -0,0 +1,15 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description: 返回诊断量表列表
+ * @Author: ztg
+ * @Date: 2018/10/24 16:11
+ */
+@Getter
+@Setter
+public class DisScaleDTO extends ConceptBaseDTO{
+
+}

+ 19 - 0
aipt-service/src/main/java/com/diagbot/dto/DisTypeDTO.java

@@ -0,0 +1,19 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description: 返回诊断类型
+ * @Author: ztg
+ * @Date: 2018/10/24 16:11
+ */
+@Getter
+@Setter
+public class DisTypeDTO {
+    private List<DisDTO> chronic = new ArrayList<>();
+    private List<DisDTO> emergency = new ArrayList<>();
+}

+ 66 - 0
aipt-service/src/main/java/com/diagbot/dto/DisclaimerInformationDTO.java

@@ -0,0 +1,66 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月21日 下午4:23:48
+ */
+@Setter
+@Getter
+public class DisclaimerInformationDTO {
+	private Long id;
+
+//    /**
+//     * 记录创建时间
+//     */
+//    private Date gmtCreate;
+//
+//
+//
+//    /**
+//     * 创建人,0表示无创建人值
+//     */
+//    private String creator;
+//
+//    /**
+//     * 主表id
+//     */
+//    private Long versionId;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 排序号
+     */
+    private String orderNo;
+
+//    /**
+//     * 1:启动,0:不启用
+//     */
+//    private String status;
+
+    /**
+     * 免责申明编号
+     */
+    private String disclaimerCode;
+
+//    /**
+//     * 备注
+//     */
+//    private String remark;
+
+}

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

@@ -0,0 +1,38 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2019/2/14 14:59
+ */
+@Getter
+@Setter
+public class DiseaseIcdDTO  {
+    /**
+     * 医院编码
+     */
+    private String hospitalCode;
+
+    /**
+     * HIS疾病名称
+     */
+    private String diseaseName;
+
+    /**
+     * icd编码
+     */
+    private String icd;
+
+    /**
+     * 朗通疾病概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 朗通疾病名称
+     */
+    private String conceptDisName;
+}

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

@@ -0,0 +1,22 @@
+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;
+}

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

@@ -0,0 +1,17 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/5/13 15:41
+ */
+@Getter
+@Setter
+public class FeatureConceptDTO extends ConceptBaseDTO {
+    private Integer libType;
+    private Integer type;
+    private Integer chronicLabel; //是否慢病复诊标志
+}

+ 0 - 4
icss-service/src/main/java/com/diagbot/dto/GetDiseaseIcdDTO.java

@@ -12,8 +12,4 @@ import lombok.Setter;
 @Getter
 @Setter
 public class GetDiseaseIcdDTO extends DiseaseIcd {
-    /**
-     * 疾病id
-     */
-    private Long questionId;
 }

+ 156 - 0
aipt-service/src/main/java/com/diagbot/dto/GetTopPatientInfoDTO.java

@@ -0,0 +1,156 @@
+package com.diagbot.dto;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年11月19日下午4:57:43
+ */
+@ApiModel(value="页面顶部病人医生科室信息查询接口出参")
+@Getter
+@Setter
+public class GetTopPatientInfoDTO {
+	
+	/**
+	 * 医院id
+	 */
+	@ApiModelProperty(value="医院id")
+	private Long hospitalId;
+	
+	/**
+     * 医院编码
+     */
+	@ApiModelProperty(value="医院编码")
+    private String hospitalCode;
+
+    /**
+     * 医院名称
+     */
+	@ApiModelProperty(value="医院名称")
+    private String hospitalName;
+    
+    /**
+	 * 医院科室id
+	 */
+	@ApiModelProperty(value="医院科室id")
+	private Long hospitalDeptId;
+	
+    /**
+	 * 自己科室id
+	 */
+	@ApiModelProperty(value="自己科室id")
+	private Long selfDeptId;
+	
+	/**
+	 * 自己科室名称
+	 */
+	@ApiModelProperty(value="自己科室名称")
+	private String selfDeptName;
+    
+    /**
+     * 医院科室编码
+     */
+	@ApiModelProperty(value="医院科室编码")
+    private String hospitalDeptCode;
+
+    /**
+     * 医院科室名称
+     */
+	@ApiModelProperty(value="医院科室名称")
+    private String hospitalDeptName;
+    
+    /**
+	 * 医生id
+	 */
+	@ApiModelProperty(value="医生id")
+	private Long doctorId;
+	
+	/**
+     * 医生编码
+     */
+	@ApiModelProperty(value="医生编码")
+    private String doctorCode;
+
+    /**
+     * 医生姓名
+     */
+	@ApiModelProperty(value="医生姓名")
+    private String doctorName;
+    
+    /**
+   	 * 病人id
+   	 */
+	@ApiModelProperty(value="病人id")
+   	private Long patientId;
+   	
+   	/**
+     * 病人编号
+     */
+	@ApiModelProperty(value="病人编号")
+    private String patientCode;
+
+    /**
+     * 病人姓名
+     */
+	@ApiModelProperty(value="病人姓名")
+    private String patientName;
+
+    /**
+     * 病人性别
+     */
+	@ApiModelProperty(value="病人性别")
+    private String patientSex;
+    
+    /**
+     * 病人年龄
+     */
+	@ApiModelProperty(value="病人年龄")
+    private Integer patientAge;
+    
+    /**
+     * 病人证件号码
+     */
+	@ApiModelProperty(value="病人证件号码")
+    private String patientIdNo;
+
+	/**
+	 * 系统时间
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+	@ApiModelProperty(value="系统时间")
+	private Date systemTime;
+	
+	/**
+     * 出生日期
+     */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+	@ApiModelProperty(value="出生日期")
+    private Date birthday;
+	
+	/**
+     * 门诊号
+     */
+	@ApiModelProperty(value="门诊号")
+	private String recordId;
+	
+    /**
+     * 模式分类
+     */
+	@ApiModelProperty(value="模式分类")
+    private Integer modeClassify;
+
+    /**
+     * 模式值
+     */
+	@ApiModelProperty(value="模式值")
+    private Integer modeValue;
+	
+}

+ 15 - 0
aipt-service/src/main/java/com/diagbot/dto/HospitalDeptInfoDTO.java

@@ -0,0 +1,15 @@
+package com.diagbot.dto;
+
+import com.diagbot.entity.HospitalDept;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2019/2/12 17:23
+ */
+@Setter
+@Getter
+public class HospitalDeptInfoDTO extends HospitalDept {
+}

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

@@ -0,0 +1,20 @@
+package com.diagbot.dto;
+
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年5月6日 下午8:08:22
+ */
+@Getter
+@Setter
+public class IndexConfigAndDataDTO {
+
+	private List<IndexDTO> IndexData;
+	private List<IndexConfigDTO> IndexConfigData;
+}

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

@@ -0,0 +1,28 @@
+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;// 疾病概念名
+
+}

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

@@ -0,0 +1,25 @@
+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 Integer groupType;
+	private List<String> indexUnit;//单位
+	private List<Integer> isAbnormal;//是否异常
+	private List<String> indexValue; 
+	private List<Date> creatTime;
+}

+ 25 - 0
aipt-service/src/main/java/com/diagbot/dto/IndexDataDTO.java

@@ -0,0 +1,25 @@
+package com.diagbot.dto;
+
+import java.util.Date;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年5月7日 上午10:22:12
+ */
+@Setter
+@Getter
+public class IndexDataDTO {
+	private Long uniqueId;// 指标id
+	private String indexValue;// 指标值
+	private String indexUnit;// 指标单位
+	private Integer isAbnormal;// 是否异常
+	private Date creatTime;// 化验时间
+	private Long patientId;// 患者id
+	private String inquiryCode;// 就诊号
+	private String indexUnique;// 指标名
+}

+ 23 - 0
aipt-service/src/main/java/com/diagbot/dto/Lexeme.java

@@ -0,0 +1,23 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 词元定义.
+ */
+@Getter
+@Setter
+public class Lexeme {
+    private int offset = 0;
+    private int length = 0;
+
+    private String text;
+    private String property;
+    //段落分割 成句 '。',';',';','?' = -1 , ',',',',':',':' = -2
+    private String flag;
+
+    private float threshold;
+
+    private String concept;
+}

+ 5 - 1
aipt-service/src/main/java/com/diagbot/dto/LisResult.java

@@ -3,6 +3,8 @@ package com.diagbot.dto;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotNull;
+
 /**
  * @Description:化验信息
  * @Author:zhaops
@@ -19,4 +21,6 @@ public class LisResult {
     private Double minValue;//最小值
     private String units;//单位
     private String otherValue;//其他结果,包括阴性阳性,文字描述等
-}
+    @NotNull(message = "请输入数据来源")
+    private Integer source;
+}

+ 19 - 0
aipt-service/src/main/java/com/diagbot/dto/PartDTO.java

@@ -0,0 +1,19 @@
+package com.diagbot.dto;
+
+import com.diagbot.entity.Symptom;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description: 部位症状关联信息
+ * @Author: ztg
+ * @Date: 2018/10/24 16:11
+ */
+@Getter
+@Setter
+public class PartDTO extends ConceptBaseDTO{
+    private List<Symptom> symptomList = new ArrayList<>(); //症状列表
+}

+ 18 - 0
aipt-service/src/main/java/com/diagbot/dto/PartSymptomDTO.java

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description: 部位症状关联信息
+ * @Author: ztg
+ * @Date: 2018/10/24 16:11
+ */
+@Getter
+@Setter
+public class PartSymptomDTO extends ConceptBaseDTO{
+    private List<PartDTO> partDTO = new ArrayList<>(); //部位信息
+}

+ 27 - 0
aipt-service/src/main/java/com/diagbot/dto/PushDTO.java

@@ -0,0 +1,27 @@
+package com.diagbot.dto;
+
+import com.diagbot.client.bean.MedicalIndication;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2018/11/20 13:44
+ */
+@Getter
+@Setter
+public class PushDTO {
+    private List<ConceptPushDTO> symptom;
+    private List<ConceptPushDTO> other;
+    private List<ConceptPushDTO> vital;
+    private List<ConceptPushDTO> moduleVital;
+    private List<ConceptPushDTO> lab;
+    private List<ConceptPushDTO> pacs;
+    private Map<String, List<ConceptPushDTO>> dis;
+    private ConceptPushDTO dept;
+    private List<MedicalIndication> medicalIndications;
+}

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

@@ -0,0 +1,34 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2018/11/27 14:58
+ */
+@Getter
+@Setter
+public class RetrievalDTO {
+    //标签名称
+    private String name;
+    //标签id
+    private Long questionId;
+    //显示类型(静态知识出参时:0.同义词 1.本体 11.子项推出父项 21.(父项--子项)公表名)
+    private Long showType;
+    //Tag名称
+    private String retrievalName;
+    //概念id
+    private Long conceptId;
+    //标签类型id
+    private Long libTypeId;
+    //标签类型名称
+    private String libTypeName;
+    //icss标签type
+    private Integer type;
+    //公表名称
+    private String uniqueName;
+    //公表ID
+    private Long uniqueId;
+}

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

@@ -0,0 +1,19 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @description: 量表检索出参
+ * @author: zhoutg
+ * @date: 2019/7/8 11:27
+ */
+@Getter
+@Setter
+public class ScaleIndexDTO {
+    private Long conceptId; // 概念id
+    private String name;    //概念名称
+    private String searchName; // 检索名称
+    private Integer showType; // 显示类型
+    private Integer fromDis; // 结果是否来自诊断
+}

+ 22 - 25
knowledge-service/src/main/java/com/diagbot/dto/LibraryInfoDTO.java

@@ -8,24 +8,19 @@ import lombok.Setter;
 import java.time.LocalDateTime;
 
 /**
- * @author Weixuan Huang
- * @since 2019-01-30
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年6月12日 下午3:31:22
  */
-@Getter
 @Setter
-public class LibraryInfoDTO {
-
-    /**
+@Getter
+public class SysSetInfoDTO {
+	  /**
      * 主键
      */
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
-
-    /**
-     * 是否删除,N:未删除,Y:删除
-     */
-    private String isDeleted;
-
     /**
      * 记录创建时间
      */
@@ -47,29 +42,31 @@ public class LibraryInfoDTO {
     private String modifier;
 
     /**
-     * 名称
+     * 医院编码
      */
-    private String name;
+    private String hospitalCode;
 
     /**
-     * 类型
+     * 访问的系统类型 1:user-service,2:diagbotman-service,3:uaa-service,4:log-service,5:bi-service,6:knowledge-service,7:feedback-service,8:icss-web
      */
-    private String type;
+    private Integer sysType;
 
     /**
-     * 备注
+     * 配置名称
      */
-    private String remark;
-
+    private String name;
+    
     /**
-     * 概念id
+     * 配置编码
      */
-    private Integer conceptId;
-
+    private String code;
     /**
-     * 是否标准词,1:是,0:否
+     * 配置值
      */
-    private Integer isConcept;
-
+    private Integer value;
 
+    /**
+     * 备注
+     */
+    private String remark;
 }

+ 31 - 31
icssman-service/src/main/java/com/diagbot/entity/Retrieval.java

@@ -1,27 +1,27 @@
 package com.diagbot.entity;
 
-import java.io.Serializable;
-import java.util.Date;
-
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 
+import java.io.Serializable;
+import java.util.Date;
+
 /**
  * <p>
- * 同义词检索表
+ * 概念
  * </p>
  *
- * @author wangyu
- * @since 2018-12-03
+ * @author zhaops
+ * @since 2019-05-06
  */
-@TableName("icss_retrieval")
-public class Retrieval implements Serializable {
+@TableName("kl_concept")
+public class Concept implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
     /**
-     * 主键
+     * 主键,概念id
      */
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
@@ -52,19 +52,19 @@ public class Retrieval implements Serializable {
     private String modifier;
 
     /**
-     * 名称
+     * 对应术语id
      */
-    private String name;
+    private Long libId;
 
     /**
-     * 拼音
+     * 概念名称(冗余)
      */
-    private String spell;
+    private String libName;
 
     /**
-     * 备注
+     * 概念词性type(冗余)
      */
-    private String remark;
+    private Long libType;
 
     public Long getId() {
         return id;
@@ -108,40 +108,40 @@ public class Retrieval implements Serializable {
     public void setModifier(String modifier) {
         this.modifier = modifier;
     }
-    public String getName() {
-        return name;
+    public Long getLibId() {
+        return libId;
     }
 
-    public void setName(String name) {
-        this.name = name;
+    public void setLibId(Long libId) {
+        this.libId = libId;
     }
-    public String getSpell() {
-        return spell;
+    public String getLibName() {
+        return libName;
     }
 
-    public void setSpell(String spell) {
-        this.spell = spell;
+    public void setLibName(String libName) {
+        this.libName = libName;
     }
-    public String getRemark() {
-        return remark;
+    public Long getLibType() {
+        return libType;
     }
 
-    public void setRemark(String remark) {
-        this.remark = remark;
+    public void setLibType(Long libType) {
+        this.libType = libType;
     }
 
     @Override
     public String toString() {
-        return "Retrieval{" +
+        return "Concept{" +
         "id=" + id +
         ", isDeleted=" + isDeleted +
         ", gmtCreate=" + gmtCreate +
         ", gmtModified=" + gmtModified +
         ", creator=" + creator +
         ", modifier=" + modifier +
-        ", name=" + name +
-        ", spell=" + spell +
-        ", remark=" + remark +
+        ", libId=" + libId +
+        ", libName=" + libName +
+        ", libType=" + libType +
         "}";
     }
 }

+ 30 - 28
knowledgeman-service/src/main/java/com/diagbot/entity/LibraryDetail.java

@@ -1,20 +1,22 @@
 package com.diagbot.entity;
 
-import java.io.Serializable;
-import java.util.Date;
-
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
- * 提示信息明细
+ * 提示信息明细
  * </p>
  *
- * @author gaodm
- * @since 2019-03-26
+ * @author zhaops
+ * @since 2019-05-06
  */
-public class LibraryDetail implements Serializable {
+@TableName("kl_concept_detail")
+public class ConceptDetail implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
@@ -32,7 +34,7 @@ public class LibraryDetail implements Serializable {
     /**
      * 记录创建时间
      */
-    private Date gmtCreated;
+    private Date gmtCreate;
 
     /**
      * 记录修改时间,如果时间是1970年则表示纪录未修改
@@ -54,11 +56,6 @@ public class LibraryDetail implements Serializable {
      */
     private Long conceptId;
 
-    /**
-     * 静态知识来源
-     */
-    private String source;
-
     /**
      * 提示明细标题
      */
@@ -80,7 +77,7 @@ public class LibraryDetail implements Serializable {
     private Integer orderNo;
 
     /**
-     * 显示位置(多选):1-推送展示,2-更多展示,3-一般治疗展示,4-手术治疗展示,5-药品说明书
+     * 显示位置(多选):1-推送展示,2-更多展示,3-一般治疗展示,4-手术治疗展示,5-药品说明书,6-不良反应,7-症状描述信息(智能分诊)
      */
     private String position;
 
@@ -89,6 +86,11 @@ public class LibraryDetail implements Serializable {
      */
     private Integer isReason;
 
+    /**
+     * 静态知识来源
+     */
+    private String source;
+
     public Long getId() {
         return id;
     }
@@ -103,12 +105,12 @@ public class LibraryDetail implements Serializable {
     public void setIsDeleted(String isDeleted) {
         this.isDeleted = isDeleted;
     }
-    public Date getGmtCreated() {
-        return gmtCreated;
+    public Date getGmtCreate() {
+        return gmtCreate;
     }
 
-    public void setGmtCreated(Date gmtCreated) {
-        this.gmtCreated = gmtCreated;
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
     }
     public Date getGmtModified() {
         return gmtModified;
@@ -138,13 +140,6 @@ public class LibraryDetail implements Serializable {
     public void setConceptId(Long conceptId) {
         this.conceptId = conceptId;
     }
-    public String getSource() {
-        return source;
-    }
-
-    public void setSource(String source) {
-        this.source = source;
-    }
     public String getTitle() {
         return title;
     }
@@ -187,24 +182,31 @@ public class LibraryDetail implements Serializable {
     public void setIsReason(Integer isReason) {
         this.isReason = isReason;
     }
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
 
     @Override
     public String toString() {
-        return "LibraryDetail{" +
+        return "ConceptDetail{" +
         "id=" + id +
         ", isDeleted=" + isDeleted +
-        ", gmtCreated=" + gmtCreated +
+        ", gmtCreate=" + gmtCreate +
         ", gmtModified=" + gmtModified +
         ", creator=" + creator +
         ", modifier=" + modifier +
         ", conceptId=" + conceptId +
-        ", source=" + source +
         ", title=" + title +
         ", content=" + content +
         ", text=" + text +
         ", orderNo=" + orderNo +
         ", position=" + position +
         ", isReason=" + isReason +
+        ", source=" + source +
         "}";
     }
 }

+ 15 - 22
triage-service/src/main/java/com/diagbot/entity/SymptomWrapper.java

@@ -11,24 +11,27 @@ import java.util.Date;
 
 /**
  * <p>
- * 症状信息扩展
+ * 诊断量表映射
  * </p>
  *
  * @author zhoutg
- * @since 2018-09-17
+ * @since 2019-03-11
  */
-@TableName("triage_symptom")
+@TableName("icss_dis_scale")
 @Getter
 @Setter
-public class SymptomWrapper implements Serializable {
+public class DisScale implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    /**
+     * 主键
+     */
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
     /**
-     * 是否删除 N:未删除,Y:删除
+     * 是否删除,N:未删除,Y:删除
      */
     private String isDeleted;
 
@@ -38,7 +41,7 @@ public class SymptomWrapper implements Serializable {
     private Date gmtCreate;
 
     /**
-     * 记录修改时间
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
      */
     private Date gmtModified;
 
@@ -53,33 +56,23 @@ public class SymptomWrapper implements Serializable {
     private String modifier;
 
     /**
-     * 名称
-     */
-    private String name;
-
-    /**
-     * 性别(1:男,2:女,3:共用)
+     * 诊断标签id
      */
-    private Integer sexType;
+    private Long disId;
 
     /**
-     * 最小年龄
+     * 量表标签id
      */
-    private Integer ageBegin;
+    private Long scaleId;
 
     /**
-     * 最大年龄
+     * 排序号
      */
-    private Integer ageEnd;
+    private Integer orderNo;
 
     /**
      * 备注
      */
     private String remark;
 
-    /**
-     * 部位id
-     */
-    private Long partId;
-
 }

+ 4 - 3
icssman-service/src/main/java/com/diagbot/entity/DisType.java

@@ -15,7 +15,7 @@ import java.util.Date;
  * </p>
  *
  * @author zhoutg
- * @since 2019-03-28
+ * @since 2019-03-08
  */
 @TableName("icss_dis_type")
 @Getter
@@ -61,12 +61,12 @@ public class DisType implements Serializable {
     private Long disId;
 
     /**
-     * 父级诊断id
+     * parentId
      */
     private Long parentId;
 
     /**
-     * 1:慢病,2:急诊
+     * 0:慢病,1:急诊
      */
     private Integer type;
 
@@ -74,4 +74,5 @@ public class DisType implements Serializable {
      * 备注
      */
     private String remark;
+
 }

+ 4 - 4
icss-service/src/main/java/com/diagbot/entity/DisclaimerInformation.java

@@ -1,12 +1,12 @@
 package com.diagbot.entity;
 
-import java.io.Serializable;
-import java.util.Date;
-
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 
+import java.io.Serializable;
+import java.util.Date;
+
 /**
  * <p>
  * 免责申明详情
@@ -15,7 +15,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
  * @author wangfeng
  * @since 2018-11-20
  */
-@TableName("icss_disclaimer_information")
+@TableName("kl_disclaimer_information")
 public class DisclaimerInformation implements Serializable {
 
     private static final long serialVersionUID = 1L;

+ 29 - 19
icss-service/src/main/java/com/diagbot/entity/DiseaseIcd.java

@@ -54,7 +54,7 @@ public class DiseaseIcd implements Serializable {
     private String hospitalCode;
 
     /**
-     * icss疾病名称
+     * HIS疾病名称
      */
     private String diseaseName;
 
@@ -74,16 +74,16 @@ public class DiseaseIcd implements Serializable {
     private String remark;
 
     /**
-     * 疾病名称(内)
+     * 朗通疾病名称
      */
-    private String icssQuestionName;
+    private String conceptDisName;
 
-    public String getIcssQuestionName() {
-        return icssQuestionName;
+    public String getConceptDisName() {
+        return conceptDisName;
     }
 
-    public void setIcssQuestionName(String icssQuestionName) {
-        this.icssQuestionName = icssQuestionName;
+    public void setConceptDisName(String conceptDisName) {
+        this.conceptDisName = conceptDisName;
     }
 
     public Long getId() {
@@ -93,6 +93,7 @@ public class DiseaseIcd implements Serializable {
     public void setId(Long id) {
         this.id = id;
     }
+
     public String getIsDeleted() {
         return isDeleted;
     }
@@ -100,6 +101,7 @@ public class DiseaseIcd implements Serializable {
     public void setIsDeleted(String isDeleted) {
         this.isDeleted = isDeleted;
     }
+
     public Date getGmtCreate() {
         return gmtCreate;
     }
@@ -107,6 +109,7 @@ public class DiseaseIcd implements Serializable {
     public void setGmtCreate(Date gmtCreate) {
         this.gmtCreate = gmtCreate;
     }
+
     public Date getGmtModified() {
         return gmtModified;
     }
@@ -114,6 +117,7 @@ public class DiseaseIcd implements Serializable {
     public void setGmtModified(Date gmtModified) {
         this.gmtModified = gmtModified;
     }
+
     public String getCreator() {
         return creator;
     }
@@ -121,6 +125,7 @@ public class DiseaseIcd implements Serializable {
     public void setCreator(String creator) {
         this.creator = creator;
     }
+
     public String getModifier() {
         return modifier;
     }
@@ -128,6 +133,7 @@ public class DiseaseIcd implements Serializable {
     public void setModifier(String modifier) {
         this.modifier = modifier;
     }
+
     public String getHospitalCode() {
         return hospitalCode;
     }
@@ -135,6 +141,7 @@ public class DiseaseIcd implements Serializable {
     public void setHospitalCode(String hospitalCode) {
         this.hospitalCode = hospitalCode;
     }
+
     public String getDiseaseName() {
         return diseaseName;
     }
@@ -142,6 +149,7 @@ public class DiseaseIcd implements Serializable {
     public void setDiseaseName(String diseaseName) {
         this.diseaseName = diseaseName;
     }
+
     public String getIcd() {
         return icd;
     }
@@ -149,6 +157,7 @@ public class DiseaseIcd implements Serializable {
     public void setIcd(String icd) {
         this.icd = icd;
     }
+
     public String getStatus() {
         return status;
     }
@@ -156,6 +165,7 @@ public class DiseaseIcd implements Serializable {
     public void setStatus(String status) {
         this.status = status;
     }
+
     public String getRemark() {
         return remark;
     }
@@ -167,18 +177,18 @@ public class DiseaseIcd implements Serializable {
     @Override
     public String toString() {
         return "DiseaseIcd{" +
-        "id=" + id +
-        ", isDeleted=" + isDeleted +
-        ", gmtCreate=" + gmtCreate +
-        ", gmtModified=" + gmtModified +
-        ", creator=" + creator +
-        ", modifier=" + modifier +
-        ", hospitalCode=" + hospitalCode +
-        ", diseaseName=" + diseaseName +
-        ", icd=" + icd +
-        ", status=" + status +
-        ", remark=" + remark +
-        ",icssQuestionName" + icssQuestionName +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", hospitalCode=" + hospitalCode +
+                ", diseaseName=" + diseaseName +
+                ", icd=" + icd +
+                ", status=" + status +
+                ", remark=" + remark +
+                ",conceptDisName" + conceptDisName +
                 "}";
     }
 }

+ 166 - 167
icssman-service/src/main/java/com/diagbot/entity/EvaluationModuleMapping.java

@@ -1,167 +1,166 @@
-package com.diagbot.entity;
-
-import java.io.Serializable;
-import java.util.Date;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-/**
- * <p>
- * 管理与评估模板表
- * </p>
- *
- * @author wangfeng
- * @since 2019-03-25
- */
-@TableName("icss_evaluation_module_mapping")
-public class EvaluationModuleMapping 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;
-
-    /**
-     * 区域名
-     */
-    private String regionName;
-
-    /**
-     * 区域类型(0默认自定义,1大数据,2内部数据)
-     */
-    private String regionType;
-
-    /**
-     * 区域顺序
-     */
-    private Integer orderNo;
-
-    /**
-     * 疾病id
-     */
-    private Long diseaseId;
-
-    private String remark;
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-    public String getIsDeleted() {
-        return isDeleted;
-    }
-
-    public void setIsDeleted(String isDeleted) {
-        this.isDeleted = isDeleted;
-    }
-    public Date getGmtCreate() {
-        return gmtCreate;
-    }
-
-    public void setGmtCreate(Date gmtCreate) {
-        this.gmtCreate = gmtCreate;
-    }
-    public Date getGmtModified() {
-        return gmtModified;
-    }
-
-    public void setGmtModified(Date gmtModified) {
-        this.gmtModified = gmtModified;
-    }
-    public String getCreator() {
-        return creator;
-    }
-
-    public void setCreator(String creator) {
-        this.creator = creator;
-    }
-    public String getModifier() {
-        return modifier;
-    }
-
-    public void setModifier(String modifier) {
-        this.modifier = modifier;
-    }
-    public String getRegionName() {
-        return regionName;
-    }
-
-    public void setRegionName(String regionName) {
-        this.regionName = regionName;
-    }
-    public String getRegionType() {
-        return regionType;
-    }
-
-    public void setRegionType(String regionType) {
-        this.regionType = regionType;
-    }
-    public Integer getOrderNo() {
-        return orderNo;
-    }
-
-    public void setOrderNo(Integer orderNo) {
-        this.orderNo = orderNo;
-    }
-    public Long getDiseaseId() {
-        return diseaseId;
-    }
-
-    public void setDiseaseId(Long diseaseId) {
-        this.diseaseId = diseaseId;
-    }
-    public String getRemark() {
-        return remark;
-    }
-
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
-
-    @Override
-    public String toString() {
-        return "EvaluationModuleMapping{" +
-        "id=" + id +
-        ", isDeleted=" + isDeleted +
-        ", gmtCreate=" + gmtCreate +
-        ", gmtModified=" + gmtModified +
-        ", creator=" + creator +
-        ", modifier=" + modifier +
-        ", regionName=" + regionName +
-        ", regionType=" + regionType +
-        ", orderNo=" + orderNo +
-        ", diseaseId=" + diseaseId +
-        ", remark=" + remark +
-        "}";
-    }
-}
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 管理与评估模板表
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2019-05-06
+ */
+@TableName("kl_evaluation")
+public class Evaluation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 区域名
+     */
+    private String regionName;
+
+    /**
+     * 区域类型(0默认自定义,1大数据,2内部数据)
+     */
+    private String regionType;
+
+    /**
+     * 区域顺序
+     */
+    private Integer orderNo;
+
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public LocalDateTime getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(LocalDateTime gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public LocalDateTime getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(LocalDateTime gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public Long getConceptId() {
+        return conceptId;
+    }
+
+    public void setConceptId(Long conceptId) {
+        this.conceptId = conceptId;
+    }
+    public String getRegionName() {
+        return regionName;
+    }
+
+    public void setRegionName(String regionName) {
+        this.regionName = regionName;
+    }
+    public String getRegionType() {
+        return regionType;
+    }
+
+    public void setRegionType(String regionType) {
+        this.regionType = regionType;
+    }
+    public Integer getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(Integer orderNo) {
+        this.orderNo = orderNo;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "Evaluation{" +
+        "id=" + id +
+        ", isDeleted=" + isDeleted +
+        ", gmtCreate=" + gmtCreate +
+        ", gmtModified=" + gmtModified +
+        ", creator=" + creator +
+        ", modifier=" + modifier +
+        ", conceptId=" + conceptId +
+        ", regionName=" + regionName +
+        ", regionType=" + regionType +
+        ", orderNo=" + orderNo +
+        ", remark=" + remark +
+        "}";
+    }
+}

+ 48 - 46
icss-service/src/main/java/com/diagbot/entity/HospitalInfo.java

@@ -1,22 +1,22 @@
 package com.diagbot.entity;
 
-import java.io.Serializable;
-import java.util.Date;
-
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 
+import java.io.Serializable;
+import java.util.Date;
+
 /**
  * <p>
- * 医院信息表
+ * 医院科室信息表
  * </p>
  *
  * @author rengb
  * @since 2018-11-19
  */
-@TableName("tran_hospital_info")
-public class HospitalInfo implements Serializable {
+@TableName("tran_hospital_dept")
+public class HospitalDept implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
@@ -52,34 +52,34 @@ public class HospitalInfo implements Serializable {
     private String modifier;
 
     /**
-     * 医院编码
+     * 医院科室编码
      */
     private String code;
 
     /**
-     * 医院名称
+     * 医院科室名称
      */
     private String name;
 
     /**
-     * 医院地址
+     * 医院编码
      */
-    private String address;
+    private String hospitalCode;
 
     /**
-     * 医院名称拼音
+     * 医院名称
      */
-    private String spell;
+    private String hospitalName;
 
     /**
-     * 状态:0.禁用1.启用
+     * 朗通科室名称
      */
-    private Integer status;
+    private String conceptDeptName;
 
     /**
-     * 排序号
+     * 状态:0.禁用1.启用
      */
-    private Integer orderNo;
+    private Integer status;
 
     /**
      * 备注
@@ -142,20 +142,29 @@ public class HospitalInfo implements Serializable {
     public void setName(String name) {
         this.name = name;
     }
-    public String getAddress() {
-        return address;
+    public String getHospitalCode() {
+        return hospitalCode;
     }
 
-    public void setAddress(String address) {
-        this.address = address;
+    public void setHospitalCode(String hospitalCode) {
+        this.hospitalCode = hospitalCode;
     }
-    public String getSpell() {
-        return spell;
+    public String getHospitalName() {
+        return hospitalName;
     }
 
-    public void setSpell(String spell) {
-        this.spell = spell;
+    public void setHospitalName(String hospitalName) {
+        this.hospitalName = hospitalName;
     }
+
+    public String getConceptDeptName() {
+        return conceptDeptName;
+    }
+
+    public void setconceptDeptName(String conceptDeptName) {
+        this.conceptDeptName = conceptDeptName;
+    }
+
     public Integer getStatus() {
         return status;
     }
@@ -163,13 +172,6 @@ public class HospitalInfo implements Serializable {
     public void setStatus(Integer status) {
         this.status = status;
     }
-    public Integer getOrderNo() {
-        return orderNo;
-    }
-
-    public void setOrderNo(Integer orderNo) {
-        this.orderNo = orderNo;
-    }
     public String getRemark() {
         return remark;
     }
@@ -180,20 +182,20 @@ public class HospitalInfo implements Serializable {
 
     @Override
     public String toString() {
-        return "HospitalInfo{" +
-        "id=" + id +
-        ", isDeleted=" + isDeleted +
-        ", gmtCreate=" + gmtCreate +
-        ", gmtModified=" + gmtModified +
-        ", creator=" + creator +
-        ", modifier=" + modifier +
-        ", code=" + code +
-        ", name=" + name +
-        ", address=" + address +
-        ", spell=" + spell +
-        ", status=" + status +
-        ", orderNo=" + orderNo +
-        ", remark=" + remark +
-        "}";
+        return "HospitalDept{" +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", code=" + code +
+                ", name=" + name +
+                ", hospitalCode=" + hospitalCode +
+                ", hospitalName=" + hospitalName +
+                ", conceptDeptName=" + conceptDeptName +
+                ", status=" + status +
+                ", remark=" + remark +
+                "}";
     }
 }

+ 170 - 171
icssman-service/src/main/java/com/diagbot/entity/IndexConfig.java

@@ -1,171 +1,170 @@
-package com.diagbot.entity;
-
-import java.io.Serializable;
-import java.time.LocalDateTime;
-import java.util.Date;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-/**
- * <p>
- * 指标配置
- * </p>
- *
- * @author wangfeng
- * @since 2019-03-25
- */
-@TableName("icss_index_config")
-public class IndexConfig 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;
-
-    /**
-     * 指标公表名
-     */
-    private String indexUnique;
-
-    /**
-     * 疾病id
-     */
-    private Long diseaseId;
-
-    /**
-     * 指标描述
-     */
-    private Integer indexDesc;
-
-    /**
-     * 显示顺序
-     */
-    private Integer orderNo;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-    public String getIsDeleted() {
-        return isDeleted;
-    }
-
-    public void setIsDeleted(String isDeleted) {
-        this.isDeleted = isDeleted;
-    }
-    public Date getGmtCreate() {
-        return gmtCreate;
-    }
-
-    public void setGmtCreate(Date gmtCreate) {
-        this.gmtCreate = gmtCreate;
-    }
-    public Date getGmtModified() {
-        return gmtModified;
-    }
-
-    public void setGmtModified(Date gmtModified) {
-        this.gmtModified = gmtModified;
-    }
-    public String getCreator() {
-        return creator;
-    }
-
-    public void setCreator(String creator) {
-        this.creator = creator;
-    }
-    public String getModifier() {
-        return modifier;
-    }
-
-    public void setModifier(String modifier) {
-        this.modifier = modifier;
-    }
-    public String getIndexUnique() {
-        return indexUnique;
-    }
-
-    public void setIndexUnique(String indexUnique) {
-        this.indexUnique = indexUnique;
-    }
-    public Long getDiseaseId() {
-        return diseaseId;
-    }
-
-    public void setDiseaseId(Long diseaseId) {
-        this.diseaseId = diseaseId;
-    }
-    public Integer getIndexDesc() {
-        return indexDesc;
-    }
-
-    public void setIndexDesc(Integer indexDesc) {
-        this.indexDesc = indexDesc;
-    }
-    public Integer getOrderNo() {
-        return orderNo;
-    }
-
-    public void setOrderNo(Integer orderNo) {
-        this.orderNo = orderNo;
-    }
-    public String getRemark() {
-        return remark;
-    }
-
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
-
-    @Override
-    public String toString() {
-        return "IndexConfig{" +
-        "id=" + id +
-        ", isDeleted=" + isDeleted +
-        ", gmtCreate=" + gmtCreate +
-        ", gmtModified=" + gmtModified +
-        ", creator=" + creator +
-        ", modifier=" + modifier +
-        ", indexUnique=" + indexUnique +
-        ", diseaseId=" + diseaseId +
-        ", indexDesc=" + indexDesc +
-        ", orderNo=" + orderNo +
-        ", remark=" + remark +
-        "}";
-    }
-}
+package com.diagbot.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+ * <p>
+ * 指标配置
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2019-05-06
+ */
+@TableName("kl_index_config")
+public class IndexConfig 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;
+
+    /**
+     * 疾病概念id
+     */
+    private Long diseaseId;
+
+    /**
+     * 指标描述
+     */
+    private Integer indexDesc;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public Long getConceptId() {
+        return conceptId;
+    }
+
+    public void setConceptId(Long conceptId) {
+        this.conceptId = conceptId;
+    }
+    public Long getDiseaseId() {
+        return diseaseId;
+    }
+
+    public void setDiseaseId(Long diseaseId) {
+        this.diseaseId = diseaseId;
+    }
+    public Integer getIndexDesc() {
+        return indexDesc;
+    }
+
+    public void setIndexDesc(Integer indexDesc) {
+        this.indexDesc = indexDesc;
+    }
+    public Integer getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(Integer orderNo) {
+        this.orderNo = orderNo;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "IndexConfig{" +
+        "id=" + id +
+        ", isDeleted=" + isDeleted +
+        ", gmtCreate=" + gmtCreate +
+        ", gmtModified=" + gmtModified +
+        ", creator=" + creator +
+        ", modifier=" + modifier +
+        ", conceptId=" + conceptId +
+        ", diseaseId=" + diseaseId +
+        ", indexDesc=" + indexDesc +
+        ", orderNo=" + orderNo +
+        ", remark=" + remark +
+        "}";
+    }
+}

+ 36 - 0
aipt-service/src/main/java/com/diagbot/entity/ScaleContent.java

@@ -0,0 +1,36 @@
+package com.diagbot.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 量表内容表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-03-11
+ */
+@Getter
+@Setter
+public class ScaleContent implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 量表概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 0:文本,1:大数据接口填充
+     */
+    private Integer type;
+}

+ 23 - 0
aipt-service/src/main/java/com/diagbot/entity/Symptom.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity;
+
+import com.diagbot.dto.ConceptBaseDTO;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 症状信息扩展表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2018-09-17
+ */
+@Getter
+@Setter
+public class Symptom extends ConceptBaseDTO {
+
+    @JsonIgnore
+    private Long partConceptId;
+    private String desc = ""; //简述
+}

+ 0 - 142
aipt-service/src/main/java/com/diagbot/entity/User.java

@@ -1,142 +0,0 @@
-package com.diagbot.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * <p>
- * 系统用户表
- * </p>
- *
- * @author gaodm
- * @since 2018-08-30
- */
-@TableName("sys_user")
-public class User implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 用户ID
-     */
-    @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;
-
-    /**
-     * 用户密码
-     */
-    private String password;
-
-    /**
-     * 用户名
-     */
-    private String username;
-
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public String getIsDeleted() {
-        return isDeleted;
-    }
-
-    public void setIsDeleted(String isDeleted) {
-        this.isDeleted = isDeleted;
-    }
-
-    public Date getGmtCreate() {
-        return gmtCreate;
-    }
-
-    public void setGmtCreate(Date gmtCreate) {
-        this.gmtCreate = gmtCreate;
-    }
-
-    public Date getGmtModified() {
-        return gmtModified;
-    }
-
-    public void setGmtModified(Date gmtModified) {
-        this.gmtModified = gmtModified;
-    }
-
-    public String getCreator() {
-        return creator;
-    }
-
-    public void setCreator(String creator) {
-        this.creator = creator;
-    }
-
-    public String getModifier() {
-        return modifier;
-    }
-
-    public void setModifier(String modifier) {
-        this.modifier = modifier;
-    }
-
-    public String getPassword() {
-        return password;
-    }
-
-    public void setPassword(String password) {
-        this.password = password;
-    }
-
-    public String getUsername() {
-        return username;
-    }
-
-    public void setUsername(String username) {
-        this.username = username;
-    }
-
-    @Override
-    public String toString() {
-        return "User{" +
-                "id=" + id +
-                ", isDeleted=" + isDeleted +
-                ", gmtCreate=" + gmtCreate +
-                ", gmtModified=" + gmtModified +
-                ", creator=" + creator +
-                ", modifier=" + modifier +
-                ", password=" + password +
-                ", username=" + username +
-                "}";
-    }
-}

+ 43 - 0
aipt-service/src/main/java/com/diagbot/entity/wrapper/ConceptWrapper.java

@@ -0,0 +1,43 @@
+package com.diagbot.entity.wrapper;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description: 概念查询参数
+ * @author: gaodm
+ * @time: 2019/5/6 16:05
+ */
+@Getter
+@Setter
+public class ConceptWrapper {
+    //关系起点术语id
+    private Long startId;
+    //关系起点术语名称
+    private String startName;
+    //关系起点术语性别类型
+    private Integer startSex;
+    //关系起点术语年龄
+    private Integer startAge;
+    //关系起点术语类型
+    private Integer startType;
+    //关系类型
+    private Integer relationType;
+    //关系终点术语id
+    private Long endId;
+    //关系终点术语名称
+    private String endName;
+    //关系终点术语性别类型
+    private Integer endSex;
+    //关系终点术语年龄
+    private Integer endAge;
+    //关系终点术语类型
+    private Integer endType;
+    //关系起点术语名称列表
+    private List<String> startNameList;
+    //关系终点术语名称列表
+    private List<String> endNameList;
+
+}

+ 65 - 0
aipt-service/src/main/java/com/diagbot/enums/ConceptTypeEnum.java

@@ -0,0 +1,65 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/5/7 14:06
+ */
+public enum ConceptTypeEnum implements KeyedNamed {
+    Symptom(1, "症状"),
+    Past(2, "既往史"),
+    Other(3, "其他史"),
+    Vital(4, "查体"),
+    Lis(5, "化验"),
+    Pacs(6, "辅检"),
+    Disease(7, "诊断"),
+    Drug(8, "药品"),
+    Drug_Category_Big(9, "药品分类-大类"),
+    SIDE_EFFECTS(10, "不良反应"),
+    Drug_Category_Small(11, "药品分类-小类"),
+    LIS_TABLES(12,"化验公表项"),
+    DEPARTMENT(15,"科室"),
+    Scale(21, "量表"),
+    Indication(22, "指标"),
+    LisDetail(51, "化验明细");
+
+
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    ConceptTypeEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static ConceptTypeEnum getEnum(Integer key) {
+        for (ConceptTypeEnum item : ConceptTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        ConceptTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 10 - 14
icss-service/src/main/java/com/diagbot/enums/IntroducePositionEnum.java

@@ -4,17 +4,13 @@ import com.diagbot.core.KeyedNamed;
 import lombok.Setter;
 
 /**
- * @Description:提示信息展示位置
+ * @Description: 推送类型
  * @Author:zhaops
- * @time: 2018/11/23 10:12
+ * @time: 2019/3/14 11:28
  */
-public enum IntroducePositionEnum implements KeyedNamed {
-    Push(1, "推送展示"),
-    More(2, "更多展示"),
-    CommonTreatment(3, "一般治疗展示"),
-    SurgeryTreatment(4, "手术治疗展示"),
-    Drug(5, "药品说明书"),
-    AdverseReaction(6, "不良反应");
+public enum DisTypeEnum implements KeyedNamed {
+    CHRONIC(1, "慢病"),
+    EMERGENCY(2, "急诊");
 
     @Setter
     private Integer key;
@@ -22,13 +18,13 @@ public enum IntroducePositionEnum implements KeyedNamed {
     @Setter
     private String name;
 
-    IntroducePositionEnum(Integer key, String name) {
+    DisTypeEnum(Integer key, String name) {
         this.key = key;
         this.name = name;
     }
 
-    public static IntroducePositionEnum getEnum(Integer key) {
-        for (IntroducePositionEnum item : IntroducePositionEnum.values()) {
+    public static DisTypeEnum getEnum(Integer key) {
+        for (DisTypeEnum item : DisTypeEnum.values()) {
             if (item.key == key) {
                 return item;
             }
@@ -37,7 +33,7 @@ public enum IntroducePositionEnum implements KeyedNamed {
     }
 
     public static String getName(Integer key) {
-        IntroducePositionEnum item = getEnum(key);
+        DisTypeEnum item = getEnum(key);
         return item != null ? item.name : null;
     }
 
@@ -50,4 +46,4 @@ public enum IntroducePositionEnum implements KeyedNamed {
     public String getName() {
         return name;
     }
-}
+}

+ 58 - 0
aipt-service/src/main/java/com/diagbot/enums/FeatureTypeEnum.java

@@ -0,0 +1,58 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description: 推送类型
+ * @Author:zhaops
+ * @time: 2019/3/14 11:28
+ */
+public enum FeatureTypeEnum implements KeyedNamed {
+    Feature_Type_Symptom(1, "症状"),
+    Feature_Type_Past(1,"既往史"),
+    Feature_Type_Other(3, "其他史"),
+    Feature_Type_Vital(4, "查体"),
+    Feature_Type_Lis(5, "化验"),
+    Feature_Type_Pacs(6, "辅检"),
+    Feature_Type_Disease(7, "诊断"),
+    Feature_Type_Treat(8, "治疗"),
+    Feature_Type_ManagementEvaluation(11, "管理评估"),
+    Feature_Type_Scale(21, "量表"),
+    Feature_Type_Indication(22, "指标");
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    FeatureTypeEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static FeatureTypeEnum getEnum(Integer key) {
+        for (FeatureTypeEnum item : FeatureTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        FeatureTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 66 - 0
aipt-service/src/main/java/com/diagbot/enums/LexiconRSTypeEnum.java

@@ -0,0 +1,66 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description: 术语关系分类枚举
+ * @author: gaodm
+ * @time: 2019/5/6 13:58
+ */
+public enum LexiconRSTypeEnum implements KeyedNamed {
+    IS_A(1,"是"),
+    EQUAL_TO(2,"同义于"),
+    INCLUDE_OF(3,"包含于"),
+    ASSOCIATED_WITH(4,"与相关"),
+    CAUSE(5,"引起"),
+    LOCATED_AT(6,"位于"),
+    AKA(7,"别名"),
+    INSURE_LEVEL(8,"医保"),
+    APPLIED_TO(9,"适用于"),
+    PREFERRED_MEDS(10,"首选药物"),
+    TREAT(11,"治疗"),
+    USAGE(12,"用法"),
+    REACTION(13,"不良反应"),
+    DO_AND_DONOT(14,"注意事项"),
+    SPEC(15,"规格"),
+    HAS(16,"有"),
+    ORDER_BY(17,"包含排列于"),
+    SUBITEM(18,"包含子项"),
+    PUSH(19,"推送");
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    LexiconRSTypeEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static LexiconRSTypeEnum getEnum(Integer key) {
+        for (LexiconRSTypeEnum item : LexiconRSTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        LexiconRSTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 120 - 0
aipt-service/src/main/java/com/diagbot/enums/LexiconTypeEnum.java

@@ -0,0 +1,120 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description: 术语分类枚举
+ * @author: gaodm
+ * @time: 2019/5/6 13:58
+ */
+public enum LexiconTypeEnum implements KeyedNamed {
+    SYMPTOM(1,"症状"),
+    TIME(2,"时间"),
+    BODYPART(3,"部位"),
+    NATURE(4,"性质"),
+    CAUSE(5,"诱因"),
+    DEGREE(6,"程度"),
+    NEGATIVE(7,"阴性"),
+    POSITIVE(8,"阳性"),
+    COMPANY(9,"单位"),
+    DRUGS(10,"药品通用名"),
+    TREATMENT(11,"治疗"),
+    LIS_PACKAGE(12,"化验套餐"),
+    LIS_DETAILS(13,"化验明细"),
+    LIS_RESULTS(14,"化验结果"),
+    PACS_PACKAGE(15,"辅检套餐"),
+    PACS_ITEMS(16,"辅检项目"),
+    PACS_RESULTS(17,"辅检结果"),
+    DIAGNOSIS(18,"诊断"),
+    CONNECTIVES(19,"连接词"),
+    POSITION(20,"方位"),
+    RELATIVES(21,"亲属"),
+    MARRIAGE(22,"婚姻"),
+    FOOD(23,"食品"),
+    HISTORY(24,"历史"),
+    OPERATION(25,"手术"),
+    SYMPTOM_MANIFESTATION(26,"症状表现"),
+    DIGITAL_QUANTIFIER(27,"数字量词"),
+    NUMBER(28,"数字"),
+    DRUG_CATEGORY_BIG(29,"药品大类"),
+    DRUG_CATEGORY_SMALL(30,"药品小类"),
+    PACS_CATEGORY_BIG(31,"辅检大类"),
+    PACS_CATEGORY_SMALL(32,"辅检小类"),
+    VITAL_INDEX(33,"体征指标"),
+    VITAL_INDEX_VALUE(34,"体征指标值"),
+    VITAL_RESULT(35,"体征结果"),
+    PLACE(36,"地点"),
+    OCCUPATION(37,"职业"),
+    PERSONAL_HISTORY(38,"个人史"),
+    PERSONAL_HISTORY_DESCRIPTION(39,"个人史描述"),
+    TIME_DESCRIPTION(40,"时间描述"),
+    SYMPTOM_INDEX(41,"症状指标"),
+    MEDICAL_SUPPLIES(42,"医用耗材 "),
+    DEGREE_CLASSIFIER(43,"程度量词"),
+    OTHER(44,"其他"),
+    DELETE(45,"删除"),
+    LIS_TABLES(46,"化验公表项"),
+    DEPARTMENT(47,"科室"),
+    GAUGE(48,"量表"),
+    SIDE_EFFECTS(49,"不良反应"),
+    CORE_INDICATORS(50,"核心指标"),
+    TYPES_OF_DISEASE(51,"疾病类型(慢病|急诊)"),
+    PART_AREA(52,"部位区域"),
+    LOCATION_AREA(52,"部位区域"),
+    CHEMICAL_NAME_OF_DRUG(53,"药品化学名"),
+    DRUG_TRADE_NAMES(54,"药品商品名"),
+    HISTORY_OF_PAST_DISEASES(55,"既往疾病史"),
+    HISTORY_OF_TRAUMA(56,"外伤史"),
+    HISTORY_OF_SURGERY(57,"手术史"),
+    HISTORY_OF_BLOOD_TRANSFUSION(58,"输血史"),
+    INFECTIOUS_DISEASE_HISTORY(59,"传染病史"),
+    BAD_HABITS(60,"不良习惯"),
+    MARITAL_HISTORY(61,"冶游史"),
+    HISTORY_OF_MARRIAGE_AND_CHILDBEARING(62,"婚育史"),
+    BIRTH_HISTORY(63,"生育史"),
+    FAMILY_HISTORY(64,"家族史"),
+    FOOD_ALLERGY_HISTORY(65,"食物过敏史"),
+    HISTORY_OF_DRUG_ALLERGY(66,"药物过敏史"),
+    FAMILY_RELATED_INFECTIOUS_DISEASE_HISTORY(67,"家族相关传染病史"),
+    FURTHER_CONSULTATION(68,"复诊"),
+    DIAGNOSTIC_CRITERIA(69,"诊断依据条件"),
+    OTHER_DIAGNOSTIC_CRITERIA(70,"诊断依据其他");
+
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    LexiconTypeEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static LexiconTypeEnum getEnum(Integer key) {
+        for (LexiconTypeEnum item : LexiconTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        LexiconTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}
+

+ 49 - 0
aipt-service/src/main/java/com/diagbot/enums/LisSourceEnum.java

@@ -0,0 +1,49 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:化验数据来源
+ * @Author:zhaops
+ * @time: 2018/12/26 16:37
+ */
+public enum LisSourceEnum implements KeyedNamed {
+    Inner(0, "ICSS-内部"),
+    Outer(1, "外部");
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    LisSourceEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static LisSourceEnum getEnum(Integer key) {
+        for (LisSourceEnum item : LisSourceEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        LisSourceEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 12 - 11
icssman-service/src/main/java/com/diagbot/enums/IntroducePositionEnum.java

@@ -8,13 +8,14 @@ import lombok.Setter;
  * @Author:zhaops
  * @time: 2018/11/23 10:12
  */
-public enum IntroducePositionEnum implements KeyedNamed {
-    Push(1, "推送展示"),
-    More(2, "更多展示"),
-    CommonTreatment(3, "一般治疗展示"),
-    SurgeryTreatment(4, "手术治疗展示"),
-    Drug(5, "药品说明书"),
-    AdverseReaction(6, "不良反应");
+public enum PositionTypeEnum implements KeyedNamed {
+    T1(1, "推送展示"),
+    T2(2, "更多展示"),
+    T3(3, "一般治疗展示"),
+    T4(4, "手术治疗展示"),
+    T5(5, "药品说明书"),
+    T6(6, "不良反应"),
+    T7(7, "描述信息");
 
     @Setter
     private Integer key;
@@ -22,13 +23,13 @@ public enum IntroducePositionEnum implements KeyedNamed {
     @Setter
     private String name;
 
-    IntroducePositionEnum(Integer key, String name) {
+    PositionTypeEnum(Integer key, String name) {
         this.key = key;
         this.name = name;
     }
 
-    public static IntroducePositionEnum getEnum(Integer key) {
-        for (IntroducePositionEnum item : IntroducePositionEnum.values()) {
+    public static PositionTypeEnum getEnum(Integer key) {
+        for (PositionTypeEnum item : PositionTypeEnum.values()) {
             if (item.key == key) {
                 return item;
             }
@@ -37,7 +38,7 @@ public enum IntroducePositionEnum implements KeyedNamed {
     }
 
     public static String getName(Integer key) {
-        IntroducePositionEnum item = getEnum(key);
+        PositionTypeEnum item = getEnum(key);
         return item != null ? item.name : null;
     }
 

+ 58 - 0
aipt-service/src/main/java/com/diagbot/enums/QuestionTypeEnum.java

@@ -0,0 +1,58 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:标签类型
+ * @Author:zhaops
+ * @time: 2018/11/21 11:39
+ */
+public enum QuestionTypeEnum implements KeyedNamed {
+    Symptom(1, "症状"),
+    Other(3, "其他史"),
+    Vital(4, "查体"),
+    Lis(5, "化验"),
+    Pacs(6, "辅检"),
+    Disease(7, "诊断"),
+    Drug(8, "药品"),
+    DrugClass(9, "药品分类"),
+    AdverseReaction(10,"不良反应"),
+    Scale(21, "量表"),
+    MedicalIndication(22, "推送指标");
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    QuestionTypeEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static QuestionTypeEnum getEnum(Integer key) {
+        for (QuestionTypeEnum item : QuestionTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        QuestionTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 51 - 0
aipt-service/src/main/java/com/diagbot/enums/ScaleTypeEnum.java

@@ -0,0 +1,51 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * 
+ * @author zhoutg
+ * @Description: 诊断类型
+ * @date 2018年11月21日 下午2:31:42
+ */
+public enum ScaleTypeEnum implements KeyedNamed {
+    TEXT(0, "文本"),
+    PUSH(1, "推理");
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    ScaleTypeEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static ScaleTypeEnum getEnum(Integer key) {
+        for (ScaleTypeEnum item : ScaleTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        ScaleTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}
+

+ 51 - 0
aipt-service/src/main/java/com/diagbot/enums/StatusEnum.java

@@ -0,0 +1,51 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月21日 下午2:31:42
+ */
+public enum StatusEnum implements KeyedNamed {
+    Disable(0, "禁用"),
+    Enable(1, "启用");
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    StatusEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static StatusEnum getEnum(Integer key) {
+        for (StatusEnum item : StatusEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        StatusEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}
+

+ 284 - 4
aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java

@@ -1,26 +1,43 @@
 package com.diagbot.facade;
 
+import com.alibaba.fastjson.JSON;
 import com.diagbot.client.AIServiceClient;
+import com.diagbot.client.NLPServiceClient;
 import com.diagbot.client.bean.CalculateData;
 import com.diagbot.client.bean.GdbResponse;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.ResponseData;
+import com.diagbot.dto.Lexeme;
 import com.diagbot.dto.LisResult;
+import com.diagbot.entity.ScaleContent;
+import com.diagbot.enums.ScaleTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.service.ScaleContentService;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.SearchVo;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
  * <p>
- *  数据处理业务层
+ * 数据处理业务层
  * </p>
  *
  * @author Mark Huang
@@ -31,14 +48,23 @@ public class ClinicalFacade {
 
     @Autowired
     private AIServiceClient aiServiceClient;
+    @Autowired
+    private ScaleContentService scaleContentService;
+    @Autowired
+    private NLPServiceClient nlpServiceClient;
 
-    private static String up = "增高";
+    @Autowired
+    private ConceptFacade conceptFacade;
+
+    private static String up = "升高";
     private static String down = "降低";
     private static String normal = "正常";
 
     private static String pos = "阳性";
     private static String neg = "阴性";
 
+    //    private static Map<String, List<Map<String, String>>> standWordObj = null;
+
     /**
      * 处理临床数据
      *
@@ -47,6 +73,12 @@ public class ClinicalFacade {
      */
     public ResponseData processClinicalData(@RequestBody SearchVo searchVo) {
         SearchVo sData = searchVo;
+//        Map<String, List<Map<String, String>>> standWord = getStandWord();
+//        //        standWordObj = getStandWord();
+//        Response<List<Lexeme>> resp = nlpServiceClient.split(sData.getSymptom());
+//        if (null != resp && null != resp.getData()) {
+//            addStandWord(resp.getData(), standWord, sData);
+//        }
 
         sData.setLisArr(processLis(sData.getLisArr()));
 
@@ -80,7 +112,6 @@ public class ClinicalFacade {
                 lisres.setOtherValue(lisres.getDetailName() + Otherval);
             } else {
                 Otherval = (Otherval.trim().length() > 0) ? Otherval.trim() + "\n" : "";
-
                 if (lisres.getValue() == null) {
                     continue;
                 } else if (lisres.getMaxValue() != null && lisres.getValue() > lisres.getMaxValue()) {
@@ -110,6 +141,33 @@ public class ClinicalFacade {
         return response;
     }
 
+
+    /**
+     * 获取量表内容
+     *
+     * @param searchVo
+     * @return
+     */
+    public List<ScaleContent> getScale(SearchVo searchVo) {
+        Map<String, Object> response = aiServiceClient.scale(searchVo);
+        if (null == response) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "量表没有返回结果");
+        }
+        List<ScaleContent> list = getContent(searchVo.getScaleName(), JSON.toJSONString(response));
+        return list;
+    }
+
+    public List<ScaleContent> getContent(String scaleName, String pushContent) {
+        List<ScaleContent> list = scaleContentService.getContentByName(scaleName);
+        for (ScaleContent scaleContent : list) {
+            if (ScaleTypeEnum.PUSH.getKey() == scaleContent.getType()) {
+                scaleContent.setContent(pushContent);
+                break;
+            }
+        }
+        return list;
+    }
+
     /**
      * 高危诊断
      *
@@ -119,7 +177,8 @@ public class ClinicalFacade {
     public GdbResponse highRiskPageData(SearchVo searchVo) {
         Response<GdbResponse> response = aiServiceClient.highRiskPageData(searchVo);
         if (response == null || response.getData() == null) {
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "高危没有返回结果");
+            return null;
+            //throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "高危没有返回结果");
         }
         return response.getData();
     }
@@ -137,4 +196,225 @@ public class ClinicalFacade {
         }
         return response;
     }
+
+    public SearchVo addStandWord(List<Lexeme> lexemes, Map<String, List<Map<String, String>>> standWords, SearchVo sData) {
+        List<Lexeme> feature = new ArrayList<>();
+        //收集分词结果中体征指标或体征指标值(数字)
+        for (int i = 0; i < lexemes.size(); i++) {
+            if (lexemes.get(i).getProperty().contains("33") || lexemes.get(i).getProperty().contains("28")
+                    || lexemes.get(i).getProperty().contains("2") || lexemes.get(i).getProperty().contains("9")
+                    ) {
+                feature.add(lexemes.get(i));
+            }
+        }
+        //根据收集到的分词结果把体征指标和对应体征指标值(数字)拼接
+        List<String> featureType = new ArrayList<>();
+        for (int i = 0; i < feature.size(); i++) {
+            boolean featureTypeState = true;
+            if (i < feature.size() - 2) {
+                if ((feature.get(i).getProperty().contains("33") && feature.get(i + 1).getProperty().contains("28")
+                        && feature.get(i + 2).getProperty().contains("2"))
+                        || (feature.get(i).getProperty().contains("33") && feature.get(i + 1).getProperty().contains("28")
+                        && feature.get(i + 2).getProperty().contains("9"))) {
+                    featureType.add(feature.get(i).getText() + "\t" + feature.get(i + 1).getText() + "\t"
+                            + feature.get(i + 2).getText());
+                    featureTypeState = false;
+                }
+            }
+            if (i < feature.size() - 1 && featureTypeState) {
+                if (feature.get(i).getProperty().contains("33") && feature.get(i + 1).getProperty().contains("28")) {
+                    featureType.add(feature.get(i).getText() + "\t" + feature.get(i + 1).getText());
+                }
+            }
+        }
+        //将标准词中体征指标值(数字)与分词结果中体征指标值(数字)比较
+        for (String f : featureType) {
+            String[] features = f.split("\t");
+            if (standWords.containsKey(features[0])) {
+                List<Map<String, String>> standWordList = standWords.get(features[0]);
+                for (Map<String, String> standWordMap : standWordList) {
+                    if (standWordMap.containsKey("op") && standWordMap.containsKey("unit")
+                            && standWordMap.containsKey("value")) {
+                        if (features.length == 2) {
+                            judgment(sData, features, features[0], standWordMap);
+                        } else {
+                            if (standWordMap.get("unit").equals(features[2])) {
+                                judgment(sData, features, features[0], standWordMap);
+                            }
+                        }
+                    } else if (standWordMap.containsKey("op") && standWordMap.containsKey("value")) {
+                        if (features.length == 2) {
+                            judgment(sData, features, features[0], standWordMap);
+                        }
+                    }
+                }
+            }
+        }
+        return sData;
+    }
+
+    //将标准词中体征指标值(数字)与分词结果中体征指标值(数字)比较
+    private void judgment(SearchVo sData, String[] features, String standWordKey, Map<String, String> standWordMap) {
+        if (standWordMap.get("op").contains(">=") || standWordMap.get("op").contains("≥")
+                || standWordMap.get("op").contains(">") || standWordMap.get("op").contains("大于")
+                || standWordMap.get("op").contains(">") || standWordMap.get("op").contains("大")) {
+            //单独处理  血压≥140/90mmHg   类似情况
+            if (features[1].contains("/")) {
+                if (standWordMap.get("value").contains("/")) {
+                    String[] feature = features[1].split("/");
+                    Integer featuresSBP = Integer.valueOf(feature[0]); //分词特征收缩压
+                    Integer featuresDBP = Integer.valueOf(feature[1]); //分词特征舒张压
+
+                    String[] values = standWordMap.get("value").split("/");
+                    Integer standWordSBP = Integer.valueOf(values[0]); //标准词收缩压
+                    Integer standWordDBP = Integer.valueOf(values[1]); //标准词舒张压
+                    if (featuresSBP > standWordSBP && featuresDBP > standWordDBP) {
+                        String standWord = standWordKey + standWordMap.get("op") + standWordMap.get("value") + standWordMap.get("unit") + "。";
+                        sData.setSymptom(sData.getSymptom() + standWord);
+                        System.out.println(sData.getSymptom());
+                    }
+                }
+            } else {
+                String num = getNum(standWordMap.get("value"));
+                if (Double.valueOf(getNum(features[1])) > Double.valueOf(num)) {
+                    String standWord = standWordKey + standWordMap.get("op") + standWordMap.get("value") + standWordMap.get("unit") + "。";
+                    sData.setSymptom(sData.getSymptom() + standWord);
+                    System.out.println(sData.getSymptom());
+
+                }
+            }
+        } else if (standWordMap.get("op").contains("<=") || standWordMap.get("op").contains("≤")
+                || standWordMap.get("op").contains("<") || standWordMap.get("op").contains("小于")
+                || standWordMap.get("op").contains("<") || standWordMap.get("op").contains("少于")
+                || standWordMap.get("op").contains("小")) {
+            //单独处理  血压小于90/60mmHg   类似情况
+            if (standWordMap.get("value").contains("/")) {
+                if (features[1].contains("/")) {
+                    String[] feature = features[1].split("/");
+                    Integer featuresSBP = Integer.valueOf(feature[0]); //收缩压
+                    Integer featuresDBP = Integer.valueOf(feature[1]); //舒张压
+
+                    String[] values = standWordMap.get("value").split("/");
+                    Integer standWordSBP = Integer.valueOf(values[0]); //收缩压
+                    Integer standWordDBP = Integer.valueOf(values[1]); //舒张压
+                    if (featuresSBP < standWordSBP && featuresDBP < standWordDBP) {
+                        String standWord = standWordKey + standWordMap.get("op") + standWordMap.get("value") + standWordMap.get("unit") + "。";
+                        sData.setSymptom(sData.getSymptom() + standWord);
+                        System.out.println(sData.getSymptom());
+                    }
+                }
+            } else {
+                String num = getNum(standWordMap.get("value"));
+                if (Double.valueOf(getNum(features[1])) < Double.valueOf(num)) {
+                    String standWord = standWordKey + standWordMap.get("op") + standWordMap.get("value") + standWordMap.get("unit") + "。";
+                    sData.setSymptom(sData.getSymptom() + standWord);
+                    System.out.println(sData.getSymptom());
+                }
+            }
+        }
+    }
+
+    private String getNum(String standWord) {
+        StringBuffer sb = new StringBuffer();
+        try {
+            for (String num : standWord.replaceAll("[^0-9]", ",").split(",")) {
+                if (num.length() > 0) {
+                    sb.append(num);
+                }
+            }
+        } catch (NumberFormatException e) {
+            e.printStackTrace();
+            System.out.println(e.getMessage() + "不是标准数字");
+        }
+        return sb.toString();
+    }
+
+    private Map<String, List<Map<String, String>>> getStandWord() {
+        Map<String, List<Map<String, String>>> standWordObj = new HashMap<>();
+        List<List<Lexeme>> splitStandWords = new ArrayList<>();
+        List<Lexeme> data = null;
+        /*BufferedReader reader = null;
+        InputStream inputStream = null;
+        String line = "";
+        try {
+            //file = ResourceUtils.getFile("classpath:standword.txt");
+            //            Resource resource = new ClassPathResource("standword.txt");
+            ClassPathResource classPathResource = new ClassPathResource("standword.txt");
+            inputStream = classPathResource.getInputStream();
+            //            file = resource.getFile();
+            reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
+            while ((line = reader.readLine()) != null) {
+                data = nlpServiceClient.split(line).getData();
+                splitStandWords.add(data);
+                //                standWord.add(line);
+            }
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                reader.close();
+                inputStream.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }*/
+        List<String> standWords = conceptFacade.getStandWord();
+        for (String standWord : standWords) {
+            data = nlpServiceClient.split(standWord).getData();
+            splitStandWords.add(data);
+        }
+
+        List<Map<String, String>> standWordObjValList = null;
+        Map<String, String> standWordObjVal = null;
+        for (List<Lexeme> splitStandWord : splitStandWords) {
+            standWordObjValList = new ArrayList<>();
+            standWordObjVal = new HashMap<>();
+            int i = 0;
+            String standWordObjKey = "";
+            for (Lexeme lexeme : splitStandWord) {
+                i++;
+                //                if ("\uFEFF".equals(lexeme.getText()) || lexeme.getText().length() <= 0) {
+                //                    continue;
+                //                }
+                if (lexeme.getProperty().contains("1") || lexeme.getProperty().contains("5")
+                        || lexeme.getProperty().contains("33")) {
+                    if (!standWordObj.containsKey(lexeme.getText())) {
+                        standWordObj.put(lexeme.getText(), standWordObjValList);
+                    } else {
+                        standWordObjKey = lexeme.getText();
+                    }
+                } else if (lexeme.getProperty().contains("44")) {
+
+                    if (standWordObjVal.containsKey("op")) {
+                        standWordObjVal.put("op", standWordObjVal.get("op") + "," + lexeme.getText());
+                    } else {
+                        standWordObjVal.put("op", lexeme.getText());
+                    }
+                } else if (lexeme.getProperty().contains("13") || lexeme.getProperty().contains("28")) {
+                    if (standWordObjVal.containsKey("value")) {
+                        standWordObjVal.put("value", standWordObjVal.get("value") + "," + lexeme.getText());
+                    } else {
+                        standWordObjVal.put("value", lexeme.getText());
+                    }
+                } else if (lexeme.getProperty().contains("2") || lexeme.getProperty().contains("9")) {
+                    if (standWordObjVal.containsKey("unit")) {
+                        standWordObjVal.put("unit", standWordObjVal.get("unit") + "," + lexeme.getText());
+                    } else {
+                        standWordObjVal.put("unit", lexeme.getText());
+                    }
+                }
+                if (splitStandWord.size() == i) {
+                    if (standWordObj.containsKey(standWordObjKey)) {
+                        standWordObj.get(standWordObjKey).add(standWordObjVal);
+                    } else {
+                        standWordObjValList.add(standWordObjVal);
+                    }
+                }
+            }
+        }
+        return standWordObj;
+    }
+
 }

+ 162 - 0
aipt-service/src/main/java/com/diagbot/facade/ConceptDetailFacade.java

@@ -0,0 +1,162 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.ConceptDetailDTO;
+import com.diagbot.dto.ConceptIntroduceDTO;
+import com.diagbot.entity.Concept;
+import com.diagbot.entity.ConceptDetail;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.enums.PositionTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.ConceptDetailServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.ParamConvertUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.ConceptBaseVO;
+import com.diagbot.vo.ConceptIntroduceVO;
+import com.diagbot.vo.ExistListByConceptIdsVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Description:提示信息
+ * @Author:zhaops
+ * @time: 2019/5/6 15:03
+ */
+@Component
+public class ConceptDetailFacade extends ConceptDetailServiceImpl {
+    @Autowired
+    private ConceptFacade conceptFacade;
+
+    /**
+     * 获取提示信息
+     *
+     * @param conceptIntroduceVO
+     * @return
+     */
+    public ConceptIntroduceDTO getConceptDetail(ConceptIntroduceVO conceptIntroduceVO) {
+        if (StringUtil.isBlank(conceptIntroduceVO.getName())) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "请输入概念名称");
+        }
+        conceptIntroduceVO.setLibType(ParamConvertUtil.conceptConvert2Lib(conceptIntroduceVO.getType()));
+        //验证存在并且获取概念基本信息
+        ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+        BeanUtil.copyProperties(conceptIntroduceVO, conceptBaseVO);
+        Concept concept = conceptFacade.exist(conceptBaseVO);
+        //提示信息明细
+        QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
+        conceptDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("concept_id", concept.getId())
+                .orderByAsc("order_no");
+        if (conceptIntroduceVO.getPosition() == null) {
+            if (conceptIntroduceVO.getLibType().equals(LexiconTypeEnum.DRUGS.getKey())) {
+                conceptIntroduceVO.setPosition(PositionTypeEnum.T5.getKey());
+            } else if (conceptIntroduceVO.getLibType().equals(LexiconTypeEnum.SIDE_EFFECTS.getKey())) {
+                conceptIntroduceVO.setPosition(PositionTypeEnum.T6.getKey());
+            } else {
+                conceptIntroduceVO.setPosition(PositionTypeEnum.T2.getKey());
+            }
+        }
+        //position=0,返回所有位置的内容
+        if (!conceptIntroduceVO.getPosition().equals(0)) {
+            conceptDetailQueryWrapper.apply("find_in_set({0},position)", conceptIntroduceVO.getPosition());
+        }
+        if (ListUtil.isNotEmpty(conceptIntroduceVO.getTitles())) {
+            conceptDetailQueryWrapper.in("title", conceptIntroduceVO.getTitles());
+        }
+        List<ConceptDetail> conceptDetailList = this.list(conceptDetailQueryWrapper);
+        List<ConceptDetailDTO> conceptDetailDTOList = ListUtil.newArrayList();
+        if (ListUtil.isNotEmpty(conceptDetailList)) {
+            conceptDetailDTOList = BeanUtil.listCopyTo(conceptDetailList, ConceptDetailDTO.class);
+        }
+        ConceptIntroduceDTO conceptIntroduceDTO = new ConceptIntroduceDTO();
+        conceptIntroduceDTO.setConceptId(concept.getId());
+        conceptIntroduceDTO.setName(concept.getLibName());
+        conceptIntroduceDTO.setDetails(conceptDetailDTOList);
+        return conceptIntroduceDTO;
+    }
+
+    /**
+     * 是否存在提示信息
+     *
+     * @param conceptIntroduceVO
+     * @return
+     */
+    public Boolean exist(ConceptIntroduceVO conceptIntroduceVO) {
+        conceptIntroduceVO.setLibType(ParamConvertUtil.conceptConvert2Lib(conceptIntroduceVO.getType()));
+        //验证存在并且获取概念基本信息
+        ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+        BeanUtil.copyProperties(conceptIntroduceVO, conceptBaseVO);
+        Concept concept = conceptFacade.exist(conceptBaseVO);
+        QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
+        conceptDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("concept_id", concept.getId());
+        Integer res = this.count(conceptDetailQueryWrapper);
+        if (res > 0) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * 是否存在提示信息-列表
+     *
+     * @param conceptList
+     * @return
+     */
+    public Map<String, Map<Long, List<ConceptDetail>>> hasConDetail(List<Concept> conceptList) {
+        Map<String, Map<Long, List<ConceptDetail>>> retMap = new LinkedHashMap<>();
+        Map<Long, List<ConceptDetail>> retSubMap = new LinkedHashMap<>();
+        if (ListUtil.isNotEmpty(conceptList)) {
+            List<Long> conceptIds = conceptList.stream().map(concept -> concept.getId()).collect(Collectors.toList());
+            QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
+            conceptDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).in("concept_id", conceptIds);
+            List<ConceptDetail> conceptDetailList = this.list(conceptDetailQueryWrapper);
+            if (ListUtil.isNotEmpty(conceptDetailList)) {
+                Map<Long, List<ConceptDetail>> conceptDetailMap = EntityUtil.makeEntityListMap(conceptDetailList, "conceptId");
+                for (Concept concept : conceptList) {
+                    if (retMap.containsKey(concept.getLibName())) {
+                        retSubMap = retMap.get(concept.getLibName());
+                    }
+                    if (retSubMap == null) {
+                        retSubMap = new LinkedHashMap<>();
+                    }
+                    if (conceptDetailMap.containsKey(concept.getId()) && ListUtil.isNotEmpty(conceptDetailMap.get(concept.getId()))) {
+                        retSubMap.put(concept.getLibType(), conceptDetailMap.get(concept.getId()));
+                        retMap.put(concept.getLibName(), retSubMap);
+                    }
+                }
+            }
+        }
+        return retMap;
+    }
+
+    /**
+     * 根据概念id验证提示信息是否存在
+     *
+     * @param existListByConceptIdsVO
+     * @return
+     */
+    public List<Long> existListByConceptIds(ExistListByConceptIdsVO existListByConceptIdsVO) {
+        QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
+        conceptDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in("concept_id", existListByConceptIdsVO.getConceptIds());
+        List<ConceptDetail> conceptDetailList = this.list(conceptDetailQueryWrapper);
+        if (ListUtil.isNotEmpty(conceptDetailList)) {
+            List<Long> retConceptIds = conceptDetailList.stream().map(conceptDetail -> conceptDetail.getConceptId()).distinct().collect(Collectors.toList());
+            return retConceptIds;
+        } else {
+            return null;
+        }
+    }
+}

+ 371 - 0
aipt-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -0,0 +1,371 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.ConceptBaseDTO;
+import com.diagbot.dto.ConceptRetrievalDTO;
+import com.diagbot.dto.ConceptWithOrderRes;
+import com.diagbot.dto.RetrievalDTO;
+import com.diagbot.entity.Concept;
+import com.diagbot.entity.wrapper.ConceptWrapper;
+import com.diagbot.enums.ConceptTypeEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.LexiconRSTypeEnum;
+import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.ConceptServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.IntegerUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.ParamConvertUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.ConceptBaseVO;
+import com.diagbot.vo.ConceptExistVO;
+import com.diagbot.vo.ConceptFindVO;
+import com.diagbot.vo.ConceptSearchVO;
+import com.diagbot.vo.ConceptUsualVO;
+import com.diagbot.vo.GetStaticKnowledgeVO;
+import com.diagbot.vo.RetrievalVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/5/6 15:04
+ */
+@Component
+public class ConceptFacade extends ConceptServiceImpl {
+    @Autowired
+    ConceptDetailFacade conceptDetailFacade;
+
+    /**
+     * 验证存在并且获取概念基本信息
+     *
+     * @param conceptBaseVO 概念名称和类型
+     * @return 概念基本信息
+     */
+    public Concept exist(ConceptBaseVO conceptBaseVO) {
+        QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
+        conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("lib_name", conceptBaseVO.getName())
+                .eq("lib_type", conceptBaseVO.getLibType());
+        Concept concept = this.getOne(conceptQueryWrapper);
+        if (concept == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "概念不存在");
+        }
+        return concept;
+    }
+
+    /**
+     * 获取概念基本信息
+     *
+     * @param conceptBaseVO
+     * @return
+     */
+    public Concept getConcept(ConceptBaseVO conceptBaseVO) {
+        QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
+        conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("lib_name", conceptBaseVO.getName())
+                .eq("lib_type", conceptBaseVO.getLibType());
+        Concept concept = this.getOne(conceptQueryWrapper);
+        return concept;
+    }
+
+    /**
+     * 根据概念Id列表获取概念列表Map
+     *
+     * @param conceptSearchVO 搜索参数
+     * @return 术语id和术语 Map
+     */
+    public Map<Long, String> getConceptMap(ConceptSearchVO conceptSearchVO) {
+        //入参验证
+        if (ListUtil.isEmpty(conceptSearchVO.getConceptIds())) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "术语列表不能为空");
+        }
+
+        //获取结构
+        List<Concept> concepts
+                = this.getListByIds(conceptSearchVO.getConceptIds());
+
+        //出参封装
+        Map<Long, String> map = new HashMap<>();
+        if (ListUtil.isNotEmpty(concepts)) {
+            map = concepts.stream().collect(Collectors.toMap(r -> r.getId(), r -> r.getLibName()));
+        }
+        return map;
+    }
+
+    /**
+     * 根据概念Id列表获取概念列表Map
+     *
+     * @param conceptFindVO 搜索参数
+     * @return 术语id和术语 Map
+     */
+    public Map<Long, String> getConceptCondMap(ConceptFindVO conceptFindVO) {
+        //入参验证
+        if (ListUtil.isEmpty(conceptFindVO.getConceptIds())) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "术语列表不能为空");
+        }
+
+        if (IntegerUtil.isNull(conceptFindVO.getAge())) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "年龄不能为空");
+        }
+
+        if (IntegerUtil.isNull(conceptFindVO.getSexType())) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "性别不能为空");
+        }
+
+        //获取结构
+        List<ConceptBaseDTO> concepts
+                = this.getConceptConMap(conceptFindVO);
+
+        //出参封装
+        Map<Long, String> map = new HashMap<>();
+        if (ListUtil.isNotEmpty(concepts)) {
+            map = concepts.stream().collect(Collectors.toMap(r -> r.getConceptId(), r -> r.getName()));
+        }
+        return map;
+    }
+
+    /**
+     * 根据概念Id列表获取概念列表
+     *
+     * @param ids
+     * @return
+     */
+    public List<Concept> getListByIds(List<Long> ids) {
+        QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
+        conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in("id", ids);
+        List<Concept> list = this.list(conceptQueryWrapper);
+        return list;
+    }
+
+    /**
+     * 根据名称和词性获取概念列表
+     *
+     * @param nameList
+     * @param libType
+     * @return
+     */
+    public List<Concept> getListByNamesAndType(List<String> nameList, Integer libType) {
+        QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
+        conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in("lib_name", nameList);
+        if (libType != null) {
+            conceptQueryWrapper.eq("lib_type", libType);
+        }
+        List<Concept> list = this.list(conceptQueryWrapper);
+        return list;
+    }
+
+    /**
+     * 根据名称获取概念list
+     *
+     * @param nameList
+     * @return
+     */
+    public List<Concept> getListByNames(List<String> nameList) {
+        QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
+        conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in("lib_name", nameList);
+        List<Concept> list = this.list(conceptQueryWrapper);
+        return list;
+    }
+
+    /**
+     * 根据名称和类型获取概念列表Map
+     *
+     * @param conceptExistVO 搜索参数
+     * @return 术语id和术语 Map
+     */
+    public Map<String, Long> getConceptMap(ConceptExistVO conceptExistVO) {
+        // 入参验证
+        if (ListUtil.isEmpty(conceptExistVO.getNameList())) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "名称列表不能为空");
+        }
+
+        if (conceptExistVO.getType() != null) {
+            Integer libType = ParamConvertUtil.conceptConvert2Lib(conceptExistVO.getType());
+            if (libType == null) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "类型不匹配");
+            }
+            conceptExistVO.setLibType(libType);
+        }
+
+        //获取结构
+        List<Concept> concepts
+                = this.getListByNamesAndType(conceptExistVO.getNameList(), conceptExistVO.getLibType());
+
+        //出参封装
+        Map<String, Long> map = new HashMap<>();
+        if (ListUtil.isNotEmpty(concepts)) {
+            map = concepts.stream().collect(Collectors.toMap(r -> r.getLibName(), r -> r.getId()));
+        }
+        return map;
+    }
+
+
+    /**
+     * 获取常用标签
+     *
+     * @param conceptUsualVO
+     * @return
+     */
+    public List<ConceptBaseDTO> getConceptUsual(ConceptUsualVO conceptUsualVO) {
+        //入参验证
+        List<Integer> inputTyps = new ArrayList<>();
+        inputTyps.add(ConceptTypeEnum.Symptom.getKey());
+        inputTyps.add(ConceptTypeEnum.Vital.getKey());
+        inputTyps.add(ConceptTypeEnum.Lis.getKey());
+        inputTyps.add(ConceptTypeEnum.Pacs.getKey());
+
+        if (!inputTyps.contains(conceptUsualVO.getType())) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "超出范围");
+        }
+
+        //获取标签内容
+        ConceptWrapper conceptWrapper = new ConceptWrapper();
+        conceptWrapper.setStartName(conceptUsualVO.getDeptName());//科室名称
+        conceptWrapper.setStartType(LexiconTypeEnum.DEPARTMENT.getKey());
+        conceptWrapper.setRelationType(LexiconRSTypeEnum.ORDER_BY.getKey());
+        conceptWrapper.setEndAge(conceptUsualVO.getAge());//年龄
+        conceptWrapper.setEndSex(conceptUsualVO.getSexType());//性别
+        //找出标签类型对应的类型id
+        conceptWrapper.setEndType(ParamConvertUtil.conceptConvert2Lib(conceptUsualVO.getType()));//标签类型
+        List<ConceptWithOrderRes> concepts = this.getConceptWithOrder(conceptWrapper);
+        List<ConceptBaseDTO> list = new ArrayList();
+        //封装
+        ConceptBaseDTO conceptBaseDTO = new ConceptBaseDTO();
+        for (ConceptWithOrderRes conceptWithOrderRes : concepts) {
+            conceptBaseDTO = new ConceptBaseDTO();
+            conceptBaseDTO.setConceptId(conceptWithOrderRes.getEndId());
+            conceptBaseDTO.setName(conceptWithOrderRes.getEndName());
+            list.add(conceptBaseDTO);
+        }
+        return list;
+    }
+
+    /**
+     * 概念id检索
+     *
+     * @param retrievalVO
+     * @return
+     */
+    public List<ConceptRetrievalDTO> retrivelConceptInfo(RetrievalVO retrievalVO) {
+        Boolean bla = true;
+        if (null != retrievalVO.getType()) {
+            if (retrievalVO.getType().intValue() == ConceptTypeEnum.Lis.getKey()) {//如果是化验,添加化验子项类型
+                retrievalVO.setDetailType(LexiconTypeEnum.LIS_DETAILS.getKey());
+                bla = true;
+            } else if (retrievalVO.getType().intValue() == ConceptTypeEnum.Past.getKey()
+                    || retrievalVO.getType().intValue() == ConceptTypeEnum.Other.getKey()) {//如果是其他史设置其他史类型
+                List<Integer> typeList = new ArrayList<>();
+                typeList.add(LexiconTypeEnum.HISTORY_OF_PAST_DISEASES.getKey());
+                typeList.add(LexiconTypeEnum.HISTORY_OF_TRAUMA.getKey());
+                typeList.add(LexiconTypeEnum.HISTORY_OF_SURGERY.getKey());
+                typeList.add(LexiconTypeEnum.HISTORY_OF_BLOOD_TRANSFUSION.getKey());
+                typeList.add(LexiconTypeEnum.INFECTIOUS_DISEASE_HISTORY.getKey());
+                typeList.add(LexiconTypeEnum.BAD_HABITS.getKey());
+                typeList.add(LexiconTypeEnum.MARITAL_HISTORY.getKey());
+                typeList.add(LexiconTypeEnum.HISTORY_OF_MARRIAGE_AND_CHILDBEARING.getKey());
+                typeList.add(LexiconTypeEnum.BIRTH_HISTORY.getKey());
+                typeList.add(LexiconTypeEnum.FAMILY_HISTORY.getKey());
+                typeList.add(LexiconTypeEnum.FOOD_ALLERGY_HISTORY.getKey());
+                typeList.add(LexiconTypeEnum.HISTORY_OF_DRUG_ALLERGY.getKey());
+                typeList.add(LexiconTypeEnum.FAMILY_RELATED_INFECTIOUS_DISEASE_HISTORY.getKey());
+                retrievalVO.setOtherType(typeList);
+                bla = false;
+            }
+            if (bla) {
+                retrievalVO.setType(ParamConvertUtil.conceptConvert2Lib(retrievalVO.getType()));
+            }
+        }
+        List<ConceptRetrievalDTO> conceptRetrievalDTOS = Lists.newArrayList();
+        conceptRetrievalDTOS = this.retrievalConcept(retrievalVO);
+        List<ConceptRetrievalDTO> res = new ArrayList<>();
+        List<Long> selfList = new ArrayList<>(); // 本体
+        List<Long> subList = new ArrayList<>(); // 子项
+        List<String> conceptNameList = new ArrayList<>();//名称结果集保证数据唯一
+        for (ConceptRetrievalDTO bean : conceptRetrievalDTOS) {
+            if (StringUtil.isNotEmpty(bean.getParentName())) { // 重置showType
+                bean.setShowType(2L);
+            }
+            if (bean.getShowType().intValue() == 1) { // 本体
+                selfList.add(bean.getSelfId());
+            } else if (bean.getShowType().intValue() == 2) { // 子项
+                subList.add(bean.getSelfId());
+            }
+        }
+        // 有本体,过滤同义词和子项;无本体,有子项,过滤同义词
+        for (ConceptRetrievalDTO bean : conceptRetrievalDTOS) {
+            if (bean.getShowType().intValue() == 1) {
+                if(retrievalVO.getIsSonShow().intValue() == 0){//isSonShow为0执行检索去重逻辑
+                    res.add(bean);
+                }
+            } else if (bean.getShowType().intValue() == 2) {
+                if(retrievalVO.getIsSonShow().intValue() == 0){//isSonShow为0执行检索去重逻辑
+                    if (!selfList.contains(bean.getParentId()) && !conceptNameList.contains(bean.getParentName()) ) {
+                        conceptNameList.add(bean.getParentName());
+                        res.add(bean);
+                    }
+                }
+            } else if (bean.getShowType().intValue() == 0) {
+                if(retrievalVO.getIsSonShow().intValue() == 0){//isSonShow为0执行检索去重逻辑
+                    if (!selfList.contains(bean.getSelfId()) && !subList.contains(bean.getSelfId()) && !conceptNameList.contains(bean.getSelfName())) {
+                        conceptNameList.add(bean.getSelfName());
+                        res.add(bean);
+                    }
+                }
+            }
+        }
+        //把本体的sameName过滤掉
+        for (ConceptRetrievalDTO conceptRetrievalDTO : res) {
+            if (conceptRetrievalDTO.getSameName() != null && conceptRetrievalDTO.getSameName().equals(conceptRetrievalDTO.getSelfName())) {
+                conceptRetrievalDTO.setSameName(null);
+            }
+            conceptRetrievalDTO.setType(ParamConvertUtil.libConvert2Concept(conceptRetrievalDTO.getLibTypeId().intValue()));
+        }
+        return res;
+    }
+
+
+    /**
+     * 静态知识标签检索
+     *
+     * @param getStaticKnowledgeVO
+     * @return
+     */
+    public List<RetrievalDTO> getStaticKnowledge(GetStaticKnowledgeVO getStaticKnowledgeVO) {
+        RetrievalVO retrievalVO = new RetrievalVO();
+        BeanUtil.copyProperties(getStaticKnowledgeVO,retrievalVO);
+        List<RetrievalDTO> staticRetrievalList = this.staticKnowledge(retrievalVO);
+        for (RetrievalDTO retrievalDTO : staticRetrievalList) {
+            retrievalDTO.setType(ParamConvertUtil.libConvert2Concept(retrievalDTO.getLibTypeId().intValue()));
+            if((retrievalDTO.getShowType().intValue() == 1)
+                || (retrievalDTO.getShowType().intValue() == 21)){//去除本体retrivalName和(父项--子项)组合的retrivalName
+                retrievalDTO.setRetrievalName(null);
+            }
+        }
+        return staticRetrievalList;
+    }
+
+
+    /**
+     * 检索词库获取标准词
+     *
+     * @param conceptBaseVO
+     * @return
+     */
+    public List<ConceptBaseDTO> indexConceptFac(ConceptBaseVO conceptBaseVO) {
+        return this.indexConcept(conceptBaseVO);
+    }
+}

+ 52 - 0
aipt-service/src/main/java/com/diagbot/facade/DeptInfoFacade.java

@@ -0,0 +1,52 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.DeptInfoDTO;
+import com.diagbot.dto.HospitalDeptInfoDTO;
+import com.diagbot.vo.HospitalDeptInfoVO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.Concept;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.RespDTOUtil;
+import com.diagbot.vo.DeptInfoVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2018/11/19 19:21
+ */
+@Component
+public class DeptInfoFacade {
+    @Autowired
+    private ConceptFacade conceptFacade;
+
+    @Autowired
+    private TranServiceClient tranServiceClient;
+
+    /**
+     * 获取科室信息
+     *
+     * @param deptInfoVO
+     * @return
+     */
+    public DeptInfoDTO getDeptInfo(DeptInfoVO deptInfoVO) {
+        HospitalDeptInfoVO hospitalDeptInfoVO = new HospitalDeptInfoVO();
+        BeanUtil.copyProperties(deptInfoVO, hospitalDeptInfoVO);
+        RespDTO<HospitalDeptInfoDTO> hospitalDeptInfoDTORespDTO = tranServiceClient.getHospitalDeptInfo(hospitalDeptInfoVO);
+        RespDTOUtil.respNGDealCover(hospitalDeptInfoDTORespDTO, "获取科室信息失败");
+        QueryWrapper<Concept> deptInfoDTOQueryWrapper = new QueryWrapper<>();
+        deptInfoDTOQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("lib_name", hospitalDeptInfoDTORespDTO.data.getConceptDeptName())
+                .eq("lib_type", LexiconTypeEnum.DEPARTMENT.getKey());
+        Concept deptInfo = conceptFacade.getOne(deptInfoDTOQueryWrapper);
+        DeptInfoDTO deptInfoDTO = new DeptInfoDTO();
+        deptInfoDTO.setConceptId(deptInfo.getId());
+        deptInfoDTO.setName(deptInfo.getLibName());
+        return deptInfoDTO;
+    }
+}

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

@@ -0,0 +1,97 @@
+package com.diagbot.facade;
+
+import com.diagbot.dto.ConceptBaseDTO;
+import com.diagbot.dto.ConceptWithOrderRes;
+import com.diagbot.dto.DisScaleDTO;
+import com.diagbot.dto.ScaleIndexDTO;
+import com.diagbot.entity.wrapper.ConceptWrapper;
+import com.diagbot.enums.LexiconRSTypeEnum;
+import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.service.impl.DisScaleServiceImpl;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.ConceptBaseVO;
+import com.diagbot.vo.DisScaleVO;
+import com.diagbot.vo.ScaleIndexVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Description: 诊断量表
+ * @author: zhoutg
+ * @time: 2015/05/05 13:19
+ */
+@Component
+public class DisScaleFacade extends DisScaleServiceImpl {
+
+    @Autowired
+    ConceptFacade conceptFacade;
+
+    /**
+     * 返回诊断量表列表
+     *
+     * @return
+     */
+    public List<DisScaleDTO> getDisScaleFac(DisScaleVO disScaleVO) {
+        // 入参数据封装
+        ConceptWrapper conceptWrapper = new ConceptWrapper();
+        conceptWrapper.setStartName(disScaleVO.getDisName());
+        conceptWrapper.setStartType(LexiconTypeEnum.DIAGNOSIS.getKey());
+        conceptWrapper.setEndType(LexiconTypeEnum.GAUGE.getKey());
+        conceptWrapper.setRelationType(LexiconRSTypeEnum.ORDER_BY.getKey());
+        List<ConceptWithOrderRes> list = conceptFacade.getConceptWithOrder(conceptWrapper);
+
+        // 出参数据封装
+        List<DisScaleDTO> res = new ArrayList<>();
+        for(ConceptWithOrderRes bean : list) {
+            DisScaleDTO dto = new DisScaleDTO();
+            dto.setName(bean.getEndName());
+            dto.setConceptId(bean.getEndId());
+            res.add(dto);
+        }
+        return res;
+    }
+
+
+    /**
+     * 量表搜索
+     *
+     * @param scaleIndexVO 参数
+     * @return
+     */
+    public List<ScaleIndexDTO> indexFac(ScaleIndexVO scaleIndexVO) {
+        ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+        conceptBaseVO.setName(scaleIndexVO.getName());
+        conceptBaseVO.setLibType(LexiconTypeEnum.DIAGNOSIS.getKey());
+        List<ConceptBaseDTO> conceptBaseDTOS = conceptFacade.indexConceptFac(conceptBaseVO);
+        // 设置诊断名称
+        if (ListUtil.isNotEmpty(conceptBaseDTOS)) {
+            scaleIndexVO.setDisName(conceptBaseDTOS.stream().map(row -> row.getName()).collect(Collectors.toList()));
+        }
+        scaleIndexVO.setStartType(LexiconTypeEnum.DIAGNOSIS.getKey());
+        scaleIndexVO.setRelationType(LexiconRSTypeEnum.ORDER_BY.getKey());
+        scaleIndexVO.setEndType(LexiconTypeEnum.GAUGE.getKey());
+        List<ScaleIndexDTO> data = this.indexScale(scaleIndexVO);
+        List<ScaleIndexDTO> res = new ArrayList<>();
+        List<Long> selfList = new ArrayList<>(); // 本体
+        for (ScaleIndexDTO bean : data) {
+            if (bean.getShowType().intValue() == 1) { // 本体
+                selfList.add(bean.getConceptId());
+            }
+        }
+        for (ScaleIndexDTO bean : data) {
+            if (bean.getShowType().intValue() == 1) { // 本体
+                res.add(bean);
+            } else if (bean.getShowType().intValue() == 0) { //同义词或者诊断关联的量表,只取一个
+                if(!selfList.contains(bean.getConceptId())) {
+                    selfList.add(bean.getConceptId());
+                    res.add(bean);
+                }
+            }
+        }
+        return res;
+    }
+}

+ 102 - 0
aipt-service/src/main/java/com/diagbot/facade/DisTypeFacade.java

@@ -0,0 +1,102 @@
+package com.diagbot.facade;
+
+import com.diagbot.dto.ConceptRes;
+import com.diagbot.dto.DisDTO;
+import com.diagbot.dto.DisTypeDTO;
+import com.diagbot.entity.Concept;
+import com.diagbot.entity.wrapper.ConceptWrapper;
+import com.diagbot.enums.DisTypeEnum;
+import com.diagbot.enums.LexiconRSTypeEnum;
+import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.service.impl.DisTypeServiceImpl;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.ConceptBaseVO;
+import com.diagbot.vo.DisTypeVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 诊断类型
+ * @author: zhoutg
+ * @time: 2018/11/19 13:19
+ */
+@Component
+public class DisTypeFacade extends DisTypeServiceImpl {
+
+    @Autowired
+    ConceptFacade conceptFacade;
+
+    /**
+     * 返回诊断类型
+     *
+     * @return
+     */
+    public DisTypeDTO getDisTypeFac() {
+        DisTypeDTO res = new DisTypeDTO();
+
+        // 入参数据封装
+        ConceptWrapper conceptWrapper = new ConceptWrapper();
+        conceptWrapper.setStartType(LexiconTypeEnum.DIAGNOSIS.getKey());
+        conceptWrapper.setEndType(LexiconTypeEnum.TYPES_OF_DISEASE.getKey());
+        conceptWrapper.setRelationType(LexiconRSTypeEnum.INCLUDE_OF.getKey());
+        List<ConceptRes> list = conceptFacade.getConcept(conceptWrapper);
+
+        // 出参数据封装
+        List<DisDTO> data = new ArrayList<>();
+        for (ConceptRes bean : list) {
+            DisDTO disDTO = new DisDTO();
+            disDTO.setName(bean.getStartName());
+            disDTO.setConceptId(bean.getStartId());
+            disDTO.setTypeName(bean.getEndName());
+            data.add(disDTO);
+        }
+        Map<String, List<DisDTO>> map = EntityUtil.makeEntityListMap(data, "typeName");
+        if (map != null) {
+            List<DisDTO> chr = map.get(DisTypeEnum.CHRONIC.getName()); //放入慢病列表
+            if (ListUtil.isNotEmpty(chr)) {
+                res.setChronic(chr);
+            }
+            List<DisDTO> eme = map.get(DisTypeEnum.EMERGENCY.getName()); //放入急诊列表
+            if (ListUtil.isNotEmpty(eme)) {
+                res.setEmergency(eme);
+            }
+        }
+        return res;
+    }
+
+    /**
+     * 诊断类型验证
+     *
+     * @param disTypeVO
+     * @return
+     */
+    public Boolean verifyDisType(DisTypeVO disTypeVO) {
+        ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+        conceptBaseVO.setName(disTypeVO.getName());
+        conceptBaseVO.setLibType(LexiconTypeEnum.DIAGNOSIS.getKey());
+        Concept disease = conceptFacade.exist(conceptBaseVO);
+        String disTypeName = DisTypeEnum.getName(disTypeVO.getDisType());
+        conceptBaseVO.setName(disTypeName);
+        conceptBaseVO.setLibType(LexiconTypeEnum.TYPES_OF_DISEASE.getKey());
+        Concept disTypeConcept = conceptFacade.exist(conceptBaseVO);
+        ConceptWrapper conceptWrapper = new ConceptWrapper();
+        conceptWrapper.setStartId(disease.getId());
+        conceptWrapper.setStartName(disease.getLibName());
+        conceptWrapper.setStartType(LexiconTypeEnum.DIAGNOSIS.getKey());
+        conceptWrapper.setEndId(disTypeConcept.getId());
+        conceptWrapper.setEndName(disTypeName);
+        conceptWrapper.setEndType(LexiconTypeEnum.TYPES_OF_DISEASE.getKey());
+        conceptWrapper.setRelationType(LexiconRSTypeEnum.INCLUDE_OF.getKey());
+        List<ConceptRes> conceptResList = conceptFacade.getConcept(conceptWrapper);
+        if (ListUtil.isNotEmpty(conceptResList)) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+}

+ 37 - 0
aipt-service/src/main/java/com/diagbot/facade/DisclaimerInformationFacade.java

@@ -0,0 +1,37 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.DisclaimerInformationDTO;
+import com.diagbot.entity.DisclaimerInformation;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.service.impl.DisclaimerInformationServiceImpl;
+import com.diagbot.util.BeanUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月27日 下午3:36:14
+ */
+@Component
+public class DisclaimerInformationFacade extends DisclaimerInformationServiceImpl {
+
+    /**
+     * @return
+     */
+    public List<DisclaimerInformationDTO> getDisclaimerInformation() {
+
+        QueryWrapper<DisclaimerInformation> disclaimerInformation = new QueryWrapper<>();
+        disclaimerInformation.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("STATUS", StatusEnum.Enable.getKey())
+                .orderByAsc("order_no");
+        List<DisclaimerInformation> data = list(disclaimerInformation);
+        // getDisclaimerInformationAll();
+        List<DisclaimerInformationDTO> datas = BeanUtil.listCopyTo(data, DisclaimerInformationDTO.class);
+        return datas;
+    }
+
+}

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

@@ -0,0 +1,80 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.DiseaseIcdDTO;
+import com.diagbot.dto.GetDiseaseIcdDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.Concept;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.RespDTOUtil;
+import com.diagbot.vo.GetDiseaseIcdVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2019/2/14 15:25
+ */
+@Component
+public class DiseaseIcdFacade {
+
+    @Autowired
+    TranServiceClient tranServiceClient;
+    @Autowired
+    ConceptFacade conceptFacade;
+
+    /**
+     * 根据医院编号和诊断ids获取各自的icd编码
+     *
+     * @param getDiseaseIcdVO
+     * @return
+     */
+    public List<DiseaseIcdDTO> getDiseaseIcds(GetDiseaseIcdVO getDiseaseIcdVO) {
+        RespDTO<List<GetDiseaseIcdDTO>> getDiseaseIcdsList = tranServiceClient.getDiseaseIcds(getDiseaseIcdVO);
+        RespDTOUtil.respNGDealCover(getDiseaseIcdsList, "获取icd编码失败");
+
+        List<DiseaseIcdDTO> res = new ArrayList<>();
+
+        List<String> disNames
+                = getDiseaseIcdsList.data.stream()
+                .map(g -> g.getConceptDisName())
+                .distinct()
+                .collect(Collectors.toList());
+        if (ListUtil.isEmpty(disNames)) {
+            return res;
+        }
+
+        QueryWrapper<Concept> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("lib_type", LexiconTypeEnum.DIAGNOSIS.getKey())
+                .in("lib_name", disNames);
+
+        List<Concept> conceptDisNames = conceptFacade.list(queryWrapper);
+
+        Map<String, Long> map
+                = conceptDisNames.stream()
+                .collect(Collectors.toMap(c -> c.getLibName(), c -> c.getId()));
+        if (null != map) {
+            DiseaseIcdDTO diseaseIcdDTO = null;
+            for (GetDiseaseIcdDTO getDiseaseIcdDTO : getDiseaseIcdsList.data) {
+                if (null != map.get(getDiseaseIcdDTO.getConceptDisName())) {
+                    diseaseIcdDTO = new DiseaseIcdDTO();
+                    BeanUtil.copyProperties(getDiseaseIcdDTO, diseaseIcdDTO);
+                    diseaseIcdDTO.setConceptId(map.get(getDiseaseIcdDTO.getConceptDisName()));
+                    res.add(diseaseIcdDTO);
+                }
+            }
+        }
+        return res;
+    }
+}

+ 43 - 0
aipt-service/src/main/java/com/diagbot/facade/EvaluationFacade.java

@@ -0,0 +1,43 @@
+package com.diagbot.facade;
+
+import com.alibaba.fastjson.JSONObject;
+import com.diagbot.dto.EvaluationDTO;
+import com.diagbot.service.impl.EvaluationServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.vo.EvaluationDiseaseNameVO;
+import com.diagbot.vo.SearchVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class EvaluationFacade extends EvaluationServiceImpl {
+
+    @Autowired
+    PushFacade pushFacade;
+
+    /**
+     * 获取管理与评估模板接口
+     *
+     * @param searchVo
+     * @return
+     */
+    public List<EvaluationDTO> getEvaluationModule(SearchVo searchVo) {
+
+        EvaluationDiseaseNameVO evaluationdiseaseNameVO = new 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));
+                }
+            }
+        }
+        return evaluationList;
+    }
+}

+ 42 - 0
aipt-service/src/main/java/com/diagbot/facade/FeatureFacade.java

@@ -0,0 +1,42 @@
+package com.diagbot.facade;
+
+import com.diagbot.dto.FeatureConceptDTO;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.ParamConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/5/13 15:38
+ */
+@Component
+public class FeatureFacade {
+    @Autowired
+    private NLPFacade nlpFacade;
+
+    /**
+     * 症状关键词提取
+     *
+     * @param text
+     * @return
+     */
+    public List<FeatureConceptDTO> getSymptomFeature(String text) {
+        List<FeatureConceptDTO> symptomFeatureList = nlpFacade.symptomFeaturePageData(text);
+        if (!ListUtil.isNotEmpty(symptomFeatureList)) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "未提取到特征词");
+        }
+
+        for (FeatureConceptDTO featureConceptDTO : symptomFeatureList) {
+            if (null != featureConceptDTO.getLibType()) {
+                featureConceptDTO.setType(ParamConvertUtil.libConvert2Concept(featureConceptDTO.getLibType()));
+            }
+        }
+        return symptomFeatureList;
+    }
+}

+ 25 - 0
aipt-service/src/main/java/com/diagbot/facade/IndexConfigFacade.java

@@ -0,0 +1,25 @@
+package com.diagbot.facade;
+
+import com.diagbot.dto.IndexConfigDTO;
+import com.diagbot.service.impl.IndexConfigServiceImpl;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年5月6日 下午6:35:58
+ */
+@Component
+public class IndexConfigFacade extends IndexConfigServiceImpl {
+
+    public List<IndexConfigDTO> getIndexConfig(String diseaseName) {
+        Map<String, Object> indexConfigMap = new HashMap<>();
+        indexConfigMap.put("diseaseName", diseaseName);
+        return this.getIndexConfig(indexConfigMap);
+    }
+
+}

+ 143 - 0
aipt-service/src/main/java/com/diagbot/facade/IndexDataFacade.java

@@ -0,0 +1,143 @@
+package com.diagbot.facade;
+
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.IndexConfigAndDataDTO;
+import com.diagbot.dto.IndexConfigDTO;
+import com.diagbot.dto.IndexDTO;
+import com.diagbot.dto.IndexDataDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.RespDTOUtil;
+import com.diagbot.vo.IndexDataAllVO;
+import com.diagbot.vo.IndexDataFindVO;
+import com.diagbot.vo.IndexDataSaveVO;
+import com.diagbot.vo.IndexDataVO;
+import com.diagbot.vo.IndexDataiIds;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author wangfeng
+ * @Description: 指标数据相关接口
+ * @date 2019年5月6日 下午8:04:09
+ */
+@Component
+public class IndexDataFacade {
+
+    @Autowired
+    TranServiceClient tranServiceClient;
+    @Autowired
+    IndexConfigFacade indexConfigFacade;
+
+    /**
+     * 获取指标数据接口
+     *
+     * @param indexDataFindVO
+     * @return
+     */
+    public IndexConfigAndDataDTO getIndexDataAll(IndexDataFindVO indexDataFindVO) {
+
+        Map<String, Object> indexDataMap = new HashMap<>();
+        indexDataMap.put("diseaseName", indexDataFindVO.getDiseaseName());
+        indexDataMap.put("patientId", indexDataFindVO.getPatientId());
+        indexDataMap.put("startTime", indexDataFindVO.getStartTime());
+        indexDataMap.put("endTime", indexDataFindVO.getEndTime());
+        List<Long> ids = new ArrayList<Long>();
+        // 获取所有需要记录的指标项
+        List<IndexConfigDTO> indexConfigdata = indexConfigFacade.getIndexConfig(indexDataFindVO.getDiseaseName());
+        for (IndexConfigDTO indexconfig : indexConfigdata) {
+            ids.add(indexconfig.getUniqueId());
+        }
+        IndexDataiIds indexDataiIds = new IndexDataiIds();
+        BeanUtil.copyProperties(indexDataFindVO, indexDataiIds);
+        indexDataiIds.setIds(ids);
+        // 获取慢病指标数据
+        RespDTO<List<IndexDataDTO>> dataAll = tranServiceClient.getIndexDatas(indexDataiIds);
+        if (dataAll == null || !"0".equals(dataAll.code)) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
+                    "获取指标数据失败");
+        }
+        List<IndexDataDTO> data = dataAll.data;
+        List<IndexDTO> list = new ArrayList<IndexDTO>();
+        // 根据公表名分组
+        //Map<String, List<IndexDataDTO>> dataMap =datas.stream().collect(Collectors.groupingBy(IndexDataDTO::getIndexUnique));
+        // 根据公表名分组
+        Map<String, List<IndexDataDTO>> dataMap = data.stream().collect(Collectors.groupingBy(IndexDataDTO::getIndexUnique));
+        for (String key : dataMap.keySet()) {
+            IndexDTO itemIndexDTO = new IndexDTO();
+            itemIndexDTO.setItemName(key);
+            List<String> indexUnits = new ArrayList<String>();
+            List<String> indexValues = new ArrayList<String>();
+            List<Integer> isAbnormals = new ArrayList<Integer>();
+            List<Date> creatTimes = new ArrayList<Date>();
+            List<IndexDataDTO> indexDatas = dataMap.get(key);
+            for (IndexDataDTO indexDataDTO : indexDatas) {
+                indexUnits.add(indexDataDTO.getIndexUnit());
+                indexValues.add(indexDataDTO.getIndexValue());
+                isAbnormals.add(indexDataDTO.getIsAbnormal());
+                creatTimes.add(indexDataDTO.getCreatTime());
+            }
+
+            itemIndexDTO.setIndexUnit(indexUnits);
+            itemIndexDTO.setIndexValue(indexValues);
+            itemIndexDTO.setIsAbnormal(isAbnormals);
+            itemIndexDTO.setCreatTime(creatTimes);
+            list.add(itemIndexDTO);
+
+        }
+        IndexConfigAndDataDTO indexsData = new IndexConfigAndDataDTO();
+        indexsData.setIndexConfigData(indexConfigFacade.getIndexConfig(indexDataFindVO.getDiseaseName()));
+        indexsData.setIndexData(list);
+        return indexsData;
+
+    }
+
+    /**
+     * 保存指标数据接口
+     *
+     * @param indexDataSaveVO
+     * @return
+     */
+    public boolean saveIndexDatas(IndexDataSaveVO indexDataSaveVO) {
+        boolean res = false;
+        if (null != indexDataSaveVO && ListUtil.isNotEmpty(indexDataSaveVO.getIndexData())) {
+            // 获取所有需要记录的指标项
+            List<IndexConfigDTO> data = indexConfigFacade.getIndexConfig("");
+            // 遍历数据进行保存
+            List<IndexDataVO> indexDataList = new ArrayList<IndexDataVO>();
+            //过滤化验数据
+            List<IndexDataVO> indexDatas = indexDataSaveVO.getIndexData();
+            for (IndexConfigDTO configData : data) {
+                for (IndexDataVO indexDataNew : indexDatas) {
+                    if (configData.getIndexUnique().equals(indexDataNew.getIndexUnique())) {
+                        IndexDataAllVO indexData = new IndexDataAllVO();
+                        indexData.setIndexId(configData.getUniqueId());
+                        indexData.setIndexUnique(configData.getIndexUnique());
+                        indexData.setCreatTime(indexDataNew.getCreatTime());
+                        indexData.setIndexUnit(indexDataNew.getIndexUnit());
+                        indexData.setIndexValue(indexDataNew.getIndexValue());
+                        indexData.setIsAbnormal(indexDataNew.getIsAbnormal());
+                        indexDataList.add(indexData);
+                    }
+                }
+            }
+            indexDataSaveVO.setIndexData(indexDataList);
+            RespDTO<Boolean> resData = tranServiceClient.saveIndexDatas(indexDataSaveVO);
+            RespDTOUtil.respNGDeal(resData, resData.msg);
+            res = resData.data;
+        }
+
+        return res;
+    }
+
+}

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

@@ -2,13 +2,13 @@ package com.diagbot.facade;
 
 import com.diagbot.client.NLPServiceClient;
 import com.diagbot.client.bean.Response;
+import com.diagbot.dto.FeatureConceptDTO;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * @Description:
@@ -26,11 +26,11 @@ public class NLPFacade {
      * @param text
      * @return
      */
-    public List<Map<String, Object>> symptomFeaturePageData(String text) {
-        Response<List<Map<String, Object>>> response = nlpServiceClient.symptomFeaturePageData(text);
+    public List<FeatureConceptDTO> symptomFeaturePageData(String text) {
+        Response<List<FeatureConceptDTO>> response = nlpServiceClient.symptomFeaturePageData(text);
         if (response == null || response.getData() == null) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "NLP没有返回结果");
         }
         return response.getData();
     }
-}
+}

+ 163 - 0
aipt-service/src/main/java/com/diagbot/facade/PartFacade.java

@@ -0,0 +1,163 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.ConceptWithOrderRes;
+import com.diagbot.dto.PartDTO;
+import com.diagbot.dto.PartSymptomDTO;
+import com.diagbot.entity.Concept;
+import com.diagbot.entity.ConceptDetail;
+import com.diagbot.entity.Symptom;
+import com.diagbot.entity.wrapper.ConceptWrapper;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.LexiconRSTypeEnum;
+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.vo.PartSymptomVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Description: 部位facade
+ * @Author: ztg
+ * @Date: 2018/10/23 16:33
+ */
+@Component
+public class PartFacade {
+
+    @Autowired
+    ConceptFacade conceptFacade;
+    @Autowired
+    ConceptDetailFacade conceptDetailFacade;
+
+    /**
+     * 根据已选部位返回对应的症状
+     *
+     * @param partSymptomVO 参数
+     * @return 部位症状关联信息
+     */
+    public List<PartSymptomDTO> getSymptomByPartName(PartSymptomVO partSymptomVO) {
+        List<String> partList = partSymptomVO.getPartList();
+        if (ListUtil.isEmpty(partList)) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL,
+                    "请选择部位");
+        }
+        if (partSymptomVO.getSexType() == null) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL,
+                    "请选择性别");
+        }
+        if (partSymptomVO.getAge() == null) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL,
+                    "请选择年龄");
+        }
+        if (partSymptomVO.getAge().intValue() < 0 || partSymptomVO.getAge().intValue() > 200) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_ERROR,
+                    "超出年龄范围【0 — 200】");
+        }
+        List<PartSymptomDTO> res = new ArrayList<>();
+
+        // 获取部位区域
+        List<Concept> conceptList = conceptFacade.list(new QueryWrapper<Concept>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("lib_type", LexiconTypeEnum.PART_AREA.getKey())
+                .in("lib_name", partList)
+        );
+
+        // 设置部位区域
+        for (Concept c : conceptList) {
+            PartSymptomDTO partSymptomDTO = new PartSymptomDTO();
+            partSymptomDTO.setConceptId(c.getId());
+            partSymptomDTO.setName(c.getLibName());
+            res.add(partSymptomDTO);
+        }
+
+        // 获取部位信息
+        ConceptWrapper conceptWrapper = new ConceptWrapper();
+        conceptWrapper.setStartNameList(partList);
+        conceptWrapper.setStartType(LexiconTypeEnum.PART_AREA.getKey());
+        conceptWrapper.setRelationType(LexiconRSTypeEnum.ORDER_BY.getKey());
+        conceptWrapper.setEndType(LexiconTypeEnum.BODYPART.getKey());
+        conceptWrapper.setEndSex(partSymptomVO.getSexType());
+        conceptWrapper.setEndAge(partSymptomVO.getAge());
+        List<ConceptWithOrderRes> list = conceptFacade.getConceptWithOrder(conceptWrapper);
+
+        Map<Long, List<ConceptWithOrderRes>> partMap = EntityUtil.makeEntityListMap(list, "startId");
+        // 设置部位区域下的部位
+        for (PartSymptomDTO partSymptomDTO : res) {
+            List<ConceptWithOrderRes> part = partMap.get(partSymptomDTO.getConceptId());
+            if (ListUtil.isNotEmpty(part)) {
+                List<PartDTO> partDTOS = new ArrayList<>();
+                for (ConceptWithOrderRes conceptWithOrderRes : part) {
+                    PartDTO partDTO = new PartDTO();
+                    partDTO.setName(conceptWithOrderRes.getEndName());
+                    partDTO.setConceptId(conceptWithOrderRes.getEndId());
+                    partDTOS.add(partDTO);
+                }
+                partSymptomDTO.setPartDTO(partDTOS);
+            }
+        }
+
+        // 获取部位下的症状
+        ConceptWrapper wrapper = new ConceptWrapper();
+        wrapper.setStartNameList(list.stream().map(r -> r.getEndName()).distinct().collect(Collectors.toList()));
+        wrapper.setStartType(LexiconTypeEnum.BODYPART.getKey());
+        wrapper.setRelationType(LexiconRSTypeEnum.ORDER_BY.getKey());
+        wrapper.setEndType(LexiconTypeEnum.SYMPTOM.getKey());
+        wrapper.setEndSex(partSymptomVO.getSexType());
+        wrapper.setEndAge(partSymptomVO.getAge());
+        List<ConceptWithOrderRes> symptomList = conceptFacade.getConceptWithOrder(wrapper);
+        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()));
+
+
+        // 设置部位下的症状
+        for (PartSymptomDTO partSymptomDTO : res) {
+            List<PartDTO> partDTOS = partSymptomDTO.getPartDTO();
+            for (PartDTO partDTO : partDTOS) {
+                List<ConceptWithOrderRes> symptom = symptomMap.get(partDTO.getConceptId());
+                if (ListUtil.isNotEmpty(symptom)) {
+                    List<Symptom> symptoms = new ArrayList<>();
+                    for (ConceptWithOrderRes conceptWithOrderRes : symptom) {
+                        Symptom bean = new Symptom();
+                        bean.setConceptId(conceptWithOrderRes.getEndId());
+                        bean.setName(conceptWithOrderRes.getEndName());
+                        bean.setPartConceptId(conceptWithOrderRes.getStartId());
+                        if (descMap.get(conceptWithOrderRes.getEndId()) != null) {
+                            bean.setDesc(descMap.get(conceptWithOrderRes.getEndId()));
+                        }
+                        symptoms.add(bean);
+                    }
+                    partDTO.setSymptomList(symptoms);
+                }
+            }
+        }
+
+        // 如部位无关联的症状,则删除部位
+        for (PartSymptomDTO dto : res) {
+            for (int i = 0; i < dto.getPartDTO().size(); i++) {
+                PartDTO partDTO = dto.getPartDTO().get(i);
+                if (ListUtil.isEmpty(partDTO.getSymptomList())) {
+                    dto.getPartDTO().remove(i--);
+                }
+            }
+        }
+
+        return res;
+    }
+
+
+}

+ 51 - 0
aipt-service/src/main/java/com/diagbot/facade/PatientInfoFacade.java

@@ -0,0 +1,51 @@
+package com.diagbot.facade;
+
+import com.diagbot.enums.LexiconTypeEnum;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.GetTopPatientInfoDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.Concept;
+import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.util.RespDTOUtil;
+import com.diagbot.vo.ConceptBaseVO;
+import com.diagbot.vo.GetTopPatientInfoVO;
+
+/**
+ * @Description: 患者业务逻辑
+ * @author: wangyu
+ * @time: 2018/11/19 13:19
+ */
+@Component
+public class PatientInfoFacade {
+
+	@Autowired
+    private ConceptFacade conceptFacade;
+    @Autowired
+    TranServiceClient tranServiceClient;
+
+    /**
+     * 页面顶部病人医生科室信息查询
+     *
+     * @param getTopPatientInfoVO
+     * @return
+     */
+    public GetTopPatientInfoDTO getTopPatientInfo(@RequestBody GetTopPatientInfoVO getTopPatientInfoVO) {
+        RespDTO<GetTopPatientInfoDTO> respDTO = tranServiceClient.getTopPatientInfo(getTopPatientInfoVO);
+        RespDTOUtil.respNGDealCover(respDTO, "获取页面顶部病人医生科室信息失败");
+
+        GetTopPatientInfoDTO getTopPatientInfoDTO = respDTO.data;
+        
+        ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+        conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
+        conceptBaseVO.setName(getTopPatientInfoDTO.getSelfDeptName());
+        Concept concept = conceptFacade.exist(conceptBaseVO);
+        getTopPatientInfoDTO.setSelfDeptId(concept.getId());
+        
+        return getTopPatientInfoDTO;
+    }
+
+}

+ 493 - 0
aipt-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -0,0 +1,493 @@
+package com.diagbot.facade;
+
+import com.alibaba.fastjson.JSONObject;
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.client.bean.FeatureRate;
+import com.diagbot.client.bean.GdbResponse;
+import com.diagbot.client.bean.HosCodeVO;
+import com.diagbot.client.bean.MedicalIndication;
+import com.diagbot.client.bean.MedicalIndicationDetail;
+import com.diagbot.client.bean.ResponseData;
+import com.diagbot.dto.ConceptPushDTO;
+import com.diagbot.dto.LisResult;
+import com.diagbot.dto.PushDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.SysSetInfoDTO;
+import com.diagbot.entity.Concept;
+import com.diagbot.enums.ConceptTypeEnum;
+import com.diagbot.enums.FeatureTypeEnum;
+import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.enums.LisSourceEnum;
+import com.diagbot.enums.SysTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.FastJsonUtils;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.ParamConvertUtil;
+import com.diagbot.util.RespDTOUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.ConceptBaseVO;
+import com.diagbot.vo.HospitalSetVO;
+import com.diagbot.vo.LisConfigVO;
+import com.diagbot.vo.SearchVo;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/5/7 16:12
+ */
+@Component
+public class PushFacade {
+    @Autowired
+    private ClinicalFacade clinicalFacade;
+    @Autowired
+    private ConceptFacade conceptFacade;
+    @Autowired
+    private TreatmentFacade treatmentFacade;
+    @Autowired
+    private TranServiceClient tranServiceClient;
+
+    /**
+     * 推理接口
+     *
+     * @param searchVo
+     * @return ResponseData
+     */
+    public PushDTO pushInner(SearchVo searchVo) {
+        PushDTO pushDTO = new PushDTO();
+        //是否对接
+        Boolean isConnect = false;
+        if (StringUtil.isNotBlank(searchVo.getHosCode())) {
+            HosCodeVO hosCodeVO = new HosCodeVO();
+            hosCodeVO.setHosCode(searchVo.getHosCode());
+            HospitalSetVO hospitalSetVO = new HospitalSetVO();
+            hospitalSetVO.setHospitalCode(searchVo.getHosCode());
+            hospitalSetVO.setCode("connect");
+            if (searchVo.getSysType() != null) {
+                hospitalSetVO.setSysType(searchVo.getSysType());
+            } else {
+                hospitalSetVO.setSysType(SysTypeEnum.AIPT_SERVICE.getKey());
+            }
+            RespDTO<List<SysSetInfoDTO>> sysSetInfoListRes = tranServiceClient.getSysSetInfoDatas(hospitalSetVO);
+            if (RespDTOUtil.respIsOK(sysSetInfoListRes)) {
+                List<SysSetInfoDTO> sysSetInfoList = sysSetInfoListRes.data;
+                if (ListUtil.isNotEmpty(sysSetInfoList)) {
+                    if (sysSetInfoList.get(0).getValue().equals(1)) {
+                        isConnect = true;
+                    } else {
+                        isConnect = false;
+                    }
+                } else {
+                    isConnect = false;
+                }
+            }
+        }
+
+        //化验转公表项处理
+        if (isConnect) {
+            List<LisResult> lisArr = searchVo.getLisArr();
+            lisArr = addUniqueName(lisArr, searchVo.getHosCode());
+            searchVo.setLisArr(lisArr);
+        }
+        ResponseData data = clinicalFacade.processClinicalData(searchVo);
+
+        String featureType = searchVo.getFeatureType();
+        String[] featureTypes = featureType.split(",|,");
+        Set<String> featureTypeSet = new HashSet(Arrays.asList(featureTypes));
+
+
+        //确定推送科室
+        List<FeatureRate> dis = data.getDis();
+        pushDTO.setDept(getDept(dis));
+
+        //症状 概念列表
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Symptom.getKey()))) {
+            List<FeatureRate> symptom = data.getSymptom();
+            if (ListUtil.isNotEmpty(symptom)) {
+                List<String> nameList = symptom.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
+                if (ListUtil.isNotEmpty(nameList)) {
+                    pushDTO.setSymptom(getConceptDTOList(nameList, LexiconTypeEnum.SYMPTOM.getKey()));
+                }
+            }
+        }
+        //查体 概念列表
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Vital.getKey()))) {
+            List<FeatureRate> vital = data.getVitals();
+            if (ListUtil.isNotEmpty(vital)) {
+                List<String> nameList = vital.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
+                if (ListUtil.isNotEmpty(nameList)) {
+                    pushDTO.setVital(getConceptDTOList(nameList, LexiconTypeEnum.VITAL_INDEX.getKey()));
+                }
+            }
+        }
+        //化验 概念列表-公表项
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Lis.getKey()))) {
+            List<FeatureRate> lis = data.getLabs();
+            if (ListUtil.isNotEmpty(lis)) {
+                List<String> nameList = lis.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
+                if (ListUtil.isNotEmpty(nameList)) {
+                    List<ConceptPushDTO> lisDTO = getConceptDTOList(nameList, LexiconTypeEnum.LIS_TABLES.getKey());
+                    if (isConnect) {
+                        lisDTO = addClientName(lisDTO, searchVo.getHosCode(), ConceptTypeEnum.Lis.getKey());
+                        lisDTO = removeLisDetail(lisDTO);
+                    }
+                    pushDTO.setLab(lisDTO);
+                }
+            }
+        }
+        //辅检 概念列表
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Pacs.getKey()))) {
+            List<FeatureRate> pacs = data.getPacs();
+            if (ListUtil.isNotEmpty(pacs)) {
+                List<String> nameList = pacs.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
+                if (ListUtil.isNotEmpty(nameList)) {
+                    List<ConceptPushDTO> pacsDTO = getConceptDTOList(nameList, LexiconTypeEnum.PACS_ITEMS.getKey());
+                    if (isConnect) {
+                        pacsDTO = addClientName(pacsDTO, searchVo.getHosCode(), ConceptTypeEnum.Pacs.getKey());
+                    }
+                    pushDTO.setPacs(pacsDTO);
+                }
+            }
+        }
+        //诊断 map
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Disease.getKey()))) {
+            if (ListUtil.isNotEmpty(dis)) {
+                List<String> nameList = dis.stream().map(featureRate -> featureRate.getFeatureName()).distinct().collect(Collectors.toList());
+                Map<String, List<ConceptPushDTO>> disMapDTO = new LinkedHashMap<>();
+                Map<String, List<FeatureRate>> disFeatureMap = new LinkedHashMap<>();
+                //警惕
+                Map<String, String> highRiskMap = new HashMap<>();
+                highRiskMap.put("disease", String.join(",", nameList));
+                SearchVo hrSearchVo = new SearchVo();
+                hrSearchVo.setDiag(String.join(",", nameList));
+                GdbResponse graphRes = clinicalFacade.highRiskPageData(hrSearchVo);
+                if (graphRes != null) {
+                    Map<String, String> graphResult = graphRes.getResult();
+                    if (graphResult.size() > 0) {
+                        List<String> hrNameList = Lists.newLinkedList();
+                        for (Map.Entry<String, String> entry : graphResult.entrySet()) {
+                            if (entry.getValue().equals("1")) {
+                                hrNameList.add(entry.getKey());
+                            }
+                        }
+                        if (ListUtil.isNotEmpty(hrNameList)) {
+                            List<ConceptPushDTO> hrDisDTO = getConceptDTOList(hrNameList, LexiconTypeEnum.DIAGNOSIS.getKey());
+                            if (isConnect) {
+                                hrDisDTO = addClientName(hrDisDTO, searchVo.getHosCode(), ConceptTypeEnum.Disease.getKey());
+                            }
+                            disMapDTO.put("警惕", hrDisDTO);
+                        }
+                    }
+                }
+                //诊断分类
+                for (FeatureRate featureRate : dis) {
+                    if (StringUtil.isBlank(featureRate.getDesc())) {
+                        featureRate.setDesc("{\"可能诊断\":\"\"}");
+                    }
+                    Map<String, Object> descMap = FastJsonUtils.getJsonToMap(featureRate.getDesc());
+                    for (String disClass : descMap.keySet()) {
+                        List<FeatureRate> featureRateList = Lists.newLinkedList();
+                        if (disFeatureMap.get(disClass) != null) {
+                            featureRateList = disFeatureMap.get(disClass);
+                        }
+                        featureRateList.add(featureRate);
+                        disFeatureMap.put(disClass, featureRateList);
+                    }
+                }
+                for (Map.Entry<String, List<FeatureRate>> entry : disFeatureMap.entrySet()) {
+                    List<String> nameListByDisClass = entry.getValue().stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
+                    if (ListUtil.isNotEmpty(nameListByDisClass)) {
+                        List<ConceptPushDTO> disDTO = getConceptDTOList(nameListByDisClass, LexiconTypeEnum.DIAGNOSIS.getKey());
+                        if (isConnect) {
+                            disDTO = addClientName(disDTO, searchVo.getHosCode(), ConceptTypeEnum.Disease.getKey());
+                        }
+                        disMapDTO.put(entry.getKey(), disDTO);
+                    }
+                }
+                pushDTO.setDis(disMapDTO);
+            }
+        }
+        //核心指标 list
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Indication.getKey()))) {
+            List<MedicalIndication> medicalIndicationList = data.getMedicalIndications();
+            ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+            if (ListUtil.isNotEmpty(medicalIndicationList)) {
+                for (MedicalIndication medicalIndication : medicalIndicationList) {
+                    medicalIndication.setLibType(LexiconTypeEnum.CORE_INDICATORS.getKey());
+                    medicalIndication.setType(ConceptTypeEnum.Indication.getKey());
+                    //关联概念,增加概念id
+                    conceptBaseVO.setName(medicalIndication.getName());
+                    conceptBaseVO.setLibType(LexiconTypeEnum.CORE_INDICATORS.getKey());
+                    Concept medConcept = conceptFacade.getConcept(conceptBaseVO);
+                    if (medConcept != null) {
+                        medicalIndication.setConceptId(medConcept.getId());
+                    }
+                    if (ListUtil.isNotEmpty(medicalIndication.getDetails())) {
+                        for (MedicalIndicationDetail detail : medicalIndication.getDetails()) {
+                            //量表,增加概念id;其他类型保留图谱返回结果
+                            if (detail.getType().equals(1)) {
+                                JSONObject scaleJson = detail.getContent();
+                                if (null != scaleJson.get("name")) {
+                                    String scaleName = scaleJson.get("name").toString();
+                                    conceptBaseVO.setName(scaleName);
+                                    conceptBaseVO.setLibType(LexiconTypeEnum.GAUGE.getKey());
+                                    Concept scaleConcept = conceptFacade.getConcept(conceptBaseVO);
+                                    scaleJson.put("libType", LexiconTypeEnum.GAUGE.getKey());
+                                    scaleJson.put("type", ConceptTypeEnum.Scale.getKey());
+                                    if (scaleConcept != null) {
+                                        scaleJson.put("conceptId", scaleConcept.getId());
+                                    } else {
+                                        scaleJson.put("conceptId", null);
+                                    }
+                                    detail.setContent(scaleJson);
+                                }
+                            }
+                        }
+                    }
+                }
+                pushDTO.setMedicalIndications(medicalIndicationList);
+            }
+        }
+        return pushDTO;
+    }
+
+    /**
+     * 获取管理评估大数据推理内容
+     *
+     * @param searchVo
+     * @return
+     */
+    public Map<String, JSONObject> getManagementEvaluationContent(SearchVo searchVo) {
+        ResponseData data = clinicalFacade.processClinicalData(searchVo);
+
+        String featureType = searchVo.getFeatureType();
+        String[] featureTypes = featureType.split(",|,");
+        Set<String> featureTypeSet = new HashSet(Arrays.asList(featureTypes));
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_ManagementEvaluation.getKey()))) {
+            return data.getManagementEvaluation();
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * 获取量表推理内容
+     *
+     * @param searchVo
+     * @return
+     */
+    public Map<String, Object> scale(SearchVo searchVo) {
+        Map<String, Object> data = clinicalFacade.scale(searchVo);
+        return data;
+    }
+
+    /**
+     * 获取治疗方案
+     *
+     * @param searchVo
+     * @return
+     */
+    public Map<String, Object> getTreatment(SearchVo searchVo) {
+        ResponseData data = clinicalFacade.processClinicalData(searchVo);
+        Map<String, JSONObject> treat = data.getTreat();
+        if (StringUtil.isBlank(searchVo.getDiseaseName())) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "请输入需获取治疗方案的诊断名称");
+        }
+        Map<String, Object> treatmentMap = treatmentFacade.getTreatment(treat, searchVo.getDiseaseName(), searchVo.getDisType());
+        return treatmentMap;
+    }
+
+    /**
+     * 推理返回概念
+     *
+     * @param nameList
+     * @param libType
+     * @return
+     */
+    public List<ConceptPushDTO> getConceptDTOList(List<String> nameList, Integer libType) {
+        List<Concept> concepts = conceptFacade.getListByNamesAndType(nameList, libType);
+        Map<String, Concept> conceptMap = EntityUtil.makeEntityMap(concepts, "libName");
+        List<ConceptPushDTO> conceptDTOS = Lists.newLinkedList();
+        for (String name : nameList) {
+            ConceptPushDTO conceptDTO = new ConceptPushDTO();
+            conceptDTO.setName(name);
+            conceptDTO.setLibType(libType);
+            conceptDTO.setType(ParamConvertUtil.libConvert2Concept(libType));
+            if (conceptMap.containsKey(name) && conceptMap.get(name) != null) {
+                Concept concept = conceptMap.get(name);
+                conceptDTO.setConceptId(concept.getId());
+            }
+            conceptDTOS.add(conceptDTO);
+        }
+        return conceptDTOS;
+    }
+
+    /**
+     * 根据诊断推送确定科室
+     *
+     * @param dis
+     * @return
+     */
+    public ConceptPushDTO getDept(List<FeatureRate> dis) {
+        String deptName = "";
+        if (ListUtil.isNotEmpty(dis)) {
+            for (FeatureRate featureRate : dis) {
+                if (StringUtil.isNotBlank(featureRate.getExtraProperty())) {
+                    deptName = featureRate.getExtraProperty();
+                    break;
+                }
+            }
+        }
+        //没有推送信息时,默认取全科模板
+        if (StringUtil.isBlank(deptName)) {
+            deptName = "全科";
+        }
+        ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+        conceptBaseVO.setName(deptName);
+        conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
+        ConceptPushDTO deptDTO = new ConceptPushDTO();
+        Concept dept = conceptFacade.getConcept(conceptBaseVO);
+        if (dept == null && deptName.equals("全科") == false) {
+            deptName = "全科";
+            conceptBaseVO.setName(deptName);
+            dept = conceptFacade.getConcept(conceptBaseVO);
+        }
+        if (dept != null) {
+            deptDTO.setName(deptName);
+            deptDTO.setConceptId(dept.getId());
+            deptDTO.setLibType(ConceptTypeEnum.DEPARTMENT.getKey());
+        }
+        return deptDTO;
+    }
+
+    /**
+     * 增加化验公表项
+     *
+     * @param lisResults
+     * @param hosCode
+     * @return
+     */
+    public List<LisResult> addUniqueName(List<LisResult> lisResults, String hosCode) {
+        //化验项转公表内容,参数处理
+        if (ListUtil.isNotEmpty(lisResults)) {
+            List<String> mealNameList = lisResults.stream().map(lisResult -> lisResult.getName()).collect(Collectors.toList());
+            LisConfigVO lisConfigVO = new LisConfigVO();
+            lisConfigVO.setHosCode(hosCode);
+            lisConfigVO.setMealNameList(mealNameList);
+            RespDTO<Map<String, Map<String, String>>> lisConfigRes = tranServiceClient.getLisConfigByMealNameAndHosCode(lisConfigVO);
+            Map<String, Map<String, String>> lisConfigMap = new LinkedHashMap<>();
+            if (RespDTOUtil.respIsOK(lisConfigRes)) {
+                lisConfigMap = lisConfigRes.data;
+            }
+            for (LisResult lisResult : lisResults) {
+                if (!lisResult.getSource().equals(LisSourceEnum.Outer.getKey())) {
+                    continue;
+                }
+                if (lisResult.getDetailName() == null) {
+                    lisResult.setDetailName("");
+                }
+                if (lisConfigMap.get(lisResult.getName()) != null) {
+                    lisResult.setUniqueName(lisConfigMap.get(lisResult.getName()).get(lisResult.getDetailName()));
+                }
+            }
+        }
+        return lisResults;
+    }
+
+    /**
+     * 添加外部名称(调用方)
+     *
+     * @param concepts
+     * @param hosCode
+     * @param type
+     * @return
+     */
+    public List<ConceptPushDTO> addClientName(List<ConceptPushDTO> concepts, String hosCode, Integer type) {
+        HosCodeVO hosCodeVO = new HosCodeVO();
+        hosCodeVO.setHosCode(hosCode);
+        LisConfigVO lisConfigVO = new LisConfigVO();
+        lisConfigVO.setHosCode(hosCode);
+        List<String> uniqueNameList = concepts.stream().map(concept -> concept.getName()).collect(Collectors.toList());
+        lisConfigVO.setUniqueNameList(uniqueNameList);
+        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.setClientName(clientNames.get(0));
+                    }
+                }
+            }
+        } 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.setClientName(clientNames.get(0));
+                    }
+                }
+            }
+        } 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)) {
+                        concept.setClientName(disMap.get(concept.getName()));
+                    }
+                }
+            }
+        }
+        return concepts;
+    }
+
+    /**
+     * 外部化验返回时,公表匹配出套餐,保留套餐,删除细项;否则保留公表
+     *
+     * @param lisDTO
+     * @return
+     */
+    public List<ConceptPushDTO> removeLisDetail(List<ConceptPushDTO> lisDTO) {
+        List<ConceptPushDTO> retLisDTO = Lists.newLinkedList();
+        if (ListUtil.isEmpty(lisDTO)) {
+            return retLisDTO;
+        }
+        List<String> mealNameList = lisDTO.stream().map(lis -> lis.getClientName()).filter(mealName -> mealName != null && mealName != "").distinct().collect(Collectors.toList());
+        List<ConceptPushDTO> mealConceptList = getConceptDTOList(mealNameList, LexiconTypeEnum.LIS_TABLES.getKey());
+        Map<String, ConceptPushDTO> mealConceptMap = EntityUtil.makeEntityMap(mealConceptList, "name");
+        List<String> addedName = Lists.newLinkedList();
+        for (ConceptPushDTO conceptPushDTO : lisDTO) {
+            if (addedName.contains(conceptPushDTO.getName())) {
+                continue;
+            }
+            if (StringUtil.isBlank(conceptPushDTO.getClientName()) || conceptPushDTO.getClientName().equals(conceptPushDTO.getName())) {
+                addedName.add(conceptPushDTO.getName());
+                retLisDTO.add(conceptPushDTO);
+            } else {
+                ConceptPushDTO conceptPushDTOConvert = mealConceptMap.get(conceptPushDTO.getClientName());
+                conceptPushDTOConvert.setClientName(conceptPushDTO.getClientName());
+                addedName.add(conceptPushDTOConvert.getName());
+                retLisDTO.add(conceptPushDTOConvert);
+            }
+        }
+        return retLisDTO;
+    }
+}

+ 0 - 13
aipt-service/src/main/java/com/diagbot/facade/SysLogFacade.java

@@ -1,13 +0,0 @@
-package com.diagbot.facade;
-
-import com.diagbot.service.impl.SysLogServiceImpl;
-import org.springframework.stereotype.Component;
-
-/**
- * @Description: 用户日志业务层
- * @author: gaodm
- * @time: 2018/8/6 9:11
- */
-@Component
-public class SysLogFacade extends SysLogServiceImpl {
-}

+ 239 - 0
aipt-service/src/main/java/com/diagbot/facade/TreatmentFacade.java

@@ -0,0 +1,239 @@
+package com.diagbot.facade;
+
+import com.alibaba.fastjson.JSONObject;
+import com.diagbot.client.bean.AdverseReaction;
+import com.diagbot.client.bean.Medicition;
+import com.diagbot.client.bean.MedicitionClass;
+import com.diagbot.dto.ConceptDetailDTO;
+import com.diagbot.dto.ConceptRes;
+import com.diagbot.entity.Concept;
+import com.diagbot.entity.ConceptDetail;
+import com.diagbot.entity.wrapper.ConceptWrapper;
+import com.diagbot.enums.ConceptTypeEnum;
+import com.diagbot.enums.DisTypeEnum;
+import com.diagbot.enums.LexiconRSTypeEnum;
+import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.enums.PositionTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.FastJsonUtils;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.ConceptBaseVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Description:治疗方案业务处理
+ * @Author:zhaops
+ * @time: 2019/5/8 17:16
+ */
+@Component
+public class TreatmentFacade {
+    @Autowired
+    ConceptFacade conceptFacade;
+    @Autowired
+    ConceptDetailFacade conceptDetailFacade;
+
+    /**
+     * 获取治疗方案
+     *
+     * @param
+     * @return
+     */
+    public Map<String, Object> getTreatment(Map<String, JSONObject> treatmentMap, String diseaseName, Integer disType) {
+        Map<String, Object> retMap = new LinkedHashMap<>();
+        List<String> conceptNameList = Lists.newLinkedList();
+        conceptNameList.add(diseaseName);
+        ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+        conceptBaseVO.setName(diseaseName);
+        conceptBaseVO.setLibType(LexiconTypeEnum.DIAGNOSIS.getKey());
+        Concept disease = conceptFacade.exist(conceptBaseVO);
+        if (disease == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "诊断不存在");
+        }
+        if (treatmentMap == null || treatmentMap.size() == 0) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "未找到治疗方案");
+        }
+        if (!treatmentMap.containsKey(diseaseName)) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "诊断名不在诊断列表中");
+        }
+        //治疗方案对应诊断
+        retMap.put("diseaseName", diseaseName);
+
+        //获取知识图谱治疗方案
+        JSONObject treatmentJson = treatmentMap.get(diseaseName);
+        if (treatmentJson == null || treatmentJson.isEmpty()) {
+            return retMap;
+        }
+        //推荐药物
+        List<MedicitionClass> drugsList = FastJsonUtils.getJsonToListByKey(treatmentJson.toString(), "treatment", MedicitionClass.class);
+        //不良反应
+        List<AdverseReaction> adverseReactionList = FastJsonUtils.getJsonToListByKey(treatmentJson.toString(), "adverseEvent", AdverseReaction.class);
+        if (ListUtil.isNotEmpty(drugsList)) {
+            //药品大类
+            List<String> cateBigNameList = drugsList.stream().map(drugs -> drugs.getBigdrugsName()).collect(Collectors.toList());
+            conceptNameList.addAll(cateBigNameList);
+            //药品小类
+            List<String> cateSmallNameList = drugsList.stream().map(drugs -> drugs.getSubdrugsName()).collect(Collectors.toList());
+            conceptNameList.addAll(cateSmallNameList);
+            //药品
+            List<Medicition> medicitionTotalList = Lists.newLinkedList();
+            for (MedicitionClass medicitionClass : drugsList) {
+                if (medicitionClass.getMedicitionsList() != null) {
+                    medicitionTotalList.addAll(medicitionClass.getMedicitionsList());
+                }
+            }
+            List<String> drugNameList = medicitionTotalList.stream().map(m -> m.getMedicitionName()).collect(Collectors.toList());
+            conceptNameList.addAll(drugNameList);
+        }
+        if (ListUtil.isNotEmpty(adverseReactionList)) {
+            List<String> adNameList = adverseReactionList.stream().map(a -> a.getName()).collect(Collectors.toList());
+            conceptNameList.addAll(adNameList);
+        }
+        //概念
+        List<Concept> conceptList=conceptFacade.getListByNames(conceptNameList);
+        //概念map
+        Map<String, Map<Long, Concept>> conceptMap = conceptList2Map(conceptList);
+        //说明信息是否存在
+        Map<String, Map<Long, List<ConceptDetail>>> hasConDetailMap = conceptDetailFacade.hasConDetail(conceptList);
+
+        //一般治疗&&手术治疗
+        if (hasConDetailMap != null && hasConDetailMap.get(diseaseName) != null && ListUtil.isNotEmpty(hasConDetailMap.get(diseaseName).get(Long.valueOf(LexiconTypeEnum.DIAGNOSIS.getKey())))) {
+            List<ConceptDetail> diseaseConDetailList = hasConDetailMap.get(diseaseName).get(Long.valueOf(LexiconTypeEnum.DIAGNOSIS.getKey()));
+            for (ConceptDetail conceptDetail : diseaseConDetailList) {
+                ConceptDetailDTO conceptDetailDTO = new ConceptDetailDTO();
+                List<String> positionList = Arrays.asList(conceptDetail.getPosition().split(",|,"));
+                if (positionList.contains(String.valueOf(PositionTypeEnum.T3.getKey())) && retMap.get("commonTreatment") == null) {
+                    BeanUtil.copyProperties(conceptDetail, conceptDetailDTO);
+                    retMap.put("commonTreatment", conceptDetailDTO);
+                }
+                if (positionList.contains(String.valueOf(PositionTypeEnum.T4.getKey())) && retMap.get("surgeryTreatment") == null) {
+                    BeanUtil.copyProperties(conceptDetail, conceptDetailDTO);
+                    retMap.put("surgeryTreatment", conceptDetailDTO);
+                }
+            }
+        } else {
+            retMap.put("commonTreatment", null);
+            retMap.put("surgeryTreatment", null);
+        }
+
+        if (ListUtil.isNotEmpty(drugsList)) {
+            for (MedicitionClass medicitionClass : drugsList) {
+                if (conceptMap != null  && conceptMap.get(medicitionClass.getBigdrugsName()) != null && conceptMap.get(medicitionClass.getBigdrugsName()).containsKey(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey()))) {
+                    Concept cateBigConcept = conceptMap.get(medicitionClass.getBigdrugsName()).get(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey()));
+                    if (cateBigConcept != null) {
+                        medicitionClass.setBigdrugsConceptId(cateBigConcept.getId());
+                        if (hasConDetailMap != null && hasConDetailMap.get(cateBigConcept.getLibName()) != null && hasConDetailMap.get(cateBigConcept.getLibName()).containsKey(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey()))) {
+                            medicitionClass.setShowInfo("1");
+                        } else {
+                            medicitionClass.setShowInfo("0");
+                        }
+                    }
+                }
+                medicitionClass.setBigdrgusLibType(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey());
+                medicitionClass.setBigdrugsType(ConceptTypeEnum.Drug_Category_Big.getKey());
+                if (conceptMap != null && conceptMap.get(medicitionClass.getSubdrugsName()) != null && conceptMap.get(medicitionClass.getSubdrugsName()).containsKey(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey()))) {
+                    Concept cateSmallConcept = conceptMap.get(medicitionClass.getSubdrugsName()).get(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey()));
+                    if (cateSmallConcept != null) {
+                        medicitionClass.setSubdrugsConceptId(cateSmallConcept.getId());
+                    }
+                }
+                medicitionClass.setSubdrugsLibType(LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey());
+                medicitionClass.setSubdrugsType(ConceptTypeEnum.Drug_Category_Small.getKey());
+
+                LinkedList<Medicition> medicitionList = medicitionClass.getMedicitionsList();
+                for (Medicition medicition : medicitionList) {
+                    if (conceptMap != null && conceptMap.get(medicition.getMedicitionName()) != null && conceptMap.get(medicition.getMedicitionName()).containsKey(Long.valueOf(LexiconTypeEnum.DRUGS.getKey()))) {
+                        Concept drugConcept = conceptMap.get(medicition.getMedicitionName()).get(Long.valueOf(LexiconTypeEnum.DRUGS.getKey()));
+                        if (drugConcept != null) {
+                            medicition.setConceptId(drugConcept.getId());
+                        }
+                    }
+                    medicition.setLibType(LexiconTypeEnum.DRUGS.getKey());
+                    medicition.setType(ConceptTypeEnum.Drug.getKey());
+                    if (hasConDetailMap != null &&hasConDetailMap.get(medicition.getMedicitionName()) != null && hasConDetailMap.get(medicition.getMedicitionName()).containsKey(Long.valueOf(LexiconTypeEnum.DRUGS.getKey()))) {
+                        medicition.setShowInfo("1");
+                    } else {
+                        medicition.setShowInfo("0");
+                    }
+                }
+                medicitionClass.setMedicitionsList(medicitionList);
+            }
+        }
+        retMap.put("treatment", drugsList);
+
+        //判断是否慢病,慢病增加回访时间,上次用药,不良反应
+        if (disType != null && disType.equals(DisTypeEnum.CHRONIC.getKey())) {
+            //验证是否慢病
+            conceptBaseVO.setName("慢病");
+            conceptBaseVO.setLibType(LexiconTypeEnum.TYPES_OF_DISEASE.getKey());
+            Concept chronicConcept = conceptFacade.exist(conceptBaseVO);
+            ConceptWrapper conceptWrapper = new ConceptWrapper();
+            conceptWrapper.setStartId(disease.getId());
+            conceptWrapper.setStartName(diseaseName);
+            conceptWrapper.setStartType(LexiconTypeEnum.DIAGNOSIS.getKey());
+            conceptWrapper.setEndId(chronicConcept.getId());
+            conceptWrapper.setEndName(chronicConcept.getLibName());
+            conceptWrapper.setEndType(LexiconTypeEnum.TYPES_OF_DISEASE.getKey());
+            conceptWrapper.setRelationType(LexiconRSTypeEnum.INCLUDE_OF.getKey());
+            List<ConceptRes> conceptResList = conceptFacade.getConcept(conceptWrapper);
+            Boolean isChronic = ListUtil.isNotEmpty(conceptResList);
+            if (isChronic) {
+                //慢病,增加回访时间,暂时前端写死, 以后由只是图谱返回
+                retMap.put("followUp", null);
+                //上次用药-icss层处理
+                retMap.put("drugHistory", null);
+                //不良反应
+                for (AdverseReaction adverseReaction : adverseReactionList) {
+                    if (conceptMap != null && conceptMap.get(adverseReaction.getName()) != null && conceptMap.get(adverseReaction.getName()).containsKey(Long.valueOf(LexiconTypeEnum.SIDE_EFFECTS.getKey()))) {
+                        Concept adConcept = conceptMap.get(adverseReaction.getName()).get(Long.valueOf(LexiconTypeEnum.SIDE_EFFECTS.getKey()));
+                        if (adConcept != null) {
+                            adverseReaction.setConceptId(adConcept.getId());
+                        }
+                    }
+                    adverseReaction.setLibType(LexiconTypeEnum.SIDE_EFFECTS.getKey());
+                    adverseReaction.setType(ConceptTypeEnum.SIDE_EFFECTS.getKey());
+                    if (hasConDetailMap != null && hasConDetailMap.get(adverseReaction.getName()) != null && hasConDetailMap.get(adverseReaction.getName()).containsKey(Long.valueOf(LexiconTypeEnum.SIDE_EFFECTS.getKey()))) {
+                        adverseReaction.setShowInfo("1");
+                    } else {
+                        adverseReaction.setShowInfo("0");
+                    }
+                }
+                retMap.put("adverseReactions", adverseReactionList);
+            }
+        }
+        return retMap;
+    }
+
+    /**
+     * 转换概念list到map  Map<概念名称,Map<词性,概念对象>>
+     *
+     * @param conceptList
+     * @return
+     */
+    public Map<String, Map<Long, Concept>> conceptList2Map(List<Concept> conceptList) {
+        Map<String, Map<Long, Concept>> retMap = new LinkedHashMap<>();
+        Map<Long, Concept> retSubMap = new LinkedHashMap<>();
+        for (Concept concept : conceptList) {
+            if (retMap.containsKey(concept.getLibName())) {
+                retSubMap = retMap.get(concept.getLibName());
+            }
+            if (retSubMap == null) {
+                retSubMap = new LinkedHashMap<>();
+            }
+            retSubMap.put(concept.getLibType(), concept);
+            retMap.put(concept.getLibName(), retSubMap);
+            retSubMap = new LinkedHashMap<>();
+        }
+        return retMap;
+    }
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.ConceptDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 提示信息明细表 Mapper 接口
+ * </p>
+ *
+ * @author zhaops
+ * @since 2019-05-06
+ */
+public interface ConceptDetailMapper extends BaseMapper<ConceptDetail> {
+
+}

+ 68 - 0
aipt-service/src/main/java/com/diagbot/mapper/ConceptMapper.java

@@ -0,0 +1,68 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.dto.ConceptBaseDTO;
+import com.diagbot.dto.ConceptRes;
+import com.diagbot.dto.ConceptRetrievalDTO;
+import com.diagbot.dto.ConceptWithOrderRes;
+import com.diagbot.dto.RetrievalDTO;
+import com.diagbot.entity.Concept;
+import com.diagbot.entity.wrapper.ConceptWrapper;
+import com.diagbot.vo.ConceptBaseVO;
+import com.diagbot.vo.ConceptFindVO;
+import com.diagbot.vo.RetrievalVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 概念表 Mapper 接口
+ * </p>
+ *
+ * @author zhaops
+ * @since 2019-05-06
+ */
+public interface ConceptMapper extends BaseMapper<Concept> {
+
+    /**
+     * 获取概念-关系-概念
+     *
+     * @param conceptWrapper 查询参数
+     * @return 起点术语和终点术语
+     */
+    List<ConceptRes> getConcept(ConceptWrapper conceptWrapper);
+
+    /**
+     * 获取带排序概念-关系-概念
+     *
+     * @param conceptWrapper 查询参数
+     * @return 起点术语和终点术语以及排序号
+     */
+    List<ConceptWithOrderRes> getConceptWithOrder(ConceptWrapper conceptWrapper);
+
+    /**
+     * 概念检索
+     *
+     * @param retrievalVO
+     * @return
+     */
+    List<ConceptRetrievalDTO> retrievalConcept(RetrievalVO retrievalVO);
+
+    /**
+     * 静态知识检索
+     *
+     * @param retrievalVO
+     * @return
+     */
+    List<RetrievalDTO> staticKnowledge(RetrievalVO retrievalVO);
+
+    List<ConceptBaseDTO> getConceptConMap(ConceptFindVO conceptFindVO);
+
+    /**
+     * 获得诊断依据问题词的标准词
+     * @return
+     */
+    List<String> getStandWord();
+
+    public List<ConceptBaseDTO> indexConcept(ConceptBaseVO conceptBaseVO);
+}

+ 3 - 2
icss-service/src/main/java/com/diagbot/mapper/DisScaleMapper.java

@@ -1,8 +1,9 @@
 package com.diagbot.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.diagbot.dto.DisScaleDTO;
+import com.diagbot.dto.ScaleIndexDTO;
 import com.diagbot.entity.DisScale;
+import com.diagbot.vo.ScaleIndexVO;
 
 import java.util.List;
 
@@ -16,5 +17,5 @@ import java.util.List;
  */
 public interface DisScaleMapper extends BaseMapper<DisScale> {
 
-    public List<DisScaleDTO> getDisScaleFac(Long disId);
+    public List<ScaleIndexDTO> indexScale(ScaleIndexVO scaleIndexVO);
 }

+ 2 - 2
icssman-service/src/main/java/com/diagbot/mapper/DisTypeMapper.java

@@ -1,7 +1,7 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.DisType;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.DisType;
 
 /**
  * <p>
@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * </p>
  *
  * @author zhoutg
- * @since 2019-03-28
+ * @since 2019-03-08
  */
 public interface DisTypeMapper extends BaseMapper<DisType> {
 

+ 1 - 2
icss-service/src/main/java/com/diagbot/mapper/DisclaimerInformationMapper.java

@@ -1,12 +1,11 @@
 package com.diagbot.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.dto.DisclaimerInformationDTO;
 import com.diagbot.entity.DisclaimerInformation;
 
 import java.util.List;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
 /**
  * <p>
  * 免责申明详情 Mapper 接口

+ 27 - 0
aipt-service/src/main/java/com/diagbot/mapper/EvaluationMapper.java

@@ -0,0 +1,27 @@
+package com.diagbot.mapper;
+
+import com.diagbot.dto.EvaluationDTO;
+import com.diagbot.entity.Evaluation;
+import com.diagbot.vo.EvaluationDiseaseNameVO;
+
+import java.util.List;
+
+import javax.validation.Valid;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 管理与评估模板表 Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2019-05-06
+ */
+public interface EvaluationMapper extends BaseMapper<Evaluation> {
+
+	List<EvaluationDTO> getEvaluationModule(@Param("evaluationModule") EvaluationDiseaseNameVO evaluationdiseaseNameVO);
+
+}

+ 26 - 0
aipt-service/src/main/java/com/diagbot/mapper/IndexConfigMapper.java

@@ -0,0 +1,26 @@
+package com.diagbot.mapper;
+
+import com.diagbot.dto.IndexConfigDTO;
+import com.diagbot.entity.IndexConfig;
+import com.diagbot.vo.IndexConfigdiseaseNameVO;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 指标配置 Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2019-05-06
+ */
+public interface IndexConfigMapper extends BaseMapper<IndexConfig> {
+
+	List<IndexConfigDTO> getIndexConfig(@Param("indexConfig") Map<String, Object> indexConfigMap);
+
+}

+ 0 - 0
icss-service/src/main/java/com/diagbot/mapper/ScaleContentMapper.java


Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio