浏览代码

合并dev/icss,并且解决冲突

gaodm 6 年之前
父节点
当前提交
6760b182e8
共有 100 个文件被更改,包括 4955 次插入566 次删除
  1. 53 0
      aipt-service/src/main/java/com/diagbot/client/AlgorithmClassify.java
  2. 202 0
      aipt-service/src/main/java/com/diagbot/client/Feature.java
  3. 159 0
      aipt-service/src/main/java/com/diagbot/client/bean/Constants.java
  4. 43 0
      aipt-service/src/main/java/com/diagbot/client/bean/FeatureRate.java
  5. 190 0
      aipt-service/src/main/java/com/diagbot/client/bean/Response.java
  6. 98 0
      aipt-service/src/main/java/com/diagbot/client/bean/ResponseData.java
  7. 273 0
      aipt-service/src/main/java/com/diagbot/client/bean/SearchData.java
  8. 132 0
      aipt-service/src/main/java/com/diagbot/client/bean/Status.java
  9. 22 0
      aipt-service/src/main/java/com/diagbot/dto/LisResult.java
  10. 53 0
      aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java
  11. 64 0
      aipt-service/src/main/java/com/diagbot/vo/SearchVo.java
  12. 53 0
      aipt-service/src/main/java/com/diagbot/web/ClinicalController.java
  13. 10 0
      common/src/main/java/com/diagbot/util/ArrayUtil.java
  14. 41 0
      common/src/main/java/com/diagbot/util/RespDTOUtil.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. 1 1
      config-server/src/main/resources/shared/icss-service-dev.yml
  20. 1 1
      config-server/src/main/resources/shared/icss-service-local.yml
  21. 6 0
      config-server/src/main/resources/shared/knowledgeman-service-dev.yml
  22. 6 0
      config-server/src/main/resources/shared/knowledgeman-service-local.yml
  23. 6 0
      config-server/src/main/resources/shared/knowledgeman-service-pro.yml
  24. 6 0
      config-server/src/main/resources/shared/knowledgeman-service-test.yml
  25. 723 0
      docs/07.20190318对接相关修改/icss_tran.sql
  26. 98 11
      icss-service/src/main/java/com/diagbot/client/TranServiceClient.java
  27. 127 24
      icss-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java
  28. 17 0
      icss-service/src/main/java/com/diagbot/dto/EMRIntroduceDTO.java
  29. 16 0
      icss-service/src/main/java/com/diagbot/dto/EMRIntroduceDetailDTO.java
  30. 17 0
      icss-service/src/main/java/com/diagbot/dto/EMRQuestionDTO.java
  31. 4 0
      icss-service/src/main/java/com/diagbot/dto/GetDiseaseIcdDTO.java
  32. 58 0
      icss-service/src/main/java/com/diagbot/dto/HisInquirysForDjDTO.java
  33. 1 1
      icss-service/src/main/java/com/diagbot/dto/IntroduceDetailDTO.java
  34. 20 0
      icss-service/src/main/java/com/diagbot/dto/PushEMRDTO.java
  35. 15 1
      icss-service/src/main/java/com/diagbot/entity/DiseaseIcd.java
  36. 12 10
      icss-service/src/main/java/com/diagbot/entity/HospitalDept.java
  37. 15 2
      icss-service/src/main/java/com/diagbot/entity/InquiryDetail.java
  38. 2 1
      icss-service/src/main/java/com/diagbot/facade/DeptInfoFacade.java
  39. 429 360
      icss-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java
  40. 169 0
      icss-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java
  41. 15 1
      icss-service/src/main/java/com/diagbot/facade/LisMappingFacade.java
  42. 2 1
      icss-service/src/main/java/com/diagbot/facade/PatientInfoFacade.java
  43. 162 10
      icss-service/src/main/java/com/diagbot/facade/PushFacade.java
  44. 18 0
      icss-service/src/main/java/com/diagbot/facade/TranDiseaseIcdFacade.java
  45. 26 0
      icss-service/src/main/java/com/diagbot/vo/EMRIntroduceVO.java
  46. 18 0
      icss-service/src/main/java/com/diagbot/vo/EMRPushVO.java
  47. 88 0
      icss-service/src/main/java/com/diagbot/vo/HisInquirysForDjVO.java
  48. 15 0
      icss-service/src/main/java/com/diagbot/vo/HosCodeVO.java
  49. 6 0
      icss-service/src/main/java/com/diagbot/vo/SaveInquiryDetailVO.java
  50. 21 0
      icss-service/src/main/java/com/diagbot/vo/SaveInquiryToHisVO.java
  51. 75 0
      icss-service/src/main/java/com/diagbot/web/EMRController.java
  52. 11 0
      icss-service/src/main/java/com/diagbot/web/InquiryInfoController.java
  53. 1 0
      icss-service/src/main/resources/mapper/InquiryDetailMapper.xml
  54. 33 1
      icssman-service/src/main/java/com/diagbot/facade/QuestionFacade.java
  55. 89 35
      icssman-service/src/main/java/com/diagbot/facade/RetrievalFacade.java
  56. 21 0
      icssman-service/src/main/java/com/diagbot/facade/RetrievalMappingFacade.java
  57. 11 1
      icssman-service/src/main/java/com/diagbot/mapper/RetrievalMappingMapper.java
  58. 1 1
      icssman-service/src/main/java/com/diagbot/vo/AddTagRetrievalDetailVO.java
  59. 1 0
      icssman-service/src/main/java/com/diagbot/vo/QuestionIndexVO.java
  60. 1 0
      icssman-service/src/main/java/com/diagbot/vo/QuestionPageVO.java
  61. 8 0
      icssman-service/src/main/java/com/diagbot/web/QuestionInfoController.java
  62. 12 0
      icssman-service/src/main/resources/mapper/QuestionInfoMapper.xml
  63. 14 0
      icssman-service/src/main/resources/mapper/RetrievalMappingMapper.xml
  64. 6 2
      knowledge-service/src/main/java/com/diagbot/dto/ConceptDTO.java
  65. 5 0
      knowledge-service/src/main/java/com/diagbot/dto/LibraryInfoDTO.java
  66. 3 13
      knowledge-service/src/main/java/com/diagbot/dto/MedicalDTO.java
  67. 49 0
      knowledge-service/src/main/java/com/diagbot/dto/RelationDTO.java
  68. 56 0
      knowledge-service/src/main/java/com/diagbot/entity/LexiconRelationship.java
  69. 196 0
      knowledge-service/src/main/java/com/diagbot/entity/LibraryDetail.java
  70. 171 0
      knowledge-service/src/main/java/com/diagbot/entity/LibraryInfo.java
  71. 48 44
      knowledge-service/src/main/java/com/diagbot/entity/Medical.java
  72. 78 0
      knowledge-service/src/main/java/com/diagbot/entity/Relation.java
  73. 24 22
      knowledge-service/src/main/java/com/diagbot/facade/ConceptFacade.java
  74. 17 3
      knowledge-service/src/main/java/com/diagbot/facade/LibraryInfoFacade.java
  75. 12 5
      knowledge-service/src/main/java/com/diagbot/facade/MedicalFacade.java
  76. 140 0
      knowledge-service/src/main/java/com/diagbot/facade/RelationFacade.java
  77. 31 0
      knowledge-service/src/main/java/com/diagbot/facade/RelationshipFacade.java
  78. 18 0
      knowledge-service/src/main/java/com/diagbot/mapper/LexiconRelationshipMapper.java
  79. 25 0
      knowledge-service/src/main/java/com/diagbot/mapper/LibraryDetailMapper.java
  80. 25 0
      knowledge-service/src/main/java/com/diagbot/mapper/LibraryInfoMapper.java
  81. 2 2
      knowledge-service/src/main/java/com/diagbot/mapper/MedicalMapper.java
  82. 26 0
      knowledge-service/src/main/java/com/diagbot/mapper/RelationMapper.java
  83. 18 0
      knowledge-service/src/main/java/com/diagbot/service/LexiconRelationshipService.java
  84. 19 0
      knowledge-service/src/main/java/com/diagbot/service/LibraryDetailService.java
  85. 19 0
      knowledge-service/src/main/java/com/diagbot/service/LibraryInfoService.java
  86. 1 1
      knowledge-service/src/main/java/com/diagbot/service/MedicalService.java
  87. 20 0
      knowledge-service/src/main/java/com/diagbot/service/RelationService.java
  88. 25 0
      knowledge-service/src/main/java/com/diagbot/service/impl/LexiconRelationshipServiceImpl.java
  89. 26 0
      knowledge-service/src/main/java/com/diagbot/service/impl/LibraryDetailServiceImpl.java
  90. 25 0
      knowledge-service/src/main/java/com/diagbot/service/impl/LibraryInfoServiceImpl.java
  91. 1 1
      knowledge-service/src/main/java/com/diagbot/service/impl/MedicalServiceImpl.java
  92. 26 0
      knowledge-service/src/main/java/com/diagbot/service/impl/RelationServiceImpl.java
  93. 7 3
      knowledgeman-service/src/main/java/com/diagbot/vo/AddLibraryVo.java
  94. 3 0
      knowledge-service/src/main/java/com/diagbot/vo/TermVo.java
  95. 1 1
      knowledge-service/src/main/java/com/diagbot/web/ConceptController.java
  96. 3 3
      knowledgeman-service/src/main/java/com/diagbot/web/InformationController.java
  97. 2 0
      knowledge-service/src/main/java/com/diagbot/web/LibraryController.java
  98. 20 0
      knowledge-service/src/main/java/com/diagbot/web/LibraryDetailController.java
  99. 4 4
      knowledgeman-service/src/main/java/com/diagbot/web/BodypartController.java
  100. 0 0
      knowledgeman-service/src/main/java/com/diagbot/web/LexiconController.java

+ 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;
+    }
+
+}

+ 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;//其他结果,包括阴性阳性,文字描述等
+}

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

@@ -0,0 +1,53 @@
+package com.diagbot.facade;
+
+import com.diagbot.dto.LisResult;
+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 {
+    /**
+     * 处理临床数据
+     *
+     * @param searchVo
+     * @return SearchVo
+     */
+    public SearchVo processClinicalData(@RequestBody SearchVo searchVo) {
+        SearchVo sData = searchVo;
+
+        sData.setLisArr(processLis(sData.getLisArr()));
+
+        return sData;
+    }
+
+    private List<LisResult> processLis(List<LisResult> lisArr) {
+
+        String Otherval = "";
+
+        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 + "超出标准");
+            }
+            else if (lisres.getMinValue() != null && lisres.getValue() < lisres.getMinValue()) {
+                lisres.setOtherValue(Otherval + "低于标准");
+            }
+        }
+
+        return lisArr;
+    }
+}

+ 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 String sex;
+    private int age;
+    private int age_start;
+    private int age_end;
+
+    private String symptom;
+    private String vital;
+    private String lis;
+    private String pacs;
+    private String other;
+    private String featureType;
+    private String diag;
+
+    private int length;
+
+
+    // 搜索结果的贝叶斯阈值
+    private String threshold;
+
+    private List<Feature> symptomFeatureList;
+    private List<Feature> lisFeatureList;
+    private List<Feature> pacsFeatureList;
+    private List<Feature> vitalFeatureList;
+    private List<Feature> symptompropertyFeatureList;
+
+    private List<LisResult> lisArr;
+    private List<Feature> diagFeatureList;
+    private Map<String, Map<String, String>> inputs;
+
+
+    /*
+    private String past;
+    //特征类别对","进行分割后数据
+    private String[] featureTypes;
+    //门诊 住院分类
+    private String resourceType;
+    //模型
+    private AlgorithmClassify algorithmClassify[];
+    //模型
+    private String algorithmClassifyValue;
+    //外部系统编码 用于返回映射数据,如果sysCode为空或null,则返回kl_standard_info标准名称
+    private String sysCode;
+    */
+
+}

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

@@ -0,0 +1,53 @@
+package com.diagbot.web;
+
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.client.AIServiceClient;
+import com.diagbot.client.bean.Response;
+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;
+
+    @Autowired
+    private AIServiceClient aiServiceClient;
+
+    @ApiOperation(value = "临床数据处理", notes = "")
+    @PostMapping("/processData")
+    @SysLogger("processData")
+    public RespDTO<ResponseData> processData(@Valid @RequestBody SearchVo searchVo) {
+
+        SearchVo sData = clinicalFacade.processClinicalData(searchVo);
+
+        Response<ResponseData> res = aiServiceClient.bayesPageData(sData);
+
+        return RespDTO.onSuc(res.getData());
+    }
+
+}

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

@@ -18,6 +18,16 @@ public class ArrayUtil {
         return ArrayUtils.isEmpty(array);
     }
 
+    /**
+     * 判断数组是否不为空
+     *
+     * @param array 数组
+     * @return 是否为空
+     */
+    public static boolean isNotEmpty(Object[] array) {
+        return !ArrayUtils.isEmpty(array);
+    }
+
     /**
      * 数组合并
      *

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

@@ -0,0 +1,41 @@
+package com.diagbot.util;
+
+import com.diagbot.dto.RespDTO;
+import com.diagbot.exception.CommonErrorCode;
+
+/**
+ * @Description: 结果验证工具类
+ * @author: gaodm
+ * @time: 2019/3/12 18:25
+ */
+public class RespDTOUtil {
+
+    /**
+     * 远程调度是否成功
+     * @param respDTO 返回结果
+     * @param <T> 泛型
+     * @return 是否成功
+     */
+    public static <T> boolean respIsOK(RespDTO<T> respDTO){
+        if (respDTO == null
+                || !CommonErrorCode.OK.getCode().equals(respDTO.code)) {
+            return false;
+        }
+        return true;
+    }
+
+
+    /**
+     * 远程调度是否不成功
+     * @param respDTO 返回结果
+     * @param <T> 泛型
+     * @return 是否成功
+     */
+    public static <T> boolean respIsNG(RespDTO<T> respDTO){
+        if (respDTO == null
+                || !CommonErrorCode.OK.getCode().equals(respDTO.code)) {
+            return true;
+        }
+        return false;
+    }
+}

+ 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

+ 1 - 1
config-server/src/main/resources/shared/icss-service-dev.yml

@@ -108,4 +108,4 @@ graph:
 
 nlp:
   server:
-    address: http://192.168.2.234:5002
+    address: http://192.168.2.234:5002

+ 1 - 1
config-server/src/main/resources/shared/icss-service-local.yml

@@ -8,7 +8,7 @@ spring:
       driverClassName: com.mysql.jdbc.Driver
       driver-class-name: com.mysql.jdbc.Driver
       platform: mysql
-      url: jdbc:mysql://192.168.2.236:3306/sys-icssncd?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
+      url: jdbc:mysql://192.168.2.236:3306/sys-icss?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
       username: root
       password: lantone
       # 连接池的配置信息

+ 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:

+ 6 - 0
config-server/src/main/resources/shared/knowledgeman-service-test.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:

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

