Quellcode durchsuchen

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

# Conflicts:
#	src/main/java/com/diagbot/entity/node/Group.java
#	src/main/java/com/diagbot/repository/PacsNameNode.java
zhaops vor 4 Jahren
Ursprung
Commit
39fd56ea19
58 geänderte Dateien mit 1385 neuen und 69 gelöschten Zeilen
  1. 24 0
      doc/001.00000000初始化脚本/disease_filter.sql
  2. 17 0
      src/main/java/com/diagbot/client/IcssPush5ServiceClient.java
  3. 11 0
      src/main/java/com/diagbot/client/hystrix/IcssPush5ServiceHystrix.java
  4. 4 1
      src/main/java/com/diagbot/config/CacheDeleteInit.java
  5. 70 0
      src/main/java/com/diagbot/entity/TranHospitalFilter.java
  6. 100 0
      src/main/java/com/diagbot/entity/TranHospitalInfo.java
  7. 80 0
      src/main/java/com/diagbot/entity/TranLisConfigIcss.java
  8. 3 0
      src/main/java/com/diagbot/entity/node/Group.java
  9. 3 0
      src/main/java/com/diagbot/entity/node/Lis.java
  10. 1 1
      src/main/java/com/diagbot/entity/node/Vital.java
  11. 53 0
      src/main/java/com/diagbot/enums/DiseasePushTypeEnum.java
  12. 1 0
      src/main/java/com/diagbot/enums/RedisEnum.java
  13. 10 0
      src/main/java/com/diagbot/facade/CacheFacade.java
  14. 1 0
      src/main/java/com/diagbot/facade/CommonFacade.java
  15. 27 11
      src/main/java/com/diagbot/facade/NeoFacade.java
  16. 18 0
      src/main/java/com/diagbot/facade/PushFacade.java
  17. 29 0
      src/main/java/com/diagbot/facade/TranHospitalInfoFacade.java
  18. 121 0
      src/main/java/com/diagbot/facade/TranLisConfigIcssFacade.java
  19. 16 0
      src/main/java/com/diagbot/icss5/ConceptBaseDTO.java
  20. 19 0
      src/main/java/com/diagbot/icss5/ConceptPushDTO.java
  21. 15 0
      src/main/java/com/diagbot/icss5/HosCodeVO.java
  22. 18 0
      src/main/java/com/diagbot/icss5/LisConfigVO.java
  23. 49 0
      src/main/java/com/diagbot/icss5/LisSourceEnum.java
  24. 153 0
      src/main/java/com/diagbot/icss5/MRBaseData.java
  25. 51 0
      src/main/java/com/diagbot/icss5/PushDTO.java
  26. 15 0
      src/main/java/com/diagbot/icss5/PushVO.java
  27. 40 0
      src/main/java/com/diagbot/icss5/SearchBaseData.java
  28. 19 0
      src/main/java/com/diagbot/icss5/SearchVO.java
  29. 16 0
      src/main/java/com/diagbot/mapper/TranHospitalFilterMapper.java
  30. 16 0
      src/main/java/com/diagbot/mapper/TranHospitalInfoMapper.java
  31. 16 0
      src/main/java/com/diagbot/mapper/TranLisConfigIcssMapper.java
  32. 14 2
      src/main/java/com/diagbot/process/OtherTipProcess.java
  33. 31 11
      src/main/java/com/diagbot/process/PushProcess.java
  34. 5 5
      src/main/java/com/diagbot/repository/CombiOperationNode.java
  35. 17 2
      src/main/java/com/diagbot/repository/MedRegNameNode.java
  36. 2 2
      src/main/java/com/diagbot/repository/MedicineCodeNode.java
  37. 15 5
      src/main/java/com/diagbot/repository/MedicineNode.java
  38. 25 14
      src/main/java/com/diagbot/repository/PacsNameNode.java
  39. 8 3
      src/main/java/com/diagbot/repository/PacsSubNameNode.java
  40. 10 4
      src/main/java/com/diagbot/repository/YiBaoOperationNameNode.java
  41. 16 0
      src/main/java/com/diagbot/service/TranHospitalFilterService.java
  42. 16 0
      src/main/java/com/diagbot/service/TranHospitalInfoService.java
  43. 16 0
      src/main/java/com/diagbot/service/TranLisConfigIcssService.java
  44. 20 0
      src/main/java/com/diagbot/service/impl/TranHospitalFilterServiceImpl.java
  45. 20 0
      src/main/java/com/diagbot/service/impl/TranHospitalInfoServiceImpl.java
  46. 20 0
      src/main/java/com/diagbot/service/impl/TranLisConfigIcssServiceImpl.java
  47. 13 2
      src/main/java/com/diagbot/util/CoreUtil.java
  48. 6 3
      src/main/java/com/diagbot/util/NeoUtil.java
  49. 1 0
      src/main/java/com/diagbot/util/RedisUtil.java
  50. 1 0
      src/main/java/com/diagbot/vo/NeoPushVO.java
  51. 1 1
      src/main/java/com/diagbot/web/CoreController.java
  52. 2 2
      src/main/java/com/diagbot/web/EntityController.java
  53. 41 0
      src/main/java/com/diagbot/web/TranLisController.java
  54. 3 0
      src/main/resources/application-dev.yml
  55. 4 0
      src/main/resources/application-local.yml
  56. 18 0
      src/main/resources/mapper/TranHospitalFilterMapper.xml
  57. 24 0
      src/main/resources/mapper/TranHospitalInfoMapper.xml
  58. 20 0
      src/main/resources/mapper/TranLisConfigIcssMapper.xml

+ 24 - 0
doc/001.00000000初始化脚本/disease_filter.sql

@@ -0,0 +1,24 @@
+use `cdss`;
+
+ALTER TABLE tran_hospital_info ADD  COLUMN `push_mode` int(1) NOT NULL DEFAULT '0' COMMENT '0:不过滤 1:过滤' AFTER `connect`;
+
+-- ----------------------------
+-- Table structure for tran_hospital_filter
+-- ----------------------------
+DROP TABLE IF EXISTS `tran_hospital_filter`;
+CREATE TABLE `tran_hospital_filter` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `hospital_id` bigint(20) NOT NULL COMMENT '医院id',
+  `unique_name` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT '标准名称',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='医院疾病过滤表';
+
+-- ----------------------------
+-- Records of tran_hospital_filter
+-- ----------------------------
+INSERT INTO `tran_hospital_filter` VALUES ('1', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '急性胰腺炎');

+ 17 - 0
src/main/java/com/diagbot/client/IcssPush5ServiceClient.java

@@ -0,0 +1,17 @@
+package com.diagbot.client;
+
+
+/**
+ * @Description: ICSS5.0推送
+ * @author: Mark Huang
+ * @time: 2019/12/13 9:52
+ */
+//@FeignClient(value = "IcssPush5-service", url="${IcssPush5.url}", fallback = IcssPush5ServiceHystrix.class)
+//public interface IcssPush5ServiceClient {
+//
+//    @PostMapping(value = "/api/ltapi/push/push")
+//    RespDTO<PushDTO> getAnnotation(@RequestBody com.diagbot.icss5.PushVO searchData);
+//}
+
+
+

+ 11 - 0
src/main/java/com/diagbot/client/hystrix/IcssPush5ServiceHystrix.java

@@ -0,0 +1,11 @@
+package com.diagbot.client.hystrix;
+
+//@Component
+//@Slf4j
+//public class IcssPush5ServiceHystrix implements IcssPush5ServiceClient {
+//    @Override
+//    public RespDTO<PushDTO> getAnnotation(@RequestBody com.diagbot.icss5.PushVO searchData) {
+//        log.error("【hystrix】调用{}异常", "CRF-getAnnotation");
+//        return null;
+//    }
+//}

+ 4 - 1
src/main/java/com/diagbot/config/CacheDeleteInit.java

@@ -42,7 +42,10 @@ public class CacheDeleteInit implements CommandLineRunner {
         log.info("CDSS-CORE服务启动加载症状特征缓存成功!");
 
         cacheFacade.getDiseaseCorrespondCache();
-        log.info("CDSS-CORE服务启动加载疾病对应缓存成功!");
+        log.info("CDSS-CORE服务启动加载疾病对应ICD10缓存成功!");
+
+        cacheFacade.getdiseaseFilterCache();
+        log.info("CDSS-CORE服务启动加载疾病过滤缓存成功!");
 
         cacheFacade.getSymptomMainCache();
         log.info("CDSS-CORE服务启动加载典型症状缓存成功!");

+ 70 - 0
src/main/java/com/diagbot/entity/TranHospitalFilter.java

@@ -0,0 +1,70 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 诊断映射表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-18
+ */
+@Data
+public class TranHospitalFilter 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 hospitalId;
+
+    /**
+     * 标准名称
+     */
+    private String uniqueName;
+
+    /**
+     * 病历数
+     */
+    private Long docNum;
+
+
+}

