Переглянути джерело

Merge branch 'develop' into dev/mix20190806_version

gaodm 5 роки тому
батько
коміт
38778215bb
100 змінених файлів з 1837 додано та 552 видалено
  1. 1 0
      aipt-service/src/main/java/com/diagbot/dto/IndexDTO.java
  2. 2 0
      aipt-service/src/main/java/com/diagbot/facade/IndexDataFacade.java
  3. 2 0
      aipt-service/src/main/java/com/diagbot/vo/GetStaticKnowledgeVO.java
  4. 2 2
      aipt-service/src/main/java/com/diagbot/vo/RetrievalVO.java
  5. 1 1
      config-server/src/main/resources/shared/icssman-service-dev.yml
  6. 1 1
      config-server/src/main/resources/shared/icssman-service-local.yml
  7. 1 1
      config-server/src/main/resources/shared/icssman-service-pro.yml
  8. 1 1
      config-server/src/main/resources/shared/icssman-service-test.yml
  9. 5 1
      config-server/src/main/resources/shared/knowledgeman-service-dev.yml
  10. 5 1
      config-server/src/main/resources/shared/knowledgeman-service-local.yml
  11. 5 1
      config-server/src/main/resources/shared/knowledgeman-service-pro.yml
  12. 5 1
      config-server/src/main/resources/shared/knowledgeman-service-test.yml
  13. 3 0
      config-server/src/main/resources/shared/prec-service-dev.yml
  14. 4 1
      config-server/src/main/resources/shared/prec-service-local.yml
  15. 3 0
      config-server/src/main/resources/shared/prec-service-pro.yml
  16. 4 1
      config-server/src/main/resources/shared/prec-service-test.yml
  17. 1 1
      config-server/src/main/resources/shared/precman-service-dev.yml
  18. 1 1
      config-server/src/main/resources/shared/precman-service-local.yml
  19. 5 0
      data-service/src/main/java/com/diagbot/vo/HospitalSetVO.java
  20. 1 2
      diagbotman-service/src/main/java/com/diagbot/facade/ProductServiceFacade.java
  21. 3 0
      docs/011.20190731ICSS历史病历优化增量脚本/init_icss.sql
  22. 3 0
      docs/011.20190731ICSS历史病历优化增量脚本/init_med.sql
  23. 3 0
      docs/011.20190731ICSS历史病历优化增量脚本/init_tran.sql
  24. 3 0
      docs/012.20190814数据服务模式支持多种方案/init_tran.sql
  25. 3 0
      docs/012.20190815ICSS标签主诉高亮脚本/init_icss.sql
  26. 10 0
      docs/014.20190817预问诊邵逸夫对接新增/init_prec.sql
  27. 0 25
      gateway-service/src/main/java/com/diagbot/client/UserServiceClient.java
  28. 0 24
      gateway-service/src/main/java/com/diagbot/client/hystrix/UserServiceHystrix.java
  29. 0 29
      gateway-service/src/main/java/com/diagbot/dto/LoginDTO.java
  30. 0 21
      gateway-service/src/main/java/com/diagbot/entity/Token.java
  31. 3 1
      icss-service/src/main/java/com/diagbot/dto/GetInquiryDetailDTO.java
  32. 5 5
      icss-service/src/main/java/com/diagbot/dto/HisInquiryDTO.java
  33. 0 6
      icss-service/src/main/java/com/diagbot/dto/HisInquirysForJzDetailDTO.java
  34. 1 0
      icss-service/src/main/java/com/diagbot/dto/IndexDTO.java
  35. 2 0
      icss-service/src/main/java/com/diagbot/dto/QuestionDTO.java
  36. 28 0
      icss-service/src/main/java/com/diagbot/dto/TemplateInfoPageDTO.java
  37. 186 173
      icss-service/src/main/java/com/diagbot/entity/InquiryDetail.java
  38. 6 0
      icss-service/src/main/java/com/diagbot/entity/QuestionInfo.java
  39. 6 17
      icss-service/src/main/java/com/diagbot/facade/InquiryDetailFacade.java
  40. 60 77
      icss-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java
  41. 65 8
      icss-service/src/main/java/com/diagbot/facade/TemplateInfoFacade.java
  42. 1 9
      icss-service/src/main/java/com/diagbot/mapper/InquiryDetailMapper.java
  43. 9 0
      icss-service/src/main/java/com/diagbot/mapper/TemplateInfoMapper.java
  44. 9 0
      icss-service/src/main/java/com/diagbot/service/TemplateInfoService.java
  45. 11 0
      icss-service/src/main/java/com/diagbot/service/impl/TemplateInfoServiceImpl.java
  46. 1 1
      icss-service/src/main/java/com/diagbot/vo/DoctorInfoVO.java
  47. 1 1
      icss-service/src/main/java/com/diagbot/vo/GetLastOtherVO.java
  48. 2 0
      icss-service/src/main/java/com/diagbot/vo/GetStaticKnowledgeVO.java
  49. 2 0
      icss-service/src/main/java/com/diagbot/vo/GetStaticVO.java
  50. 10 0
      icss-service/src/main/java/com/diagbot/vo/HisInquirysVO.java
  51. 2 1
      icss-service/src/main/java/com/diagbot/vo/RetrievalVO.java
  52. 6 0
      icss-service/src/main/java/com/diagbot/vo/SaveInquiryDetailVO.java
  53. 6 1
      icss-service/src/main/java/com/diagbot/vo/SaveInquiryToHisDetailVO.java
  54. 20 0
      icss-service/src/main/java/com/diagbot/vo/TemplateIdVO.java
  55. 44 0
      icss-service/src/main/java/com/diagbot/vo/TemplateInfoPageVO.java
  56. 2 1
      icss-service/src/main/java/com/diagbot/web/InquiryInfoController.java
  57. 36 9
      icss-service/src/main/java/com/diagbot/web/TemplateInfoController.java
  58. 1 7
      icss-service/src/main/resources/mapper/InquiryDetailMapper.xml
  59. 4 1
      icss-service/src/main/resources/mapper/InquiryInfoMapper.xml
  60. 64 24
      icss-service/src/main/resources/mapper/TemplateInfoMapper.xml
  61. 1 0
      icssman-service/src/main/java/com/diagbot/dto/QuestionDTO.java
  62. 5 0
      icssman-service/src/main/java/com/diagbot/dto/QuestionPageDTO.java
  63. 5 0
      icssman-service/src/main/java/com/diagbot/entity/QuestionInfo.java
  64. 1 0
      icssman-service/src/main/java/com/diagbot/entity/wrapper/QuestionWrapper.java
  65. 65 0
      icssman-service/src/main/java/com/diagbot/enums/ConceptTypeEnum.java
  66. 57 6
      icssman-service/src/main/java/com/diagbot/facade/LisMappingFacade.java
  67. 17 10
      icssman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java
  68. 10 1
      icssman-service/src/main/java/com/diagbot/facade/QuestionFacade.java
  69. 1 1
      knowledgeman-service/pom.xml
  70. 19 0
      knowledgeman-service/src/main/java/com/diagbot/client/AIServiceClient.java
  71. 159 0
      knowledgeman-service/src/main/java/com/diagbot/client/bean/Constants.java
  72. 43 0
      knowledgeman-service/src/main/java/com/diagbot/client/bean/FeatureRate.java
  73. 190 0
      knowledgeman-service/src/main/java/com/diagbot/client/bean/Response.java
  74. 29 0
      knowledgeman-service/src/main/java/com/diagbot/client/bean/ResponseData.java
  75. 132 0
      knowledgeman-service/src/main/java/com/diagbot/client/bean/Status.java
  76. 22 0
      knowledgeman-service/src/main/java/com/diagbot/client/hystrix/AIServiceHystrix.java
  77. 1 0
      knowledgeman-service/src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  78. 1 0
      knowledgeman-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  79. 5 0
      knowledgeman-service/src/main/java/com/diagbot/dto/RelationNodeDTO.java
  80. 35 19
      knowledgeman-service/src/main/java/com/diagbot/facade/ConceptFacade.java
  81. 7 3
      knowledgeman-service/src/main/java/com/diagbot/facade/RelationContactFacade.java
  82. 33 0
      knowledgeman-service/src/main/java/com/diagbot/facade/ReloadFacade.java
  83. 32 0
      knowledgeman-service/src/main/java/com/diagbot/web/ReloadController.java
  84. 5 5
      knowledgeman-service/src/main/resources/mapper/ConceptDetailMapper.xml
  85. 1 1
      knowledgeman-service/src/main/resources/mapper/IndexConfigMapper.xml
  86. 2 3
      knowledgeman-service/src/main/resources/mapper/RelationMapper.xml
  87. 10 0
      prec-service/src/main/java/com/diagbot/client/TranServiceClient.java
  88. 17 4
      prec-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java
  89. 10 1
      prec-service/src/main/java/com/diagbot/dto/ConceptPushDTO.java
  90. 3 0
      prec-service/src/main/java/com/diagbot/dto/QuestionDTO.java
  91. 14 1
      prec-service/src/main/java/com/diagbot/dto/QuestionUsualDTO.java
  92. 9 1
      prec-service/src/main/java/com/diagbot/dto/RetrievalDTO.java
  93. 86 0
      prec-service/src/main/java/com/diagbot/dto/SignInDTO.java
  94. 15 0
      prec-service/src/main/java/com/diagbot/entity/QuestionInfo.java
  95. 63 29
      prec-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java
  96. 24 4
      prec-service/src/main/java/com/diagbot/facade/PatientInfoFacade.java
  97. 14 2
      prec-service/src/main/java/com/diagbot/facade/PushFacade.java
  98. 16 3
      prec-service/src/main/java/com/diagbot/facade/QuestionUsualFacade.java
  99. 7 1
      prec-service/src/main/java/com/diagbot/facade/RetrievalFacade.java
  100. 0 0
      prec-service/src/main/java/com/diagbot/vo/RetrievalVO.java

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

