소스 검색

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

kongwz 4 년 전
부모
커밋
e239a0980e

+ 4 - 2
src/main/java/com/diagbot/entity/node/YiBaoOperationName.java

@@ -1,11 +1,13 @@
 package com.diagbot.entity.node;
 
 import com.diagbot.entity.node.base.BaseNode;
+import com.diagbot.entity.relationship.YiBaoOperationGroup;
 import lombok.Getter;
 import lombok.Setter;
 import org.neo4j.ogm.annotation.NodeEntity;
 import org.neo4j.ogm.annotation.Property;
 import org.neo4j.ogm.annotation.Relationship;
+import org.neo4j.ogm.annotation.RelationshipEntity;
 
 import java.util.Set;
 import java.util.HashSet;
@@ -52,8 +54,8 @@ public class YiBaoOperationName extends BaseNode  {
 	@Relationship(type = "医保手术和操作名称禁忌疾病", direction = Relationship.OUTGOING)
 	private Set<Disease> diseases = new HashSet<>();
 
-	@Relationship(type = "医保手术和操作名称禁忌禁忌人群", direction = Relationship.OUTGOING)
-	private Set<Group> groups = new HashSet<>();
+	@Relationship(type = "医保手术和操作名称禁忌禁忌人群")
+	private Set<YiBaoOperationGroup> groups = new HashSet<>();
 
 	@Relationship(type = "医保手术和操作名称禁忌辅助检查名称描述", direction = Relationship.OUTGOING)
 	private Set<PacsDescribe> pacsdescs = new HashSet<>();

+ 5 - 0
src/main/java/com/diagbot/entity/node/base/BaseNode.java

@@ -4,6 +4,7 @@ package com.diagbot.entity.node.base;
 import lombok.Getter;
 import lombok.Setter;
 import org.neo4j.ogm.annotation.*;
+import org.springframework.data.repository.query.Param;
 
 import java.io.Serializable;
 import java.util.Set;
@@ -37,4 +38,8 @@ public class BaseNode implements Serializable {
     @Property(name = "静态知识标识")
     private Integer is_kl;
 
+    // 节点的状态, 0:删除 1:正常
+    @Property(name = "状态")
+    private Integer status;
+
 }

+ 21 - 0
src/main/java/com/diagbot/entity/relationship/BaseRelation.java

@@ -0,0 +1,21 @@
+package com.diagbot.entity.relationship;
+
+import com.diagbot.entity.node.Group;
+import com.diagbot.entity.node.YiBaoOperationName;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import org.neo4j.ogm.annotation.*;
+
+@Getter
+@Setter
+@RelationshipEntity(type = "")
+public class BaseRelation {
+    @Id
+    @GeneratedValue
+    private Long relationshipId;
+
+    // 节点的状态, 0:删除 1:正常
+    @Property(name = "状态")
+    private Integer status;
+}

+ 18 - 0
src/main/java/com/diagbot/entity/relationship/YiBaoOperationGroup.java

@@ -0,0 +1,18 @@
+package com.diagbot.entity.relationship;
+
+import com.diagbot.entity.node.Group;
+import com.diagbot.entity.node.YiBaoOperationName;
+import lombok.Getter;
+import lombok.Setter;
+import org.neo4j.ogm.annotation.*;
+
+@Getter
+@Setter
+@RelationshipEntity(type = "医保手术和操作名称禁忌禁忌人群")
+public class YiBaoOperationGroup extends BaseRelation{
+    @StartNode
+    private YiBaoOperationName yiBaoOperationName;
+
+    @EndNode
+    private Group group;
+}

+ 3 - 1
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -368,7 +368,9 @@ public class NeoFacade {
         if (ListUtil.isNotEmpty(allDis)) {
 //            diseases = redisUtil.get(allDis);
             diseases = redisUtil.geth(allDis);
-            allDis = diseases.stream().filter(x -> NeoUtil.matchBasic(x, gender_code, age)).map(x -> x.get("name")).collect(Collectors.toList());
+            allDis = diseases.stream().filter(x -> NeoUtil.matchBasic(x, gender_code, age) && NeoUtil.matchPds(x.get("name"),pd))
+//            allDis = diseases.stream().filter(x -> NeoUtil.matchBasic(x, gender_code, age))
+                    .map(x -> x.get("name")).collect(Collectors.toList());
             diseases.forEach(x -> dis_fbl.put(x.get("name"), Double.parseDouble(x.get("fbl"))));
         }
 

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

@@ -20,6 +20,7 @@ import com.diagbot.entity.node.OralMedicine;
 import com.diagbot.entity.node.PacsDescribe;
 import com.diagbot.entity.node.Vital;
 import com.diagbot.entity.node.YiBaoOperationName;
+import com.diagbot.entity.relationship.YiBaoOperationGroup;
 import com.diagbot.enums.TypeEnum;
 import com.diagbot.model.label.PacsLabel;
 import com.diagbot.model.label.VitalLabel;
@@ -101,12 +102,15 @@ public class YiBaoOperationNameNode {
             opBillNeoDTO.getDisease().add(NeoUtil.updateNodeInfo(nodeInfo));
         }
 
-        Set<Group> conflict_group = operation.getGroups();
-        for (Group group : conflict_group) {
-            nodeInfo = new NodeInfo();
-            nodeInfo.setName(group.getName());
-            nodeInfo.setTypeval(Constants.group);
-            opBillNeoDTO.getGroup().add(NeoUtil.updateNodeInfo(nodeInfo));
+        Set<YiBaoOperationGroup> operationGroups = operation.getGroups();
+        for (YiBaoOperationGroup conflict_group : operationGroups) {
+            if (null!=conflict_group.getStatus() && conflict_group.getStatus()==1) {
+                Group group = conflict_group.getGroup();
+                nodeInfo = new NodeInfo();
+                nodeInfo.setName(group.getName());
+                nodeInfo.setTypeval(Constants.group);
+                opBillNeoDTO.getGroup().add(NeoUtil.updateNodeInfo(nodeInfo));
+            }
         }
 
         Set<PacsDescribe> conflict_pacsdesc = operation.getPacsdescs();

+ 23 - 1
src/main/java/com/diagbot/util/NeoUtil.java

@@ -9,6 +9,7 @@ import com.diagbot.model.entity.PD;
 import com.diagbot.repository.Constants;
 import com.diagbot.repository.NodeInfo;
 import com.diagbot.repository.datautil;
+import org.apache.commons.lang3.StringUtils;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -177,11 +178,24 @@ public class NeoUtil {
         if(pd != null){
             String unit = pd.getUnit();
             String value = pd.getValue();
-            if(unit != null){
+            if(StringUtils.isNotBlank(unit)){
                 if((unit.contains("年") || unit.contains("月")) && disName.startsWith("急")){
                     match = false;
                 }
+                if((unit.contains("周") && (StringUtils.isNotBlank(value) && Integer.parseInt(value) > 2) && disName.startsWith("急"))
+                || (unit.contains("周") && (StringUtils.isNotBlank(value) && Integer.parseInt(value) <= 2) && disName.startsWith("慢"))){
+                    match = false;
+                }
+                if((unit.contains("天") && (StringUtils.isNotBlank(value) && Integer.parseInt(value) > 14) && disName.startsWith("急"))
+                || (unit.contains("天") && (StringUtils.isNotBlank(value) && Integer.parseInt(value) <= 14) && disName.startsWith("慢"))){
+                    match = false;
+                }
 
+            }else {
+                if((value.equals("两年") || value.equals("两月") && disName.startsWith("急")) ||
+                        ((value.equals("两天") || value.equals("两小时") && disName.startsWith("慢")))){
+                    match = false;
+                }
             }
         }
 
@@ -226,4 +240,12 @@ public class NeoUtil {
         return isin;
     }
 
+    public static void main(String[] args) {
+        PD pd = new PD();
+        pd.setValue("两月");
+        pd.setUnit("");
+        boolean b = matchPds("急性胰腺炎", pd);
+        System.out.println(b);
+    }
+
 }