+ 100 - 0
src/main/java/com/diagbot/entity/TranHospitalInfo.java

@@ -0,0 +1,100 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 医院信息表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-18
+ */
+@Data
+public class TranHospitalInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 医院编码
+     */
+    private String code;
+
+    /**
+     * 医院名称
+     */
+    private String name;
+
+    /**
+     * 医院地址
+     */
+    private String address;
+
+    /**
+     * 医院名称拼音
+     */
+    private String spell;
+
+    /**
+     * 状态:0.禁用1.启用
+     */
+    private Integer status;
+
+    /**
+     * 排序号
+     */
+    private Integer orderNo;
+
+    /**
+     * 是否对接(0-不对接,1-对接)
+     */
+    private Integer connect;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 0:不过滤 1:过滤
+     */
+    private Integer pushMode;
+
+
+}

+ 80 - 0
src/main/java/com/diagbot/entity/TranLisConfigIcss.java

@@ -0,0 +1,80 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 套餐字段映射公表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-17
+ */
+@Data
+public class TranLisConfigIcss implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 医院编码
+     */
+    private String hospitalCode;
+
+    /**
+     * 套餐名
+     */
+    private String mealName;
+
+    /**
+     * 项目名
+     */
+    private String itemName;
+
+    /**
+     * 公表id
+     */
+    private String uniqueId;
+
+    /**
+     * 公表名
+     */
+    private String uniqueName;
+
+
+}

+ 3 - 0
src/main/java/com/diagbot/entity/node/Group.java