@@ -0,0 +1,723 @@
+use `sys-icss`;
+ALTER TABLE `icss_inquiry_detail`
+ADD COLUMN `content_value`  text NULL COMMENT '内容字符串纯文本' AFTER `content`;
+
+ALTER TABLE icss_question_info MODIFY COLUMN control_type tinyint(4) COMMENT '控件类型(0:无类型,默认值 1:下拉单选 2:下拉多选 3:待定 4:待定 5:数字键盘带单位 6:文本框 7:数字键盘文本框  11:下拉单选括号占位符,有无治疗 99:联合推送)';
+ALTER TABLE icss_question_info MODIFY COLUMN type tinyint(4) COMMENT '类型(1:症状 3:其他史 4:查体,5:化验 6:辅检 7:诊断,8:药品,9:药品分类 21:量表,22:推送指标)';
+ALTER TABLE icss_question_info ADD COLUMN  formula_code varchar(255) COMMENT '公式编码' AFTER `joint`;
+
+
+use `sys-tran`;
+CREATE TABLE `tran_pacs_config` (
+  `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则表示纪录未修改',
+  `hospital_code` varchar(60) DEFAULT NULL COMMENT '医院编码',
+  `meal_name` varchar(100) DEFAULT NULL COMMENT '套餐名',
+  `unique_name` varchar(100) DEFAULT NULL COMMENT '公表名',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='辅检项目公表映射配置表';
+
+CREATE TABLE `tran_introduce_title_config` (
+  `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则表示纪录未修改',
+  `hospital_code` varchar(60) DEFAULT NULL COMMENT '医院编码',
+  `item_name` varchar(100) DEFAULT NULL COMMENT '项目名',
+  `unique_name` varchar(100) DEFAULT NULL COMMENT '公表名',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COMMENT='提示信息标签映射表';
+
+
+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', '医学数据维护-别名维护-标签搜索');

+ 98 - 11
icss-service/src/main/java/com/diagbot/client/TranServiceClient.java

@@ -1,12 +1,5 @@
 package com.diagbot.client;
 
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-
 import com.diagbot.client.hystrix.TranServiceHystrix;
 import com.diagbot.dto.DoctorInfoDTO;
 import com.diagbot.dto.GetDiseaseIcdDTO;
@@ -23,11 +16,19 @@ import com.diagbot.entity.PatientInfo;
 import com.diagbot.vo.DoctorInfoVO;
 import com.diagbot.vo.GetDiseaseIcdVO;
 import com.diagbot.vo.GetTopPatientInfoVO;
+import com.diagbot.vo.HosCodeVO;
 import com.diagbot.vo.HospitalDeptInfoVO;
 import com.diagbot.vo.HospitalInfoVO;
 import com.diagbot.vo.LisHospitalCodeVO;
 import com.diagbot.vo.PatientInfoVO;
+import com.diagbot.vo.SaveInquiryToHisVO;
 import com.diagbot.vo.TranFieldInfoVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 调用信息对接层服务
@@ -45,9 +46,10 @@ public interface TranServiceClient {
      */
     @PostMapping("/doctorInfo/getDoctorInfo")
     RespDTO<List<DoctorInfoDTO>> getDoctorInfo(@RequestBody DoctorInfoVO doctorInfoVo);
-    
+
     /**
      * 根据ids获取医生信息map
+     *
      * @param ids
      * @return
      */
@@ -62,9 +64,10 @@ public interface TranServiceClient {
      */
     @PostMapping("/hospitalDeptInfo/getHospitalDeptInfo")
     RespDTO<HospitalDeptInfoDTO> getHospitalDeptInfo(@RequestBody HospitalDeptInfoVO hospitalDeptInfoVO);
-    
+
     /**
      * 根据ids获取科室信息map
+     *
      * @param ids
      * @return
      */
@@ -79,8 +82,10 @@ public interface TranServiceClient {
      */
     @PostMapping("/hospitalInfo/getHospitalInfo")
     RespDTO<List<HospitalInfoDTO>> getHospitalInfo(@RequestBody HospitalInfoVO hospitalInfoVO);
+
     /**
      * 匹配公表名
+     *
      * @param lisHospitalCodeVO
      * @return
      */
@@ -104,9 +109,10 @@ public interface TranServiceClient {
      */
     @PostMapping("/patientInfo/getTopPatientInfo")
     RespDTO<GetTopPatientInfoDTO> getTopPatientInfo(@RequestBody GetTopPatientInfoVO getTopPatientInfoVO);
-    
+
     /**
      * 根据ids获取病人信息
+     *
      * @param ids
      * @return
      */
@@ -130,4 +136,85 @@ public interface TranServiceClient {
      */
     @PostMapping("/diseaseIcd/getDiseaseIcds")
     RespDTO<List<GetDiseaseIcdDTO>> getDiseaseIcds(@RequestBody GetDiseaseIcdVO getDiseaseIcdVO);
-}
+
+    /**
+     * 将问诊保存的一些相关信息发送到对接层
+     *
+     * @param saveInquiryToHisVO
+     * @return
+     */
+    @PostMapping("/inquiryInfo/saveInquiryToHis")
+    RespDTO<Boolean> saveInquiryToHis(@RequestBody SaveInquiryToHisVO saveInquiryToHisVO);
+
+
+    /**
+     * 根据医院编码获取化验公表映射关系-itemName不为空
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @PostMapping("/tranLisConfig/getLisConfigByHosCode_NotEmptyItemName")
+    RespDTO<Map<String, Map<String, String>>> getLisConfigByHosCode_NotEmptyItemName(@RequestBody HosCodeVO hosCodeVO);
+
+    /**
+     * 根据医院编码获取化验公表映射关系-itemName为空
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @PostMapping("/tranLisConfig/getLisConfigByHosCode_EmptyItemName")
+    RespDTO<Map<String, String>> getLisConfigByHosCode_EmptyItemName(@RequestBody HosCodeVO hosCodeVO);
+
+    /**
+     * 根据医院编码获取辅检公表映射关系
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @PostMapping("/pacsConfig/getPacsConfigByHosCode")
+    RespDTO<Map<String, String>> getPacsConfigByHosCode(@RequestBody HosCodeVO hosCodeVO);
+
+    /**
+     * 根据医院编码获取提示信息标题映射关系
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @PostMapping("/introduceTitleConfig/getTitleMappingHosCode")
+    RespDTO<Map<String, String>> getTitleMappingHosCode(@RequestBody HosCodeVO hosCodeVO);
+
+    /**
+     * 根据医院编码查询诊断icd映射
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @PostMapping("/diseaseIcd/getDiseaseIcdByHosCode")
+    RespDTO<Map<String, String>> getDiseaseIcdByHosCode(@RequestBody HosCodeVO hosCodeVO);
+
+    /**
+     * 数据服务模式是否对外对接
+     *
+     * @return
+     */
+    @PostMapping("/dataService/isDocking")
+    RespDTO<Boolean> isDocking();
+
+    /**
+     * 根据医院编码获取化验公表映射关系,公表项做key
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @PostMapping("/tranLisConfig/getLisConfigByUniqueNameAndHosCode")
+    RespDTO<Map<String, List<String>>> getLisConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO);
+
+    /**
+     * 根据医院编码查询辅检公表映射,公表项做key
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @PostMapping("/pacsConfig/getPacsConfigByUniqueNameAndHosCode")
+    RespDTO<Map<String, List<String>>> getPacsConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO);
+}

+ 127 - 24
icss-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java

@@ -16,14 +16,16 @@ import com.diagbot.entity.PatientInfo;
 import com.diagbot.vo.DoctorInfoVO;
 import com.diagbot.vo.GetDiseaseIcdVO;
 import com.diagbot.vo.GetTopPatientInfoVO;
+import com.diagbot.vo.HosCodeVO;
 import com.diagbot.vo.HospitalDeptInfoVO;
 import com.diagbot.vo.HospitalInfoVO;
 import com.diagbot.vo.LisHospitalCodeVO;
-
 import com.diagbot.vo.PatientInfoVO;
+import com.diagbot.vo.SaveInquiryToHisVO;
 import com.diagbot.vo.TranFieldInfoVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import javax.validation.Valid;
 import java.util.List;
@@ -44,12 +46,12 @@ public class TranServiceHystrix implements TranServiceClient {
     }
 
     @Override
-	public RespDTO<Map<Long, DoctorInfo>> doctorInfoMapByIds(List<Long> ids) {
-    	log.error("【hystrix】调用{}异常", "doctorInfoMapByIds");
-		return null;
-	}
+    public RespDTO<Map<Long, DoctorInfo>> doctorInfoMapByIds(List<Long> ids) {
+        log.error("【hystrix】调用{}异常", "doctorInfoMapByIds");
+        return null;
+    }
 
-	@Override
+    @Override
     public RespDTO<List<HospitalInfoDTO>> getHospitalInfo(HospitalInfoVO hospitalInfoVO) {
         log.error("【hystrix】调用{}异常", "getHospitalInfo");
         return null;
@@ -60,14 +62,14 @@ public class TranServiceHystrix implements TranServiceClient {
         log.error("【hystrix】调用{}异常", "getHospitalDeptInfo");
         return null;
     }
-    
+
     @Override
-	public RespDTO<Map<Long, HospitalDept>> hospitalDeptInfoMapByIds(List<Long> ids) {
-    	 log.error("【hystrix】调用{}异常", "hospitalDeptInfoMapByIds");
-		return null;
-	}
+    public RespDTO<Map<Long, HospitalDept>> hospitalDeptInfoMapByIds(List<Long> ids) {
+        log.error("【hystrix】调用{}异常", "hospitalDeptInfoMapByIds");
+        return null;
+    }
 
-	@Override
+    @Override
     public RespDTO<List<LisConfigDTO>> getLisConfigByhospitalId(LisHospitalCodeVO lisHospitalCodeVO) {
         log.error("【hystrix】调用{}异常", "getLisConfigByhospitalId");
         return null;
@@ -84,14 +86,14 @@ public class TranServiceHystrix implements TranServiceClient {
         log.error("【hystrix】调用{}异常", "getTopPatientInfo");
         return null;
     }
-    
+
     @Override
-	public RespDTO<Map<Long, PatientInfo>> patientInfoMapByIds(List<Long> ids) {
-    	log.error("【hystrix】调用{}异常", "patientInfoMapByIds");
-		return null;
-	}
+    public RespDTO<Map<Long, PatientInfo>> patientInfoMapByIds(List<Long> ids) {
+        log.error("【hystrix】调用{}异常", "patientInfoMapByIds");
+        return null;
+    }
 
-	@Override
+    @Override
     public RespDTO<List<TranFieldInfoDTO>> getInfoByUuid(TranFieldInfoVO tranFieldInfoVO) {
         log.error("【hystrix】调用{}异常", "getInfoByUuid");
         return null;
@@ -103,10 +105,111 @@ public class TranServiceHystrix implements TranServiceClient {
         return null;
     }
 
+    @Override
+    public RespDTO<Boolean> saveInquiryToHis(SaveInquiryToHisVO saveInquiryToHisVO) {
+        log.error("【hystrix】调用{}异常", "saveInquiryToHis");
+        return null;
+    }
+
+
+    //    @Override
+    //    public Response<ResponseData> bayesPageData(SearchData searchData) {
+    //        log.error("【hystrix】调用{}异常", "bayesPageData");
+    //        return null;
+    //    }
+
+    /**
+     * 根据医院编码获取化验公表映射关系-itemName不为空
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, Map<String, String>>> getLisConfigByHosCode_NotEmptyItemName(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getLisConfigByHosCode_NotEmptyItemName");
+        return null;
+    }
+
+    /**
+     * 根据医院编码获取化验公表映射关系-itemName为空
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, String>> getLisConfigByHosCode_EmptyItemName(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getLisConfigByHosCode_EmptyItemName");
+        return null;
+    }
+
+    /**
+     * 根据医院编码获取辅检公表映射关系
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, String>> getPacsConfigByHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getPacsConfigByHosCode");
+        return null;
+    }
+
+    /**
+     * 根据医院编码获取提示信息标题映射关系
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, String>> getTitleMappingHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getTitleMappingHosCode");
+        return null;
+    }
+
+    /**
+     * 根据医院编码查询诊断icd映射
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, String>> getDiseaseIcdByHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getDiseaseIcdByHosCode");
+        return null;
+    }
+
+    /**
+     * 数据服务模式是否对外对接
+     *
+     * @return
+     */
+    @Override
+    public RespDTO<Boolean> isDocking() {
+        log.error("【hystrix】调用{}异常", "isDocking");
+        return null;
+    }
+
+    /**
+     * 根据医院编码获取化验公表映射关系,公表项做key
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, List<String>>> getLisConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getLisConfigByUniqueNameAndHosCode");
+        return null;
+    }
 
-//    @Override
-//    public Response<ResponseData> bayesPageData(SearchData searchData) {
-//        log.error("【hystrix】调用{}异常", "bayesPageData");
-//        return null;
-//    }
-}
+    /**
+     * 根据医院编码查询辅检公表映射,公表项做key
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, List<String>>> getPacsConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getPacsConfigByUniqueNameAndHosCode");
+        return null;
+    }
+}

+ 17 - 0
icss-service/src/main/java/com/diagbot/dto/EMRIntroduceDTO.java

@@ -0,0 +1,17 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/3/11 14:00
+ */
+@Getter
+@Setter
+public class EMRIntroduceDTO {
+    private List<EMRIntroduceDetailDTO> details;
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/3/12 11:16
+ */
+@Getter
+@Setter
+public class EMRIntroduceDetailDTO {
+    private String title;
+    private String text;
+}

+ 17 - 0
icss-service/src/main/java/com/diagbot/dto/EMRQuestionDTO.java

@@ -0,0 +1,17 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/3/20 11:42
+ */
+@Getter
+@Setter
+public class EMRQuestionDTO {
+    private String name;
+    private String detailName;
+    private String uniqueName;
+}

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

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

+ 58 - 0
icss-service/src/main/java/com/diagbot/dto/HisInquirysForDjDTO.java

@@ -0,0 +1,58 @@
+package com.diagbot.dto;
+
+import java.util.Date;
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/3/19 13:56
+ */
+@Getter
+@Setter
+public class HisInquirysForDjDTO{
+	
+	private Long id;
+	
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 科室id
+     */
+    private Long hospitalDeptId;
+
+    /**
+     * 医生id
+     */
+    private Long doctorId;
+
+    /**
+     * 患者id
+     */
+    private Long patientId;
+
+    /**
+     * 就诊序列号
+     */
+    private String inquiryCode;
+
+    /**
+     * 分类(1:门诊,2:住院)
+     */
+    private Integer type;
+
+	
+	private List<String> contentList;
+	
+}

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

@@ -6,7 +6,7 @@ import lombok.Setter;
 /**
  * @Description:
  * @Author:zhaops
- * @time: 2019/3/21 11:28
+ * @time: 2019/3/21 14:13
  */
 @Getter
 @Setter

+ 20 - 0
icss-service/src/main/java/com/diagbot/dto/PushEMRDTO.java

@@ -0,0 +1,20 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:推理返回数据
+ * @Author:zhaops
+ * @time: 2019/3/11 16:36
+ */
+@Getter
+@Setter
+public class PushEMRDTO {
+    private List<EMRQuestionDTO> lisList;
+    private List<EMRQuestionDTO> pacsList;
+    private Map<String, List<EMRQuestionDTO>> dis;
+}

+ 15 - 1
icss-service/src/main/java/com/diagbot/entity/DiseaseIcd.java

@@ -73,6 +73,19 @@ public class DiseaseIcd implements Serializable {
      */
     private String remark;
 
+    /**
+     * 疾病名称(内)
+     */
+    private String icssQuestionName;
+
+    public String getIcssQuestionName() {
+        return icssQuestionName;
+    }
+
+    public void setIcssQuestionName(String icssQuestionName) {
+        this.icssQuestionName = icssQuestionName;
+    }
+
     public Long getId() {
         return id;
     }
@@ -165,6 +178,7 @@ public class DiseaseIcd implements Serializable {
         ", icd=" + icd +
         ", status=" + status +
         ", remark=" + remark +
-        "}";
+        ",icssQuestionName" + icssQuestionName +
+                "}";
     }
 }

+ 12 - 10
icss-service/src/main/java/com/diagbot/entity/HospitalDept.java

@@ -1,12 +1,12 @@
 package com.diagbot.entity;
 
-import java.io.Serializable;
-import java.util.Date;
-
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 
+import java.io.Serializable;
+import java.util.Date;
+
 /**
  * <p>
  * 医院科室信息表
@@ -72,9 +72,9 @@ public class HospitalDept implements Serializable {
     private String hospitalName;
 
     /**
-     * icss科室id
+     * icss科室名称
      */
-    private Long deptId;
+    private String icssDeptName;
 
     /**
      * 状态:0.禁用1.启用
@@ -156,13 +156,15 @@ public class HospitalDept implements Serializable {
     public void setHospitalName(String hospitalName) {
         this.hospitalName = hospitalName;
     }
-    public Long getDeptId() {
-        return deptId;
+
+    public String getIcssDeptName() {
+        return icssDeptName;
     }
 
-    public void setDeptId(Long deptId) {
-        this.deptId = deptId;
+    public void setIcssDeptName(String icssDeptName) {
+        this.icssDeptName = icssDeptName;
     }
+
     public Integer getStatus() {
         return status;
     }
@@ -191,7 +193,7 @@ public class HospitalDept implements Serializable {
         ", name=" + name +
         ", hospitalCode=" + hospitalCode +
         ", hospitalName=" + hospitalName +
-        ", deptId=" + deptId +
+        ", deptId=" + icssDeptName +
         ", status=" + status +
         ", remark=" + remark +
         "}";

+ 15 - 2
icss-service/src/main/java/com/diagbot/entity/InquiryDetail.java

@@ -12,8 +12,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
  * 问诊记录明细表
  * </p>
  *
- * @author rengb
- * @since 2018-11-23
+ * @author zhoutg
+ * @since 2019-03-18
  */
 @TableName("icss_inquiry_detail")
 public class InquiryDetail implements Serializable {
@@ -66,6 +66,11 @@ public class InquiryDetail implements Serializable {
      */
     private String content;
 
+    /**
+     * 内容字符串纯文本
+     */
+    private String contentValue;
+
     /**
      * 备注
      */
@@ -134,6 +139,13 @@ public class InquiryDetail implements Serializable {
     public void setContent(String content) {
         this.content = content;
     }
+    public String getContentValue() {
+        return contentValue;
+    }
+
+    public void setContentValue(String contentValue) {
+        this.contentValue = contentValue;
+    }
     public String getRemark() {
         return remark;
     }
@@ -154,6 +166,7 @@ public class InquiryDetail implements Serializable {
         ", inquiryId=" + inquiryId +
         ", type=" + type +
         ", content=" + content +
+        ", contentValue=" + contentValue +
         ", remark=" + remark +
         "}";
     }

+ 2 - 1
icss-service/src/main/java/com/diagbot/facade/DeptInfoFacade.java

@@ -43,10 +43,11 @@ public class DeptInfoFacade extends DeptInfoServiceImpl {
         }
         QueryWrapper<DeptInfo> deptInfoDTOQueryWrapper = new QueryWrapper<>();
         deptInfoDTOQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("id",hospitalDeptInfoDTORespDTO.data.getDeptId());
+                .eq("name",hospitalDeptInfoDTORespDTO.data.getIcssDeptName());
         DeptInfo deptInfo = this.getOne(deptInfoDTOQueryWrapper);
         DeptInfoDTO deptInfoDTO = new DeptInfoDTO();
         BeanUtil.copyProperties(deptInfo,deptInfoDTO);
+        deptInfoDTO.setId(deptInfo.getId());
         return deptInfoDTO;
     }
 }

+ 429 - 360
icss-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java

@@ -1,360 +1,429 @@
-package com.diagbot.facade;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.diagbot.dto.GetEvaluationScalesDTO;
-import com.diagbot.dto.GetEvaluationsDTO;
-import com.diagbot.dto.GetInquiryDetailDTO;
-import com.diagbot.dto.GetLastOtherDTO;
-import com.diagbot.dto.HisInquiryDTO;
-import com.diagbot.dto.HospitalInfoDTO;
-import com.diagbot.dto.PatientInfoDTO;
-import com.diagbot.dto.ReadInquiryDTO;
-import com.diagbot.dto.ReadInquiryDrugDTO;
-import com.diagbot.dto.SaveInquiryDTO;
-import com.diagbot.entity.DoctorInfo;
-import com.diagbot.entity.HospitalDept;
-import com.diagbot.entity.InquiryDetail;
-import com.diagbot.entity.InquiryDrug;
-import com.diagbot.entity.InquiryEvaluation;
-import com.diagbot.entity.InquiryInfo;
-import com.diagbot.entity.InquiryScale;
-import com.diagbot.entity.PatientInfo;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.enums.SexTypeEnum;
-import com.diagbot.service.InquiryDrugService;
-import com.diagbot.service.InquiryScaleService;
-import com.diagbot.service.impl.InquiryInfoServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.ListUtil;
-import com.diagbot.vo.GetEvaluationScalesVO;
-import com.diagbot.vo.GetEvaluationsVO;
-import com.diagbot.vo.GetInquiryDetailVO;
-import com.diagbot.vo.GetLastOtherVO;
-import com.diagbot.vo.HisInquirysVO;
-import com.diagbot.vo.PatientInfoVO;
-import com.diagbot.vo.ReadInquiryVO;
-import com.diagbot.vo.SaveInquiryVO;
-
-/**
- * @author rengb
- * @Description
- * @time 2018年11月23日下午2:08:08
- */
-@Component
-public class InquiryInfoFacade extends InquiryInfoServiceImpl {
-
-    @Autowired
-    private InquiryDetailFacade inquiryDetailFacade;
-    @Autowired
-    private HospitalInfoFacade hospitalInfoFacade;
-    @Autowired
-    private PatientInfoFacade patientInfoFacade;
-    @Autowired
-    private DoctorInfoFacade doctorInfoFacade;
-    @Autowired
-    private HospitalDeptFacade hospitalDeptFacade;
-    @Autowired
-    private InquiryDrugFacade inquiryDrugFacade;
-    @Autowired
-    @Qualifier("inquiryDrugServiceImpl")
-    private InquiryDrugService inquiryDrugService;
-    @Autowired
-    private InquiryEvaluationFacade inquiryEvaluationFacade;
-    @Autowired
-    private InquiryScaleFacade inquiryScaleFacade;
-    @Autowired
-    @Qualifier("inquiryScaleServiceImpl")
-    private InquiryScaleService inquiryScaleService;
-
-    /**
-     * 问诊记录保存
-     *
-     * @param saveInquiryVO
-     * @return
-     */
-    @Transactional
-    public SaveInquiryDTO saveInquiry(SaveInquiryVO saveInquiryVO) {
-        SaveInquiryDTO saveInquiryDTO = new SaveInquiryDTO();
-        Date now = new Date();
-
-        QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
-        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
-        queryWrapper.eq("hospital_id", saveInquiryVO.getHospitalId());
-        queryWrapper.eq("hospital_dept_id", saveInquiryVO.getHospitalDeptId());
-        queryWrapper.eq("doctor_id", saveInquiryVO.getDoctorId());
-        queryWrapper.eq("patient_id", saveInquiryVO.getPatientId());
-        queryWrapper.eq("inquiry_code", saveInquiryVO.getInquiryCode());
-        InquiryInfo inquiryInfo = this.getOne(queryWrapper);
-
-        Long inquiryId = null;
-        InquiryInfo inquiryInfoSave = new InquiryInfo();
-        inquiryInfoSave.setHospitalId(saveInquiryVO.getHospitalId());
-        inquiryInfoSave.setHospitalDeptId(saveInquiryVO.getHospitalDeptId());
-        inquiryInfoSave.setDoctorId(saveInquiryVO.getDoctorId());
-        inquiryInfoSave.setPatientId(saveInquiryVO.getPatientId());
-        inquiryInfoSave.setInquiryCode(saveInquiryVO.getInquiryCode());
-        inquiryInfoSave.setRegVisitedState(saveInquiryVO.getRegVisitedState());
-        inquiryInfoSave.setType(saveInquiryVO.getType());
-        inquiryInfoSave.setDiagnose(saveInquiryVO.getDiagnose());
-        inquiryInfoSave.setSign(saveInquiryVO.getSign());
-        inquiryInfoSave.setDataJson(saveInquiryVO.getDataJson());
-        if (inquiryInfo == null) {
-            inquiryInfoSave.setGmtCreate(now);
-            inquiryInfoSave.setGmtModified(now);
-            this.save(inquiryInfoSave);
-            inquiryId = inquiryInfoSave.getId();
-        } else {
-            inquiryId = inquiryInfo.getId();
-            inquiryInfoSave.setId(inquiryId);
-            inquiryInfoSave.setGmtModified(now);
-            this.updateById(inquiryInfoSave);
-
-            inquiryDetailFacade.removeByInquiryId(inquiryId);
-            inquiryDrugFacade.removeByInquiryId(inquiryId);
-            inquiryEvaluationFacade.removeByInquiryId(inquiryId);
-            inquiryScaleFacade.removeByInquiryId(inquiryId);
-        }
-        
-        Long inquiryId_=inquiryId;
-        
-        if(ListUtil.isNotEmpty(saveInquiryVO.getDetailList())){
-            List<InquiryDetail> inquiryDetailList = BeanUtil.listCopyTo(saveInquiryVO.getDetailList(),InquiryDetail.class);
-            inquiryDetailList.forEach(i->{
-            	i.setInquiryId(inquiryId_);
-            	i.setGmtCreate(now);
-            });
-            inquiryDetailFacade.saveInquiryDetails(inquiryDetailList);
-        }
-        
-        if(ListUtil.isNotEmpty(saveInquiryVO.getDrugList())){
-        	List<InquiryDrug> inquiryDrugList = BeanUtil.listCopyTo(saveInquiryVO.getDrugList(),InquiryDrug.class);
-            inquiryDrugList.stream().forEach(i->{
-            	i.setInquiryId(inquiryId_);
-            	i.setGmtCreate(now);
-            });
-            inquiryDrugService.saveBatch(inquiryDrugList);
-        }
-        
-        if(saveInquiryVO.getInquiryEvaluation()!=null){
-        	InquiryEvaluation inquiryEvaluation = new InquiryEvaluation();
-        	inquiryEvaluation.setInquiryId(inquiryId_);
-        	inquiryEvaluation.setGmtCreate(now);
-        	inquiryEvaluation.setHtmlContent(saveInquiryVO.getInquiryEvaluation().getHtmlContent());
-        	inquiryEvaluationFacade.save(inquiryEvaluation);
-        	
-        	if(ListUtil.isNotEmpty(saveInquiryVO.getInquiryEvaluation().getScaleList())){
-        		List<InquiryScale> inquiryScaleList = BeanUtil.listCopyTo(saveInquiryVO.getInquiryEvaluation().getScaleList(),InquiryScale.class);
-        		inquiryScaleList.forEach(i->{
-        			i.setInquiryId(inquiryId_);
-        			i.setInquiryEvaluationId(inquiryEvaluation.getId());
-        			i.setGmtCreate(now);
-        		});
-        		inquiryScaleService.saveBatch(inquiryScaleList);
-        	}
-        }
-        
-        saveInquiryDTO.setInquiryId(inquiryId);
-        return saveInquiryDTO;
-    }
-
-    /**
-     * 问诊记录回显
-     *
-     * @param readInquiryVO
-     * @return
-     */
-    public ReadInquiryDTO readInquiry(ReadInquiryVO readInquiryVO) {
-        ReadInquiryDTO readInquiryDTO = new ReadInquiryDTO();
-        QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
-        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
-        queryWrapper.eq("hospital_id", readInquiryVO.getHospitalId());
-        queryWrapper.eq("hospital_dept_id", readInquiryVO.getHospitalDeptId());
-        queryWrapper.eq("doctor_id", readInquiryVO.getDoctorId());
-        queryWrapper.eq("patient_id", readInquiryVO.getPatientId());
-        queryWrapper.eq("inquiry_code", readInquiryVO.getInquiryCode());
-        InquiryInfo inquiryInfo = this.getOne(queryWrapper);
-
-        if (inquiryInfo != null) {
-            readInquiryDTO.setDataJson(inquiryInfo.getDataJson());
-            BeanUtil.copyProperties(inquiryInfo, readInquiryDTO);
-            
-            QueryWrapper<InquiryDetail> inquiryDetailQe = new QueryWrapper<>();
-            inquiryDetailQe.eq("inquiry_id", inquiryInfo.getId());
-            readInquiryDTO.setDetailList(inquiryDetailFacade.list(inquiryDetailQe).stream().sorted((a,b)->a.getType()-b.getType()).collect(Collectors.toList()));
-            
-            List<InquiryDrug> inquiryDrugList = inquiryDrugFacade.getInquiryDrugs(inquiryInfo.getId());
-            
-            List<ReadInquiryDrugDTO> drugList = BeanUtil.listCopyTo(inquiryDrugList,ReadInquiryDrugDTO.class);
-            readInquiryDTO.setDrugList(drugList);
-        }
-
-        return readInquiryDTO;
-    }
-
-    /**
-     * 获取最近一次其他史信息
-     *
-     * @param getLastOtherVO
-     * @return
-     */
-    public GetLastOtherDTO getLastOther(GetLastOtherVO getLastOtherVO) {
-    	GetLastOtherDTO getLastOtherDTO = new GetLastOtherDTO();
-    	
-    	HospitalInfoDTO hospitalInfoDTO = hospitalInfoFacade.getHospitalByCode(getLastOtherVO.getHospitalCode());
-    	
-    	PatientInfoVO patientInfoVO = new PatientInfoVO();
-    	patientInfoVO.setHospitalCode(getLastOtherVO.getHospitalCode());
-    	patientInfoVO.setPatientCode(getLastOtherVO.getPatientCode());
-    	PatientInfoDTO patientInfoDTO = patientInfoFacade.getPatientInfo(patientInfoVO);
-
-        Map<String, Object> map = new HashMap<>();
-        map.put("hospitalId", hospitalInfoDTO.getId());
-        map.put("patientId", patientInfoDTO.getId());
-        map.put("sign", getLastOtherVO.getSign());
-        InquiryInfo inquiryInfo = baseMapper.getPatientLast(map);
-
-        if (inquiryInfo != null) {
-        	getLastOtherDTO.setDataJson(inquiryInfo.getDataJson());
-        	
-        	QueryWrapper<InquiryDetail> inquiryDetailQe = new QueryWrapper<>();
-            inquiryDetailQe.eq("inquiry_id", inquiryInfo.getId());
-            inquiryDetailQe.eq("type", 3);
-            InquiryDetail inquiryDetail = inquiryDetailFacade.getOne(inquiryDetailQe);
-            if(inquiryDetail!=null){
-            	getLastOtherDTO.setOtherStr(inquiryDetail.getContent());
-            }
-        }
-        return getLastOtherDTO;
-    }
-
-    /**
-     * 历史病历列表
-     *
-     * @param hisInquirysVO
-     * @return
-     */
-    public List<HisInquiryDTO> hisInquirys(HisInquirysVO hisInquirysVO) {
-        QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
-        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
-        queryWrapper.eq("hospital_id", hisInquirysVO.getHospitalId());
-        if(hisInquirysVO.getHospitalDeptId()!=null){
-        	queryWrapper.eq("hospital_dept_id", hisInquirysVO.getHospitalDeptId());
-        }
-        if(hisInquirysVO.getDoctorId()!=null){
-        	queryWrapper.eq("doctor_id", hisInquirysVO.getDoctorId());
-        }
-        if (hisInquirysVO.getPatientId() != null) {
-            queryWrapper.eq("patient_id", hisInquirysVO.getPatientId());
-        }
-        if (hisInquirysVO.getType() != null) {
-            queryWrapper.eq("type", hisInquirysVO.getType());
-        }
-        if (hisInquirysVO.getSign() != null) {
-            queryWrapper.eq("sign", hisInquirysVO.getSign());
-        }
-        if (hisInquirysVO.getStartDate() != null) {
-            queryWrapper.ge("gmt_create", hisInquirysVO.getStartDate());
-        }
-        if (hisInquirysVO.getEndDate() != null) {
-            queryWrapper.le("gmt_create", hisInquirysVO.getEndDate());
-        }
-        if (hisInquirysVO.getOrderType() == 1) {
-            queryWrapper.orderByDesc("gmt_modified");
-        } else if (hisInquirysVO.getOrderType() == 2) {
-            queryWrapper.orderByAsc("gmt_modified");
-        }
-        List<InquiryInfo> inquiryInfoList = this.list(queryWrapper);
-        if (inquiryInfoList.size() == 0) {
-            return null;
-        }
-
-        List<Long> hospitalDeptIdList = inquiryInfoList.stream().map(i -> i.getHospitalDeptId()).collect(Collectors.toList());
-        List<Long> doctorIdList = inquiryInfoList.stream().map(i -> i.getDoctorId()).collect(Collectors.toList());
-        List<Long> patientIdList = inquiryInfoList.stream().map(i -> i.getPatientId()).collect(Collectors.toList());
-        List<Long> inquiryIdList = inquiryInfoList.stream().map(i -> i.getId()).collect(Collectors.toList());
-
-        Map<Long, HospitalDept> hospitalDeptMap = hospitalDeptFacade.hospitalDeptInfoMapByIds(hospitalDeptIdList);
-        Map<Long, DoctorInfo> doctorInfoMap = doctorInfoFacade.doctorInfoMapByIds(doctorIdList);
-        Map<Long, PatientInfo> patientInfoMap = patientInfoFacade.patientInfoMapByIds(patientIdList);
-        Map<Long, List<InquiryDetail>> inquiryDetailMap = inquiryDetailFacade.getDetailsByInquryIds(inquiryIdList);
-
-        List<HisInquiryDTO> hisInquiryDTOList = new ArrayList<>();
-        inquiryInfoList.forEach(i -> {
-            HisInquiryDTO hisInquiryDTO = new HisInquiryDTO();
-            BeanUtil.copyProperties(i, hisInquiryDTO);
-            hisInquiryDTO.setInquiryDate(i.getGmtModified());
-            hisInquiryDTO.setInquiryTime(i.getGmtModified());
-            hisInquiryDTO.setHospitalDeptName(Optional.ofNullable(hospitalDeptMap.get(i.getHospitalDeptId())).map(t -> t.getName()).orElse(null));
-            hisInquiryDTO.setDoctorName(Optional.ofNullable(doctorInfoMap.get(i.getDoctorId())).map(t -> t.getName()).orElse(null));
-            PatientInfo patientInfo = patientInfoMap.get(i.getPatientId());
-            if (patientInfo != null) {
-                hisInquiryDTO.setPatientName(patientInfo.getName());
-                hisInquiryDTO.setPatientIdNo(patientInfo.getIdNo());
-                hisInquiryDTO.setPatientSex(SexTypeEnum.getName(patientInfo.getSex()));
-                hisInquiryDTO.setPatientAge(DateUtil.yearCompare(patientInfo.getBirthday(), DateUtil.now()));
-            }
-
-            hisInquiryDTO.setDetailList(inquiryDetailMap.get(i.getId()));
-            hisInquiryDTOList.add(hisInquiryDTO);
-        });
-
-
-        return hisInquiryDTOList;
-    }
-
-    /**
-     * 病历详情
-     *
-     * @param getInquiryDetailVO
-     * @return
-     */
-    public GetInquiryDetailDTO getInquiryDetail(GetInquiryDetailVO getInquiryDetailVO) {
-        GetInquiryDetailDTO getInquiryDetailDTO = new GetInquiryDetailDTO();
-
-        List<InquiryDetail> inquiryDetailList = inquiryDetailFacade.getListByInquryId(getInquiryDetailVO.getInquiryId());
-
-        getInquiryDetailDTO.setInquiryDetailList(inquiryDetailList);
-
-        return getInquiryDetailDTO;
-    }
-    
-    /**
-     * 获取评估结果
-     *
-     * @param getEvaluationsVO
-     * @return
-     */
-    public List<GetEvaluationsDTO> getEvaluations(GetEvaluationsVO getEvaluationsVO) {
-    	List<InquiryEvaluation> inquiryEvaluationList = inquiryEvaluationFacade.getEvaluationsByInquiryId(getEvaluationsVO.getInquiryId());
-        return BeanUtil.listCopyTo(inquiryEvaluationList, GetEvaluationsDTO.class);
-    }
-    
-    /**
-     * 获取评估量表
-     *
-     * @param getEvaluationScalesVO
-     * @return
-     */
-    public List<GetEvaluationScalesDTO> getEvaluationScales(GetEvaluationScalesVO getEvaluationScalesVO) {
-    	QueryWrapper<InquiryScale> queryWrapper = new QueryWrapper<InquiryScale>();
-    	queryWrapper.eq("inquiry_id", getEvaluationScalesVO.getInquiryId());
-    	queryWrapper.eq("inquiry_evaluation_id", getEvaluationScalesVO.getInquiryEvaluationId());
-    	List<InquiryScale> inquiryScaleList =inquiryScaleFacade.list(queryWrapper);
-        return BeanUtil.listCopyTo(inquiryScaleList, GetEvaluationScalesDTO.class);
-    }
-
-}
+package com.diagbot.facade;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.GetEvaluationScalesDTO;
+import com.diagbot.dto.GetEvaluationsDTO;
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.EMRIntroduceDetailDTO;
+import com.diagbot.dto.GetInquiryDetailDTO;
+import com.diagbot.dto.GetLastOtherDTO;
+import com.diagbot.dto.HisInquiryDTO;
+import com.diagbot.dto.HisInquirysForDjDTO;
+import com.diagbot.dto.HospitalInfoDTO;
+import com.diagbot.dto.PatientInfoDTO;
+import com.diagbot.dto.ReadInquiryDTO;
+import com.diagbot.dto.ReadInquiryDrugDTO;
+import com.diagbot.dto.SaveInquiryDTO;
+import com.diagbot.entity.DoctorInfo;
+import com.diagbot.entity.HospitalDept;
+import com.diagbot.entity.InquiryDetail;
+import com.diagbot.entity.InquiryDrug;
+import com.diagbot.entity.InquiryEvaluation;
+import com.diagbot.entity.InquiryInfo;
+import com.diagbot.entity.InquiryScale;
+import com.diagbot.entity.PatientInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.SexTypeEnum;
+import com.diagbot.service.InquiryDrugService;
+import com.diagbot.service.InquiryScaleService;
+import com.diagbot.service.impl.InquiryInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.GetEvaluationScalesVO;
+import com.diagbot.vo.GetEvaluationsVO;
+import com.diagbot.vo.GetInquiryDetailVO;
+import com.diagbot.vo.GetLastOtherVO;
+import com.diagbot.vo.HisInquirysForDjVO;
+import com.diagbot.vo.HisInquirysVO;
+import com.diagbot.vo.PatientInfoVO;
+import com.diagbot.vo.ReadInquiryVO;
+import com.diagbot.vo.SaveInquiryDetailVO;
+import com.diagbot.vo.SaveInquiryToHisVO;
+import com.diagbot.vo.SaveInquiryVO;
+
+/**
+ * @author rengb
+ * @Description
+ * @time 2018年11月23日下午2:08:08
+ */
+@Component
+public class InquiryInfoFacade extends InquiryInfoServiceImpl {
+
+    @Autowired
+    private InquiryDetailFacade inquiryDetailFacade;
+    @Autowired
+    private HospitalInfoFacade hospitalInfoFacade;
+    @Autowired
+    private PatientInfoFacade patientInfoFacade;
+    @Autowired
+    private DoctorInfoFacade doctorInfoFacade;
+    @Autowired
+    private HospitalDeptFacade hospitalDeptFacade;
+    @Autowired
+    private TranServiceClient tranServiceClient;
+    @Autowired
+    private InquiryDrugFacade inquiryDrugFacade;
+    @Autowired
+    @Qualifier("inquiryDrugServiceImpl")
+    private InquiryDrugService inquiryDrugService;
+    @Autowired
+    private InquiryEvaluationFacade inquiryEvaluationFacade;
+    @Autowired
+    private InquiryScaleFacade inquiryScaleFacade;
+    @Autowired
+    @Qualifier("inquiryScaleServiceImpl")
+    private InquiryScaleService inquiryScaleService;
+
+    /**
+     * 问诊记录保存
+     *
+     * @param saveInquiryVO
+     * @return
+     */
+    @Transactional
+    public SaveInquiryDTO saveInquiry(SaveInquiryVO saveInquiryVO) {
+        SaveInquiryDTO saveInquiryDTO = new SaveInquiryDTO();
+        Date now = new Date();
+
+        QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        queryWrapper.eq("hospital_id", saveInquiryVO.getHospitalId());
+        queryWrapper.eq("hospital_dept_id", saveInquiryVO.getHospitalDeptId());
+        queryWrapper.eq("doctor_id", saveInquiryVO.getDoctorId());
+        queryWrapper.eq("patient_id", saveInquiryVO.getPatientId());
+        queryWrapper.eq("inquiry_code", saveInquiryVO.getInquiryCode());
+        InquiryInfo inquiryInfo = this.getOne(queryWrapper);
+
+        Long inquiryId = null;
+        InquiryInfo inquiryInfoSave = new InquiryInfo();
+        inquiryInfoSave.setHospitalId(saveInquiryVO.getHospitalId());
+        inquiryInfoSave.setHospitalDeptId(saveInquiryVO.getHospitalDeptId());
+        inquiryInfoSave.setDoctorId(saveInquiryVO.getDoctorId());
+        inquiryInfoSave.setPatientId(saveInquiryVO.getPatientId());
+        inquiryInfoSave.setInquiryCode(saveInquiryVO.getInquiryCode());
+        inquiryInfoSave.setRegVisitedState(saveInquiryVO.getRegVisitedState());
+        inquiryInfoSave.setType(saveInquiryVO.getType());
+        inquiryInfoSave.setDiagnose(saveInquiryVO.getDiagnose());
+        inquiryInfoSave.setSign(saveInquiryVO.getSign());
+        inquiryInfoSave.setDataJson(saveInquiryVO.getDataJson());
+        if (inquiryInfo == null) {
+            inquiryInfoSave.setGmtCreate(now);
+            inquiryInfoSave.setGmtModified(now);
+            this.save(inquiryInfoSave);
+            inquiryId = inquiryInfoSave.getId();
+        } else {
+            inquiryId = inquiryInfo.getId();
+            inquiryInfoSave.setId(inquiryId);
+            inquiryInfoSave.setGmtModified(now);
+            this.updateById(inquiryInfoSave);
+
+            inquiryDetailFacade.removeByInquiryId(inquiryId);
+            inquiryDrugFacade.removeByInquiryId(inquiryId);
+            inquiryEvaluationFacade.removeByInquiryId(inquiryId);
+            inquiryScaleFacade.removeByInquiryId(inquiryId);
+        }
+
+        Long inquiryId_=inquiryId;
+
+        if(ListUtil.isNotEmpty(saveInquiryVO.getDetailList())){
+            List<InquiryDetail> inquiryDetailList = BeanUtil.listCopyTo(saveInquiryVO.getDetailList(),InquiryDetail.class);
+            inquiryDetailList.forEach(i->{
+            	i.setInquiryId(inquiryId_);
+            	i.setGmtCreate(now);
+            });
+            inquiryDetailFacade.saveInquiryDetails(inquiryDetailList);
+        }
+
+        if(ListUtil.isNotEmpty(saveInquiryVO.getDrugList())){
+        	List<InquiryDrug> inquiryDrugList = BeanUtil.listCopyTo(saveInquiryVO.getDrugList(),InquiryDrug.class);
+            inquiryDrugList.stream().forEach(i->{
+            	i.setInquiryId(inquiryId_);
+            	i.setGmtCreate(now);
+            });
+            inquiryDrugService.saveBatch(inquiryDrugList);
+        }
+
+        if(saveInquiryVO.getInquiryEvaluation()!=null){
+        	InquiryEvaluation inquiryEvaluation = new InquiryEvaluation();
+        	inquiryEvaluation.setInquiryId(inquiryId_);
+        	inquiryEvaluation.setGmtCreate(now);
+        	inquiryEvaluation.setHtmlContent(saveInquiryVO.getInquiryEvaluation().getHtmlContent());
+        	inquiryEvaluationFacade.save(inquiryEvaluation);
+
+        	if(ListUtil.isNotEmpty(saveInquiryVO.getInquiryEvaluation().getScaleList())){
+        		List<InquiryScale> inquiryScaleList = BeanUtil.listCopyTo(saveInquiryVO.getInquiryEvaluation().getScaleList(),InquiryScale.class);
+        		inquiryScaleList.forEach(i->{
+        			i.setInquiryId(inquiryId_);
+        			i.setInquiryEvaluationId(inquiryEvaluation.getId());
+        			i.setGmtCreate(now);
+        		});
+        		inquiryScaleService.saveBatch(inquiryScaleList);
+        	}
+        }
+
+        saveInquiryDTO.setInquiryId(inquiryId);
+
+        SaveInquiryToHisVO saveInquiryToHisVO = new SaveInquiryToHisVO();
+        saveInquiryToHisVO.setContentList(contentList);
+        tranServiceClient.saveInquiryToHis(saveInquiryToHisVO);
+
+        return saveInquiryDTO;
+    }
+
+    /**
+     * 问诊记录回显
+     *
+     * @param readInquiryVO
+     * @return
+     */
+    public ReadInquiryDTO readInquiry(ReadInquiryVO readInquiryVO) {
+        ReadInquiryDTO readInquiryDTO = new ReadInquiryDTO();
+        QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        queryWrapper.eq("hospital_id", readInquiryVO.getHospitalId());
+        queryWrapper.eq("hospital_dept_id", readInquiryVO.getHospitalDeptId());
+        queryWrapper.eq("doctor_id", readInquiryVO.getDoctorId());
+        queryWrapper.eq("patient_id", readInquiryVO.getPatientId());
+        queryWrapper.eq("inquiry_code", readInquiryVO.getInquiryCode());
+        InquiryInfo inquiryInfo = this.getOne(queryWrapper);
+
+        if (inquiryInfo != null) {
+            readInquiryDTO.setDataJson(inquiryInfo.getDataJson());
+            BeanUtil.copyProperties(inquiryInfo, readInquiryDTO);
+            
+            QueryWrapper<InquiryDetail> inquiryDetailQe = new QueryWrapper<>();
+            inquiryDetailQe.eq("inquiry_id", inquiryInfo.getId());
+            readInquiryDTO.setDetailList(inquiryDetailFacade.list(inquiryDetailQe).stream().sorted((a,b)->a.getType()-b.getType()).collect(Collectors.toList()));
+
+            List<InquiryDrug> inquiryDrugList = inquiryDrugFacade.getInquiryDrugs(inquiryInfo.getId());
+
+            List<ReadInquiryDrugDTO> drugList = BeanUtil.listCopyTo(inquiryDrugList,ReadInquiryDrugDTO.class);
+            readInquiryDTO.setDrugList(drugList);
+        }
+
+        return readInquiryDTO;
+    }
+
+    /**
+     * 获取最近一次其他史信息
+     *
+     * @param getLastOtherVO
+     * @return
+     */
+    public GetLastOtherDTO getLastOther(GetLastOtherVO getLastOtherVO) {
+    	GetLastOtherDTO getLastOtherDTO = new GetLastOtherDTO();
+    	
+    	HospitalInfoDTO hospitalInfoDTO = hospitalInfoFacade.getHospitalByCode(getLastOtherVO.getHospitalCode());
+    	
+    	PatientInfoVO patientInfoVO = new PatientInfoVO();
+    	patientInfoVO.setHospitalCode(getLastOtherVO.getHospitalCode());
+    	patientInfoVO.setPatientCode(getLastOtherVO.getPatientCode());
+    	PatientInfoDTO patientInfoDTO = patientInfoFacade.getPatientInfo(patientInfoVO);
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("hospitalId", hospitalInfoDTO.getId());
+        map.put("patientId", patientInfoDTO.getId());
+        map.put("sign", getLastOtherVO.getSign());
+        InquiryInfo inquiryInfo = baseMapper.getPatientLast(map);
+
+        if (inquiryInfo != null) {
+        	getLastOtherDTO.setDataJson(inquiryInfo.getDataJson());
+        	
+        	QueryWrapper<InquiryDetail> inquiryDetailQe = new QueryWrapper<>();
+            inquiryDetailQe.eq("inquiry_id", inquiryInfo.getId());
+            inquiryDetailQe.eq("type", 3);
+            InquiryDetail inquiryDetail = inquiryDetailFacade.getOne(inquiryDetailQe);
+            if(inquiryDetail!=null){
+            	getLastOtherDTO.setOtherStr(inquiryDetail.getContent());
+            }
+        }
+        return getLastOtherDTO;
+    }
+
+    /**
+     * 历史病历列表
+     *
+     * @param hisInquirysVO
+     * @return
+     */
+    public List<HisInquiryDTO> hisInquirys(HisInquirysVO hisInquirysVO) {
+        QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        queryWrapper.eq("hospital_id", hisInquirysVO.getHospitalId());
+        if(hisInquirysVO.getHospitalDeptId()!=null){
+        	queryWrapper.eq("hospital_dept_id", hisInquirysVO.getHospitalDeptId());
+        }
+        if(hisInquirysVO.getDoctorId()!=null){
+        	queryWrapper.eq("doctor_id", hisInquirysVO.getDoctorId());
+        }
+        if (hisInquirysVO.getPatientId() != null) {
+            queryWrapper.eq("patient_id", hisInquirysVO.getPatientId());
+        }
+        if (hisInquirysVO.getType() != null) {
+            queryWrapper.eq("type", hisInquirysVO.getType());
+        }
+        if (hisInquirysVO.getSign() != null) {
+            queryWrapper.eq("sign", hisInquirysVO.getSign());
+        }
+        if (hisInquirysVO.getStartDate() != null) {
+            queryWrapper.ge("gmt_create", hisInquirysVO.getStartDate());
+        }
+        if (hisInquirysVO.getEndDate() != null) {
+            queryWrapper.le("gmt_create", hisInquirysVO.getEndDate());
+        }
+        if (hisInquirysVO.getOrderType() == 1) {
+            queryWrapper.orderByDesc("gmt_modified");
+        } else if (hisInquirysVO.getOrderType() == 2) {
+            queryWrapper.orderByAsc("gmt_modified");
+        }
+        List<InquiryInfo> inquiryInfoList = this.list(queryWrapper);
+        if (inquiryInfoList.size() == 0) {
+            return null;
+        }
+
+        List<Long> hospitalDeptIdList = inquiryInfoList.stream().map(i -> i.getHospitalDeptId()).collect(Collectors.toList());
+        List<Long> doctorIdList = inquiryInfoList.stream().map(i -> i.getDoctorId()).collect(Collectors.toList());
+        List<Long> patientIdList = inquiryInfoList.stream().map(i -> i.getPatientId()).collect(Collectors.toList());
+        List<Long> inquiryIdList = inquiryInfoList.stream().map(i -> i.getId()).collect(Collectors.toList());
+
+        Map<Long, HospitalDept> hospitalDeptMap = hospitalDeptFacade.hospitalDeptInfoMapByIds(hospitalDeptIdList);
+        Map<Long, DoctorInfo> doctorInfoMap = doctorInfoFacade.doctorInfoMapByIds(doctorIdList);
+        Map<Long, PatientInfo> patientInfoMap = patientInfoFacade.patientInfoMapByIds(patientIdList);
+        Map<Long, List<InquiryDetail>> inquiryDetailMap = inquiryDetailFacade.getDetailsByInquryIds(inquiryIdList);
+
+        List<HisInquiryDTO> hisInquiryDTOList = new ArrayList<>();
+        inquiryInfoList.forEach(i -> {
+            HisInquiryDTO hisInquiryDTO = new HisInquiryDTO();
+            BeanUtil.copyProperties(i, hisInquiryDTO);
+            hisInquiryDTO.setInquiryDate(i.getGmtModified());
+            hisInquiryDTO.setInquiryTime(i.getGmtModified());
+            hisInquiryDTO.setHospitalDeptName(Optional.ofNullable(hospitalDeptMap.get(i.getHospitalDeptId())).map(t -> t.getName()).orElse(null));
+            hisInquiryDTO.setDoctorName(Optional.ofNullable(doctorInfoMap.get(i.getDoctorId())).map(t -> t.getName()).orElse(null));
+            PatientInfo patientInfo = patientInfoMap.get(i.getPatientId());
+            if (patientInfo != null) {
+                hisInquiryDTO.setPatientName(patientInfo.getName());
+                hisInquiryDTO.setPatientIdNo(patientInfo.getIdNo());
+                hisInquiryDTO.setPatientSex(SexTypeEnum.getName(patientInfo.getSex()));
+                hisInquiryDTO.setPatientAge(DateUtil.yearCompare(patientInfo.getBirthday(), DateUtil.now()));
+            }
+
+            hisInquiryDTO.setDetailList(inquiryDetailMap.get(i.getId()));
+            hisInquiryDTOList.add(hisInquiryDTO);
+        });
+
+
+        return hisInquiryDTOList;
+    }
+
+    /**
+     * 对接-历史病历列表
+     *
+     * @param hisInquirysForDjVO
+     * @return
+     */
+    public List<HisInquirysForDjDTO> hisInquirysForDj(HisInquirysForDjVO hisInquirysForDjVO) {
+    	QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        queryWrapper.eq("hospital_id", hisInquirysForDjVO.getHospitalId());
+        if(hisInquirysForDjVO.getHospitalDeptId()!=null){
+        	queryWrapper.eq("hospital_dept_id", hisInquirysForDjVO.getHospitalDeptId());
+        }
+        if(hisInquirysForDjVO.getDoctorId()!=null){
+        	queryWrapper.eq("doctor_id", hisInquirysForDjVO.getDoctorId());
+        }
+        if (hisInquirysForDjVO.getPatientId() != null) {
+            queryWrapper.eq("patient_id", hisInquirysForDjVO.getPatientId());
+        }
+        if(StringUtil.isNotBlank(hisInquirysForDjVO.getInquiryCode())){
+        	queryWrapper.eq("inquiry_code", hisInquirysForDjVO.getInquiryCode());
+        }
+        if (hisInquirysForDjVO.getType() != null) {
+            queryWrapper.eq("type", hisInquirysForDjVO.getType());
+        }
+        if (hisInquirysForDjVO.getSign() != null) {
+            queryWrapper.eq("sign", hisInquirysForDjVO.getSign());
+        }
+        if (hisInquirysForDjVO.getStartDate() != null) {
+            queryWrapper.ge("gmt_create", hisInquirysForDjVO.getStartDate());
+        }
+        if (hisInquirysForDjVO.getEndDate() != null) {
+            queryWrapper.le("gmt_create", hisInquirysForDjVO.getEndDate());
+        }
+        if (hisInquirysForDjVO.getOrderType() == 1) {
+            queryWrapper.orderByDesc("gmt_modified");
+        } else if (hisInquirysForDjVO.getOrderType() == 2) {
+            queryWrapper.orderByAsc("gmt_modified");
+        }
+        List<InquiryInfo> inquiryInfoList = this.list(queryWrapper);
+        if (ListUtil.isEmpty(inquiryInfoList)) {
+            return null;
+        }
+
+        Map<Long, List<InquiryDetail>> inquiryDetailMap = inquiryDetailFacade.getDetailsByInquryIds(inquiryInfoList.stream().map(i -> i.getId()).collect(Collectors.toList()));
+        List<HisInquirysForDjDTO> hisInquirysForDjDTOList = BeanUtil.listCopyTo(inquiryInfoList, HisInquirysForDjDTO.class);
+
+        hisInquirysForDjDTOList.forEach(i->{
+        	i.setContentList(inquiryDetailMap.get(i.getId()).stream().map(k->k.getContentValue()).collect(Collectors.toList()));
+        });
+
+        return hisInquirysForDjDTOList;
+    }
+
+
+    /**
+     * 病历详情
+     *
+     * @param getInquiryDetailVO
+     * @return
+     */
+    public GetInquiryDetailDTO getInquiryDetail(GetInquiryDetailVO getInquiryDetailVO) {
+        GetInquiryDetailDTO getInquiryDetailDTO = new GetInquiryDetailDTO();
+
+        List<InquiryDetail> inquiryDetailList = inquiryDetailFacade.getListByInquryId(getInquiryDetailVO.getInquiryId());
+
+        getInquiryDetailDTO.setInquiryDetailList(inquiryDetailList);
+
+        return getInquiryDetailDTO;
+    }
+
+    /**
+     * 获取评估结果
+     *
+     * @param getEvaluationsVO
+     * @return
+     */
+    public List<GetEvaluationsDTO> getEvaluations(GetEvaluationsVO getEvaluationsVO) {
+    	List<InquiryEvaluation> inquiryEvaluationList = inquiryEvaluationFacade.getEvaluationsByInquiryId(getEvaluationsVO.getInquiryId());
+        return BeanUtil.listCopyTo(inquiryEvaluationList, GetEvaluationsDTO.class);
+    }
+
+    /**
+     * 获取评估量表
+     *
+     * @param getEvaluationScalesVO
+     * @return
+     */
+    public List<GetEvaluationScalesDTO> getEvaluationScales(GetEvaluationScalesVO getEvaluationScalesVO) {
+    	QueryWrapper<InquiryScale> queryWrapper = new QueryWrapper<InquiryScale>();
+    	queryWrapper.eq("inquiry_id", getEvaluationScalesVO.getInquiryId());
+    	queryWrapper.eq("inquiry_evaluation_id", getEvaluationScalesVO.getInquiryEvaluationId());
+    	List<InquiryScale> inquiryScaleList =inquiryScaleFacade.list(queryWrapper);
+        return BeanUtil.listCopyTo(inquiryScaleList, GetEvaluationScalesDTO.class);
+    }
+
+}

+ 169 - 0
icss-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java

@@ -1,7 +1,10 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.EMRIntroduceDetailDTO;
 import com.diagbot.dto.IntroduceDTO;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.IntroduceDetail;
 import com.diagbot.entity.IntroduceInfo;
 import com.diagbot.entity.IntroduceMap;
@@ -11,13 +14,22 @@ import com.diagbot.enums.QuestionTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.IntroduceInfoServiceImpl;
+import com.diagbot.util.ArrayUtil;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
+import com.diagbot.vo.EMRIntroduceVO;
+import com.diagbot.vo.HosCodeVO;
 import com.diagbot.vo.IntroduceByQuestionVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.Arrays;
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description:
@@ -32,6 +44,10 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
     IntroduceDetailFacade introduceDetailFacade;
     @Autowired
     QuestionFacade questionFacade;
+    @Autowired
+    TranServiceClient tranServiceClient;
+    @Autowired
+    LisMappingFacade lisMappingFacade;
 
     /**
      * 根据标签id获取提示信息
@@ -135,4 +151,157 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
     public IntroduceDTO getRecordById(Long id) {
         return getRecordByIdAndPosition(id, null);
     }
+
+    /**
+     * 获取电子病历评级提示信息
+     *
+     * @param emrIntroduceVO
+     * @return
+     */
+    public List<EMRIntroduceDetailDTO> getIntroduceByEMR(EMRIntroduceVO emrIntroduceVO) {
+        Boolean isDocking = tranServiceClient.isDocking().data;
+        //入参处理
+        HosCodeVO hosCodeVO = new HosCodeVO();
+        hosCodeVO.setHosCode(emrIntroduceVO.getHosCode());
+        //公表转换
+        String uniqueName = "";
+        Integer type = emrIntroduceVO.getType();
+        if (type.equals(QuestionTypeEnum.Lis.getKey())) {
+            if (StringUtil.isNotBlank(emrIntroduceVO.getName())) {
+                if (StringUtil.isNotBlank(emrIntroduceVO.getDetailName())) {
+                    Map<String, Map<String, String>> lisConfigMap = new LinkedHashMap<>();
+                    if (isDocking) {
+                        RespDTO<Map<String, Map<String, String>>> respLisConfigMap = tranServiceClient.getLisConfigByHosCode_NotEmptyItemName(hosCodeVO);
+                        if (RespDTOUtil.respIsNG(respLisConfigMap)) {
+                            throw new CommonException(CommonErrorCode.RPC_ERROR);
+                        }
+                        lisConfigMap = respLisConfigMap.data;
+                    } else {
+                        lisConfigMap = lisMappingFacade.getLisMapping_NotEmptyItemName();
+                    }
+
+                    uniqueName = lisConfigMap.get(emrIntroduceVO.getName()).get(emrIntroduceVO.getDetailName());
+                } else {
+                    Map<String, String> lisConfigMap_emptyItemName = new LinkedHashMap<>();
+                    if (isDocking) {
+                        RespDTO<Map<String, String>> respLisConfigMap_emptyItemName = tranServiceClient.getLisConfigByHosCode_EmptyItemName(hosCodeVO);
+                        if (RespDTOUtil.respIsNG(respLisConfigMap_emptyItemName)) {
+                            throw new CommonException(CommonErrorCode.RPC_ERROR);
+                        }
+                        lisConfigMap_emptyItemName = respLisConfigMap_emptyItemName.data;
+                    } else {
+                        lisConfigMap_emptyItemName = lisMappingFacade.getLisConfig_EmptyItemName();
+                    }
+                    uniqueName = lisConfigMap_emptyItemName.get(emrIntroduceVO.getName());
+                }
+            }
+        } else if (type.equals(QuestionTypeEnum.Pacs.getKey())) {
+            if (isDocking) {
+                RespDTO<Map<String, String>> respPacsConfigMap = tranServiceClient.getPacsConfigByHosCode(hosCodeVO);
+                if (RespDTOUtil.respIsNG(respPacsConfigMap)) {
+                    throw new CommonException(CommonErrorCode.RPC_ERROR);
+                }
+                Map<String, String> pacsConfigMap = respPacsConfigMap.data;
+                uniqueName = pacsConfigMap.get(emrIntroduceVO.getName());
+            } else {
+                uniqueName = emrIntroduceVO.getName();
+            }
+        } else if (type.equals(QuestionTypeEnum.Disease.getKey())) {
+            if (isDocking) {
+                RespDTO<Map<String, String>> respDisMap = tranServiceClient.getDiseaseIcdByHosCode(hosCodeVO);
+                if (RespDTOUtil.respIsNG(respDisMap)) {
+                    throw new CommonException(CommonErrorCode.RPC_ERROR);
+                }
+                Map<String, String> disMap = respDisMap.data;
+                uniqueName = disMap.get(emrIntroduceVO.getName());
+            } else {
+                uniqueName = emrIntroduceVO.getName();
+            }
+        }
+
+        //未找到映射标签名称
+        if (uniqueName == null || StringUtil.isBlank(uniqueName)) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "项目未找到");
+        }
+
+        String[] titles = emrIntroduceVO.getTitles();
+        //对接标题映射
+        Map<String, String> titleMapping = new LinkedHashMap<>();
+        List<String> uniqueTitleList = Lists.newLinkedList();
+        if (ArrayUtil.isNotEmpty(titles)) {
+            if (isDocking) {
+                RespDTO<Map<String, String>> respTitleMappingMap = tranServiceClient.getTitleMappingHosCode(hosCodeVO);
+                if (RespDTOUtil.respIsNG(respTitleMappingMap)) {
+                    throw new CommonException(CommonErrorCode.RPC_ERROR);
+                }
+                Map<String, String> titleMappingMap = respTitleMappingMap.data;
+                for (String title : titles) {
+                    String uniqueTitle = titleMappingMap.get(title);
+                    titleMapping.put(title, uniqueTitle);
+                    if (StringUtil.isNotBlank(uniqueTitle)) {
+                        uniqueTitleList.add(uniqueTitle);
+                    }
+                }
+            } else {
+                uniqueTitleList = Arrays.asList(titles);
+            }
+        }
+
+        QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
+        questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("tag_name", uniqueName)
+                .eq("type", type);
+        QuestionInfo questionInfo = questionFacade.getOne(questionInfoQueryWrapper);
+        if (questionInfo == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "公表标签不存在");
+        }
+
+
+        QueryWrapper<IntroduceMap> introduceMapQueryWrapper = new QueryWrapper<>();
+        introduceMapQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
+                eq("type", type).
+                eq("question_id", questionInfo.getId());
+        IntroduceMap introduceMap = introduceMapFacade.getOne(introduceMapQueryWrapper);
+        if (introduceMap == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "提示信息未维护");
+        }
+
+        QueryWrapper<IntroduceDetail> introduceDetailQueryWrapper = new QueryWrapper<>();
+        introduceDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
+                eq("introduce_id", introduceMap.getIntroduceId()).
+                orderByAsc("order_no");
+        //如果标题列表未传,全部返回
+        if (ArrayUtil.isNotEmpty(emrIntroduceVO.getTitles())) {
+            if (ListUtil.isNotEmpty(uniqueTitleList)) {
+                introduceDetailQueryWrapper.in("title", uniqueTitleList);
+            } else {
+                //标题未匹配上,不返回数据,加一个不成立的条件
+                introduceDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.Y.getKey());
+            }
+        }
+        List<IntroduceDetail> introduceDetailList = introduceDetailFacade.list(introduceDetailQueryWrapper);
+        List<EMRIntroduceDetailDTO> retList = Lists.newLinkedList();
+        if (ArrayUtil.isNotEmpty(emrIntroduceVO.getTitles())) {
+            //对接模式,返回原标题
+            if (isDocking) {
+                for (Map.Entry<String, String> entry : titleMapping.entrySet()) {
+                    EMRIntroduceDetailDTO detailDTO = new EMRIntroduceDetailDTO();
+                    detailDTO.setTitle(entry.getKey());
+                    if (StringUtil.isNotBlank(entry.getValue())) {
+                        for (IntroduceDetail introduceDetail : introduceDetailList) {
+                            if (entry.getValue().equals(introduceDetail.getTitle())) {
+                                detailDTO.setText(introduceDetail.getText());
+                            }
+                        }
+                    }
+                    retList.add(detailDTO);
+                }
+            } else {
+                retList = BeanUtil.listCopyTo(introduceDetailList, EMRIntroduceDetailDTO.class);
+            }
+        } else {
+            retList = BeanUtil.listCopyTo(introduceDetailList, EMRIntroduceDetailDTO.class);
+        }
+        return retList;
+    }
 }

+ 15 - 1
icss-service/src/main/java/com/diagbot/facade/LisMappingFacade.java

@@ -26,7 +26,7 @@ public class LisMappingFacade extends LisMappingServiceImpl {
      *
      * @return
      */
-    public Map<String, Map<String, String>> getLisMapping() {
+    public Map<String, Map<String, String>> getLisMapping_NotEmptyItemName() {
         Map<String, Map<String, String>> retMap = new LinkedHashMap<>();
         QueryWrapper<LisMapping> lisMappingQueryWrapper = new QueryWrapper<>();
         lisMappingQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).isNotNull("item_name").ne("item_name","");
@@ -42,6 +42,20 @@ public class LisMappingFacade extends LisMappingServiceImpl {
         return retMap;
     }
 
+    /**
+     * 根据医院编码获取化验公表映射关系-itemName为空 Map<mealName,uniqueName>
+     *
+     * @return
+     */
+    public Map<String, String> getLisConfig_EmptyItemName() {
+        QueryWrapper<LisMapping> lisMappingQueryWrapper = new QueryWrapper<>();
+        lisMappingQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
+                isNull("item_name").or(i -> i.eq("item_name", ""));
+        List<LisMapping> lisMappingList = this.list(lisMappingQueryWrapper);
+        Map<String, String> retMap = EntityUtil.makeMapWithKeyValue(lisMappingList, "mealName", "uniqueName");
+        return retMap;
+    }
+
     /**
      * 获取化验公表映射关系 Map<mealName,uniqueName> itemName 为空
      * @return

+ 2 - 1
icss-service/src/main/java/com/diagbot/facade/PatientInfoFacade.java

@@ -69,10 +69,11 @@ public class PatientInfoFacade {
 
         QueryWrapper<DeptInfo> deptInfoQ = new QueryWrapper<>();
         deptInfoQ.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("id", getTopPatientInfoDTO.getSelfDeptId());
+                .eq("name", getTopPatientInfoDTO.getSelfDeptName());
         DeptInfo deptInfo = deptInfoFacade.getOne(deptInfoQ);
         if (null != deptInfo) {
             getTopPatientInfoDTO.setSelfDeptName(deptInfo.getName());
+            getTopPatientInfoDTO.setSelfDeptId(deptInfo.getId());
         }
 
         QueryWrapper<DoctorPageMode> doctorPageModeQe = new QueryWrapper<>();

+ 162 - 10
icss-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -4,15 +4,18 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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;
 import com.diagbot.client.bean.MedicalIndication;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.client.bean.SearchData;
+import com.diagbot.dto.EMRQuestionDTO;
 import com.diagbot.dto.EvaluationModuleMappingDTO;
 import com.diagbot.dto.MedicalIndicationDTO;
 import com.diagbot.dto.PushDTO;
+import com.diagbot.dto.PushEMRDTO;
 import com.diagbot.dto.PushKYJDTO;
 import com.diagbot.dto.QuestionDTO;
 import com.diagbot.dto.ScaleDTO;
@@ -36,6 +39,8 @@ import com.diagbot.util.EntityUtil;
 import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
+import com.diagbot.vo.EMRPushVO;
+import com.diagbot.vo.HosCodeVO;
 import com.diagbot.vo.LisKYJVO;
 import com.diagbot.vo.LisResult;
 import com.diagbot.vo.LisResultVO;
@@ -82,6 +87,8 @@ public class PushFacade {
     private ScaleContentFacade scaleContentFacade;
     @Autowired
     private EvaluationModuleMappingFacade evaluationModuleMappingFacade;
+    @Autowired
+    private TranServiceClient tranServiceClient;
 
     /**
      * 推理接口
@@ -104,6 +111,10 @@ public class PushFacade {
         searchData.setAdverseEvent(pushVO.getAdverseReactions());
         searchData.setScaleName(pushVO.getScaleName());
         searchData.setIndications(pushVO.getMedicalIndications());
+        searchData.setFeatureType(pushVO.getFeatureType());
+        searchData.setSysCode("1");
+        searchData.setLength(10);
+
         switch (pushVO.getSex()) {
             case 1:
                 searchData.setSex("M");
@@ -118,26 +129,27 @@ public class PushFacade {
 
         //化验项映射,转公表
         if (pushVO.getLis().size() > 0) {
-            Map<String, Map<String, String>> lisConfigMap = lisMappingFacade.getLisMapping();
+            Map<String, Map<String, String>> lisConfigMap = lisMappingFacade.getLisMapping_NotEmptyItemName();
+            Map<String, String> lisConfigWithEmptyItemNameMap = lisMappingFacade.getLisConfig_EmptyItemName();
             for (LisResultVO lisResultVO : pushVO.getLis()) {
-                //source=0 icss页面数据,source=1 外部导入数据
+                //source=0 icss页面数据,source=1 外部导入数据,外部导入数据不处理
                 if (!lisResultVO.getSource().equals(LisSourceEnum.Inner.getKey())) {
                     continue;
                 }
-                if (StringUtil.isNotBlank(lisResultVO.getName()) && lisConfigMap.get(lisResultVO.getName()) != null) {
-                    Map<String, String> detailMap = lisConfigMap.get(lisResultVO.getName());
-                    if (StringUtil.isNotBlank(lisResultVO.getDetailName()) && StringUtil.isNotBlank(detailMap.get(lisResultVO.getDetailName()))) {
-                        lisResultVO.setUniqueName(detailMap.get(lisResultVO.getDetailName()));
+                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()))) {
+                            lisResultVO.setUniqueName(detailMap.get(lisResultVO.getDetailName()));
+                        }
+                    } else {
+                        lisResultVO.setUniqueName(lisConfigWithEmptyItemNameMap.get(lisResultVO.getName()));
                     }
                 }
             }
         }
-
         List<LisResult> lisResultList = BeanUtil.listCopyTo(pushVO.getLis(), LisResult.class);
         searchData.setLisArr(lisResultList);
-        searchData.setFeatureType(pushVO.getFeatureType());
-        searchData.setSysCode("1");
-        searchData.setLength(10);
 
         Response<ResponseData> res = bigDataServiceClient.bayesPageData(searchData);
         if (null == res || null == res.getData()) {
@@ -555,6 +567,146 @@ public class PushFacade {
         return vitalDTO;
     }
 
+    /**
+     * 电子病历评级-数据服务模式推理
+     *
+     * @param emrPushVO
+     * @return
+     */
+    public PushEMRDTO pushEMR(EMRPushVO emrPushVO) {
+        Boolean isDocking = tranServiceClient.isDocking().data;
+        PushEMRDTO pushEMRDTO = new PushEMRDTO();
+        HosCodeVO hosCodeVO = new HosCodeVO();
+        hosCodeVO.setHosCode(emrPushVO.getHosCode());
+        PushVO pushVO = new PushVO();
+        BeanUtil.copyProperties(emrPushVO, pushVO);
+        //化验项转公表内容,参数处理
+        if (ListUtil.isNotEmpty(pushVO.getLis())) {
+            Map<String, Map<String, String>> lisConfigMap = new LinkedHashMap<>();
+            Map<String, String> lisConfigMap_emptyItemName = new LinkedHashMap<>();
+            if (isDocking) {
+                lisConfigMap = tranServiceClient.getLisConfigByHosCode_NotEmptyItemName(hosCodeVO).data;
+                lisConfigMap_emptyItemName = tranServiceClient.getLisConfigByHosCode_EmptyItemName(hosCodeVO).data;
+            } else {
+                lisConfigMap = lisMappingFacade.getLisMapping_NotEmptyItemName();
+                lisConfigMap_emptyItemName = lisMappingFacade.getLisConfig_EmptyItemName();
+            }
+            List<LisResultVO> lisResultVOList = pushVO.getLis();
+            for (LisResultVO lisResultVO : lisResultVOList) {
+                if (StringUtil.isNotBlank(lisResultVO.getName())) {
+                    if (StringUtil.isNotBlank(lisResultVO.getDetailName())) {
+                        lisResultVO.setUniqueName(lisConfigMap.get(lisResultVO.getName()).get(lisResultVO.getDetailName()));
+                    } else {
+                        lisResultVO.setUniqueName(lisConfigMap_emptyItemName.get(lisResultVO.getName()));
+                    }
+                }
+            }
+            pushVO.setLis(lisResultVOList);
+        }
+        ResponseData data = pushAI(pushVO);
+        String featureType = pushVO.getFeatureType();
+        String[] featureTypes = featureType.split(",|,");
+        Set<String> featureTypeSet = new HashSet(Arrays.asList(featureTypes));
+
+        if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Lis.getKey()))) {
+            List<FeatureRate> lisFeatures = data.getLabs();
+            if (lisFeatures.size() > 0) {
+                Map<String, List<String>> lisMappingByUniqueName = new LinkedHashMap<>();
+                if (isDocking) {
+                    lisMappingByUniqueName = tranServiceClient.getLisConfigByUniqueNameAndHosCode(hosCodeVO).data;
+                } else {
+                    lisMappingByUniqueName = lisMappingFacade.getLisMappingByUniqueName();
+                }
+                List<EMRQuestionDTO> lisList = Lists.newLinkedList();
+                for (FeatureRate featureRate : lisFeatures) {
+                    EMRQuestionDTO lis = new EMRQuestionDTO();
+                    lis.setUniqueName(featureRate.getFeatureName());
+                    if (ListUtil.isNotEmpty(lisMappingByUniqueName.get(featureRate.getFeatureName()))) {
+                        lis.setName(lisMappingByUniqueName.get(featureRate.getFeatureName()).get(0));
+                    }
+                    lisList.add(lis);
+                }
+                pushEMRDTO.setLisList(lisList);
+            }
+        }
+        if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Pacs.getKey()))) {
+            List<FeatureRate> pacsFeatures = data.getPacs();
+            if (pacsFeatures.size() > 0) {
+                Map<String, List<String>> pacsConfigMapByUniqueName = new LinkedHashMap<>();
+                if (isDocking) {
+                    pacsConfigMapByUniqueName = tranServiceClient.getPacsConfigByUniqueNameAndHosCode(hosCodeVO).data;
+                }
+                List<EMRQuestionDTO> pacsList = Lists.newLinkedList();
+                for (FeatureRate featureRate : pacsFeatures) {
+                    EMRQuestionDTO pacs = new EMRQuestionDTO();
+                    pacs.setUniqueName(featureRate.getFeatureName());
+                    if (isDocking) {
+                        if (ListUtil.isNotEmpty(pacsConfigMapByUniqueName.get(featureRate.getFeatureName()))) {
+                            pacs.setName(pacsConfigMapByUniqueName.get(featureRate.getFeatureName()).get(0));
+                        }
+                    } else {
+                        pacs.setName(featureRate.getFeatureName());
+                    }
+                    pacsList.add(pacs);
+                }
+                pushEMRDTO.setPacsList(pacsList);
+            }
+        }
+        if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Disease.getKey()))) {
+            List<FeatureRate> dis = data.getDis();
+            List<String> disNameList = dis.stream().map(disease -> disease.getFeatureName()).collect(Collectors.toList());
+            Map<String, List<EMRQuestionDTO>> retDisMap = new LinkedHashMap<>();
+            Map<String, String> disMap = tranServiceClient.getDiseaseIcdByHosCode(hosCodeVO).data;
+
+            //诊断分类
+            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<EMRQuestionDTO> retDisList = Lists.newLinkedList();
+                    if (retDisMap.get(disClass) != null) {
+                        retDisList = retDisMap.get(disClass);
+                    }
+                    EMRQuestionDTO retDis = new EMRQuestionDTO();
+                    retDis.setUniqueName(featureRate.getFeatureName());
+                    if (isDocking) {
+                        //对接模式转icd10名称
+                        retDis.setName(disMap.get(featureRate.getFeatureName()));
+                    } else {
+                        retDis.setName(featureRate.getFeatureName());
+                    }
+                    retDisList.add(retDis);
+                    retDisMap.put(disClass, retDisList);
+                }
+            }
+            //警惕
+            SearchData searchData = new SearchData();
+            searchData.setDiag(String.join(",", disNameList));
+            Response<GdbResponse> graphRes = graphServiceClient.highRiskPageData(searchData);
+            Map<String, String> graphResult = graphRes.getData().getResult();
+            if (graphResult.size() > 0) {
+                List<EMRQuestionDTO> highRiskDisList = Lists.newLinkedList();
+                for (Map.Entry<String, String> entry : graphResult.entrySet()) {
+                    if (entry.getValue().equals("1")) {
+                        EMRQuestionDTO hrDis = new EMRQuestionDTO();
+                        hrDis.setUniqueName(entry.getKey());
+                        if (isDocking) {
+                            hrDis.setName(disMap.get(entry.getKey()));
+                        } else {
+                            hrDis.setName(entry.getValue());
+                        }
+                        highRiskDisList.add(hrDis);
+                    }
+                }
+                retDisMap.put("警惕", highRiskDisList);
+            }
+            pushEMRDTO.setDis(retDisMap);
+        }
+        return pushEMRDTO;
+    }
+
     /**
      * 返回量表内容
      *

+ 18 - 0
icss-service/src/main/java/com/diagbot/facade/TranDiseaseIcdFacade.java

@@ -1,8 +1,11 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.dto.GetDiseaseIcdDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.QuestionInfo;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.vo.GetDiseaseIcdVO;
@@ -10,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -21,6 +25,8 @@ public class TranDiseaseIcdFacade {
 
     @Autowired
     TranServiceClient tranServiceClient;
+    @Autowired
+    QuestionFacade questionFacade;
 
     /**
      * 根据医院编号和诊断ids获取各自的icd编码
@@ -35,6 +41,18 @@ public class TranDiseaseIcdFacade {
             throw new CommonException(CommonErrorCode.RPC_ERROR,
                     "获取icd编码失败");
         }
+        List<String> questionNames = getDiseaseIcdsList.data.stream().map(getDiseaseIcdDTO -> getDiseaseIcdDTO.getIcssQuestionName()).collect(Collectors.toList());
+        QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
+        questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+            .in("name",questionNames);
+        List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
+        for (GetDiseaseIcdDTO getDiseaseIcdDTO: getDiseaseIcdsList.data) {
+            for (QuestionInfo questionInfo: questionInfoList) {
+                if(getDiseaseIcdDTO.getIcssQuestionName().equals(questionInfo.getName())){
+                    getDiseaseIcdDTO.setQuestionId(questionInfo.getId());
+                }
+            }
+        }
         return getDiseaseIcdsList.data;
     }
 }

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

@@ -0,0 +1,26 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/3/11 13:50
+ */
+@Getter
+@Setter
+public class EMRIntroduceVO {
+    @NotBlank(message = "请输入医院编码")
+    private String hosCode;
+    @NotBlank(message = "请输入检查或检验类型")
+    private Integer type;
+    @NotBlank(message = "请输入检查或检验套餐名称")
+    private String name;
+    private String detailName;
+    private String uniqueName;
+    private String[] titles;
+    private String icdCode; //诊断icd10编码
+}

