ソースを参照

Merge remote-tracking branch 'origin/master' into local

liuqq 6 年 前
コミット
821184288b
100 ファイル変更3671 行追加399 行削除
  1. 20 0
      aipt-service/src/main/java/com/diagbot/client/AIServiceClient.java
  2. 53 0
      aipt-service/src/main/java/com/diagbot/client/AlgorithmClassify.java
  3. 202 0
      aipt-service/src/main/java/com/diagbot/client/Feature.java
  4. 159 0
      aipt-service/src/main/java/com/diagbot/client/bean/Constants.java
  5. 43 0
      aipt-service/src/main/java/com/diagbot/client/bean/FeatureRate.java
  6. 190 0
      aipt-service/src/main/java/com/diagbot/client/bean/Response.java
  7. 98 0
      aipt-service/src/main/java/com/diagbot/client/bean/ResponseData.java
  8. 273 0
      aipt-service/src/main/java/com/diagbot/client/bean/SearchData.java
  9. 132 0
      aipt-service/src/main/java/com/diagbot/client/bean/Status.java
  10. 23 0
      aipt-service/src/main/java/com/diagbot/client/hystrix/AIServiceHystrix.java
  11. 22 0
      aipt-service/src/main/java/com/diagbot/dto/LisResult.java
  12. 64 0
      aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java
  13. 64 0
      aipt-service/src/main/java/com/diagbot/vo/SearchVo.java
  14. 46 0
      aipt-service/src/main/java/com/diagbot/web/ClinicalController.java
  15. 3 0
      config-server/src/main/resources/shared/aipt-service-dev.yml
  16. 3 0
      config-server/src/main/resources/shared/aipt-service-local.yml
  17. 3 0
      config-server/src/main/resources/shared/aipt-service-pro.yml
  18. 3 0
      config-server/src/main/resources/shared/aipt-service-test.yml
  19. 7 1
      config-server/src/main/resources/shared/application-dev.yml
  20. 7 1
      config-server/src/main/resources/shared/application-local.yml
  21. 7 1
      config-server/src/main/resources/shared/application-pro.yml
  22. 7 1
      config-server/src/main/resources/shared/application-test.yml
  23. 0 12
      config-server/src/main/resources/shared/gateway-service-dev.yml
  24. 0 12
      config-server/src/main/resources/shared/gateway-service-local.yml
  25. 0 12
      config-server/src/main/resources/shared/gateway-service-pro.yml
  26. 8 13
      config-server/src/main/resources/shared/gateway-service-test.yml
  27. 6 0
      config-server/src/main/resources/shared/knowledgeman-service-dev.yml
  28. 6 0
      config-server/src/main/resources/shared/knowledgeman-service-local.yml
  29. 6 0
      config-server/src/main/resources/shared/knowledgeman-service-pro.yml
  30. 8 2
      config-server/src/main/resources/shared/knowledgeman-service-test.yml
  31. 683 0
      docs/07.20190318对接相关修改/icss_tran.sql
  32. 20 0
      icss-service/src/main/java/com/diagbot/client/AiptServiceClient.java
  33. 4 0
      icss-service/src/main/java/com/diagbot/client/BigDataServiceClient.java
  34. 23 0
      icss-service/src/main/java/com/diagbot/client/hystrix/AiptServiceHystrix.java
  35. 8 0
      icss-service/src/main/java/com/diagbot/client/hystrix/BigDataServiceHystrix.java
  36. 2 1
      icss-service/src/main/java/com/diagbot/dto/EMRIntroduceDetailDTO.java
  37. 16 0
      icss-service/src/main/java/com/diagbot/dto/IntroduceDetailDTO.java
  38. 1 0
      icss-service/src/main/java/com/diagbot/dto/ModuleDetailDTO.java
  39. 2 2
      icss-service/src/main/java/com/diagbot/enums/DisTypeEnum.java
  40. 23 19
      icss-service/src/main/java/com/diagbot/facade/BuriedSomeStatisticalFacade.java
  41. 6 1
      icss-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java
  42. 9 3
      icss-service/src/main/java/com/diagbot/facade/LisExcelResFacade.java
  43. 4 0
      icss-service/src/main/java/com/diagbot/facade/ModuleFacade.java
  44. 144 103
      icss-service/src/main/java/com/diagbot/facade/PushFacade.java
  45. 13 8
      icss-service/src/main/java/com/diagbot/facade/TreatmentFacade.java
  46. 15 0
      icss-service/src/main/java/com/diagbot/vo/EMRIntroduceInnerVO.java
  47. 2 2
      icss-service/src/main/java/com/diagbot/vo/EMRIntroduceVO.java
  48. 2 0
      icss-service/src/main/java/com/diagbot/vo/LisExcelWrapperVO.java
  49. 3 2
      icss-service/src/main/java/com/diagbot/web/EMRController.java
  50. 3 1
      icss-service/src/main/java/com/diagbot/web/PushController.java
  51. 2 2
      icss-service/src/main/resources/mapper/InquiryDetailMapper.xml
  52. 5 0
      icssman-service/src/main/java/com/diagbot/dto/GetModuleDetailInfoDTO.java
  53. 5 0
      icssman-service/src/main/java/com/diagbot/entity/ModuleDetail.java
  54. 40 14
      icssman-service/src/main/java/com/diagbot/facade/DeptInfoFacade.java
  55. 12 1
      icssman-service/src/main/java/com/diagbot/facade/DeptVitalFacade.java
  56. 1 0
      icssman-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java
  57. 3 0
      icssman-service/src/main/java/com/diagbot/facade/ModuleDetailFacade.java
  58. 2 1
      icssman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java
  59. 1 0
      icssman-service/src/main/java/com/diagbot/facade/QuestionUsualFacade.java
  60. 3 3
      icssman-service/src/main/java/com/diagbot/facade/RetrievalFacade.java
  61. 8 1
      icssman-service/src/main/java/com/diagbot/mapper/DeptInfoMapper.java
  62. 8 0
      icssman-service/src/main/java/com/diagbot/service/DeptInfoService.java
  63. 5 0
      icssman-service/src/main/java/com/diagbot/service/impl/DeptInfoServiceImpl.java
  64. 1 1
      icssman-service/src/main/java/com/diagbot/vo/AddModuleDetailVO.java
  65. 6 1
      icssman-service/src/main/java/com/diagbot/vo/DVDetailVO.java
  66. 1 0
      icssman-service/src/main/java/com/diagbot/vo/QuestionPageVO.java
  67. 6 2
      icssman-service/src/main/java/com/diagbot/web/DeptVitalController.java
  68. 1 1
      icssman-service/src/main/java/com/diagbot/web/ModuleInfoController.java
  69. 2 1
      icssman-service/src/main/java/com/diagbot/web/QuestionUsualController.java
  70. 13 0
      icssman-service/src/main/resources/mapper/DeptInfoMapper.xml
  71. 2 2
      icssman-service/src/main/resources/mapper/DeptVitalMapper.xml
  72. 8 2
      icssman-service/src/main/resources/mapper/QuestionInfoMapper.xml
  73. 4 1
      icssman-service/src/main/resources/mapper/QuestionUsualMapper.xml
  74. 1 1
      icssman-service/src/main/resources/mapper/RetrievalMapper.xml
  75. 76 76
      knowledge-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java
  76. 6 2
      knowledge-service/src/main/java/com/diagbot/dto/ConceptDTO.java
  77. 5 0
      knowledge-service/src/main/java/com/diagbot/dto/LibraryInfoDTO.java
  78. 3 13
      knowledge-service/src/main/java/com/diagbot/dto/MedicalDTO.java
  79. 49 0
      knowledge-service/src/main/java/com/diagbot/dto/RelationDTO.java
  80. 56 0
      knowledge-service/src/main/java/com/diagbot/entity/LexiconRelationship.java
  81. 196 0
      knowledge-service/src/main/java/com/diagbot/entity/LibraryDetail.java
  82. 171 0
      knowledge-service/src/main/java/com/diagbot/entity/LibraryInfo.java
  83. 48 44
      knowledge-service/src/main/java/com/diagbot/entity/Medical.java
  84. 78 0
      knowledge-service/src/main/java/com/diagbot/entity/Relation.java
  85. 24 22
      knowledge-service/src/main/java/com/diagbot/facade/ConceptFacade.java
  86. 17 3
      knowledge-service/src/main/java/com/diagbot/facade/LibraryInfoFacade.java
  87. 12 5
      knowledge-service/src/main/java/com/diagbot/facade/MedicalFacade.java
  88. 140 0
      knowledge-service/src/main/java/com/diagbot/facade/RelationFacade.java
  89. 31 0
      knowledge-service/src/main/java/com/diagbot/facade/RelationshipFacade.java
  90. 18 0
      knowledge-service/src/main/java/com/diagbot/mapper/LexiconRelationshipMapper.java
  91. 25 0
      knowledge-service/src/main/java/com/diagbot/mapper/LibraryDetailMapper.java
  92. 25 0
      knowledge-service/src/main/java/com/diagbot/mapper/LibraryInfoMapper.java
  93. 2 2
      knowledge-service/src/main/java/com/diagbot/mapper/MedicalMapper.java
  94. 26 0
      knowledge-service/src/main/java/com/diagbot/mapper/RelationMapper.java
  95. 18 0
      knowledge-service/src/main/java/com/diagbot/service/LexiconRelationshipService.java
  96. 19 0
      knowledge-service/src/main/java/com/diagbot/service/LibraryDetailService.java
  97. 19 0
      knowledge-service/src/main/java/com/diagbot/service/LibraryInfoService.java
  98. 1 1
      knowledge-service/src/main/java/com/diagbot/service/MedicalService.java
  99. 20 0
      knowledge-service/src/main/java/com/diagbot/service/RelationService.java
  100. 0 0
      knowledge-service/src/main/java/com/diagbot/service/impl/LexiconRelationshipServiceImpl.java

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

@@ -0,0 +1,20 @@
+package com.diagbot.client;
+
+import com.diagbot.client.bean.Response;
+import com.diagbot.client.bean.ResponseData;
+import com.diagbot.vo.SearchVo;
+import com.diagbot.client.hystrix.AIServiceHystrix;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2018/11/20 13:15
+ */
+@FeignClient(name = "AI", url = "${ai.server.address}", fallback = AIServiceHystrix.class)
+public interface AIServiceClient {
+    @PostMapping(value = "/push-web/algorithm/neural")
+    Response<ResponseData> bayesPageData(@RequestBody SearchVo searchVo);
+}

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

@@ -0,0 +1,53 @@
+package com.diagbot.client;
+
+/**
+ * @Auther: fyeman
+ * @Date: 2018/7/19/019 10:37
+ * @Description:
+ */
+public enum AlgorithmClassify {
+    NEURAL("0"), BAYES("1"), EMERGENCY_NEURAL("2"), OUTPATIENT_NEURAL("3"),
+    NEURAL_SYMPTOM("11"),
+    NEURAL_DIAG("21"),
+    NEURAL_VITAL("31"),
+    NEURAL_LIS("41"),
+    NEURAL_PACS("51"),
+    NEURAL_DIAG_SYMPTOM("111"),
+    NEURAL_DIAG_VITAL("131"),
+    NEURAL_DIAG_LIS("141"),
+    NEURAL_DIAG_PACS("151");
+
+    private String value;
+
+    AlgorithmClassify(String value) {
+        this.value = value;
+    }
+
+    public String toString() {
+        return value;
+    }
+
+    public static AlgorithmClassify parse(String value) {
+        switch (value) {
+            case "11":
+                return AlgorithmClassify.NEURAL_SYMPTOM;
+            case "21":
+                return AlgorithmClassify.NEURAL_DIAG;
+            case "31":
+                return AlgorithmClassify.NEURAL_VITAL;
+            case "41":
+                return AlgorithmClassify.NEURAL_LIS;
+            case "51":
+                return AlgorithmClassify.NEURAL_PACS;
+            case "111":
+                return AlgorithmClassify.NEURAL_DIAG_SYMPTOM;
+            case "131":
+                return AlgorithmClassify.NEURAL_DIAG_VITAL;
+            case "141":
+                return AlgorithmClassify.NEURAL_DIAG_LIS;
+            case "151":
+                return AlgorithmClassify.NEURAL_DIAG_PACS;
+        }
+        return AlgorithmClassify.NEURAL_DIAG;
+    }
+}

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