@@ -28,6 +28,9 @@ public class Group extends BaseNode  {
 	@Property(name = "范围")
 	private Integer range;
 
+    @Property(name = "禁忌人群指标")
+    private String groupidx;
+
 	@Relationship(type = "实验室检查名称禁忌禁忌人群", direction = Relationship.INCOMING)
 	private Set<LisNameGroup> lisnameGroups = new HashSet<>();
 

+ 3 - 0
src/main/java/com/diagbot/entity/node/Lis.java

@@ -30,6 +30,9 @@ public class Lis extends BaseNode  {
 	@Property(name = "范围")
 	private Integer range;
 
+	@Property(name = "实验室检查指标")
+	private String lisidx;
+
 	@Relationship(type = "医保手术和操作名称禁忌实验室检查", direction = Relationship.INCOMING)
 	private Set<YiBaoOperationNameLis> yibaooperationnameLis = new HashSet<>();
 

+ 1 - 1
src/main/java/com/diagbot/entity/node/Vital.java

@@ -30,7 +30,7 @@ public class Vital extends BaseNode  {
 	private Integer range;
 
 	@Property(name = "体征指标")
-	private String vitalname;
+	private String vitalidx;
 
 	@Relationship(type = "辅助检查名称禁忌体征", direction = Relationship.INCOMING)
 	private Set<PacsNameVital> pacsVitals = new HashSet<>();

+ 53 - 0
src/main/java/com/diagbot/enums/DiseasePushTypeEnum.java

@@ -0,0 +1,53 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @author zhoutg
+ * @Description: 诊断推送类型
+ * @date 2018年10月11日 下午3:33:22
+ */
+
+public enum DiseasePushTypeEnum implements KeyedNamed {
+
+    gp(0, "全科"),
+    specialty(1, "专科");
+
+    @Setter
+    private int key;
+
+    @Setter
+    private String name;
+
+    DiseasePushTypeEnum(int key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static DiseasePushTypeEnum getEnum(int key) {
+        for (DiseasePushTypeEnum item : DiseasePushTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(int key) {
+        DiseasePushTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+
+}

+ 1 - 0
src/main/java/com/diagbot/enums/RedisEnum.java

@@ -18,6 +18,7 @@ public enum RedisEnum implements KeyedNamed {
     symptomFeature(6, "symptomFeature:"),
     symptomMainFeature(7, "symptomMainFeature:"),
     diseaseCorrespond(8, "diseaseCorrespond:"),
+    diseaseFilter(9, "diseaseFilter:"),
     diseaseType(2, "diseaseType:");
 
     @Setter

+ 10 - 0
src/main/java/com/diagbot/facade/CacheFacade.java

@@ -130,6 +130,16 @@ public class CacheFacade {
         neoFacade.diseaseCorrespondCache();
     }
 
+    /**
+     * 加载数据库中疾病过滤缓存
+     *
+     * @return
+     */
+    public void getdiseaseFilterCache() {
+        redisUtil.deleteByPrex(RedisEnum.diseaseFilter.getName());
+        neoFacade.diseaseFilterCache();
+    }
+
     /**
      * 加载图谱中的疾病对应的症状个数
      *

+ 1 - 0
src/main/java/com/diagbot/facade/CommonFacade.java

@@ -322,6 +322,7 @@ public class CommonFacade {
      */
     public NeoPushVO generatePushInput(WordCrfDTO wordCrfDTO) {
         NeoPushVO pushVO = new NeoPushVO();
+        pushVO.setHospitalId(wordCrfDTO.getHospitalId());
         ChiefLabel chiefLabel = wordCrfDTO.getChiefLabel();
         PresentLabel presentLabel = wordCrfDTO.getPresentLabel();
         List<Item> diags = wordCrfDTO.getDiag();

+ 27 - 11
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -1,6 +1,7 @@
 package com.diagbot.facade;
 
 import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.client.ChiefPresentSimilarityServiceClient;
@@ -11,12 +12,14 @@ import com.diagbot.entity.node.LisRemind;
 import com.diagbot.entity.relationship.LisRemindGroup;
 import com.diagbot.entity.relationship.LisRemindMedicine;
 import com.diagbot.entity.relationship.LisRemindYiBaoDiseaseName;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.RedisEnum;
 import com.diagbot.enums.StandConvertEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.mapper.GraphDiseaseCorrespondingMapper;
 import com.diagbot.mapper.SymptomFeatureMapper;
+import com.diagbot.mapper.TranHospitalFilterMapper;
 import com.diagbot.model.entity.PD;
 import com.diagbot.repository.*;
 import com.diagbot.util.ListUtil;
@@ -111,6 +114,8 @@ public class NeoFacade {
     SymptomFeatureMapper symptomFeatureMapper;
     @Autowired
     GraphDiseaseCorrespondingMapper graphDiseaseCorrespondingMapper;
+    @Autowired
+    TranHospitalFilterMapper tranHospitalFilterMapper;
 
     /**
      * 返回药品缓存信息
@@ -221,6 +226,21 @@ public class NeoFacade {
         }
     }
 
+    public void diseaseFilterCache() {
+        Map<String,Map> data = new HashMap<>();
+        QueryWrapper<TranHospitalFilter> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        List<TranHospitalFilter> tranHospitalFilters = tranHospitalFilterMapper.selectList(queryWrapper);
+        if (ListUtil.isNotEmpty(tranHospitalFilters)) {
+            Map<Long, List<TranHospitalFilter>> longListMap = tranHospitalFilters.stream().collect(Collectors.groupingBy(TranHospitalFilter::getHospitalId));
+            longListMap.forEach((x,y)->{
+                Map<String, Long> collect = y.stream().collect(Collectors.toMap(TranHospitalFilter::getUniqueName, TranHospitalFilter::getDocNum, (existing, replacement) -> replacement));
+                data.put(RedisEnum.diseaseFilter.getName() + x.toString(),collect);
+            });
+            redisTemplate.opsForValue().multiSet(data);
+        }
+    }
+
     public void symptomFeatureCache() {
         List<SymptomFeature> symptomFeatures = symptomFeatureMapper.selectList(null);
         if (ListUtil.isNotEmpty(symptomFeatures)) {
@@ -405,6 +425,12 @@ public class NeoFacade {
         pushSpeDis.removeAll(disByDiag);
         disByDiag.addAll(pushSpeDis);
 
+        Map diag_filters = (Map)redisUtil.get(RedisEnum.diseaseFilter.getName() + pushVO.getHospitalId().toString());
+        if(MapUtils.isNotEmpty(diag_filters)){
+            Set set = diag_filters.keySet();
+            disByDiag.retainAll(set);
+        }
+
         return disByDiag;
     }
 
@@ -758,7 +784,6 @@ public class NeoFacade {
             diseases = redisUtil.geth(allDis);
             allDis = diseases.stream().filter(x -> NeoUtil.matchBasic(x, gender_code, age) && NeoUtil.matchPds(x.get("name"), pd)
                     && NeoUtil.matchDept(x, depts)).map(x -> x.get("name")).collect(Collectors.toList());
-//            diseases.forEach(x -> dis_fbl.put(x.get("name"), Double.parseDouble(x.get("fbl"))));
             diseases.forEach(x ->{
                 String name = x.get("name");
                 double clafy = Double.parseDouble(x.get("clafy"));
@@ -767,11 +792,7 @@ public class NeoFacade {
         }
 
         Map<Long, List<String>> numberDiseasesMap = disCountSort(allDis);
-        /*if (MapUtils.isNotEmpty(numberDiseasesMap)) {
-            for (Map.Entry<Long, List<String>> ds : numberDiseasesMap.entrySet()) {
-                dises.addAll(ds.getValue());
-            }
-        }*/
+
         //根据发病率排序
         //        Map<String, Double> disdistributionCache = self.getDisdistributionCache();
         Map<Long, Map<String, Double>> disPack = new LinkedHashMap<>();
@@ -803,11 +824,6 @@ public class NeoFacade {
     }
 
     public List<String> getDisByPacsResult(List<String> pacsResult) {
-
-        /*List<PacsResult> byNameIn = pacsResultRepository.findByNameIn(pacsResult);
-        List<String> allDis = byNameIn.stream()
-                .map(z -> z.getDisease().stream().filter(o -> NeoUtil.matchBasic(o,sex,age)).map(y -> y.getName()).collect(Collectors.toList())).flatMap(List::stream)
-                .collect(Collectors.toList());*/
         List<String> allDis = pacsResultRepository.getDisByPacsResults(pacsResult);
         return allDis;
     }

+ 18 - 0
src/main/java/com/diagbot/facade/PushFacade.java

@@ -3,6 +3,7 @@ package com.diagbot.facade;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushPlanDTO;
 import com.diagbot.dto.WordCrfDTO;
+import com.diagbot.enums.DiseasePushTypeEnum;
 import com.diagbot.process.PushProcess;
 import com.diagbot.util.CoreUtil;
 import com.diagbot.util.ParamUtil;
@@ -31,9 +32,26 @@ public class PushFacade {
     NeoFacade neoFacade;
     @Autowired
     FollowupPlanInfoFacade followupPlanInfoFacade;
+    @Autowired
+    TranHospitalInfoFacade tranHospitalInfoFacade;
+
+    public PushDTO processAggreate(PushVO pushVo) {
+        PushDTO pushDTO = new PushDTO();
+        Integer pushMode = tranHospitalInfoFacade.getPushMode(pushVo.getHospitalId());
+        //全科推送,走5.0
+        if (pushMode.equals(DiseasePushTypeEnum.gp.getKey())) {
+            pushDTO = this.pushFacIcss(pushVo);
+        } else if (pushMode.equals(DiseasePushTypeEnum.specialty.getKey())) {
+            //专科推送,走6.0
+            pushDTO = this.pushFac(pushVo);
+        }
+
+        return pushDTO;
+    }
 
     /**
      * 推送调icss5.0接口
+     *
      * @param pushVo
      * @return
      */

+ 29 - 0
src/main/java/com/diagbot/facade/TranHospitalInfoFacade.java

@@ -0,0 +1,29 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.TranHospitalInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.TranHospitalInfoServiceImpl;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/11/19 15:21
+ */
+@Component
+public class TranHospitalInfoFacade extends TranHospitalInfoServiceImpl {
+//    @Cacheable(value = "cache", key = "'pushMode:' + #p0")
+    public Integer getPushMode(Long hospitalId) {
+        Integer pushMode = 0;
+        QueryWrapper<TranHospitalInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", hospitalId);
+        TranHospitalInfo tranHospitalInfo = this.getOne(queryWrapper, false);
+        if (null != tranHospitalInfo) {
+            pushMode = tranHospitalInfo.getPushMode();
+        }
+        return pushMode;
+    }
+}

+ 121 - 0
src/main/java/com/diagbot/facade/TranLisConfigIcssFacade.java

@@ -0,0 +1,121 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.biz.push.entity.Lis;
+import com.diagbot.entity.TranLisConfigIcss;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.icss5.LisConfigVO;
+import com.diagbot.icss5.LisSourceEnum;
+import com.diagbot.service.impl.TranLisConfigIcssServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author kwz
+ * @date 2020/11/17
+ * @time 15:25
+ * ICSS 化验转换
+ */
+@Component
+public class TranLisConfigIcssFacade {
+    @Autowired
+    TranLisConfigIcssServiceImpl tranLisConfigIcssService;
+
+    /**
+     * 根据医院编码获取化验公表映射关系 Map<mealName,Map<itemName,List<uniqueName>>>
+     *
+     * @return
+     */
+    public Map<String, Map<String, List<String>>> getLisConfigByMealNameAndHosCode(LisConfigVO lisConfigVO) {
+        Map<String, Map<String, List<String>>> retMap = new LinkedHashMap<>();
+        QueryWrapper<TranLisConfigIcss> lisConfigIcssQueryWrapper = new QueryWrapper<>();
+        lisConfigIcssQueryWrapper
+                .select("hospital_code,meal_name,ifnull(item_name,'') as item_name,unique_name,unique_id")
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_code", lisConfigVO.getHosCode());
+        if (ListUtil.isNotEmpty(lisConfigVO.getMealNameList())) {
+            lisConfigIcssQueryWrapper.in("meal_name", lisConfigVO.getMealNameList());
+        }
+        List<TranLisConfigIcss> lisConfigList = tranLisConfigIcssService.list(lisConfigIcssQueryWrapper);
+        Map<String, List<TranLisConfigIcss>> lisConfigMap
+                = EntityUtil.makeEntityListMap(lisConfigList, "mealName");
+        for (Map.Entry<String, List<TranLisConfigIcss>> entry : lisConfigMap.entrySet()) {
+            if (entry.getValue().size() > 0) {
+                Map<String, List<TranLisConfigIcss>> itemMap
+                        = EntityUtil.makeEntityListMap(entry.getValue(), "itemName");
+                Map<String, List<String>> itemNameMap = new LinkedHashMap<>();
+                for (Map.Entry<String, List<TranLisConfigIcss>> itemEntry : itemMap.entrySet()) {
+                    if (ListUtil.isNotEmpty(itemEntry.getValue())) {
+                        itemNameMap.put(itemEntry.getKey(), itemEntry
+                                .getValue()
+                                .stream()
+                                .map(lisConfig -> lisConfig.getUniqueName())
+                                .collect(Collectors.toList()));
+                    }
+                }
+                retMap.put(entry.getKey(), itemNameMap);
+            } else {
+                retMap.put(entry.getKey(), null);
+            }
+        }
+        return retMap;
+    }
+
+    /**
+     * 化验结果增加公表名
+     *
+     * @param lis
+     * @param hosCode
+     * @return
+     */
+    public List<Lis> addLisUniqueName(List<Lis> lis, String hosCode) {
+        if (ListUtil.isEmpty(lis)) {
+            return Lists.newLinkedList();
+        }
+        List<Lis> retLis = Lists.newLinkedList();
+        //化验项转公表内容,参数处理
+        List<String> mealNameList = lis
+                .stream()
+                .map(lisResult -> lisResult.getName()).collect(Collectors.toList());
+        LisConfigVO lisConfigVO = new LisConfigVO();
+        lisConfigVO.setHosCode(hosCode);
+        lisConfigVO.setMealNameList(mealNameList);
+        Map<String, Map<String, List<String>>> lisConfigMap = getLisConfigByMealNameAndHosCode(lisConfigVO);
+        for (Lis lisResult : lis) {
+            lisResult.setSource(1);
+            //内部数据,获取标签时映射, 不二次映射
+            if (lisResult.getSource() == null || lisResult.getSource().equals(LisSourceEnum.Inner.getKey())) {
+                retLis.add(lisResult);
+                continue;
+            }
+            if (lisResult.getDetailName() == null) {
+                lisResult.setDetailName("");
+            }
+            Map<String, List<String>> itemMap = lisConfigMap.get(lisResult.getName());
+            if (itemMap != null) {
+                List<String> uniqueNameList = itemMap.get(lisResult.getDetailName());
+                if (ListUtil.isNotEmpty(uniqueNameList)) {
+                    //化验公表映射出多项时,拆分成多个公表项数据,指标值保持一致
+                    for (String uniqueName : uniqueNameList) {
+                        Lis lisResult_new = new Lis();
+                        BeanUtil.copyProperties(lisResult, lisResult_new);
+                        lisResult_new.setUniqueName(uniqueName);
+                        retLis.add(lisResult_new);
+                    }
+                } else {
+                    retLis.add(lisResult);
+                }
+            }
+        }
+        return retLis;
+    }
+}

+ 16 - 0
src/main/java/com/diagbot/icss5/ConceptBaseDTO.java

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

+ 19 - 0
src/main/java/com/diagbot/icss5/ConceptPushDTO.java

@@ -0,0 +1,19 @@
+package com.diagbot.icss5;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:推理返回标签(概念)
+ * @Author:zhaops
+ * @time: 2019/5/7 20:06
+ */
+@Getter
+@Setter
+public class ConceptPushDTO extends ConceptBaseDTO {
+    private Integer libType;  //词性
+    private List<String> clientNames;//数据服务模式调用方名称
+    private Integer type;
+}

+ 15 - 0
src/main/java/com/diagbot/icss5/HosCodeVO.java

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

+ 18 - 0
src/main/java/com/diagbot/icss5/LisConfigVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.icss5;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description: 化验公表映射检索入参
+ * @Author:zhaops
+ * @time: 2019/7/6 15:52
+ */
+@Getter
+@Setter
+public class LisConfigVO extends HosCodeVO {
+    List<String> mealNameList;
+    List<String> uniqueNameList;
+}

+ 49 - 0
src/main/java/com/diagbot/icss5/LisSourceEnum.java

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

+ 153 - 0
src/main/java/com/diagbot/icss5/MRBaseData.java

@@ -0,0 +1,153 @@
+package com.diagbot.icss5;
+
+import com.diagbot.biz.push.entity.Item;
+import com.diagbot.biz.push.entity.Lis;
+import com.diagbot.biz.push.entity.Pacs;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description:病历基本信息
+ * @Author:zhaops
+ * @time: 2019/12/16 16:22
+ */
+@Getter
+@Setter
+public class MRBaseData {
+    /**
+     * 医院编码
+     */
+    private String hosCode = "";
+    /**
+     * 年龄
+     */
+    private Integer age;
+
+    /**
+     * 婚姻
+     */
+    private String marriage = "";
+    /**
+     * 主诉
+     */
+    private String chief = "";
+    /**
+     * 现病史
+     */
+    private String symptom = "";
+    /**
+     * 查体
+     */
+    private String vital = "";
+    /**
+     * 既往史
+     */
+    private String pasts = "";
+    /**
+     * 传染病史
+     */
+    private String infectious = "";
+    /**
+     * 手术外伤史
+     */
+    private String operation = "";
+    /**
+     * 过敏史
+     */
+    private String allergy = "";
+    /**
+     * 接种史
+     */
+    private String vaccination = "";
+    /**
+     * 个人史
+     */
+    private String personal = "";
+    /**
+     * 婚育史
+     */
+    private String marital = "";
+    /**
+     * 家族史
+     */
+    private String family = "";
+    /**
+     * 月经史
+     */
+    private String menstrual = "";
+    /**
+     * 其他史
+     */
+    private String other = "";
+    /**
+     * 化验文本数据
+     */
+    private String lisString = "";
+    /**
+     * 辅检文本数据
+     */
+    private String pacsString = "";
+    /**
+     * 诊断文本数据
+     */
+    private String diagString = "";
+    /**
+     * 药品文本数据
+     */
+    private String drugString = "";
+    /**
+     * 化验项目和结果
+     */
+    private List<Lis> lis = new ArrayList<>();
+    /**
+     * 辅检项目和结果
+     */
+    private List<Pacs> pacs = new ArrayList<>();
+    /**
+     * 诊断
+     */
+    private List<Item> diag = new ArrayList<>();
+    /**
+     * 药品
+     */
+    private List<Item> drug = new ArrayList<>();
+    /**
+     * 当前化验开单项
+     */
+    private List<Lis> lisOrder = new ArrayList<>();
+    /**
+     * 当前辅检开单项
+     */
+    private List<Pacs> pacsOrder = new ArrayList<>();
+    /**
+     * 当前诊断开单项
+     */
+    private List<Item> diagOrder = new ArrayList<>();
+    /**
+     * 当前药品开单项
+     */
+    private List<Item> drugOrder = new ArrayList<>();
+    /**
+     * 当前手术开单项
+     */
+    private List<Item> operationOrder = new ArrayList<>();
+    /**
+     * 其他开单项
+     */
+    private List<Item> otherOrder = new ArrayList<>();
+    /**
+     * 选中诊断
+     */
+    private Item diseaseName;
+    /**
+     * 诊断类型(0-普通病(默认不填),1-慢病,2-急诊)
+     */
+    private Integer disType = 0;
+    /**
+     * 量表名称
+     */
+    private String scaleName = "";
+}

+ 51 - 0
src/main/java/com/diagbot/icss5/PushDTO.java

@@ -0,0 +1,51 @@
+package com.diagbot.icss5;
+
+import com.diagbot.biz.push.entity.MedicalIndication;
+import com.diagbot.biz.push.entity.Treat;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 推理出参
+ * @Author:zhaops
+ * @time: 2018/11/20 13:44
+ */
+@Getter
+@Setter
+public class PushDTO {
+    /**
+     * 症状
+     */
+    private List<ConceptPushDTO> symptom;
+    /**
+     * 体征结果
+     */
+    private List<ConceptPushDTO> vital;
+    /**
+     * 化验
+     */
+    private List<ConceptPushDTO> lab;
+    /**
+     * 辅检
+     */
+    private List<ConceptPushDTO> pacs;
+    /**
+     * 诊断
+     */
+    private Map<String, List<ConceptPushDTO>> dis;
+    /**
+     * 病情提示
+     */
+    private List<MedicalIndication> medicalIndications;
+    /**
+     * 治疗方案
+     */
+    private Treat treat;
+    /**
+     * 有无病情提示标志(0:无,1:有)
+     */
+    private String hasIndications;
+}

+ 15 - 0
src/main/java/com/diagbot/icss5/PushVO.java

@@ -0,0 +1,15 @@
+package com.diagbot.icss5;
+
+import com.diagbot.biz.push.vo.SearchVO;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2018/11/20 13:38
+ */
+@Getter
+@Setter
+public class PushVO extends SearchVO {
+}

+ 40 - 0
src/main/java/com/diagbot/icss5/SearchBaseData.java

@@ -0,0 +1,40 @@
+package com.diagbot.icss5;
+
+import com.diagbot.biz.push.entity.MRBaseData;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:推理通用入参
+ * @Author:zhaops
+ * @time: 2019/12/11 14:16
+ */
+@Getter
+@Setter
+public class SearchBaseData extends MRBaseData {
+    /**
+     * 外部系统编码 用于返回映射数据,如果sysCode为空或null,则返回kl_standard_info标准名称
+     */
+    private String sysCode = "1";
+    /**
+     * 大数据返回内容截取长度
+     */
+    private Integer length = 10;
+
+    /**
+     * 推理类型(1:症状,4:查体结果,41:查体模板,42:查体指标,5:化验,6:辅检,7:诊断,8:治疗方案,11:管理评估,21:量表,22:病情提示-量表、计算公式、可能结果、危急值、开单合理性、异常值等)
+     */
+    private String featureType = "";
+    /**
+     * 规则类型(1:危机值提醒,2:开单合理性,3:管理评估,4:不良反应,5:药物推荐,6:异常值)
+     */
+    private String ruleType = "";
+    /**
+     * 是否映射(0:否,1:是)
+     */
+    private Integer isMapping;
+    /**
+     * 系统类型
+     */
+    private Integer sysType;
+}

+ 19 - 0
src/main/java/com/diagbot/icss5/SearchVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.icss5;
+
+import com.diagbot.biz.push.entity.SearchBaseData;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:推理个性化入参
+ * @Author:zhaops
+ * @time: 2019/12/11 14:18
+ */
+@Getter
+@Setter
+public class SearchVO extends SearchBaseData {
+    /**
+     * 性别(1:男,2:女,3:通用)
+     */
+    private Integer sex;
+}

+ 16 - 0
src/main/java/com/diagbot/mapper/TranHospitalFilterMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.TranHospitalFilter;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 诊断映射表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-18
+ */
+public interface TranHospitalFilterMapper extends BaseMapper<TranHospitalFilter> {
+
+}

+ 16 - 0
src/main/java/com/diagbot/mapper/TranHospitalInfoMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.TranHospitalInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 医院信息表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-18
+ */
+public interface TranHospitalInfoMapper extends BaseMapper<TranHospitalInfo> {
+
+}

+ 16 - 0
src/main/java/com/diagbot/mapper/TranLisConfigIcssMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.TranLisConfigIcss;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 套餐字段映射公表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-17
+ */
+public interface TranLisConfigIcssMapper extends BaseMapper<TranLisConfigIcss> {
+
+}

+ 14 - 2
src/main/java/com/diagbot/process/OtherTipProcess.java

@@ -62,7 +62,14 @@ public class OtherTipProcess {
                         map = groupRule.gravidityRule(wordCrfDTO);
                     }
                     if (CoreUtil.getMapFlag(map) == true) {
-                        String content = otherTipNeoDTO.getName() + otherTipNeoDTO.getDetailName();
+                        String content = "";
+                        if (otherTipNeoDTO.getName() == null || otherTipNeoDTO.getDetailName() == null
+                                || !otherTipNeoDTO.getName().equals(otherTipNeoDTO.getDetailName())) {
+                            content = otherTipNeoDTO.getName() + otherTipNeoDTO.getDetailName();
+                        } else {
+                            content = otherTipNeoDTO.getDetailName();
+                        }
+
                         if (StringUtil.isNotBlank(otherTipNeoDTO.getOtherValue())) {
                             content += otherTipNeoDTO.getOtherValue();
                         } else {
@@ -127,7 +134,12 @@ public class OtherTipProcess {
                     if (sb.toString().length() > 0) {
                         sb.append(",");
                     }
-                    sb.append(lis.getName() + lis.getDetailName() + CoreUtil.getLisValue(lis));
+                    if (lis.getName() == null || lis.getDetailName() == null
+                            || !lis.getName().equals(lis.getDetailName())) {
+                        sb.append(lis.getName() + lis.getDetailName() + CoreUtil.getLisValue(lis));
+                    } else {
+                        sb.append(lis.getDetailName() + CoreUtil.getLisValue(lis));
+                    }
                 }
             }
             // 辅检名称

+ 31 - 11
src/main/java/com/diagbot/process/PushProcess.java

@@ -14,6 +14,7 @@ import com.diagbot.enums.MedicalAdviceEnum;
 import com.diagbot.enums.StandConvertEnum;
 import com.diagbot.facade.CommonFacade;
 import com.diagbot.facade.NeoFacade;
+import com.diagbot.facade.TranLisConfigIcssFacade;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.IcssVo;
 import com.diagbot.vo.NeoPushVO;
@@ -22,6 +23,7 @@ import com.diagbot.vo.neoPushEntity.Diag;
 import com.diagbot.vo.neoPushEntity.DiagVo;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -43,9 +45,13 @@ public class PushProcess {
     @Autowired
     CommonFacade commonFacade;
     @Autowired
+    TranLisConfigIcssFacade tranLisConfigIcssFacade;
+    @Autowired
     IcssPushServiceClient icssPushServiceClient;
 
+
     public PushDTO processIcss(PushVO pushVo){
+
         List<Item> diag1 = pushVo.getDiag();
         int length = pushVo.getLength();
         Map<String, List<String>> typeWords = Maps.newHashMap();
@@ -53,10 +59,20 @@ public class PushProcess {
         List<String> pushDiags = Lists.newArrayList();
         PushDTO pushDTO = new PushDTO();
         IcssVo icssVo = pushVo2IcssVo(pushVo);
+//        String s = JSONObject.toJSONString(icssVo);
         Response<ResponseData> annotation = icssPushServiceClient.getAnnotation(icssVo);
         if(annotation != null){
             ResponseData data = annotation.getData();
             if(data != null){
+                Map<String, Map<String, String>> inputs = data.getInputs();
+                if(MapUtils.isNotEmpty(inputs)){
+                    List<String> words = new ArrayList<>(inputs.keySet());
+                    typeWords.put(StandConvertEnum.symptom.toString(),words);
+                    typeWords.put(StandConvertEnum.disease.toString(),words);
+                    typeWords.put(StandConvertEnum.pacs.toString(),words);
+                    typeWords.put(StandConvertEnum.lis.toString(),words);
+                    typeWords.put(StandConvertEnum.vital.toString(),words);
+                }
                 List<FeatureRate> dis = data.getDis();
                 if(ListUtil.isNotEmpty(dis)){
                     pushDiags = dis.stream().filter(x -> x.getDesc() == null || x.getDesc().contains("确诊") || x.getDesc().contains("拟诊"))
@@ -102,7 +118,7 @@ public class PushProcess {
      */
     public IcssVo pushVo2IcssVo(PushVO pushVo){
         IcssVo icssVo = new IcssVo();
-        icssVo.setAge(Integer.parseInt(pushVo.getAge()));
+        icssVo.setAge(new Double(pushVo.getAgeNum()).intValue());
         String sexs = "";
         Integer sex = pushVo.getSex();
         if(sex == 1){
@@ -116,26 +132,30 @@ public class PushProcess {
         icssVo.setVital(pushVo.getVital());
         icssVo.setPasts(pushVo.getPasts());
         icssVo.setPersonal(pushVo.getPersonal());
-        icssVo.setFeatureType(pushVo.getFeatureType());
+        icssVo.setFeatureType(pushVo.getFeatureType()+",7");
 
         List<Lis> lis = pushVo.getLis();
+        lis = tranLisConfigIcssFacade.addLisUniqueName(lis, "A001");
         List<PreResult> lis_icss = lis.stream().map(x ->{
             PreResult instantiate = BeanUtils.instantiate(PreResult.class);
             BeanUtils.copyProperties(x,instantiate);
-            instantiate.setValue(x.getValue().toString());
-            instantiate.setMaxValue(x.getMaxValue().toString());
-            instantiate.setMinValue(x.getMinValue().toString());
+            instantiate.setValue(x.getValue()==null?"":x.getValue().toString());
+            instantiate.setMaxValue(x.getMaxValue()==null?"":x.getMaxValue().toString());
+            instantiate.setMinValue(x.getMinValue()==null?"":x.getMinValue().toString());
             return instantiate;
         }).collect(Collectors.toList());
         icssVo.setLis(lis_icss);
 
         List<Pacs> pacs = pushVo.getPacs();
-        List<PreResult> pacs_icss = pacs.stream().map(x ->{
-            PreResult instantiate = new PreResult();
-            BeanUtils.copyProperties(x,instantiate);
-            return instantiate;
-        }).collect(Collectors.toList());
-        icssVo.setPacs(pacs_icss);
+        if(ListUtil.isNotEmpty(pacs)){
+            List<PreResult> pacs_icss = pacs.stream().map(x ->{
+                PreResult instantiate = new PreResult();
+                BeanUtils.copyProperties(x,instantiate);
+                return instantiate;
+            }).collect(Collectors.toList());
+            icssVo.setPacs(pacs_icss);
+        }
+
         if(ListUtil.isNotEmpty(pushVo.getDiag())){
             List<PreResult> diagOrder =  pushVo.getDiag().stream().map(x ->{
                 String name = x.getName();

+ 5 - 5
src/main/java/com/diagbot/repository/CombiOperationNode.java

@@ -49,9 +49,9 @@ public class CombiOperationNode {
 				if (NeoUtil.isExist(combiOplis.getLis())) {
 					Lis lis = combiOplis.getLis();
 					nodeInfo = new NodeInfo();
-					nodeInfo.setName(lis.getName());
+					nodeInfo.setName(lis.getLisidx());
 					nodeInfo.setTypeval(Constants.lis);
-					combiOpBillNeoDTO.getGroup().add(NeoUtil.updateNodeInfo(nodeInfo));
+					combiOpBillNeoDTO.getLis().add(NeoUtil.updateNodeInfo(nodeInfo));
 				}
 			}
 		}
@@ -65,7 +65,7 @@ public class CombiOperationNode {
 					nodeInfo = new NodeInfo();
 					nodeInfo.setName(pacsdesc.getName());
 					nodeInfo.setTypeval(Constants.pacsdesc);
-					combiOpBillNeoDTO.getGroup().add(NeoUtil.updateNodeInfo(nodeInfo));
+					combiOpBillNeoDTO.getPacsDesc().add(NeoUtil.updateNodeInfo(nodeInfo));
 				}
 			}
 		}
@@ -79,7 +79,7 @@ public class CombiOperationNode {
 					nodeInfo = new NodeInfo();
 					nodeInfo.setName(disease.getName());
 					nodeInfo.setTypeval(Constants.disease);
-					combiOpBillNeoDTO.getGroup().add(NeoUtil.updateNodeInfo(nodeInfo));
+					combiOpBillNeoDTO.getDisease().add(NeoUtil.updateNodeInfo(nodeInfo));
 				}
 			}
 		}
@@ -93,7 +93,7 @@ public class CombiOperationNode {
 					nodeInfo = new NodeInfo();
 					nodeInfo.setName(medAllergen.getName());
 					nodeInfo.setTypeval(Constants.medallergen);
-					combiOpBillNeoDTO.getGroup().add(NeoUtil.updateNodeInfo(nodeInfo));
+					combiOpBillNeoDTO.getMedallergens().add(NeoUtil.updateNodeInfo(nodeInfo));
 				}
 			}
 		}

+ 17 - 2
src/main/java/com/diagbot/repository/MedRegNameNode.java

@@ -102,12 +102,27 @@ public class MedRegNameNode {
 
     public DrugBillNeoDTO MedRegNametoDrugDTO(MedRegName medRegName, DrugBillNeoDTO drugBillNeoDTO) {
 
+        NodeInfo nodeInfo;
         Set<MedRegNameVital> medVitals = medRegName.getMedRegNameVital();
         for (MedRegNameVital medvital : medVitals) {
             if (NeoUtil.isExist(medvital)) {
                 if (NeoUtil.isExist(medvital.getVital())) {
-                    NodeNeoDTO nodeNeoDTO = NeoUtil.fillNodeNeoDTO(medvital.getVital());
-                    drugBillNeoDTO.setAgeNeoDTO(nodeNeoDTO);
+                    nodeInfo = new NodeInfo();
+                    Vital vital = medvital.getVital();
+                    String name = (vital.getVitalidx()==null)?vital.getName():vital.getVitalidx();
+                    nodeInfo.setName(name);
+                    nodeInfo.setMinval(NeoUtil.DoubletoBigDecimal(vital.getMinval()));
+                    nodeInfo.setMaxval(NeoUtil.DoubletoBigDecimal(vital.getMaxval()));
+                    nodeInfo.setUnit(vital.getUnit());
+                    nodeInfo.setRange(vital.getRange());
+                    nodeInfo.setTypeval(name);
+//                    NodeNeoDTO nodeNeoDTO = NeoUtil.fillNodeNeoDTO(medvital.getVital());
+                    if (name.equals(Constants.age)) {
+                        drugBillNeoDTO.setAgeNeoDTO(NeoUtil.updateNodeInfo(nodeInfo));
+                    }
+                    else {
+                        drugBillNeoDTO.getVitals().add(NeoUtil.updateNodeInfo(nodeInfo));
+                    }
                 }
             }
         }

+ 2 - 2
src/main/java/com/diagbot/repository/MedicineCodeNode.java

@@ -38,7 +38,7 @@ public class MedicineCodeNode {
         DrugBillNeoDTO drugBillNeoDTO = new DrugBillNeoDTO();
         NodeInfo nodeInfo = new NodeInfo();
 
-
+        /*
         Set<MedCodeNameMedClass> medCodeNameClass = medcode.getMedCodeNameMedclasss();
         for (MedCodeNameMedClass medCls : medCodeNameClass) {
             if (NeoUtil.isExist(medCls)) {
@@ -258,7 +258,7 @@ public class MedicineCodeNode {
                 }
             }
         }
-
+        */
 
         return drugBillNeoDTO;
     }

+ 15 - 5
src/main/java/com/diagbot/repository/MedicineNode.java

@@ -23,13 +23,23 @@ public class MedicineNode {
 
     public DrugBillNeoDTO MedicinetoDrugDTO(Medicine medicine) {
         DrugBillNeoDTO drugBillNeoDTO = new DrugBillNeoDTO();
+        NodeInfo nodeInfo;
 
         Set<MedicineVital> vitals = medicine.getMedicineVital();
-        for (MedicineVital vital : vitals) {
-            if (NeoUtil.isExist(vital)) {
-                if (NeoUtil.isExist(vital.getVital())) {
-                    NodeNeoDTO nodeNeoDTO = NeoUtil.fillNodeNeoDTO(vital.getVital());
-                    drugBillNeoDTO.setAgeNeoDTO(nodeNeoDTO);
+        for (MedicineVital medvital : vitals) {
+            if (NeoUtil.isExist(medvital)) {
+                if (NeoUtil.isExist(medvital.getVital())) {
+                    nodeInfo = new NodeInfo();
+                    Vital vital = medvital.getVital();
+                    String name = (vital.getVitalidx()==null)?vital.getName():vital.getVitalidx();
+                    nodeInfo.setName(name);
+                    nodeInfo.setMinval(NeoUtil.DoubletoBigDecimal(vital.getMinval()));
+                    nodeInfo.setMaxval(NeoUtil.DoubletoBigDecimal(vital.getMaxval()));
+                    nodeInfo.setUnit(vital.getUnit());
+                    nodeInfo.setRange(vital.getRange());
+                    nodeInfo.setTypeval(name);
+//                    NodeNeoDTO nodeNeoDTO = NeoUtil.fillNodeNeoDTO(vital.getVital());
+                    drugBillNeoDTO.setAgeNeoDTO(NeoUtil.updateNodeInfo(nodeInfo));
                 }
             }
         }

+ 25 - 14
src/main/java/com/diagbot/repository/PacsNameNode.java

@@ -3,6 +3,9 @@ package com.diagbot.repository;
 import com.diagbot.dto.BillNeoDTO;
 import com.diagbot.dto.PacsBillNeoDTO;
 import com.diagbot.entity.BaseNodeInfo;
+import com.diagbot.entity.node.*;
+import com.diagbot.entity.relationship.*;
+import com.diagbot.entity.relationship.base.BaseRelation;
 import com.diagbot.entity.node.Allergen;
 import com.diagbot.entity.node.BillConflictItem;
 import com.diagbot.entity.node.ClinicalFinding;
@@ -105,18 +108,24 @@ public class PacsNameNode {
 
 
         Set<PacsNameVital> pacsNamevitals = pacs.getPacsNameVitals();
-        for (PacsNameVital vital : pacsNamevitals) {
-            if (NeoUtil.isExist(vital)) {
-                if (NeoUtil.isExist(vital.getVital())) {
+        for (PacsNameVital PNvital : pacsNamevitals) {
+            if (NeoUtil.isExist(PNvital)) {
+                if (NeoUtil.isExist(PNvital.getVital())) {
                     nodeInfo = new NodeInfo();
-                    String name = vital.getVital().getName();
+                    Vital vital = PNvital.getVital();
+                    String name = (vital.getVitalidx()==null)?vital.getName():vital.getVitalidx();
                     nodeInfo.setName(name);
-                    nodeInfo.setMinval(NeoUtil.DoubletoBigDecimal(vital.getVital().getMinval()));
-                    nodeInfo.setMaxval(NeoUtil.DoubletoBigDecimal(vital.getVital().getMaxval()));
-                    nodeInfo.setUnit(vital.getVital().getUnit());
-                    nodeInfo.setRange(vital.getVital().getRange());
+                    nodeInfo.setMinval(NeoUtil.DoubletoBigDecimal(vital.getMinval()));
+                    nodeInfo.setMaxval(NeoUtil.DoubletoBigDecimal(vital.getMaxval()));
+                    nodeInfo.setUnit(vital.getUnit());
+                    nodeInfo.setRange(vital.getRange());
                     nodeInfo.setTypeval(Constants.vital);
-                    pacsBillNeoDTO.getVitals().add(NeoUtil.updateNodeInfo(nodeInfo));
+                    if (name.equals(Constants.age)) {
+                        pacsBillNeoDTO.setAgeNeoDTO(NeoUtil.updateNodeInfo(nodeInfo));
+                    }
+                    else {
+                        pacsBillNeoDTO.getVitals().add(NeoUtil.updateNodeInfo(nodeInfo));
+                    }
                 }
             }
         }
@@ -127,7 +136,7 @@ public class PacsNameNode {
             if (NeoUtil.isExist(lis)) {
                 if (NeoUtil.isExist(lis.getLis())) {
                     nodeInfo = new NodeInfo();
-                    nodeInfo.setName(lis.getLis().getName());
+                    nodeInfo.setName(lis.getLis().getLisidx());
                     nodeInfo.setMinval(NeoUtil.DoubletoBigDecimal(lis.getLis().getMinval()));
                     nodeInfo.setMaxval(NeoUtil.DoubletoBigDecimal(lis.getLis().getMaxval()));
                     nodeInfo.setUnit(lis.getLis().getUnit());
@@ -153,11 +162,13 @@ public class PacsNameNode {
 
 
         Set<PacsNameGroup> pacsNamegroups = pacs.getPacsNameGroups();
-        for (PacsNameGroup group : pacsNamegroups) {
-            if (NeoUtil.isExist(group)) {
-                if (NeoUtil.isExist(group.getGroup())) {
+        for (PacsNameGroup PNgroup : pacsNamegroups) {
+            if (NeoUtil.isExist(PNgroup)) {
+                if (NeoUtil.isExist(PNgroup.getGroup())) {
                     nodeInfo = new NodeInfo();
-                    nodeInfo.setName(group.getGroup().getName());
+                    Group group = PNgroup.getGroup();
+                    String name = (group.getGroupidx()==null)?group.getName():group.getGroupidx();
+                    nodeInfo.setName(name);
                     nodeInfo.setTypeval(Constants.group);
                     pacsBillNeoDTO.getGroup().add(NeoUtil.updateNodeInfo(nodeInfo));
                 }

+ 8 - 3
src/main/java/com/diagbot/repository/PacsSubNameNode.java

@@ -101,14 +101,19 @@ public class PacsSubNameNode {
         for (PacsSubNameVital vital : vitals) {
             if (NeoUtil.isExist(vital.getVital())) {
                 nodeInfo = new NodeInfo();
-                String name = vital.getVital().getName();
+                String name = vital.getVital().getVitalidx();
                 nodeInfo.setName(name);
                 nodeInfo.setMinval(NeoUtil.DoubletoBigDecimal(vital.getVital().getMinval()));
                 nodeInfo.setMaxval(NeoUtil.DoubletoBigDecimal(vital.getVital().getMaxval()));
                 nodeInfo.setUnit(vital.getVital().getUnit());
                 nodeInfo.setRange(vital.getVital().getRange());
                 nodeInfo.setTypeval(Constants.vital);
-                pacsBillNeoDTO.getVitals().add(NeoUtil.updateNodeInfo(nodeInfo));
+                if (name.equals(Constants.age)) {
+                    pacsBillNeoDTO.setAgeNeoDTO(NeoUtil.updateNodeInfo(nodeInfo));
+                }
+                else {
+                    pacsBillNeoDTO.getVitals().add(NeoUtil.updateNodeInfo(nodeInfo));
+                }
             }
         }
 
@@ -117,7 +122,7 @@ public class PacsSubNameNode {
         for (PacsSubNameLis lis : liss) {
             if (NeoUtil.isExist(lis.getLis())) {
                 nodeInfo = new NodeInfo();
-                nodeInfo.setName(lis.getLis().getName());
+                nodeInfo.setName(lis.getLis().getLisidx());
                 nodeInfo.setMinval(NeoUtil.DoubletoBigDecimal(lis.getLis().getMinval()));
                 nodeInfo.setMaxval(NeoUtil.DoubletoBigDecimal(lis.getLis().getMaxval()));
                 nodeInfo.setUnit(lis.getLis().getUnit());

+ 10 - 4
src/main/java/com/diagbot/repository/YiBaoOperationNameNode.java

@@ -114,14 +114,19 @@ public class YiBaoOperationNameNode {
                 if (NeoUtil.isExist(yiBaoOperationNamevital.getVital())) {
                     Vital vital = yiBaoOperationNamevital.getVital();
                     nodeInfo = new NodeInfo();
-                    String name = vital.getName();
+                    String name = vital.getVitalidx();
                     nodeInfo.setName(name);
                     nodeInfo.setMinval(NeoUtil.DoubletoBigDecimal(vital.getMinval()));
                     nodeInfo.setMaxval(NeoUtil.DoubletoBigDecimal(vital.getMaxval()));
                     nodeInfo.setUnit(vital.getUnit());
                     nodeInfo.setRange(vital.getRange());
                     nodeInfo.setTypeval(Constants.vital);
-                    opBillNeoDTO.getVitals().add(NeoUtil.updateNodeInfo(nodeInfo));
+                    if (name.equals(Constants.age)) {
+                        opBillNeoDTO.setAgeNeoDTO(NeoUtil.updateNodeInfo(nodeInfo));
+                    }
+                    else {
+                        opBillNeoDTO.getVitals().add(NeoUtil.updateNodeInfo(nodeInfo));
+                    }
                 }
             }
         }
@@ -132,7 +137,7 @@ public class YiBaoOperationNameNode {
                 if (NeoUtil.isExist(yiBaoOperationNameLis.getLis())) {
                     Lis lis = yiBaoOperationNameLis.getLis();
                     nodeInfo = new NodeInfo();
-                    nodeInfo.setName(lis.getName());
+                    nodeInfo.setName(lis.getLisidx());
                     nodeInfo.setMinval(NeoUtil.DoubletoBigDecimal(lis.getMinval()));
                     nodeInfo.setMaxval(NeoUtil.DoubletoBigDecimal(lis.getMaxval()));
                     nodeInfo.setUnit(lis.getUnit());
@@ -174,8 +179,9 @@ public class YiBaoOperationNameNode {
             if (NeoUtil.isExist(conflict_group)) {
                 if (NeoUtil.isExist(conflict_group.getGroup())) {
                     Group group = conflict_group.getGroup();
+                    String name = (group.getGroupidx()==null)?group.getName():group.getGroupidx();
                     nodeInfo = new NodeInfo();
-                    nodeInfo.setName(group.getName());
+                    nodeInfo.setName(name);
                     nodeInfo.setTypeval(Constants.group);
                     opBillNeoDTO.getGroup().add(NeoUtil.updateNodeInfo(nodeInfo));
                 }

+ 16 - 0
src/main/java/com/diagbot/service/TranHospitalFilterService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.TranHospitalFilter;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 诊断映射表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-18
+ */
+public interface TranHospitalFilterService extends IService<TranHospitalFilter> {
+
+}

+ 16 - 0
src/main/java/com/diagbot/service/TranHospitalInfoService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.TranHospitalInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 医院信息表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-18
+ */
+public interface TranHospitalInfoService extends IService<TranHospitalInfo> {
+
+}

+ 16 - 0
src/main/java/com/diagbot/service/TranLisConfigIcssService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.TranLisConfigIcss;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 套餐字段映射公表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-17
+ */
+public interface TranLisConfigIcssService extends IService<TranLisConfigIcss> {
+
+}

+ 20 - 0
src/main/java/com/diagbot/service/impl/TranHospitalFilterServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.TranHospitalFilter;
+import com.diagbot.mapper.TranHospitalFilterMapper;
+import com.diagbot.service.TranHospitalFilterService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 诊断映射表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-18
+ */
+@Service
+public class TranHospitalFilterServiceImpl extends ServiceImpl<TranHospitalFilterMapper, TranHospitalFilter> implements TranHospitalFilterService {
+
+}

+ 20 - 0
src/main/java/com/diagbot/service/impl/TranHospitalInfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.TranHospitalInfo;
+import com.diagbot.mapper.TranHospitalInfoMapper;
+import com.diagbot.service.TranHospitalInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 医院信息表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-18
+ */
+@Service
+public class TranHospitalInfoServiceImpl extends ServiceImpl<TranHospitalInfoMapper, TranHospitalInfo> implements TranHospitalInfoService {
+
+}

+ 20 - 0
src/main/java/com/diagbot/service/impl/TranLisConfigIcssServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.TranLisConfigIcss;
+import com.diagbot.mapper.TranLisConfigIcssMapper;
+import com.diagbot.service.TranLisConfigIcssService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 套餐字段映射公表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-17
+ */
+@Service
+public class TranLisConfigIcssServiceImpl extends ServiceImpl<TranLisConfigIcssMapper, TranLisConfigIcss> implements TranLisConfigIcssService {
+
+}

+ 13 - 2
src/main/java/com/diagbot/util/CoreUtil.java

@@ -310,14 +310,25 @@ public class CoreUtil {
         }
         if (StringUtil.isNotBlank(lis.getOtherValue())) {
             if (lis.getOtherValue().equals(nodeNeoDTO.getVal())) {
-                map.put("msg", lis.getName() + lis.getDetailName() + lis.getOtherValue());
+                // 套餐和明细一样,提示语只取其中一个
+                if (lis.getName() == null || lis.getDetailName() == null
+                        || !lis.getName().equals(lis.getDetailName())) {
+                    map.put("msg", lis.getName() + lis.getDetailName() + lis.getOtherValue());
+                } else {
+                    map.put("msg", lis.getDetailName() + lis.getOtherValue());
+                }
                 flag = true;
             }
         } else if (lis.getValue() != null) {
             double value = lis.getValue();
             flag = compareNum(nodeNeoDTO, value);
             if (flag) {
-                map.put("msg", lis.getName() + lis.getDetailName() + subZeroAndDot(String.valueOf(lis.getValue())));
+                if (lis.getName() == null || lis.getDetailName() == null
+                        || !lis.getName().equals(lis.getDetailName())) {
+                    map.put("msg", lis.getName() + lis.getDetailName() + subZeroAndDot(String.valueOf(lis.getValue())));
+                } else {
+                    map.put("msg", lis.getDetailName() + subZeroAndDot(String.valueOf(lis.getValue())));
+                }
             }
         }
         map.put("flag", flag);

+ 6 - 3
src/main/java/com/diagbot/util/NeoUtil.java

@@ -30,7 +30,7 @@ public class NeoUtil {
 
         String name = nodeInfo.getName();
         name = (null==name)?"":name;
-        name = datautil.removekey(name, Constants.conflict);
+//        name = datautil.removekey(name, Constants.conflict);
         nodeNeoDTO.setName(name);
 
         BigDecimal min = nodeInfo.getMinval();
@@ -225,12 +225,14 @@ public class NeoUtil {
     }
 
 
+    /*
     public static NodeNeoDTO fillNodeNeoDTO(Vital vital) {
         NodeNeoDTO nodeNeoDTO = new NodeNeoDTO();
         Integer range;
         BigDecimal max, min;
 
-        nodeNeoDTO.setName(vital.getName());
+        String name = (vital.getVitalidx()==null)?vital.getName():vital.getVitalidx();
+        nodeNeoDTO.setName(name);
 
         max = (vital.getMaxval()==null)?null:new BigDecimal(vital.getMaxval());
         nodeNeoDTO.setMax(max);
@@ -243,10 +245,11 @@ public class NeoUtil {
 
         nodeNeoDTO.setUnit(vital.getUnit());
 
-        nodeNeoDTO.setTermtype(vital.getVitalname());
+        nodeNeoDTO.setTermtype(vital.getVitalidx());
 
         return nodeNeoDTO;
     }
+    */
 
 
     public static boolean inlist(String name, List<NodeNeoDTO> NodeNeoDTOs) {

+ 1 - 0
src/main/java/com/diagbot/util/RedisUtil.java

@@ -120,6 +120,7 @@ public class RedisUtil {
         return list;
     }
 
+
     public List<Map<String,String>> getSf(List<String> keys,String type) {
         keys = keys.stream().map(x ->type+x).collect(Collectors.toList());
         List<Map<String,String>> list = redisTemplate.opsForValue().multiGet(keys);

+ 1 - 0
src/main/java/com/diagbot/vo/NeoPushVO.java

@@ -14,6 +14,7 @@ import java.util.List;
  */
 @Data
 public class NeoPushVO {
+    private Long hospitalId;
     // 年龄(字符串)
     private String age;
     // 年龄数字数据

+ 1 - 1
src/main/java/com/diagbot/web/CoreController.java

@@ -46,7 +46,7 @@ public class CoreController {
     @PostMapping("/push")
     public RespDTO<PushDTO> push(@RequestBody PushVO pushVo) {
 //        PushDTO pushDTO = pushFacade.pushFac(pushVo);
-        PushDTO pushDTO1 = pushFacade.pushFacIcss(pushVo);
+        PushDTO pushDTO1 = pushFacade.processAggreate(pushVo);
         return RespDTO.onSuc(pushDTO1);
     }
 

+ 2 - 2
src/main/java/com/diagbot/web/EntityController.java

@@ -51,13 +51,13 @@ public class EntityController {
         return entityFacade.updateNeoNode(neoEntityVO);
     }
 
-    @ApiOperation(value = "关系删除API", notes = "")
+    @ApiOperation(value = "关系禁用API", notes = "")
     @PostMapping("/removeRelation")
     public NeoRelationDTO removeRelation(@RequestBody NeoRelationVO neoRelationVO) {
         return entityFacade.deleteNeoRelation(neoRelationVO);
     }
 
-    @ApiOperation(value = "实体删除API", notes = "")
+    @ApiOperation(value = "实体禁用API", notes = "")
     @PostMapping("/deleteNode")
     public NeoEntityDTO deleteNode(@RequestBody NeoEntityVO neoEntityVO) {
         return entityFacade.deleteNeoNode(neoEntityVO);

+ 41 - 0
src/main/java/com/diagbot/web/TranLisController.java

@@ -0,0 +1,41 @@
+package com.diagbot.web;
+
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.TranLisConfigIcssFacade;
+import com.diagbot.icss5.LisConfigVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 公表映射配置API
+ * @author: kongwz
+ * @time: 2018/8/30 10:12
+ */
+@RestController
+@RequestMapping("/tranLisConfig")
+@Api(value = "公表映射配置API[by:kongwz]", tags = { "公表映射配置API" })
+
+public class TranLisController {
+
+    @Autowired
+    private TranLisConfigIcssFacade tranLisConfigIcssFacade;
+
+    @ApiOperation(value = "根据医院编码和套餐名称获取化验公表映射关系:[by:kongwz]",
+            notes = "hosCode: 医院编码,必填<br>")
+    @PostMapping("/getLisConfigByMealNameAndHosCode")
+    @SysLogger("getLisConfigByMealNameAndHosCode")
+    public RespDTO<Map<String, Map<String, List<String>>>> getLisConfigByMealNameAndHosCode(@RequestBody LisConfigVO lisConfigVO) {
+        return RespDTO.onSuc(tranLisConfigIcssFacade.getLisConfigByMealNameAndHosCode(lisConfigVO));
+    }
+
+}

+ 3 - 0
src/main/resources/application-dev.yml

@@ -156,4 +156,7 @@ StandConvert:
   url: http://192.168.2.234:23232
   rate: 0.9
 
+IcssPush:
+  url: http://192.168.2.234:5008
+
 debugFlag: true

+ 4 - 0
src/main/resources/application-local.yml

@@ -159,4 +159,8 @@ StandConvert:
 IcssPush:
   url: http://192.168.2.234:5008
 
+Similarity:
+  url: http://192.168.2.234:12480
+
+
 debugFlag: true

+ 18 - 0
src/main/resources/mapper/TranHospitalFilterMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.TranHospitalFilterMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.TranHospitalFilter">
+        <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="hospital_id" property="hospitalId" />
+        <result column="unique_name" property="uniqueName" />
+        <result column="doc_num" property="docNum" />
+    </resultMap>
+
+</mapper>

+ 24 - 0
src/main/resources/mapper/TranHospitalInfoMapper.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.TranHospitalInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.TranHospitalInfo">
+        <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="code" property="code" />
+        <result column="name" property="name" />
+        <result column="address" property="address" />
+        <result column="spell" property="spell" />
+        <result column="status" property="status" />
+        <result column="order_no" property="orderNo" />
+        <result column="connect" property="connect" />
+        <result column="remark" property="remark" />
+        <result column="push_mode" property="pushMode" />
+    </resultMap>
+
+</mapper>

+ 20 - 0
src/main/resources/mapper/TranLisConfigIcssMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.TranLisConfigIcssMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.TranLisConfigIcss">
+        <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="hospital_code" property="hospitalCode" />
+        <result column="meal_name" property="mealName" />
+        <result column="item_name" property="itemName" />
+        <result column="unique_id" property="uniqueId" />
+        <result column="unique_name" property="uniqueName" />
+    </resultMap>
+
+</mapper>