+ 18 - 0
icss-service/src/main/java/com/diagbot/vo/EMRPushVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/3/12 13:21
+ */
+@Getter
+@Setter
+public class EMRPushVO extends PushVO {
+    @NotBlank(message = "请输入医院编码")
+    private String hosCode;
+}

+ 88 - 0
icss-service/src/main/java/com/diagbot/vo/HisInquirysForDjVO.java

@@ -0,0 +1,88 @@
+package com.diagbot.vo;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotNull;
+
+import org.springframework.format.annotation.DateTimeFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/3/19 13:56
+ */
+@Getter
+@Setter
+public class HisInquirysForDjVO {
+	
+	/**
+     * 医院id
+     */
+	@ApiModelProperty(value="医院id",required=true)
+	@NotNull(message="医院id必传")
+    private Long hospitalId;
+
+    /**
+     * 科室id
+     */
+	@ApiModelProperty(value="科室id")
+	//@NotNull(message="科室id必传")
+    private Long hospitalDeptId;
+
+    /**
+     * 医生id
+     */
+	@ApiModelProperty(value="医生id")
+	//@NotNull(message="医生id必传")
+    private Long doctorId;
+
+    /**
+     * 患者id
+     */
+	@ApiModelProperty(value="患者id",required=true)
+	@NotNull(message="患者id必传")
+    private Long patientId;
+	
+	/**
+     * 就诊序列号
+     */
+	@ApiModelProperty(value="就诊序列号")
+    private String inquiryCode;
+    
+    /**
+     * 病历分类(1:门诊,2:住院)
+     */
+	@ApiModelProperty(value="病历分类(1:门诊,2:住院)")
+    private Integer type;
+    
+    /**
+     * 内容输入类型:0:结构化 1:文本模式
+     */
+	@ApiModelProperty(value="内容输入类型:0:结构化 1:文本模式")
+    private Integer sign;
+    
+	/**
+	 * 开始时间
+	 */
+	@ApiModelProperty(value="开始时间,格式为:2018-11-28 17:25:30")
+	@DateTimeFormat(pattern="yyyy-MM-dd hh:mm:ss")
+	private Date startDate;
+	
+	/**
+	 * 结束时间
+	 */
+	@ApiModelProperty(value="结束时间,格式为:2018-11-28 17:25:30")
+	@DateTimeFormat(pattern="yyyy-MM-dd hh:mm:ss")
+	private Date endDate;
+	
+	/**
+	 * 排序类型:1、时间降序;2、时间升序; 
+	 */
+	@ApiModelProperty(value="排序类型:1、时间降序;2、时间升序;")
+	private Integer orderType=1;
+	   
+}

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

