ソースを参照

Merge branch 'master' into dev/word

zhoutg 4 年 前
コミット
c876300ba3

+ 22 - 0
src/main/java/com/diagbot/entity/node/BillConflictItem.java

@@ -0,0 +1,22 @@
+package com.diagbot.entity.node;
+
+import com.diagbot.entity.node.base.BaseNode;
+import com.diagbot.entity.relationship.LisNameLisAlias;
+import com.diagbot.entity.relationship.PacsNameBillConflictItem;
+import lombok.Getter;
+import lombok.Setter;
+import org.neo4j.ogm.annotation.NodeEntity;
+import org.neo4j.ogm.annotation.Relationship;
+
+import java.util.HashSet;
+import java.util.Set;
+
+@Setter
+@Getter
+@NodeEntity(label = "开单项互斥")
+public class BillConflictItem extends BaseNode  {
+
+	@Relationship(type = "辅助检查名称禁忌开单项互斥", direction = Relationship.INCOMING)
+	private Set<PacsNameBillConflictItem> pacsNameBillConflictItems = new HashSet<>();
+
+}

+ 8 - 5
src/main/java/com/diagbot/entity/node/PacsName.java

@@ -55,10 +55,13 @@ public class PacsName extends BaseNode  {
 	@Relationship(type = "辅助检查名称相关医保疾病名称", direction = Relationship.OUTGOING)
 	private Set<PacsNameYiBaoDiseaseName> pacsNameDisease = new HashSet<>();
 
-	@Relationship(type = "辅助检查名称开单互斥辅助检查名称", direction = Relationship.OUTGOING)
-	private Set<PacsNamePacsName> conflictPacsName_out = new HashSet<>();
-
-	@Relationship(type = "辅助检查名称开单互斥辅助检查名称", direction = Relationship.INCOMING)
-	private Set<PacsNamePacsName> conflictPacsName_in = new HashSet<>();
+	@Relationship(type = "辅助检查名称禁忌开单项互斥", direction = Relationship.OUTGOING)
+	private Set<PacsNameBillConflictItem> pacsNameBillConflictItems = new HashSet<>();
+
+//	@Relationship(type = "辅助检查名称开单互斥辅助检查名称", direction = Relationship.OUTGOING)
+//	private Set<PacsNamePacsName> conflictPacsName_out = new HashSet<>();
+//
+//	@Relationship(type = "辅助检查名称开单互斥辅助检查名称", direction = Relationship.INCOMING)
+//	private Set<PacsNamePacsName> conflictPacsName_in = new HashSet<>();
 
 }

+ 23 - 0
src/main/java/com/diagbot/entity/relationship/PacsNameBillConflictItem.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.relationship;
+
+import com.diagbot.entity.node.BillConflictItem;
+import com.diagbot.entity.node.LisAlias;
+import com.diagbot.entity.node.LisName;
+import com.diagbot.entity.node.PacsName;
+import com.diagbot.entity.relationship.base.BaseRelation;
+import lombok.Getter;
+import lombok.Setter;
+import org.neo4j.ogm.annotation.EndNode;
+import org.neo4j.ogm.annotation.RelationshipEntity;
+import org.neo4j.ogm.annotation.StartNode;
+
+@Getter
+@Setter
+@RelationshipEntity(type = "辅助检查名称禁忌开单项互斥")
+public class PacsNameBillConflictItem extends BaseRelation {
+    @StartNode
+    private PacsName pacsName;
+
+    @EndNode
+    private BillConflictItem billConflictItem;
+}

+ 2 - 2
src/main/java/com/diagbot/enums/StaticTypeEnum.java