@@ -17,6 +17,7 @@ import lombok.Setter;
 public class IndexDTO {
 	
 	private String itemName; // 指标名称
+	private Long uniqueId;
 	private Integer groupType;
 	private List<String> indexUnit;//单位
 	private List<Integer> isAbnormal;//是否异常

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

@@ -76,11 +76,13 @@ public class IndexDataFacade {
         for (String key : dataMap.keySet()) {
             IndexDTO itemIndexDTO = new IndexDTO();
             itemIndexDTO.setItemName(key);
+            
             List<String> indexUnits = new ArrayList<String>();
             List<String> indexValues = new ArrayList<String>();
             List<Integer> isAbnormals = new ArrayList<Integer>();
             List<Date> creatTimes = new ArrayList<Date>();
             List<IndexDataDTO> indexDatas = dataMap.get(key);
+            itemIndexDTO.setUniqueId(indexDatas.get(0).getUniqueId());
             for (IndexDataDTO indexDataDTO : indexDatas) {
                 indexUnits.add(indexDataDTO.getIndexUnit());
                 indexValues.add(indexDataDTO.getIndexValue());

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

@@ -3,6 +3,7 @@ package com.diagbot.vo;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
 import java.util.List;
 
 /**
@@ -14,6 +15,7 @@ import java.util.List;
 @Setter
 public class GetStaticKnowledgeVO {
     //检索内容
+    @NotBlank(message = "请输入检索内容")
     private String InputStr;
     //需要去重的id
     private List<Long> inputIds;

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

@@ -3,7 +3,7 @@ package com.diagbot.vo;
 import lombok.Getter;
 import lombok.Setter;
 
-import javax.validation.constraints.NotNull;
+import javax.validation.constraints.NotBlank;
 import java.util.List;
 
 /**
@@ -16,7 +16,7 @@ import java.util.List;
 public class RetrievalVO {
     private Integer type;
     private Integer age;
-    @NotNull(message = "请输入症状")
+    @NotBlank(message = "请输入检索内容")
     private String InputStr;
     private Integer sexType;
     //需要去重的id

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

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

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

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

+ 1 - 1
config-server/src/main/resources/shared/icssman-service-pro.yml

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

+ 1 - 1
config-server/src/main/resources/shared/icssman-service-test.yml

@@ -7,7 +7,7 @@ spring:
     druid:
       driver-class-name: com.mysql.cj.jdbc.Driver
       platform: mysql
-      url: jdbc:mysql://192.168.2.241:3306/sys-icssman?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
+      url: jdbc:mysql://192.168.2.241:3306/sys-icss?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
       username: root
       password: lantone
       # 连接池的配置信息

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

@@ -107,4 +107,8 @@ fastdfs:
   charset: UTF-8
   http_tracker_http_port: 8080
   http_anti_steal_token: no
-  tracker_servers: 192.168.2.236:22122
+  tracker_servers: 192.168.2.236:22122
+
+ai:
+  server:
+    address: http://192.168.2.234:5008

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

@@ -107,4 +107,8 @@ fastdfs:
   charset: UTF-8
   http_tracker_http_port: 8080
   http_anti_steal_token: no
-  tracker_servers: 192.168.2.236:22122
+  tracker_servers: 192.168.2.236:22122
+
+ai:
+  server:
+    address: http://192.168.2.234:5008

+ 5 - 1
config-server/src/main/resources/shared/knowledgeman-service-pro.yml

@@ -107,4 +107,8 @@ fastdfs:
   charset: UTF-8
   http_tracker_http_port: 8080
   http_anti_steal_token: no
-  tracker_servers: 192.168.2.236:22122
+  tracker_servers: 192.168.2.236:22122
+
+ai:
+  server:
+    address: http://192.168.2.234:5008

+ 5 - 1
config-server/src/main/resources/shared/knowledgeman-service-test.yml

@@ -107,4 +107,8 @@ fastdfs:
   charset: UTF-8
   http_tracker_http_port: 8080
   http_anti_steal_token: no
-  tracker_servers: 192.168.2.241:22122
+  tracker_servers: 192.168.2.241:22122
+
+ai:
+  server:
+    address: http://192.168.2.241:5008

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

@@ -102,3 +102,6 @@ fastdfs:
   http_tracker_http_port: 8080
   http_anti_steal_token: no
   tracker_servers: 192.168.2.236:22122
+
+imageUrl:
+  prefix: http://192.168.2.236:82

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

@@ -101,4 +101,7 @@ fastdfs:
   charset: UTF-8
   http_tracker_http_port: 8080
   http_anti_steal_token: no
-  tracker_servers: 192.168.2.236:22122
+  tracker_servers: 192.168.2.236:22122
+
+imageUrl:
+  prefix: http://192.168.2.236:82

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

@@ -102,3 +102,6 @@ fastdfs:
   http_tracker_http_port: 8080
   http_anti_steal_token: no
   tracker_servers: 192.168.2.236:22122
+
+imageUrl:
+  prefix: http://192.168.2.236:82

+ 4 - 1
config-server/src/main/resources/shared/prec-service-test.yml

@@ -102,4 +102,7 @@ fastdfs:
   charset: UTF-8
   http_tracker_http_port: 8080
   http_anti_steal_token: no
-  tracker_servers: 192.168.2.241:22122
+  tracker_servers: 192.168.2.241:22122
+
+imageUrl:
+  prefix: http://192.168.2.241:82

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

@@ -7,7 +7,7 @@ spring:
     druid:
       driver-class-name: com.mysql.cj.jdbc.Driver
       platform: mysql
-      url: jdbc:mysql://192.168.2.236:3306/sys-precman?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
+      url: jdbc:mysql://192.168.2.236:3306/sys-prec?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
       username: root
       password: lantone
       # 连接池的配置信息

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

@@ -7,7 +7,7 @@ spring:
     druid:
       driver-class-name: com.mysql.cj.jdbc.Driver
       platform: mysql
-      url: jdbc:mysql://192.168.2.236:3306/sys-precman?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
+      url: jdbc:mysql://192.168.2.236:3306/sys-prec?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
       username: root
       password: lantone
       # 连接池的配置信息

+ 5 - 0
data-service/src/main/java/com/diagbot/vo/HospitalSetVO.java

@@ -27,6 +27,11 @@ public class HospitalSetVO {
 	@ApiModelProperty(hidden = true)
 	private Integer sysType = SysTypeEnum.DATA_SERVICE.getKey();
 
+	/**
+	 * 方案编号
+	 */
+	private Integer plan;
+
 	/**
 	 * 配置名称
 	 */

+ 1 - 2
diagbotman-service/src/main/java/com/diagbot/facade/ProductServiceFacade.java

@@ -24,7 +24,6 @@ import com.diagbot.util.GuidUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.ProductServiceSaveVO;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -97,7 +96,7 @@ public class ProductServiceFacade extends ProductServiceServiceImpl {
         if (serviceInfo == null || serviceInfo.getIsDeleted().equals(IsDeleteEnum.Y.getKey())) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS,
                     "找不到服务端【" + serviceInfo.getName() + "】");
-        } else if (serviceInfo.getUserId() != userId) {
+        } else if (serviceInfo.getUserId().longValue() != userId) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
                     "当前登录用户没有关联服务端【" + serviceInfo.getName() + "】");
         }

+ 3 - 0
docs/011.20190731ICSS历史病历优化增量脚本/init_icss.sql

@@ -0,0 +1,3 @@
+use `sys-icss`;
+ALTER TABLE `icss_inquiry_detail`
+ADD COLUMN `content_json`  text NULL COMMENT '内容字符串json' AFTER `content`;

+ 3 - 0
docs/011.20190731ICSS历史病历优化增量脚本/init_med.sql

@@ -0,0 +1,3 @@
+use `med`;
+ALTER TABLE kl_concept ADD sort_deleted VARCHAR(5)  GENERATED ALWAYS AS ('Y' > is_deleted) VIRTUAL COMMENT '自动生成排序用删除标志';
+ALTER TABLE kl_concept ADD INDEX  idx_deleted_modified_id(`sort_deleted`,`gmt_modified`,`id`);

+ 3 - 0
docs/011.20190731ICSS历史病历优化增量脚本/init_tran.sql

@@ -0,0 +1,3 @@
+use `sys-tran`;
+ALTER TABLE `tran_inquiry_detail`
+ADD COLUMN `content_json`  text NULL COMMENT '内容字符串json' AFTER `content`;

+ 3 - 0
docs/012.20190814数据服务模式支持多种方案/init_tran.sql

@@ -0,0 +1,3 @@
+use `sys-tran`;
+ALTER TABLE `tran_sys_set`
+ADD COLUMN `plan` int(11) NOT NULL DEFAULT '0' COMMENT '方案编号' AFTER `hospital_code`;

+ 3 - 0
docs/012.20190815ICSS标签主诉高亮脚本/init_icss.sql

@@ -0,0 +1,3 @@
+use `sys-icss`;
+ALTER TABLE `icss_question_info`
+ADD COLUMN `spec_flag` int(11) NOT NULL DEFAULT '0' COMMENT '特殊标记(0:没有标记,1:主诉高亮,2:诱因记录)' AFTER `formula_code`;

+ 10 - 0
docs/014.20190817预问诊邵逸夫对接新增/init_prec.sql

@@ -0,0 +1,10 @@
+use `sys-prec`;
+ALTER TABLE `prec_question_info`
+ADD COLUMN `spec_flag` int(11) NOT NULL DEFAULT '0' COMMENT '特殊标记(0:没有标记,1:拼接到主诉)' AFTER `url`;
+ALTER TABLE `prec_question_info`
+ADD COLUMN `required` int(11) NOT NULL DEFAULT '0' COMMENT '必填(0:不必填,1:必填)' AFTER `spec_flag`;
+ALTER TABLE `prec_question_info`
+ADD COLUMN `explains` TEXT COMMENT '详细阐述' AFTER `required`;
+ALTER TABLE `prec_question_info`
+MODIFY COLUMN  `control_type` tinyint(4) DEFAULT '0' COMMENT '控件类型(0:无类型,默认值 1:单选 2:多选 3:多行输入,生命体征 4:上传图片 5:文本域,自行服药 6:文本框 7:数字文本框 8:多选伴无)';
+INSERT INTO `prec_dictionary_info` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('16', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '多选伴无', '8', '1', '80', '单标签组件类型');

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

@@ -1,25 +0,0 @@
-package com.diagbot.client;
-
-import com.diagbot.client.hystrix.UserServiceHystrix;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.entity.User;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-
-
-/**
- * @Description: 请求认证授权服务器客户端
- * @author: gaodm
- * @time: 2018/8/2 13:37
- */
-@FeignClient(value = "user-service", fallback = UserServiceHystrix.class)
-public interface UserServiceClient {
-
-    @PostMapping("/user/login")
-    RespDTO<User> login(@RequestParam("username") String username, @RequestParam("password") String password);
-
-}
-
-
-

+ 0 - 24
gateway-service/src/main/java/com/diagbot/client/hystrix/UserServiceHystrix.java

@@ -1,24 +0,0 @@
-package com.diagbot.client.hystrix;
-
-
-import com.diagbot.client.UserServiceClient;
-import com.diagbot.dto.RespDTO;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * @Description: 请求认证授权服务器客户端(请求失败熔断)
- * @author: gaodm
- * @time: 2018/8/2 13:37
- */
-@Component
-@Slf4j
-public class UserServiceHystrix implements UserServiceClient {
-
-    @Override
-    public RespDTO login(String username, String password) {
-        log.error("【hystrix】调用{}异常", "login");
-        return null;
-    }
-
-}

+ 0 - 29
gateway-service/src/main/java/com/diagbot/dto/LoginDTO.java

@@ -1,29 +0,0 @@
-package com.diagbot.dto;
-
-import com.diagbot.entity.User;
-
-/**
- * @Description: 登录输出类
- * @author: gaodm
- * @time: 2018/8/2 14:22
- */
-public class LoginDTO {
-    private User user;
-    private String token;
-
-    public User getUser() {
-        return user;
-    }
-
-    public void setUser(User user) {
-        this.user = user;
-    }
-
-    public String getToken() {
-        return token;
-    }
-
-    public void setToken(String token) {
-        this.token = token;
-    }
-}

+ 0 - 21
gateway-service/src/main/java/com/diagbot/entity/Token.java

@@ -1,21 +0,0 @@
-package com.diagbot.entity;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import java.io.Serializable;
-
-/**
- * @Description: token
- * @Author: ztg
- * @Date: 2018/9/19 13:14
- */
-@Getter
-@Setter
-public class Token implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    private String token;
-
-}

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

@@ -18,7 +18,9 @@ import lombok.Setter;
 @Setter
 public class GetInquiryDetailDTO {
 	
-	private List<InquiryDetail> inquiryDetailList;
+    private String dataJson;
+	
+	private List<InquiryDetail> detailList;
 	
 	
 }

+ 5 - 5
icss-service/src/main/java/com/diagbot/dto/HisInquiryDTO.java

@@ -57,11 +57,11 @@ public class HisInquiryDTO{
 	@ApiModelProperty(value="类型:0:结构化 1:文本模式")
     private Integer sign;
 
-    /**
-     * 内容JSON字符串
-     */
-	@ApiModelProperty(value="内容JSON字符串")
-    private String dataJson;
+//    /**
+//     * 内容JSON字符串
+//     */
+//	@ApiModelProperty(value="内容JSON字符串")
+//    private String dataJson;
 	
 	
 	/**

+ 0 - 6
icss-service/src/main/java/com/diagbot/dto/HisInquirysForJzDetailDTO.java

@@ -130,12 +130,6 @@ public class HisInquirysForJzDetailDTO{
 	@ApiModelProperty(value="病人证件号码")
     private String patientIdNo;
 	
-    /**
-     * 内容JSON字符串
-     */
-	@ApiModelProperty(value="内容JSON字符串")
-    private String dataJson;
-    
 	/**
      * 病历明细
      */

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

@@ -17,6 +17,7 @@ import lombok.Setter;
 public class IndexDTO {
 
 	private String itemName; // 指标名称
+	private Long uniqueId;
 	private Integer groupType;
 	private List<String> indexUnit;//单位
 	private List<Integer> isAbnormal;//是否异常

+ 2 - 0
icss-service/src/main/java/com/diagbot/dto/QuestionDTO.java

@@ -42,5 +42,7 @@ public class QuestionDTO {
     private List<QuestionDTO> questionMapping = new ArrayList<>();     //下级标签
     private String uniqueName; //隐藏名称
     private String formulaCode;     //公式编码
+    private Integer specFlag;//特殊标记(0:没有标记,1:主诉高亮,2:诱因记录)
     private String remark;//备注
+
 }

+ 28 - 0
icss-service/src/main/java/com/diagbot/dto/TemplateInfoPageDTO.java

@@ -0,0 +1,28 @@
+package com.diagbot.dto;
+
+import java.util.Date;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年7月24日 上午11:07:57
+ */
+@Getter
+@Setter
+public class TemplateInfoPageDTO {
+	 private Long id;//模板id
+	 private Date  gmtCreate;//创建时间
+	 private String creator;//创建人id
+	 private String name;//模板名字
+	 private Long doctorId;//医生id
+	 private Long hospitalId;//医院id
+	 private Long hospitalDeptId;//部门id
+	 private Integer sex;//性别
+	 private String type;//模板类型
+	 private String  preview;//预览文字
+	 private String remark;//备注
+}

+ 186 - 173
icss-service/src/main/java/com/diagbot/entity/InquiryDetail.java

@@ -1,173 +1,186 @@
-package com.diagbot.entity;
-
-import java.io.Serializable;
-import java.util.Date;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-/**
- * <p>
- * 问诊记录明细表
- * </p>
- *
- * @author zhoutg
- * @since 2019-03-18
- */
-@TableName("icss_inquiry_detail")
-public class InquiryDetail implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 主键
-     */
-    @TableId(value = "id", type = IdType.AUTO)
-    private Long id;
-
-    /**
-     * 是否删除,N:未删除,Y:删除
-     */
-    private String isDeleted;
-
-    /**
-     * 记录创建时间
-     */
-    private Date gmtCreate;
-
-    /**
-     * 记录修改时间,如果时间是1970年则表示纪录未修改
-     */
-    private Date gmtModified;
-
-    /**
-     * 创建人,0表示无创建人值
-     */
-    private String creator;
-
-    /**
-     * 修改人,如果为0则表示纪录未修改
-     */
-    private String modifier;
-
-    /**
-     * 问诊记录id
-     */
-    private Long inquiryId;
-
-    /**
-     * 类型(1:主诉,2现病史,3其他史,4查体,5化验,6辅检,7诊断,8医嘱)
-     */
-    private Integer type;
-
-    /**
-     * 内容字符串
-     */
-    private String content;
-
-    /**
-     * 内容字符串纯文本
-     */
-    private String contentValue;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-    public String getIsDeleted() {
-        return isDeleted;
-    }
-
-    public void setIsDeleted(String isDeleted) {
-        this.isDeleted = isDeleted;
-    }
-    public Date getGmtCreate() {
-        return gmtCreate;
-    }
-
-    public void setGmtCreate(Date gmtCreate) {
-        this.gmtCreate = gmtCreate;
-    }
-    public Date getGmtModified() {
-        return gmtModified;
-    }
-
-    public void setGmtModified(Date gmtModified) {
-        this.gmtModified = gmtModified;
-    }
-    public String getCreator() {
-        return creator;
-    }
-
-    public void setCreator(String creator) {
-        this.creator = creator;
-    }
-    public String getModifier() {
-        return modifier;
-    }
-
-    public void setModifier(String modifier) {
-        this.modifier = modifier;
-    }
-    public Long getInquiryId() {
-        return inquiryId;
-    }
-
-    public void setInquiryId(Long inquiryId) {
-        this.inquiryId = inquiryId;
-    }
-    public Integer getType() {
-        return type;
-    }
-
-    public void setType(Integer type) {
-        this.type = type;
-    }
-    public String getContent() {
-        return content;
-    }
-
-    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;
-    }
-
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
-
-    @Override
-    public String toString() {
-        return "InquiryDetail{" +
-        "id=" + id +
-        ", isDeleted=" + isDeleted +
-        ", gmtCreate=" + gmtCreate +
-        ", gmtModified=" + gmtModified +
-        ", creator=" + creator +
-        ", modifier=" + modifier +
-        ", inquiryId=" + inquiryId +
-        ", type=" + type +
-        ", content=" + content +
-        ", contentValue=" + contentValue +
-        ", remark=" + remark +
-        "}";
-    }
-}
+package com.diagbot.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+ * <p>
+ * 问诊记录明细表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-07-31
+ */
+@TableName("icss_inquiry_detail")
+public class InquiryDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 问诊记录id
+     */
+    private Long inquiryId;
+
+    /**
+     * 类型(1:主诉,2现病史,3其他史,4查体,5化验,6辅检,7诊断,8医嘱,9二次诊断)
+     */
+    private Integer type;
+
+    /**
+     * 内容字符串
+     */
+    private String content;
+
+    /**
+     * 内容字符串json
+     */
+    private String contentJson;
+
+    /**
+     * 内容字符串纯文本
+     */
+    private String contentValue;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public Long getInquiryId() {
+        return inquiryId;
+    }
+
+    public void setInquiryId(Long inquiryId) {
+        this.inquiryId = inquiryId;
+    }
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+    public String getContentJson() {
+        return contentJson;
+    }
+
+    public void setContentJson(String contentJson) {
+        this.contentJson = contentJson;
+    }
+    public String getContentValue() {
+        return contentValue;
+    }
+
+    public void setContentValue(String contentValue) {
+        this.contentValue = contentValue;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "InquiryDetail{" +
+        "id=" + id +
+        ", isDeleted=" + isDeleted +
+        ", gmtCreate=" + gmtCreate +
+        ", gmtModified=" + gmtModified +
+        ", creator=" + creator +
+        ", modifier=" + modifier +
+        ", inquiryId=" + inquiryId +
+        ", type=" + type +
+        ", content=" + content +
+        ", contentJson=" + contentJson +
+        ", contentValue=" + contentValue +
+        ", remark=" + remark +
+        "}";
+    }
+}