@@ -0,0 +1,15 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/3/12 11:05
+ */
+@Getter
+@Setter
+public class HosCodeVO {
+    private String hosCode;
+}

+ 6 - 0
icss-service/src/main/java/com/diagbot/vo/SaveInquiryDetailVO.java

@@ -33,5 +33,11 @@ public class SaveInquiryDetailVO {
      */
     @ApiModelProperty(value="内容字符串")
     private String content;
+    
+    /**
+     * 内容字符串纯文本
+     */
+    @ApiModelProperty(value="内容字符串纯文本")
+    private String contentValue;
 
 }

+ 21 - 0
icss-service/src/main/java/com/diagbot/vo/SaveInquiryToHisVO.java

@@ -0,0 +1,21 @@
+package com.diagbot.vo;
+
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/3/18
+ */
+@Getter
+@Setter
+public class SaveInquiryToHisVO {
+	
+	private List<String> contentList;
+	
+
+   
+}

+ 75 - 0
icss-service/src/main/java/com/diagbot/web/EMRController.java

@@ -0,0 +1,75 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.EMRIntroduceDetailDTO;
+import com.diagbot.dto.PushEMRDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.IntroduceInfoFacade;
+import com.diagbot.facade.PushFacade;
+import com.diagbot.vo.EMRIntroduceVO;
+import com.diagbot.vo.EMRPushVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @Description: 电子病历评级
+ * @Author:zhaops
+ * @time: 2019/3/12 15:07
+ */
+@RestController
+@RequestMapping("/emr")
+@Api(value = "电子病历评级相关API", tags = { "电子病历评级相关API" })
+@SuppressWarnings("unchecked")
+public class EMRController {
+    @Autowired
+    IntroduceInfoFacade introduceInfoFacade;
+    @Autowired
+    PushFacade pushFacade;
+
+    @ApiOperation(value = "电子病历解读[by:zhaops]",
+            notes = "hosCode: 医院编码,必填,String<br>" +
+                    "type: 检验检查类型,5-检验,6-检查,7-诊断,单选必填,Integer<br>" +
+                    "name: 名称(检验检查诊断),必填,String<br>" +
+                    "detailName: 项目名称(检验选填,检查不填),String<br>" +
+                    "titles: 提示信息标题列表,String数组<br>"+
+                    "icdCode: 诊断icd10编码,String<br>")
+    @PostMapping("/getIntroduceByEMR")
+    public RespDTO<List<EMRIntroduceDetailDTO>> getIntroduceByEMR(@RequestBody EMRIntroduceVO emrIntroduceVO) {
+        List<EMRIntroduceDetailDTO> data = introduceInfoFacade.getIntroduceByEMR(emrIntroduceVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "推理[by:zhaops]",
+            notes = "hosCode: 医院编码(必填)<br>" +
+                    "age: 年龄(必填)<br>" +
+                    "sex:性别(必填),1:男,2:女<br>" +
+                    "symptom:症状,String<br>" +
+                    "other:其它史,String<br>" +
+                    "vital:查体,String<br>" +
+                    "lis:化验,Array<br>" +
+                    "lis:name:套餐名称(必填),String<br>" +
+                    "lis:detailName:化验项名称(必填),String<br>" +
+                    "lis:uniqueName:公表名称,String<br>" +
+                    "lis:value:值,Double<br>" +
+                    "lis:maxValue:最大值,Double<br>" +
+                    "lis:minValue:最小值,Double<br>" +
+                    "lis:units:单位,String<br>" +
+                    "lis:otherValue:其他结果,包括阴性阳性,文字描述等,String<br>" +
+                    "lis:source:数据来源(必填)0-内部来源,1-外部来源,Integer<br>" +
+                    "pacs:辅检,String<br>" +
+                    "diag:诊断,String<br>" +
+                    "featureType:类型(多选必填),5:检验,6:检查,7:诊断,String<br>")
+    @PostMapping("/pushEMR")
+    @SysLogger("pushEMR")
+    public RespDTO<PushEMRDTO> pushEMR(@RequestBody @Valid EMRPushVO emrPushVO) {
+        return RespDTO.onSuc(pushFacade.pushEMR(emrPushVO));
+    }
+}

+ 11 - 0
icss-service/src/main/java/com/diagbot/web/InquiryInfoController.java

@@ -18,6 +18,7 @@ import com.diagbot.dto.GetEvaluationsDTO;
 import com.diagbot.dto.GetInquiryDetailDTO;
 import com.diagbot.dto.GetLastOtherDTO;
 import com.diagbot.dto.HisInquiryDTO;
+import com.diagbot.dto.HisInquirysForDjDTO;
 import com.diagbot.dto.ReadInquiryDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.SaveInquiryDTO;
@@ -26,12 +27,14 @@ import com.diagbot.vo.GetEvaluationScalesVO;
 import com.diagbot.vo.GetEvaluationsVO;
 import com.diagbot.vo.GetInquiryDetailVO;
 import com.diagbot.vo.GetLastOtherVO;
+import com.diagbot.vo.HisInquirysForDjVO;
 import com.diagbot.vo.HisInquirysVO;
 import com.diagbot.vo.ReadInquiryVO;
 import com.diagbot.vo.SaveInquiryVO;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import springfox.documentation.annotations.ApiIgnore;
 
 /**
  * @author rengb
@@ -74,6 +77,14 @@ public class InquiryInfoController {
     public RespDTO<List<HisInquiryDTO>> hisInquirys(@Valid @RequestBody HisInquirysVO hisInquirysVO) {
         return RespDTO.onSuc(inquiryInfoFacade.hisInquirys(hisInquirysVO));
     }
+    
+    @ApiOperation(value = "对接-历史病历列表[by:rengb]")
+    @PostMapping("/hisInquirysForDj")
+    @SysLogger("hisInquirysForDj")
+    @ApiIgnore
+    public RespDTO<List<HisInquirysForDjDTO>> hisInquirysForDj(@Valid @RequestBody HisInquirysForDjVO hisInquirysForDjVO) {
+        return RespDTO.onSuc(inquiryInfoFacade.hisInquirysForDj(hisInquirysForDjVO));
+    }
 
     @ApiOperation(value = "病历详情[by:rengb]")
     @PostMapping("/getInquiryDetail")

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

@@ -13,6 +13,7 @@
         <result column="inquiry_id" property="inquiryId" />
         <result column="type" property="type" />
         <result column="content" property="content" />
+        <result column="content_value" property="contentValue" />
         <result column="remark" property="remark" />
     </resultMap>
     

+ 33 - 1
icssman-service/src/main/java/com/diagbot/facade/QuestionFacade.java

@@ -167,7 +167,7 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
                             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "标签被修改,请刷新后重新保存");
                         }
                     } else {
-                        String name = "组合项_" + DateUtil.format(DateUtil.now(), DateUtil.FORMAT_FULL);
+                        String name = "组合项_" + DateUtil.format(now, DateUtil.FORMAT_FULL);
                         ques.setTagName(name);
                         ques.setName(name);
                         ques.setTagType(TagTypeEnum.T10.getKey());
@@ -490,8 +490,40 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
         paramMap.put("tagType", questionIndexVO.getTagType());
         paramMap.put("existName", questionIndexVO.getExistName());
         paramMap.put("notTagType", questionIndexVO.getNotTagType());
+        paramMap.put("notControlType", questionIndexVO.getNotControlType());
         return this.index(paramMap);
     }
+    
+    /**
+     * 别名新增标签检索
+     *
+     * @param questionIndexVO
+     * @return
+     */
+    public List<QuestionInfo> indexRev(QuestionIndexVO questionIndexVO) {
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("age", questionIndexVO.getAge());
+        paramMap.put("sexType", questionIndexVO.getSexType());
+        paramMap.put("tagName", questionIndexVO.getTagName());
+        paramMap.put("type", questionIndexVO.getType());
+        paramMap.put("controlType", questionIndexVO.getControlType());
+        paramMap.put("notIds", questionIndexVO.getNotIds());
+        paramMap.put("tagType", questionIndexVO.getTagType());
+        paramMap.put("existName", questionIndexVO.getExistName());
+        paramMap.put("notTagType", questionIndexVO.getNotTagType());
+        paramMap.put("notControlType", questionIndexVO.getNotControlType());
+        List<QuestionInfo> list = this.index(paramMap);
+        if(ListUtil.isEmpty(list)){
+        	return list;
+        }
+        Map<Long,Long> couMap = retrievalMappingFacade.getMapCouByQuesIds(list.stream().map(i->i.getId()).collect(Collectors.toList()));
+        return list.stream().filter(i->{
+        	if(couMap.get(i.getId())!=null){
+        		return false;
+        	}
+        	return true;
+        }).collect(Collectors.toList());
+    }
 
 
     /**

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

@@ -32,6 +32,7 @@ import com.diagbot.entity.QuestionInfo;
 import com.diagbot.entity.Retrieval;
 import com.diagbot.entity.RetrievalMapping;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.TagTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.RetrievalMappingService;
@@ -107,7 +108,7 @@ public class RetrievalFacade extends RetrievalServiceImpl {
         retrievalMappingFacade.update(retrievalMapping, mappingQe);
         return true;
     }
-
+    
     /**
      * 添加或者编辑标签同义词
      *
@@ -117,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();
@@ -266,14 +267,15 @@ public class RetrievalFacade extends RetrievalServiceImpl {
      */
     public RetrievalExcelImDTO retrievalExcelIm(MultipartFile file) {
         List<AddTagRetrievalVO> addTagRetrievalVOList = new ArrayList<>();
-        List<String> messages = new ArrayList<>();
+        List<AddTagRetrievalDetailVO> detailList = new ArrayList<>();
+        StringBuffer sbf = new StringBuffer();
         InputStream inputStream = null;
         Workbook wb = null;
         try {
             if (!file.isEmpty()) {
                 inputStream = file.getInputStream();
                 if (inputStream.available() > 512000) {
-                    messages.add("文件最大支持500KB!");
+                    sbf.append("文件最大支持500KB!").append("<br/>");
                 } else {
                     String fileName = file.getOriginalFilename();
                     if (fileName.lastIndexOf(".") != -1) {
@@ -284,7 +286,7 @@ public class RetrievalFacade extends RetrievalServiceImpl {
                             wb = new XSSFWorkbook(inputStream);
                         }
                         if (wb != null) {
-                            List<AddTagRetrievalDetailVO> detailList = new ArrayList<>();
+                            
                             Sheet sheet = wb.getSheetAt(0);
                             int count = 0;
                             String questionName, retrievalName, retrievalSpell, retrievalType;
@@ -297,9 +299,13 @@ public class RetrievalFacade extends RetrievalServiceImpl {
                                 retrievalName = getValue(row.getCell(1)).trim().replace(" ", "");
                                 retrievalSpell = getValue(row.getCell(2)).trim().replace(" ", "");
                                 retrievalType = getValue(row.getCell(3)).trim().replace(" ", "");
+                                if(StringUtil.isEmpty(questionName) && StringUtil.isEmpty(retrievalName)
+                                        && StringUtil.isEmpty(retrievalSpell) && StringUtil.isEmpty(retrievalType)){
+                                	continue;
+                                }
                                 if (StringUtil.isEmpty(questionName) || StringUtil.isEmpty(retrievalName)
                                         || StringUtil.isEmpty(retrievalSpell) || StringUtil.isEmpty(retrievalType)) {
-                                    messages.add("第" + count + "行数据不完整!");
+                                    sbf.append("第" + count + "行数据不完整;").append("<br/>");
                                     continue;
                                 }
 
@@ -310,38 +316,18 @@ public class RetrievalFacade extends RetrievalServiceImpl {
                                 addTagRetrievalDetailVO.setRetrievalType(Integer.parseInt(retrievalType));
                                 detailList.add(addTagRetrievalDetailVO);
                             }
-
-                            if (detailList.size() > 0) {
-                                List<String> questionNames = detailList.stream().map(i -> i.getQuestionName()).distinct().collect(Collectors.toList());
-                                QueryWrapper<QuestionInfo> questionInfoQe = new QueryWrapper<>();
-                                questionInfoQe.in("tag_name", questionNames);
-                                List<QuestionInfo> questionInfos = questionFacade.list(questionInfoQe);
-                                if (questionInfos.size() > 0) {
-                                    Map<String, Long> questionIdMap = questionInfos.stream().collect(Collectors.toMap(QuestionInfo::getTagName, i -> i.getId()));
-                                    detailList.forEach(i -> {
-                                        i.setQuestionId(questionIdMap.get(i.getQuestionName()));
-                                    });
-                                    Map<Long, List<AddTagRetrievalDetailVO>> detailMap = detailList.stream().collect(Collectors.groupingBy(AddTagRetrievalDetailVO::getQuestionId));
-                                    for (Long key : detailMap.keySet()) {
-                                        AddTagRetrievalVO addTagRetrievalVO = new AddTagRetrievalVO();
-                                        addTagRetrievalVO.setQuestionId(key);
-                                        addTagRetrievalVO.setItemList(detailMap.get(key));
-                                        addTagRetrievalVOList.add(addTagRetrievalVO);
-                                    }
-                                }
-                            }
                         } else {
-                            messages.add("非excel文件无法解析!");
+                            sbf.append("非excel文件无法解析!").append("<br/>");
                         }
                     } else {
-                        messages.add("未知文件无法解析!");
+                        sbf.append("未知文件无法解析!").append("<br/>");
                     }
                 }
             } else {
-                messages.add("无文件上传!");
+                sbf.append("无文件上传!").append("<br/>");
             }
         } catch (Exception e) {
-            messages.add("解析失败!");
+            sbf.append("解析失败!").append("<br/>");
         } finally {
             try {
                 if (wb != null) {
@@ -353,16 +339,84 @@ public class RetrievalFacade extends RetrievalServiceImpl {
             } catch (Exception e) {
             }
         }
+        
+        if(sbf.length()>0){
+        	throw new CommonException(CommonErrorCode.RPC_ERROR,sbf.toString());
+        }
+        
+        if (detailList.size() > 0) {
+            List<String> questionNames = detailList.stream().map(i -> i.getQuestionName()).distinct().collect(Collectors.toList());
+            QueryWrapper<QuestionInfo> questionInfoQe = new QueryWrapper<>();
+            questionInfoQe.in("tag_name", questionNames);
+            List<QuestionInfo> questionInfos = questionFacade.list(questionInfoQe);
+            
+            
+            Map<String,Long> quesCouMap = questionInfos.stream().collect(Collectors.groupingBy(QuestionInfo::getTagName, Collectors.counting()));
+            for(String key:quesCouMap.keySet()){
+            	if(quesCouMap.get(key)>1){
+            		sbf.append(key).append(" ");
+            	}
+            }
+            if(sbf.length()>0){
+            	sbf.append("数据不规范");
+            	throw new CommonException(CommonErrorCode.RPC_ERROR,sbf.toString());
+            }
+            
+            Map<String, Long> questionIdMap = questionInfos.stream().collect(Collectors.toMap(QuestionInfo::getTagName, i -> i.getId()));
+            if(questionNames.size()==questionInfos.size()){
+            	List<QuestionInfo> questionInfos_ = questionInfos.stream().filter(p->p.getTagType()==TagTypeEnum.T8.getKey()||p.getTagType()==TagTypeEnum.T10.getKey()||p.getTagType()==TagTypeEnum.T11.getKey()).collect(Collectors.toList());
+            	if(questionInfos_.size()>0){
+            		sbf.append("(");
+            		int index = 0;
+            		for(QuestionInfo p:questionInfos_){
+            			sbf.append(p.getTagName()).append("-").append(TagTypeEnum.getName(p.getTagType()));
+            			if(index<questionNames.size()-1){
+                			sbf.append("、");
+                		}
+                		index++;
+            		}
+            		sbf.append(")");
+            		sbf.append("标签不支持导入!");
+            		throw new CommonException(CommonErrorCode.RPC_ERROR,sbf.toString());
+            	}
+            	
+            	
+            	detailList.forEach(i -> {
+                	i.setQuestionId(questionIdMap.get(i.getQuestionName()));
+                });
+            	Map<Long, List<AddTagRetrievalDetailVO>> detailMap = detailList.stream().collect(Collectors.groupingBy(AddTagRetrievalDetailVO::getQuestionId));
+                for (Long key : detailMap.keySet()) {
+                    AddTagRetrievalVO addTagRetrievalVO = new AddTagRetrievalVO();
+                    addTagRetrievalVO.setQuestionId(key);
+                    addTagRetrievalVO.setQuestionName(detailMap.get(key).get(0).getQuestionName());
+                    addTagRetrievalVO.setItemList(detailMap.get(key));
+                    addTagRetrievalVOList.add(addTagRetrievalVO);
+                }
+            }else{
+            	List<String> questionNames_ = questionNames.stream().filter(t->questionIdMap.get(t)==null).collect(Collectors.toList());
+            	sbf.append("标签数据不存在(");
+            	int index = 0;
+            	
+            	for(String k:questionNames_){
+            		sbf.append(k);
+            		if(index<questionNames_.size()-1){
+            			sbf.append("、");
+            		}
+            		index++;
+            	}
+            	sbf.append(");");
+            	throw new CommonException(CommonErrorCode.RPC_ERROR,sbf.toString());
+            }
+        }
 
         addTagRetrievalVOList.forEach(i -> {
             addTagRetrieval(i);
         });
 
         RetrievalExcelImDTO retrievalExcelImDTO = new RetrievalExcelImDTO();
-        retrievalExcelImDTO.setMessages(messages);
-        return null;
+        return retrievalExcelImDTO;
     }
-
+    
     @SuppressWarnings("deprecation")
     private String getValue(Cell cell) {
         try {

+ 21 - 0
icssman-service/src/main/java/com/diagbot/facade/RetrievalMappingFacade.java

@@ -3,9 +3,14 @@
  */
 package com.diagbot.facade;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.springframework.stereotype.Component;
 
 import com.diagbot.service.impl.RetrievalMappingServiceImpl;
+import com.diagbot.util.ListUtil;
 
 /**
  * @author rgb
@@ -14,6 +19,22 @@ import com.diagbot.service.impl.RetrievalMappingServiceImpl;
  */
 @Component
 public class RetrievalMappingFacade extends RetrievalMappingServiceImpl {
+	
+	/**
+	 * 根据标签id集合获取标签别名个数
+	 * @param ids
+	 * @return questionId-标签id,cou-别名个数
+	 */
+	public Map<Long,Long> getMapCouByQuesIds(List<Long> ids){
+		Map<Long,Long> retMap = new HashMap<Long,Long>();
+		if(ListUtil.isEmpty(ids)){
+			return retMap;
+		}
+		this.baseMapper.getMapCouByQuesIds(ids).forEach(i->{
+			retMap.put((Long)(i.get("questionId")), (Long)(i.get("cou")));
+		});
+		return retMap;
+	}
 
 
 }

+ 11 - 1
icssman-service/src/main/java/com/diagbot/mapper/RetrievalMappingMapper.java

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.RetrievalMapping;
+import java.util.List;
+import java.util.Map;
+
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.RetrievalMapping;
 
 /**
  * <p>
@@ -12,5 +15,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2018-12-03
  */
 public interface RetrievalMappingMapper extends BaseMapper<RetrievalMapping> {
+	
+	/**
+	 * 根据标签id集合获取标签别名个数
+	 * @param ids
+	 * @return map中questionId-标签id,cou-别名个数
+	 */
+	List<Map<String,Object>> getMapCouByQuesIds(List<Long> ids);
 
 }

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

@@ -71,7 +71,7 @@ public class AddTagRetrievalDetailVO {
 
 	@Override
 	public int hashCode() {
-		return this.retrievalName.hashCode()+this.retrievalType;
+		return this.retrievalName.hashCode();
 	}
 	
 	

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

@@ -22,4 +22,5 @@ public class QuestionIndexVO {
     private List<Long> notIds;
     private String existName; //是否重复
     private List<Integer> notTagType;
+    private List<Integer> notControlType;
 }

+ 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;
 }

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

@@ -74,6 +74,14 @@ public class QuestionInfoController {
         return RespDTO.onSuc(data);
     }
 
+    @ApiOperation(value = "别名新增标签检索[by:rengb]",
+            notes = "")
+    @PostMapping("/indexRev")
+    @SysLogger("indexRev")
+    public RespDTO<List<QuestionInfo>> indexRev(@RequestBody QuestionIndexVO questionIndexVO) {
+        List<QuestionInfo> data = questionFacade.indexRev(questionIndexVO);
+        return RespDTO.onSuc(data);
+    }
 
     @ApiOperation(value = "获取特殊标签(同伴|无)[by:zhoutg]",
             notes = "")

+ 12 - 0
icssman-service/src/main/resources/mapper/QuestionInfoMapper.xml

@@ -82,6 +82,12 @@
                 #{notTagType}
             </foreach>
         </if>
+        <if test="notControlType != null and notControlType.size() > 0">
+            and control_type not in
+            <foreach  collection="notControlType" item="notControlType" open="("  separator=","  close=")">
+                #{notControlType}
+            </foreach>
+        </if>
         <if test="notIds != null and notIds.size() > 0 ">
             and id not in
             <foreach  collection="notIds" item="id" open="("  separator=","  close=")">
@@ -168,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>

+ 14 - 0
icssman-service/src/main/resources/mapper/RetrievalMappingMapper.xml

@@ -15,5 +15,19 @@
         <result column="show_type" property="showType" />
         <result column="remark" property="remark" />
     </resultMap>
+    
+    <select id="getMapCouByQuesIds" parameterType="list" resultType="map">
+    	select 
+    	a.question_id as questionId,
+    	count(1) as cou
+		from icss_retrieval_mapping a
+		join icss_retrieval b on a.retrieval_id=b.id
+		where a.is_deleted = 'N' and b.is_deleted = 'N'
+		and a.question_id in
+		<foreach collection="list" open="(" close=")" separator="," item="quid">
+			#{quid}
+		</foreach>
+		group by a.question_id
+    </select>
 
 </mapper>

+ 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);
+}

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

@@ -0,0 +1,25 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.dto.RelationDTO;
+import com.diagbot.entity.LexiconRelationship;
+import com.diagbot.facade.LibraryInfoFacade;
+import com.diagbot.mapper.LexiconRelationshipMapper;
+import com.diagbot.service.LexiconRelationshipService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-02-01
+ */
+@Service
+public class LexiconRelationshipServiceImpl extends ServiceImpl<LexiconRelationshipMapper, LexiconRelationship> implements LexiconRelationshipService {
+    @Override
+    public LexiconRelationship getLexiconRelationship(RelationDTO relationDTO, LibraryInfoFacade libraryInfoFacade) {
+        return baseMapper.getLexiconRelationship(relationDTO, libraryInfoFacade);
+    }
+}

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

@@ -0,0 +1,26 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.LibraryDetail;
+import com.diagbot.mapper.LibraryDetailMapper;
+import com.diagbot.service.LibraryDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.TermVo;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 提示信息明细 服务实现类
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-30
+ */
+@Service
+public class LibraryDetailServiceImpl extends ServiceImpl<LibraryDetailMapper, LibraryDetail> implements LibraryDetailService {
+    @Override
+    public List<LibraryDetail> getLibraryDetail(TermVo termVo) {
+        return baseMapper.getLibraryDetail(termVo);
+    }
+}

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

@@ -0,0 +1,25 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.dto.LibraryInfoDTO;
+import com.diagbot.vo.TermVo;
+import com.diagbot.entity.LibraryInfo;
+import com.diagbot.mapper.LibraryInfoMapper;
+import com.diagbot.service.LibraryInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 提示信息 服务实现类
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-30
+ */
+@Service
+public class LibraryInfoServiceImpl extends ServiceImpl<LibraryInfoMapper, LibraryInfo> implements LibraryInfoService {
+    @Override
+    public LibraryInfo getLibraryInfo(TermVo termVo) {
+        return baseMapper.getLibraryInfo(termVo);
+    }
+}

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

@@ -21,7 +21,7 @@ import java.util.List;
  */
 @Service
 public class MedicalServiceImpl extends ServiceImpl<MedicalMapper, Medical> implements MedicalService {
-    public Medical getMedicalInfo(TermVo termVo) {
+    public List<Medical> getMedicalInfo(TermVo termVo) {
         return baseMapper.getMedicalInfo(termVo);
     }
 }

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

@@ -0,0 +1,26 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.Relation;
+import com.diagbot.dto.RelationDTO;
+import com.diagbot.mapper.RelationMapper;
+import com.diagbot.service.RelationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.TermVo;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-31
+ */
+@Service
+public class RelationServiceImpl extends ServiceImpl<RelationMapper, Relation> implements RelationService {
+    public List<RelationDTO> getRelation(TermVo termVo) {
+        return baseMapper.getRelation(termVo);
+    }
+}

+ 7 - 3
knowledgeman-service/src/main/java/com/diagbot/vo/AddLibraryVo.java

@@ -8,13 +8,17 @@ import javax.validation.constraints.NotNull;
 /**
  * @Description:
  * @author: Weixuan Huang
- * @time: 2019/1/17 16:13
+ * @time: 2019/2/15 17:21
  */
 @Getter
 @Setter
-public class AddLibraryVo {
+public class MedicalVo {
     @NotNull(message="请输入医学术语")
     private String name;
 
-    private int synony;
+//    private int type_id;
+
+    private int concept_id;
+
+//    private String type;
 }

+ 3 - 0
knowledge-service/src/main/java/com/diagbot/vo/TermVo.java

@@ -16,6 +16,9 @@ public class TermVo {
     @NotNull(message="请输入医学术语")
     private String term;
 
+    @NotNull(message = "请输入术语类型")
+    private String type;
+
     private int id;
 
     private int concept_id;

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

@@ -36,7 +36,7 @@ public class ConceptController {
     private ConceptFacade conceptFacade;
 
     @ApiOperation(value = "术语信息查询",
-            notes = "Term:术语名称,必填<br>")
+            notes = "Term:术语名称,必填<br>Type:术语类型, 必填<br>")
     @PostMapping("/getConceptInfo")
     @SysLogger("getConceptInfo")
     public RespDTO<TermDTO> getConceptInfo(@Valid @RequestBody TermVo termvo) {

+ 3 - 3
knowledgeman-service/src/main/java/com/diagbot/web/InformationController.java

@@ -11,10 +11,10 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author Weixuan Huang
- * @since 2019-01-14
+ * @since 2019-02-01
  */
 @Controller
-@RequestMapping("/information")
-public class InformationController {
+@RequestMapping("/lexiconRelationship")
+public class LexiconRelationshipController {
 
 }

+ 2 - 0
knowledge-service/src/main/java/com/diagbot/web/LibraryController.java

@@ -32,6 +32,7 @@ import javax.validation.Valid;
 @Api(value = "医学术语API", tags = { "医学术语API" })
 
 public class LibraryController {
+    /*
     @Autowired
     private LibraryFacade libraryFacade;
 
@@ -54,4 +55,5 @@ public class LibraryController {
 
         return RespDTO.onSuc(libraryDTO);
     }
+    */
 }

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

@@ -0,0 +1,20 @@
+package com.diagbot.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 提示信息明细 前端控制器
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-30
+ */
+@Controller
+@RequestMapping("/libraryDetail")
+public class LibraryDetailController {
+
+}

+ 4 - 4
knowledgeman-service/src/main/java/com/diagbot/web/BodypartController.java

@@ -7,14 +7,14 @@ import org.springframework.stereotype.Controller;
 
 /**
  * <p>
- *  前端控制器
+ * 提示信息 前端控制器
  * </p>
  *
  * @author Weixuan Huang
- * @since 2019-01-14
+ * @since 2019-01-30
  */
 @Controller
-@RequestMapping("/bodypart")
-public class BodypartController {
+@RequestMapping("/libraryInfo")
+public class LibraryInfoController {
 
 }

+ 0 - 0
knowledgeman-service/src/main/java/com/diagbot/web/LexiconController.java


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