فهرست منبع

Merge remote-tracking branch 'origin/dev/precSR' into dev/precSR

zhoutg 5 سال پیش
والد
کامیت
3058016fcb
27فایلهای تغییر یافته به همراه142 افزوده شده و 183 حذف شده
  1. 0 9
      aipt-service/src/main/java/com/diagbot/client/AIServiceClient.java
  2. 1 13
      aipt-service/src/main/java/com/diagbot/client/hystrix/AIServiceHystrix.java
  3. 4 3
      aipt-service/src/main/java/com/diagbot/enums/FeatureTypeEnum.java
  4. 0 15
      aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java
  5. 13 27
      aipt-service/src/main/java/com/diagbot/facade/PushFacade.java
  6. 1 0
      aipt-service/src/main/java/com/diagbot/util/ParamConvertUtil.java
  7. 1 11
      aipt-service/src/main/java/com/diagbot/web/ClinicalController.java
  8. 1 1
      aipt-service/src/main/java/com/diagbot/web/PushController.java
  9. 0 2
      aipt-service/src/main/resources/mapper/ConceptMapper.xml
  10. 2 1
      data-service/src/main/java/com/diagbot/enums/FeatureTypeEnum.java
  11. 2 1
      data-service/src/main/java/com/diagbot/facade/PushFacade.java
  12. 1 1
      data-service/src/main/java/com/diagbot/web/PushController.java
  13. 27 16
      docs/011.20190716智能预问诊全版本/init_prec.sql
  14. 7 16
      docs/011.20190716智能预问诊全版本/init_user.sql
  15. 3 2
      icss-service/src/main/java/com/diagbot/enums/FeatureTypeEnum.java
  16. 6 4
      icss-service/src/main/java/com/diagbot/facade/LisMappingFacade.java
  17. 4 4
      icss-service/src/main/java/com/diagbot/facade/PushFacade.java
  18. 1 1
      icss-service/src/main/java/com/diagbot/web/PushController.java
  19. 7 12
      icssman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java
  20. 24 20
      knowledgeman-service/src/main/java/com/diagbot/facade/ConceptFacade.java
  21. 11 6
      knowledgeman-service/src/main/java/com/diagbot/facade/RelationFacade.java
  22. 15 12
      knowledgeman-service/src/main/java/com/diagbot/web/UploadController.java
  23. 3 2
      ltapi-service/src/main/java/com/diagbot/enums/FeatureTypeEnum.java
  24. 2 1
      ltapi-service/src/main/java/com/diagbot/facade/PushFacade.java
  25. 1 1
      ltapi-service/src/main/java/com/diagbot/web/PushController.java
  26. 4 1
      prec-service/src/main/java/com/diagbot/vo/GetEvaluatorPageVO.java
  27. 1 1
      precman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java

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