+ 6 - 0
icss-service/src/main/java/com/diagbot/entity/QuestionInfo.java

@@ -130,9 +130,15 @@ public class QuestionInfo implements Serializable {
      */
     private String joint;
 
+    /**
+     * 特殊标记(0:没有标记,1:主诉高亮,2:诱因记录)
+     */
+    private Integer specFlag;
+
     /**
      * 备注
      */
     private String remark;
 
+
 }

+ 6 - 17
icss-service/src/main/java/com/diagbot/facade/InquiryDetailFacade.java

@@ -1,15 +1,15 @@
 package com.diagbot.facade;
 
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.springframework.stereotype.Component;
+
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.entity.InquiryDetail;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.InquiryDetailServiceImpl;
-import com.diagbot.util.ListUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
 
 /**
  * @author rengb
@@ -19,17 +19,6 @@ import java.util.stream.Collectors;
 @Component
 public class InquiryDetailFacade extends InquiryDetailServiceImpl {
 
-    /**
-     * 批量保存问诊明细
-     *
-     * @param inquiryDetailList
-     */
-    public void saveInquiryDetails(List<InquiryDetail> inquiryDetailList) {
-        if (ListUtil.isNotEmpty(inquiryDetailList)) {
-            baseMapper.saveInquiryDetails(inquiryDetailList);
-        }
-    }
-
     /**
      * 根据问诊记录id删除问诊记录明细
      *

+ 60 - 77
icss-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java

@@ -13,6 +13,7 @@ import java.util.stream.Collectors;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 
+import com.diagbot.util.IntegerUtil;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -21,6 +22,8 @@ import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.dto.GetEvaluationScalesDTO;
 import com.diagbot.dto.GetEvaluationsDTO;
@@ -49,6 +52,7 @@ import com.diagbot.enums.SexTypeEnum;
 import com.diagbot.enums.SysTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.service.InquiryDetailService;
 import com.diagbot.service.InquiryDrugService;
 import com.diagbot.service.InquiryScaleService;
 import com.diagbot.service.impl.InquiryInfoServiceImpl;
@@ -83,6 +87,9 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
     @Autowired
     private InquiryDetailFacade inquiryDetailFacade;
     @Autowired
+    @Qualifier("inquiryDetailServiceImpl")
+    private InquiryDetailService inquiryDetailService;
+    @Autowired
     private HospitalInfoFacade hospitalInfoFacade;
     @Autowired
     private PatientInfoFacade patientInfoFacade;
@@ -124,52 +131,36 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
         inquiryInfoQe.eq("doctor_id", saveInquiryVO.getDoctorId());
         inquiryInfoQe.eq("patient_id", saveInquiryVO.getPatientId());
         inquiryInfoQe.eq("inquiry_code", saveInquiryVO.getInquiryCode());
-        InquiryInfo inquiryInfo = this.getOne(inquiryInfoQe);
-
-        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());
+        InquiryInfo inquiryInfo = getOne(inquiryInfoQe);
+
         if (inquiryInfo == null) {
-            inquiryInfoSave.setGmtCreate(now);
-            inquiryInfoSave.setGmtModified(now);
-            this.save(inquiryInfoSave);
-            inquiryId = inquiryInfoSave.getId();
+        	inquiryInfo = new InquiryInfo();
+        	inquiryInfo.setGmtCreate(now);
         } 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);
+            inquiryDetailFacade.removeByInquiryId(inquiryInfo.getId());
+            inquiryDrugFacade.removeByInquiryId(inquiryInfo.getId());
+            inquiryEvaluationFacade.removeByInquiryId(inquiryInfo.getId());
+            inquiryScaleFacade.removeByInquiryId(inquiryInfo.getId());
         }
+        inquiryInfo.setGmtModified(now);
+        BeanUtil.copyProperties(saveInquiryVO, inquiryInfo);
+        this.saveOrUpdate(inquiryInfo);
 
-        Long inquiryId_ = inquiryId;
+        Long inquiryId = inquiryInfo.getId();
         if (ListUtil.isNotEmpty(saveInquiryVO.getDetailList())) {
             List<InquiryDetail> inquiryDetailList = BeanUtil.listCopyTo(saveInquiryVO.getDetailList(), InquiryDetail.class);
             inquiryDetailList.forEach(i->{
-            	i.setInquiryId(inquiryId_);
+            	i.setInquiryId(inquiryId);
                 i.setGmtCreate(now);
                 i.setGmtModified(now);
             });
-            inquiryDetailFacade.saveInquiryDetails(inquiryDetailList);
+            inquiryDetailService.saveBatch(inquiryDetailList);
         }
 
         if (ListUtil.isNotEmpty(saveInquiryVO.getDrugList())) {
             List<InquiryDrug> inquiryDrugList = BeanUtil.listCopyTo(saveInquiryVO.getDrugList(), InquiryDrug.class);
-            inquiryDrugList.stream().forEach(i -> {
-                i.setInquiryId(inquiryId_);
+            inquiryDrugList.forEach(i -> {
+                i.setInquiryId(inquiryId);
                 i.setGmtCreate(now);
                 i.setGmtModified(now);
             });
@@ -178,7 +169,7 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
 
         if (saveInquiryVO.getInquiryEvaluation() != null) {
             InquiryEvaluation inquiryEvaluation = new InquiryEvaluation();
-            inquiryEvaluation.setInquiryId(inquiryId_);
+            inquiryEvaluation.setInquiryId(inquiryId);
             inquiryEvaluation.setGmtCreate(now);
             inquiryEvaluation.setGmtModified(now);
             inquiryEvaluation.setHtmlContent(saveInquiryVO.getInquiryEvaluation().getHtmlContent());
@@ -187,7 +178,7 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
             if (ListUtil.isNotEmpty(saveInquiryVO.getInquiryEvaluation().getScaleList())) {
                 List<InquiryScale> inquiryScaleList = BeanUtil.listCopyTo(saveInquiryVO.getInquiryEvaluation().getScaleList(), InquiryScale.class);
                 inquiryScaleList.forEach(i -> {
-                    i.setInquiryId(inquiryId_);
+                    i.setInquiryId(inquiryId);
                     i.setInquiryEvaluationId(inquiryEvaluation.getId());
                     i.setGmtCreate(now);
                     i.setGmtModified(now);
@@ -207,7 +198,7 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
         saveInquiryToHisVO.setSysType(SysTypeEnum.ICSS_SERVICE.getKey());
         RespDTOUtil.respNGDeal(tranServiceClient.saveInquiryToHis(saveInquiryToHisVO), "问诊记录插入tran层失败");
 
-        saveInquiryDTO.setInquiryId(inquiryId_);
+        saveInquiryDTO.setInquiryId(inquiryId);
         
         return saveInquiryDTO;
     }
@@ -273,7 +264,9 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
         Map<String, Object> map = new HashMap<>();
         map.put("hospitalId", hospitalInfoDTO.getId());
         map.put("patientId", patientInfoDTO.getId());
-        map.put("sign", getLastOtherVO.getSign());
+        if (!IntegerUtil.isNull(getLastOtherVO.getSign())){
+            map.put("sign", getLastOtherVO.getSign());
+        }
         InquiryInfo inquiryInfo = baseMapper.getPatientLast(map);
 
         if (inquiryInfo != null) {
@@ -296,47 +289,35 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
      * @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");
-        }
-
+    public IPage<HisInquiryDTO> hisInquirys(HisInquirysVO hisInquirysVO) {
+    	Page<HisInquiryDTO> hisInquiryDTOPage = new Page<>();
+    	
+        QueryWrapper<InquiryInfo> inquiryInfoQe = new QueryWrapper<>();
+        inquiryInfoQe.eq("is_deleted", IsDeleteEnum.N.getKey());
+        inquiryInfoQe.eq("hospital_id", hisInquirysVO.getHospitalId());
+        inquiryInfoQe.eq(hisInquirysVO.getHospitalDeptId() != null, "hospital_dept_id", hisInquirysVO.getHospitalDeptId());
+        inquiryInfoQe.eq(hisInquirysVO.getDoctorId() != null, "doctor_id", hisInquirysVO.getDoctorId());
+        inquiryInfoQe.eq(hisInquirysVO.getPatientId() != null, "patient_id", hisInquirysVO.getPatientId());
+        inquiryInfoQe.eq(hisInquirysVO.getType() != null, "type", hisInquirysVO.getType());
+        inquiryInfoQe.eq(hisInquirysVO.getSign() != null, "sign", hisInquirysVO.getSign());
+        inquiryInfoQe.ge(hisInquirysVO.getStartDate() != null, "gmt_create", hisInquirysVO.getStartDate());
+        inquiryInfoQe.le(hisInquirysVO.getEndDate() != null, "gmt_create", hisInquirysVO.getEndDate());
+        inquiryInfoQe.orderByDesc(hisInquirysVO.getOrderType() == 1,"gmt_modified");
+        inquiryInfoQe.orderByAsc(hisInquirysVO.getOrderType() == 2, "gmt_modified");
+        
         if (hisInquirysVO.getDisType() == 1) {
             Date nowDate = DateUtil.now();
             Date lastDate = DateUtil.addMonth(nowDate, -6);
-            queryWrapper.ge("gmt_create", lastDate);
-            queryWrapper.le("gmt_create", nowDate);
-            queryWrapper.likeRight("diagnose", hisInquirysVO.getDisName());
+            inquiryInfoQe.ge("gmt_create", lastDate);
+            inquiryInfoQe.le("gmt_create", nowDate);
+            inquiryInfoQe.likeRight("diagnose", hisInquirysVO.getDisName());
         }
 
-
-        List<InquiryInfo> inquiryInfoList = this.list(queryWrapper);
+        Page<InquiryInfo> inquiryInfoPage = new Page<>(hisInquirysVO.getCurrent(),hisInquirysVO.getSize());
+        IPage<InquiryInfo> iPage = this.page(inquiryInfoPage, inquiryInfoQe);
+    	BeanUtil.copyProperties(iPage, hisInquiryDTOPage);
+        
+        List<InquiryInfo> inquiryInfoList = iPage.getRecords();
         if (inquiryInfoList.size() == 0) {
             return null;
         }
@@ -371,8 +352,8 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
             hisInquiryDTOList.add(hisInquiryDTO);
         });
 
-
-        return hisInquiryDTOList;
+        hisInquiryDTOPage.setRecords(hisInquiryDTOList);
+        return hisInquiryDTOPage;
     }
     
     /**
@@ -450,10 +431,12 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
      */
     public GetInquiryDetailDTO getInquiryDetail(GetInquiryDetailVO getInquiryDetailVO) {
         GetInquiryDetailDTO getInquiryDetailDTO = new GetInquiryDetailDTO();
-
+        
+        InquiryInfo inquiryInfo = this.getById(getInquiryDetailVO.getInquiryId());
         List<InquiryDetail> inquiryDetailList = inquiryDetailFacade.getListByInquryId(getInquiryDetailVO.getInquiryId());
-
-        getInquiryDetailDTO.setInquiryDetailList(inquiryDetailList);
+        
+        getInquiryDetailDTO.setDataJson(inquiryInfo.getDataJson());
+        getInquiryDetailDTO.setDetailList(inquiryDetailList);
 
         return getInquiryDetailDTO;
     }

+ 65 - 8
icss-service/src/main/java/com/diagbot/facade/TemplateInfoFacade.java

@@ -1,27 +1,35 @@
 package com.diagbot.facade;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoPageDTO;
 import com.diagbot.entity.TemplateInfo;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.service.TemplateInfoService;
 import com.diagbot.service.impl.TemplateInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.GsonUtil;
 import com.diagbot.util.ListUtil;
+import com.diagbot.vo.TemplateIdVO;
+import com.diagbot.vo.TemplateInfoPageVO;
 import com.diagbot.vo.TemplateInfoRevampVO;
 import com.diagbot.vo.TemplateInfoVO;
 import com.diagbot.vo.TemplateInfosIdVO;
 import com.diagbot.vo.TemplateInfosVO;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 
 /**
  * @author wangfeng
@@ -81,7 +89,7 @@ public class TemplateInfoFacade extends TemplateInfoServiceImpl {
         mapAll.put("hospital_id", templateInfoRevampVO.getHospitalId());
         mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
         mapAll.put("name", templateInfoRevampVO.getModeName());
-        mapAll.put("type", templateInfoRevampVO.getType());
+        //mapAll.put("type", templateInfoRevampVO.getType());
         templates.allEq(mapAll);
         TemplateInfo datas = getOne(templates);
         if (datas != null) {
@@ -116,7 +124,7 @@ public class TemplateInfoFacade extends TemplateInfoServiceImpl {
         mapAll.put("hospital_id", templateInfosVO.getHospitalId());
         mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
         mapAll.put("name", templateInfosVO.getModeName());
-        mapAll.put("type", templateInfosVO.getModeType());
+        //mapAll.put("type", templateInfosVO.getModeType());
 
         templateInfoFand.allEq(mapAll);
         int sum = count(templateInfoFand);
@@ -168,4 +176,53 @@ public class TemplateInfoFacade extends TemplateInfoServiceImpl {
         return res;
     }
 
+    /**
+     * 
+     * @param page
+     * @param templateInfoPageVO
+     * @return
+     */
+	public IPage<TemplateInfoPageDTO> getTemplatePageAlls(Page page, TemplateInfoPageVO templateInfoPageVO) {
+/*		  //根据传入的医生id和部门id还有医院id在数据表中查出相应的模板数据
+
+        QueryWrapper<TemplateInfo> templateInfoQuery = new QueryWrapper<>();
+        Map<String, Object> mapAll = new HashMap<>();
+        mapAll.put("hospital_dept_id", templateInfoPageVO.getHospitalDeptId());
+        mapAll.put("doctor_id", templateInfoPageVO.getDoctorId());
+        mapAll.put("hospital_id", templateInfoPageVO.getHospitalId());
+        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
+        mapAll.put("type", templateInfoPageVO.getType());
+        if (templateInfoPageVO.getSex() != null) {
+            templateInfoQuery.allEq(mapAll).in("sex", 3, templateInfoPageVO.getSex()).orderByDesc("gmt_create");
+        } else {
+            templateInfoQuery.allEq(mapAll).orderByDesc("gmt_create");
+        }
+        IPage<TemplateInfoPageDTO> TemplateInfoData =page(page, templateInfoQuery);
+        List<TemplateInfoPageDTO> datas = TemplateInfoData.getRecords();
+        List<TemplateInfoPageDTO> data = new ArrayList<TemplateInfoPageDTO>();
+        //过滤
+        data = BeanUtil.listCopyTo(datas, TemplateInfoPageDTO.class);
+        
+		return TemplateInfoData.setRecords(data);*/
+		IPage<TemplateInfoPageDTO> TemplateInfoData = getTemplatePages(templateInfoPageVO);
+		return TemplateInfoData;
+	}
+
+	/**
+	 * 
+	 * @param templateIdVO
+	 * @return
+	 */
+	public TemplateInfoDTO getTemplateIdAlls(TemplateIdVO templateIdVO) {
+		 //根据传入的医生id和部门id还有医院id在数据表中查出相应的模板数据
+        QueryWrapper<TemplateInfo> templateInfoQuery = new QueryWrapper<>();
+        templateInfoQuery.eq("id", templateIdVO.getId())
+        .eq("is_deleted", IsDeleteEnum.N.getKey());    
+        TemplateInfoDTO data = new TemplateInfoDTO();
+        TemplateInfo datas = getOne(templateInfoQuery);
+        //过滤
+        BeanUtil.copyProperties(datas, data);
+        return data;
+	}
+
 }