@@ -16,8 +16,8 @@ public enum StaticTypeEnum implements KeyedNamed {
     LISSET(3, Constants.lissetname),
     LIS(4, Constants.lisname),
     PACS(5, Constants.pacsname),
-    OPT(6, Constants.yibaoopname),
-    PACSSUBNAME(7, Constants.pacssubname);
+    PACSSUBNAME(6, Constants.pacssubname),
+    OPT(7, Constants.yibaoopname);
 
     @Setter
     private int key;

+ 18 - 15
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -460,6 +460,7 @@ public class NeoFacade {
         if (presentPushVo != null) {
             if (ListUtil.isNotEmpty(presentPushVo.getSymptoms())) {
                 symptom_present = presentPushVo.getSymptoms().stream().map(x -> x.getName()).collect(Collectors.toList());
+                symptom_present = symptom_present.size() >= 5? symptom_present.subList(0,5) : symptom_present;
             }
         }
         symptoms = Stream.of(symptom_chief, symptom_present).flatMap(Collection::stream).distinct().collect(Collectors.toList());
@@ -720,21 +721,23 @@ public class NeoFacade {
                     if (StringUtil.isBlank(result)) {
                         val = lis.getValue();
                         unit = lis.getUnits();
-                        for (LisRemind lisRemind : lrlist) {
-                            if (lisRemind.getRange() == 0) { /*&& lisRemind.getUnit().equals(unit) &&*/
-                                if (null == lisRemind.getMinval() && val <= lisRemind.getMaxval()) {
-                                    otherTipNeoDTOS = updateTipNeoDTO(otherTipNeoDTOS, lis, lisRemind);
-                                } else if (null == lisRemind.getMaxval() && val >= lisRemind.getMinval()) {
-                                    otherTipNeoDTOS = updateTipNeoDTO(otherTipNeoDTOS, lis, lisRemind);
-                                } else if (null != lisRemind.getMinval() && null != lisRemind.getMaxval() &&
-                                        val <= lisRemind.getMaxval() && val >= lisRemind.getMinval()) {
-                                    otherTipNeoDTOS = updateTipNeoDTO(otherTipNeoDTOS, lis, lisRemind);
-                                }
-                            } else if (lisRemind.getRange() == 1) { /*&& lisRemind.getUnit().equals(unit) &&*/
-                                if (null != lisRemind.getMaxval() && val > lisRemind.getMaxval()) {
-                                    otherTipNeoDTOS = updateTipNeoDTO(otherTipNeoDTOS, lis, lisRemind);
-                                } else if (null != lisRemind.getMinval() && val < lisRemind.getMinval()) {
-                                    otherTipNeoDTOS = updateTipNeoDTO(otherTipNeoDTOS, lis, lisRemind);
+                        if (null != val) {
+                            for (LisRemind lisRemind : lrlist) {
+                                if (lisRemind.getRange() == 0) { /*&& lisRemind.getUnit().equals(unit) &&*/
+                                    if (null == lisRemind.getMinval() && null != lisRemind.getMaxval() && val <= lisRemind.getMaxval()) {
+                                        otherTipNeoDTOS = updateTipNeoDTO(otherTipNeoDTOS, lis, lisRemind);
+                                    } else if (null == lisRemind.getMaxval() && val >= lisRemind.getMinval()) {
+                                        otherTipNeoDTOS = updateTipNeoDTO(otherTipNeoDTOS, lis, lisRemind);
+                                    } else if (null != lisRemind.getMinval() && null != lisRemind.getMaxval() &&
+                                            val <= lisRemind.getMaxval() && val >= lisRemind.getMinval()) {
+                                        otherTipNeoDTOS = updateTipNeoDTO(otherTipNeoDTOS, lis, lisRemind);
+                                    }
+                                } else if (lisRemind.getRange() == 1) { /*&& lisRemind.getUnit().equals(unit) &&*/
+                                    if (null != lisRemind.getMaxval() && val > lisRemind.getMaxval()) {
+                                        otherTipNeoDTOS = updateTipNeoDTO(otherTipNeoDTOS, lis, lisRemind);
+                                    } else if (null != lisRemind.getMinval() && val < lisRemind.getMinval()) {
+                                        otherTipNeoDTOS = updateTipNeoDTO(otherTipNeoDTOS, lis, lisRemind);
+                                    }
                                 }
                             }
                         }

+ 1 - 1
src/main/java/com/diagbot/model/ai/model/EntityEnum.java

@@ -28,7 +28,7 @@ public enum EntityEnum {
     TITLE_OF_OPERATIVE_FINDINGS("手术经过标题"), TITLE_OF_MEASURES_AFTER_OP("术后处理措施标题"),
     TITLE_OF_RISK_AFTER_OP("术后风险标题"), TITLE_OF_ATTENTION_AFTER_OP("术后注意事项标题"), VITAL("生命体征"),
     BETTER_FINDING("好转表现"),OUTCOME_TO_BETTER("转归情况-好转"),OUTCOME_CURE("转归情况-治愈"),POSITIVE_FINDING("阳性表现"),
-    INSPECTION_ITEMS("检查项目"),DISCHARGE_MODE("出院方式");
+    INSPECTION_ITEMS("检查项目"),DISCHARGE_MODE("出院方式"),OTHER_ALLERGY("其他过敏原");
 
     private String value;
 

+ 17 - 2
src/main/java/com/diagbot/model/ai/process/EntityProcessPast.java

@@ -139,8 +139,8 @@ public class EntityProcessPast extends EntityProcess {
                         allergyFood.setAllergyDesc(findT(relationLemma, new AllergyDesc(), EntityEnum.ALLERGY_SYMPTOM.toString()));//过敏表现
                         allergy.setAllergyFood(allergyFood);
                     }
-                    //药物过敏史
-                    if (relationLemma.getProperty().equals(EntityEnum.DRUG_ALLERGY.toString())) {
+                    //药物过敏史 或 其他过敏
+                    if (relationLemma.getProperty().equals(EntityEnum.DRUG_ALLERGY.toString()) || relationLemma.getProperty().equals(EntityEnum.OTHER_ALLERGY.toString())) {
                         AllergyMedicine allergyMedicine = new AllergyMedicine();
                         allergyMedicine.setName(CoreUtil.replaceStartPunctuation(relationLemma.getText()));
                         allergyMedicine.setStandName(CoreUtil.replaceStartPunctuation(relationLemma.getText()));
@@ -178,6 +178,21 @@ public class EntityProcessPast extends EntityProcess {
                 }
                 pastLabel.addAllergyMedicine(allergyMedicine);
             }
+
+            //其他过敏史
+            List<Lemma> allergyOtherLemmas = createEntityTree(aiOut, EntityEnum.OTHER_ALLERGY.toString());
+            for (Lemma lemma : allergyOtherLemmas) {
+                AllergyMedicine allergyMedicine = new AllergyMedicine();
+                allergyMedicine.setName(CoreUtil.replaceStartPunctuation(lemma.getText()));
+                allergyMedicine.setStandName(CoreUtil.replaceStartPunctuation(lemma.getText()));
+                if (lemma.isHaveChildren()) {
+                    allergyMedicine.setNegative(findNegative(lemma));
+                    allergyMedicine.setPd(findPD(lemma));//时间
+                    allergyMedicine.setDegree(findT(lemma, new Degree(), EntityEnum.TREND.toString()));//程度
+                }
+                pastLabel.addAllergyMedicine(allergyMedicine);
+            }
+
             //输血史
             List<Lemma> bloodTransfusionLemmas = createEntityTree(aiOut, EntityEnum.BLOOD_TRANSFUSION.toString());
             for (Lemma lemma : bloodTransfusionLemmas) {

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

@@ -68,8 +68,13 @@ public class OtherTipProcess {
                         } else {
                             content += CoreUtil.subZeroAndDot(otherTipNeoDTO.getValue().toString());
                         }
-                        BillMsg billMsg = MsgUtil.getCommonOtherTipLisMsg(content, (String)map.get("msg"), nodeNeoDTO.getTermtype());
-                        res.getOtherList().add(billMsg);
+                        List<String> msgList = (List<String>)map.get("msg");
+                        if (ListUtil.isNotEmpty(msgList)) {
+                            for (String msg : msgList) {
+                                BillMsg billMsg = MsgUtil.getCommonOtherTipLisMsg(content, msg, nodeNeoDTO.getTermtype());
+                                res.getOtherList().add(billMsg);
+                            }
+                        }
                     }
                 }
             }

+ 0 - 1
src/main/java/com/diagbot/process/PushProcess.java

@@ -34,7 +34,6 @@ public class PushProcess {
     public PushDTO process(PushVO pushVo, Map<String, Map<String, String>> standConvertMap, WordCrfDTO wordCrfDTO) {
         int length = pushVo.getLength();
         PushDTO pushDTO = new PushDTO();
-
         List<String> ruleTypeList = Arrays.asList(pushVo.getFeatureType().split(","));
         Map<String, List<String>> typeWords = typeWords(standConvertMap);
         //生成push入参,供图谱调用

+ 64 - 6
src/main/java/com/diagbot/repository/LisNameNode.java

@@ -19,11 +19,8 @@ import com.diagbot.util.StringUtil;
 import com.diagbot.vo.CriticalNeoVO;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
+import java.util.stream.Collectors;
 
 public class LisNameNode {
 
@@ -290,7 +287,7 @@ public class LisNameNode {
 		try {
 			for (Lis lisvo : lisVO) {
 
-				String name = lisvo.getDetailName();
+				String name = lisvo.getUniqueName();
 
 				if (StringUtil.isNotBlank(name)) {
 					List<LisName> lislt = lisRepository.findByNameIs(name);
@@ -416,5 +413,66 @@ public class LisNameNode {
 
 		return neoEntityDTO;
 	}
+
+
+
+	/**
+	 * 根据关系名查询对应节点
+	 */
+	public List<?> getNodesbyRelation(LisName LisName, String relname) {
+		List<?> nodelist =  new ArrayList<>();
+
+		try {
+			switch (relname) {
+				case "实验室检查名称禁忌性别":
+					nodelist = Arrays.asList(LisName.getLisNamegender().getGender());
+					break;
+				case "实验室检查名称禁忌禁忌人群":
+					nodelist = LisName.getLisNamegroups().stream().map(x -> x.getGroup()).collect(Collectors.toList());
+					break;
+				case "实验室检查名称相关实验室检查套餐名":
+					nodelist = LisName.getLisNamelissets().stream().map(x -> x.getLisSet()).collect(Collectors.toList());
+					break;
+			}
+		}
+		catch (Exception ex) {
+			ex.printStackTrace();
+		}
+		finally {
+			return nodelist;
+		}
+	}
+
+
+	/**
+	 * 更新关系状态属性
+	 */
+	public void updateRelation(LisName lisName, String relname, Integer status, String e_name, LisNameRepository lisNameRepository) {
+
+		try {
+			switch (relname) {
+				case "实验室检查名称禁忌性别":
+					lisName.getLisNamegender().setStatus(status);
+					lisNameRepository.save(lisName);
+					break;
+				case "实验室检查名称禁忌禁忌人群":
+					lisName.getLisNamegroups().stream().filter(x -> x.getGroup().getName().equals(e_name))
+							.collect(Collectors.toList()).stream().forEach(y -> y.setStatus(status));
+					lisNameRepository.save(lisName);
+					break;
+				case "实验室检查名称相关实验室检查套餐名":
+					lisName.getLisNamelissets().stream().filter(x -> x.getLisSet().getName().equals(e_name)).
+							collect(Collectors.toList()).stream().forEach(y -> y.setStatus(status));
+					lisNameRepository.save(lisName);
+					break;
+			}
+		}
+		catch (Exception ex) {
+			ex.printStackTrace();
+		}
+		finally {
+
+		}
+	}
 }
 

+ 125 - 5
src/main/java/com/diagbot/repository/PacsNameNode.java

@@ -3,15 +3,15 @@ package com.diagbot.repository;
 import com.diagbot.dto.BillNeoDTO;
 import com.diagbot.dto.PacsBillNeoDTO;
 import com.diagbot.entity.BaseNodeInfo;
+import com.diagbot.entity.node.BillConflictItem;
+import com.diagbot.entity.node.ClinicalFinding;
 import com.diagbot.entity.node.PacsName;
 import com.diagbot.entity.relationship.*;
+import com.diagbot.entity.relationship.base.BaseRelation;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.NeoUtil;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 public class PacsNameNode {
@@ -176,7 +176,7 @@ public class PacsNameNode {
             }
         }
 
-
+        /*
         Set<PacsNamePacsName> pacsNamepacsNames = pacs.getConflictPacsName_out();
         for (PacsNamePacsName pacsName : pacsNamepacsNames) {
             if (NeoUtil.isExist(pacsName)) {
@@ -188,6 +188,19 @@ public class PacsNameNode {
                 }
             }
         }
+        */
+
+        Set<PacsNameBillConflictItem> pacsNameBillConflictItems = pacs.getPacsNameBillConflictItems();
+        for (PacsNameBillConflictItem pacsNameBill : pacsNameBillConflictItems) {
+            if (NeoUtil.isExist(pacsNameBill)) {
+                if (NeoUtil.isExist(pacsNameBill.getBillConflictItem())) {
+                    nodeInfo = new NodeInfo();
+                    nodeInfo.setName(pacsNameBill.getBillConflictItem().getName());
+                    nodeInfo.setTypeval(Constants.fujian);
+                    pacsBillNeoDTO.getPacsOrder().add(NeoUtil.updateNodeInfo(nodeInfo));
+                }
+            }
+        }
 
         return pacsBillNeoDTO;
     }
@@ -289,6 +302,113 @@ public class PacsNameNode {
 
         return pacslist;
     }
+
+
+    /**
+     * 根据关系名查询对应节点
+     */
+    public List<?> getNodesbyRelation(PacsName pacsName, String relname) {
+        List<?> nodelist =  new ArrayList<>();
+
+        try {
+            switch (relname) {
+                case "辅助检查名称禁忌性别":
+                    nodelist = Arrays.asList(pacsName.getPacsNameGender().getGender());
+                    break;
+                case "辅助检查名称禁忌临床表现":
+                    nodelist = pacsName.getPacsNameClinicalfindings().stream().map(x -> x.getClinicalFinding()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌体征":
+                    nodelist = pacsName.getPacsNameVitals().stream().map(x -> x.getVital()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌实验室检查":
+                    nodelist = pacsName.getPacsNameLis().stream().map(x -> x.getLis()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌辅助检查名称描述":
+                    nodelist = pacsName.getPacsNamePacsdescribes().stream().map(x -> x.getPacsDescribe()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌禁忌人群":
+                    nodelist = pacsName.getPacsNameGroups().stream().map(x -> x.getGroup()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌服用药品":
+                    nodelist = pacsName.getPacsNameOralmedicines().stream().map(x -> x.getOralMedicine()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌药物过敏原":
+                    nodelist = pacsName.getPacsNameMedallergens().stream().map(x -> x.getMedAllergen()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌疾病":
+                    nodelist = pacsName.getPacsNameDiseases().stream().map(x -> x.getDisease()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌过敏原":
+                    nodelist = pacsName.getPacsNameAllergens().stream().map(x -> x.getAllergen()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌禁忌医疗器械及物品":
+                    nodelist = pacsName.getPacsNameConflictdevices().stream().map(x -> x.getConflictDevice()).collect(Collectors.toList());
+                    break;
+            }
+        }
+        catch (Exception ex) {
+            ex.printStackTrace();
+        }
+        finally {
+            return nodelist;
+        }
+    }
+
+
+    /**
+     * 更新关系状态属性
+     */
+    public void updateRelation(PacsName pacsName, String relname, Integer status, String e_name, PacsNameRepository pacsNameRepository) {
+
+        try {
+            switch (relname) {
+                case "辅助检查名称禁忌性别":
+                    pacsName.getPacsNameGender().setStatus(status);
+                    pacsNameRepository.save(pacsName);
+                    break;
+                case "辅助检查名称禁忌临床表现":
+                    pacsName.getPacsNameClinicalfindings().stream().filter(x -> x.getClinicalFinding().getName()==e_name).
+                            collect(Collectors.toList()).stream().forEach(y -> y.setStatus(status));
+                    pacsNameRepository.save(pacsName);
+                    break;
+                case "辅助检查名称禁忌体征":
+                    List<PacsNameVital> pacsNameVitals = pacsName.getPacsNameVitals().stream().filter(x -> x.getVital().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌实验室检查":
+                    List<PacsNameLis> pacsNameLis = pacsName.getPacsNameLis().stream().filter(x -> x.getLis().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌辅助检查名称描述":
+                    List<PacsNamePacsDescribe> pacsNamePacsDescribes = pacsName.getPacsNamePacsdescribes().stream().filter(x -> x.getPacsDescribe().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌禁忌人群":
+                    List<PacsNameGroup> pacsNameGroups = pacsName.getPacsNameGroups().stream().filter(x -> x.getGroup().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌服用药品":
+                    List<PacsNameOralMedicine> pacsNameOralMedicines = pacsName.getPacsNameOralmedicines().stream().filter(x -> x.getOralMedicine().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌药物过敏原":
+                    List<PacsNameMedAllergen> pacsNameMedAllergens = pacsName.getPacsNameMedallergens().stream().filter(x -> x.getMedAllergen().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌疾病":
+                    List<PacsNameDisease> pacsNameDiseases = pacsName.getPacsNameDiseases().stream().filter(x -> x.getDisease().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌过敏原":
+                    List<PacsNameAllergen> pacsNameAllergens = pacsName.getPacsNameAllergens().stream().filter(x -> x.getAllergen().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌禁忌医疗器械及物品":
+                    List<PacsNameConflictDevice> pacsNameConflictDevices = pacsName.getPacsNameConflictdevices().stream().filter(x -> x.getConflictDevice().getName()==e_name).collect(Collectors.toList());
+                    break;
+            }
+        }
+        catch (Exception ex) {
+            ex.printStackTrace();
+        }
+        finally {
+
+        }
+    }
+
 }
 
 

+ 8 - 13
src/main/java/com/diagbot/repository/TransfusionSuggestNode.java

@@ -58,30 +58,25 @@ public class TransfusionSuggestNode {
 			if (tf.getNode_label().equals(Constants.lisname)) {
 				lisname = tf.getIndex_name();
 				lisresult = lismap.get(lisname);
-				if (lisresult!=null) {
+				if (lisresult!=null && null != lisresult.getValue()) {
 					val = lisresult.getValue();
 					if (tf.getRange() == 0) {
-						if (null==tf.getMinval() && null==tf.getMaxval()) {
+						if (null == tf.getMinval() && null == tf.getMaxval()) {
 							lisresult = null;
-						}
-						else if (null==tf.getMinval() && val > tf.getMaxval()) {
+						} else if (null == tf.getMinval() && val > tf.getMaxval()) {
 							lisresult = null;
-						}
-						else if(null==tf.getMaxval() && val < tf.getMinval()) {
+						} else if (null == tf.getMaxval() && val < tf.getMinval()) {
 							lisresult = null;
-						}
-						else if (null!=tf.getMinval() && null!=tf.getMaxval() &&
+						} else if (null != tf.getMinval() && null != tf.getMaxval() &&
 								(val > tf.getMaxval() || val < tf.getMinval())) {
 							lisresult = null;
 						}
 					} else if (tf.getRange() == 1) {
-						if (null==tf.getMinval() && null==tf.getMaxval()) {
+						if (null == tf.getMinval() && null == tf.getMaxval()) {
 							lisresult = null;
-						}
-						else if (null!=tf.getMaxval() && val < tf.getMaxval()) {
+						} else if (null != tf.getMaxval() && val < tf.getMaxval()) {
 							lisresult = null;
-						}
-						else if (null!=tf.getMinval() && val > tf.getMinval()){
+						} else if (null != tf.getMinval() && val > tf.getMinval()) {
 							lisresult = null;
 						}
 					}

+ 1 - 1
src/main/java/com/diagbot/repository/YiBaoOperationNameNode.java

@@ -364,7 +364,7 @@ public class YiBaoOperationNameNode {
                         if (StringUtil.isNotBlank(item.getUniqueName()) && item.getUniqueName().equals(key)) {
                             nodeNeoDTO = new NodeNeoDTO();
                             nodeNeoDTO.setName(item.getUniqueName());
-                            nodeNeoDTO.setVal(item.getUniqueName());
+                            nodeNeoDTO.setVal(item.getName());
                             nodeNeoDTO.setTermtype(TypeEnum.disease.getName());
                             highRiskNeoDTO.getFactor().add(nodeNeoDTO);
                         }

+ 2 - 1
src/main/java/com/diagbot/rule/CommonRule.java

@@ -172,7 +172,8 @@ public class CommonRule {
         if (ListUtil.isEmpty(itemList)) {
             return;
         }
-        Map<String, List<T>> map = EntityUtil.makeEntityListMap(itemList, "name");
+        // Map<String, List<T>> map = EntityUtil.makeEntityListMap(itemList, "name");
+        Map<String, List<T>> map = CoreUtil.makeEntityListMap(itemList, "name", "uniqueName");
         for (String key : map.keySet()) {
             List<T> items = map.get(key);
 

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

@@ -191,8 +191,15 @@ public class CoreUtil {
             String key = (String)field.get(object);
             if (value != null && value.get(key) != null) {
                 Field standField = getDeclaredField(object, standName) ;
-                standField.setAccessible(true) ;
-                standField.set(object, value.get(key));
+                standField.setAccessible(true);
+                if ("uniqueName".equals(standName)) {
+                    String uniqueName = (String)standField.get(object);
+                    if (StringUtil.isBlank(uniqueName)) {
+                        standField.set(object, value.get(key));
+                    }
+                } else {
+                    standField.set(object, value.get(key));
+                }
             }
         } catch (IllegalArgumentException e) {
             e.printStackTrace();
@@ -268,19 +275,20 @@ public class CoreUtil {
      * @param item
      * @return
      */
-    public static Map compareNameWithNode(NodeNeoDTO nodeNeoDTO,  List<? extends Item> item) {
+    public static Map compareNameWithNode(NodeNeoDTO nodeNeoDTO, List<? extends Item> item) {
         Map<String, Object> map = new LinkedHashMap<>();
         boolean flag = false;
+        List<String> msgList = new ArrayList<>();
         if (ListUtil.isNotEmpty(item) && nodeNeoDTO != null) {
             for (Item it : item) {
                 if (it.getUniqueName().equals(nodeNeoDTO.getName())) {
                     flag = true;
-                    map.put("msg", it.getName());
-                    break;
+                    msgList.add(it.getName());
                 }
             }
         }
         map.put("flag", flag);
+        map.put("msg", msgList);
         return map;
     }
 
@@ -921,14 +929,55 @@ public class CoreUtil {
                 .collect(Collectors.toList());
     }
 
+    public static <V> Map<String, List<V>> makeEntityListMap(List<V> list, String field1, String field2) {
+        Map<String, List<V>> map = new LinkedHashMap();
+        if (ListUtil.isNotEmpty(list)) {
+            for (V v : list) {
+                String value1 = (String)CoreUtil.getFieldValue(v, field1);
+                String value2 = (String)CoreUtil.getFieldValue(v, field2);
+                String unionKey = "";
+                if (StringUtil.isNotBlank(value1)) {
+                    unionKey += value1;
+                }
+                unionKey += "*****";
+                if (StringUtil.isNotBlank(value2)) {
+                    unionKey += value2;
+                }
+                List<V> groupList = (List<V>)map.get(unionKey);
+                if (groupList == null) {
+                    groupList = new ArrayList();
+                }
+                groupList.add(v);
+                map.put(unionKey, groupList);
+            }
+        }
+        return map;
+    }
+
+
     public static void main(String[] args) {
-        // List<Item> list = new ArrayList<>();
-        // Item item = new Item();
-        // item.setUniqueName(null);
-        // item.setName("aaa");
-        // list.add(item);
-        // // list = null;
-        // List<String> res = getNoUniqueList(list);
-        // System.out.println(res);
+        List<Item> list = new ArrayList<>();
+        Item item = new Item();
+        item.setUniqueName("test1");
+        item.setName("test");
+        list.add(item);
+
+        Item item2 = new Item();
+        item2.setUniqueName("test2");
+        item2.setName("test");
+        list.add(item2);
+
+        Item item3 = new Item();
+        item3.setUniqueName("test1");
+        item3.setName("test");
+        list.add(item3);
+
+        Item item4 = new Item();
+        item4.setUniqueName("test2");
+        item4.setName("test");
+        list.add(item4);
+        Map<String, List<Item>> map = makeEntityListMap(list, "name", "uniqueName");
+
+        System.out.println(map);
     }
 }