@@ -37,15 +37,6 @@ public interface AIServiceClient {
     @PostMapping(value = "/push-web/graph/scale")
     Map<String, Object> scale(@RequestBody SearchVo searchVo);
 
-    /**
-     * 高危诊断
-     *
-     * @param searchVo
-     * @return
-     */
-    @PostMapping(value = "/push-web/graph/highRisk")
-    Response<GdbResponse> highRiskPageData(@RequestBody SearchVo searchVo);
-
     /**
      * 计算接口
      *

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

@@ -44,18 +44,6 @@ public class AIServiceHystrix implements AIServiceClient {
         return null;
     }
 
-    /**
-     * 高危诊断
-     *
-     * @param searchVo
-     * @return
-     */
-    @Override
-    public Response<GdbResponse> highRiskPageData(@RequestBody SearchVo searchVo) {
-        log.error("【hystrix】调用{}异常", "highRiskPageData");
-        return null;
-    }
-
     /**
      * 计算接口
      *
@@ -67,4 +55,4 @@ public class AIServiceHystrix implements AIServiceClient {
         log.error("【hystrix】调用{}异常", "scaleCalc");
         return null;
     }
-}
+}

+ 4 - 3
aipt-service/src/main/java/com/diagbot/enums/FeatureTypeEnum.java

@@ -10,9 +10,10 @@ import lombok.Setter;
  */
 public enum FeatureTypeEnum implements KeyedNamed {
     Feature_Type_Symptom(1, "症状"),
-    Feature_Type_Past(1,"既往史"),
+    Feature_Type_Past(1, "既往史"),
     Feature_Type_Other(3, "其他史"),
-    Feature_Type_Vital(4, "查体"),
+    Feature_Type_Vital_Result(4, "查体结果"),
+    Feature_Type_Vital_Index(42, "查体指标"),
     Feature_Type_Lis(5, "化验"),
     Feature_Type_Pacs(6, "辅检"),
     Feature_Type_Disease(7, "诊断"),
@@ -55,4 +56,4 @@ public enum FeatureTypeEnum implements KeyedNamed {
     public String getName() {
         return name;
     }
-}
+}

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

@@ -168,21 +168,6 @@ public class ClinicalFacade {
         return list;
     }
 
-    /**
-     * 高危诊断
-     *
-     * @param searchVo
-     * @return
-     */
-    public GdbResponse highRiskPageData(SearchVo searchVo) {
-        Response<GdbResponse> response = aiServiceClient.highRiskPageData(searchVo);
-        if (response == null || response.getData() == null) {
-            return null;
-            //throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "高危没有返回结果");
-        }
-        return response.getData();
-    }
-
     /**
      * 计算接口
      *

+ 13 - 27
aipt-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -123,8 +123,18 @@ public class PushFacade {
                 }
             }
         }
-        //查体 概念列表
-        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Vital.getKey()))) {
+        //查体 查体结果
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Vital_Result.getKey()))) {
+            List<FeatureRate> vital = data.getVitals();
+            if (ListUtil.isNotEmpty(vital)) {
+                List<String> nameList = vital.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
+                if (ListUtil.isNotEmpty(nameList)) {
+                    pushDTO.setVital(getConceptDTOList(nameList, LexiconTypeEnum.VITAL_RESULT.getKey()));
+                }
+            }
+        }
+        //查体 查体指标
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Vital_Index.getKey()))) {
             List<FeatureRate> vital = data.getVitals();
             if (ListUtil.isNotEmpty(vital)) {
                 List<String> nameList = vital.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
@@ -133,6 +143,7 @@ public class PushFacade {
                 }
             }
         }
+
         //化验 概念列表-公表项
         if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Lis.getKey()))) {
             List<FeatureRate> lis = data.getLabs();
@@ -165,33 +176,8 @@ public class PushFacade {
         //诊断 map
         if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Disease.getKey()))) {
             if (ListUtil.isNotEmpty(dis)) {
-                List<String> nameList = dis.stream().map(featureRate -> featureRate.getFeatureName()).distinct().collect(Collectors.toList());
                 Map<String, List<ConceptPushDTO>> disMapDTO = new LinkedHashMap<>();
                 Map<String, List<FeatureRate>> disFeatureMap = new LinkedHashMap<>();
-                //警惕
-                Map<String, String> highRiskMap = new HashMap<>();
-                highRiskMap.put("disease", String.join(",", nameList));
-                SearchVo hrSearchVo = new SearchVo();
-                hrSearchVo.setDiag(String.join(",", nameList));
-                GdbResponse graphRes = clinicalFacade.highRiskPageData(hrSearchVo);
-                if (graphRes != null) {
-                    Map<String, String> graphResult = graphRes.getResult();
-                    if (graphResult.size() > 0) {
-                        List<String> hrNameList = Lists.newLinkedList();
-                        for (Map.Entry<String, String> entry : graphResult.entrySet()) {
-                            if (entry.getValue().equals("1")) {
-                                hrNameList.add(entry.getKey());
-                            }
-                        }
-                        if (ListUtil.isNotEmpty(hrNameList)) {
-                            List<ConceptPushDTO> hrDisDTO = getConceptDTOList(hrNameList, LexiconTypeEnum.DIAGNOSIS.getKey());
-                            if (isConnect) {
-                                hrDisDTO = addClientName(hrDisDTO, searchVo.getHosCode(), ConceptTypeEnum.Disease.getKey());
-                            }
-                            disMapDTO.put("警惕", hrDisDTO);
-                        }
-                    }
-                }
                 //诊断分类
                 for (FeatureRate featureRate : dis) {
                     if (StringUtil.isBlank(featureRate.getDesc())) {

+ 1 - 0
aipt-service/src/main/java/com/diagbot/util/ParamConvertUtil.java

@@ -106,6 +106,7 @@ public class ParamConvertUtil {
                 type = ConceptTypeEnum.Other.getKey();
                 break;
             case VITAL_INDEX:
+            case VITAL_RESULT:
                 type = ConceptTypeEnum.Vital.getKey();
                 break;
             case LIS_PACKAGE:

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

@@ -3,7 +3,6 @@ package com.diagbot.web;
 
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.client.bean.CalculateData;
-import com.diagbot.client.bean.GdbResponse;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.ScaleContent;
@@ -63,15 +62,6 @@ public class ClinicalController {
         return RespDTO.onSuc(data);
     }
 
-    @ApiOperation(value = "高危诊断", notes = "")
-    @PostMapping("/highRisk")
-    @SysLogger("highRisk")
-    @ApiIgnore
-    public RespDTO<GdbResponse> highRisk(@RequestBody SearchVo searchVo) {
-        GdbResponse data = clinicalFacade.highRiskPageData(searchVo);
-        return RespDTO.onSuc(data);
-    }
-
     @ApiOperation(value = "知识库标准化-计算接口", notes = "")
     @PostMapping("/scaleCalc")
     @SysLogger("scaleCalc")
@@ -79,4 +69,4 @@ public class ClinicalController {
         Map<String, Object> data = clinicalFacade.scaleCalc(calculateData);
         return RespDTO.onSuc(data);
     }
-}
+}

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

@@ -77,7 +77,7 @@ public class PushController {
                     "lis:source:数据来源(必填),Integer<br>" +
                     "pacs:辅检,String<br>" +
                     "diag:诊断,String<br>" +
-                    "featureType:类型(必填),1:症状,3:其他史,4:查体,5:化验,6:辅检,7:诊断,22-指标,String<br>" +
+                    "featureType:类型(必填),1:症状,3:其他史,4:查体结果,42:查体指标,5:化验,6:辅检,7:诊断,22-指标,String<br>" +
                     "disType:诊断类型,1-慢病,2-急诊,普通病不填,Integer<br>" +
                     "indications:指标结果,String<br>" +
                     "adverseReactions:不良反应,List<不良反应明细><br>")

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

@@ -836,8 +836,6 @@
                                     OR t2. NAME LIKE CONCAT('%', #{InputStr}, '%')
                                 )
                                 AND t4.relation_id = 18
-                                GROUP BY
-                                    t5.id
                             ) b1,
                             kl_concept b2,
                             kl_concept_detail b3

+ 2 - 1
data-service/src/main/java/com/diagbot/enums/FeatureTypeEnum.java

@@ -11,7 +11,8 @@ import lombok.Setter;
 public enum FeatureTypeEnum implements KeyedNamed {
     Symptom(1, "症状"),
     Other(3, "其他史"),
-    Vital(4, "查体"),
+    VitalResult(4, "查体结果"),
+    VitalIndex(42, "查体指标"),
     Lis(5, "化验"),
     Pacs(6, "辅检"),
     Disease(7, "诊断"),

+ 2 - 1
data-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -56,7 +56,8 @@ public class PushFacade {
         if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Other.getKey()))) {
         }
         //查体
-        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Vital.getKey()))) {
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.VitalResult.getKey())) ||
+                featureTypeSet.contains(String.valueOf(FeatureTypeEnum.VitalIndex.getKey()))) {
             List<ConceptPushDTO> vitals = data.getVital();
             pushDTO.setVital(vitals);
         }

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

@@ -47,7 +47,7 @@ public class PushController {
                     "lis:source:数据来源(必填),Integer<br>" +
                     "pacs:辅检,String<br>" +
                     "diag:诊断,String<br>" +
-                    "featureType:类型(必填),1:症状,3:其他史,4:查体,5:化验,6:辅检,7:诊断,22-指标,String<br>" +
+                    "featureType:类型(必填),1:症状,3:其他史,4:查体结果,42:查体指标,5:化验,6:辅检,7:诊断,22-指标,String<br>" +
                     "diseaseName:取治疗方案的诊断,String<br>" +
                     "scaleName:量表名称,String<br>" +
                     "disType:诊断类型,1-慢病,2-急诊,普通病不填,Integer<br>" +

+ 27 - 16
docs/011.20190716智能预问诊全版本/init_prec.sql

@@ -14,7 +14,7 @@ Target Server Type    : MYSQL
 Target Server Version : 50723
 File Encoding         : 65001
 
-Date: 2019-07-15 10:57:05
+Date: 2019-07-30 17:12:35
 */
 
 SET FOREIGN_KEY_CHECKS=0;
@@ -37,7 +37,7 @@ CREATE TABLE `prec_dictionary_info` (
   `order_no` int(11) NOT NULL DEFAULT '0' COMMENT '排序号',
   `remark` varchar(300) DEFAULT NULL COMMENT '备注',
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=109 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='字典表';
+) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='字典表';
 
 -- ----------------------------
 -- Records of prec_dictionary_info
@@ -46,12 +46,17 @@ INSERT INTO `prec_dictionary_info` VALUES ('1', 'N', '1970-01-01 12:00:00', '197
 INSERT INTO `prec_dictionary_info` VALUES ('2', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '诊疗情况', '51', '1', '20', '标签归属');
 INSERT INTO `prec_dictionary_info` VALUES ('3', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '其他史', '3', '1', '30', '标签归属');
 INSERT INTO `prec_dictionary_info` VALUES ('4', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '补充内容', '52', '1', '40', '标签归属');
-INSERT INTO `prec_dictionary_info` VALUES ('5', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '单选', '1', '1', '10', '单标签组件类型');
-INSERT INTO `prec_dictionary_info` VALUES ('6', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '多选', '2', '1', '20', '单标签组件类型');
-INSERT INTO `prec_dictionary_info` VALUES ('7', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '输入框', '6', '1', '30', '单标签组件类型');
+INSERT INTO `prec_dictionary_info` VALUES ('5', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '单选', '1', '1', '10', '单标签组件类型');
+INSERT INTO `prec_dictionary_info` VALUES ('6', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '多选', '2', '1', '20', '单标签组件类型');
+INSERT INTO `prec_dictionary_info` VALUES ('7', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '文本输入框', '6', '1', '30', '单标签组件类型');
 INSERT INTO `prec_dictionary_info` VALUES ('8', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '多列填写', '3', '1', '40', '单标签组件类型');
 INSERT INTO `prec_dictionary_info` VALUES ('9', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '文本域', '5', '1', '50', '单标签组件类型');
-INSERT INTO `prec_dictionary_info` VALUES ('10', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '上传图片', '4', '1', '60', '单标签组件类型');
+INSERT INTO `prec_dictionary_info` VALUES ('10', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '上传图片模块', '4', '1', '60', '单标签组件类型');
+INSERT INTO `prec_dictionary_info` VALUES ('11', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '数字输入框', '7', '1', '70', '单标签组件类型');
+INSERT INTO `prec_dictionary_info` VALUES ('12', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '独立填写单组合项(症状详情)', '4', '1', '10', '填写单类型');
+INSERT INTO `prec_dictionary_info` VALUES ('13', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '混合填写单组合项(既往史)', '6', '1', '20', '填写单类型');
+INSERT INTO `prec_dictionary_info` VALUES ('14', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '通用', '0', '1', '10', '模板类型');
+INSERT INTO `prec_dictionary_info` VALUES ('15', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '科室', '1', '1', '20', '模板类型');
 
 -- ----------------------------
 -- Table structure for prec_inquiry_detail
@@ -70,11 +75,17 @@ CREATE TABLE `prec_inquiry_detail` (
   `content_value` text COMMENT '内容字符串纯文本',
   `remark` varchar(128) DEFAULT NULL COMMENT '备注',
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='问诊记录-明细表';
+) ENGINE=InnoDB AUTO_INCREMENT=105 DEFAULT CHARSET=utf8 COMMENT='问诊记录-明细表';
 
 -- ----------------------------
 -- Records of prec_inquiry_detail
 -- ----------------------------
+INSERT INTO `prec_inquiry_detail` VALUES ('78', 'N', '2019-07-22 14:07:45', '2019-07-22 14:07:45', '0', '0', '2', '1', '发热;', '发热;', null);
+INSERT INTO `prec_inquiry_detail` VALUES ('79', 'N', '2019-07-22 14:07:45', '2019-07-22 14:07:45', '0', '0', '2', '3', '无;', '无;', null);
+INSERT INTO `prec_inquiry_detail` VALUES ('101', 'N', '2019-07-23 18:21:39', '2019-07-23 18:21:39', '0', '0', '1', '1', '发热;', '发热;', null);
+INSERT INTO `prec_inquiry_detail` VALUES ('102', 'N', '2019-07-23 18:21:39', '2019-07-23 18:21:39', '0', '0', '1', '2', '未治疗;', '未治疗;', null);
+INSERT INTO `prec_inquiry_detail` VALUES ('103', 'N', '2019-07-23 18:21:39', '2019-07-23 18:21:39', '0', '0', '1', '3', '冠心病;无敏史;有;', '冠心病;无敏史;有;', null);
+INSERT INTO `prec_inquiry_detail` VALUES ('104', 'N', '2019-07-23 18:21:39', '2019-07-23 18:21:39', '0', '0', '1', '4', '血压:22/33mmHg,脉搏:55 次/分;', '血压:22/33mmHg,脉搏:55 次/分;', null);
 
 -- ----------------------------
 -- Table structure for prec_inquiry_evaluator
@@ -241,11 +252,13 @@ CREATE TABLE `prec_inquiry_info` (
   `data_json` longtext COMMENT '内容JSON字符串',
   `remark` varchar(128) DEFAULT NULL COMMENT '备注',
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='问诊记录-主表';
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='问诊记录-主表';
 
 -- ----------------------------
 -- Records of prec_inquiry_info
 -- ----------------------------
+INSERT INTO `prec_inquiry_info` VALUES ('1', 'N', '2019-07-16 10:04:02', '2019-07-23 18:21:39', '0', '0', '1', 'A001', '浙江大学医学院附属邵逸夫医院', '1', 'D01', '全科', '1', 'YS001', '付', '1', '1600', '沈强', '1', null, '1991-01-01 20:04:00', '9696969', '44', '1', '1', '1', null);
+INSERT INTO `prec_inquiry_info` VALUES ('2', 'N', '2019-07-18 16:12:40', '2019-07-22 14:07:45', '0', '0', '1', 'A001', '浙江大学医学院附属邵逸夫医院', '1', 'D01', '全科', '1', 'YS001', '付', '1', '1600', '沈强', '1', null, '1991-01-01 20:04:00', '9696969', '1', '1', '1', '1', null);
 
 -- ----------------------------
 -- Table structure for prec_inquiry_report
@@ -316,7 +329,7 @@ CREATE TABLE `prec_module_info` (
   `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
   `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
   `name` varchar(100) NOT NULL DEFAULT '' COMMENT '名称',
-  `type` int(11) NOT NULL DEFAULT '0' COMMENT '类型(1.症状情况 2.诊疗情况 3.其他病史 4.补充内容)',
+  `type` int(11) NOT NULL DEFAULT '0' COMMENT '类型(1.症状情况 51.诊疗情况 3.其他病史 52.补充内容)',
   `module_type` bigint(20) NOT NULL DEFAULT '0' COMMENT '(0.通用 1.根据科室划分)',
   `relation_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '关联id',
   `remark` varchar(300) DEFAULT NULL COMMENT '备注',
@@ -327,9 +340,9 @@ CREATE TABLE `prec_module_info` (
 -- Records of prec_module_info
 -- ----------------------------
 INSERT INTO `prec_module_info` VALUES ('1', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '症状情况', '1', '0', '0', null);
-INSERT INTO `prec_module_info` VALUES ('2', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '诊疗情况', '2', '0', '0', null);
+INSERT INTO `prec_module_info` VALUES ('2', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '诊疗情况', '51', '0', '0', null);
 INSERT INTO `prec_module_info` VALUES ('3', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '其他情况', '3', '0', '0', null);
-INSERT INTO `prec_module_info` VALUES ('4', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '补充内容', '4', '0', '0', null);
+INSERT INTO `prec_module_info` VALUES ('4', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '补充内容', '52', '0', '0', null);
 
 -- ----------------------------
 -- Table structure for prec_physical_info
@@ -435,7 +448,7 @@ CREATE TABLE `prec_question_info` (
   `age_begin` int(11) NOT NULL DEFAULT '0' COMMENT '最小年龄',
   `age_end` int(11) NOT NULL DEFAULT '200' COMMENT '最大年龄',
   `tag_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '标签标识(1:单标签 4:组合标签,胸痛  6:组合标签,既往史)',
-  `control_type` tinyint(4) DEFAULT NULL COMMENT '控件类型(0:无类型,默认值 1:单选 2:多选 3:多行输入,生命体征 4:上传图片 5:文本域,自行服药 6:文本框 7:数字文本框)',
+  `control_type` tinyint(4) DEFAULT '0' COMMENT '控件类型(0:无类型,默认值 1:单选 2:多选 3:多行输入,生命体征 4:上传图片 5:文本域,自行服药 6:文本框 7:数字文本框)',
   `type` tinyint(4) DEFAULT NULL COMMENT '类型(1:症状 3:其他史 51:诊疗情况 52:补充 )',
   `item_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '元素类型(0:主标签,例如主诉现病史-症状标签,1:次标签:主诉现病史-其他标签)\r\n',
   `label_prefix` varchar(100) NOT NULL DEFAULT '' COMMENT '前置内容',
@@ -479,8 +492,8 @@ INSERT INTO `prec_question_info` VALUES ('27', 'N', '1970-01-01 12:00:00', '1970
 INSERT INTO `prec_question_info` VALUES ('28', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '过敏史-有磺胺类过敏史', '有磺胺类过敏史', '', '3', '0', '200', '4', '0', '3', '1', '', '', '', null);
 INSERT INTO `prec_question_info` VALUES ('29', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '过敏史-有蚕豆过敏史', '有蚕豆过敏史', '', '3', '0', '200', '4', '0', '3', '1', '', '', '', null);
 INSERT INTO `prec_question_info` VALUES ('30', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '吸烟史', '请问您是否有吸烟习惯?', '', '3', '0', '200', '6', '0', '3', '1', '', '', '', null);
-INSERT INTO `prec_question_info` VALUES ('31', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '吸烟史-无', '无', '', '3', '0', '200', '4', '0', '3', '1', '', '', '', null);
-INSERT INTO `prec_question_info` VALUES ('32', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '吸烟史-有', '有', '', '3', '0', '200', '4', '0', '3', '1', '', '', '', null);
+INSERT INTO `prec_question_info` VALUES ('31', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '吸烟史-无', '无吸烟史', '', '3', '0', '200', '4', '0', '3', '1', '', '', '', null);
+INSERT INTO `prec_question_info` VALUES ('32', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '吸烟史-有', '有吸烟史', '', '3', '0', '200', '4', '0', '3', '1', '', '', '', null);
 INSERT INTO `prec_question_info` VALUES ('33', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '职业', '请问您的职业是什么', '', '3', '0', '200', '1', '6', '3', '1', '', '', '', null);
 INSERT INTO `prec_question_info` VALUES ('34', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '补充内容', '如有其他补充内容请继续输入', '', '3', '0', '200', '1', '6', '52', '1', '', '', '', null);
 INSERT INTO `prec_question_info` VALUES ('35', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '生命体征', '请填写您现在的生命体征情况', '', '3', '0', '200', '1', '3', '52', '1', '', '', '', null);
@@ -562,6 +575,3 @@ INSERT INTO `prec_question_mapping` VALUES ('34', 'N', '1970-01-01 12:00:00', '1
 INSERT INTO `prec_question_mapping` VALUES ('35', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '25', '53', '2', '0', null);
 INSERT INTO `prec_question_mapping` VALUES ('36', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '30', '31', '10', '1', null);
 INSERT INTO `prec_question_mapping` VALUES ('37', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '30', '32', '20', '0', null);
-
-ALTER TABLE `prec_module_info` MODIFY COLUMN `type`  int(11) NOT NULL DEFAULT 0 COMMENT '类型(1.症状情况 51.诊疗情况 3.其他病史 52.补充内容)' AFTER `name`;

+ 7 - 16
docs/011.20190716智能预问诊全版本/init_user.sql

@@ -3,16 +3,16 @@ use `sys-user`;
 /*
 Navicat MySQL Data Transfer
 
-Source Server         : 2.236平台开发环境
+Source Server         : 2.241平台测试环境
 Source Server Version : 50723
-Source Host           : 192.168.2.236:3306
+Source Host           : 192.168.2.241:3306
 Source Database       : sys-user
 
 Target Server Type    : MYSQL
 Target Server Version : 50723
 File Encoding         : 65001
 
-Date: 2019-07-15 10:56:43
+Date: 2019-07-30 17:13:43
 */
 
 SET FOREIGN_KEY_CHECKS=0;
@@ -55,7 +55,7 @@ INSERT INTO `sys_menu` VALUES ('16', 'N', '1970-01-01 12:00:00', '1970-01-01 12:
 INSERT INTO `sys_menu` VALUES ('17', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '订单系统', '-1', 'LT-DDXT', '3', '朗通-订单系统');
 INSERT INTO `sys_menu` VALUES ('18', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '产品申请列表', '17', 'LT-DDXT-CPXSQLB', '1', '朗通-订单系统-产品申请列表');
 INSERT INTO `sys_menu` VALUES ('19', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '产品线管理', '-1', 'LT-CPXGL', '4', '朗通-产品线管理');
-INSERT INTO `sys_menu` VALUES ('20', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '个人中心', '-1', 'LT-GRZX', '7', '朗通-个人中心');
+INSERT INTO `sys_menu` VALUES ('20', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '个人中心', '-1', 'LT-GRZX', '99', '朗通-个人中心');
 INSERT INTO `sys_menu` VALUES ('21', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '已认证超管信息', '10', 'LT-YRZCGXX', '0', '朗通-客户中心-已认证超管信息');
 INSERT INTO `sys_menu` VALUES ('22', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '产品续费列表', '17', 'LT-CPXFLB', '2', '朗通-订单系统-产品续费列表');
 INSERT INTO `sys_menu` VALUES ('23', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护', '-1', 'LT-YXSJWH', '5', '朗通-医学数据维护');
@@ -290,7 +290,6 @@ INSERT INTO `sys_menu_permission` VALUES ('225', 'N', '1970-01-01 12:00:00', '19
 INSERT INTO `sys_menu_permission` VALUES ('226', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '52', '246', '医学术语库维护-医学术语多层关联维护-删除或者恢复');
 INSERT INTO `sys_menu_permission` VALUES ('227', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '42', '247', '医学术语库维护-医学术语静态知识维护-内容检索');
 INSERT INTO `sys_menu_permission` VALUES ('228', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '56', '260', '预问诊数据维护-模板维护-模板新增');
-INSERT INTO `sys_menu_permission` VALUES ('229', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '56', '261', '预问诊数据维护-模板维护-模板修改');
 INSERT INTO `sys_menu_permission` VALUES ('230', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '56', '262', '预问诊数据维护-模板维护-模板删除');
 INSERT INTO `sys_menu_permission` VALUES ('231', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '56', '263', '预问诊数据维护-模板维护-获取模板列表');
 INSERT INTO `sys_menu_permission` VALUES ('232', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '56', '264', '预问诊数据维护-模板维护-修改时获取已经添加过的标签');
@@ -316,7 +315,7 @@ CREATE TABLE `sys_permission` (
   `descritpion` varchar(255) NOT NULL DEFAULT '' COMMENT '资源描述',
   `remark` varchar(255) DEFAULT NULL COMMENT '备注',
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=270 DEFAULT CHARSET=utf8 COMMENT='系统资源表';
+) ENGINE=InnoDB AUTO_INCREMENT=269 DEFAULT CHARSET=utf8 COMMENT='系统资源表';
 
 -- ----------------------------
 -- Records of sys_permission
@@ -536,8 +535,7 @@ INSERT INTO `sys_permission` VALUES ('256', 'N', '1970-01-01 12:00:00', '1970-01
 INSERT INTO `sys_permission` VALUES ('257', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '预问诊数据维护-独立填写单维护-检索', '/questionInfo_prec/index', 'ALL', '预问诊数据维护-独立填写单维护-检索', null);
 INSERT INTO `sys_permission` VALUES ('258', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '预问诊数据维护-独立填写单维护-根据id返回内容', '/questionInfo_prec/getById', 'ALL', '预问诊数据维护-独立填写单维护-根据id返回内容', null);
 INSERT INTO `sys_permission` VALUES ('259', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '预问诊数据维护-独立填写单维护-根据多个id返回内容', '/questionInfo_prec/getByIds', 'ALL', '预问诊数据维护-独立填写单维护-根据多个id返回内容', null);
-INSERT INTO `sys_permission` VALUES ('260', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '预问诊数据维护-模板维护-模板新增', '/moduleInfo_prec/saveModuleInfo', 'ALL', '预问诊数据维护-模板维护-模板新增', null);
-INSERT INTO `sys_permission` VALUES ('261', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '预问诊数据维护-模板维护-模板修改', '/moduleInfo_prec/updateModuleInfo', 'ALL', '预问诊数据维护-模板维护-模板修改', null);
+INSERT INTO `sys_permission` VALUES ('260', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '预问诊数据维护-模板维护-模板新增', '/moduleInfo_prec/saveOrUpdateModuleInfo', 'ALL', '预问诊数据维护-模板维护-模板新增', null);
 INSERT INTO `sys_permission` VALUES ('262', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '预问诊数据维护-模板维护-模板删除', '/moduleInfo_prec/delete', 'ALL', '预问诊数据维护-模板维护-模板删除', null);
 INSERT INTO `sys_permission` VALUES ('263', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '预问诊数据维护-模板维护-获取模板列表', '/moduleInfo_prec/getModuleInfoList', 'ALL', '预问诊数据维护-模板维护-获取模板列表', null);
 INSERT INTO `sys_permission` VALUES ('264', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '预问诊数据维护-模板维护-修改时获取已经添加过的标签', '/moduleInfo_prec/getModuleDetailInfo', 'ALL', '预问诊数据维护-模板维护-修改时获取已经添加过的标签', null);
@@ -658,7 +656,7 @@ CREATE TABLE `sys_role_permission` (
   `permission_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '资源id',
   `remark` varchar(255) DEFAULT NULL COMMENT '备注',
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=285 DEFAULT CHARSET=utf8 COMMENT='角色和资源的映射表';
+) ENGINE=InnoDB AUTO_INCREMENT=284 DEFAULT CHARSET=utf8 COMMENT='角色和资源的映射表';
 
 -- ----------------------------
 -- Records of sys_role_permission
@@ -891,7 +889,6 @@ INSERT INTO `sys_role_permission` VALUES ('272', 'N', '1970-01-01 12:00:00', '19
 INSERT INTO `sys_role_permission` VALUES ('273', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '258', '预问诊数据维护-独立填写单维护-根据id返回内容');
 INSERT INTO `sys_role_permission` VALUES ('274', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '259', '预问诊数据维护-独立填写单维护-根据多个id返回内容');
 INSERT INTO `sys_role_permission` VALUES ('275', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '260', '预问诊数据维护-模板维护-模板新增');
-INSERT INTO `sys_role_permission` VALUES ('276', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '261', '预问诊数据维护-模板维护-模板修改');
 INSERT INTO `sys_role_permission` VALUES ('277', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '262', '预问诊数据维护-模板维护-模板删除');
 INSERT INTO `sys_role_permission` VALUES ('278', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '263', '预问诊数据维护-模板维护-获取模板列表');
 INSERT INTO `sys_role_permission` VALUES ('279', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '264', '预问诊数据维护-模板维护-修改时获取已经添加过的标签');
@@ -899,10 +896,3 @@ INSERT INTO `sys_role_permission` VALUES ('280', 'N', '1970-01-01 12:00:00', '19
 INSERT INTO `sys_role_permission` VALUES ('281', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '266', '预问诊数据维护-模板维护-获取模板类型(修改时取类型)');
 INSERT INTO `sys_role_permission` VALUES ('282', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '267', '预问诊数据维护-模板维护-获取所有科室信息(主页下拉用)');
 INSERT INTO `sys_role_permission` VALUES ('283', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '268', '预问诊数据维护-模板维护-获取标签和模板关联信息');
-
-
-UPDATE `sys-user`.`sys_permission` SET `id`='260', `is_deleted`='N', `gmt_create`='1970-01-01 12:00:00', `gmt_modified`='1970-01-01 12:00:00', `creator`='0', `modifier`='0', `name`='预问诊数据维护-模板维护-模板新增', `permissionUrl`='/moduleInfo_prec/saveOrUpdateModuleInfo', `method`='ALL', `descritpion`='预问诊数据维护-模板维护-模板新增', `remark`=NULL WHERE (`id`='260');
-DELETE FROM `sys_permission` WHERE (`id`='261');
-DELETE FROM `sys_role_permission` WHERE (`permission_id`='261');
-DELETE FROM `sys_menu_permission` WHERE (`permission_id`='261');

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

@@ -11,8 +11,9 @@ import lombok.Setter;
 public enum FeatureTypeEnum implements KeyedNamed {
     Symptom(1, "症状"),
     Other(3, "其他史"),
-    Vital(4, "查体"),
-    ModuleVital(41, "查体模板"),
+    VitalResult(4, "查体结果"),
+    VitalModule(41, "查体模板"),
+    VitalIndex(42, "查体指标"),
     Lis(5, "化验"),
     Pacs(6, "辅检"),
     Disease(7, "诊断"),

+ 6 - 4
icss-service/src/main/java/com/diagbot/facade/LisMappingFacade.java

@@ -77,14 +77,16 @@ public class LisMappingFacade extends LisMappingServiceImpl {
             return null;
         }
 
-        List<String> mealNameList= Lists.newLinkedList();
+        List<String> mealNameList = Lists.newLinkedList();
         mealNameList.add(project);
         Map<String, Map<String, String>> lisMappingMap = getLisMappingByMealName(mealNameList);
 
         Map<String, Map<String, String>> retMap = new LinkedHashMap<>();
-        Map<String, String> projectMap = new LinkedHashMap<>();
-        projectMap.put(project, lisMappingMap.get(project).get(""));
-        retMap.put("project", projectMap);
+        if (lisMappingMap != null && lisMappingMap.get(project) != null) {
+            Map<String, String> projectMap = new LinkedHashMap<>();
+            projectMap.put(project, lisMappingMap.get(project).get(""));
+            retMap.put("project", projectMap);
+        }
 
         if (ListUtil.isEmpty(details)) {
             return retMap;

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

@@ -33,7 +33,6 @@ import com.diagbot.vo.PushVO;
 import com.diagbot.vo.QuestionIds2VO;
 import com.diagbot.vo.QuestionVO;
 import com.google.common.collect.Lists;
-import org.aspectj.weaver.patterns.TypePatternQuestions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -129,7 +128,8 @@ public class PushFacade {
         if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Other.getKey()))) {
         }
         //查体标记项
-        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Vital.getKey()))) {
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.VitalResult.getKey())) ||
+                featureTypeSet.contains(String.valueOf(FeatureTypeEnum.VitalIndex.getKey()))) {
             List<ConceptPushDTO> vitals = data.getVital();
             if (ListUtil.isNotEmpty(vitals)) {
                 List<ConceptPushDTO> vitalDTOList = addQuestionId(vitals, QuestionTypeEnum.Vital.getKey());
@@ -141,7 +141,7 @@ public class PushFacade {
             }
         }
         //查体模板
-        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.ModuleVital.getKey()))) {
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.VitalModule.getKey()))) {
             ConceptPushDTO dept = data.getDept();
             List<QuestionPushDTO> moduleVitalDTO = getVitalModule(dept, pushVO);
             pushDTO.setModuleVital(moduleVitalDTO);
@@ -324,7 +324,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());
-        questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("type", type);
+        questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("type", type).ne("tag_type", TagTypeEnum.T8.getKey());
         //化验填写单匹配name
         if (type.equals(ConceptTypeEnum.Lis.getKey())) {
             questionInfoQueryWrapper.in("name", nameList);

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

@@ -54,7 +54,7 @@ public class PushController {
                     "lis:source:数据来源(必填),Integer<br>" +
                     "pacs:辅检,String<br>" +
                     "diag:诊断,String<br>" +
-                    "featureType:类型(必填),1:症状,3:其他史,4:查体,41:查体模板,5:化验,6:辅检,7:诊断,22-指标,String<br>" +
+                    "featureType:类型(必填),1:症状,3:其他史,4:查体结果,41:查体模板,42:查体指标(查体结果和查体指标不能同时取),5:化验,6:辅检,7:诊断,22-指标,String<br>" +
                     "patientId:病人id,Long<br>" +
                     "disType:诊断类型,1-慢病,2-急诊,普通病不填,Integer<br>" +
                     "indications:指标结果(预留字段,暂不用),String<br>" +

+ 7 - 12
icssman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java

@@ -296,11 +296,6 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
         RespDTO<List<ConceptBaseDTO>> disInfoList = knowledgemanServiceClient.getConceptListByType(conceptTypeVO);
         RespDTOUtil.respNGDeal(disInfoList,"获取疾病信息失败");
         Map<Long, ConceptBaseDTO> disInfoMap = disInfoList.data.stream().collect(Collectors.toMap(ConceptBaseDTO::getConceptId,conceptBaseDTO -> conceptBaseDTO));
-        /*QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
-        questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .in("id", disId);
-        List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
-        Map<Long, QuestionInfo> questionInfoMap = questionInfoList.stream().collect(Collectors.toMap(QuestionInfo::getId,questionInfo -> questionInfo));*/
         //获取模板类型名称
         QueryWrapper<DictionaryInfo> dictionaryInfoQueryWrapper = new QueryWrapper<>();
         dictionaryInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
@@ -431,11 +426,11 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
         RespDTOUtil.respNGDeal(deptInfoList,"获取科室信息失败");
         Map<Long, ConceptBaseDTO> deptInfoMap = deptInfoList.data.stream().collect(Collectors.toMap(ConceptBaseDTO::getConceptId,conceptBaseDTO -> conceptBaseDTO));
         //获取疾病名称
-        QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
-        questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .in("id", disId);
-        List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
-        Map<Long, QuestionInfo> questionInfoMap = questionInfoList.stream().collect(Collectors.toMap(QuestionInfo::getId,questionInfo -> questionInfo));
+        conceptTypeVO = new ConceptTypeVO();
+        conceptTypeVO.setType(3);
+        RespDTO<List<ConceptBaseDTO>> disInfoList = knowledgemanServiceClient.getConceptListByType(conceptTypeVO);
+        RespDTOUtil.respNGDeal(disInfoList,"获取疾病信息失败");
+        Map<Long, ConceptBaseDTO> disInfoMap = disInfoList.data.stream().collect(Collectors.toMap(ConceptBaseDTO::getConceptId,conceptBaseDTO -> conceptBaseDTO));
         //获取模板类型
         QueryWrapper<DictionaryInfo> dictionaryInfoQueryWrapper = new QueryWrapper<>();
         dictionaryInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
@@ -453,8 +448,8 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
             }
         }
         if(getModuleInfoOneDTO.getModuleType().intValue() == 2){
-            if(null != questionInfoMap.get(getModuleInfoOneDTO.getRelationId())){
-                getModuleInfoOneDTO.setRelationName(questionInfoMap.get(getModuleInfoOneDTO.getRelationId()).getName());
+            if(null != disInfoMap.get(getModuleInfoOneDTO.getRelationId())){
+                getModuleInfoOneDTO.setRelationName(disInfoMap.get(getModuleInfoOneDTO.getRelationId()).getName());
             }
         }
         return getModuleInfoOneDTO;

+ 24 - 20
knowledgeman-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -247,21 +247,20 @@ public class ConceptFacade extends ConceptServiceImpl {
     public IPage<GetAllInformationDTO> getAllInformation(GetAllInformationVO getAllInformationVO) {
     	Page<GetAllInformationDTO> getAllInformationDTOPage = new Page<>();
     	
-    	List<Long> conceptIdList = null;
-    	if(StringUtil.isBlank(getAllInformationVO.getLibName())&&StringUtil.isNotBlank(getAllInformationVO.getName())){
-    		getAllInformationVO.setLibName(getAllInformationVO.getName());
-    	}
+    	Page<Concept> conceptPage = new Page<>(getAllInformationVO.getCurrent(),getAllInformationVO.getSize());
+    	QueryWrapper<Concept> conceptQe = new QueryWrapper<>();
     	if(StringUtil.isNotBlank(getAllInformationVO.getLibName())){
     		QueryWrapper<LibraryInfo> libraryInfoQe = new QueryWrapper<>();
     		libraryInfoQe.eq("is_deleted", IsDeleteEnum.N.getKey());
     		libraryInfoQe.like("name", getAllInformationVO.getLibName());
     		libraryInfoQe.eq(StringUtil.isNotBlank(getAllInformationVO.getType()),"type_id", LexiconTypeEnum.getKey(getAllInformationVO.getType()));
-    		conceptIdList = libraryinfoFacade.list(libraryInfoQe).stream().map(i->i.getConceptId()).distinct().collect(Collectors.toList());
+    		List<Long> conceptIdList = libraryinfoFacade.list(libraryInfoQe).stream().map(i->i.getConceptId()).distinct().collect(Collectors.toList());
+    		if(ListUtil.isNotEmpty(conceptIdList)){
+    			conceptQe.in("id", conceptIdList);
+    		}else{
+    			conceptQe.eq("id", -999999999);
+    		}
     	}
-    	
-    	Page<Concept> conceptPage = new Page<>(getAllInformationVO.getCurrent(),getAllInformationVO.getSize());
-    	QueryWrapper<Concept> conceptQe = new QueryWrapper<>();
-    	conceptQe.in(ListUtil.isNotEmpty(conceptIdList), "id", conceptIdList);
     	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());
@@ -837,7 +836,7 @@ public class ConceptFacade extends ConceptServiceImpl {
 
         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 + "无标准术语!");
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, lineNumStr + "同义词中缺少标准词本体!");
         }
         if (addConceptInfoDetailVOMainList.size() > 1) {
             throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, lineNumStr + "标准术语只能有一个!");