+ 1 - 9
icss-service/src/main/java/com/diagbot/mapper/InquiryDetailMapper.java

@@ -1,10 +1,7 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.InquiryDetail;
-
-import java.util.List;
-
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.InquiryDetail;
 
 /**
  * <p>
@@ -16,10 +13,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface InquiryDetailMapper extends BaseMapper<InquiryDetail> {
 	
-	/**
-	 * 批量保存问诊明细
-	 * @param inquiryDetailList
-	 */
-	public void saveInquiryDetails(List<InquiryDetail> inquiryDetailList);
 
 }

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

@@ -1,10 +1,17 @@
 package com.diagbot.mapper;
 
 import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Param;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoPageDTO;
 import com.diagbot.entity.TemplateInfo;
+import com.diagbot.vo.TemplateInfoPageVO;
 
 /**
  * <p>
@@ -19,4 +26,6 @@ public interface TemplateInfoMapper extends BaseMapper<TemplateInfo> {
 	//根据医生id查询该医生保存的病历模板
 	public List<TemplateInfoDTO> findByDoctorIdTemplate(TemplateInfo templateInfo);
 
+	public IPage<TemplateInfoPageDTO> getTemplatePages(TemplateInfoPageVO templateInfoPageVO);
+
 }

+ 9 - 0
icss-service/src/main/java/com/diagbot/service/TemplateInfoService.java

@@ -1,10 +1,15 @@
 package com.diagbot.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoPageDTO;
 import com.diagbot.entity.TemplateInfo;
+import com.diagbot.vo.TemplateInfoPageVO;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -21,4 +26,8 @@ public interface TemplateInfoService extends IService<TemplateInfo> {
 
     public boolean updateById(TemplateInfo templateInfo);
 
+	public IPage<TemplateInfoPageDTO> getTemplatePages(TemplateInfoPageVO templateInfoPageVO );
+    
+
+
 }

+ 11 - 0
icss-service/src/main/java/com/diagbot/service/impl/TemplateInfoServiceImpl.java

@@ -1,13 +1,19 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoPageDTO;
 import com.diagbot.entity.TemplateInfo;
 import com.diagbot.mapper.TemplateInfoMapper;
 import com.diagbot.service.TemplateInfoService;
+import com.diagbot.vo.TemplateInfoPageVO;
+
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -29,5 +35,10 @@ public class TemplateInfoServiceImpl extends ServiceImpl<TemplateInfoMapper, Tem
         return baseMapper.findByDoctorIdTemplate(templateInfo);
     }
 
+	@Override
+	public IPage<TemplateInfoPageDTO> getTemplatePages(TemplateInfoPageVO templateInfoPageVO) {
+		return baseMapper.getTemplatePages(templateInfoPageVO);
+	}
+
 
 }

+ 1 - 1
icss-service/src/main/java/com/diagbot/vo/DoctorInfoVO.java

@@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull;
 @Getter
 @Setter
 public class DoctorInfoVO {
-    @NotNull(message = "请输入科室编码")
+//    @NotNull(message = "请输入科室编码")
     private String deptCode;
     @NotNull(message = "请输入医院编码")
     private String hosptialCode;

+ 1 - 1
icss-service/src/main/java/com/diagbot/vo/GetLastOtherVO.java

@@ -35,7 +35,7 @@ public class GetLastOtherVO {
      * 类型:0:结构化 1:文本模式
      */
 	@ApiModelProperty(value="类型:0:结构化 1:文本模式")
-    private Integer sign = 0;
+    private Integer sign;
 	
 	   
 }

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

@@ -3,6 +3,7 @@ package com.diagbot.vo;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
 import java.util.List;
 
 /**
@@ -14,6 +15,7 @@ import java.util.List;
 @Setter
 public class GetStaticKnowledgeVO {
     //检索内容
+    @NotBlank(message = "请输入检索内容")
     private String InputStr;
     //需要去重的id
     private List<Long> inputIds;

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

@@ -3,6 +3,7 @@ package com.diagbot.vo;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
 import java.util.List;
 
 /**
@@ -14,6 +15,7 @@ import java.util.List;
 @Setter
 public class GetStaticVO {
     //检索内容
+    @NotBlank(message = "请输入检索内容")
     private String InputStr;
     //需要去重的id
     private List<Long> inputIds;

+ 10 - 0
icss-service/src/main/java/com/diagbot/vo/HisInquirysVO.java

@@ -23,6 +23,16 @@ import lombok.Setter;
 @Setter
 public class HisInquirysVO {
 	
+    /**
+     * 每页显示条数,默认 10
+     */
+    private long size = 10;
+    
+    /**
+     * 当前页
+     */
+    private long current = 1;
+	
 	/**
      * 医院id
      */

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

@@ -3,6 +3,7 @@ package com.diagbot.vo;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.util.List;
 