@@ -0,0 +1,202 @@
+package com.diagbot.client;
+
+import java.io.Serializable;
+
+/**
+ * @Title: Feature.java
+ * @Package: com.zjlantone.nlp.web.doc.dao.model
+ * @Description: 数据库操作接口类
+ * @author: 楼辉荣
+ * @date: 2016年8月8日 下午17:16:23
+ * @version: V1.0
+ */
+
+@SuppressWarnings("serial")
+public class Feature implements Serializable {
+    /****/
+    private Long id;
+    /****/
+    private String rdn = "";
+    /****/
+    private String sex;
+    /****/
+    private int age;
+
+    private String partbody = "";
+
+    /****/
+    private String featureName = "";
+
+    /****/
+    private String featureType = "";
+
+    //是否推送
+    private String isPush = "0";
+
+    /**
+     * 特征顺序号
+     **/
+    private int sn;
+
+    /****/
+    private String negative = "";
+
+    private float duration;
+
+    private String property;
+
+    /****/
+    private Float threshold;
+
+    /****/
+    private String tfIdf;
+
+    /**
+     * 区分住院门诊
+     **/
+    private String resourceType;
+
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getId() {
+        return this.id;
+    }
+
+    public void setRdn(String rdn) {
+        this.rdn = rdn;
+    }
+
+    public String getRdn() {
+        return this.rdn;
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex;
+    }
+
+    public String getSex() {
+        return this.sex;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    public int getAge() {
+        return this.age;
+    }
+
+    public void setFeatureName(String featureName) {
+        this.featureName = featureName;
+    }
+
+    public String getFeatureName() {
+        return this.featureName;
+    }
+
+    public void setFeatureType(String featureType) {
+        this.featureType = featureType;
+    }
+
+    public String getFeatureType() {
+        return this.featureType;
+    }
+
+    public String getIsPush() {
+        return isPush;
+    }
+
+    public void setIsPush(String isPush) {
+        this.isPush = isPush;
+    }
+
+    public int getSn() {
+        return sn;
+    }
+
+    public void setSn(int sn) {
+        this.sn = sn;
+    }
+
+    public void setNegative(String negative) {
+        this.negative = negative;
+    }
+
+    public String getNegative() {
+        return this.negative;
+    }
+
+    public String getPartbody() {
+        return partbody;
+    }
+
+    public void setPartbody(String partbody) {
+        this.partbody = partbody;
+    }
+
+    public float getDuration() {
+        return duration;
+    }
+
+    public void setDuration(float duration) {
+        this.duration = duration;
+    }
+
+    public String getProperty() {
+        return property;
+    }
+
+    public void setProperty(String property) {
+        this.property = property;
+    }
+
+    public void setThreshold(Float threshold) {
+        this.threshold = threshold;
+    }
+
+    public Float getThreshold() {
+        return this.threshold;
+    }
+
+    public void setTfIdf(String tfIdf) {
+        this.tfIdf = tfIdf;
+    }
+
+    public String getTfIdf() {
+        return this.tfIdf;
+    }
+
+    public String getResourceType() {
+        return resourceType;
+    }
+
+    public void setResourceType(String resourceType) {
+        this.resourceType = resourceType;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        Feature feature = (Feature) o;
+        if (id != feature.id) {
+            return false;
+        }
+        return rdn.equals(feature.rdn) && partbody.equals(feature.partbody) && featureName.equals(feature.featureName)
+                && featureType.equals(feature.featureType) && negative.equals(feature.negative);
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id.hashCode();
+        result = 31 * result + rdn.hashCode() + partbody.hashCode() + featureName.hashCode() + featureType.hashCode() + negative.hashCode();
+        return result;
+    }
+}

+ 159 - 0
aipt-service/src/main/java/com/diagbot/client/bean/Constants.java

@@ -0,0 +1,159 @@
+/**
+ * @Company: 杭州朗通信息技术有限公司
+ * @Department: 系统软件部
+ * @Description: 朗通智能辅助诊疗系统
+ * @Address: 浙江省杭州市西湖区西斗门路3号 天堂软件园D-7B
+ */
+package com.diagbot.client.bean;
+
+/**
+ * @Title: Constants.java
+ * @Package org.diagbot.public
+ * @Description: 通用常数接口定义
+ * @author 楼辉荣(Fyeman)
+ * @date 2015年4月23日 下午11:25:37
+ * @version V1.0
+ */
+public interface Constants {
+    /**
+     * 操作名称
+     */
+    String OP_NAME = "op";
+    /**
+     * 消息key
+     */
+    String MESSAGE = "message";
+    /**
+     * 错误key
+     */
+    String ERROR = "error";
+    /**
+     * 上个页面地址
+     */
+    String BACK_URL = "BackURL";
+    String IGNORE_BACK_URL = "ignoreBackURL";
+    /**
+     * 当前请求的地址 带参数
+     */
+    String CURRENT_URL = "currentURL";
+    /**
+     * 当前请求的地址 不带参数
+     */
+    String NO_QUERYSTRING_CURRENT_URL = "noQueryStringCurrentURL";
+    /**
+     * 上下文
+     */
+    String CONTEXT_PATH = "ctx";
+    /**
+     * 当前登录的用户
+     */
+    String CURRENT_APPLICATION = "c_app";
+    String CURRENT_USER = "c_user";
+    String CURRENT_USERNAME = "username";
+    String USER_MENUS = "menus";
+
+    /**
+     * 管理控制台应用ID=0
+     */
+    long ADMIN_APPLICATION = 0;
+    /**
+     * 一级菜单grade标识
+     */
+    int FIRST_MENU = 1;
+    /**
+     * 二级菜单grade标识
+     */
+    int SECOND_MENU = 2;
+    /**
+     * 操作按钮等级标识
+     */
+    int MENU_GRADE = 3;
+    /**
+     * 最高级资源grade标识
+     */
+    int TOP_REC = 0;
+    /**
+     * 编码方式
+     */
+    String ENCODING = "UTF-8";
+    /**
+     * 系统用户状态--启用
+     */
+    int USER_STATUS_UNLOCK = 1;
+    /**
+     * 系统用户状态--禁用
+     */
+    int USER_STATUS_LOCK = 0;
+    /**
+     * 通用值0
+     */
+    int COMMON_INT_0 = 0;
+    /**
+     * 通用值1
+     */
+    int COMMON_INT_1 = 1;
+    /**
+     * 通用值-1
+     */
+    int COMMON_INT_NEG_1 = -1;
+    /**
+     * 通用值0
+     */
+    long COMMON_LONG_0 = 0L;
+    /**
+     * 通用值1
+     */
+    long COMMON_LONG_1 = 1L;
+    /**
+     * 通用值-1
+     */
+    long COMMON_LONG_NEG_1 = -1L;
+    /**
+     * 通用值"0"
+     */
+    String COMMON_STRING_0 = "0";
+    /**
+     * 通用值"1"
+     */
+    String COMMON_STRING_1 = "1";
+    /**
+     * 通用值"-1"
+     */
+    String COMMON_STRING_NEG_1 = "-1";
+
+    /**
+     * 通用值"-1"
+     */
+    String COMMON_STRING_99 = "99";
+    /**
+     * 登录页面
+     */
+    String LOGIN_URL = "/login";
+    /**
+     * 上传文件夹
+     */
+    String UPLOAD_FOLDER_NAME = "upload";
+    /**
+     * 临时文件夹
+     */
+    String TEMP_FOLDER_NAME = "temp";
+    /**
+     * 地域标示
+     */
+    public static final String DEFAULT_LOCALE = "zh_CN";
+    /**
+     * 缺省字符集
+     */
+    public static final String DEFAULT_ENCODE = "UTF-8";
+    /**
+     * 以下为接口返回公共属性定义常量
+     */
+    public static final String MSG_SUCCESS = "操作成功";    //操作成功
+    public static final String MSG_FALURE = "操作失败";    //操作失败
+
+    public static final long INVALIDATE_VALUE = -1;        //起止时间定义
+    public static final int RET_SUCCESS = 0;            //成功
+    public static final int RET_FAIL = 1;                //失败
+    public static final int RET_ERROR_PARAM = -1;        //参数校验失败
+    public static final int RET_NO_TOKEN = -2;    //用户token丢失
+}

+ 43 - 0
aipt-service/src/main/java/com/diagbot/client/bean/FeatureRate.java

@@ -0,0 +1,43 @@
+package com.diagbot.client.bean;
+
+/**
+ * Created by fyeman on 2018/1/17.
+ */
+public class FeatureRate {
+    private String featureName;
+    private String extraProperty;
+    private String desc;
+    private String rate;
+
+    public String getFeatureName() {
+        return featureName;
+    }
+
+    public void setFeatureName(String featureName) {
+        this.featureName = featureName;
+    }
+
+    public String getRate() {
+        return rate;
+    }
+
+    public void setRate(String rate) {
+        this.rate = rate;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+
+    public String getExtraProperty() {
+        return extraProperty;
+    }
+
+    public void setExtraProperty(String extraProperty) {
+        this.extraProperty = extraProperty;
+    }
+}

+ 190 - 0
aipt-service/src/main/java/com/diagbot/client/bean/Response.java

@@ -0,0 +1,190 @@
+package com.diagbot.client.bean;
+
+/**
+ * ClassName: org.diagbot.pub.api.Response
+ * Function: API接口提供标准返回数据包, 数据包格式如下:
+ * {
+ * status:"OK",
+ * startTime:8206448610408,
+ * endTime:8206448610418,
+ * version:"1.0",
+ * msg:"操作成功",
+ * ret:"0",
+ * timeConsum:10,
+ * data:{
+ * ..。
+ * }
+ * }
+ * date: 2015年7月6日 下午1:36:58
+ *
+ * @author 楼辉荣(Fyeman)
+ * @version 1.0
+ * @since JDK 1.7
+ */
+public class Response<T> implements java.io.Serializable {
+    private static final long serialVersionUID = 8206448610408409499L;
+    private Status status = Status.PENDING;  //状态
+    private long startTime = Constants.INVALIDATE_VALUE;                                  //起始时间
+    private long endTime = Constants.INVALIDATE_VALUE;                                    //结束时间
+    private String version = "1.0";
+    private String msg = Constants.MSG_SUCCESS;                                  //消息
+    private T data = null;                                                                //序列化后的结果数据
+    // 返回结果标志,默认成功0,失败 1 参数错误 -1 token丢失-2
+    private int ret = Constants.RET_SUCCESS;
+
+    private String token;
+    //耗时
+    private long timeConsum;
+
+    public int getRet() {
+        return ret;
+    }
+
+    public void setRet(int ret) {
+        this.ret = ret;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public long getTimeConsum() {
+        return timeConsum;
+    }
+
+    public void setTimeConsum(long timeConsum) {
+        this.timeConsum = timeConsum;
+    }
+
+    public Response() {
+        super();
+    }
+
+    public Status getStatus() {
+        return status;
+    }
+
+    /**
+     * 在调用end()方法时,会自动设置状态,因此,如果调用了end()方法,就不要调用这个方法
+     *
+     * @param status
+     */
+    public Response<T> setStatus(Status status) {
+        this.status = status;
+        return this;
+    }
+
+
+    public String getVersion() {
+        return version;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+
+    public long getStartTime() {
+        return startTime;
+    }
+
+    public Response<T> setStartTime(long startTime) {
+        this.startTime = startTime;
+        return this;
+    }
+
+    public long getEndTime() {
+        return endTime;
+    }
+
+    public Response<T> setEndTime(long endTime) {
+        this.endTime = endTime;
+        return this;
+    }
+
+    public T getData() {
+        return data;
+    }
+
+    public void setData(T data) {
+        this.data = data;
+    }
+
+    public String getToken() {
+        return token;
+    }
+
+    public void setToken(String token) {
+        this.token = token;
+    }
+
+    /**
+     * 设置状态和起始时间,表示操作正在进行
+     */
+    public Response<T> start() {
+        this.setStatus(Status.RUNNING);
+        this.setStartTime(System.currentTimeMillis());
+        return this;
+    }
+
+    /**
+     * 设置状态和时间,表示操作结束,没有失败
+     */
+    public Response<T> end() {
+        this.setEndTime(System.currentTimeMillis());
+        this.setTimeConsum(this.endTime - this.startTime);
+        this.setStatus(Status.OK);
+        return this;
+    }
+
+    /**
+     * 设置状态和时间,表示操作结束,并且失败
+     */
+    public Response<T> endAndFailed() {
+        this.setStatus(Status.FAIL);
+        this.setEndTime(System.currentTimeMillis());
+        return this;
+    }
+
+    /**
+     * 非参数错误通用失败信息
+     */
+    public Response<T> failure(String msg) {
+        this.msg = msg;
+        this.ret = Constants.RET_FAIL;
+        this.end();
+        return this;
+    }
+
+    /**
+     * 参数错误信息
+     */
+    public Response<T> paramFailure(String msg) {
+        this.msg = msg;
+        this.ret = Constants.RET_ERROR_PARAM;
+        this.end();
+        return this;
+    }
+
+    /**
+     * 用户信息丢失
+     */
+    public Response<T> tokenFailure(String msg) {
+        this.msg = msg;
+        this.ret = Constants.RET_NO_TOKEN;
+        this.end();
+        return this;
+    }
+
+    /**
+     * 通用成功
+     */
+    public Response<T> success() {
+        this.end();
+        return this;
+    }
+
+}

+ 98 - 0
aipt-service/src/main/java/com/diagbot/client/bean/ResponseData.java

@@ -0,0 +1,98 @@
+package com.diagbot.client.bean;
+
+import com.alibaba.fastjson.JSONObject;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by fyeman on 2018/2/2.
+ */
+public class ResponseData {
+    private String participleSymptom = "";
+
+    private List<FeatureRate> symptom = new ArrayList<>(10);
+    private List<FeatureRate> vitals = new ArrayList<>(10);
+    private List<FeatureRate> dis = new ArrayList<>(10);
+    private List<FeatureRate> labs = new ArrayList<>(10);
+    private List<FeatureRate> pacs = new ArrayList<>(10);
+    private List<FeatureRate> history=new ArrayList<>(10);
+    private Map<String, JSONObject> treat;
+
+    private Map<String, Map<String, String>> inputs = new HashMap<>(10, 0.5f);
+
+
+    public String getParticipleSymptom() {
+        return participleSymptom;
+    }
+
+    public void setParticipleSymptom(String participleSymptom) {
+        this.participleSymptom = participleSymptom;
+    }
+
+    public List<FeatureRate> getSymptom() {
+        return symptom;
+    }
+
+    public void setSymptom(List<FeatureRate> symptom) {
+        this.symptom = symptom;
+    }
+
+    public List<FeatureRate> getVitals() {
+        return vitals;
+    }
+
+    public void setVitals(List<FeatureRate> vitals) {
+        this.vitals = vitals;
+    }
+
+    public List<FeatureRate> getDis() {
+        return dis;
+    }
+
+    public void setDis(List<FeatureRate> dis) {
+        this.dis = dis;
+    }
+
+    public List<FeatureRate> getLabs() {
+        return labs;
+    }
+
+    public void setLabs(List<FeatureRate> labs) {
+        this.labs = labs;
+    }
+
+    public List<FeatureRate> getPacs() {
+        return pacs;
+    }
+
+    public void setPacs(List<FeatureRate> pacs) {
+        this.pacs = pacs;
+    }
+
+    public List<FeatureRate> getHistory() {
+        return history;
+    }
+
+    public void setHistory(List<FeatureRate> history) {
+        this.history = history;
+    }
+
+    public Map<String, JSONObject> getTreat() {
+        return treat;
+    }
+
+    public void setTreat(Map<String, JSONObject> treat) {
+        this.treat = treat;
+    }
+
+    public Map<String, Map<String, String>> getInputs() {
+        return inputs;
+    }
+
+    public void setInputs(Map<String, Map<String, String>> inputs) {
+        this.inputs = inputs;
+    }
+}

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

@@ -0,0 +1,273 @@
+package com.diagbot.client.bean;
+
+import com.diagbot.client.AlgorithmClassify;
+import com.diagbot.client.Feature;
+import com.diagbot.dto.LisResult;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by fyeman on 2018/1/31.
+ */
+public class SearchData {
+    private int length = 10;
+    private int age_start = 0;
+    private int age_end = 200;
+    private int age = 0;
+    private String sex;
+    // 搜索结果的贝叶斯阈值
+    private String threshold = "0";
+
+    private String symptom = "";
+    private String vital = "";
+    private String lis = "";
+    private String pacs = "";
+    private String diag = "";
+    private String past = "";
+    private String other = "";
+    private List<LisResult> lisArr;
+
+
+    //特征类别
+    private String featureType;
+    //特征类别对","进行分割后数据
+    private String[] featureTypes;
+    //门诊 住院分类
+    private String resourceType;
+    //模型
+    private AlgorithmClassify algorithmClassify[];
+    //模型
+    private String algorithmClassifyValue;
+    //外部系统编码 用于返回映射数据,如果sysCode为空或null,则返回kl_standard_info标准名称
+    private String sysCode;
+
+    private Map<String, Map<String, String>> inputs = new HashMap<>(10, 0.8f);
+
+
+    private List<Feature> symptomFeatureList = new ArrayList<>();
+    private List<Feature> vitalFeatureList = new ArrayList<>();
+    private List<Feature> lisFeatureList = new ArrayList<>();
+    private List<Feature> pacsFeatureList = new ArrayList<>();
+    private List<Feature> diagFeatureList = new ArrayList<>();
+    private List<Feature> symptompropertyFeatureList = new ArrayList<>();
+
+    public int getLength() {
+        return length;
+    }
+
+    public void setLength(int length) {
+        this.length = length;
+    }
+
+    public int getAge_start() {
+        return age_start;
+    }
+
+    public void setAge_start(int age_start) {
+        this.age_start = age_start;
+    }
+
+    public int getAge_end() {
+        return age_end;
+    }
+
+    public void setAge_end(int age_end) {
+        this.age_end = age_end;
+    }
+
+    public int getAge() {
+        return age;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    public String getSex() {
+        return sex;
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex;
+    }
+
+    public String getSymptom() {
+        return symptom;
+    }
+
+    public void setSymptom(String symptom) {
+        this.symptom = symptom;
+    }
+
+    public String getVital() {
+        return vital;
+    }
+
+    public void setVital(String vital) {
+        this.vital = vital;
+    }
+
+    public String getLis() {
+        return lis;
+    }
+
+    public void setLis(String lis) {
+        this.lis = lis;
+    }
+
+    public String getPacs() {
+        return pacs;
+    }
+
+    public void setPacs(String pacs) {
+        this.pacs = pacs;
+    }
+
+    public String getDiag() {
+        return diag;
+    }
+
+    public void setDiag(String diag) {
+        this.diag = diag;
+    }
+
+    public String getPast() {
+        return past;
+    }
+
+    public void setPast(String past) {
+        this.past = past;
+    }
+
+    public String getOther() {
+        return other;
+    }
+
+    public void setOther(String other) {
+        this.other = other;
+    }
+
+    public String getFeatureType() {
+        return featureType;
+    }
+
+    public void setFeatureType(String featureType) {
+        this.featureType = featureType;
+    }
+
+    public String[] getFeatureTypes() {
+        return featureTypes;
+    }
+
+    public void setFeatureTypes(String[] featureTypes) {
+        this.featureTypes = featureTypes;
+    }
+
+    public String getResourceType() {
+        return resourceType;
+    }
+
+    public void setResourceType(String resourceType) {
+        this.resourceType = resourceType;
+    }
+
+    public String getSysCode() {
+        return sysCode;
+    }
+
+    public void setSysCode(String sysCode) {
+        this.sysCode = sysCode;
+    }
+
+    public void setThreshold(String threshold) {
+        this.threshold = threshold;
+    }
+
+    public float getThreshold() {
+        return Float.parseFloat(threshold);
+    }
+
+    public List<Feature> getSymptomFeatureList() {
+        return symptomFeatureList;
+    }
+
+    public void setSymptomFeatureList(List<Feature> symptomFeatureList) {
+        this.symptomFeatureList = symptomFeatureList;
+    }
+
+    public List<Feature> getVitalFeatureList() {
+        return vitalFeatureList;
+    }
+
+    public void setVitalFeatureList(List<Feature> vitalFeatureList) {
+        this.vitalFeatureList = vitalFeatureList;
+    }
+
+    public List<Feature> getLisFeatureList() {
+        return lisFeatureList;
+    }
+
+    public void setLisFeatureList(List<Feature> lisFeatureList) {
+        this.lisFeatureList = lisFeatureList;
+    }
+
+    public List<Feature> getPacsFeatureList() {
+        return pacsFeatureList;
+    }
+
+    public void setPacsFeatureList(List<Feature> pacsFeatureList) {
+        this.pacsFeatureList = pacsFeatureList;
+    }
+
+
+    public List<Feature> getSymptompropertyFeatureList() {
+        return symptompropertyFeatureList;
+    }
+
+    public void setSymptompropertyFeatureList(List<Feature> symptompropertyFeatureList) {
+        this.symptompropertyFeatureList = symptompropertyFeatureList;
+    }
+
+    public List<Feature> getDiagFeatureList() {
+        return diagFeatureList;
+    }
+
+    public void setDiagFeatureList(List<Feature> diagFeatureList) {
+        this.diagFeatureList = diagFeatureList;
+    }
+
+    public Map<String, Map<String, String>> getInputs() {
+        return inputs;
+    }
+
+    public void setInputs(Map<String, Map<String, String>> inputs) {
+        this.inputs = inputs;
+    }
+
+    public AlgorithmClassify[] getAlgorithmClassify() {
+        return algorithmClassify;
+    }
+
+    public void setAlgorithmClassify(AlgorithmClassify[] algorithmClassify) {
+        this.algorithmClassify = algorithmClassify;
+    }
+
+    public String getAlgorithmClassifyValue() {
+        return algorithmClassifyValue;
+    }
+
+    public void setAlgorithmClassifyValue(String algorithmClassifyValue) {
+        this.algorithmClassifyValue = algorithmClassifyValue;
+    }
+
+    public List<LisResult> getLisArr() {
+        return lisArr;
+    }
+
+    public void setLisArr(List<LisResult> lisArr) {
+        this.lisArr = lisArr;
+    }
+}

+ 132 - 0
aipt-service/src/main/java/com/diagbot/client/bean/Status.java

@@ -0,0 +1,132 @@
+package com.diagbot.client.bean;
+
+public enum Status {
+    /**
+     * <code>PENDING = 1;</code>
+     *
+     * <pre>
+     * 操作尚未开始
+     * </pre>
+     */
+    PENDING(1),
+    /**
+     * <code>RUNNING = 2;</code>
+     *
+     * <pre>
+     * 操作开始
+     * </pre>
+     */
+    RUNNING(2),
+    /**
+     * <code>OK = 3;</code>
+     *
+     * <pre>
+     * 操作正常结束
+     * </pre>
+     */
+    OK(3),
+    /**
+     * <code>WARN = 4;</code>
+     *
+     * <pre>
+     * 有警告,但是正常结束
+     * </pre>
+     */
+    WARN(4),
+    /**
+     * <code>ERROR = 5;</code>
+     *
+     * <pre>
+     * 有错误,但是完整结束
+     * </pre>
+     */
+    ERROR(5),
+    /**
+     * <code>FAIL = 6;</code>
+     *
+     * <pre>
+     * 操作失败
+     * </pre>
+     */
+    FAIL(6),
+    ;
+
+    /**
+     * <code>PENDING = 1;</code>
+     *
+     * <pre>
+     * 操作尚未开始
+     * </pre>
+     */
+    public static final int PENDING_VALUE = 1;
+    /**
+     * <code>RUNNING = 2;</code>
+     *
+     * <pre>
+     * 操作开始
+     * </pre>
+     */
+    public static final int RUNNING_VALUE = 2;
+    /**
+     * <code>OK = 3;</code>
+     *
+     * <pre>
+     * 操作正常结束
+     * </pre>
+     */
+    public static final int OK_VALUE = 3;
+    /**
+     * <code>WARN = 4;</code>
+     *
+     * <pre>
+     * 有警告,但是正常结束
+     * </pre>
+     */
+    public static final int WARN_VALUE = 4;
+    /**
+     * <code>ERROR = 5;</code>
+     *
+     * <pre>
+     * 有错误,但是完整结束
+     * </pre>
+     */
+    public static final int ERROR_VALUE = 5;
+    /**
+     * <code>FAIL = 6;</code>
+     *
+     * <pre>
+     * 操作失败
+     * </pre>
+     */
+    public static final int FAIL_VALUE = 6;
+
+    public final int getNumber() {
+        return value;
+    }
+
+    public static Status valueOf(int value) {
+        switch (value) {
+            case 1:
+                return PENDING;
+            case 2:
+                return RUNNING;
+            case 3:
+                return OK;
+            case 4:
+                return WARN;
+            case 5:
+                return ERROR;
+            case 6:
+                return FAIL;
+            default:
+                return null;
+        }
+    }
+
+    private final int value;
+
+    private Status(int value) {
+        this.value = value;
+    }
+
+}

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

@@ -0,0 +1,23 @@
+package com.diagbot.client.hystrix;
+
+import com.diagbot.client.AIServiceClient;
+import com.diagbot.client.bean.Response;
+import com.diagbot.client.bean.ResponseData;
+import com.diagbot.vo.SearchVo;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2018/11/20 13:15
+ */
+@Component
+@Slf4j
+public class AIServiceHystrix implements AIServiceClient {
+    @Override
+    public Response<ResponseData> bayesPageData(SearchVo searchVo) {
+        log.error("【hystrix】调用{}异常", "bayesPageData");
+        return null;
+    }
+}

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

@@ -0,0 +1,22 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:化验信息
+ * @Author:zhaops
+ * @time: 2018/12/19 14:03
+ */
+@Getter
+@Setter
+public class LisResult {
+    private String name;//套餐名称
+    private String detailName;//化验项名称
+    private String uniqueName;//公表名称
+    private Double value;//值
+    private Double maxValue;//最大值
+    private Double minValue;//最小值
+    private String units;//单位
+    private String otherValue;//其他结果,包括阴性阳性,文字描述等
+}

+ 64 - 0
aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java

@@ -0,0 +1,64 @@
+package com.diagbot.facade;
+
+import com.diagbot.client.AIServiceClient;
+import com.diagbot.client.bean.Response;
+import com.diagbot.client.bean.ResponseData;
+import com.diagbot.dto.LisResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
+import com.diagbot.vo.SearchVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  数据处理业务层
+ * </p>
+ *
+ * @author Mark Huang
+ * @since 2019-03-04
+ */
+@Component
+public class ClinicalFacade {
+
+    @Autowired
+    private AIServiceClient aiServiceClient;
+
+    /**
+     * 处理临床数据
+     *
+     * @param searchVo
+     * @return ResponseData
+     */
+    public ResponseData processClinicalData(@RequestBody SearchVo searchVo) {
+        processLis(searchVo);
+        Response<ResponseData> res = aiServiceClient.bayesPageData(searchVo);
+
+        return res.getData();
+    }
+
+    private void processLis(SearchVo sData) {
+
+        String Otherval = "";
+        String lisresult = "";
+        List<LisResult> lisArr = sData.getLisArr();
+
+        for (int i=0; i<lisArr.size(); i++) {
+            LisResult lisres = lisArr.get(i);
+
+            Otherval = (lisres.getOtherValue().trim().length() > 0)? lisres.getOtherValue().trim()+"\n":"";
+
+            if (lisres.getMaxValue() != null && lisres.getValue() > lisres.getMaxValue()) {
+                lisres.setOtherValue(Otherval + "\n" + lisres.getDetailName() + "升高");
+
+            }
+            else if (lisres.getMinValue() != null && lisres.getValue() < lisres.getMinValue()) {
+                lisres.setOtherValue(Otherval + "\n" + lisres.getDetailName() + "下降");
+            }
+            lisresult += lisres.getOtherValue() + "\n";
+        }
+
+        sData.setLis(lisresult);
+    }
+}

+ 64 - 0
aipt-service/src/main/java/com/diagbot/vo/SearchVo.java

@@ -0,0 +1,64 @@
+package com.diagbot.vo;
+
+import com.diagbot.dto.LisResult;
+import lombok.Getter;
+import lombok.Setter;
+
+import com.diagbot.client.Feature;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @author: Weixuan Huang
+ * @time: 2019/3/4 16:35
+ */
+@Getter
+@Setter
+public class SearchVo {
+    private int length;
+
+    private int age_start;
+    private int age_end;
+    private int age;
+    private String sex;
+
+    // 搜索结果的贝叶斯阈值
+    private String threshold;
+
+    private String symptom;
+    private String vital;
+    private String lis;
+    private String pacs;
+    private String diag;
+    private String past;
+    private String other;
+    private List<LisResult> lisArr;
+
+    //特征类别
+    private String featureType;
+    /*
+    //特征类别对","进行分割后数据
+    private String[] featureTypes;
+    //门诊 住院分类
+    private String resourceType;
+    //模型
+//    private AlgorithmClassify algorithmClassify[];
+    //模型
+    private String algorithmClassifyValue;
+    */
+    //外部系统编码 用于返回映射数据,如果sysCode为空或null,则返回kl_standard_info标准名称
+    private String sysCode;
+
+
+    private List<Feature> symptomFeatureList;
+    private List<Feature> lisFeatureList;
+    private List<Feature> pacsFeatureList;
+    private List<Feature> vitalFeatureList;
+    private List<Feature> symptompropertyFeatureList;
+
+    private List<Feature> diagFeatureList;
+    private Map<String, Map<String, String>> inputs;
+
+}

+ 46 - 0
aipt-service/src/main/java/com/diagbot/web/ClinicalController.java

@@ -0,0 +1,46 @@
+package com.diagbot.web;
+
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.client.bean.ResponseData;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.ClinicalFacade;
+import com.diagbot.vo.SearchVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Mark Huang
+ * @since 2019-03-04
+ */
+@RestController
+@RequestMapping("/clinicaldata")
+@Api(value = "临床数据处理API", tags = { "临床数据处理API" })
+
+public class ClinicalController {
+    @Autowired
+    private ClinicalFacade clinicalFacade;
+
+    @ApiOperation(value = "临床数据处理", notes = "")
+    @PostMapping("/processData")
+    @SysLogger("processData")
+    public RespDTO<ResponseData> processData(@Valid @RequestBody SearchVo searchVo) {
+
+        ResponseData data = clinicalFacade.processClinicalData(searchVo);
+
+        return RespDTO.onSuc(data);
+    }
+
+}

+ 3 - 0
config-server/src/main/resources/shared/aipt-service-dev.yml

@@ -92,3 +92,6 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     cache-enabled: false
 
+ai:
+  server:
+    address: http://192.168.2.234:5008

+ 3 - 0
config-server/src/main/resources/shared/aipt-service-local.yml

@@ -92,3 +92,6 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     cache-enabled: false
 
+ai:
+  server:
+    address: http://192.168.2.234:5008

+ 3 - 0
config-server/src/main/resources/shared/aipt-service-pro.yml

@@ -92,3 +92,6 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     cache-enabled: false
 
+ai:
+  server:
+    address: http://192.168.2.234:5008

+ 3 - 0
config-server/src/main/resources/shared/aipt-service-test.yml

@@ -92,3 +92,6 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     cache-enabled: false
 
+ai:
+  server:
+    address: http://192.168.2.234:5008

+ 7 - 1
config-server/src/main/resources/shared/application-dev.yml

@@ -8,7 +8,13 @@ hystrix:
       execution:
         isolation:
           thread:
-            timeoutInMilliseconds: 3000
+            timeoutInMilliseconds: 20000
+
+ribbon:
+  ReadTimeout: 20000
+  ConnectTimeout: 20000
+  MaxAutoRetries: 0
+  MaxAutoRetriesNextServer: 1
 
 eureka:
   instance:

+ 7 - 1
config-server/src/main/resources/shared/application-local.yml

@@ -8,7 +8,13 @@ hystrix:
       execution:
         isolation:
           thread:
-            timeoutInMilliseconds: 3000
+            timeoutInMilliseconds: 20000
+
+ribbon:
+  ReadTimeout: 20000
+  ConnectTimeout: 20000
+  MaxAutoRetries: 0
+  MaxAutoRetriesNextServer: 1
 
 eureka:
   instance:

+ 7 - 1
config-server/src/main/resources/shared/application-pro.yml

@@ -8,7 +8,13 @@ hystrix:
       execution:
         isolation:
           thread:
-            timeoutInMilliseconds: 3000
+            timeoutInMilliseconds: 20000
+
+ribbon:
+  ReadTimeout: 20000
+  ConnectTimeout: 20000
+  MaxAutoRetries: 0
+  MaxAutoRetriesNextServer: 1
 
 eureka:
   instance:

+ 7 - 1
config-server/src/main/resources/shared/application-test.yml

@@ -8,7 +8,13 @@ hystrix:
       execution:
         isolation:
           thread:
-            timeoutInMilliseconds: 3000
+            timeoutInMilliseconds: 20000
+
+ribbon:
+  ReadTimeout: 20000
+  ConnectTimeout: 20000
+  MaxAutoRetries: 0
+  MaxAutoRetriesNextServer: 1
 
 eureka:
   instance:

+ 0 - 12
config-server/src/main/resources/shared/gateway-service-dev.yml

@@ -1,15 +1,3 @@
-hystrix:
-  command:
-    default:
-      execution:
-        isolation:
-          thread:
-            timeoutInMilliseconds: 20000
-
-ribbon:
-  ReadTimeout: 20000
-  ConnectTimeout: 20000
-
 spring:
   #mq
   rabbitmq:

+ 0 - 12
config-server/src/main/resources/shared/gateway-service-local.yml

@@ -1,15 +1,3 @@
-hystrix:
-  command:
-    default:
-      execution:
-        isolation:
-          thread:
-            timeoutInMilliseconds: 20000
-
-ribbon:
-  ReadTimeout: 20000
-  ConnectTimeout: 20000
-
 spring:
   #mq
   rabbitmq:

+ 0 - 12
config-server/src/main/resources/shared/gateway-service-pro.yml

@@ -1,15 +1,3 @@
-hystrix:
-  command:
-    default:
-      execution:
-        isolation:
-          thread:
-            timeoutInMilliseconds: 20000
-
-ribbon:
-  ReadTimeout: 20000
-  ConnectTimeout: 20000
-
 spring:
   #mq
   rabbitmq:

+ 8 - 13
config-server/src/main/resources/shared/gateway-service-test.yml

@@ -1,15 +1,3 @@
-hystrix:
-  command:
-    default:
-      execution:
-        isolation:
-          thread:
-            timeoutInMilliseconds: 20000
-
-ribbon:
-  ReadTimeout: 20000
-  ConnectTimeout: 20000
-
 spring:
   #mq
   rabbitmq:
@@ -118,10 +106,17 @@ spring:
         filters:
         - SwaggerHeaderFilter
         - StripPrefix=2
+      - id: icssyz-service
+        uri: lb://icss-service
+        predicates:
+        - Path=/api/icssyz/**
+        filters:
+        - SwaggerHeaderFilter
+        - StripPrefix=2
 
 server:
   port: 5050
 
 lantone:
-  product: triage33,1;icsstt,2
+  product: triage33,1;icssyz,147
 

+ 6 - 0
config-server/src/main/resources/shared/knowledgeman-service-dev.yml

@@ -47,6 +47,12 @@ spring:
         login-username: root
         login-password: root
 
+  servlet:
+    multipart:
+      enabled: true
+      max-file-size: 5MB
+      max-request-size: 5MB
+
   cloud:
     stream:
       bindings:

+ 6 - 0
config-server/src/main/resources/shared/knowledgeman-service-local.yml

@@ -47,6 +47,12 @@ spring:
         login-username: root
         login-password: root
 
+  servlet:
+    multipart:
+      enabled: true
+      max-file-size: 5MB
+      max-request-size: 5MB
+
   cloud:
     stream:
       bindings:

+ 6 - 0
config-server/src/main/resources/shared/knowledgeman-service-pro.yml

@@ -47,6 +47,12 @@ spring:
         login-username: root
         login-password: root
 
+  servlet:
+    multipart:
+      enabled: true
+      max-file-size: 5MB
+      max-request-size: 5MB
+
   cloud:
     stream:
       bindings:

+ 8 - 2
config-server/src/main/resources/shared/knowledgeman-service-test.yml

@@ -8,9 +8,9 @@ spring:
       driverClassName: com.mysql.jdbc.Driver
       driver-class-name: com.mysql.jdbc.Driver
       platform: mysql
-      url: jdbc:mysql://192.168.2.241:3306/sys-log?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
+      url: jdbc:mysql://192.168.2.235:3306/diagbot-med-test?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
       username: root
-      password: lantone
+      password: diagbot@20180822
       # 连接池的配置信息
       # 初始化大小,最小,最大
       initialSize: 5
@@ -47,6 +47,12 @@ spring:
         login-username: root
         login-password: root
 
+  servlet:
+    multipart:
+      enabled: true
+      max-file-size: 5MB
+      max-request-size: 5MB
+
   cloud:
     stream:
       bindings:

+ 683 - 0
docs/07.20190318对接相关修改/icss_tran.sql

@@ -38,3 +38,686 @@ CREATE TABLE `tran_introduce_title_config` (
 ALTER TABLE `tran_disease_icd` ADD COLUMN `icss_question_name` varchar(20) NOT NULL COMMENT 'icss疾病名称' AFTER `status`;
 
 ALTER TABLE `tran_hospital_dept` CHANGE `dept_id` `icss_dept_name` varchar(20) DEFAULT NULL COMMENT 'icss科室名称';
+
+use `sys-user`;
+-- ----------------------------
+-- Table structure for sys_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu`;
+CREATE TABLE `sys_menu` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `name` varchar(255) NOT NULL DEFAULT '' COMMENT '菜单名称',
+  `parent_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '-1:表示顶级,其他值表示上级菜单的id',
+  `code` varchar(255) NOT NULL DEFAULT '' COMMENT '编码,与前端对应',
+  `order_no` int(11) NOT NULL DEFAULT '0' COMMENT '排序,从小到大',
+  `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8 COMMENT='系统菜单';
+
+-- ----------------------------
+-- Records of sys_menu
+-- ----------------------------
+INSERT INTO `sys_menu` VALUES ('1', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '控制台', '-1', 'YH-KZT', '1', '用户-控制台');
+INSERT INTO `sys_menu` VALUES ('2', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '更多服务', '-1', 'YH-GDFW', '2', '用户-更多服务');
+INSERT INTO `sys_menu` VALUES ('3', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '机构中心', '-1', 'YH-JGZX', '3', '用户-机构中心');
+INSERT INTO `sys_menu` VALUES ('4', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '账号信息', '3', 'YH-JGZX-ZHXX', '1', '用户-机构中心-账号信息');
+INSERT INTO `sys_menu` VALUES ('5', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '已开通产品', '3', 'YH-JGZX-YKTCP', '2', '用户-机构中心-已开通产品');
+INSERT INTO `sys_menu` VALUES ('6', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '安全设置', '3', 'YH-JGZX-AQSZ', '5', '用户-机构中心-安全设置');
+INSERT INTO `sys_menu` VALUES ('9', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '管理服务端', '3', 'YH-JGZX-GLFFD', '3', '用户-机构中心-管理服务端');
+INSERT INTO `sys_menu` VALUES ('10', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '客户中心', '-1', 'LT-KHZX', '2', '朗通-客户中心');
+INSERT INTO `sys_menu` VALUES ('11', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '机构信息', '10', 'LT-KHZX-JGXX', '2', '朗通-客户中心-机构信息');
+INSERT INTO `sys_menu` VALUES ('12', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '控制台', '-1', 'LT-KZT', '1', '朗通-控制台');
+INSERT INTO `sys_menu` VALUES ('14', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '已生成令牌', '3', 'YH-JGZX-YSCLP', '4', '用户-机构中心-已生成令牌');
+INSERT INTO `sys_menu` VALUES ('15', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '注册用户', '10', 'LT-KHZX-ZCYH', '1', '朗通-客户中心-注册用户');
+INSERT INTO `sys_menu` VALUES ('16', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '审核超管信息', '10', 'LT-KHZX-CGXX', '3', '朗通-客户中心-超管信息');
+INSERT INTO `sys_menu` VALUES ('17', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '订单系统', '-1', 'LT-DDXT', '3', '朗通-订单系统');
+INSERT INTO `sys_menu` VALUES ('18', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '产品申请列表', '17', 'LT-DDXT-CPXSQLB', '1', '朗通-订单系统-产品申请列表');
+INSERT INTO `sys_menu` VALUES ('19', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '产品线管理', '-1', 'LT-CPXGL', '4', '朗通-产品线管理');
+INSERT INTO `sys_menu` VALUES ('20', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '个人中心', '-1', 'LT-GRZX', '7', '朗通-个人中心');
+INSERT INTO `sys_menu` VALUES ('21', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '已认证超管信息', '10', 'LT-YRZCGXX', '0', '朗通-客户中心-已认证超管信息');
+INSERT INTO `sys_menu` VALUES ('22', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '产品续费列表', '17', 'LT-CPXFLB', '2', '朗通-订单系统-产品续费列表');
+INSERT INTO `sys_menu` VALUES ('23', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护', '-1', 'LT-YXSJWH', '5', '朗通-医学数据维护');
+INSERT INTO `sys_menu` VALUES ('24', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '标签组维护', '23', 'LT-YXSJWH-BQZWH', '1', '朗通-医学数据维护-标签组维护');
+INSERT INTO `sys_menu` VALUES ('25', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '独立类型标签维护', '23', 'LT-YXSJWH-DLLXBQWH', '2', '朗通-医学数据维护-独立类型标签维护');
+INSERT INTO `sys_menu` VALUES ('26', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '查体标签维护', '23', 'LT-YXSJWH-CTBQWH', '3', '朗通-医学数据维护-查体标签维护');
+INSERT INTO `sys_menu` VALUES ('27', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '别名维护', '23', 'LT-YXSJWH-BMWH', '4', '朗通-医学数据维护-别名维护');
+INSERT INTO `sys_menu` VALUES ('28', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '模版维护', '23', 'LT-YXSJWH-MBWH', '5', '朗通-医学数据维护-模版维护');
+INSERT INTO `sys_menu` VALUES ('30', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 'icss科室维护', '23', 'LT-YXSJWH-KSWH', '7', '朗通-医学数据维护-icss科室维护');
+INSERT INTO `sys_menu` VALUES ('31', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '常见症状维护', '23', 'LT-YXSJWH-CJZZWH', '8', '朗通-医学数据维护-常见症状维护');
+INSERT INTO `sys_menu` VALUES ('33', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '免责声明维护', '23', 'LT-YXSJWH-MZSMWH', '10', '朗通-医学数据维护-免责声明维护');
+INSERT INTO `sys_menu` VALUES ('34', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '版本信息维护', '23', 'LT-YXSJWH-BBXXWH', '11', '朗通-医学数据维护-版本信息维护');
+INSERT INTO `sys_menu` VALUES ('35', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '查体模板维护', '23', 'LT-YXSJWH-CTMBWH', '6', '朗通-医学数据维护-查体模板维护');
+INSERT INTO `sys_menu` VALUES ('36', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '查体标签维护', '23', 'LT-YXSJWH-CTBQWH', '13', '朗通-医学数据维护-查体标签维护');
+INSERT INTO `sys_menu` VALUES ('37', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '提示信息维护', '23', 'LT-YXSJWH-TSXXWH', '9', '朗通-医学数据维护-提示信息维护');
+INSERT INTO `sys_menu` VALUES ('38', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护', '-1', 'LT-YXSYKWH', '6', '朗通-医学术语库维护');
+INSERT INTO `sys_menu` VALUES ('39', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语命名维护', '38', 'LT-YXSYKWH-YXSYMMWH', '1', '朗通-医学术语库维护-医学术语命名维护');
+INSERT INTO `sys_menu` VALUES ('40', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语信息维护', '38', 'LT-YXSYKWH-YXSYXXWH', '2', '朗通-医学术语库维护-医学术语信息维护');
+INSERT INTO `sys_menu` VALUES ('41', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语关系维护', '38', 'LT-YXSYKWH-YXSYGXWH', '3', '朗通-医学术语库维护-医学术语关系维护');
+INSERT INTO `sys_menu` VALUES ('42', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语静态知识维护', '38', 'LT-YXSYKWH-YXSYJTZSWH', '4', '朗通-医学术语库维护-医学术语静态知识维护');
+
+-- ----------------------------
+-- Table structure for sys_menu_permission
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu_permission`;
+CREATE TABLE `sys_menu_permission` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `menu_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '菜单id',
+  `permission_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '系统资源id',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=170 DEFAULT CHARSET=utf8 COMMENT='菜单和系统资源的映射表';
+
+-- ----------------------------
+-- Records of sys_menu_permission
+-- ----------------------------
+INSERT INTO `sys_menu_permission` VALUES ('11', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '8', '朗通-客户中心-获取用户信息列表');
+INSERT INTO `sys_menu_permission` VALUES ('12', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '12', '朗通-客户中心-修改用户和机构信息');
+INSERT INTO `sys_menu_permission` VALUES ('13', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '14', '朗通-客户中心-根据用户Id删除');
+INSERT INTO `sys_menu_permission` VALUES ('14', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '18', '朗通-客户中心-模糊查询机构信息');
+INSERT INTO `sys_menu_permission` VALUES ('15', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '19', '朗通-客户中心-添加机构信息');
+INSERT INTO `sys_menu_permission` VALUES ('16', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '20', '朗通-客户中心-添加用户信息和绑定机构');
+INSERT INTO `sys_menu_permission` VALUES ('17', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '22', '朗通-客户中心-审核用户信息接口');
+INSERT INTO `sys_menu_permission` VALUES ('25', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '15', '用户-机构中心-已开通产品-关联产品与用户服务端');
+INSERT INTO `sys_menu_permission` VALUES ('26', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '16', '用户-机构中心-已开通产品-删除产品与用户服务端的关联');
+INSERT INTO `sys_menu_permission` VALUES ('27', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '17', '用户-机构中心-已开通产品-获取当前登录用户产品服务分页列表');
+INSERT INTO `sys_menu_permission` VALUES ('28', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '9', '24', '用户-机构中心-管理服务端-新增服务端');
+INSERT INTO `sys_menu_permission` VALUES ('29', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '9', '25', '用户-机构中心-管理服务端-修改服务端');
+INSERT INTO `sys_menu_permission` VALUES ('30', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '9', '26', '用户-机构中心-管理服务端-获取当前登录用户的服务列表');
+INSERT INTO `sys_menu_permission` VALUES ('31', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '9', '27', '用户-机构中心-管理服务端-获取当前登录用户的服务分页列表');
+INSERT INTO `sys_menu_permission` VALUES ('35', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '31', '朗通-客户中心-根据用户id和产品id,修改开通时间');
+INSERT INTO `sys_menu_permission` VALUES ('36', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '28', '朗通-客户中心-根据用户id查询已开通的功能');
+INSERT INTO `sys_menu_permission` VALUES ('37', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '29', '朗通-客户中心-根据用户id和产品id,启用和停用功能');
+INSERT INTO `sys_menu_permission` VALUES ('38', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '30', '朗通-客户中心-根据用户id和产品id,删除开通信息');
+INSERT INTO `sys_menu_permission` VALUES ('39', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '32', '朗通-客户中心-根据时间导出用户和机构信息');
+INSERT INTO `sys_menu_permission` VALUES ('40', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '9', '用户-机构中心-账户信息-获取当前用户信息');
+INSERT INTO `sys_menu_permission` VALUES ('41', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '10', '用户-机构中心-账户信息-用户认证');
+INSERT INTO `sys_menu_permission` VALUES ('42', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '11', '用户-机构中心-账户信息-获取当前用户认证状态');
+INSERT INTO `sys_menu_permission` VALUES ('43', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '14', '33', '用户-机构中心-已经生成令牌-生成令牌');
+INSERT INTO `sys_menu_permission` VALUES ('44', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '14', '34', '用户-机构中心-已经生成令牌-禁用令牌');
+INSERT INTO `sys_menu_permission` VALUES ('45', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '14', '35', '用户-机构中心-已经生成令牌-启用令牌');
+INSERT INTO `sys_menu_permission` VALUES ('46', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '14', '36', '用户-机构中心-已经生成令牌-删除令牌');
+INSERT INTO `sys_menu_permission` VALUES ('47', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '12', '37', '朗通-控制台-待审核订单个数');
+INSERT INTO `sys_menu_permission` VALUES ('48', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '12', '38', '朗通-控制台-待认证账号数量');
+INSERT INTO `sys_menu_permission` VALUES ('49', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '39', '用户-控制台-账号认证进度');
+INSERT INTO `sys_menu_permission` VALUES ('50', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '40', '用户-控制台-产品认证进度');
+INSERT INTO `sys_menu_permission` VALUES ('51', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '41', '用户-控制台-已开通产品');
+INSERT INTO `sys_menu_permission` VALUES ('52', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '42', '用户-控制台-可试用产品');
+INSERT INTO `sys_menu_permission` VALUES ('53', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '43', '用户-控制台-产品立即试用接口');
+INSERT INTO `sys_menu_permission` VALUES ('54', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '44', '用户-控制台-可展示的选项卡');
+INSERT INTO `sys_menu_permission` VALUES ('55', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '45', '用户-控制台-账户信息');
+INSERT INTO `sys_menu_permission` VALUES ('56', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '46', '朗通-客户中心-查询所有用户已开通的功能');
+INSERT INTO `sys_menu_permission` VALUES ('57', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '47', '朗通-客户中心-查询用户信息和机构信息开通产品');
+INSERT INTO `sys_menu_permission` VALUES ('58', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '20', '48', '朗通-个人中心-重置密码');
+INSERT INTO `sys_menu_permission` VALUES ('59', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '51', '用户-更多服务-根据用户id获取产品信息');
+INSERT INTO `sys_menu_permission` VALUES ('60', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '52', '用户-更多服务-开通产品');
+INSERT INTO `sys_menu_permission` VALUES ('61', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '19', '53', '朗通-产品线管理-添加产品');
+INSERT INTO `sys_menu_permission` VALUES ('62', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '9', '54', '用户-机构中心-管理服务端-删除服务端');
+INSERT INTO `sys_menu_permission` VALUES ('63', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '21', '用户-机构中心-已开通产品-查询当前登录用户已开通产品列表');
+INSERT INTO `sys_menu_permission` VALUES ('64', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '64', '朗通-客户中心-分页查询注册用户信息接口');
+INSERT INTO `sys_menu_permission` VALUES ('65', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '65', '朗通-客户中心-分页查询机构信息接口');
+INSERT INTO `sys_menu_permission` VALUES ('66', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '66', '朗通-客户中心-分页查询已认证用户信息和机构信息及开通产品接口');
+INSERT INTO `sys_menu_permission` VALUES ('67', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '67', '朗通-客户中心-分页查询认证中的用户信息接口');
+INSERT INTO `sys_menu_permission` VALUES ('68', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '71', '客户中心-导出用户信息');
+INSERT INTO `sys_menu_permission` VALUES ('69', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '72', '客户中心-导出机构信息');
+INSERT INTO `sys_menu_permission` VALUES ('70', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '73', '客户中心-导出认证中用户的信息:');
+INSERT INTO `sys_menu_permission` VALUES ('71', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '74', '客户中心-导出已认证用户的信息');
+INSERT INTO `sys_menu_permission` VALUES ('72', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '76', '客户中心-超管修改用户信息接口');
+INSERT INTO `sys_menu_permission` VALUES ('73', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '77', '客户中心-超管修改机构信息接口');
+INSERT INTO `sys_menu_permission` VALUES ('74', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '14', '79', '用户-机构中心-已经生成令牌-获取令牌');
+INSERT INTO `sys_menu_permission` VALUES ('75', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '83', '客户中心-认证用户信息和机构信息不通过接口(新)');
+INSERT INTO `sys_menu_permission` VALUES ('76', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '84', '客户中心-认证用户信息和机构信息通过接口(新)');
+INSERT INTO `sys_menu_permission` VALUES ('77', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '85', '客户中心-查询用户续费数量');
+INSERT INTO `sys_menu_permission` VALUES ('78', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '86', '客户中心-查询用户是否有待审核的产品数量');
+INSERT INTO `sys_menu_permission` VALUES ('79', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '25', '88', '医学数据维护-独立标签维护-新增|修改');
+INSERT INTO `sys_menu_permission` VALUES ('80', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '25', '89', '医学数据维护-独立标签维护-删除');
+INSERT INTO `sys_menu_permission` VALUES ('81', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '25', '90', '医学数据维护-独立标签维护-分页列表');
+INSERT INTO `sys_menu_permission` VALUES ('82', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '24', '91', '医学数据维护-标签组维护-新增|修改');
+INSERT INTO `sys_menu_permission` VALUES ('83', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '24', '92', '医学数据维护-标签组维护-删除');
+INSERT INTO `sys_menu_permission` VALUES ('84', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '24', '93', '医学数据维护-标签组维护-分页列表');
+INSERT INTO `sys_menu_permission` VALUES ('85', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '24', '94', '医学数据维护-标签组维护-获取特殊标签(同伴|无)');
+INSERT INTO `sys_menu_permission` VALUES ('86', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '24', '95', '医学数据维护-标签组维护-根据id返回内容');
+INSERT INTO `sys_menu_permission` VALUES ('87', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '24', '96', '医学数据维护-标签组维护-根据多个id返回内容');
+INSERT INTO `sys_menu_permission` VALUES ('88', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '24', '98', '医学数据维护-标签组维护-检索');
+INSERT INTO `sys_menu_permission` VALUES ('92', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '30', '99', '医学数据维护-科室维护-修改');
+INSERT INTO `sys_menu_permission` VALUES ('93', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '30', '100', '医学数据维护-科室维护-删除');
+INSERT INTO `sys_menu_permission` VALUES ('94', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '30', '101', '医学数据维护-科室维护-查询');
+INSERT INTO `sys_menu_permission` VALUES ('95', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '30', '102', '医学数据维护-科室维护-详情');
+INSERT INTO `sys_menu_permission` VALUES ('96', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '30', '104', '医学数据维护-科室维护-添加');
+INSERT INTO `sys_menu_permission` VALUES ('97', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '27', '105', '医学数据维护-别名维护-新增|修改');
+INSERT INTO `sys_menu_permission` VALUES ('98', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '27', '106', '医学数据维护-别名维护-详情');
+INSERT INTO `sys_menu_permission` VALUES ('99', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '27', '107', '医学数据维护-别名维护-删除');
+INSERT INTO `sys_menu_permission` VALUES ('100', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '27', '108', '医学数据维护-别名维护-导入');
+INSERT INTO `sys_menu_permission` VALUES ('101', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '27', '109', '医学数据维护-别名维护-列表');
+INSERT INTO `sys_menu_permission` VALUES ('102', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '28', '110', '医学数据维护-模板维护-添加');
+INSERT INTO `sys_menu_permission` VALUES ('103', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '28', '111', '医学数据维护-模板维护-修改');
+INSERT INTO `sys_menu_permission` VALUES ('104', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '28', '112', '医学数据维护-模板维护-删除');
+INSERT INTO `sys_menu_permission` VALUES ('105', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '28', '113', '医学数据维护-模板维护-获取标签池信息');
+INSERT INTO `sys_menu_permission` VALUES ('106', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '28', '114', '医学数据维护-模板维护-获取子模板信息');
+INSERT INTO `sys_menu_permission` VALUES ('107', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '28', '115', '医学数据维护-模板维护-获取模板列表');
+INSERT INTO `sys_menu_permission` VALUES ('108', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '28', '116', '医学数据维护-模板维护-获取模板明细信息');
+INSERT INTO `sys_menu_permission` VALUES ('109', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '28', '117', '医学数据维护-模板维护-获取单个模板信息(修改用)');
+INSERT INTO `sys_menu_permission` VALUES ('110', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '31', '118', '医学数据维护-常见症状维护-添加和修改');
+INSERT INTO `sys_menu_permission` VALUES ('111', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '31', '119', '医学数据维护-常见症状维护-删除');
+INSERT INTO `sys_menu_permission` VALUES ('112', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '31', '120', '医学数据维护-常见症状维护-获取科室名称');
+INSERT INTO `sys_menu_permission` VALUES ('113', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '31', '121', '医学数据维护-常见症状维护-获取标签信息');
+INSERT INTO `sys_menu_permission` VALUES ('114', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '31', '122', '医学数据维护-常见症状维护-根据科室获取常用标签信息(修改和详情用)');
+INSERT INTO `sys_menu_permission` VALUES ('115', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '31', '123', '医学数据维护-常见症状维护-获取科室信息(常见症状维护系统页面查询)');
+INSERT INTO `sys_menu_permission` VALUES ('116', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '33', '124', '医学数据维护-免责申明-获取免责申明详情');
+INSERT INTO `sys_menu_permission` VALUES ('117', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '33', '125', '医学数据维护-免责申明-增加免责申明详情');
+INSERT INTO `sys_menu_permission` VALUES ('118', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '33', '126', '医学数据维护-免责申明-修改免责申明详情');
+INSERT INTO `sys_menu_permission` VALUES ('119', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '33', '127', '医学数据维护-免责申明-删除免责申明详情');
+INSERT INTO `sys_menu_permission` VALUES ('120', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '33', '128', '医学数据维护-免责申明-启用免责申明详情 ');
+INSERT INTO `sys_menu_permission` VALUES ('121', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '33', '129', '医学数据维护-免责申明-停用免责申明详情');
+INSERT INTO `sys_menu_permission` VALUES ('122', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '34', '130', '医学数据维护-版本信息-获取版本信息');
+INSERT INTO `sys_menu_permission` VALUES ('123', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '34', '131', '医学数据维护-版本信息-保存版本信息');
+INSERT INTO `sys_menu_permission` VALUES ('124', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '34', '132', '医学数据维护-版本信息-更新版本信息');
+INSERT INTO `sys_menu_permission` VALUES ('125', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '34', '133', '医学数据维护-版本信息-删除版本信息');
+INSERT INTO `sys_menu_permission` VALUES ('126', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '34', '134', '医学数据维护-版本信息-更新版本详情信息');
+INSERT INTO `sys_menu_permission` VALUES ('127', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '34', '135', '医学数据维护-版本信息-删除版本详情信息');
+INSERT INTO `sys_menu_permission` VALUES ('128', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '34', '136', '医学数据维护-版本信息-增加版本详情信息');
+INSERT INTO `sys_menu_permission` VALUES ('129', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '35', '137', '医学数据维护-查体模板维护-查体模板列表');
+INSERT INTO `sys_menu_permission` VALUES ('130', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '35', '138', '医学数据维护-查体模板维护-保存');
+INSERT INTO `sys_menu_permission` VALUES ('131', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '35', '139', '医学数据维护-查体模板维护-根据科室删除');
+INSERT INTO `sys_menu_permission` VALUES ('132', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '35', '140', '医学数据维护-查体模板维护-获取未维护的科室(新增)');
+INSERT INTO `sys_menu_permission` VALUES ('133', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '35', '141', '医学数据维护-查体模板维护-获取未维护的科室(修改)');
+INSERT INTO `sys_menu_permission` VALUES ('134', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '35', '142', '医学数据维护-查体模板维护-根据科室获取查体模板');
+INSERT INTO `sys_menu_permission` VALUES ('135', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '36', '143', '医学数据维护-查体标签维护-保存');
+INSERT INTO `sys_menu_permission` VALUES ('136', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '36', '144', '医学数据维护-查体标签维护-删除(单条)');
+INSERT INTO `sys_menu_permission` VALUES ('137', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '36', '145', '医学数据维护-查体标签维护-删除(批量)');
+INSERT INTO `sys_menu_permission` VALUES ('138', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '36', '146', '医学数据维护-查体标签维护-获取查体标签池');
+INSERT INTO `sys_menu_permission` VALUES ('139', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '36', '147', '医学数据维护-查体标签维护-获取已排序查体标签');
+INSERT INTO `sys_menu_permission` VALUES ('140', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '37', '148', '医学数据维护-提示信息维护-保存');
+INSERT INTO `sys_menu_permission` VALUES ('141', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '37', '149', '医学数据维护-提示信息维护-删除(单条)');
+INSERT INTO `sys_menu_permission` VALUES ('142', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '37', '150', '医学数据维护-提示信息维护-删除(批量)');
+INSERT INTO `sys_menu_permission` VALUES ('143', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '37', '151', '医学数据维护-提示信息维护-提示信息列表');
+INSERT INTO `sys_menu_permission` VALUES ('144', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '37', '152', '医学数据维护-提示信息维护-根据id获取提示信息');
+INSERT INTO `sys_menu_permission` VALUES ('145', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '37', '153', '医学数据维护-提示信息维护-获取未关联标签列表');
+INSERT INTO `sys_menu_permission` VALUES ('148', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '37', '156', '医学数据维护-提示信息明细维护-删除(单条)');
+INSERT INTO `sys_menu_permission` VALUES ('149', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '37', '157', '医学数据维护-提示信息明细维护-删除(批量)');
+INSERT INTO `sys_menu_permission` VALUES ('150', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '37', '158', '医学数据维护-提示信息明细维护-根据id查询');
+INSERT INTO `sys_menu_permission` VALUES ('151', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '37', '159', '医学数据维护-提示信息明细维护-根据提示信息id查询');
+INSERT INTO `sys_menu_permission` VALUES ('152', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '37', '160', '医学数据维护-提示信息明细维护-保存');
+INSERT INTO `sys_menu_permission` VALUES ('153', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '34', '161', '医学数据维护-版本信息-根据版本id获取版本详情信息');
+INSERT INTO `sys_menu_permission` VALUES ('154', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '39', '162', '医学术语库维护-医学术语命名维护-获取医学术语命名');
+INSERT INTO `sys_menu_permission` VALUES ('155', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '39', '163', '医学术语库维护-医学术语命名维护-保存医学术语命名');
+INSERT INTO `sys_menu_permission` VALUES ('156', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '39', '164', '医学术语库维护-医学术语命名维护-更新医学术语命名');
+INSERT INTO `sys_menu_permission` VALUES ('157', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '39', '165', '医学术语库维护-医学术语命名维护-删除医学术语命名');
+INSERT INTO `sys_menu_permission` VALUES ('158', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '40', '166', '医学术语库维护-医学术语信息维护-获取医学术语信息');
+INSERT INTO `sys_menu_permission` VALUES ('159', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '40', '167', '医学术语库维护-医学术语信息维护-保存医学术语信息');
+INSERT INTO `sys_menu_permission` VALUES ('160', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '40', '168', '医学术语库维护-医学术语信息维护-更新医学术语信息');
+INSERT INTO `sys_menu_permission` VALUES ('161', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '40', '169', '医学术语库维护-医学术语信息维护-删除医学术语信息');
+INSERT INTO `sys_menu_permission` VALUES ('162', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '41', '170', '医学术语库维护-医学术语关系维护-获取医学术语关系');
+INSERT INTO `sys_menu_permission` VALUES ('163', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '41', '171', '医学术语库维护-医学术语关系维护-保存医学术语关系');
+INSERT INTO `sys_menu_permission` VALUES ('164', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '41', '172', '医学术语库维护-医学术语关系维护-删除医学术语关系');
+INSERT INTO `sys_menu_permission` VALUES ('165', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '42', '173', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识');
+INSERT INTO `sys_menu_permission` VALUES ('166', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '42', '174', '医学术语库维护-医学术语静态知识维护-保存医学术语静态知识');
+INSERT INTO `sys_menu_permission` VALUES ('167', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '42', '175', '医学术语库维护-医学术语静态知识维护-更新医学术语静态知识');
+INSERT INTO `sys_menu_permission` VALUES ('168', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '42', '176', '医学术语库维护-医学术语静态知识维护-删除医学术语静态知识');
+INSERT INTO `sys_menu_permission` VALUES ('169', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '27', '177', '医学数据维护-别名维护-标签搜索');
+
+-- ----------------------------
+-- Table structure for sys_permission
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_permission`;
+CREATE TABLE `sys_permission` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '资源ID',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `name` varchar(255) NOT NULL DEFAULT '' COMMENT '资源名称',
+  `permissionUrl` varchar(255) NOT NULL DEFAULT '' COMMENT '资源Url',
+  `method` varchar(255) NOT NULL DEFAULT 'ALL' COMMENT '资源允许的请求方式',
+  `descritpion` varchar(255) NOT NULL DEFAULT '' COMMENT '资源描述',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=178 DEFAULT CHARSET=utf8 COMMENT='系统资源表';
+
+-- ----------------------------
+-- Records of sys_permission
+-- ----------------------------
+INSERT INTO `sys_permission` VALUES ('8', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取用户信息列表', '/userInfo/getUserInfoPag', 'ALL', '朗通-客户中心-获取用户信息列表', null);
+INSERT INTO `sys_permission` VALUES ('9', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-账户信息-获取当前用户信息', '/userAuthentication/getuserAuthenticationInfo', 'ALL', '用户-机构中心-账户信息-获取当前用户信息', null);
+INSERT INTO `sys_permission` VALUES ('10', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-账户信息-用户认证', '/userAuthentication/userAuthentication', 'ALL', '用户-机构中心-账户信息-用户认证', null);
+INSERT INTO `sys_permission` VALUES ('11', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-账户信息-获取当前用户认证状态', '/userAuthentication/getUserAuthenticationStatus', 'ALL', '用户-机构中心-账户信息-获取当前用户认证状态', null);
+INSERT INTO `sys_permission` VALUES ('12', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '修改用户和机构信息', '/userInfo/updateUserInfoAll', 'ALL', '朗通-客户中心-修改用户和机构信息', null);
+INSERT INTO `sys_permission` VALUES ('14', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '根据用户Id删除', '/userInfo/updateDeleted', 'ALL', '朗通-客户中心-根据用户Id删除', null);
+INSERT INTO `sys_permission` VALUES ('15', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-已开通产品-关联产品与用户服务端', '/productService/genProductService', 'ALL', '用户-机构中心-已开通产品-关联产品与用户服务端', null);
+INSERT INTO `sys_permission` VALUES ('16', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-已开通产品-删除产品与用户服务端的关联', '/productService/deleteProductService', 'ALL', '用户-机构中心-已开通产品-删除产品与用户服务端的关联', null);
+INSERT INTO `sys_permission` VALUES ('17', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-已开通产品-获取当前登录用户产品服务分页列表', '/productService/getProductServiceByCurrentUser', 'ALL', '用户-机构中心-已开通产品-获取当前登录用户产品服务分页列表', null);
+INSERT INTO `sys_permission` VALUES ('18', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '模糊查询机构信息', '/userInfo/findOrganization', 'ALL', '朗通-客户中心-模糊查询机构信息', null);
+INSERT INTO `sys_permission` VALUES ('19', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '添加机构信息', '/userInfo/addOrganization', 'ALL', '朗通-客户中心-添加机构信息', null);
+INSERT INTO `sys_permission` VALUES ('20', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '添加用户信息和绑定机构', '/userInfo/addUserInfo', 'ALL', '朗通-客户中心-添加用户信息和绑定机构', null);
+INSERT INTO `sys_permission` VALUES ('21', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-已开通产品-查询当前登录用户已开通产品列表', '/diagLantoneProduct/opendedProductByCurrentUser', 'ALL', '用户-机构中心-已开通产品-查询当前登录用户已开通产品列表', null);
+INSERT INTO `sys_permission` VALUES ('22', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '审核用户信息接口', '/userInfo/auditUserInfoAll', 'ALL', '朗通-客户中心-审核用户信息接口', null);
+INSERT INTO `sys_permission` VALUES ('24', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-管理服务端-新增服务端', '/serviceInfo/createService', 'ALL', '用户-机构中心-管理服务端-新增服务端', null);
+INSERT INTO `sys_permission` VALUES ('25', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-管理服务端-修改服务端', '/serviceInfo/updateService', 'ALL', '用户-机构中心-管理服务端-修改服务端', null);
+INSERT INTO `sys_permission` VALUES ('26', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-管理服务端-获取当前登录用户的服务列表', '/serviceInfo/getServiceListByCurrentUser', 'ALL', '用户-机构中心-管理服务端-获取当前登录用户的服务列表', null);
+INSERT INTO `sys_permission` VALUES ('27', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-管理服务端-获取当前登录用户的服务分页列表', '/serviceInfo/getServiceListPageByCurrentUser', 'ALL', '用户-机构中心-管理服务端-获取当前登录用户的服务分页列表', null);
+INSERT INTO `sys_permission` VALUES ('28', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '根据用户id查询已开通的功能', '/productOrder/getInformationAvailableByUserId', 'ALL', '朗通-客户中心-根据用户id查询已开通的功能', null);
+INSERT INTO `sys_permission` VALUES ('29', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '根据用户id和产品id,启用和停用功能', '/productOrder/startAndendByuserId', 'ALL', '朗通-客户中心-根据用户id和产品id,启用和停用功能', null);
+INSERT INTO `sys_permission` VALUES ('30', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '根据用户id和产品id,删除开通信息', '/productOrder/delInformationAvailable', 'ALL', '朗通-客户中心-根据用户id和产品id,删除开通信息', null);
+INSERT INTO `sys_permission` VALUES ('31', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '根据用户id和产品id,修改开通时间', '/productOrder/modifyOpeningTime', 'ALL', '朗通-客户中心-根据用户id和产品id,修改开通时间', null);
+INSERT INTO `sys_permission` VALUES ('32', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '根据时间导出用户和机构信息', '/report/exportUserInfoAll', 'ALL', '朗通-客户中心-根据时间导出用户和机构信息', null);
+INSERT INTO `sys_permission` VALUES ('33', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-已经生成令牌-生成令牌', '/serviceToken/createServiceToken', 'ALL', '用户-机构中心-已经生成令牌-生成令牌', null);
+INSERT INTO `sys_permission` VALUES ('34', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-已经生成令牌-禁用令牌', '/serviceToken/disableToken', 'ALL', '用户-机构中心-已经生成令牌-禁用令牌', null);
+INSERT INTO `sys_permission` VALUES ('35', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-已经生成令牌-启用令牌', '/serviceToken/enableToken', 'ALL', '用户-机构中心-已经生成令牌-启用令牌', null);
+INSERT INTO `sys_permission` VALUES ('36', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-已经生成令牌-删除令牌', '/serviceToken/deleteTokenByProductServiceId', 'ALL', '用户-机构中心-已经生成令牌-删除令牌', null);
+INSERT INTO `sys_permission` VALUES ('37', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-控制台-待审核订单个数', '/productOrder/waitExamOrderCou', 'ALL', '朗通-控制台-待审核订单个数', null);
+INSERT INTO `sys_permission` VALUES ('38', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-控制台-待认证账号数量', '/userAuthentication/waitAuthen', 'ALL', '朗通-控制台-待认证账号数量', null);
+INSERT INTO `sys_permission` VALUES ('39', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-控制台-账号认证进度', '/userAuthentication/queryAuthProgress', 'ALL', '用户-控制台-账号认证进度', null);
+INSERT INTO `sys_permission` VALUES ('40', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-控制台-产品认证进度', '/productOrder/productAuthProgress', 'ALL', '用户-控制台-产品认证进度', null);
+INSERT INTO `sys_permission` VALUES ('41', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-控制台-已开通产品', '/productOrder/getConsoleOpened', 'ALL', '用户-控制台-已开通产品', null);
+INSERT INTO `sys_permission` VALUES ('42', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-控制台-可试用产品', '/productOrder/getConsoleOnTrial', 'ALL', '用户-控制台-可试用产品', null);
+INSERT INTO `sys_permission` VALUES ('43', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-控制台-产品立即试用接口', '/productOrder/openUpOnTrial', 'ALL', '用户-控制台-产品立即试用接口', null);
+INSERT INTO `sys_permission` VALUES ('44', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-控制台-可展示的选项卡', '/productOrder/enShowOption', 'ALL', '用户-控制台-可展示的选项卡', null);
+INSERT INTO `sys_permission` VALUES ('45', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-控制台-账户信息', '/user/getConsoleUserInfo', 'ALL', '用户-控制台-账户信息', null);
+INSERT INTO `sys_permission` VALUES ('46', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '查询所有用户已开通的功能', '/productOrder/getInformationAvailableAll', 'ALL', '朗通-客户中心-查询所有用户已开通的功能', null);
+INSERT INTO `sys_permission` VALUES ('47', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '查询用户信息和机构信息开通产品', '/userInfo/getUserOrganProductAll', 'ALL', '朗通-客户中心-查询用户信息和机构信息开通产品', null);
+INSERT INTO `sys_permission` VALUES ('48', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-个人中心-修改密码', '/user/midifyPassword', 'ALL', '朗通-个人中心-修改密码', null);
+INSERT INTO `sys_permission` VALUES ('51', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-更多服务-显示产品', '/morServices/showProductInfo', 'ALL', '用户-更多服务-显示产品', null);
+INSERT INTO `sys_permission` VALUES ('52', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-更多服务-开通产品', '/morServices/addOrder', 'ALL', '用户-更多服务-开通产品', null);
+INSERT INTO `sys_permission` VALUES ('53', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-产品线管理-添加产品', '/diagLantoneProduct/addProducts', 'ALL', '朗通-产品线管理-添加产品', null);
+INSERT INTO `sys_permission` VALUES ('54', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-管理服务端-删除服务端', '/serviceInfo/delService', 'ALL', '用户-机构中心-管理服务端-删除服务端', null);
+INSERT INTO `sys_permission` VALUES ('55', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-产品线管理-查询', '/diagLantoneProduct/selectProduct', 'ALL', '朗通-产品线管理-查询', null);
+INSERT INTO `sys_permission` VALUES ('56', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-产品线管理-修改', '/diagLantoneProduct/updateProduct', 'ALL', '朗通-产品线管理-修改', null);
+INSERT INTO `sys_permission` VALUES ('57', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-产品线管理-(启用/禁用)', '/diagLantoneProduct/updateServiceStatus', 'ALL', '朗通-产品线管理-(启用/禁用)', null);
+INSERT INTO `sys_permission` VALUES ('58', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-产品线管理-删除', '/diagLantoneProduct/deleteProduct', 'ALL', '朗通-产品线管理-删除', null);
+INSERT INTO `sys_permission` VALUES ('59', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-产品线管理-详情', '/diagLantoneProduct/opendedProduct', 'ALL', '朗通-产品线管理-详情', null);
+INSERT INTO `sys_permission` VALUES ('60', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-产品申请-显示所有订单明细', '/diagOrderDetails/getAllOrderDetials', 'ALL', '朗通-产品申请-显示所有订单明细', null);
+INSERT INTO `sys_permission` VALUES ('61', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-产品申请-审核', '/diagOrderDetails/auditStatus', 'ALL', '朗通-产品申请-审核', null);
+INSERT INTO `sys_permission` VALUES ('62', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-产品申请-显示所有订单', '/productOrder/getAllProductOrder', 'ALL', '朗通-产品申请-显示所有订单', null);
+INSERT INTO `sys_permission` VALUES ('63', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '默认-获取用户、机构、菜单信息', '/user/getUserOrgMenu', 'ALL', '全部用户-获取用户、机构、菜单信息', null);
+INSERT INTO `sys_permission` VALUES ('64', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-客户中心-分页查询注册用户信息接口', '/userInfo/queryUserInformation', 'ALL', '朗通-客户中心-分页查询注册用户信息接口', null);
+INSERT INTO `sys_permission` VALUES ('65', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-客户中心-分页查询机构信息接口', '/userInfo/queryMechanismInformation', 'ALL', '朗通-客户中心-分页查询机构信息接口', null);
+INSERT INTO `sys_permission` VALUES ('66', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-客户中心-分页查询已认证用户信息和机构信息及开通产品接口', '/userInfo/queryVerifiedUserOrganizationProduct', 'ALL', '朗通-客户中心-分页查询已认证用户信息和机构信息及开通产品接口', null);
+INSERT INTO `sys_permission` VALUES ('67', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-客户中心-分页查询认证中的用户信息接口', '/userInfo/queryAuthentication', 'ALL', '朗通-客户中心-分页查询认证中的用户信息接口', null);
+INSERT INTO `sys_permission` VALUES ('68', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '\r\n导出产品申请相关信息', '/reporExcel/exportProductOrderInfo', 'ALL', '导出产品申请相关信息', null);
+INSERT INTO `sys_permission` VALUES ('69', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-个人中心-获取个人信息', '/user/getPersonInfo', 'ALL', '朗通-个人中心-获取个人信息', null);
+INSERT INTO `sys_permission` VALUES ('70', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '朗通-个人中心-修改个人信息', '/user/updatePersonInfo', 'ALL', '朗通-个人中心-修改个人信息', null);
+INSERT INTO `sys_permission` VALUES ('71', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '客户中心-导出用户信息', '/report/exportUserInfo', 'ALL', '客户中心-导出用户信息', null);
+INSERT INTO `sys_permission` VALUES ('72', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '客户中心-导出机构信息', '/report/exportOrganization', 'ALL', '客户中心-导出机构信息', null);
+INSERT INTO `sys_permission` VALUES ('73', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '客户中心-导出认证中用户的信息:', '/report/exportKema', 'ALL', '客户中心-导出认证中用户的信息:', null);
+INSERT INTO `sys_permission` VALUES ('74', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '客户中心-导出已认证用户的信息', '/report/exportVerified', 'ALL', '客户中心-导出已认证用户的信息', null);
+INSERT INTO `sys_permission` VALUES ('75', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户更多服务-产品续费', '/morServices/addRenewalsInfo', 'ALL', '用户更多服务-产品续费', null);
+INSERT INTO `sys_permission` VALUES ('76', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '客户中心-超管修改用户信息接口', '/userInfo/updateUserInfo', 'ALL', '客户中心-超管修改用户信息接口', null);
+INSERT INTO `sys_permission` VALUES ('77', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '客户中心-超管修改机构信息接口', '/userInfo/updateOrganizations', 'ALL', '客户中心-超管修改机构信息接口', null);
+INSERT INTO `sys_permission` VALUES ('78', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '续费管理-显示', '/userRenewals/renewalsInfos', 'ALL', '续费管理-显示', null);
+INSERT INTO `sys_permission` VALUES ('79', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户-机构中心-已经生成令牌-获取令牌', '/serviceToken/getTokenByProductServiceId', 'ALL', '用户-机构中心-已经生成令牌-获取令牌', null);
+INSERT INTO `sys_permission` VALUES ('80', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '续费管理-删除', '/userRenewals/deleteRenewalsInfos', 'ALL', '续费管理-删除', null);
+INSERT INTO `sys_permission` VALUES ('81', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '续费管理-续费', '/productOrder/modifyOpeningTime', 'ALL', '续费管理-续费', null);
+INSERT INTO `sys_permission` VALUES ('82', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '续费管理-取消续费', '/userRenewals/cancelRenewalsInfos', 'ALL', '续费管理-取消续费', null);
+INSERT INTO `sys_permission` VALUES ('83', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '客户中心-认证用户信息和机构信息不通过接口(新)', '/userInfo/auditUserInfoAllNopass', 'ALL', '客户中心-认证用户信息和机构信息不通过接口(新)', null);
+INSERT INTO `sys_permission` VALUES ('84', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '客户中心-认证用户信息和机构信息通过接口(新)', '/userInfo/auditUserInfoAllPass', 'ALL', '客户中心-认证用户信息和机构信息通过接口(新)', null);
+INSERT INTO `sys_permission` VALUES ('85', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '客户中心-查询用户续费数量', '/productOrder/getUserWaitingRenewal', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('86', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '客户中心-查询用户是否有待审核的产品数量', '/productOrder/getOrderByUserToAudit', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('87', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '客户中心-已开通产品状态校验', '/productOrder/openProductCheck', 'ALL', '客户中心-已开通产品状态校验', null);
+INSERT INTO `sys_permission` VALUES ('88', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-独立标签维护-新增|修改', '/questionInfo/saveOrUpdate', 'ALL', '医学数据维护-独立标签维护-新增|修改', null);
+INSERT INTO `sys_permission` VALUES ('89', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-独立标签维护-删除', '/questionInfo/delete', 'ALL', '医学数据维护-独立标签维护-删除', null);
+INSERT INTO `sys_permission` VALUES ('90', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-独立标签维护-分页列表', '/questionInfo/list', 'ALL', '医学数据维护-独立标签维护-分页列表', null);
+INSERT INTO `sys_permission` VALUES ('91', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-标签组维护-新增|修改', '/questionInfo/saveOrUpdate', 'ALL', '医学数据维护-标签组维护-新增|修改', null);
+INSERT INTO `sys_permission` VALUES ('92', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-标签组维护-删除', '/questionInfo/delete', 'ALL', '医学数据维护-标签组维护-删除', null);
+INSERT INTO `sys_permission` VALUES ('93', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-标签组维护-分页列表', '/questionInfo/list', 'ALL', '医学数据维护-标签组维护-分页列表', null);
+INSERT INTO `sys_permission` VALUES ('94', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-标签组维护-获取特殊标签(同伴|无)', '/questionInfo/getSpecial', 'ALL', '医学数据维护-标签组维护-获取特殊标签(同伴|无)', null);
+INSERT INTO `sys_permission` VALUES ('95', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-标签组维护-根据id返回内容', '/questionInfo/getById', 'ALL', '医学数据维护-标签组维护-根据id返回内容', null);
+INSERT INTO `sys_permission` VALUES ('96', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-标签组维护-根据多个id返回内容', '/questionInfo/getByIds', 'ALL', '医学数据维护-标签组维护-根据多个id返回内容', null);
+INSERT INTO `sys_permission` VALUES ('98', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-标签组维护-检索', '/questionInfo/index', 'ALL', '医学数据维护-标签组维护-检索', null);
+INSERT INTO `sys_permission` VALUES ('99', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-科室维护-修改', '/deptInfo/updateDeptInfo', 'ALL', '医学数据维护-科室维护-修改', null);
+INSERT INTO `sys_permission` VALUES ('100', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-科室维护-删除', '/deptInfo/deleteDeptInfo', 'ALL', '医学数据维护-科室维护-删除', null);
+INSERT INTO `sys_permission` VALUES ('101', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-科室维护-查询', '/deptInfo/getDeptInfo', 'ALL', '医学数据维护-科室维护-查询', null);
+INSERT INTO `sys_permission` VALUES ('102', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-科室维护-详情', '/deptInfo/getDeptInfoDetials', 'ALL', '医学数据维护-科室维护-详情', null);
+INSERT INTO `sys_permission` VALUES ('104', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-科室维护-添加', '/deptInfo/addDeptInfo', 'ALL', '医学数据维护-科室维护-添加', null);
+INSERT INTO `sys_permission` VALUES ('105', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-别名维护-新增|修改', '/retrieval/addTagRetrieval', 'ALL', '医学数据维护-别名维护-新增|修改', null);
+INSERT INTO `sys_permission` VALUES ('106', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-别名维护-详情', '/retrieval/getRetrievalsByTag', 'ALL', '医学数据维护-别名维护-详情', null);
+INSERT INTO `sys_permission` VALUES ('107', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-别名维护-删除', '/retrieval/delRetrievalsByQuesId', 'ALL', '医学数据维护-别名维护-删除', null);
+INSERT INTO `sys_permission` VALUES ('108', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-别名维护-导入', '/retrieval/retrievalExcelIm', 'ALL', '医学数据维护-别名维护-导入', null);
+INSERT INTO `sys_permission` VALUES ('109', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-别名维护-列表', '/retrieval/retrievalList', 'ALL', '医学数据维护-别名维护-列表', null);
+INSERT INTO `sys_permission` VALUES ('110', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-模板维护-添加', '/moduleInfo/saveModuleInfo', 'ALL', '医学数据维护-模板维护-添加', null);
+INSERT INTO `sys_permission` VALUES ('111', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-模板维护-修改', '/moduleInfo/updateModuleInfo', 'ALL', '医学数据维护-模板维护-修改', null);
+INSERT INTO `sys_permission` VALUES ('112', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-模板维护-删除', '/moduleInfo/delete', 'ALL', '医学数据维护-模板维护-删除', null);
+INSERT INTO `sys_permission` VALUES ('113', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-模板维护-获取标签池信息', '/moduleInfo/getQuestionInfos', 'ALL', '医学数据维护-模板维护-获取标签池信息', null);
+INSERT INTO `sys_permission` VALUES ('114', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-模板维护-获取子模板信息', '/moduleInfo/getModuleInfo', 'ALL', '医学数据维护-模板维护-获取子模板信息', null);
+INSERT INTO `sys_permission` VALUES ('115', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-模板维护-获取模板列表', '/moduleInfo/getModuleInfoList', 'ALL', '医学数据维护-模板维护-获取模板列表', null);
+INSERT INTO `sys_permission` VALUES ('116', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-模板维护-获取模板明细信息', '/moduleInfo/getModuleDetailInfo', 'ALL', '医学数据维护-模板维护-获取模板明细信息', null);
+INSERT INTO `sys_permission` VALUES ('117', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-模板维护-获取单个模板信息(修改用)', '/moduleInfo/getModuleInfoOne', 'ALL', '医学数据维护-模板维护-获取单个模板信息(修改用)', null);
+INSERT INTO `sys_permission` VALUES ('118', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-常见症状维护-添加和修改', '/questionUsual/addQuestionUsual', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('119', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-常见症状维护-删除', '/questionUsual/deleteQuestionUsual', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('120', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-常见症状维护-获取科室名称', '/questionUsual/getDeptName', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('121', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-常见症状维护-获取标签信息', '/questionUsual/getQuestionInfo', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('122', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-常见症状维护-根据科室获取常用标签信息(修改和详情用)', '/questionUsual/getQuestionUsualByDept', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('123', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-常见症状维护-获取科室信息(常见症状维护系统页面查询)', '/questionUsual/getDeptInfos', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('124', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-免责申明-获取免责申明详情', '/disclaimerInformation/getDisclaimerInformations', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('125', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-免责申明-增加免责申明详情', '/disclaimerInformation/addDisclaimerInformations', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('126', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-免责申明-修改免责申明详情', '/disclaimerInformation/updateDisclaimerInformations', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('127', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-免责申明-删除免责申明详情', '/disclaimerInformation/cancelDisclaimerInformations', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('128', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-免责申明-启用免责申明详情', '/disclaimerInformation/startDisclaimerInformations', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('129', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-免责申明-停用免责申明详情', '/disclaimerInformation/endDisclaimerInformations', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('130', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-版本信息-获取版本信息', '/versionInfo/getVersionInfoAlls', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('131', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-版本信息-保存版本信息', '/versionInfo/saveVersionInfoAlls', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('132', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-版本信息-更新版本信息', '/versionInfo/updateVersionInfoAlls', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('133', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-版本信息-删除版本信息', '/versionInfo/cancelVersionInfoAlls', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('134', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-版本信息-更新版本详情信息', '/versionDetail/updateVersionDetails', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('135', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-版本信息-删除版本详情信息', '/versionDetail/cancelVersionDetails', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('136', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-版本信息-增加版本详情信息', '/versionDetail/addVersionDetails', 'ALL', '', null);
+INSERT INTO `sys_permission` VALUES ('137', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-查体模板维护-查体模板列表', '/deptVital/getDeptVitalPage', 'ALL', '医学数据维护-查体模板维护-查体模板列表', null);
+INSERT INTO `sys_permission` VALUES ('138', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-查体模板维护-保存', '/deptVital/saveDeptVitals', 'ALL', '医学数据维护-查体模板维护-保存', null);
+INSERT INTO `sys_permission` VALUES ('139', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-查体模板维护-根据科室删除', '/deptVital/delAllDeptVitalList', 'ALL', '医学数据维护-查体模板维护-根据科室删除', null);
+INSERT INTO `sys_permission` VALUES ('140', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-查体模板维护-获取未维护的科室(新增)', '/deptVital/getDeptShortList_create', 'ALL', '医学数据维护-查体模板维护-获取未维护的科室(新增)', null);
+INSERT INTO `sys_permission` VALUES ('141', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-查体模板维护-获取未维护的科室(修改)', '/deptVital/getDeptShortList_modify', 'ALL', '医学数据维护-查体模板维护-获取未维护的科室(修改)', null);
+INSERT INTO `sys_permission` VALUES ('142', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-查体模板维护-根据科室获取查体模板', '/deptVital/getModuleByDeptId', 'ALL', '医学数据维护-查体模板维护-根据科室获取查体模板', null);
+INSERT INTO `sys_permission` VALUES ('143', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-查体标签维护-保存', '/vitalOrder/saveAll', 'ALL', '医学数据维护-查体标签维护-保存', null);
+INSERT INTO `sys_permission` VALUES ('144', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-查体标签维护-删除(单条)', '/vitalOrder/deleteVitalOrder', 'ALL', '医学数据维护-查体标签维护-删除(单条)', null);
+INSERT INTO `sys_permission` VALUES ('145', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-查体标签维护-删除(批量)', '/vitalOrder/deleteVitalOrders', 'ALL', '医学数据维护-查体标签维护-删除(批量)', null);
+INSERT INTO `sys_permission` VALUES ('146', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-查体标签维护-获取查体标签池', '/vitalOrder/getUnOrderedVitalList', 'ALL', '医学数据维护-查体标签维护-获取查体标签池', null);
+INSERT INTO `sys_permission` VALUES ('147', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-查体标签维护-获取已排序查体标签', '/vitalOrder/getVitalOrderList', 'ALL', '医学数据维护-查体标签维护-获取已排序查体标签', null);
+INSERT INTO `sys_permission` VALUES ('148', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-提示信息维护-保存', '/introduceInfo/saveIntroduce', 'ALL', '医学数据维护-提示信息维护-保存', null);
+INSERT INTO `sys_permission` VALUES ('149', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-提示信息维护-删除(单条)', '/introduceInfo/deleteRecord', 'ALL', '医学数据维护-提示信息维护-删除(单条)', null);
+INSERT INTO `sys_permission` VALUES ('150', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-提示信息维护-删除(批量)', '/introduceInfo/deleteRecords', 'ALL', '医学数据维护-提示信息维护-删除(批量)', null);
+INSERT INTO `sys_permission` VALUES ('151', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-提示信息维护-提示信息列表', '/introduceInfo/getIntroducePage', 'ALL', '医学数据维护-提示信息维护-提示信息列表', null);
+INSERT INTO `sys_permission` VALUES ('152', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-提示信息维护-根据id获取提示信息', '/introduceInfo/getIntroduceById', 'ALL', '医学数据维护-提示信息维护-根据id获取提示信息', null);
+INSERT INTO `sys_permission` VALUES ('153', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-提示信息维护-获取未关联标签列表', '/introduceInfo/getAllQuestionList', 'ALL', '医学数据维护-提示信息维护-获取未关联标签列表', null);
+INSERT INTO `sys_permission` VALUES ('156', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-提示信息明细维护-删除(单条)', '/introduceDetail/deleteRecord', 'ALL', '医学数据维护-提示信息明细维护-删除(单条)', null);
+INSERT INTO `sys_permission` VALUES ('157', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-提示信息明细维护-删除(批量)', '/introduceDetail/deleteRecords', 'ALL', '医学数据维护-提示信息明细维护-删除(批量)', null);
+INSERT INTO `sys_permission` VALUES ('158', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-提示信息明细维护-根据id查询', '/introduceDetail/getById', 'ALL', '医学数据维护-提示信息明细维护-根据id查询', null);
+INSERT INTO `sys_permission` VALUES ('159', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-提示信息明细维护-根据提示信息id查询', '/introduceDetail/getByIntroduceId', 'ALL', '医学数据维护-提示信息明细维护-根据提示信息id查询', null);
+INSERT INTO `sys_permission` VALUES ('160', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-提示信息明细维护-保存', '/introduceDetail/saveRecord', 'ALL', '医学数据维护-提示信息明细维护-保存', null);
+INSERT INTO `sys_permission` VALUES ('161', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-版本信息-根据版本id获取版本详情信息', '/versionDetail/getDetailById', 'ALL', '医学数据维护-版本信息-根据版本id获取版本详情信息', null);
+INSERT INTO `sys_permission` VALUES ('162', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语命名维护-获取医学术语命名', '/library/getTerm', 'ALL', '医学术语库维护-医学术语命名维护-获取医学术语命名', null);
+INSERT INTO `sys_permission` VALUES ('163', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语命名维护-保存医学术语命名', '/versionDetail/getDetailById1', 'ALL', '医学术语库维护-医学术语命名维护-保存医学术语命名', null);
+INSERT INTO `sys_permission` VALUES ('164', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语命名维护-更新医学术语命名', '/versionDetail/getDetailById2', 'ALL', '医学术语库维护-医学术语命名维护-更新医学术语命名', null);
+INSERT INTO `sys_permission` VALUES ('165', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语命名维护-删除医学术语命名', '/versionDetail/getDetailById3', 'ALL', '医学术语库维护-医学术语命名维护-删除医学术语命名', null);
+INSERT INTO `sys_permission` VALUES ('166', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语信息维护-获取医学术语信息', '/library/getTermInfo', 'ALL', '医学术语库维护-医学术语信息维护-获取医学术语信息', null);
+INSERT INTO `sys_permission` VALUES ('167', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语信息维护-保存医学术语信息', '/versionDetail/getDetailById4', 'ALL', '医学术语库维护-医学术语信息维护-保存医学术语信息', null);
+INSERT INTO `sys_permission` VALUES ('168', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语信息维护-更新医学术语信息', '/versionDetail/getDetailById5', 'ALL', '医学术语库维护-医学术语信息维护-更新医学术语信息', null);
+INSERT INTO `sys_permission` VALUES ('169', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语信息维护-删除医学术语信息', '/versionDetail/getDetailById6', 'ALL', '医学术语库维护-医学术语信息维护-删除医学术语信息', null);
+INSERT INTO `sys_permission` VALUES ('170', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语关系维护-获取医学术语关系', '/versionDetail/getDetailById7', 'ALL', '医学术语库维护-医学术语关系维护-获取医学术语关系', null);
+INSERT INTO `sys_permission` VALUES ('171', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语关系维护-保存医学术语关系', '/versionDetail/getDetailById8', 'ALL', '医学术语库维护-医学术语关系维护-保存医学术语关系', null);
+INSERT INTO `sys_permission` VALUES ('172', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语关系维护-删除医学术语关系', '/versionDetail/getDetailById9', 'ALL', '医学术语库维护-医学术语关系维护-删除医学术语关系', null);
+INSERT INTO `sys_permission` VALUES ('173', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识', '/versionDetail/getDetailById10', 'ALL', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识', null);
+INSERT INTO `sys_permission` VALUES ('174', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语静态知识维护-保存医学术语静态知识', '/versionDetail/getDetailById11', 'ALL', '医学术语库维护-医学术语静态知识维护-保存医学术语静态知识', null);
+INSERT INTO `sys_permission` VALUES ('175', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语静态知识维护-更新医学术语静态知识', '/versionDetail/getDetailById12', 'ALL', '医学术语库维护-医学术语静态知识维护-更新医学术语静态知识', null);
+INSERT INTO `sys_permission` VALUES ('176', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语静态知识维护-删除医学术语静态知识', '/versionDetail/getDetailById13', 'ALL', '医学术语库维护-医学术语静态知识维护-删除医学术语静态知识', null);
+INSERT INTO `sys_permission` VALUES ('177', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-别名维护-标签搜索', '/questionInfo/indexRev', 'ALL', '医学数据维护-别名维护-标签搜索', null);
+
+-- ----------------------------
+-- Table structure for sys_role
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role`;
+CREATE TABLE `sys_role` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色ID',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `name` varchar(255) NOT NULL DEFAULT '' COMMENT '角色名称',
+  `roleLevel` int(11) NOT NULL DEFAULT '0' COMMENT '角色等级',
+  `descritpion` varchar(255) NOT NULL DEFAULT '' COMMENT '角色描述',
+  `menuItems` varchar(255) NOT NULL DEFAULT '' COMMENT '菜单ID:对应角色ID',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='系统角色表';
+
+-- ----------------------------
+-- Records of sys_role
+-- ----------------------------
+INSERT INTO `sys_role` VALUES ('1', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '普通用户', '0', '', '', '');
+INSERT INTO `sys_role` VALUES ('2', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '管理员', '0', '', '', '');
+INSERT INTO `sys_role` VALUES ('3', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护人员', '0', '', '', '');
+INSERT INTO `sys_role` VALUES ('4', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护人员', '0', '', '', '');
+INSERT INTO `sys_role` VALUES ('5', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '待录角色', '0', '', '', null);
+
+-- ----------------------------
+-- Table structure for sys_role_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role_menu`;
+CREATE TABLE `sys_role_menu` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `role_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '角色id',
+  `menu_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '菜单id',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8 COMMENT='角色和菜单的映射表';
+
+-- ----------------------------
+-- Records of sys_role_menu
+-- ----------------------------
+INSERT INTO `sys_role_menu` VALUES ('1', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '1', '用户-控制台');
+INSERT INTO `sys_role_menu` VALUES ('2', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '2', '用户-更多服务');
+INSERT INTO `sys_role_menu` VALUES ('3', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '3', '用户-机构中心');
+INSERT INTO `sys_role_menu` VALUES ('4', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '4', '用户-机构中心-账号信息');
+INSERT INTO `sys_role_menu` VALUES ('5', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '5', '用户-机构中心-已开通产品');
+INSERT INTO `sys_role_menu` VALUES ('6', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '6', '用户-机构中心-安全设置');
+INSERT INTO `sys_role_menu` VALUES ('7', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '9', '用户-机构中心-管理服务端');
+INSERT INTO `sys_role_menu` VALUES ('8', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '14', '用户-机构中心-已生成令牌');
+INSERT INTO `sys_role_menu` VALUES ('9', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '10', '朗通-客户中心');
+INSERT INTO `sys_role_menu` VALUES ('10', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '11', '朗通-客户中心-机构信息');
+INSERT INTO `sys_role_menu` VALUES ('11', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '12', '朗通-控制台');
+INSERT INTO `sys_role_menu` VALUES ('12', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '15', '朗通-客户中心-注册用户');
+INSERT INTO `sys_role_menu` VALUES ('13', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '16', '朗通-客户中心-审核超管信息');
+INSERT INTO `sys_role_menu` VALUES ('14', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '17', '朗通-订单系统');
+INSERT INTO `sys_role_menu` VALUES ('15', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '18', '朗通-订单系统-产品线申请列表');
+INSERT INTO `sys_role_menu` VALUES ('16', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '19', '朗通-产品线管理');
+INSERT INTO `sys_role_menu` VALUES ('17', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '20', '朗通-个人中心');
+INSERT INTO `sys_role_menu` VALUES ('21', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '21', '朗通-客户中心-已认证超管信息');
+INSERT INTO `sys_role_menu` VALUES ('22', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '22', '朗通-订单系统-产品续费列表');
+INSERT INTO `sys_role_menu` VALUES ('23', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '23', '朗通-医学数据维护');
+INSERT INTO `sys_role_menu` VALUES ('24', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '24', '朗通-医学数据维护-标签组维护');
+INSERT INTO `sys_role_menu` VALUES ('25', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '25', '朗通-医学数据维护-独立类型标签维护');
+INSERT INTO `sys_role_menu` VALUES ('26', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '26', '朗通-医学数据维护-查体标签维护');
+INSERT INTO `sys_role_menu` VALUES ('27', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '27', '朗通-医学数据维护-别名维护');
+INSERT INTO `sys_role_menu` VALUES ('28', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '28', '朗通-医学数据维护-模版维护');
+INSERT INTO `sys_role_menu` VALUES ('29', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '29', '朗通-医学数据维护-查体模版维护');
+INSERT INTO `sys_role_menu` VALUES ('30', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '30', '朗通-医学数据维护-icss科室维护');
+INSERT INTO `sys_role_menu` VALUES ('31', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '31', '朗通-医学数据维护-常见症状维护');
+INSERT INTO `sys_role_menu` VALUES ('32', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '32', '朗通-医学数据维护-提示信息维护');
+INSERT INTO `sys_role_menu` VALUES ('33', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '33', '朗通-医学数据维护-免责声明维护');
+INSERT INTO `sys_role_menu` VALUES ('34', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '34', '朗通-医学数据维护-版本信息维护');
+INSERT INTO `sys_role_menu` VALUES ('35', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '35', '朗通-医学数据维护-查体模板维护');
+INSERT INTO `sys_role_menu` VALUES ('36', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '36', '朗通-医学数据维护-查体标签维护');
+INSERT INTO `sys_role_menu` VALUES ('37', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '37', '朗通-医学数据维护-提示信息维护');
+INSERT INTO `sys_role_menu` VALUES ('38', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '38', '朗通-医学术语库维护');
+INSERT INTO `sys_role_menu` VALUES ('39', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '39', '朗通-医学术语库维护-医学术语命名维护');
+INSERT INTO `sys_role_menu` VALUES ('40', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '40', '朗通-医学术语库维护-医学术语信息维护');
+INSERT INTO `sys_role_menu` VALUES ('41', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '41', '朗通-医学术语库维护-医学术语关系维护');
+INSERT INTO `sys_role_menu` VALUES ('42', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '42', '朗通-医学术语库维护-医学术语静态知识维护');
+
+-- ----------------------------
+-- Table structure for sys_role_permission
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role_permission`;
+CREATE TABLE `sys_role_permission` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `role_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '角色id',
+  `permission_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '资源id',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=195 DEFAULT CHARSET=utf8 COMMENT='角色和资源的映射表';
+
+-- ----------------------------
+-- Records of sys_role_permission
+-- ----------------------------
+INSERT INTO `sys_role_permission` VALUES ('26', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '15', '用户-机构中心-已开通产品-关联产品与用户服务端');
+INSERT INTO `sys_role_permission` VALUES ('27', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '16', '用户-机构中心-已开通产品-删除产品与用户服务端的关联');
+INSERT INTO `sys_role_permission` VALUES ('28', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '17', '用户-机构中心-已开通产品-获取当前登录用户产品服务分页列表');
+INSERT INTO `sys_role_permission` VALUES ('29', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '24', '用户-机构中心-管理服务端-新增服务端');
+INSERT INTO `sys_role_permission` VALUES ('30', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '25', '用户-机构中心-管理服务端-修改服务端');
+INSERT INTO `sys_role_permission` VALUES ('31', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '26', '用户-机构中心-管理服务端-获取当前登录用户的服务列表');
+INSERT INTO `sys_role_permission` VALUES ('32', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '27', '用户-机构中心-管理服务端-获取当前登录用户的服务分页列表');
+INSERT INTO `sys_role_permission` VALUES ('33', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '9', '用户-机构中心-账户信息-获取当前用户信息');
+INSERT INTO `sys_role_permission` VALUES ('34', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '10', '用户-机构中心-账户信息-用户认证');
+INSERT INTO `sys_role_permission` VALUES ('35', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '11', '用户-机构中心-账户信息-获取当前用户认证状态');
+INSERT INTO `sys_role_permission` VALUES ('36', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '33', '用户-机构中心-已经生成令牌-生成令牌');
+INSERT INTO `sys_role_permission` VALUES ('37', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '34', '用户-机构中心-已经生成令牌-禁用令牌');
+INSERT INTO `sys_role_permission` VALUES ('38', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '35', '用户-机构中心-已经生成令牌-启用令牌');
+INSERT INTO `sys_role_permission` VALUES ('39', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '36', '用户-机构中心-已经生成令牌-删除令牌');
+INSERT INTO `sys_role_permission` VALUES ('40', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '39', '用户-控制台-账号认证进度');
+INSERT INTO `sys_role_permission` VALUES ('41', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '40', '用户-控制台-产品认证进度');
+INSERT INTO `sys_role_permission` VALUES ('42', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '41', '用户-控制台-已开通产品');
+INSERT INTO `sys_role_permission` VALUES ('43', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '42', '用户-控制台-可试用产品');
+INSERT INTO `sys_role_permission` VALUES ('44', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '43', '用户-控制台-产品立即试用接口');
+INSERT INTO `sys_role_permission` VALUES ('45', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '44', '用户-控制台-可展示的选项卡');
+INSERT INTO `sys_role_permission` VALUES ('46', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '45', '用户-控制台-账户信息');
+INSERT INTO `sys_role_permission` VALUES ('47', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '51', '用户-更多服务-显示产品');
+INSERT INTO `sys_role_permission` VALUES ('48', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '52', '用户-更多服务-开通产品');
+INSERT INTO `sys_role_permission` VALUES ('49', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '8', '朗通-客户中心-获取用户信息列表');
+INSERT INTO `sys_role_permission` VALUES ('50', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '12', '朗通-客户中心-修改用户和机构信息');
+INSERT INTO `sys_role_permission` VALUES ('51', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '14', '朗通-客户中心-根据用户Id删除');
+INSERT INTO `sys_role_permission` VALUES ('52', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '18', '朗通-客户中心-模糊查询机构信息');
+INSERT INTO `sys_role_permission` VALUES ('53', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '19', '朗通-客户中心-添加机构信息');
+INSERT INTO `sys_role_permission` VALUES ('54', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '20', '朗通-客户中心-添加用户信息和绑定机构');
+INSERT INTO `sys_role_permission` VALUES ('55', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '22', '朗通-客户中心-审核用户信息接口');
+INSERT INTO `sys_role_permission` VALUES ('56', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '31', '朗通-客户中心-根据用户id和产品id,修改开通时间');
+INSERT INTO `sys_role_permission` VALUES ('57', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '28', '朗通-客户中心-根据用户id查询已开通的功能');
+INSERT INTO `sys_role_permission` VALUES ('58', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '29', '朗通-客户中心-根据用户id和产品id,启用和停用功能');
+INSERT INTO `sys_role_permission` VALUES ('59', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '30', '朗通-客户中心-根据用户id和产品id,删除开通信息');
+INSERT INTO `sys_role_permission` VALUES ('60', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '32', '朗通-客户中心-根据时间导出用户和机构信息');
+INSERT INTO `sys_role_permission` VALUES ('61', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '37', '朗通-控制台-待审核订单个数');
+INSERT INTO `sys_role_permission` VALUES ('62', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '38', '朗通-控制台-待认证账号数量');
+INSERT INTO `sys_role_permission` VALUES ('63', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '46', '朗通-客户中心-查询所有用户已开通的功能');
+INSERT INTO `sys_role_permission` VALUES ('64', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '47', '朗通-客户中心-查询用户信息和机构信息开通产品');
+INSERT INTO `sys_role_permission` VALUES ('65', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '48', '朗通-个人中心-修改密码');
+INSERT INTO `sys_role_permission` VALUES ('66', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '53', '朗通-产品线管理-添加产品');
+INSERT INTO `sys_role_permission` VALUES ('69', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '21', '用户-机构中心-已开通产品-查询当前登录用户已开通产品列表');
+INSERT INTO `sys_role_permission` VALUES ('70', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '54', '用户-机构中心-管理服务端-删除服务端');
+INSERT INTO `sys_role_permission` VALUES ('72', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '55', '朗通-产品线管理-查询');
+INSERT INTO `sys_role_permission` VALUES ('73', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '56', '朗通-产品线管理-修改');
+INSERT INTO `sys_role_permission` VALUES ('74', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '57', '朗通-产品线管理-(启用/禁用)');
+INSERT INTO `sys_role_permission` VALUES ('75', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '58', '朗通-产品线管理-删除');
+INSERT INTO `sys_role_permission` VALUES ('76', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '59', '朗通-产品线管理-详情');
+INSERT INTO `sys_role_permission` VALUES ('77', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '60', '朗通-产品申请-显示所有订单明细');
+INSERT INTO `sys_role_permission` VALUES ('78', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '61', '朗通-产品申请-审核');
+INSERT INTO `sys_role_permission` VALUES ('79', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '62', '朗通-产品申请-显示所有订单');
+INSERT INTO `sys_role_permission` VALUES ('80', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '63', '朗通-默认-获取用户、机构、菜单信息');
+INSERT INTO `sys_role_permission` VALUES ('81', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '63', '用户-默认-获取用户、机构、菜单信息');
+INSERT INTO `sys_role_permission` VALUES ('82', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '64', '朗通-客户中心-分页查询注册用户信息接口');
+INSERT INTO `sys_role_permission` VALUES ('83', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '65', '朗通-客户中心-分页查询机构信息接口');
+INSERT INTO `sys_role_permission` VALUES ('84', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '66', '朗通-客户中心-分页查询已认证用户信息和机构信息及开通产品接口');
+INSERT INTO `sys_role_permission` VALUES ('85', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '67', '朗通-客户中心-分页查询认证中的用户信息接口');
+INSERT INTO `sys_role_permission` VALUES ('86', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '68', '导出产品申请相关信息');
+INSERT INTO `sys_role_permission` VALUES ('87', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '69', '朗通-个人中心-获取个人信息');
+INSERT INTO `sys_role_permission` VALUES ('88', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '70', '朗通-个人中心-修改个人信息');
+INSERT INTO `sys_role_permission` VALUES ('89', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '71', '客户中心-导出用户信息');
+INSERT INTO `sys_role_permission` VALUES ('90', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '72', '客户中心-导出机构信息');
+INSERT INTO `sys_role_permission` VALUES ('91', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '73', '客户中心-导出认证中用户的信息:');
+INSERT INTO `sys_role_permission` VALUES ('92', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '74', '客户中心-导出已认证用户的信息');
+INSERT INTO `sys_role_permission` VALUES ('93', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '75', '用户更多服务-产品续费');
+INSERT INTO `sys_role_permission` VALUES ('94', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '76', '客户中心-超管修改用户信息接口');
+INSERT INTO `sys_role_permission` VALUES ('95', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '77', '客户中心-超管修改机构信息接口');
+INSERT INTO `sys_role_permission` VALUES ('96', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '78', '续费管理-显示');
+INSERT INTO `sys_role_permission` VALUES ('97', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '79', '用户-机构中心-已经生成令牌-获取令牌');
+INSERT INTO `sys_role_permission` VALUES ('98', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '80', '续费管理-显示');
+INSERT INTO `sys_role_permission` VALUES ('99', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '81', '续费管理-续费');
+INSERT INTO `sys_role_permission` VALUES ('100', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '82', '续费管理-取消续费');
+INSERT INTO `sys_role_permission` VALUES ('101', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '83', '客户中心-认证用户信息和机构信息不通过接口(新)');
+INSERT INTO `sys_role_permission` VALUES ('102', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '84', '客户中心-认证用户信息和机构信息通过接口(新)');
+INSERT INTO `sys_role_permission` VALUES ('103', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '87', '客户中心-已开通产品状态校验');
+INSERT INTO `sys_role_permission` VALUES ('104', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '88', '医学数据维护-独立标签维护-新增|修改');
+INSERT INTO `sys_role_permission` VALUES ('105', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '89', '医学数据维护-独立标签维护-删除');
+INSERT INTO `sys_role_permission` VALUES ('106', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '90', '医学数据维护-独立标签维护-分页列表');
+INSERT INTO `sys_role_permission` VALUES ('107', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '91', '医学数据维护-标签组维护-新增|修改');
+INSERT INTO `sys_role_permission` VALUES ('108', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '92', '医学数据维护-标签组维护-删除');
+INSERT INTO `sys_role_permission` VALUES ('109', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '93', '医学数据维护-标签组维护-分页列表');
+INSERT INTO `sys_role_permission` VALUES ('110', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '94', '医学数据维护-标签组维护-获取特殊标签(同伴|无)');
+INSERT INTO `sys_role_permission` VALUES ('111', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '95', '医学数据维护-标签组维护-根据id返回内容');
+INSERT INTO `sys_role_permission` VALUES ('112', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '96', '医学数据维护-标签组维护-根据多个id返回内容');
+INSERT INTO `sys_role_permission` VALUES ('113', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '98', '医学数据维护-标签组维护-检索');
+INSERT INTO `sys_role_permission` VALUES ('114', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '99', '医学数据维护-科室维护-修改');
+INSERT INTO `sys_role_permission` VALUES ('115', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '100', '医学数据维护-科室维护-删除');
+INSERT INTO `sys_role_permission` VALUES ('116', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '101', '医学数据维护-科室维护-查询');
+INSERT INTO `sys_role_permission` VALUES ('117', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '102', '医学数据维护-科室维护-详情');
+INSERT INTO `sys_role_permission` VALUES ('119', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '104', '医学数据维护-科室维护-添加');
+INSERT INTO `sys_role_permission` VALUES ('120', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '105', '医学数据维护-别名维护-新增|修改');
+INSERT INTO `sys_role_permission` VALUES ('121', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '106', '医学数据维护-别名维护-详情');
+INSERT INTO `sys_role_permission` VALUES ('122', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '107', '医学数据维护-别名维护-删除');
+INSERT INTO `sys_role_permission` VALUES ('123', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '108', '医学数据维护-别名维护-导入');
+INSERT INTO `sys_role_permission` VALUES ('124', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '109', '医学数据维护-别名维护-列表');
+INSERT INTO `sys_role_permission` VALUES ('125', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '110', '医学数据维护-模板维护-添加');
+INSERT INTO `sys_role_permission` VALUES ('126', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '111', '医学数据维护-模板维护-修改');
+INSERT INTO `sys_role_permission` VALUES ('127', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '112', '医学数据维护-模板维护-删除');
+INSERT INTO `sys_role_permission` VALUES ('128', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '113', '医学数据维护-模板维护-获取标签池信息');
+INSERT INTO `sys_role_permission` VALUES ('129', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '114', '医学数据维护-模板维护-获取子模板信息');
+INSERT INTO `sys_role_permission` VALUES ('130', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '115', '医学数据维护-模板维护-获取模板列表');
+INSERT INTO `sys_role_permission` VALUES ('131', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '116', '医学数据维护-模板维护-获取模板明细信息');
+INSERT INTO `sys_role_permission` VALUES ('132', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '117', '医学数据维护-模板维护-获取单个模板信息(修改用)');
+INSERT INTO `sys_role_permission` VALUES ('133', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '118', '医学数据维护-常用症状维护-添加和修改');
+INSERT INTO `sys_role_permission` VALUES ('134', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '119', '医学数据维护-常用症状维护-删除');
+INSERT INTO `sys_role_permission` VALUES ('135', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '120', '医学数据维护-常用症状维护-获取科室名称');
+INSERT INTO `sys_role_permission` VALUES ('136', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '121', '医学数据维护-常用症状维护-获取标签信息');
+INSERT INTO `sys_role_permission` VALUES ('137', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '122', '医学数据维护-常用症状维护-根据科室获取常用标签信息(修改和详情用)');
+INSERT INTO `sys_role_permission` VALUES ('138', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '123', '医学数据维护-常用症状维护-获取科室信息(常见症状维护系统页面查询)');
+INSERT INTO `sys_role_permission` VALUES ('139', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '124', '医学数据维护-免责申明-获取免责申明详情');
+INSERT INTO `sys_role_permission` VALUES ('140', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '125', '医学数据维护-免责申明-增加免责申明详情');
+INSERT INTO `sys_role_permission` VALUES ('141', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '126', '医学数据维护-免责申明-修改免责申明详情');
+INSERT INTO `sys_role_permission` VALUES ('142', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '127', '医学数据维护-免责申明-删除免责申明详情');
+INSERT INTO `sys_role_permission` VALUES ('143', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '128', '医学数据维护-免责申明-启用免责申明详情');
+INSERT INTO `sys_role_permission` VALUES ('144', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '129', '医学数据维护-免责申明-停用免责申明详情');
+INSERT INTO `sys_role_permission` VALUES ('145', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '130', '医学数据维护-版本信息-获取版本信息');
+INSERT INTO `sys_role_permission` VALUES ('146', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '131', '医学数据维护-版本信息-保存版本信息');
+INSERT INTO `sys_role_permission` VALUES ('147', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '132', '医学数据维护-版本信息-更新版本信息');
+INSERT INTO `sys_role_permission` VALUES ('148', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '133', '医学数据维护-版本信息-删除版本信息');
+INSERT INTO `sys_role_permission` VALUES ('149', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '134', '医学数据维护-版本信息-更新版本详情信息');
+INSERT INTO `sys_role_permission` VALUES ('150', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '135', '医学数据维护-版本信息-删除版本详情信息');
+INSERT INTO `sys_role_permission` VALUES ('151', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '136', '医学数据维护-版本信息-增加版本详情信息');
+INSERT INTO `sys_role_permission` VALUES ('152', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '137', '医学数据维护-查体模板维护-查体模板列表');
+INSERT INTO `sys_role_permission` VALUES ('153', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '138', '医学数据维护-查体模板维护-保存');
+INSERT INTO `sys_role_permission` VALUES ('154', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '139', '医学数据维护-查体模板维护-根据科室删除');
+INSERT INTO `sys_role_permission` VALUES ('155', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '140', '医学数据维护-查体模板维护-获取未维护的科室(新增)');
+INSERT INTO `sys_role_permission` VALUES ('156', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '141', '医学数据维护-查体模板维护-获取未维护的科室(修改)');
+INSERT INTO `sys_role_permission` VALUES ('157', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '142', '医学数据维护-查体模板维护-根据科室获取查体模板');
+INSERT INTO `sys_role_permission` VALUES ('158', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '143', '医学数据维护-查体标签维护-保存');
+INSERT INTO `sys_role_permission` VALUES ('159', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '144', '医学数据维护-查体标签维护-删除(单条)');
+INSERT INTO `sys_role_permission` VALUES ('160', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '145', '医学数据维护-查体标签维护-删除(批量)');
+INSERT INTO `sys_role_permission` VALUES ('161', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '146', '医学数据维护-查体标签维护-获取查体标签池');
+INSERT INTO `sys_role_permission` VALUES ('162', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '147', '医学数据维护-查体标签维护-获取已排序查体标签');
+INSERT INTO `sys_role_permission` VALUES ('163', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '148', '医学数据维护-提示信息维护-保存');
+INSERT INTO `sys_role_permission` VALUES ('164', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '149', '医学数据维护-提示信息维护-删除(单条)');
+INSERT INTO `sys_role_permission` VALUES ('165', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '150', '医学数据维护-提示信息维护-删除(批量)');
+INSERT INTO `sys_role_permission` VALUES ('166', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '151', '医学数据维护-提示信息维护-提示信息列表');
+INSERT INTO `sys_role_permission` VALUES ('167', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '152', '医学数据维护-提示信息维护-根据id获取提示信息');
+INSERT INTO `sys_role_permission` VALUES ('168', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '153', '医学数据维护-提示信息维护-获取未关联标签列表');
+INSERT INTO `sys_role_permission` VALUES ('171', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '156', '医学数据维护-提示信息明细维护-删除(单条)');
+INSERT INTO `sys_role_permission` VALUES ('172', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '157', '医学数据维护-提示信息明细维护-删除(批量)');
+INSERT INTO `sys_role_permission` VALUES ('173', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '158', '医学数据维护-提示信息明细维护-根据id查询');
+INSERT INTO `sys_role_permission` VALUES ('174', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '159', '医学数据维护-提示信息明细维护-根据提示信息id查询');
+INSERT INTO `sys_role_permission` VALUES ('175', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '160', '医学数据维护-提示信息明细维护-保存');
+INSERT INTO `sys_role_permission` VALUES ('176', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '63', '朗通-默认-获取用户、机构、菜单信息');
+INSERT INTO `sys_role_permission` VALUES ('177', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '161', '医学数据维护-版本信息-根据版本id获取版本详情信息');
+INSERT INTO `sys_role_permission` VALUES ('178', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '162', '医学术语库维护-医学术语命名维护-获取医学术语命名');
+INSERT INTO `sys_role_permission` VALUES ('179', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '163', '医学术语库维护-医学术语命名维护-保存医学术语命名');
+INSERT INTO `sys_role_permission` VALUES ('180', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '164', '医学术语库维护-医学术语命名维护-更新医学术语命名');
+INSERT INTO `sys_role_permission` VALUES ('181', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '165', '医学术语库维护-医学术语命名维护-删除医学术语命名');
+INSERT INTO `sys_role_permission` VALUES ('182', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '166', '医学术语库维护-医学术语信息维护-获取医学术语信息');
+INSERT INTO `sys_role_permission` VALUES ('183', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '167', '医学术语库维护-医学术语信息维护-保存医学术语信息');
+INSERT INTO `sys_role_permission` VALUES ('184', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '168', '医学术语库维护-医学术语信息维护-更新医学术语信息');
+INSERT INTO `sys_role_permission` VALUES ('185', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '169', '医学术语库维护-医学术语信息维护-删除医学术语信息');
+INSERT INTO `sys_role_permission` VALUES ('186', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '170', '医学术语库维护-医学术语关系维护-获取医学术语关系');
+INSERT INTO `sys_role_permission` VALUES ('187', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '171', '医学术语库维护-医学术语关系维护-保存医学术语关系');
+INSERT INTO `sys_role_permission` VALUES ('188', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '172', '医学术语库维护-医学术语关系维护-删除医学术语关系');
+INSERT INTO `sys_role_permission` VALUES ('189', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '173', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识');
+INSERT INTO `sys_role_permission` VALUES ('190', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '174', '医学术语库维护-医学术语静态知识维护-保存医学术语静态知识');
+INSERT INTO `sys_role_permission` VALUES ('191', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '175', '医学术语库维护-医学术语静态知识维护-更新医学术语静态知识');
+INSERT INTO `sys_role_permission` VALUES ('192', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '176', '医学术语库维护-医学术语静态知识维护-删除医学术语静态知识');
+INSERT INTO `sys_role_permission` VALUES ('193', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '63', '朗通-默认-获取用户、机构、菜单信息');
+INSERT INTO `sys_role_permission` VALUES ('194', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '177', '医学数据维护-别名维护-标签搜索');

+ 20 - 0
icss-service/src/main/java/com/diagbot/client/AiptServiceClient.java

@@ -0,0 +1,20 @@
+package com.diagbot.client;
+
+import com.diagbot.client.bean.Response;
+import com.diagbot.client.bean.ResponseData;
+import com.diagbot.client.bean.SearchData;
+import com.diagbot.client.hystrix.AiptServiceHystrix;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * @Description:调用中间层服务
+ * @Author: Mark Huang
+ * @time: 2019/03/25 19:15
+ */
+@FeignClient(value = "aipt-service", fallback = AiptServiceHystrix.class)
+public interface AiptServiceClient {
+    @PostMapping(value = "/clinicaldata/processData")
+    Response<ResponseData> aiptData(@RequestBody SearchData searchData);
+}

+ 4 - 0
icss-service/src/main/java/com/diagbot/client/BigDataServiceClient.java

@@ -1,5 +1,6 @@
 package com.diagbot.client;
 
+import com.diagbot.client.bean.GdbResponse;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.client.bean.SearchData;
@@ -17,4 +18,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 public interface BigDataServiceClient {
     @PostMapping(value = "/push-web/algorithm/neural")
     Response<ResponseData> bayesPageData(@RequestBody SearchData searchData);
+
+    @PostMapping(value = "/push-web/graph/highRisk")
+    Response<GdbResponse> highRiskPageData(@RequestBody SearchData searchData);
 }

+ 23 - 0
icss-service/src/main/java/com/diagbot/client/hystrix/AiptServiceHystrix.java

@@ -0,0 +1,23 @@
+package com.diagbot.client.hystrix;
+
+import com.diagbot.client.AiptServiceClient;
+import com.diagbot.client.bean.Response;
+import com.diagbot.client.bean.ResponseData;
+import com.diagbot.client.bean.SearchData;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:调用中间层服务
+ * @Author: Mark Huang
+ * @time: 2019/03/25 19:15
+ */
+@Component
+@Slf4j
+public class AiptServiceHystrix implements AiptServiceClient {
+    @Override
+    public Response<ResponseData> aiptData(SearchData searchData) {
+        log.error("【hystrix】调用{}异常", "aiptData");
+        return null;
+    }
+}

+ 8 - 0
icss-service/src/main/java/com/diagbot/client/hystrix/BigDataServiceHystrix.java

@@ -1,11 +1,13 @@
 package com.diagbot.client.hystrix;
 
 import com.diagbot.client.BigDataServiceClient;
+import com.diagbot.client.bean.GdbResponse;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.client.bean.SearchData;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * @Description:调用大数据对接层服务
@@ -20,4 +22,10 @@ public class BigDataServiceHystrix implements BigDataServiceClient {
         log.error("【hystrix】调用{}异常", "bayesPageData");
         return null;
     }
+
+    @Override
+    public Response<GdbResponse> highRiskPageData(@RequestBody SearchData searchData) {
+        log.error("【hystrix】调用{}异常", "highRiskPageData");
+        return null;
+    }
 }

+ 2 - 1
icss-service/src/main/java/com/diagbot/dto/EMRIntroduceDetailDTO.java

@@ -4,7 +4,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 /**
- * @Description:
+ * @Description:电子病历解读返回参数
  * @Author:zhaops
  * @time: 2019/3/12 11:16
  */
@@ -13,4 +13,5 @@ import lombok.Setter;
 public class EMRIntroduceDetailDTO {
     private String title;
     private String text;
+    private String content;
 }

+ 16 - 0
icss-service/src/main/java/com/diagbot/dto/IntroduceDetailDTO.java

@@ -0,0 +1,16 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/3/21 14:13
+ */
+@Getter
+@Setter
+public class IntroduceDetailDTO {
+    private String content;
+    private String text;
+}

+ 1 - 0
icss-service/src/main/java/com/diagbot/dto/ModuleDetailDTO.java

@@ -25,5 +25,6 @@ public class ModuleDetailDTO extends QuestionDTO implements Serializable {
     private Long questionId; //questionId
     private String flag; //特殊标识
     private Long relationModule; //关联模板
+    private String relationModuleName;//关联模板名称
 
 }

+ 2 - 2
icss-service/src/main/java/com/diagbot/enums/DisTypeEnum.java

@@ -10,8 +10,8 @@ import lombok.Setter;
  * @date 2018年11月21日 下午2:31:42
  */
 public enum DisTypeEnum implements KeyedNamed {
-    CHRONIC(0, "慢病"),
-    EMERGENCY(1, "急诊");
+    CHRONIC(1, "慢病"),
+    EMERGENCY(2, "急诊");
 
     @Setter
     private Integer key;

+ 23 - 19
icss-service/src/main/java/com/diagbot/facade/BuriedSomeStatisticalFacade.java

@@ -3,6 +3,7 @@ package com.diagbot.facade;
 import com.diagbot.entity.BuriedSomeStatistical;
 import com.diagbot.service.impl.BuriedSomeStatisticalServiceImpl;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.vo.BuriedSomeStatisticalVO;
 import com.diagbot.vo.Taggeds;
 import org.springframework.stereotype.Component;
@@ -25,26 +26,29 @@ public class BuriedSomeStatisticalFacade extends BuriedSomeStatisticalServiceImp
      * @return
      */
     public boolean saveBuriedSomeStatistical(BuriedSomeStatisticalVO buriedSomeStatisticalVO) {
-        List<BuriedSomeStatistical> buriedList = new ArrayList<BuriedSomeStatistical>();
-        List<Taggeds> taggeds = buriedSomeStatisticalVO.getTaggeds();
-        for (Taggeds taggedsNew : taggeds) {
-            BuriedSomeStatistical buriedData = new BuriedSomeStatistical();
-            buriedData.setCreator(buriedSomeStatisticalVO.getDoctorId().toString());
-            buriedData.setDoctorId(buriedSomeStatisticalVO.getDoctorId());
-            buriedData.setGmtCreate(DateUtil.now());
-            buriedData.setHospitalDeptId(buriedSomeStatisticalVO.getHospitalDeptId());
-            buriedData.setHospitalId(buriedSomeStatisticalVO.getHospitalId());
-            buriedData.setInquiryCode(buriedSomeStatisticalVO.getInquiryCode());
-            buriedData.setPatientId(buriedSomeStatisticalVO.getPatientId());
-            buriedData.setLabelId(taggedsNew.getLabelId());
-            buriedData.setLabelName(taggedsNew.getLabelName());
-            buriedData.setOperationNum(taggedsNew.getOperationNum());
-            buriedData.setOperationType(taggedsNew.getOperationType());
-            buriedData.setStatus(taggedsNew.getStatus());
-            buriedList.add(buriedData);
-        }
+        boolean res = false;
+        if (null != buriedSomeStatisticalVO
+                && ListUtil.isNotEmpty(buriedSomeStatisticalVO.getTaggeds())) {
+            List<BuriedSomeStatistical> buriedList = new ArrayList<BuriedSomeStatistical>();
+            for (Taggeds taggedsNew : buriedSomeStatisticalVO.getTaggeds()) {
+                BuriedSomeStatistical buriedData = new BuriedSomeStatistical();
+                buriedData.setCreator(buriedSomeStatisticalVO.getDoctorId().toString());
+                buriedData.setDoctorId(buriedSomeStatisticalVO.getDoctorId());
+                buriedData.setGmtCreate(DateUtil.now());
+                buriedData.setHospitalDeptId(buriedSomeStatisticalVO.getHospitalDeptId());
+                buriedData.setHospitalId(buriedSomeStatisticalVO.getHospitalId());
+                buriedData.setInquiryCode(buriedSomeStatisticalVO.getInquiryCode());
+                buriedData.setPatientId(buriedSomeStatisticalVO.getPatientId());
+                buriedData.setLabelId(taggedsNew.getLabelId());
+                buriedData.setLabelName(taggedsNew.getLabelName());
+                buriedData.setOperationNum(taggedsNew.getOperationNum());
+                buriedData.setOperationType(taggedsNew.getOperationType());
+                buriedData.setStatus(taggedsNew.getStatus());
+                buriedList.add(buriedData);
+            }
 
-        boolean res = insertCodeBatch(buriedList);
+            res = insertCodeBatch(buriedList);
+        }
         return res;
     }
 

+ 6 - 1
icss-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java

@@ -91,7 +91,7 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
         QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
         questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("tag_name", introduceByQuestionVO.getTagName())
-                .eq("type", QuestionTypeEnum.Disease.getKey());
+                .eq("type", introduceByQuestionVO.getType());
         QuestionInfo questionInfo = questionFacade.getOne(questionInfoQueryWrapper);
         if (questionInfo == null) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "标签不存在");
@@ -279,6 +279,10 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
                 introduceDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.Y.getKey());
             }
         }
+        if (emrIntroduceVO.getPosition() != null) {
+            introduceDetailQueryWrapper.apply("find_in_set({0},position)", emrIntroduceVO.getPosition());
+        }
+
         List<IntroduceDetail> introduceDetailList = introduceDetailFacade.list(introduceDetailQueryWrapper);
         List<EMRIntroduceDetailDTO> retList = Lists.newLinkedList();
         if (ArrayUtil.isNotEmpty(emrIntroduceVO.getTitles())) {
@@ -291,6 +295,7 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
                         for (IntroduceDetail introduceDetail : introduceDetailList) {
                             if (entry.getValue().equals(introduceDetail.getTitle())) {
                                 detailDTO.setText(introduceDetail.getText());
+                                detailDTO.setContent(introduceDetail.getContent());
                             }
                         }
                     }

+ 9 - 3
icss-service/src/main/java/com/diagbot/facade/LisExcelResFacade.java

@@ -155,9 +155,15 @@ public class LisExcelResFacade {
 				for (LisExcelWrapperVO lisExcelWrapperNew : lisExcelWrapperList) {
 					
 					for (LisConfigDTO LisNew : litData) {
-						if (LisNew.getMealName().equals(lisExcelWrapperNew.getMealName())
-								&& LisNew.getItemName().equals(lisExcelWrapperNew.getItemName())) {
-							lisExcelWrapperNew.setUniqueName(LisNew.getUniqueName());
+						if (LisNew.getItemName() != null) {
+							if (LisNew.getMealName().equals(lisExcelWrapperNew.getMealName())
+									&& LisNew.getItemName().equals(lisExcelWrapperNew.getItemName())) {
+								lisExcelWrapperNew.setUniqueName(LisNew.getUniqueName());
+							}
+						} else {
+							if (LisNew.getMealName().equals(lisExcelWrapperNew.getMealName())) {
+								lisExcelWrapperNew.setUniquemealName(LisNew.getUniqueName());
+							}
 						}
 
 					}

+ 4 - 0
icss-service/src/main/java/com/diagbot/facade/ModuleFacade.java

@@ -51,6 +51,7 @@ public class ModuleFacade extends ModuleInfoServiceImpl {
         List<Long> ids = data.stream()
                 .map(artist -> artist.getId())
                 .collect(Collectors.toList());
+        Map<Long,ModuleInfo> moduleInfoMap = list.stream().collect(Collectors.toMap(ModuleInfo::getId,moduleInfo -> moduleInfo));
         Map<Long, List<ModuleDetail>> moduleDetailMap = new LinkedHashMap<>();
         if (ListUtil.isNotEmpty(ids)) {
             Map<String, Object> paramMap = new HashMap<>();
@@ -75,6 +76,9 @@ public class ModuleFacade extends ModuleInfoServiceImpl {
                         QuestionDTO questionDTO = questionFacade.getById(questionVO);
                         BeanUtil.copyProperties(questionDTO, detailDTO);
                     }
+                    if(null != detailDTO.getRelationModule()){
+                        detailDTO.setRelationModuleName(moduleInfoMap.get(detailDTO.getRelationModule()).getName());
+                    }
                 }
                 bean.setModuleDetailDTOList(moduleDetailDTOList);
             }

+ 144 - 103
icss-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -2,8 +2,8 @@ package com.diagbot.facade;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.client.AiptServiceClient;
 import com.diagbot.client.BigDataServiceClient;
-import com.diagbot.client.GraphServiceClient;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.client.bean.FeatureRate;
 import com.diagbot.client.bean.GdbResponse;
@@ -68,19 +68,19 @@ public class PushFacade {
     @Autowired
     private TreatmentFacade treatmentFacade;
     @Autowired
-    private GraphServiceClient graphServiceClient;
-    @Autowired
     private LisMappingFacade lisMappingFacade;
     @Autowired
     private TranServiceClient tranServiceClient;
+    @Autowired
+    private AiptServiceClient aiptServiceClient;
 
     /**
-     * 推理接口
+     * 拼装数据
      *
      * @param pushVO
-     * @return
+     * @return SearchData
      */
-    public ResponseData pushAI(PushVO pushVO) {
+    public SearchData assembleData(PushVO pushVO) {
         SearchData searchData = new SearchData();
         searchData.setAge(pushVO.getAge());
         searchData.setSymptom(pushVO.getSymptom());
@@ -117,7 +117,7 @@ public class PushFacade {
                 if (StringUtil.isNotBlank(lisResultVO.getName())) {
                     if (StringUtil.isNotBlank(lisResultVO.getDetailName())) {
                         Map<String, String> detailMap = lisConfigMap.get(lisResultVO.getName());
-                        if (StringUtil.isNotBlank(detailMap.get(lisResultVO.getDetailName()))) {
+                        if (null != detailMap && detailMap.size() > 0 && StringUtil.isNotBlank(detailMap.get(lisResultVO.getDetailName()))) {
                             lisResultVO.setUniqueName(detailMap.get(lisResultVO.getDetailName()));
                         }
                     } else {
@@ -129,6 +129,17 @@ public class PushFacade {
         List<LisResult> lisResultList = BeanUtil.listCopyTo(pushVO.getLis(), LisResult.class);
         searchData.setLisArr(lisResultList);
 
+        return searchData;
+    }
+
+
+    /**
+     * 大数据接口
+     *
+     * @param searchData
+     * @return ResponseData
+     */
+    public ResponseData pushAI(SearchData searchData) {
         Response<ResponseData> res = bigDataServiceClient.bayesPageData(searchData);
         if (null == res || null == res.getData()) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "AI没有返回结果");
@@ -136,6 +147,20 @@ public class PushFacade {
         return res.getData();
     }
 
+    /**
+     * 中间层接口
+     *
+     * @param searchData
+     * @return ResponseData
+     */
+    public ResponseData pushAipt(SearchData searchData) {
+        Response<ResponseData> res = aiptServiceClient.aiptData(searchData);
+        if (null == res || null == res.getData()) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "中间层没有返回结果");
+        }
+        return res.getData();
+    }
+
     /**
      * 推理接口
      *
@@ -144,107 +169,136 @@ public class PushFacade {
      */
     public PushDTO pushInner(PushVO pushVO, Integer mode) {
         PushDTO pushDTO = new PushDTO();
-        ResponseData data = pushAI(pushVO);
+        SearchData Data = assembleData(pushVO);
+        ResponseData data = pushAipt(Data);
+
+        //大数据返回内容
+        List<FeatureRate> dis = data.getDis();
 
         String featureType = pushVO.getFeatureType();
         String[] featureTypes = featureType.split(",|,");
         Set<String> featureTypeSet = new HashSet(Arrays.asList(featureTypes));
 
-        List<FeatureRate> symptom = data.getSymptom();
-        List<FeatureRate> dis = data.getDis();
-        List<FeatureRate> pacs = data.getPacs();
-        List<FeatureRate> labs = data.getLabs();
-        List<FeatureRate> other = data.getHistory();
-        Map<String, JSONObject> treat = data.getTreat();
-
-        Map<String, Object> symptomMap = list2Map(symptom);
-        Map<String, Object> labMap = list2Map(labs);
-        Map<String, Object> pacsMap = list2Map(pacs);
-        Map<String, Object> otherMap = list2Map(other);
-
         //症状 标签列表
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Symptom.getKey()))) {
-            //文本模式不推症状,仅结构化模式推症状
-            //if (mode.equals(InputModeEnum.Structured.getKey())) {
-            List<QuestionDTO> symptomDTO = getTagListByMap(symptomMap, pushVO, QuestionTypeEnum.Symptom.getKey());
-            pushDTO.setSymptom(symptomDTO);
-            //}
+            List<FeatureRate> symptom = data.getSymptom();
+            if (ListUtil.isNotEmpty(symptom)) {
+                List<String> nameList = symptom.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
+                List<QuestionDTO> symptomDTO = getTagList(nameList, pushVO, QuestionTypeEnum.Symptom.getKey());
+                pushDTO.setSymptom(symptomDTO);
+            }
         }
         //其他史 标签列表
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Other.getKey()))) {
-            List<QuestionDTO> otherDTO = getTagListByMap(otherMap, pushVO, QuestionTypeEnum.Other.getKey());
-            pushDTO.setOther(otherDTO);
+            List<FeatureRate> other = data.getHistory();
+            if (ListUtil.isNotEmpty(other)) {
+                List<String> nameList = other.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
+                List<QuestionDTO> otherDTO = getTagList(nameList, pushVO, QuestionTypeEnum.Other.getKey());
+                pushDTO.setOther(otherDTO);
+            }
         }
         //查体 返回模板(标签列表)
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Vital.getKey()))) {
             //没有推送信息时,默认取全科模板
-            String deptName = "全科";
+            String deptName = "";
             if (dis != null && dis.size() > 0) {
-                deptName = dis.get(0).getExtraProperty();
+                for (FeatureRate featureRate : dis) {
+                    if (StringUtil.isNotBlank(featureRate.getExtraProperty())) {
+                        deptName = featureRate.getExtraProperty();
+                        break;
+                    }
+                }
+                //deptName = dis.get(0).getExtraProperty();
+            }
+            if (StringUtil.isBlank(deptName)) {
+                deptName = "全科";
             }
             List<QuestionDTO> vitalDTO = getVitalModule(deptName, pushVO);
             pushDTO.setVital(vitalDTO);
-
         }
         //化验  标签列表
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Lis.getKey()))) {
-            List<QuestionDTO> labDTO = getTagListByMap(labMap, pushVO, QuestionTypeEnum.Lis.getKey());
-            pushDTO.setLab(labDTO);
+            List<FeatureRate> labs = data.getLabs();
+            if (ListUtil.isNotEmpty(labs)) {
+                //公表项转套餐项
+                Map<String, List<String>> lisMapping = lisMappingFacade.getLisMappingByUniqueName();
+                List<String> nameList = Lists.newLinkedList();
+                for (FeatureRate featureRate : labs) {
+                    if (ListUtil.isNotEmpty(lisMapping.get(featureRate.getFeatureName()))) {
+                        //匹配出多个套餐项默认取第一个
+                        String name = lisMapping.get(featureRate.getFeatureName()).get(0);
+                        if (nameList.contains(name)) {
+                            continue;
+                        }
+                        nameList.add(name);
+                    }
+                }
+                List<QuestionDTO> labDTO = getTagList(nameList, pushVO, QuestionTypeEnum.Lis.getKey());
+                pushDTO.setLab(labDTO);
+            }
         }