@@ -859,13 +858,13 @@ public class ConceptFacade extends ConceptServiceImpl {
         	conceptCommon.setGmtModified(now);
         	conceptCommon.setModifier(currentUser);
     	}
-
+    	
         List<LibraryInfo> extLibraryInfoList = Lists.newArrayList();
         addConceptInfoVO.getDetailList().forEach(a->{
         	List<LibraryInfo> libraryInfoListAll = libraryInfoListAllMap.get(a.getName());
-        	if(libraryInfoListAll!=null){
+        	if(ListUtil.isNotEmpty(libraryInfoListAll)){
         		libraryInfoListAll = libraryInfoListAll.stream().filter(b->b.getTypeId().intValue()==typeId.intValue()).collect(Collectors.toList());
-        		if(libraryInfoListAll!=null){
+        		if(ListUtil.isNotEmpty(libraryInfoListAll)){
         			extLibraryInfoList.add(libraryInfoListAll.get(0));
         		}
         	}
@@ -969,19 +968,24 @@ public class ConceptFacade extends ConceptServiceImpl {
         }
         
         List<ConceptCommon> saveOrUpdateConceptCommonList = Lists.newArrayList();
-        QueryWrapper<ConceptCommon> conceptCommonQe = new QueryWrapper<>();
-        conceptCommonQe.in("concept_id", conceptIds);
-        Map<Long,ConceptCommon> conceptCommonMap = conceptCommonFacade.list(conceptCommonQe).stream().collect(Collectors.toMap(ConceptCommon::getConceptId, i->i));
-        addConceptInfoVOList.forEach(i->{
+        Map<Long,ConceptCommon> conceptCommonMap = null;
+        if(ListUtil.isNotEmpty(conceptIds)){
+        	QueryWrapper<ConceptCommon> conceptCommonQe = new QueryWrapper<>();
+            conceptCommonQe.in("concept_id", conceptIds);
+            conceptCommonMap = conceptCommonFacade.list(conceptCommonQe).stream().collect(Collectors.toMap(ConceptCommon::getConceptId, i->i));
+        }
+        for(AddConceptInfoVO i : addConceptInfoVOList){
         	if(i.getConceptCommon()!=null){
-        		if(i.getConceptId()!=null){
+        		if(i.getConceptId()!=null&&conceptCommonMap!=null){
             		i.getConceptCommon().setId(conceptCommonMap.get(i.getConceptId()).getId());
             	}
             	i.getConceptCommon().setConceptId(i.getConcept().getId());
             	saveOrUpdateConceptCommonList.add(i.getConceptCommon());
         	}
-        });
-        conceptCommonService.saveOrUpdateBatch(saveOrUpdateConceptCommonList);
+        }
+        if(ListUtil.isNotEmpty(saveOrUpdateConceptCommonList)){
+        	conceptCommonService.saveOrUpdateBatch(saveOrUpdateConceptCommonList);
+        }
     }
     
     @SuppressWarnings("deprecation")

+ 11 - 6
knowledgeman-service/src/main/java/com/diagbot/facade/RelationFacade.java

@@ -282,7 +282,7 @@ public class RelationFacade extends RelationServiceImpl {
         StringBuffer sbf = new StringBuffer();
         InputStream inputStream = null;
         Workbook wb = null;
-        String title_1="",title_2="",title_3="",title_4="";
+        String title_1="",title_2="",title_3="",title_4="",title_5="";
         try {
             if (!file.isEmpty()) {
                 inputStream = file.getInputStream();
@@ -301,7 +301,7 @@ public class RelationFacade extends RelationServiceImpl {
                             
                             Sheet sheet = wb.getSheetAt(0);
                             int count = 0;
-                            String startName, startType, endName, endType;
+                            String startName, startType, endName, endType, relationName;
                             for (Row row : sheet) {
                                 count++;
                                 if(row == null){
@@ -312,23 +312,27 @@ public class RelationFacade extends RelationServiceImpl {
                                 	title_2 = getValue(row.getCell(1)).trim().replace(" ", "");
                                 	title_3 = getValue(row.getCell(2)).trim().replace(" ", "");
                                 	title_4 = getValue(row.getCell(3)).trim().replace(" ", "");
+                                	title_5 = getValue(row.getCell(4)).trim().replace(" ", "");
                                     continue;
                                 }
                                 startName = getValue(row.getCell(0)).trim().replace(" ", "");
                                 startType = getValue(row.getCell(1)).trim().replace(" ", "");
                                 endName = getValue(row.getCell(2)).trim().replace(" ", "");
                                 endType = getValue(row.getCell(3)).trim().replace(" ", "");
+                                relationName = getValue(row.getCell(4)).trim().replace(" ", "");
                                 if(StringUtil.isEmpty(startName) && StringUtil.isEmpty(startType)
-                                        && StringUtil.isEmpty(endName) && StringUtil.isEmpty(endType)){
+                                        && StringUtil.isEmpty(endName) && StringUtil.isEmpty(endType)
+                                        && StringUtil.isEmpty(relationName)){
                                 	continue;
                                 }
                                 if (StringUtil.isEmpty(startName) || StringUtil.isEmpty(startType)
-                                        || StringUtil.isEmpty(endName) || StringUtil.isEmpty(endType)) {
+                                        || StringUtil.isEmpty(endName) || StringUtil.isEmpty(endType)
+                                        || StringUtil.isEmpty(relationName)) {
                                     sbf.append("第" + count + "行数据不完整;").append("<br/>");
                                     continue;
                                 }
                                 
-                                addRelationInfoVOList.add(new AddRelationInfoVO(startName,startType,endName,endType,"包含于",count));
+                                addRelationInfoVOList.add(new AddRelationInfoVO(startName,startType,endName,endType,relationName,count));
                             }
                         } else {
                             sbf.append("非excel文件无法解析!").append("<br/>");
@@ -363,7 +367,8 @@ public class RelationFacade extends RelationServiceImpl {
         if(title_1.indexOf("关系起点术语名称")==-1
         		||title_2.indexOf("关系起点术语类型")==-1
         		||title_3.indexOf("关系终点术语名称")==-1
-        		||title_4.indexOf("关系终点术语类型")==-1){
+        		||title_4.indexOf("关系终点术语类型")==-1
+        		||title_5.indexOf("关系类型名称")==-1){
         	throw new CommonException(CommonErrorCode.RPC_ERROR,"导入数据不正确,请选择正确数据导入!");
         }
         

+ 15 - 12
knowledgeman-service/src/main/java/com/diagbot/web/UploadController.java

@@ -1,6 +1,7 @@
 package com.diagbot.web;
 
 import com.diagbot.dto.FileDTO;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.UploadFacade;
 import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.StringUtil;
@@ -18,6 +19,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.File;
 
 @RestController
 @Api(value = "文件上传API", tags = { "知识库标准化-文件上传API" })
@@ -30,22 +32,23 @@ public class UploadController {
     @ApiOperation(value = "知识库标准化-文件上传")
     @CrossOrigin(allowCredentials = "true", allowedHeaders = "*", methods = { RequestMethod.POST }, origins = "*")
     @PostMapping(value = "/uploadImage", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
-    public String singleFileUpload(@RequestParam("upfile") MultipartFile file, HttpServletRequest request, HttpServletResponse response) {
-        FileDTO fileDTO = uploadFacade.singleFileUpload(file);
-        String data = FastJsonUtils.getBeanToJson(fileDTO);
-        response.setContentType("text/plain;charset=UTF-8");
-
-        String callback = request.getParameter("callback");//客户端请求参数
-        if (callback != null && StringUtil.isNotBlank(callback)) {
-            data = callback + "(" + data + ")";
+    public RespDTO<FileDTO> singleFileUpload(@RequestParam("upfile") MultipartFile file) {
+        FileDTO data = uploadFacade.singleFileUpload(file);
+        if (data.getState().equals("FAILURE")) {
+            return RespDTO.onError(data.getInfo());
+        } else {
+            return RespDTO.onSuc(data);
         }
-        return data;
     }
 
     @PostMapping("/deleteRemoteFile")
     @ApiOperation(value = "知识库标准化-文件删除")
-    public String deleteRemoteFile(@RequestParam("path") String path) {
-        String data = FastJsonUtils.getBeanToJson(uploadFacade.deleteRemoteFile(path));
-        return data;
+    public RespDTO<FileDTO> deleteRemoteFile(@RequestParam("path") String path) {
+        FileDTO data = uploadFacade.deleteRemoteFile(path);
+        if (data.getState().equals("FAILURE")) {
+            return RespDTO.onError(data.getInfo());
+        } else {
+            return RespDTO.onSuc(data);
+        }
     }
 }

+ 3 - 2
ltapi-service/src/main/java/com/diagbot/enums/FeatureTypeEnum.java

@@ -11,7 +11,8 @@ import lombok.Setter;
 public enum FeatureTypeEnum implements KeyedNamed {
     Symptom(1, "症状"),
     Other(3, "其他史"),
-    Vital(4, "查体"),
+    VitalResult(4, "查体结果"),
+    VitalIndex(42, "查体指标"),
     Lis(5, "化验"),
     Pacs(6, "辅检"),
     Disease(7, "诊断"),
@@ -54,4 +55,4 @@ public enum FeatureTypeEnum implements KeyedNamed {
     public String getName() {
         return name;
     }
-}
+}

+ 2 - 1
ltapi-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -56,7 +56,8 @@ public class PushFacade {
         if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Other.getKey()))) {
         }
         //查体
-        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Vital.getKey()))) {
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.VitalResult.getKey())) ||
+                featureTypeSet.contains(String.valueOf(FeatureTypeEnum.VitalIndex.getKey()))) {
             List<ConceptPushDTO> vitals = data.getVital();
             pushDTO.setVital(vitals);
         }

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

@@ -47,7 +47,7 @@ public class PushController {
                     "lis:source:数据来源(必填),Integer<br>" +
                     "pacs:辅检,String<br>" +
                     "diag:诊断,String<br>" +
-                    "featureType:类型(必填),1:症状,3:其他史,4:查体,5:化验,6:辅检,7:诊断,22-指标,String<br>" +
+                    "featureType:类型(必填),1:症状,3:其他史,4:查体结果,42:查体指标,5:化验,6:辅检,7:诊断,22-指标,String<br>" +
                     "diseaseName:取治疗方案的诊断,String<br>" +
                     "scaleName:量表名称,String<br>" +
                     "disType:诊断类型,1-慢病,2-急诊,普通病不填,Integer<br>" +

+ 4 - 1
prec-service/src/main/java/com/diagbot/vo/GetEvaluatorPageVO.java

@@ -2,6 +2,8 @@ package com.diagbot.vo;
 
 import javax.validation.constraints.NotBlank;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
@@ -12,10 +14,11 @@ import lombok.Setter;
  * @author: rengb
  * @time: 2018/11/19 18:58
  */
+@SuppressWarnings({ "rawtypes", "serial" })
 @ApiModel(value="儿童体质辨识--获取分页信息--接口传参")
 @Getter
 @Setter
-public class GetEvaluatorPageVO {
+public class GetEvaluatorPageVO extends Page{
 	
     /**
      * 姓名

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

@@ -329,7 +329,7 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
         dictionaryInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("group_type", 1)
                 .eq("return_type", 1)
-                .orderByDesc("order_no")
+                .orderByAsc("order_no")
                 .notIn("val",types);
         List<DictionaryInfo> dictionaryInfoList = dictionaryFacade.list(dictionaryInfoQueryWrapper);
         List<GetModuleTypeDTO> getModuleTypeDTOS = new ArrayList<>();