@@ -19,7 +20,7 @@ public class RetrievalVO {
     private Integer type;
     @NotNull(message = "请输入病人年龄")
     private Integer age;
-    @NotNull(message = "请输入症状")
+    @NotBlank(message = "请输入检索内容")
     private String InputStr;
     @NotNull(message = "请输入病人性别")
     private Integer sexType;

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

@@ -34,6 +34,12 @@ public class SaveInquiryDetailVO {
     @ApiModelProperty(value="内容字符串")
     private String content;
     
+    /**
+     * 内容字符串json
+     */
+    @ApiModelProperty(value="内容字符串json")
+    private String contentJson;
+    
     /**
      * 内容字符串纯文本
      */

+ 6 - 1
icss-service/src/main/java/com/diagbot/vo/SaveInquiryToHisDetailVO.java

@@ -13,7 +13,7 @@ import lombok.Setter;
 public class SaveInquiryToHisDetailVO {
 	
 	/**
-     * 类型(1:主诉,2现病史,3其他史,4查体,5化验,6辅检,7诊断,8医嘱)
+     * 类型(1:主诉,2现病史,3其他史,4查体,5化验,6辅检,7诊断,8医嘱,9二次诊断
      */
     private Integer type;
     
@@ -21,6 +21,11 @@ public class SaveInquiryToHisDetailVO {
      * 内容字符串
      */
     private String content;
+    
+    /**
+     * 内容字符串json
+     */
+    private String contentJson;
 
     /**
      * 内容字符串纯文本

+ 20 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateIdVO.java

@@ -0,0 +1,20 @@
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotBlank;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年7月24日 下午1:20:52
+ */
+@Getter
+@Setter
+public class TemplateIdVO {
+
+	@NotBlank(message = "请输入模板id")
+	private String id;
+}

+ 44 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateInfoPageVO.java

@@ -0,0 +1,44 @@
+package com.diagbot.vo;
+
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年7月24日 上午11:06:33
+ */
+@Getter
+@Setter
+public class TemplateInfoPageVO extends Page{
+
+	/**
+     * 医生id
+     */
+	@NotNull(message = "请输入医生id")
+    private Long doctorId;
+
+    /**
+     * 医院编码
+     */
+	@NotNull(message = "请输入医院Id")
+    private Long hospitalId;
+	/**
+	 * 部门id
+	 */
+	@NotNull(message = "请输入部门id")
+	private Long hospitalDeptId;//部门id
+	
+//	@NotBlank(message = "请输入模板类型")
+	private String type;//模板类型
+	
+	private List<Integer> sex;//性别
+}

+ 2 - 1
icss-service/src/main/java/com/diagbot/web/InquiryInfoController.java

@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.GetEvaluationScalesDTO;
 import com.diagbot.dto.GetEvaluationsDTO;
@@ -78,7 +79,7 @@ public class InquiryInfoController {
     @ApiOperation(value = "历史病历列表[by:rengb]")
     @PostMapping("/hisInquirys")
     @SysLogger("hisInquirys")
-    public RespDTO<List<HisInquiryDTO>> hisInquirys(@Valid @RequestBody HisInquirysVO hisInquirysVO) {
+    public RespDTO<IPage<HisInquiryDTO>> hisInquirys(@Valid @RequestBody HisInquirysVO hisInquirysVO) {
         return RespDTO.onSuc(inquiryInfoFacade.hisInquirys(hisInquirysVO));
     }
     

+ 36 - 9
icss-service/src/main/java/com/diagbot/web/TemplateInfoController.java

@@ -1,26 +1,33 @@
 package com.diagbot.web;
 
 
+import java.util.List;
+
+import javax.validation.Valid;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+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 com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoPageDTO;
 import com.diagbot.entity.TemplateInfo;
 import com.diagbot.facade.TemplateInfoFacade;
+import com.diagbot.vo.TemplateIdVO;
+import com.diagbot.vo.TemplateInfoPageVO;
 import com.diagbot.vo.TemplateInfoRevampVO;
 import com.diagbot.vo.TemplateInfoVO;
 import com.diagbot.vo.TemplateInfosIdVO;
 import com.diagbot.vo.TemplateInfosVO;
+
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-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;
 
 /**
  * @author wangfeng
@@ -83,5 +90,25 @@ public class TemplateInfoController {
 
         return RespDTO.onSuc(res);
     }
+    
+    @ApiOperation(value = "分页查询病历模板列表[by:wangfeng]",
+            notes = "doctorId: 医生id<br>" + "dospitalId:医院编码<br>" + "deptId:部门id<br>" + "type:模式<br> sex:性别")
+    @PostMapping("/getTemplatePageAlls")
+    @SysLogger("getTemplatePageAlls")
+    public RespDTO<IPage<TemplateInfoPageDTO>> getTemplatePageAll(@Valid @RequestBody TemplateInfoPageVO templateInfoPageVO) {
 
+    	IPage<TemplateInfoPageDTO> data = templateInfoFacade.getTemplatePageAlls(templateInfoPageVO,templateInfoPageVO);
+
+        return RespDTO.onSuc(data);
+    }
+    
+    @ApiOperation(value = "根据模板id获取病历模板内容[by:wangfeng]",notes = "id: 请输入模板id")
+    @PostMapping("/getTemplateIdAlls")
+    @SysLogger("getTemplateIdAlls")
+    public RespDTO<TemplateInfoDTO> getTemplateIdAll(@Valid @RequestBody TemplateIdVO templateIdVO) {
+
+    	TemplateInfoDTO data = templateInfoFacade.getTemplateIdAlls(templateIdVO);
+
+        return RespDTO.onSuc(data);
+    }
 }

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

@@ -13,15 +13,9 @@
         <result column="inquiry_id" property="inquiryId" />
         <result column="type" property="type" />
         <result column="content" property="content" />
+        <result column="content_json" property="contentJson" />
         <result column="content_value" property="contentValue" />
         <result column="remark" property="remark" />
     </resultMap>
     
-    <insert id="saveInquiryDetails" parameterType="list">
-    	insert into icss_inquiry_detail(inquiry_id,type,content,content_value) values
-    	<foreach collection="list" separator="," item="detail">
-    		(#{detail.inquiryId},#{detail.type},#{detail.content},#{detail.contentValue})
-    	</foreach>
-    </insert>
-
 </mapper>

+ 4 - 1
icss-service/src/main/resources/mapper/InquiryInfoMapper.xml

@@ -29,7 +29,10 @@
 		FROM icss_inquiry_info a JOIN icss_inquiry_detail b 
 		on a.id=b.inquiry_id
 		where a.hospital_id=#{hospitalId} and a.patient_id=#{patientId}
-		and a.sign=#{sign} and b.type=3 and a.is_deleted='N' 
+        <if test="sign != null and sign != ''">
+            and a.sign=#{sign}
+        </if>
+		and b.type=3 and a.is_deleted='N'
 		and b.is_deleted='N' 
 		group by a.id
 		ORDER BY a.gmt_create desc

+ 64 - 24
icss-service/src/main/resources/mapper/TemplateInfoMapper.xml

@@ -2,39 +2,41 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.diagbot.mapper.TemplateInfoMapper">
 
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.diagbot.entity.TemplateInfo">
-        <id column="id" property="id" />
-        <result column="is_deleted" property="isDeleted" />
-        <result column="gmt_create" property="gmtCreate" />
-        <result column="gmt_modified" property="gmtModified" />
-        <result column="creator" property="creator" />
-        <result column="modifier" property="modifier" />
-        <result column="name" property="name" />
-        <result column="doctor_id" property="doctorId" />
-        <result column="hospital_dept_id" property="hospitalDeptId" />
-        <result column="hospital_id" property="hospitalId" />
-        <result column="sex" property="sex" />
-        <result column="type" property="type" />
-        <result column="preview" property="preview" />
-        <result column="data_json" property="dataJson" />
-        <result column="remark" property="remark" />
-    </resultMap>
-    <!--根据医生id查询该医生保存的病历模板 -->
+	<!-- 通用查询映射结果 -->
+	<resultMap id="BaseResultMap" type="com.diagbot.entity.TemplateInfo">
+		<id column="id" property="id" />
+		<result column="is_deleted" property="isDeleted" />
+		<result column="gmt_create" property="gmtCreate" />
+		<result column="gmt_modified" property="gmtModified" />
+		<result column="creator" property="creator" />
+		<result column="modifier" property="modifier" />
+		<result column="name" property="name" />
+		<result column="doctor_id" property="doctorId" />
+		<result column="hospital_dept_id" property="hospitalDeptId" />
+		<result column="hospital_id" property="hospitalId" />
+		<result column="sex" property="sex" />
+		<result column="type" property="type" />
+		<result column="preview" property="preview" />
+		<result column="data_json" property="dataJson" />
+		<result column="remark" property="remark" />
+	</resultMap>
+	<!--根据医生id查询该医生保存的病历模板 -->
 	<select id="findByDoctorIdTemplate" resultType="com.diagbot.dto.TemplateInfoDTO">
-	SELECT
+		SELECT
 		id AS id,
 		gmt_create AS gmtCreate,
 		creator AS creator,
-		NAME AS modeName,
+		NAME AS
+		modeName,
 		doctor_id AS doctorId,
 		hospital_id AS hospitalId,
 		hospital_dept_id As hospitalDeptId,
 		TYPE AS modeType,
-		preview AS preview,
+		preview AS
+		preview,
 		data_json AS dataJson,
 		remark AS remark
-	FROM
+		FROM
 		icss_template_info WHERE is_deleted = "N"
 		<if test="id != null and id != ''">
 			and id = #{id}
@@ -42,7 +44,7 @@
 		<if test="name != null and name != ''">
 			and name = #{name}
 		</if>
-	    <if test="hospitalDeptId != null and hospitalDeptId != ''">
+		<if test="hospitalDeptId != null and hospitalDeptId != ''">
 			and hospital_dept_id = #{hospitalDeptId}
 		</if>
 		<if test="doctorId != null and doctorId != ''">
@@ -57,4 +59,42 @@
 		ORDER BY gmt_create DESC
 
 	</select>
+	<select id="getTemplatePages" resultType="com.diagbot.dto.TemplateInfoPageDTO">
+		SELECT
+		id AS id,
+		gmt_create AS gmtCreate,
+		creator AS creator,
+		NAME AS
+		name,
+		doctor_id AS doctorId,
+		hospital_id AS hospitalId,
+		hospital_dept_id
+		As hospitalDeptId,
+		TYPE AS type,
+		sex AS sex,
+		preview AS preview,
+		remark AS
+		remark
+		FROM
+		icss_template_info WHERE is_deleted = "N"
+		<if test="hospitalDeptId != null ">
+			and hospital_dept_id = #{hospitalDeptId}
+		</if>
+		<if test="doctorId != null ">
+			and doctor_id = #{doctorId}
+		</if>
+		<if test="hospitalId != null">
+			and hospital_id = #{hospitalId}
+		</if>
+		<if test="type != null and type != ''">
+			and type = #{type}
+		</if>
+		and sex in
+		<foreach collection="sex" item="sexNew" open="(" close=")"
+			separator=",">
+			#{sexNew}
+		</foreach>
+		ORDER BY gmt_create DESC
+
+	</select>
 </mapper>

+ 1 - 0
icssman-service/src/main/java/com/diagbot/dto/QuestionDTO.java

@@ -42,6 +42,7 @@ public class QuestionDTO {
     private List<QuestionDetail> questionDetailList = new ArrayList<>(); //标签明细表
     private List<QuestionDTO> questionMapping = new ArrayList<>();     //下级标签
     private Integer disType;//诊断类型
+    private Integer specFlag;//特殊标记(0:没有标记,1:主诉高亮,2:诱因记录)
 //    private List<ScaleContentDTO> scale = new ArrayList<>();
     private String remark;//备注
 }

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

@@ -159,6 +159,11 @@ public class QuestionPageDTO implements Serializable {
 
     private String formulaCode; //公式编码
 
+    /**
+     * 特殊标记(0:没有标记,1:主诉高亮,2:诱因记录)
+     */
+    private Integer specFlag;
+
     /**
      * 备注
      */

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

@@ -160,6 +160,11 @@ public class QuestionInfo implements Serializable {
      */
     private String formulaCode;
 
+    /**
+     * 特殊标记(0:没有标记,1:主诉高亮,2:诱因记录)
+     */
+    private Integer specFlag;
+
     /**
      * 备注
      */

+ 1 - 0
icssman-service/src/main/java/com/diagbot/entity/wrapper/QuestionWrapper.java

@@ -42,6 +42,7 @@ public class QuestionWrapper implements Serializable {
     private Integer showInfo; //是否显示i
     private String joint;     //标签连接符
     private String formulaCode; //公式编码
+    private Integer specFlag;//特殊标记(0:没有标记,1:主诉高亮,2:诱因记录)
     private String remark; //备注
     private List<QuestionDetail> questionDetails = new ArrayList<>(); //明细
     private List<QuestionMappingWrapper> questionMappings = new ArrayList<>(); //映射关系

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

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

+ 57 - 6
icssman-service/src/main/java/com/diagbot/facade/LisMappingFacade.java

@@ -3,23 +3,29 @@ package com.diagbot.facade;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.client.KnowledgemanServiceClient;
 import com.diagbot.client.UserServiceClient;
+import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.LisMappingPageDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.LisMapping;
 import com.diagbot.entity.QuestionInfo;
+import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.QuestionTypeEnum;
+import com.diagbot.enums.TagTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.LisMappingService;
 import com.diagbot.service.impl.LisMappingServiceImpl;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.ListUtil;
+import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.IdListVO;
 import com.diagbot.vo.IdVO;
+import com.diagbot.vo.IndexVO;
 import com.diagbot.vo.LisMappingPageVO;
 import com.diagbot.vo.LisMappingVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -47,6 +53,8 @@ public class LisMappingFacade extends LisMappingServiceImpl {
     private CacheFacade cacheFacade;
     @Autowired
     private QuestionFacade questionFacade;
+    @Autowired
+    private KnowledgemanServiceClient knowledgemanServiceClient;
 
     /**
      * 化验公表映射分页信息
@@ -97,6 +105,55 @@ public class LisMappingFacade extends LisMappingServiceImpl {
             }
             lisMappingQueryWrapper.eq("item_name", lisMappingVO.getItemName());
         }
+
+        //验证化验大小项标签是否存在
+        QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
+        questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
+                eq("type", QuestionTypeEnum.Lis.getKey()).
+                eq("tag_type", TagTypeEnum.T7.getKey()).
+                eq("name", lisMappingVO.getMealName());
+        QuestionInfo lisQuestion = questionFacade.getOne(questionInfoQueryWrapper);
+        if (lisQuestion == null) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "化验套餐项【" + lisMappingVO.getMealName() + "】标签不存在");
+        }
+        if (StringUtil.isNotBlank(lisMappingVO.getItemName())) {
+            questionInfoQueryWrapper = new QueryWrapper<>();
+            questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
+                    eq("type", QuestionTypeEnum.Lis.getKey()).
+                    eq("tag_type", TagTypeEnum.T1.getKey()).
+                    eq("name", lisMappingVO.getItemName());
+            QuestionInfo lisDetailQuestion = questionFacade.getOne(questionInfoQueryWrapper);
+            if (lisDetailQuestion == null) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "化验明细项【" + lisMappingVO.getItemName() + "】标签不存在");
+            }
+        }
+
+        //验证医学术语是否存在
+        IndexVO indexVO = new IndexVO();
+        indexVO.setName(lisMappingVO.getMealName());
+        indexVO.setType(ConceptTypeEnum.Lis.getKey());
+        RespDTO<List<ConceptBaseDTO>> listRespDTO = knowledgemanServiceClient.index(indexVO);
+        RespDTOUtil.respNGDeal(listRespDTO, "获取医学术语失败");
+        if (ListUtil.isEmpty(listRespDTO.data)) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "化验套餐项【" + lisMappingVO.getMealName() + "】术语不存在");
+        }
+        if (StringUtil.isNotBlank(lisMappingVO.getItemName())) {
+            indexVO.setName(lisMappingVO.getItemName());
+            indexVO.setType(ConceptTypeEnum.LisDetail.getKey());
+            RespDTO<List<ConceptBaseDTO>> lisDetailRespDTO = knowledgemanServiceClient.index(indexVO);
+            RespDTOUtil.respNGDeal(lisDetailRespDTO, "获取医学术语失败");
+            if (ListUtil.isEmpty(lisDetailRespDTO.data)) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "化验明细项【" + lisMappingVO.getItemName() + "】术语不存在");
+            }
+        }
+        indexVO.setName(lisMappingVO.getUniqueName());
+        indexVO.setType(ConceptTypeEnum.LIS_TABLES.getKey());
+        RespDTO<List<ConceptBaseDTO>> lisTablesRespDTO = knowledgemanServiceClient.index(indexVO);
+        RespDTOUtil.respNGDeal(lisTablesRespDTO, "获取医学术语失败");
+        if (ListUtil.isEmpty(lisTablesRespDTO.data)) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "化验公表项项【" + lisMappingVO.getUniqueName() + "】术语不存在");
+        }
+
         List<LisMapping> lisMappingList = this.list(lisMappingQueryWrapper);
         if (lisMappingList.size() > 1) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "存在多条映射关系,请删除重复映射");
@@ -112,12 +169,6 @@ public class LisMappingFacade extends LisMappingServiceImpl {
         Boolean state = this.saveOrUpdate(lisMapping);
 
         //清除缓存
-        QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
-        questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
-                eq("type", QuestionTypeEnum.Lis.getKey()).
-                eq("tag_type", 7).
-                eq("name", lisMappingVO.getMealName());
-        QuestionInfo lisQuestion = questionFacade.getOne(questionInfoQueryWrapper);
         if (lisQuestion != null) {
             cacheFacade.clearCache(lisQuestion.getId());
         }

+ 17 - 10
icssman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java

@@ -24,7 +24,6 @@ import com.diagbot.entity.QuestionInfo;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.ModuleInfoTypeEnum;
 import com.diagbot.enums.QuestionTypeEnum;
-import com.diagbot.enums.TagTypeEnum;
 import com.diagbot.service.impl.ModuleInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
@@ -365,8 +364,12 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
             for (ModuleDetail moduleDetail : moduleDetailList) {
                 getModuleDetailInfoDTO = new GetModuleDetailInfoDTO();
                 BeanUtil.copyProperties(moduleDetail, getModuleDetailInfoDTO);
-                getModuleDetailInfoDTO.setTagName(pacsCeptMap.get(getModuleDetailInfoDTO.getQuestionId()).getName());
-                getModuleDetailInfoDTOList.add(getModuleDetailInfoDTO);
+                if(pacsCeptMap.get(getModuleDetailInfoDTO.getQuestionId()) != null){
+                    getModuleDetailInfoDTO.setTagName(pacsCeptMap.get(getModuleDetailInfoDTO.getQuestionId()).getName());
+                }
+                if(pacsCeptMap.get(getModuleDetailInfoDTO.getQuestionId()) != null) {//如果标准词库中没有该标签,则不显示
+                    getModuleDetailInfoDTOList.add(getModuleDetailInfoDTO);
+                }
             }
         }else {
             //获取标签信息
@@ -386,12 +389,16 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
                 getModuleDetailInfoDTO = new GetModuleDetailInfoDTO();
                 BeanUtil.copyProperties(moduleDetail, getModuleDetailInfoDTO);
                 if (moduleDetail.getQuestionId() != null) {
-                    getModuleDetailInfoDTO.setTagName(questionInfoMap.get(moduleDetail.getQuestionId()).getTagName());
-                    getModuleDetailInfoDTO.setTagType(questionInfoMap.get(moduleDetail.getQuestionId()).getTagType());
+                    if(questionInfoMap.get(moduleDetail.getQuestionId()) != null){
+                        getModuleDetailInfoDTO.setTagName(questionInfoMap.get(moduleDetail.getQuestionId()).getTagName());
+                        getModuleDetailInfoDTO.setTagType(questionInfoMap.get(moduleDetail.getQuestionId()).getTagType());
+                    }
                 } else {
                     getModuleDetailInfoDTO.setRelationModuleName(moduleInfoMap.get(moduleDetail.getRelationModule()).getName());
                 }
-                getModuleDetailInfoDTOList.add(getModuleDetailInfoDTO);
+                if(questionInfoMap.get(moduleDetail.getQuestionId()) != null || moduleInfoMap.get(moduleDetail.getRelationModule()) != null){//如果标签表中已经删除这条数据,则不再显示该标签
+                    getModuleDetailInfoDTOList.add(getModuleDetailInfoDTO);
+                }
             }
         }
         return getModuleDetailInfoDTOList;
@@ -580,10 +587,10 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
                     .in("id", moduleIds))
                     .stream().map(row ->  row.getName()).collect(Collectors.toList());
             for (String mouduleName: moduleNames) {
-                errMsg.append("该标签已关联").append("【" + mouduleName + "】").append("<br/>");
+                errMsg.append("请先删除关联模板:").append("【" + mouduleName + "】").append("<br/>");
             }
         }
-        StringBuffer titalMsg = new StringBuffer();
+        /*StringBuffer titalMsg = new StringBuffer();
         StringBuffer questionMsg = new StringBuffer();
         List<QuestionInfo> info = questionFacade.getParentQuestion(getQuestiongAndModuleRelationsVO.getQuestionId());
         for (QuestionInfo bean : info) {
@@ -595,9 +602,9 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
                 questionMsg.append("【"+bean.getTagName()+"】");
             }
         }
-        titalMsg.append("该标签已关联父级:").append(questionMsg).append("<br/>").append(errMsg);
+        titalMsg.append("该标签已关联父级:").append(questionMsg).append("<br/>").append(errMsg);*/
         GetQuestiongAndModuleRelationsDTO getQuestiongAndModuleRelationsDTO = new GetQuestiongAndModuleRelationsDTO();
-        getQuestiongAndModuleRelationsDTO.setRelationInfos(titalMsg.append("是否删除?"));
+        getQuestiongAndModuleRelationsDTO.setRelationInfos(errMsg);
         return getQuestiongAndModuleRelationsDTO;
     }
 

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

@@ -7,6 +7,7 @@ import com.diagbot.client.KnowledgemanServiceClient;
 import com.diagbot.client.UserServiceClient;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.GetQuestionInfoDTO;
+import com.diagbot.dto.GetQuestiongAndModuleRelationsDTO;
 import com.diagbot.dto.QuestionDTO;
 import com.diagbot.dto.QuestionPageDTO;
 import com.diagbot.dto.RespDTO;
@@ -39,6 +40,7 @@ import com.diagbot.vo.ConceptExistVO;
 import com.diagbot.vo.DeleteQuestionVO;
 import com.diagbot.vo.GetQuestionIdsByTypeVO;
 import com.diagbot.vo.GetQuestionInfoVO;
+import com.diagbot.vo.GetQuestiongAndModuleRelationsVO;
 import com.diagbot.vo.IndexIcssVO;
 import com.diagbot.vo.IndexLexiconVO;
 import com.diagbot.vo.QuestionIdsVO;
@@ -515,7 +517,14 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
                         sb.toString());
             }
-
+            //模板关联
+            GetQuestiongAndModuleRelationsVO getQuestiongAndModuleRelationsVO = new GetQuestiongAndModuleRelationsVO();
+            getQuestiongAndModuleRelationsVO.setQuestionId(Long.parseLong(id));
+            GetQuestiongAndModuleRelationsDTO getQuestiongAndModuleRelationsDTO = moduleInfoFacade.getQuestiongAndModuleRelations(getQuestiongAndModuleRelationsVO);
+            if(null != getQuestiongAndModuleRelationsDTO && StringUtil.isNotBlank(getQuestiongAndModuleRelationsDTO.getRelationInfos().toString())){
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
+                        getQuestiongAndModuleRelationsDTO.getRelationInfos().toString());
+            }
             //删除自身
             this.deleteByIds(paramMap);
             //删除明细

+ 1 - 1
knowledgeman-service/pom.xml

@@ -209,7 +209,7 @@
                     <forceTags>true</forceTags>
                     <!--镜像的FROM,使用压缩的小镜像-->
                     <baseImage>frolvlad/alpine-oraclejre8:slim</baseImage>
-                    <entryPoint>["java", "-jar", "-Xms256m", "-Xmx1024m", "-Duser.timezone=GMT+8", "/${project.build.finalName}.jar"]</entryPoint>
+                    <entryPoint>["java", "-jar", "-Xms256m", "-Xmx2048m", "-Duser.timezone=GMT+8", "/${project.build.finalName}.jar"]</entryPoint>
                     <resources>
                         <resource>
                             <targetPath>/</targetPath>

+ 19 - 0
knowledgeman-service/src/main/java/com/diagbot/client/AIServiceClient.java

@@ -0,0 +1,19 @@
+package com.diagbot.client;
+
+import com.diagbot.client.bean.Response;
+import com.diagbot.client.bean.ResponseData;
+import com.diagbot.client.hystrix.AIServiceHystrix;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/8/20 15:20
+ */
+@FeignClient(name = "AI", url = "${ai.server.address}", fallback = AIServiceHystrix.class)
+public interface AIServiceClient {
+
+    @PostMapping(value = "/push-web/cache_file_manager/create_file")
+    Response<ResponseData> createFile();
+}

+ 159 - 0
knowledgeman-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
knowledgeman-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
knowledgeman-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;
+    }
+
+}

+ 29 - 0
knowledgeman-service/src/main/java/com/diagbot/client/bean/ResponseData.java

@@ -0,0 +1,29 @@
+package com.diagbot.client.bean;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by fyeman on 2018/2/2.
+ */
+@Getter
+@Setter
+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, JSONObject> scale;   //量表内容
+    private Map<String, JSONObject> managementEvaluation;   //管理评估
+    private Map<String, Map<String, String>> inputs = new HashMap<>(10, 0.5f);
+}

+ 132 - 0
knowledgeman-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
knowledgeman-service/src/main/java/com/diagbot/client/hystrix/AIServiceHystrix.java

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

+ 1 - 0
knowledgeman-service/src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -32,6 +32,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/concept/getConceptPacInfos").permitAll()
                 .antMatchers("/concept/piyinUp").permitAll()
                 .antMatchers("/file/uploadImage").permitAll()
+                .antMatchers("/reload/createFile").permitAll()
                 .antMatchers("/dictionaryInfo/getList").permitAll()
                 .antMatchers("/commonconcept/getConceptMapByNameAndType").permitAll()
                 .antMatchers("/commonconcept/index").permitAll()

+ 1 - 0
knowledgeman-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -95,6 +95,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/concept/getConceptPacInfos", request)
                 || matchers("/concept/piyinUp", request)
                 || matchers("/file/uploadImage", request)
+                || matchers("/reload/createFile", request)
                 || matchers("/dictionaryInfo/getList", request)
                 || matchers("/commonconcept/getConceptMapByNameAndType", request)
                 || matchers("/commonconcept/index", request)

+ 5 - 0
knowledgeman-service/src/main/java/com/diagbot/dto/RelationNodeDTO.java

@@ -74,6 +74,11 @@ public class RelationNodeDTO {
 	 */
 	private String relationName;
 	
+	/**
+     * 状态:Y-已删除,N-启用中
+     */
+	private String isDeletedConcept;
+	
 	/**
 	 * 下一级概念
 	 */

+ 35 - 19
knowledgeman-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -142,10 +142,15 @@ public class ConceptFacade extends ConceptServiceImpl {
      * @return
      */
     public List<GetAllConceptDTO> getAllConcept(GetAllConceptVO getAllConceptVO) {
+    	List<GetAllConceptDTO> getAllConceptDTOList = Lists.newArrayList();
+    	if(StringUtil.isBlank(getAllConceptVO.getName())){
+    		return getAllConceptDTOList;
+    	}
+    	
         QueryWrapper<LibraryInfo> libraryInfoQe = new QueryWrapper<LibraryInfo>();
         libraryInfoQe.eq("is_deleted", IsDeleteEnum.N.getKey());
         libraryInfoQe.eq(getAllConceptVO.getIsConcept() != null, "is_concept", getAllConceptVO.getIsConcept());
-        libraryInfoQe.like(StringUtil.isNotBlank(getAllConceptVO.getName()), "name", getAllConceptVO.getName());
+        libraryInfoQe.like("name", getAllConceptVO.getName());
         List<LibraryInfo> libraryInfoList = libraryinfoFacade.list(libraryInfoQe);
 
         //过滤掉非概念术语
@@ -178,7 +183,7 @@ public class ConceptFacade extends ConceptServiceImpl {
             }).collect(Collectors.toList());
         }*/
 
-        List<GetAllConceptDTO> getAllConceptDTOList = BeanUtil.listCopyTo(libraryInfoList, GetAllConceptDTO.class);
+        getAllConceptDTOList = BeanUtil.listCopyTo(libraryInfoList, GetAllConceptDTO.class);
         getAllConceptDTOList.forEach(i -> {
             i.setType(LexiconTypeEnum.getName(i.getTypeId().intValue()));
             i.setNameAndType(i.getName() + "(" + i.getType() + ")");
@@ -195,11 +200,14 @@ public class ConceptFacade extends ConceptServiceImpl {
      */
     public List<GetAllForRelationDTO> getAllForRelation(GetAllForRelationVO getAllForRelationVO) {
         List<GetAllForRelationDTO> retList = new ArrayList<>();
+        if(StringUtil.isBlank(getAllForRelationVO.getName())&&getAllForRelationVO.getTypeId()==null){
+        	return retList;
+        }
 
         QueryWrapper<Concept> conceptQe = new QueryWrapper<>();
         conceptQe.eq("is_deleted", IsDeleteEnum.N.getKey());
-        conceptQe.like(StringUtil.isNotEmpty(getAllForRelationVO.getName()), "lib_name", getAllForRelationVO.getName());
-        conceptQe.eq(getAllForRelationVO.getTypeId() != null, "lib_type", getAllForRelationVO.getTypeId());
+        conceptQe.like(StringUtil.isNotBlank(getAllForRelationVO.getName()),"lib_name", getAllForRelationVO.getName());
+        conceptQe.eq(getAllForRelationVO.getTypeId()!=null,"lib_type", getAllForRelationVO.getTypeId());
         List<Concept> conceptList = list(conceptQe);
 
         Map<Long, Long> reCouMap = new HashMap<>();
@@ -264,7 +272,7 @@ public class ConceptFacade extends ConceptServiceImpl {
     	conceptQe.like(StringUtil.isNotBlank(getAllInformationVO.getName()),"lib_name", getAllInformationVO.getName());
     	conceptQe.eq(StringUtil.isNotBlank(getAllInformationVO.getType()),"lib_type", LexiconTypeEnum.getKey(getAllInformationVO.getType()));
     	conceptQe.eq(StringUtil.isNotBlank(getAllInformationVO.getIsDeleted()),"is_deleted", getAllInformationVO.getIsDeleted());
-    	conceptQe.orderByAsc("is_deleted");
+    	conceptQe.orderByDesc("sort_deleted");
     	conceptQe.orderByDesc("gmt_modified");
     	conceptQe.orderByDesc("id");
     	IPage<Concept> iPage = this.page(conceptPage, conceptQe);
@@ -510,6 +518,8 @@ public class ConceptFacade extends ConceptServiceImpl {
                     } else {
                         throw new CommonException(CommonErrorCode.RPC_ERROR, "该数据已经建立且处于已删除状态,可前往列表中恢复该条数据!");
                     }
+                }else if(addConceptInfoVO.getConceptId().intValue()!=ckConceptId){
+                	throw new CommonException(CommonErrorCode.RPC_ERROR, lineNumStr + "标准术语已被占用!");
                 }
             } else if (addConceptInfoVO.getLineNum() == null && addConceptInfoVO.getConceptId() == null && concept != null
                     || libraryInfoList.stream().filter(i -> i.getConceptId().intValue() == ckConceptId).count() == 1) {
@@ -559,7 +569,7 @@ public class ConceptFacade extends ConceptServiceImpl {
         }
         libraryInfoMain.setIsConcept(1);
         libraryInfoMain.setRemark(addConceptInfoDetailVOMain.getRemark());
-        libraryInfoMain.setSpell(libraryInfoMain.getSpell());
+        libraryInfoMain.setSpell(addConceptInfoDetailVOMain.getSpell());
         libraryInfoMain.setConceptId(conceptId);
         libraryInfoMain.setGmtModified(now);
         libraryInfoMain.setModifier(currentUser);
@@ -808,9 +818,17 @@ public class ConceptFacade extends ConceptServiceImpl {
         
         Map<String,Lexicon> lexiconMap = lexiconFacade.list().stream().collect(Collectors.toMap(Lexicon::getName, i->i));
         
-        addConceptInfoVOList.forEach(i -> {
-        	i = checkImConceptInfo(i,libraryInfoListMap,lexiconMap);
-        });
+        String ckmsg = null;
+        for(AddConceptInfoVO addConceptInfoVO : addConceptInfoVOList){
+        	ckmsg = checkImConceptInfo(addConceptInfoVO,libraryInfoListMap,lexiconMap);
+        	if(StringUtil.isNotBlank(ckmsg)){
+        		sbf.append("第").append(addConceptInfoVO.getLineNum()).append("行").append(ckmsg).append("<br/>");
+        	}
+        }
+        
+        if (sbf.length() > 0) {
+            throw new CommonException(CommonErrorCode.RPC_ERROR, sbf.toString());
+        }
         
         saveAddConceptInfoVOList(addConceptInfoVOList);
 
@@ -824,27 +842,25 @@ public class ConceptFacade extends ConceptServiceImpl {
      * @param lexiconMap
      * @return
      */
-    public AddConceptInfoVO checkImConceptInfo(AddConceptInfoVO addConceptInfoVO,Map<String,List<LibraryInfo>> libraryInfoListAllMap,Map<String,Lexicon> lexiconMap) {
+    public String checkImConceptInfo(AddConceptInfoVO addConceptInfoVO,Map<String,List<LibraryInfo>> libraryInfoListAllMap,Map<String,Lexicon> lexiconMap) {
     	String currentUser = UserUtils.getCurrentPrincipleID();
         Date now = DateUtil.now();
     	
     	Concept concept = new Concept();
     	ConceptCommon conceptCommon = null;
     	List<LibraryInfo> libraryInfoList = Lists.newArrayList();
-    	
-        String lineNumStr = "第" + addConceptInfoVO.getLineNum() + "行";
 
         List<AddConceptInfoDetailVO> addConceptInfoDetailVOMainList = addConceptInfoVO.getDetailList().stream().filter(i -> i.getIsConcept() == 1).collect(Collectors.toList());
         if (addConceptInfoDetailVOMainList.size() == 0) {
-            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, lineNumStr + "同义词中缺少标准词本体!");
+        	return "同义词中缺少标准词本体!";
         }
         if (addConceptInfoDetailVOMainList.size() > 1) {
-            throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, lineNumStr + "标准术语只能有一个!");
+        	return "标准术语只能有一个!";
         }
         
         Lexicon lexicon = lexiconMap.get(addConceptInfoVO.getType());
         if (lexicon == null) {
-            throw new CommonException(CommonErrorCode.NOT_EXISTS, lineNumStr + "数据有误,该类型信息在数据库中不存在!");
+        	return "数据有误,该类型信息在数据库中不存在!";
         }
         Long typeId = lexicon.getId();
         concept.setLibType(typeId);
@@ -887,7 +903,7 @@ public class ConceptFacade extends ConceptServiceImpl {
             addConceptInfoVO.setConceptId(conceptId);
 
             if (libraryInfoMain.getIsConcept()!=1&&extLibraryInfoList.stream().filter(i -> i.getConceptId().intValue() == libraryInfoMain.getConceptId().intValue()).count() == 1) {
-            	throw new CommonException(CommonErrorCode.RPC_ERROR, lineNumStr + "标准术语已作为同义词被占用!");
+            	return "标准术语已作为同义词被占用!";
             }
         }
 
@@ -918,14 +934,14 @@ public class ConceptFacade extends ConceptServiceImpl {
 
         if (sbf.length() > 0) {
             sbf.append("已被占用");
-            throw new CommonException(CommonErrorCode.RPC_ERROR, sbf.toString());
+            return sbf.toString();
         }
         
         addConceptInfoVO.setConcept(concept);
         addConceptInfoVO.setConceptCommon(conceptCommon);
         addConceptInfoVO.setLibraryInfoList(libraryInfoList);
 
-        return addConceptInfoVO;
+        return null;
     }
     
     /**
@@ -976,7 +992,7 @@ public class ConceptFacade extends ConceptServiceImpl {
         }
         for(AddConceptInfoVO i : addConceptInfoVOList){
         	if(i.getConceptCommon()!=null){
-        		if(i.getConceptId()!=null&&conceptCommonMap!=null){
+        		if(i.getConceptId()!=null&&conceptCommonMap!=null&&conceptCommonMap.containsKey(i.getConceptId())){
             		i.getConceptCommon().setId(conceptCommonMap.get(i.getConceptId()).getId());
             	}
             	i.getConceptCommon().setConceptId(i.getConcept().getId());

+ 7 - 3
knowledgeman-service/src/main/java/com/diagbot/facade/RelationContactFacade.java

@@ -19,6 +19,7 @@ import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.Relation;
 import com.diagbot.entity.RelationOrder;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
@@ -202,8 +203,9 @@ public class RelationContactFacade extends RelationServiceImpl {
 		relationNodeDTO.setConceptTypeId(concept.getLibType());
 		relationNodeDTO.setConceptTypeName(LexiconTypeEnum.getName(concept.getLibType().intValue()));
 		relationNodeDTO.setConceptNameType(concept.getLibName()+"("+LexiconTypeEnum.getName(concept.getLibType().intValue())+")");
+		relationNodeDTO.setIsDeletedConcept(concept.getIsDeleted());
 		
-		relationNodeDTO.setNodeList(repairRelationDataForQuery(relationContactDetailVO.getConceptId(), relationContactDetailVO.getRelationId(),null));
+		relationNodeDTO.setNodeList(repairRelationDataForQuery(relationContactDetailVO.getConceptId(), relationContactDetailVO.getRelationId(),null,concept.getIsDeleted()));
 		
 		return relationNodeDTO;
 	}
@@ -213,9 +215,10 @@ public class RelationContactFacade extends RelationServiceImpl {
 	 * @param conceptId
 	 * @param relationId
 	 * @param hookConceptIds
+	 * @param isDeletedParent
 	 * @return
 	 */
-	private List<RelationNodeDTO> repairRelationDataForQuery(Long conceptId,Long relationId,List<Long> hookConceptIds){
+	private List<RelationNodeDTO> repairRelationDataForQuery(Long conceptId,Long relationId,List<Long> hookConceptIds,String isDeletedParent){
 		if(hookConceptIds==null){
 			hookConceptIds = new ArrayList<>();
 			hookConceptIds.add(conceptId);
@@ -228,12 +231,13 @@ public class RelationContactFacade extends RelationServiceImpl {
 			i.setConceptNameType(i.getConceptName()+"("+LexiconTypeEnum.getName(i.getConceptTypeId().intValue())+")");
 			i.setParentConceptTypeName(LexiconTypeEnum.getName(i.getParentConceptTypeId().intValue()));
 			i.setParentConceptNameType(i.getParentConceptName()+"("+LexiconTypeEnum.getName(i.getParentConceptTypeId().intValue())+")");
+			i.setIsDeletedConcept(isDeletedParent.equals(IsDeleteEnum.Y.getKey())?IsDeleteEnum.Y.getKey():i.getIsDeletedConcept());
 			
 			if(!hookConceptIds.contains(i.getConceptId())){
 				List<Long> hookConceptIds_ = new ArrayList<>();
 				hookConceptIds_.addAll(hookConceptIds);
 				hookConceptIds_.add(i.getConceptId());
-				i.setNodeList(repairRelationDataForQuery(i.getConceptId(), relationId,hookConceptIds_));
+				i.setNodeList(repairRelationDataForQuery(i.getConceptId(), relationId,hookConceptIds_,i.getIsDeletedConcept()));
 			}
 		}
 		

+ 33 - 0
knowledgeman-service/src/main/java/com/diagbot/facade/ReloadFacade.java

@@ -0,0 +1,33 @@
+package com.diagbot.facade;
+
+import com.diagbot.client.AIServiceClient;
+import com.diagbot.client.bean.Response;
+import com.diagbot.client.bean.ResponseData;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/8/20 15:30
+ */
+@Component
+public class ReloadFacade {
+    @Autowired
+    private AIServiceClient aiServiceClient;
+
+    /**
+     * 词库热加载
+     *
+     * @return
+     */
+    public Boolean createFile() {
+        Response<ResponseData> res = aiServiceClient.createFile();
+        if (res == null) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "词库重新加载失败");
+        }
+        return true;
+    }
+}

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

@@ -0,0 +1,32 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.ReloadFacade;
+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.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/8/20 15:35
+ */
+@RestController
+@Api(value = "热加载API", tags = { "知识库标准化-词库热加载API" })
+@RequestMapping(value = "/reload")
+@SuppressWarnings("unchecked")
+public class ReloadController {
+    @Autowired
+    ReloadFacade reloadFacade;
+
+    @ApiOperation(value = "知识库标准化-词库热加载[by:zhaops]")
+    @PostMapping("/createFile")
+    @SysLogger("createFile")
+    public RespDTO<Boolean> createFile() {
+        return RespDTO.onSuc(reloadFacade.createFile());
+    }
+}

+ 5 - 5
knowledgeman-service/src/main/resources/mapper/ConceptDetailMapper.xml

@@ -20,17 +20,17 @@
     </resultMap>
 
    	<select id="getConceptDetailList" resultType="com.diagbot.dto.GetConceptDetailListDTO">
-   		SELECT b.id concept_id, b.lib_name,b.lib_type as typeId, group_concat(title) title, a.is_deleted, a.modifier, a.gmt_modified
-		FROM kl_concept_detail a ,kl_concept b
-		WHERE   b.is_deleted='N' and a.concept_id=b.id
+        SELECT a.concept_id concept_id, b.lib_name,b.lib_type as typeId, group_concat(title) title, a.is_deleted, a.modifier, a.gmt_modified
+        FROM kl_concept_detail a ,kl_concept b
+        WHERE   b.is_deleted='N' and a.concept_id=b.id
 		<if test="conceptName!=null and conceptName!=''">
 			and b.`lib_name` like concat('%',#{conceptName},'%')
 		</if>
 		<if test="status!=null and status!=''">
 			and a.is_deleted = #{status}
 		</if>
-		group by b.id, b.lib_name
-		ORDER BY a.is_deleted ASC, a.gmt_modified DESC
+        group by a.concept_id
+        ORDER BY a.is_deleted ASC, a.gmt_modified DESC
    	</select>
 
 

+ 1 - 1
knowledgeman-service/src/main/resources/mapper/IndexConfigMapper.xml

@@ -33,7 +33,7 @@
 		AND b.lib_name LIKE CONCAT('%', #{indexConfigVO.diseaseName}, '%')
 	</if>
 	GROUP BY a.disease_id
-	ORDER BY a.gmt_create DESC
+	ORDER BY state ASC,gmtModified DESC
 </select>
 <select id="queryIndexConfigDiseaseName" resultType="com.diagbot.dto.DiseaseInfoDTO">
 	SELECT DISTINCT

+ 2 - 3
knowledgeman-service/src/main/resources/mapper/RelationMapper.xml

@@ -57,6 +57,7 @@
 			d.id AS conceptId,
 			d.lib_name AS conceptName,
 			d.lib_type AS conceptTypeId,
+			d.is_deleted AS isDeletedConcept,
 			c.id AS parentConceptId,
 			c.lib_name AS parentConceptName,
 			c.lib_type AS parentConceptTypeId,
@@ -68,8 +69,6 @@
 		JOIN kl_lexicon_relationship e ON a.relation_id=e.id
 		WHERE 1=1
  		AND a.is_deleted='N' 
- 		AND c.is_deleted='N'
- 		AND d.is_deleted='N'
  		AND e.is_deleted='N'
  		AND a.start_id=#{conceptId} 
  		<if test="relationId!=null">
@@ -204,7 +203,7 @@
 		GROUP BY t2.id) tab
 		where 1=1
 		<if test="name!=null and name!=''">
-			and libNameType like concat('%',#{name},'%')
+			and libName like concat('%',#{name},'%')
 		</if>
 		ORDER BY isDeleted ASC,operTime DESC
     </select>

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

@@ -2,8 +2,11 @@ package com.diagbot.client;
 
 import com.diagbot.client.hystrix.TranServiceHystrix;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.SignInDTO;
 import com.diagbot.dto.SysSetInfoDTO;
 import com.diagbot.vo.HospitalSetVO;
+import com.diagbot.vo.SignInVO;
+
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -24,4 +27,11 @@ public interface TranServiceClient {
      */
     @PostMapping("/sysSet/getSysSetInfoDatas")
     RespDTO<List<SysSetInfoDTO>> getSysSetInfoDatas(@Valid @RequestBody HospitalSetVO hospitalSetVO);
+    
+    /**
+     * @param signInVO
+     * @return
+     */
+    @PostMapping("/patientInfo/signIn")
+    RespDTO<List<SignInDTO>> signIn(@RequestBody SignInVO signInVO);
 }

+ 17 - 4
prec-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java

@@ -1,14 +1,19 @@
 package com.diagbot.client.hystrix;
 
+import java.util.List;
+
+import javax.validation.Valid;
+
+import org.springframework.stereotype.Component;
+
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.SignInDTO;
 import com.diagbot.dto.SysSetInfoDTO;
 import com.diagbot.vo.HospitalSetVO;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
+import com.diagbot.vo.SignInVO;
 
-import javax.validation.Valid;
-import java.util.List;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * @Description: 调用信息对接层服务
@@ -23,4 +28,12 @@ public class TranServiceHystrix implements TranServiceClient {
         log.error("【hystrix】调用{}异常", "getSysSetInfoDatas");
         return null;
     }
+
+	@Override
+	public RespDTO<List<SignInDTO>> signIn(SignInVO signInVO) {
+		log.error("【hystrix】调用{}异常", "signIn");
+		return null;
+	}
+    
+    
 }

+ 10 - 1
prec-service/src/main/java/com/diagbot/dto/ConceptPushDTO.java

@@ -10,8 +10,17 @@ import lombok.Setter;
  */
 @Getter
 @Setter
-public class ConceptPushDTO extends ConceptBaseDTO {
+public class ConceptPushDTO {
+    private Long conceptId; // 概念id
+    private String name;    //界面名称(医生端名称)
+    private String tagName; //系统名称(术语名称)
     private Integer libType;  //词性
     private Long id;
     private Integer type;
+    //客户端界面描述
+    private String description;
+    //是否详细阐述
+    private Integer hasExplain = 0;
+    //详细阐述
+    private String explains;
 }

+ 3 - 0
prec-service/src/main/java/com/diagbot/dto/QuestionDTO.java

@@ -27,6 +27,9 @@ public class QuestionDTO {
     private String labelSuffix = ""; //后置内容
     private String url;    //图片url地址
     private String description; // 客户端界面描述
+    private Integer specFlag;//特殊标记(0:没有标记,1:拼接到主诉)
+    private Integer required;//必填(0:不必填,1:必填)
+    private String explains;//详细阐述
     private Integer exclusionType; //互斥类型
     private List<QuestionDetail> questionDetailList = new ArrayList<>(); //标签明细表
     private List<QuestionDTO> questionMapping = new ArrayList<>();     //下级标签

+ 14 - 1
prec-service/src/main/java/com/diagbot/dto/QuestionUsualDTO.java

@@ -10,6 +10,19 @@ import lombok.Setter;
  */
 @Getter
 @Setter
-public class QuestionUsualDTO extends ConceptBaseDTO{
+public class QuestionUsualDTO {
+    // 概念id
+    private Long conceptId;
+    //医生端名称
+    private String name;
+    //标签id
     private Long questionId;
+    //客户端界面描述
+    private String description;
+    //是否详细阐述
+    private Integer hasExplain = 0;
+    //详细阐述
+    private String explains;
+    //系统名称
+    private String tagName;
 }

+ 9 - 1
prec-service/src/main/java/com/diagbot/dto/RetrievalDTO.java

@@ -11,7 +11,7 @@ import lombok.Setter;
 @Getter
 @Setter
 public class RetrievalDTO {
-    //标签名称
+    //医生端名称
     private String name;
     //标签id
     private Long questionId;
@@ -27,4 +27,12 @@ public class RetrievalDTO {
     private String libTypeName;
     //icss标签type
     private Integer type;
+    //客户端界面描述
+    private String description;
+    //是否详细阐述
+    private Integer hasExplain = 0;
+    //详细阐述
+    private String explains;
+    //系统名称
+    private String tagName;
 }

+ 86 - 0
prec-service/src/main/java/com/diagbot/dto/SignInDTO.java

@@ -0,0 +1,86 @@
+package com.diagbot.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2018/11/19 18:56
+ */
+@ApiModel(value="患者登录接口出参")
+@Getter
+@Setter
+public class SignInDTO{
+	
+	/**
+     * 医院编码
+     */
+	@ApiModelProperty(value="医院编码")
+    private String hospitalCode;
+
+    /**
+     * 医院名称
+     */
+	@ApiModelProperty(value="医院名称")
+    private String hospitalName;
+	
+	/**
+     * 医院科室编码
+     */
+	@ApiModelProperty(value="医院科室编码")
+    private String hospitalDeptCode;
+
+    /**
+     * 医院科室名称
+     */
+	@ApiModelProperty(value="医院科室名称")
+    private String hospitalDeptName;
+	
+	/**
+     * 医生编码
+     */
+	@ApiModelProperty(value="医生编码")
+    private String doctorCode;
+
+    /**
+     * 医生姓名
+     */
+	@ApiModelProperty(value="医生姓名")
+    private String doctorName;
+	
+	/**
+     * 病人编号
+     */
+	@ApiModelProperty(value="病人编号")
+    private String patientCode;
+	
+	/**
+     * 病人姓名
+     */
+	@ApiModelProperty(value="病人姓名")
+    private String patientName;
+	
+	/**
+	 * 挂号时间
+	 */
+	@ApiModelProperty(value="挂号时间")
+	private String recordTime;
+	
+	/**
+     * 就诊号
+     */
+	@ApiModelProperty(value="就诊号")
+	private String recordId;
+	
+	/**
+     * 挂号信息
+     */
+	@ApiModelProperty(value="挂号信息")
+	private String registerNum;
+	
+
+		
+}

+ 15 - 0
prec-service/src/main/java/com/diagbot/entity/QuestionInfo.java

@@ -92,6 +92,21 @@ public class QuestionInfo implements Serializable {
      */
     private String url;
 
+    /**
+     * 特殊标记(0:没有标记,1:拼接到主诉)
+     */
+    private Integer specFlag;
+
+    /**
+     * 必填(0:不必填,1:必填)
+     */
+    private Integer required;
+
+    /**
+     * 详细阐述
+     */
+    private String explains;
+
     /**
      * 备注
      */

+ 63 - 29
prec-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java

@@ -1,12 +1,5 @@
 package com.diagbot.facade;
 
-import java.util.Date;
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.GetInquiryDetailDTO;
 import com.diagbot.dto.GetInquiryDetailImgDTO;
@@ -26,12 +19,21 @@ import com.diagbot.service.impl.InquiryInfoServiceImpl;
 import com.diagbot.service.impl.InquiryReportServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.GetInquiryDetailVO;
 import com.diagbot.vo.HisInquirysVO;
 import com.diagbot.vo.RecordCheckVO;
 import com.diagbot.vo.SaveInquiryVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author: zhoutg
@@ -40,6 +42,9 @@ import com.diagbot.vo.SaveInquiryVO;
 @Component
 public class InquiryInfoFacade extends InquiryInfoServiceImpl {
 
+    @Value("${imageUrl.prefix}")
+    private String imageUrlPrefix;
+
     @Autowired
     private InquiryDetailFacade inquiryDetailFacade;
     @Autowired
@@ -111,18 +116,18 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
 
         return saveInquiryDTO;
     }
-    
+
     /**
      * 问诊记录检查确认
-     * 
+     *
      * @param recordCheckVO
      * @return
      */
-    public RecordCheckDTO recordCheck(RecordCheckVO recordCheckVO){
-    	RecordCheckDTO recordCheckDTO = new RecordCheckDTO();
-    	int type = 1;
-    	
-    	QueryWrapper<InquiryInfo> inquiryInfoQe = new QueryWrapper<>();
+    public RecordCheckDTO recordCheck(RecordCheckVO recordCheckVO) {
+        RecordCheckDTO recordCheckDTO = new RecordCheckDTO();
+        int type = 1;
+
+        QueryWrapper<InquiryInfo> inquiryInfoQe = new QueryWrapper<>();
         inquiryInfoQe.eq("is_deleted", IsDeleteEnum.N.getKey());
         inquiryInfoQe.eq("hospital_id", recordCheckVO.getHospitalId());
         inquiryInfoQe.eq("hospital_dept_id", recordCheckVO.getHospitalDeptId());
@@ -130,23 +135,23 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
         inquiryInfoQe.eq("patient_id", recordCheckVO.getPatientId());
         inquiryInfoQe.eq("inquiry_code", recordCheckVO.getInquiryCode());
         InquiryInfo inquiryInfo = this.getOne(inquiryInfoQe);
-        
-        if(inquiryInfo!=null){
-        	QueryWrapper<InquiryDetail> inquiryDetailQe = new QueryWrapper<>();
+
+        if (inquiryInfo != null) {
+            QueryWrapper<InquiryDetail> inquiryDetailQe = new QueryWrapper<>();
             inquiryDetailQe.eq("inquiry_id", inquiryInfo.getId());
-            if(inquiryDetailFacade.count(inquiryDetailQe)>0){
-            	type = type + 2;
+            if (inquiryDetailFacade.count(inquiryDetailQe) > 0) {
+                type = type + 2;
             }
-        	
+
             QueryWrapper<InquiryEvaluator> inquiryEvaluatorQe = new QueryWrapper<>();
             inquiryEvaluatorQe.eq("inquiry_id", inquiryInfo.getId());
-            if(inquiryEvaluatorFacade.count(inquiryEvaluatorQe)>0){
-            	type = type + 3;
+            if (inquiryEvaluatorFacade.count(inquiryEvaluatorQe) > 0) {
+                type = type + 3;
             }
         }
-    	
+
         recordCheckDTO.setType(type);
-    	return recordCheckDTO;
+        return recordCheckDTO;
     }
 
     /**
@@ -184,6 +189,8 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
             inquiryInfoQe.orderByDesc("inquiry_code");
         } else if (hisInquirysVO.getOrderType() == 4) {
             inquiryInfoQe.orderByAsc("inquiry_code");
+        } else{
+        	inquiryInfoQe.orderByDesc("gmt_modified");
         }
 
         List<HisInquiryDTO> hisInquiryDTOList = BeanUtil.listCopyTo(list(inquiryInfoQe), HisInquiryDTO.class);
@@ -231,6 +238,9 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
         inquiryInfoQe.eq("inquiry_code", getInquiryDetailVO.getInquiryCode());
 
         InquiryInfo inquiryInfo = this.getOne(inquiryInfoQe);
+        if (inquiryInfo == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该病历不存在!");
+        }
 
         QueryWrapper<InquiryDetail> inquiryDetailQe = new QueryWrapper<>();
         inquiryDetailQe.eq("inquiry_id", inquiryInfo.getId());
@@ -255,12 +265,36 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
         getInquiryDetailDTO.setInquiryTime(inquiryInfo.getGmtModified());
         getInquiryDetailDTO.setPatientAge(DateUtil.yearCompare(inquiryInfo.getPatientBirthday(), DateUtil.now()));
 
-        getInquiryDetailDTO.setChiefComplaint(inquiryDetailList.get(0).getContentValue());
-        getInquiryDetailDTO.setXbs(inquiryDetailList.get(1).getContentValue());
-        getInquiryDetailDTO.setQts(inquiryDetailList.get(2).getContentValue());
-        getInquiryDetailDTO.setSupplement(inquiryDetailList.get(3).getContentValue());
+        if (ListUtil.isNotEmpty(inquiryDetailList)) {
+            Map<Integer, InquiryDetail> inquiryDetailMap
+                    = EntityUtil.makeEntityMap(inquiryDetailList, "type");
+            if (null != inquiryDetailMap.get(1)) {
+                getInquiryDetailDTO.setChiefComplaint(inquiryDetailMap.get(1).getContentValue());
+            }
+            if (null != inquiryDetailMap.get(2)) {
+                getInquiryDetailDTO.setXbs(inquiryDetailMap.get(2).getContentValue());
+            }
+            if (null != inquiryDetailMap.get(3)) {
+                getInquiryDetailDTO.setQts(inquiryDetailMap.get(3).getContentValue());
+            }
+            if (null != inquiryDetailMap.get(4)) {
+                getInquiryDetailDTO.setSupplement(inquiryDetailMap.get(4).getContentValue());
+            }
+        }
         getInquiryDetailDTO.setPhysicalRes(ListUtil.isNotEmpty(inquiryEvaluatorList) ? inquiryEvaluatorList.get(0).getPhysicalRes() : null);
-        getInquiryDetailDTO.setImageList(BeanUtil.listCopyTo(inquiryReportList, GetInquiryDetailImgDTO.class));
+        if (ListUtil.isNotEmpty(inquiryReportList)) {
+            for (InquiryReport inquiryReport : inquiryReportList) {
+                if (StringUtil.isNotBlank(inquiryReport.getOriginalImage())) {
+                    inquiryReport.setOriginalImage(imageUrlPrefix + inquiryReport.getOriginalImage());
+                }
+
+                if (StringUtil.isNotBlank(inquiryReport.getNarrowImage())) {
+                    inquiryReport.setNarrowImage(imageUrlPrefix + inquiryReport.getNarrowImage());
+                }
+            }
+            getInquiryDetailDTO.setImageList(BeanUtil.listCopyTo(inquiryReportList, GetInquiryDetailImgDTO.class));
+        }
+
 
         return getInquiryDetailDTO;
     }

+ 24 - 4
prec-service/src/main/java/com/diagbot/facade/PatientInfoFacade.java

@@ -1,13 +1,18 @@
 package com.diagbot.facade;
 
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
 import com.diagbot.client.AiptServiceClient;
+import com.diagbot.client.TranServiceClient;
 import com.diagbot.dto.GetTopPatientInfoDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.SignInDTO;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.vo.GetTopPatientInfoVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.web.bind.annotation.RequestBody;
+import com.diagbot.vo.SignInVO;
 
 /**
  * @Description: 患者业务逻辑
@@ -19,6 +24,9 @@ public class PatientInfoFacade {
 
     @Autowired
     private AiptServiceClient aiptServiceClient;
+    
+    @Autowired
+    private TranServiceClient tranServiceClient;
 
     /**
      * 页面顶部病人医生科室信息查询
@@ -26,7 +34,7 @@ public class PatientInfoFacade {
      * @param getTopPatientInfoVO
      * @return
      */
-    public GetTopPatientInfoDTO getTopPatientInfo(@RequestBody GetTopPatientInfoVO getTopPatientInfoVO) {
+    public GetTopPatientInfoDTO getTopPatientInfo(GetTopPatientInfoVO getTopPatientInfoVO) {
         RespDTO<GetTopPatientInfoDTO> respDTO = aiptServiceClient.getTopPatientInfo(getTopPatientInfoVO);
         RespDTOUtil.respNGDealCover(respDTO, "获取页面顶部病人医生科室信息失败");
 
@@ -34,5 +42,17 @@ public class PatientInfoFacade {
 
         return getTopPatientInfoDTO;
     }
+    
+    /**
+     * 患者登录
+     * @param signInVO
+     * @return
+     */
+    public RespDTO<List<SignInDTO>> signIn(SignInVO signInVO) {
+        //RespDTO<List<SignInDTO>> respDTO = tranServiceClient.signIn(signInVO);
+        //RespDTOUtil.respNGDealCover(respDTO, "患者登录失败");
+        return tranServiceClient.signIn(signInVO);
+    }
+    
 
 }

+ 14 - 2
prec-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -12,6 +12,7 @@ import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
+import com.diagbot.util.StringUtil;
 import com.diagbot.vo.PushVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -58,6 +59,10 @@ public class PushFacade {
         if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Symptom.getKey()))) {
             List<ConceptPushDTO> symptom = data.getSymptom();
             if (ListUtil.isNotEmpty(symptom)) {
+                //推理名称=系统名称=术语名称
+                for (ConceptPushDTO symp : symptom) {
+                    symp.setTagName(symp.getName());
+                }
                 List<ConceptPushDTO> symptomDTO = addQuestionId(symptom, 1);
                 pushDTO.setSymptom(symptomDTO);
             }
@@ -74,7 +79,7 @@ public class PushFacade {
      */
     public List<ConceptPushDTO> addQuestionId(List<ConceptPushDTO> concepts, Integer type) {
         QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
-        List<String> nameList = concepts.stream().map(concept -> concept.getName()).collect(Collectors.toList());
+        List<String> nameList = concepts.stream().map(concept -> concept.getTagName()).collect(Collectors.toList());
         questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).in("tag_name", nameList).eq("type", type);
         List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
         if (ListUtil.isNotEmpty(questionInfoList)) {
@@ -82,7 +87,14 @@ public class PushFacade {
             for (ConceptPushDTO concept : concepts) {
                 concept.setType(1);
                 if (questionInfoMap.containsKey(concept.getName())) {
-                    concept.setId(questionInfoMap.get(concept.getName()).getId());
+                    QuestionInfo questionInfo = questionInfoMap.get(concept.getTagName());
+                    concept.setId(questionInfo.getId());
+                    concept.setName(questionInfo.getName());
+                    concept.setDescription(questionInfo.getDescription());
+                    if (StringUtil.isNotBlank(questionInfo.getExplains())) {
+                        concept.setHasExplain(1);
+                        concept.setExplains(questionInfo.getExplains());
+                    }
                 }
             }
         }

+ 16 - 3
prec-service/src/main/java/com/diagbot/facade/QuestionUsualFacade.java

@@ -11,6 +11,7 @@ import com.diagbot.enums.QuestionTypeEnum;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
+import com.diagbot.util.StringUtil;
 import com.diagbot.vo.ConceptUsualVO;
 import com.diagbot.vo.QuestionUsualVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -72,10 +73,22 @@ public class QuestionUsualFacade {
             Map<String, QuestionInfo> questionInfoMap
                     = questionInfoList.stream()
                     .collect(Collectors.toMap(QuestionInfo::getTagName, questionInfo -> questionInfo));
-            questionUsualDTOList = BeanUtil.listCopyTo(conceptBaseDTORespDTO.data, QuestionUsualDTO.class);
+            for (ConceptBaseDTO conceptBaseDTO : conceptBaseDTORespDTO.data) {//将概念id和概念名称放入出参
+                QuestionUsualDTO questionUsualDTO = new QuestionUsualDTO();
+                questionUsualDTO.setTagName(conceptBaseDTO.getName());
+                questionUsualDTO.setConceptId(conceptBaseDTO.getConceptId());
+                questionUsualDTOList.add(questionUsualDTO);
+            }
             for (QuestionUsualDTO questionUsualDTO : questionUsualDTOList) {
-                if (null != questionInfoMap.get(questionUsualDTO.getName())) {
-                    questionUsualDTO.setQuestionId(questionInfoMap.get(questionUsualDTO.getName()).getId());
+                if (null != questionInfoMap.get(questionUsualDTO.getTagName())) {
+                    questionUsualDTO.setTagName(questionInfoMap.get(questionUsualDTO.getTagName()).getTagName());
+                    questionUsualDTO.setName(questionInfoMap.get(questionUsualDTO.getTagName()).getName());
+                    questionUsualDTO.setQuestionId(questionInfoMap.get(questionUsualDTO.getTagName()).getId());
+                    questionUsualDTO.setDescription(questionInfoMap.get(questionUsualDTO.getTagName()).getDescription());
+                    if (StringUtil.isNotBlank(questionInfoMap.get(questionUsualDTO.getTagName()).getExplains())){
+                        questionUsualDTO.setHasExplain(1);
+                        questionUsualDTO.setExplains(questionInfoMap.get(questionUsualDTO.getTagName()).getExplains());
+                    }
                 }
             }
             //如何没有匹配到questionId就移除

+ 7 - 1
prec-service/src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -68,9 +68,15 @@ public class RetrievalFacade {
             for (ConceptRetrievalDTO conceptRetrievalDTO : conceptInfos.data) {
                 retrievalDTO = new RetrievalDTO();
                 retrievalDTO.setConceptId(conceptRetrievalDTO.getSelfId());
-                retrievalDTO.setName(conceptRetrievalDTO.getSelfName());
+                retrievalDTO.setTagName(conceptRetrievalDTO.getSelfName());
                 if (null != questionInfoMap.get(conceptRetrievalDTO.getSelfName())) {//如果匹配到就添加questionId
+                    retrievalDTO.setName(questionInfoMap.get(conceptRetrievalDTO.getSelfName()).getName());
                     retrievalDTO.setQuestionId(questionInfoMap.get(conceptRetrievalDTO.getSelfName()).getId());
+                    retrievalDTO.setDescription(questionInfoMap.get(conceptRetrievalDTO.getSelfName()).getDescription());
+                    if (StringUtil.isNotBlank(questionInfoMap.get(conceptRetrievalDTO.getSelfName()).getExplains())){
+                        retrievalDTO.setHasExplain(1);
+                        retrievalDTO.setExplains(questionInfoMap.get(conceptRetrievalDTO.getSelfName()).getExplains());
+                    }
                 }
                 if (StringUtil.isNotEmpty(conceptRetrievalDTO.getSameName())) {//同义词
                     retrievalDTO.setRetrievalName(conceptRetrievalDTO.getSameName());

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


Деякі файли не було показано, через те що забагато файлів було змінено