+
         //辅检  标签列表
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Pacs.getKey()))) {
-            List<QuestionDTO> pacsDTO = getTagListByMap(pacsMap, pushVO, QuestionTypeEnum.Pacs.getKey());
-            pushDTO.setPacs(pacsDTO);
+            List<FeatureRate> pacs = data.getPacs();
+            if (ListUtil.isNotEmpty(pacs)) {
+                List<String> nameList = pacs.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
+                List<QuestionDTO> pacsDTO = getTagList(nameList, pushVO, QuestionTypeEnum.Pacs.getKey());
+                pushDTO.setPacs(pacsDTO);
+            }
         }
         //诊断 返回分类+标签列表
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Disease.getKey()))) {
-            Map<String, List<QuestionDTO>> disMapDTO = new LinkedHashMap<>();
-            Map<String, List<FeatureRate>> disFeatureMap = new LinkedHashMap<>();
-            //警惕
-            List<String> diseaseNameList = dis.stream().map(disease -> disease.getFeatureName()).collect(Collectors.toList());
-            Map<String, String> highRiskMap = new HashMap<>();
-            highRiskMap.put("disease", String.join(",", diseaseNameList));
-            SearchData searchData = new SearchData();
-            searchData.setDiag(String.join(",", diseaseNameList));
-            Response<GdbResponse> graphRes = graphServiceClient.highRiskPageData(searchData);
-            if (graphRes != null) {
-                Map<String, String> graphResult = graphRes.getData().getResult();
-                if (graphResult.size() > 0) {
-                    Map<String, Object> disMap = new LinkedHashMap<>();
-                    for (Map.Entry<String, String> entry : graphResult.entrySet()) {
-                        if (entry.getValue().equals("1")) {
-                            disMap.put(entry.getKey(), "");
+            if (ListUtil.isNotEmpty(dis)) {
+                List<String> nameList = dis.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
+                Map<String, List<QuestionDTO>> disMapDTO = new LinkedHashMap<>();
+                Map<String, List<FeatureRate>> disFeatureMap = new LinkedHashMap<>();
+                //警惕
+                Map<String, String> highRiskMap = new HashMap<>();
+                highRiskMap.put("disease", String.join(",", nameList));
+                SearchData searchData = new SearchData();
+                searchData.setDiag(String.join(",", nameList));
+                Response<GdbResponse> graphRes = bigDataServiceClient.highRiskPageData(searchData);
+                if (graphRes != null) {
+                    Map<String, String> graphResult = graphRes.getData().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());
+                            }
                         }
+                        List<QuestionDTO> disDTO = getTagList(hrNameList, pushVO, QuestionTypeEnum.Disease.getKey());
+                        disMapDTO.put("警惕", disDTO);
                     }
-                    List<QuestionDTO> disDTO = getTagListByMap(disMap, pushVO, QuestionTypeEnum.Disease.getKey());
-                    disMapDTO.put("警惕", disDTO);
                 }
-            }
 
-            //诊断分类
-            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);
+                //诊断分类
+                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);
                     }
-                    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());
+                    List<QuestionDTO> disDTO = getTagList(nameListByDisClass, pushVO, QuestionTypeEnum.Disease.getKey());
+                    disMapDTO.put(entry.getKey(), disDTO);
+                }
+                pushDTO.setDis(disMapDTO);
             }
-            for (Map.Entry<String, List<FeatureRate>> entry : disFeatureMap.entrySet()) {
-                Map<String, Object> disMap = list2Map(entry.getValue());
-                List<QuestionDTO> disDTO = getTagListByMap(disMap, pushVO, QuestionTypeEnum.Disease.getKey());
-                disMapDTO.put(entry.getKey(), disDTO);
-            }
-            pushDTO.setDis(disMapDTO);
         }
         //治疗方案
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Drug.getKey()))) {
+            Map<String, JSONObject> treat = data.getTreat();
             if (pushVO.getDiseaseId() == null) {
                 throw new CommonException(CommonErrorCode.PARAM_ERROR, "请输入诊断id");
             }
@@ -258,36 +312,35 @@ public class PushFacade {
     /**
      * 获取返回结果标签
      *
-     * @param map
+     * @param nameList
      * @param pushVO
      * @param type
      * @return
      */
-    public List<QuestionDTO> getTagListByMap(Map<String, Object> map, PushVO pushVO, Integer type) {
+    public List<QuestionDTO> getTagList(List<String> nameList, PushVO pushVO, Integer type) {
         List<QuestionDTO> questionDTOList = Lists.newLinkedList();
         QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper();
         questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
-                in("tag_name", map.keySet()).
+                in("tag_name", nameList).
                 eq("type", type);
         List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
         Map<String, QuestionInfo> questionMap = EntityUtil.makeEntityMap(questionInfoList, "tagName");
-        for (Map.Entry<String, Object> entry : map.entrySet()) {
+        for (String name : nameList) {
             QuestionDTO questionDTO = new QuestionDTO();
-            if (questionMap.get(entry.getKey()) != null) {
+            if (questionMap.get(name) != null) {
                 QuestionVO questionVO = new QuestionVO();
                 questionVO.setAge(pushVO.getAge());
                 questionVO.setSexType(pushVO.getSex());
-                questionVO.setId(questionMap.get(entry.getKey()).getId());
+                questionVO.setId(questionMap.get(name).getId());
                 questionDTO = questionFacade.getById(questionVO);
-                if (questionDTO == null || (!questionDTO.getSubType().equals(0))) {
+                if (questionDTO == null || questionDTO.getId() == null) {
                     questionDTO = new QuestionDTO();
-                    questionDTO.setTagName(entry.getKey());
-                    questionDTO.setName(entry.getKey());
+                    questionDTO.setTagName(name);
+                    questionDTO.setName(name);
                 }
-
             } else {
-                questionDTO.setTagName(entry.getKey());
-                questionDTO.setName(entry.getKey());
+                questionDTO.setTagName(name);
+                questionDTO.setName(name);
             }
             questionDTOList.add(questionDTO);
         }
@@ -323,28 +376,14 @@ public class PushFacade {
         }
         pushVO.setLis(lisResultVOList);
 
-        ResponseData responseData = pushAI(pushVO);
+        SearchData searchData = assembleData(pushVO);
+        ResponseData responseData = pushAI(searchData);
         PushKYJDTO pushKYJDTO = new PushKYJDTO();
         pushKYJDTO.setLabs(responseData.getLabs());
         pushKYJDTO.setDis(responseData.getDis());
         return pushKYJDTO;
     }
 
-    /**
-     * 将list 转换成 map
-     *
-     * @param list
-     * @return
-     */
-    public Map<String, Object> list2Map(List<FeatureRate> list) {
-        Map<String, Object> map = new LinkedHashMap<>();
-        for (FeatureRate featureRate : list) {
-            map.put(featureRate.getFeatureName(), null);
-        }
-        return map;
-    }
-
-
     /**
      * 快易检结果预处理
      *
@@ -451,7 +490,7 @@ public class PushFacade {
             questionVO.setSexType(pushVO.getSex());
             questionVO.setId(deptVital.getVitalId());
             QuestionDTO questionDTO = questionFacade.getById(questionVO);
-            if (questionDTO != null) {
+            if (questionDTO != null && questionDTO.getId() != null) {
                 vitalDTO.add(questionDTO);
             }
         }
@@ -494,7 +533,9 @@ public class PushFacade {
             }
             pushVO.setLis(lisResultVOList);
         }
-        ResponseData data = pushAI(pushVO);
+
+        SearchData searchData = assembleData(pushVO);
+        ResponseData data = pushAI(searchData);
         String featureType = pushVO.getFeatureType();
         String[] featureTypes = featureType.split(",|,");
         Set<String> featureTypeSet = new HashSet(Arrays.asList(featureTypes));
@@ -573,9 +614,9 @@ public class PushFacade {
                 }
             }
             //警惕
-            SearchData searchData = new SearchData();
+            searchData = new SearchData();
             searchData.setDiag(String.join(",", disNameList));
-            Response<GdbResponse> graphRes = graphServiceClient.highRiskPageData(searchData);
+            Response<GdbResponse> graphRes = bigDataServiceClient.highRiskPageData(searchData);
             Map<String, String> graphResult = graphRes.getData().getResult();
             if (graphResult.size() > 0) {
                 List<EMRQuestionDTO> highRiskDisList = Lists.newLinkedList();

+ 13 - 8
icss-service/src/main/java/com/diagbot/facade/TreatmentFacade.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.client.bean.Medicition;
 import com.diagbot.client.bean.MedicitionClass;
+import com.diagbot.dto.IntroduceDetailDTO;
 import com.diagbot.entity.IntroduceDetail;
 import com.diagbot.entity.IntroduceMap;
 import com.diagbot.entity.QuestionInfo;
@@ -12,8 +13,10 @@ import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.QuestionTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.FastJsonUtils;
+import com.diagbot.util.ListUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -58,23 +61,25 @@ public class TreatmentFacade {
 
         //一般治疗
         List<IntroduceDetail> commonTreatmentDetailList = getIntroduceDetailList(diseaseId, IntroducePositionEnum.CommonTreatment.getKey());
-        retMap.put("commonTreatment", commonTreatmentDetailList.size() > 0 ? commonTreatmentDetailList.get(0).getContent() : "");
+        IntroduceDetailDTO commonDetailDTO = new IntroduceDetailDTO();
+        if (ListUtil.isNotEmpty(commonTreatmentDetailList)) {
+            BeanUtil.copyProperties(commonTreatmentDetailList.get(0), commonDetailDTO);
+        }
+        retMap.put("commonTreatment", commonDetailDTO);
 
         //手术治疗
         List<IntroduceDetail> surgeryTreatmentDetailList = getIntroduceDetailList(diseaseId, IntroducePositionEnum.SurgeryTreatment.getKey());
-        retMap.put("surgeryTreatment", surgeryTreatmentDetailList.size() > 0 ? surgeryTreatmentDetailList.get(0).getContent() : "");
-
+        IntroduceDetailDTO surgeryDetailDTO = new IntroduceDetailDTO();
+        if (ListUtil.isNotEmpty(surgeryTreatmentDetailList)) {
+            BeanUtil.copyProperties(surgeryTreatmentDetailList.get(0), surgeryDetailDTO);
+        }
+        retMap.put("surgeryTreatment", surgeryDetailDTO);
         //获取知识图谱治疗方案
         JSONObject treatmentJson = treatmentMap.get(disease.getTagName());
         if (treatmentJson == null || treatmentJson.isEmpty()) {
             return retMap;
         }
 
-        /*JSONObject treatmentJson = diseaseJson.getJSONObject(disease.getTagName());
-        if (treatmentJson == null || treatmentJson.isEmpty()) {
-            return retMap;
-        }*/
-
         List<MedicitionClass> drugsList = FastJsonUtils.getJsonToListByKey(treatmentJson.toString(), "treatment", MedicitionClass.class);
 
         List<String> classNameList = drugsList.stream().map(drugs -> drugs.getBigdrugsName()).collect(Collectors.toList());

+ 15 - 0
icss-service/src/main/java/com/diagbot/vo/EMRIntroduceInnerVO.java

@@ -0,0 +1,15 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/4/2 10:46
+ */
+@Getter
+@Setter
+public class EMRIntroduceInnerVO extends EMRIntroduceVO {
+    private String uniqueName;
+}

+ 2 - 2
icss-service/src/main/java/com/diagbot/vo/EMRIntroduceVO.java

@@ -6,7 +6,7 @@ import lombok.Setter;
 import javax.validation.constraints.NotBlank;
 
 /**
- * @Description:
+ * @Description:电子病历模式入参
  * @Author:zhaops
  * @time: 2019/3/11 13:50
  */
@@ -20,7 +20,7 @@ public class EMRIntroduceVO {
     @NotBlank(message = "请输入检查或检验套餐名称")
     private String name;
     private String detailName;
-    private String uniqueName;
     private String[] titles;
     private String icdCode; //诊断icd10编码
+    private Integer position;
 }

+ 2 - 0
icss-service/src/main/java/com/diagbot/vo/LisExcelWrapperVO.java

@@ -10,6 +10,8 @@ public class LisExcelWrapperVO {
 
     private String mealName;
 	
+    private String uniquemealName;
+    
 	private String itemName;
 	
 	private String uniqueName;

+ 3 - 2
icss-service/src/main/java/com/diagbot/web/EMRController.java

@@ -39,8 +39,9 @@ public class EMRController {
                     "type: 检验检查类型,5-检验,6-检查,7-诊断,单选必填,Integer<br>" +
                     "name: 名称(检验检查诊断),必填,String<br>" +
                     "detailName: 项目名称(检验选填,检查不填),String<br>" +
-                    "titles: 提示信息标题列表,String数组<br>"+
-                    "icdCode: 诊断icd10编码,String<br>")
+                    "titles: 提示信息标题列表,String数组<br>" +
+                    "icdCode: 诊断icd10编码,String<br>" +
+                    "position: 显示位置1-推送展示,2-更多展示,Integer<br>")
     @PostMapping("/getIntroduceByEMR")
     public RespDTO<List<EMRIntroduceDetailDTO>> getIntroduceByEMR(@RequestBody EMRIntroduceVO emrIntroduceVO) {
         List<EMRIntroduceDetailDTO> data = introduceInfoFacade.getIntroduceByEMR(emrIntroduceVO);

+ 3 - 1
icss-service/src/main/java/com/diagbot/web/PushController.java

@@ -2,6 +2,7 @@ package com.diagbot.web;
 
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.client.bean.ResponseData;
+import com.diagbot.client.bean.SearchData;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushKYJDTO;
 import com.diagbot.dto.RespDTO;
@@ -109,7 +110,8 @@ public class PushController {
     @PostMapping("/pushAI")
     @SysLogger("pushAI")
     public RespDTO<ResponseData> pushAI(@RequestBody @Valid PushVO pushVO) {
-        return RespDTO.onSuc(pushFacade.pushAI(pushVO));
+        SearchData searchData = pushFacade.assembleData(pushVO);
+        return RespDTO.onSuc(pushFacade.pushAI(searchData));
     }
 
     @ApiOperation(value = "推理接口(快易检)[by:zhaops]",

+ 2 - 2
icss-service/src/main/resources/mapper/InquiryDetailMapper.xml

@@ -18,9 +18,9 @@
     </resultMap>
     
     <insert id="saveInquiryDetails" parameterType="list">
-    	insert into icss_inquiry_detail(inquiry_id,type,content) values
+    	insert into icss_inquiry_detail(inquiry_id,type,content,content_value) values
     	<foreach collection="list" separator="," item="detail">
-    		(#{detail.inquiryId},#{detail.type},#{detail.content})
+    		(#{detail.inquiryId},#{detail.type},#{detail.content},#{detail.contentValue})
     	</foreach>
     </insert>
 

+ 5 - 0
icssman-service/src/main/java/com/diagbot/dto/GetModuleDetailInfoDTO.java

@@ -46,4 +46,9 @@ public class GetModuleDetailInfoDTO {
      * 子模板名称
      */
     private String relationModuleName;
+
+    /**
+     * 特殊标识
+     */
+    private String flag;
 }

+ 5 - 0
icssman-service/src/main/java/com/diagbot/entity/ModuleDetail.java

@@ -80,6 +80,11 @@ public class ModuleDetail implements Serializable {
      */
     private Long relationModule;
 
+    /**
+     * 特殊标志
+     */
+    private String flag;
+
     /**
      * 排序号
      */

+ 40 - 14
icssman-service/src/main/java/com/diagbot/facade/DeptInfoFacade.java

@@ -9,6 +9,7 @@ import com.diagbot.dto.GetQuestionUsualAndTypeDTO;
 import com.diagbot.dto.QuestionTypeDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.DeptInfo;
+import com.diagbot.entity.QuestionUsual;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.QuestionTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
@@ -85,6 +86,21 @@ public class DeptInfoFacade extends DeptInfoServiceImpl {
             throw new CommonException(CommonErrorCode.NOT_EXISTS,
                     "科室已删除");
         }
+        //判断科室是否重名
+        Boolean boole = false;
+        QueryWrapper<DeptInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted",IsDeleteEnum.N.getKey())
+                .notIn("id",updateDeptInfoVO.getId());
+        List<DeptInfo> deptInfoList = this.list(queryWrapper);
+        for (DeptInfo deptInfo: deptInfoList) {
+            if(updateDeptInfoVO.getName().equals(deptInfo.getName())){
+                boole = true;
+            }
+        }
+        if(boole){
+            throw new CommonException(CommonErrorCode.IS_EXISTS,
+                    "科室名称重复");
+        }
         //修改操作
         DeptInfo deptInfo = this.getById(updateDeptInfoVO.getId());
         BeanUtil.copyProperties(updateDeptInfoVO, deptInfo);
@@ -106,6 +122,13 @@ public class DeptInfoFacade extends DeptInfoServiceImpl {
             throw new CommonException(CommonErrorCode.NOT_EXISTS,
                     "科室已删除");
         }
+        QueryWrapper<QuestionUsual> questionUsualQueryWrapper = new QueryWrapper<>();
+        questionUsualQueryWrapper.eq("is_deleted",IsDeleteEnum.N.getKey())
+                .eq("dept_id",deleteDeptInfoVO.getId());
+        if(questionUsualFacade.count(questionUsualQueryWrapper) > 0){
+            throw new CommonException(CommonErrorCode.NOT_EXISTS,
+                    "与常用标签关联未删除");
+        }
         //删除操作
         DeptInfo deptInfo = new DeptInfo();
         deptInfo.setId(Long.parseLong(deleteDeptInfoVO.getId()));
@@ -124,20 +147,23 @@ public class DeptInfoFacade extends DeptInfoServiceImpl {
      * @return
      */
     public IPage<GetDeptInfoDTO> getDeptInfo(GetDeptInfoVO getDeptInfoVO) {
-        IPage<GetDeptInfoDTO> iPage = this.getAllDeptInfo(getDeptInfoVO);
-        List<String> ids = new ArrayList<>();
-        for (GetDeptInfoDTO getDeptInfoDTO : iPage.getRecords()) {
-            ids.add(getDeptInfoDTO.getModifier());
-        }
-        //获取用户信息
-        RespDTO<Map<String, String>> respDTO = userServiceClient.getUserInfoByIds(ids);
-        if (respDTO == null || !CommonErrorCode.OK.getCode().equals(respDTO.code)) {
-            throw new CommonException(CommonErrorCode.RPC_ERROR,
-                    "获取用户信息失败");
-        }
-        //将用户信息放入实体
-        for (GetDeptInfoDTO getDeptInfoDTO : iPage.getRecords()) {
-            getDeptInfoDTO.setUserName(respDTO.data.get(getDeptInfoDTO.getModifier()));
+        IPage<GetDeptInfoDTO> iPage = this.getDeptInfos(getDeptInfoVO);
+        RespDTO<Map<String, String>> respDTO = new RespDTO<>();
+        if (ListUtil.isNotEmpty(iPage.getRecords())) {
+            List<String> ids = new ArrayList<>();
+            for (GetDeptInfoDTO getDeptInfoDTO : iPage.getRecords()) {
+                ids.add(getDeptInfoDTO.getModifier());
+            }
+            //获取用户信息
+            respDTO = userServiceClient.getUserInfoByIds(ids);
+            if (respDTO == null || !CommonErrorCode.OK.getCode().equals(respDTO.code)) {
+                throw new CommonException(CommonErrorCode.RPC_ERROR,
+                        "获取用户信息失败");
+            }
+            //将用户信息放入实体
+            for (GetDeptInfoDTO getDeptInfoDTO : iPage.getRecords()) {
+                getDeptInfoDTO.setUserName(respDTO.data.get(getDeptInfoDTO.getModifier()));
+            }
         }
         return iPage;
     }

+ 12 - 1
icssman-service/src/main/java/com/diagbot/facade/DeptVitalFacade.java

@@ -59,6 +59,10 @@ public class DeptVitalFacade extends DeptVitalServiceImpl {
      * @return
      */
     public Boolean saveDeptVitals(DeptVitalVO deptVitalVO) {
+        DeptInfo deptInfo = deptInfoFacade.getById(deptVitalVO.getDeptId());
+        if (deptInfo == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "科室不存在");
+        }
         //先删除该科室原有模板
         UpdateWrapper<DeptVital> deptVitalUpdateWrapper = new UpdateWrapper<>();
         deptVitalUpdateWrapper.eq("dept_id", deptVitalVO.getDeptId()).
@@ -91,6 +95,7 @@ public class DeptVitalFacade extends DeptVitalServiceImpl {
             DeptVital deptVital = new DeptVital();
             deptVital.setDeptId(deptVitalVO.getDeptId());
             deptVital.setVitalId(dvDetailVO.getVitalId());
+            deptVital.setRemark(dvDetailVO.getRemark());
             deptVital.setOrderNo(dvDetailVO.getOrderNo());
             deptVital.setCreator(userId);
             deptVital.setGmtCreate(now);
@@ -166,7 +171,13 @@ public class DeptVitalFacade extends DeptVitalServiceImpl {
                 .collect(Collectors.toList());
         if (vitalIds.size() > 0) {
             List<QuestionInfo> vitalList = Lists.newArrayList(questionFacade.listByIds(vitalIds));
-            List<QuestionShortDTO> vitals = BeanUtil.listCopyTo(vitalList, QuestionShortDTO.class);
+            Map<Long, QuestionInfo> vitalMap = EntityUtil.makeEntityMap(vitalList, "id");
+            List<QuestionShortDTO> vitals = Lists.newArrayList();
+            for (Long vitalId : vitalIds) {
+                QuestionShortDTO vital = new QuestionShortDTO();
+                BeanUtil.copyProperties(vitalMap.get(vitalId), vital);
+                vitals.add(vital);
+            }
             deptVitalDTO.setVitals(vitals);
         }
 

+ 1 - 0
icssman-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java

@@ -134,6 +134,7 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
             IntroduceMap introduceMap = new IntroduceMap();
             BeanUtil.copyProperties(introduceMapVO, introduceMap);
             introduceMap.setIntroduceId(introduceInfo.getId());
+            introduceMap.setQuestionId(introduceMapVO.getQuestionId());
             introduceMap.setCreator(userId);
             introduceMap.setGmtCreate(now);
             introduceMap.setModifier(userId);

+ 3 - 0
icssman-service/src/main/java/com/diagbot/facade/ModuleDetailFacade.java

@@ -157,6 +157,9 @@ public class ModuleDetailFacade extends ModuleDetailServiceImpl {
             }else {
                 moduleDetail.setQuestionId(addModuleInfoVO.getModelDetils().get(i).getQuestionId());
             }
+            if(StringUtil.isNotEmpty(addModuleInfoVO.getModelDetils().get(i).getFlag())){
+                moduleDetail.setFlag(addModuleInfoVO.getModelDetils().get(i).getFlag());
+            }
             moduleDetailList.add(moduleDetail);
         }
         //添加模板明细

+ 2 - 1
icssman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java

@@ -239,7 +239,8 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
         //获取模板明细
         QueryWrapper<ModuleDetail> moduleDetailQueryWrapper = new QueryWrapper<>();
         moduleDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("module_id", getModuleDetailInfoVO.getModuleId());
+                .eq("module_id", getModuleDetailInfoVO.getModuleId())
+                .orderByAsc("order_no");
         List<ModuleDetail> moduleDetailList = moduleDetailFacade.list(moduleDetailQueryWrapper);
         //获取标签信息
         QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();

+ 1 - 0
icssman-service/src/main/java/com/diagbot/facade/QuestionUsualFacade.java

@@ -68,6 +68,7 @@ public class QuestionUsualFacade extends QuestionUsualServiceImpl {
         if (ListUtil.isNotEmpty(questionUsualList)) {
             UpdateWrapper<QuestionUsual> updateWrapper = new UpdateWrapper();
             updateWrapper.eq("dept_id", questionUsualVO.getDeptId())
+                    .in("question_id",questionUsualList)
                     .set("is_deleted", IsDeleteEnum.Y.getKey())
                     .set("modifier", userId)
                     .set("gmt_modified", DateUtil.now());

+ 3 - 3
icssman-service/src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -118,17 +118,17 @@ public class RetrievalFacade extends RetrievalServiceImpl {
     public Boolean addTagRetrieval(AddTagRetrievalVO addTagRetrievalVO) {
         if (addTagRetrievalVO.getItemList().stream().distinct().count() != addTagRetrievalVO.getItemList().size()) {
             throw new CommonException(CommonErrorCode.RPC_ERROR,
-                    "导入本体/同义/子项名称重复("+addTagRetrievalVO.getQuestionName()+")!");
+                    "本体/同义/子项名称重复("+addTagRetrievalVO.getQuestionName()+")!");
         }
         
         long typeOneCou = addTagRetrievalVO.getItemList().stream().filter(i->i.getRetrievalType()==1).count();
         if(typeOneCou==0){
         	throw new CommonException(CommonErrorCode.RPC_ERROR,
-                    "导入数据不完整("+addTagRetrievalVO.getQuestionName()+")!");
+                    "数据不完整("+addTagRetrievalVO.getQuestionName()+")!");
         }
         if(typeOneCou>1){
         	throw new CommonException(CommonErrorCode.RPC_ERROR,
-                    "导入本体类型数据重复("+addTagRetrievalVO.getQuestionName()+")!");
+                    "本体类型数据重复("+addTagRetrievalVO.getQuestionName()+")!");
         }
 
         Date now = DateUtil.now();

+ 8 - 1
icssman-service/src/main/java/com/diagbot/mapper/DeptInfoMapper.java

@@ -21,12 +21,19 @@ import java.util.List;
 public interface DeptInfoMapper extends BaseMapper<DeptInfo> {
 
     /**
-     * 分页获取科室信息
+     * 常用标签修改获取科室信息
      * @param getDeptInfoVO
      * @return
      */
     public IPage<GetDeptInfoDTO> getAllDeptInfo(GetDeptInfoVO getDeptInfoVO);
 
+    /**
+     * 分页获取科室信息
+     * @param getDeptInfoVO
+     * @return
+     */
+    public IPage<GetDeptInfoDTO> getDeptInfos(GetDeptInfoVO getDeptInfoVO);
+
     /**
      * 获取科室名称
      * @return

+ 8 - 0
icssman-service/src/main/java/com/diagbot/service/DeptInfoService.java

@@ -28,6 +28,14 @@ public interface DeptInfoService extends IService<DeptInfo> {
     public IPage<GetDeptInfoDTO> getAllDeptInfo(GetDeptInfoVO getDeptInfoVO);
 
 
+    /**
+     * 分页获取科室信息
+     *
+     * @param getDeptInfoVO
+     * @return
+     */
+    public IPage<GetDeptInfoDTO> getDeptInfos(GetDeptInfoVO getDeptInfoVO);
+
     /**
      * 获取科室名称
      *

+ 5 - 0
icssman-service/src/main/java/com/diagbot/service/impl/DeptInfoServiceImpl.java

@@ -23,6 +23,11 @@ import java.util.List;
 @Service
 public class DeptInfoServiceImpl extends ServiceImpl<DeptInfoMapper, DeptInfo> implements DeptInfoService {
 
+    @Override
+    public IPage<GetDeptInfoDTO> getDeptInfos(GetDeptInfoVO getDeptInfoVO) {
+        return baseMapper.getDeptInfos(getDeptInfoVO);
+    }
+
     @Override
     public IPage<GetDeptInfoDTO> getAllDeptInfo(GetDeptInfoVO getDeptInfoVO) {
         return baseMapper.getAllDeptInfo(getDeptInfoVO);

+ 1 - 1
icssman-service/src/main/java/com/diagbot/vo/AddModuleDetailVO.java

@@ -14,7 +14,7 @@ public class AddModuleDetailVO {
     //标签id
     private Long questionId;
     //特殊标识
-    private int flag;
+    private String flag;
     //特殊符号,例如逗号,句号
     private String text;
     //子模板id

+ 6 - 1
icssman-service/src/main/java/com/diagbot/vo/DVDetailVO.java

@@ -3,14 +3,19 @@ package com.diagbot.vo;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotNull;
+
 /**
- * @Description:
+ * @Description:查体模板明细
  * @Author:zhaops
  * @time: 2019/1/3 16:45
  */
 @Getter
 @Setter
 public class DVDetailVO {
+    @NotNull(message = "请输入查体标签id")
     private Long vitalId;
+    @NotNull(message = "请输入查体标签排序")
     private Integer orderNo;
+    private String remark;
 }

+ 1 - 0
icssman-service/src/main/java/com/diagbot/vo/QuestionPageVO.java

@@ -18,4 +18,5 @@ public class QuestionPageVO extends Page {
     private String type;
     private String tagName;
     private List<Integer> tagTypeList;
+    private List<Integer> controlTypeList;
 }

+ 6 - 2
icssman-service/src/main/java/com/diagbot/web/DeptVitalController.java

@@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
+import javax.validation.Valid;
 import java.util.List;
 
 /**
@@ -41,11 +42,14 @@ public class DeptVitalController {
 
     @ApiOperation(value = "保存查体模板[by:zhaops]",
             notes = "deptId:科室ID,必填<br>" +
-                    "vitalIds:查体标签ids,必填<br>")
+                    "dvDetailVOList:查体标签明细,必填<br>" +
+                    "vitalId:查体标签id,必填<br>" +
+                    "orderNo:查体标签排序,必填<br>" +
+                    "remark:查体标签备注(格式:deptName-tagName),必填<br>")
     @PostMapping("/saveDeptVitals")
     @SysLogger("saveDeptVitals")
     @Transactional
-    public RespDTO<Boolean> saveDeptVitals(@RequestBody DeptVitalVO deptVitalVO) {
+    public RespDTO<Boolean> saveDeptVitals(@RequestBody @Valid DeptVitalVO deptVitalVO) {
         Boolean data = deptVitalFacade.saveDeptVitals(deptVitalVO);
         return RespDTO.onSuc(data);
     }

+ 1 - 1
icssman-service/src/main/java/com/diagbot/web/ModuleInfoController.java

@@ -51,7 +51,7 @@ public class ModuleInfoController {
             notes = "name: 模板名称,必填<br>" +
                     "type: 模板类型,必填<br>" +
                     "questionId: 标签id,不是标点符号时需要填写<br>" +
-                    "flag: 特殊标类型<br>" +
+                    "flag: 特殊标类型<br>" +
                     "relationModule: 关联模板id<br>" +
                     "text: 特殊标签(如逗号句号)<br>" +
                     "textType: 特殊标签归属类型")

+ 2 - 1
icssman-service/src/main/java/com/diagbot/web/QuestionUsualController.java

@@ -50,7 +50,8 @@ public class QuestionUsualController {
 
     @ApiOperation(value = "常用标签维护——添加和修改[by:wangyu]",
             notes = "deptId: 科室id,必填<br>" +
-                    "questionName: 症状名称,必填")
+                    "questionName: 症状id,必填<br>" +
+                    "type: 修改时要传")
     @PostMapping("/addQuestionUsual")
     @SysLogger("addQuestionUsual")
     @Transactional

+ 13 - 0
icssman-service/src/main/resources/mapper/DeptInfoMapper.xml

@@ -31,6 +31,19 @@
         b.gmt_modified DESC
     </select>
 
+    <select id="getDeptInfos" resultType="com.diagbot.dto.GetDeptInfoDTO">
+        SELECT
+        a.id,a.gmt_create,a.gmt_modified,a.creator,a.modifier,a.`name`,a.remark
+        FROM
+        `icss_dept_info` a
+        WHERE
+        a.is_deleted = 'N'
+        <if test="name != null and name != ''">
+            AND a.`name` LIKE CONCAT('%',#{name},'%')
+        </if>
+        ORDER BY a.gmt_modified DESC
+    </select>
+
     <select id="getDeptName" resultType="com.diagbot.dto.DeptInfoDTO">
         SELECT
 	      *

+ 2 - 2
icssman-service/src/main/resources/mapper/DeptVitalMapper.xml

@@ -27,7 +27,7 @@
         <result column="name" property="name" />
         <result column="remark" property="remark" />
         <result column="operator" property="operator" />
-        <result column="gmtOperate" property="gmt_operate" />
+        <result column="gmt_operate" property="gmtOperate" />
     </resultMap>
 
     <!--查询已有模板分页-->
@@ -40,7 +40,7 @@
           <if test="deptVitalPageVO.deptName!=null and deptVitalPageVO.deptName!=''">
               AND a.name like CONCAT("%",#{deptVitalPageVO.deptName},"%")
           </if>
-        order by gmt_modified desc
+        order by b.gmt_modified desc
     </select>
 
 </mapper>

+ 8 - 2
icssman-service/src/main/resources/mapper/QuestionInfoMapper.xml

@@ -105,7 +105,7 @@
         WHERE
         a.is_deleted = 'N'
         AND a.sub_type = '0'
-        AND a.type = #{type}
+        AND a.type = #{type} and a.tag_type != 8
         <if test="deptId != null and deptId != ''">
             AND a.id NOT IN (
             SELECT
@@ -136,7 +136,7 @@
         `icss_question_info` a
         WHERE
         a.is_deleted = 'N'
-        AND a.type = #{type}
+        AND a.type = #{type} AND a.tag_type != 8 and a.control_type != 99
         <if test="moduleId != null and moduleId != ''">
             AND a.id NOT IN (
             SELECT
@@ -174,6 +174,12 @@
                 #{tagType}
             </foreach>
         </if>
+        <if test="controlTypeList != null and controlTypeList.size() > 0 ">
+            and a.control_type in
+            <foreach  collection="controlTypeList" item="controlType" open="("  separator=","  close=")">
+                #{controlType}
+            </foreach>
+        </if>
         order by a.gmt_modified desc
 
     </select>

+ 4 - 1
icssman-service/src/main/resources/mapper/QuestionUsualMapper.xml

@@ -17,7 +17,10 @@
     </resultMap>
 
     <select id="getQuestionUsualByQuestionId" resultType="com.diagbot.entity.QuestionUsual">
-        SELECT a.* FROM `icss_question_usual` a WHERE a.is_deleted = 'N' AND a.dept_id = #{questionUsualVO.deptId} AND a.type = #{type}
+        SELECT a.* FROM `icss_question_usual` a
+        LEFT JOIN icss_question_info b ON a.question_id = b.id
+        WHERE a.is_deleted = 'N' and b.is_deleted = 'N'
+        AND a.dept_id = #{questionUsualVO.deptId} AND b.type = #{questionUsualVO.type}
     </select>
 
     <select id="getQuestionUsualByDeptIds" resultType="com.diagbot.dto.GetQuestionUsualAndTypeDTO">

+ 1 - 1
icssman-service/src/main/resources/mapper/RetrievalMapper.xml

@@ -33,7 +33,7 @@
 			AND a.id=#{questionId}
 		</if>
 		<if test="questionName!=null">
-			AND a.`name`=#{questionName}
+			AND a.tag_name=#{questionName}
 		</if>
 	</select>
 	

+ 76 - 76
knowledge-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.KNOWLEDGE_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.KNOWLEDGE_SERVICE.getKey());
+        //保存系统日志
+        mySender.outputLogSend(sysLog);
+    }
+
+}
+

+ 6 - 2
knowledge-service/src/main/java/com/diagbot/dto/ConceptDTO.java

@@ -48,7 +48,7 @@ public class ConceptDTO {
     /**
      * 术语基本信息
      */
-    private List<LibraryInfo> libraryInfo;
+    private LibraryInfo libraryInfo;
 
     /**
      * 术语相关医学知识
@@ -58,6 +58,10 @@ public class ConceptDTO {
     /**
      * 医学临床信息
      */
-    private Medical medicalInfo;
+    private List<Medical> medicalInfo;
 
+    /**
+     * 术语所有上级信息
+     */
+    private List<RelationDTO> relations;
 }

+ 5 - 0
knowledge-service/src/main/java/com/diagbot/dto/LibraryInfoDTO.java

@@ -51,6 +51,11 @@ public class LibraryInfoDTO {
      */
     private String name;
 
+    /**
+     * 类型
+     */
+    private String type;
+
     /**
      * 备注
      */

+ 3 - 13
knowledge-service/src/main/java/com/diagbot/dto/MedicalDTO.java

@@ -17,7 +17,7 @@ public class MedicalDTO {
     private Integer id;
 
     /**
-     * 术语名称
+     * 名称
      */
     private String name;
 
@@ -29,28 +29,18 @@ public class MedicalDTO {
     /**
      * 术语类型编号,对应类型库
      */
-    private Integer typeId;
+//    private Integer typeId;
 
     /**
      * 术语类型
      */
-    private String type;
+//    private String type;
 
     /**
      * 术语标准名
      */
     private String stdName;
 
-    /**
-     * 术语小类名称
-     */
-    private String cateName;
-
-    /**
-     * 术语类组
-     */
-    private String group;
-
     /**
      * 性别:1:男, 2:女, 3:通用
      */

+ 49 - 0
knowledge-service/src/main/java/com/diagbot/dto/RelationDTO.java

@@ -0,0 +1,49 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: Weixuan Huang
+ * @time: 2019/1/31 16:53
+ */
+@Getter
+@Setter
+public class RelationDTO {
+    /**
+     * 主键
+     */
+    private Integer id;
+
+    /**
+     * 关系起点术语id
+     */
+    private Integer startId;
+
+    /**
+     * 关系起点术语名称
+     */
+    private String startName;
+
+    /**
+     * 关系id
+     */
+    private Integer relationId;
+
+    /**
+     * 关系名称
+     */
+    private String relationName;
+
+    /**
+     * 关系终点术语id
+     */
+    private Integer endId;
+
+    /**
+     * 关系终点术语名称
+     */
+    private String endName;
+
+}

+ 56 - 0
knowledge-service/src/main/java/com/diagbot/entity/LexiconRelationship.java

@@ -0,0 +1,56 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-02-01
+ */
+public class LexiconRelationship implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String name;
+
+    private String code;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    @Override
+    public String toString() {
+        return "LexiconRelationship{" +
+        "id=" + id +
+        ", name=" + name +
+        ", code=" + code +
+        "}";
+    }
+}

+ 196 - 0
knowledge-service/src/main/java/com/diagbot/entity/LibraryDetail.java

@@ -0,0 +1,196 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 提示信息明细
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-30
+ */
+public class LibraryDetail 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 title;
+
+    /**
+     * 提示明细内容
+     */
+    private String content;
+
+    /**
+     * 纯文本
+     */
+    private String text;
+
+    /**
+     * 提示明细序号
+     */
+    private Integer orderNo;
+
+    /**
+     * 显示位置(多选):1-推送展示,2-更多展示,3-一般治疗展示,4-手术治疗展示,5-药品说明书
+     */
+    private String position;
+
+    /**
+     * 是否诊断依据(1-是,0-否)
+     */
+    private Integer isReason;
+
+    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 getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+    public String getText() {
+        return text;
+    }
+
+    public void setText(String text) {
+        this.text = text;
+    }
+    public Integer getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(Integer orderNo) {
+        this.orderNo = orderNo;
+    }
+    public String getPosition() {
+        return position;
+    }
+
+    public void setPosition(String position) {
+        this.position = position;
+    }
+    public Integer getIsReason() {
+        return isReason;
+    }
+
+    public void setIsReason(Integer isReason) {
+        this.isReason = isReason;
+    }
+
+    @Override
+    public String toString() {
+        return "LibraryDetail{" +
+        "id=" + id +
+        ", isDeleted=" + isDeleted +
+        ", gmtCreate=" + gmtCreate +
+        ", gmtModified=" + gmtModified +
+        ", creator=" + creator +
+        ", modifier=" + modifier +
+        ", conceptId=" + conceptId +
+        ", title=" + title +
+        ", content=" + content +
+        ", text=" + text +
+        ", orderNo=" + orderNo +
+        ", position=" + position +
+        ", isReason=" + isReason +
+        "}";
+    }
+}

+ 171 - 0
knowledge-service/src/main/java/com/diagbot/entity/LibraryInfo.java

@@ -0,0 +1,171 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 提示信息
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-30
+ */
+public class LibraryInfo 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;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 类型
+     */
+    private String type;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 概念id
+     */
+    private Integer conceptId;
+
+    /**
+     * 是否标准词,1:是,0:否
+     */
+    private Integer isConcept;
+
+    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 String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+    public Integer getConceptId() {
+        return conceptId;
+    }
+
+    public void setConceptId(Integer conceptId) {
+        this.conceptId = conceptId;
+    }
+    public Integer getIsConcept() {
+        return isConcept;
+    }
+
+    public void setIsConcept(Integer isConcept) {
+        this.isConcept = isConcept;
+    }
+
+    @Override
+    public String toString() {
+        return "LibraryInfo{" +
+        "id=" + id +
+        ", isDeleted=" + isDeleted +
+        ", gmtCreate=" + gmtCreate +
+        ", gmtModified=" + gmtModified +
+        ", creator=" + creator +
+        ", modifier=" + modifier +
+        ", name=" + name +
+        ", type=" + type +
+        ", remark=" + remark +
+        ", conceptId=" + conceptId +
+        ", isConcept=" + isConcept +
+        "}";
+    }
+}

+ 48 - 44
knowledge-service/src/main/java/com/diagbot/entity/Medical.java

@@ -2,6 +2,7 @@ package com.diagbot.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+
 import java.io.Serializable;
 
 /**
@@ -9,8 +10,8 @@ import java.io.Serializable;
  * 
  * </p>
  *
- * @author Weixuan Huang
- * @since 2019-01-31
+ * @author gaodm
+ * @since 2019-02-20
  */
 public class Medical implements Serializable {
 
@@ -20,24 +21,24 @@ public class Medical implements Serializable {
     private Integer id;
 
     /**
-     * 术语名称
+     * 术语概念id
      */
-//    private String name;
+    private Integer conceptId;
 
     /**
-     * 术语概念id
+     * 术语名称
      */
-    private Integer concept_id;
+    private String name;
 
     /**
      * 术语类型编号,对应类型库
      */
-    private Integer typeId;
+//    private Integer typeId;
 
     /**
      * 术语类型
      */
-    private String type;
+//    private String type;
 
     /**
      * 术语标准名
@@ -47,12 +48,12 @@ public class Medical implements Serializable {
     /**
      * 术语小类名称
      */
-//    private String cateName;
+    private String cateName;
 
     /**
      * 术语类组
      */
-//    private String group;
+    private String grp;
 
     /**
      * 性别:1:男, 2:女, 3:通用
@@ -106,20 +107,21 @@ public class Medical implements Serializable {
     public void setId(Integer id) {
         this.id = id;
     }
-//    public String getName() {
-//        return name;
-//    }
-//
-//    public void setName(String name) {
-//        this.name = name;
-//    }
-//    public Integer getConcept_id() {
-//        return concept_id;
-//    }
+    public Integer getConceptId() {
+        return conceptId;
+    }
+
+    public void setConceptId(Integer conceptId) {
+        this.conceptId = conceptId;
+    }
+    public String getName() {
+        return name;
+    }
 
-    public void setConcept_id(Integer concept_id) {
-        this.concept_id = concept_id;
+    public void setName(String name) {
+        this.name = name;
     }
+    /*
     public Integer getTypeId() {
         return typeId;
     }
@@ -134,6 +136,7 @@ public class Medical implements Serializable {
     public void setType(String type) {
         this.type = type;
     }
+    */
     public String getStdName() {
         return stdName;
     }
@@ -141,23 +144,23 @@ public class Medical implements Serializable {
     public void setStdName(String stdName) {
         this.stdName = stdName;
     }
-//    public String getCateName() {
-//        return cateName;
-//    }
-//
-//    public void setCateName(String cateName) {
-//        this.cateName = cateName;
-//    }
-//    public String getGroup() {
-//        return group;
-//    }
-//
-//    public void setGroup(String group) {
-//        this.group = group;
-//    }
-//    public String getGender() {
-//        return gender;
-//    }
+    public String getCateName() {
+        return cateName;
+    }
+
+    public void setCateName(String cateName) {
+        this.cateName = cateName;
+    }
+    public String getGrp() {
+        return grp;
+    }
+
+    public void setGrp(String grp) {
+        this.grp = grp;
+    }
+    public String getGender() {
+        return gender;
+    }
 
     public void setGender(String gender) {
         this.gender = gender;
@@ -223,12 +226,13 @@ public class Medical implements Serializable {
     public String toString() {
         return "Medical{" +
         "id=" + id +
-//        ", name=" + name +
-        ", typeId=" + typeId +
-        ", type=" + type +
+        ", conceptId=" + conceptId +
+        ", name=" + name +
+//        ", typeId=" + typeId +
+//        ", type=" + type +
         ", stdName=" + stdName +
-//        ", cateName=" + cateName +
-//        ", group=" + group +
+        ", cateName=" + cateName +
+        ", grp=" + grp +
         ", gender=" + gender +
         ", minAge=" + minAge +
         ", maxAge=" + maxAge +

+ 78 - 0
knowledge-service/src/main/java/com/diagbot/entity/Relation.java

@@ -0,0 +1,78 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-31
+ */
+public class Relation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 关系起点术语id
+     */
+    private Integer startId;
+
+    /**
+     * 关系id
+     */
+    private Integer relationId;
+
+    /**
+     * 关系终点术语id
+     */
+    private Integer endId;
+
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+    public Integer getStartId() {
+        return startId;
+    }
+
+    public void setStartId(Integer startId) {
+        this.startId = startId;
+    }
+    public Integer getRelationId() {
+        return relationId;
+    }
+
+    public void setRelationId(Integer relationId) {
+        this.relationId = relationId;
+    }
+    public Integer getEndId() {
+        return endId;
+    }
+
+    public void setEndId(Integer endId) {
+        this.endId = endId;
+    }
+
+
+    @Override
+    public String toString() {
+        return "Relation{" +
+        "id=" + id +
+        ", startId=" + startId +
+        ", relationId=" + relationId +
+        ", endId=" + endId +
+        "}";
+    }
+}

+ 24 - 22
knowledge-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -1,9 +1,11 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.ConceptDTO;
 import com.diagbot.entity.LibraryInfo;
 import java.util.List;
 import com.diagbot.service.impl.ConceptServiceImpl;
+import com.diagbot.vo.MedicalVo;
 import com.diagbot.vo.TermVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -23,41 +25,41 @@ public class ConceptFacade extends ConceptServiceImpl {
     private LibraryDetailFacade libraryDetailFacade;
     @Autowired
     private MedicalFacade medicalFacade;
+    @Autowired
+    private RelationFacade relationFacade;
 
 
     /**
      * 获取医学术语信息
      *
      * @param termvo
-     * @return TermDTO
+     * @return ConceptDTO
      */
     public ConceptDTO getConceptInfo(@RequestBody TermVo termvo) {
 
         ConceptDTO conceptDTO = getConcept(termvo);
         // 获取与医学术语的基本信息
-        termvo.setId(conceptDTO.getLibId());
-        termvo.setConcept_id(conceptDTO.getId());
-        List<LibraryInfo> libraryInfo = libraryinfoFacade.getLibraryInfor(termvo);
-        for (LibraryInfo libinfo : libraryInfo) {
-            if (libinfo.getIsConcept() != null && libinfo.getIsConcept() == 1) {
-                conceptDTO.setName(libinfo.getName());
+        if (conceptDTO != null) {
+            termvo.setId(conceptDTO.getLibId());
+            termvo.setConcept_id(conceptDTO.getId());
+            termvo.setTerm(conceptDTO.getName());
+            LibraryInfo libraryInfo = libraryinfoFacade.getLibraryInfor(termvo);
+
+            if (libraryInfo.getIsConcept() != null && libraryInfo.getIsConcept() == 1) {
+                conceptDTO.setName(libraryInfo.getName());
             }
-        }
-        conceptDTO.setLibraryInfo(libraryInfo);
+            conceptDTO.setLibraryInfo(libraryInfo);
 
-        // 获取与术语相关的医学知识
-        conceptDTO.setInformation(libraryDetailFacade.getLibraryDetails(termvo));
-        // 获取与术语相关的临床医学信息
-        conceptDTO.setMedicalInfo(medicalFacade.getMedicalInfo(termvo));
-//        // 获取术语的所有上级信息
-//        List<LevelDTO> levelDTOList = levelFacade.getInfor(libraryDTO);
-//        for (LevelDTO item : levelDTOList) {
-//            while (item.getUplevel() != null) {
-//                item.setUplevel_val(getOne("id", item.getUplevel().toString()).getName());
-//                item.setGrpId_val(getOne("id", item.getGrpId().toString()).getName());
-//            }
-//        }
-//        termDTO.setLevelInfo(levelDTOList);
+            // 获取与术语相关的医学知识
+            conceptDTO.setInformation(libraryDetailFacade.getLibraryDetails(termvo));
+            // 获取与术语相关的临床医学信息
+            MedicalVo medicalVo = new MedicalVo();
+            medicalVo.setName(termvo.getTerm());
+            medicalVo.setConcept_id(conceptDTO.getId());
+            conceptDTO.setMedicalInfo(medicalFacade.getMedicalInfo(medicalVo));
+            // 获取术语的所有上级信息
+            conceptDTO.setRelations(relationFacade.getAllRelation(termvo));
+        }
 
         return conceptDTO;
     }

+ 17 - 3
knowledge-service/src/main/java/com/diagbot/facade/LibraryInfoFacade.java

@@ -25,10 +25,24 @@ public class LibraryInfoFacade extends LibraryInfoServiceImpl {
      * @param termVo
      * @result LibraryInfo
      */
-    public List<LibraryInfo> getLibraryInfor(TermVo termVo) {
+    public LibraryInfo getLibraryInfor(TermVo termVo) {
         QueryWrapper<LibraryInfo> wrapper = new QueryWrapper();
-        wrapper.eq("concept_id", termVo.getConcept_id());
-        List<LibraryInfo> libraryinfor = this.list(wrapper);
+
+        if (termVo.getConcept_id() != 0) {
+            wrapper.eq("concept_id", termVo.getConcept_id());
+        }
+        if (termVo.getId() != 0) {
+            wrapper.eq("id", termVo.getId());
+        }
+        if (termVo.getTerm() != null) {
+            wrapper.eq("name", termVo.getTerm());
+        }
+        if (termVo.getType() != null) {
+            wrapper.eq("type", termVo.getType());
+        }
+
+        LibraryInfo libraryinfor = this.getOne(wrapper);
         return libraryinfor;
     }
+
 }

+ 12 - 5
knowledge-service/src/main/java/com/diagbot/facade/MedicalFacade.java

@@ -3,6 +3,7 @@ package com.diagbot.facade;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.entity.Medical;
 import com.diagbot.service.impl.MedicalServiceImpl;
+import com.diagbot.vo.MedicalVo;
 import com.diagbot.vo.TermVo;
 import org.springframework.stereotype.Component;
 
@@ -19,13 +20,19 @@ public class MedicalFacade extends MedicalServiceImpl {
     /**
      * 获取医学术语知识
      *
-     * @param termVo
-     * @result Medical
+     * @param medicalVo
+     * @result List<Medical>
      */
-    public Medical getMedicalInfo(TermVo termVo) {
+    public List<Medical> getMedicalInfo(MedicalVo medicalVo) {
         QueryWrapper<Medical> wrapper = new QueryWrapper<>();
-        wrapper.eq("concept_id", termVo.getConcept_id());
-        Medical medical = this.getOne(wrapper);
+        if (medicalVo.getName() != null && medicalVo.getName().trim().length()>0) {
+            wrapper.eq("name", medicalVo.getName());
+        }
+
+        if (medicalVo.getConcept_id() > 0) {
+            wrapper.eq("concept_id", medicalVo.getConcept_id());
+        }
+        List<Medical> medical = this.list(wrapper);
         return medical;
     }
 }

+ 140 - 0
knowledge-service/src/main/java/com/diagbot/facade/RelationFacade.java

@@ -0,0 +1,140 @@
+package com.diagbot.facade;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RelationDTO;
+import com.diagbot.entity.LexiconRelationship;
+import com.diagbot.entity.Library;
+import com.diagbot.entity.LibraryInfo;
+import com.diagbot.entity.Relation;
+import com.diagbot.service.impl.RelationServiceImpl;
+import com.diagbot.vo.TermVo;
+import net.sf.jsqlparser.expression.WindowRange;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description: 术语知识查询业务层
+ * @author: Weixuan Huang
+ * @time: 2019/1/16 14:17
+ */
+@Component
+public class RelationFacade extends RelationServiceImpl {
+
+    @Autowired
+    private LibraryInfoFacade libraryInfoFacade;
+    @Autowired
+    private RelationshipFacade relationshipFacade;
+
+    /**
+     *
+     *
+     * 获取指定医学术语的所有信息
+     *
+     * @param termVo
+     * @result List<Relation>
+     */
+    public List<RelationDTO> getAllRelation(TermVo termVo) {
+        List<RelationDTO> relationDTOs = new ArrayList<>();
+
+        List<Relation> relations = new ArrayList<>();
+        relations = getList(relations, termVo.getConcept_id(), -1);
+        relationDTOs.addAll(ConvertListtoDTO(relations));
+
+        return relationDTOs;
+    }
+
+    public List<RelationDTO> ConvertListtoDTO (List<Relation> src) {
+        List<RelationDTO> dest = new ArrayList<>();
+        RelationDTO relationDTO;
+        TermVo termVo = new TermVo();
+//        LibraryInfo libraryInfo = null;
+//        QueryWrapper<LibraryInfo> wrapper = new QueryWrapper<>();
+
+        for (Relation relation:src) {
+            relationDTO = new RelationDTO();
+            BeanUtils.copyProperties(relation, relationDTO);
+
+            termVo.setConcept_id(relationDTO.getStartId());
+
+            LibraryInfo libraryInfo = libraryInfoFacade.getLibraryInfor(termVo);
+            relationDTO.setStartName(libraryInfo.getName());
+
+            termVo.setConcept_id(relationDTO.getEndId());
+
+            libraryInfo = libraryInfoFacade.getLibraryInfor(termVo);
+            relationDTO.setEndName(libraryInfo.getName());
+
+            LexiconRelationship lexiconRelationship = relationshipFacade.getLexiconRelationship(relationDTO);
+            relationDTO.setRelationName(lexiconRelationship.getName());
+
+            dest.add(relationDTO);
+        }
+
+        return dest;
+    }
+
+    /**
+     * 获取关系列表
+     * @param relations 关系列表
+     * @param con_id 起始术语id
+     * @param direct -1:向上, 1:向下
+     * @result List<Relation>
+     */
+    public List<Relation> getList(List<Relation> relations, Object con_id, int direct) {
+        List<Relation> rel_list = new ArrayList<>();
+
+
+        if (con_id != null && con_id instanceof Integer) {
+            QueryWrapper<Relation> wrapper = new QueryWrapper<>();
+
+            if (direct == -1) {
+                wrapper.eq("start_id", con_id);
+                rel_list = this.list(wrapper);
+            } else if (direct == 1) {
+                wrapper.eq("end_id", con_id);
+                rel_list = this.list(wrapper);
+            }
+
+            for (Relation item:rel_list) {
+                if (!isExist(relations, item))
+                    relations.add(item);
+                else {
+                    System.out.println("Conflicted items:\t" + JSON.toJSONString(item));
+                    return relations;
+                }
+            }
+
+            if (rel_list.size() > 0) {
+                for (Relation rel : rel_list) {
+                    getList(relations, rel.getEndId(), direct);
+                }
+            }
+        }
+
+        return relations;
+    }
+
+
+    /**
+     * 查询关系是否有循环,即新加关系的起点和终点与原有关系的终点和起点相等
+     *
+     * @param
+     */
+    public Boolean isExist(List<Relation> relations, Relation relation) {
+        Boolean Exist = false;
+
+        for (Relation item:relations) {
+            if (item.getStartId().intValue() == relation.getEndId().intValue() && item.getEndId().intValue() == relation.getStartId().intValue()) {
+                Exist = true;
+            }
+        }
+
+        return Exist;
+    }
+
+}

+ 31 - 0
knowledge-service/src/main/java/com/diagbot/facade/RelationshipFacade.java

@@ -0,0 +1,31 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RelationDTO;
+import com.diagbot.entity.LexiconRelationship;
+import com.diagbot.service.impl.LexiconRelationshipServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description: 实体间关系信息查询业务层
+ * @author: Weixuan Huang
+ * @time: 2019/2/1 16:07
+ */
+@Component
+public class RelationshipFacade extends LexiconRelationshipServiceImpl {
+
+    /**
+     * 获取术语间关系名称
+     *
+     * @param relationDTO
+     * @result LexiconRelationship
+     */
+    public LexiconRelationship getLexiconRelationship(RelationDTO relationDTO) {
+
+        QueryWrapper<LexiconRelationship> wrapper = new QueryWrapper<>();
+        wrapper.eq("id", relationDTO.getRelationId());
+        LexiconRelationship lexiconRelationship = this.getOne(wrapper);
+
+        return lexiconRelationship;
+    }
+}

+ 18 - 0
knowledge-service/src/main/java/com/diagbot/mapper/LexiconRelationshipMapper.java

@@ -0,0 +1,18 @@
+package com.diagbot.mapper;
+
+import com.diagbot.dto.RelationDTO;
+import com.diagbot.entity.LexiconRelationship;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.facade.LibraryInfoFacade;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-02-01
+ */
+public interface LexiconRelationshipMapper extends BaseMapper<LexiconRelationship> {
+    public LexiconRelationship getLexiconRelationship(RelationDTO relationDTO, LibraryInfoFacade libraryInfoFacade);
+}

+ 25 - 0
knowledge-service/src/main/java/com/diagbot/mapper/LibraryDetailMapper.java

@@ -0,0 +1,25 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.LibraryDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.TermVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 提示信息明细 Mapper 接口
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-30
+ */
+public interface LibraryDetailMapper extends BaseMapper<LibraryDetail> {
+    /**
+     * 获取术语知识
+     *
+     * @param termVo
+     * @return LibraryInfo
+     */
+    public List<LibraryDetail> getLibraryDetail(TermVo termVo);
+}

+ 25 - 0
knowledge-service/src/main/java/com/diagbot/mapper/LibraryInfoMapper.java

@@ -0,0 +1,25 @@
+package com.diagbot.mapper;
+
+import com.diagbot.vo.TermVo;
+import com.diagbot.dto.LibraryInfoDTO;
+import com.diagbot.entity.LibraryInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.LibraryInfo;
+
+/**
+ * <p>
+ * 提示信息 Mapper 接口
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-30
+ */
+public interface LibraryInfoMapper extends BaseMapper<LibraryInfo> {
+    /**
+     * 获取术语基本信息
+     *
+     * @param termVo
+     * @return LibraryInfo
+     */
+    public LibraryInfo getLibraryInfo(TermVo termVo);
+}

+ 2 - 2
knowledge-service/src/main/java/com/diagbot/mapper/MedicalMapper.java

@@ -20,7 +20,7 @@ public interface MedicalMapper extends BaseMapper<Medical> {
      * 获取术语临床医学信息
      *
      * @param termVo
-     * @result Medical
+     * @result List<Medical>
      */
-    public Medical getMedicalInfo(TermVo termVo);
+    public List<Medical> getMedicalInfo(TermVo termVo);
 }

+ 26 - 0
knowledge-service/src/main/java/com/diagbot/mapper/RelationMapper.java

@@ -0,0 +1,26 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.Relation;
+import com.diagbot.dto.RelationDTO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.TermVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-31
+ */
+public interface RelationMapper extends BaseMapper<Relation> {
+    /**
+     * 获取术语上级信息
+     *
+     * @param termVo
+     * @result List<RelationDTO>
+     */
+    public List<RelationDTO> getRelation(TermVo termVo);
+}

+ 18 - 0
knowledge-service/src/main/java/com/diagbot/service/LexiconRelationshipService.java

@@ -0,0 +1,18 @@
+package com.diagbot.service;
+
+import com.diagbot.dto.RelationDTO;
+import com.diagbot.entity.LexiconRelationship;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.facade.LibraryInfoFacade;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-02-01
+ */
+public interface LexiconRelationshipService extends IService<LexiconRelationship> {
+    public LexiconRelationship getLexiconRelationship(RelationDTO relationDTO, LibraryInfoFacade libraryInfoFacade);
+}

+ 19 - 0
knowledge-service/src/main/java/com/diagbot/service/LibraryDetailService.java

@@ -0,0 +1,19 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.LibraryDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.TermVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 提示信息明细 服务类
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-30
+ */
+public interface LibraryDetailService extends IService<LibraryDetail> {
+    public List<LibraryDetail> getLibraryDetail(TermVo termVo);
+}

+ 19 - 0
knowledge-service/src/main/java/com/diagbot/service/LibraryInfoService.java

@@ -0,0 +1,19 @@
+package com.diagbot.service;
+
+import com.diagbot.dto.LibraryInfoDTO;
+import com.diagbot.vo.TermVo;
+import com.diagbot.entity.LibraryInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.TermVo;
+
+/**
+ * <p>
+ * 提示信息 服务类
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-30
+ */
+public interface LibraryInfoService extends IService<LibraryInfo> {
+    public LibraryInfo getLibraryInfo(TermVo termVo);
+}

+ 1 - 1
knowledge-service/src/main/java/com/diagbot/service/MedicalService.java

@@ -16,5 +16,5 @@ import java.util.List;
  * @since 2019-01-16
  */
 public interface MedicalService extends IService<Medical> {
-    public Medical getMedicalInfo(TermVo termVo);
+    public List<Medical> getMedicalInfo(TermVo termVo);
 }

+ 20 - 0
knowledge-service/src/main/java/com/diagbot/service/RelationService.java

@@ -0,0 +1,20 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.Relation;
+import com.diagbot.dto.RelationDTO;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.TermVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-31
+ */
+public interface RelationService extends IService<Relation> {
+    public List<RelationDTO> getRelation(TermVo termVo);
+}

+ 0 - 0
knowledge-service/src/main/java/com/diagbot/service/impl/LexiconRelationshipServiceImpl.java


この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません