浏览代码

辅检添加修饰

zhoutg 4 年之前
父节点
当前提交
21f4ebada6

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

@@ -7,6 +7,7 @@ import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.enums.StandConvertEnum;
 import com.diagbot.model.ai.AIAnalyze;
 import com.diagbot.model.entity.BodyPart;
+import com.diagbot.model.entity.Modification;
 import com.diagbot.model.entity.Pacs;
 import com.diagbot.model.label.ChiefLabel;
 import com.diagbot.model.label.DiagLabel;
@@ -424,6 +425,14 @@ public class CommonFacade {
                     itemPart.setUniqueName(bodyPart.getStandName() + pacs.getStandName());
                     pacsResList.add(itemPart);
                 }
+
+                // 描述 + 修饰循环放入
+                for (Modification modification : pacs.getModification()) {
+                    Item itemModification = new Item();
+                    itemModification.setName(pacs.getName() + modification.getName());
+                    itemModification.setUniqueName(pacs.getStandName() + modification.getStandName());
+                    pacsResList.add(itemModification);
+                }
             }
         }
 

+ 30 - 39
src/main/java/com/diagbot/model/ai/process/EntityProcessPacs.java

@@ -5,80 +5,71 @@ import com.diagbot.biz.push.entity.Item;
 import com.diagbot.model.ai.model.EntityEnum;
 import com.diagbot.model.ai.model.Lemma;
 import com.diagbot.model.entity.BodyPart;
+import com.diagbot.model.entity.Modification;
 import com.diagbot.model.entity.Pacs;
 import com.diagbot.model.label.PacsLabel;
 import com.diagbot.util.ListUtil;
 import com.google.common.collect.Lists;
 
 import java.util.ArrayList;
-import java.util.LinkedHashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
 
 public class EntityProcessPacs extends EntityProcess {
 
     public void extractEntity(JSONObject aiOut, PacsLabel pacsLabel) {
-        // 获取描述和部位的关系
-        Map<String, List<BodyPart>> bodyMap = new LinkedHashMap<>();
+        // 获取描述和部位、修饰的关系
+        List<Pacs> pacsResults = new ArrayList<>(); // 辅检提取的描述信息
         List<Lemma> pacsLemmas = createEntityTree(aiOut, EntityEnum.AUXILIARY_DESCRIPT.toString());
         for (Lemma lemma : pacsLemmas) {
+            Pacs pacs = new Pacs();
             List<BodyPart> bodyPartList = new ArrayList<>();
+            List<Modification> modificationList = new ArrayList<>();
             if (lemma.isHaveChildren()) {
                 for (Lemma relationLemma : lemma.getRelationLemmas()) {
-                    if (relationLemma.getProperty().equals(EntityEnum.BODY.toString())) {
+                    if (relationLemma.getProperty().equals(EntityEnum.BODY.toString())) { // 部位
                         BodyPart bodyPart = new BodyPart();
                         bodyPart.setName(relationLemma.getText());
                         bodyPart.setStandName(relationLemma.getText());
                         bodyPartList.add(bodyPart);
+                    } else if (EntityEnum.MODIFICATION.toString().equals(relationLemma.getProperty())) { // 修饰
+                        Modification modification = new Modification();
+                        modification.setName(relationLemma.getText());
+                        modification.setStandName(relationLemma.getText());
+                        modificationList.add(modification);
                     }
                 }
-                bodyMap.put(lemma.getText(), bodyPartList);
             }
+            pacs.setBodyPartList(bodyPartList);
+            pacs.setModification(modificationList);
+            pacs.setName(lemma.getText());
+            pacs.setStandName(lemma.getText());
+            pacsResults.add(pacs);
         }
+        pacsLabel.setPacsResults(pacsResults);
 
-        //辅助检查
+        // 辅检项目
         List<Lemma> pacsAll = createEntityTree(aiOut, EntityEnum.AUXILIARY_EXAMINATION.toString());
-        List<Pacs> disList = new ArrayList<>();
-        for (Lemma lemma : pacsAll) {
-            if (lemma.isHaveChildren()) {
-                for (Lemma relationLemma : lemma.getRelationLemmas()) {
-                    if (relationLemma.getProperty().equals(EntityEnum.DIEASE.toString())) {
-                        // 辅检诊断信息
-                        Pacs dis = new Pacs();
-                        dis.setName(relationLemma.getText());
-                        dis.setStandName(relationLemma.getText());
-                        disList.add(dis);
-                    }
-                }
-            }
-        }
-        //所有项目
         List<Item> collect = Lists.newArrayList();
-        if(ListUtil.isNotEmpty(pacsAll)){
-                collect = pacsAll.stream().map(x -> {
+        if(ListUtil.isNotEmpty(pacsAll)) {
+            collect = pacsAll.stream().map(x -> {
                 Item item = new Item();
                 item.setName(x.getText());
                 item.setUniqueName(x.getText());
                 return item;
             }).collect(Collectors.toList());
         }
-        //描述和部位的关系
-        List<Pacs> pacsResults = Lists.newArrayList();
-        if(bodyMap != null && bodyMap.size() > 0){
-            bodyMap.forEach((x,y) -> {
-                Pacs pacs = new Pacs();
-                pacs.setName(x);
-                pacs.setStandName(x);
-                pacs.setBodyPartList(y);
-                pacsResults.add(pacs);
-            });
-        }
-
-        pacsLabel.setDisease(disList);
         pacsLabel.setItem(collect);
-        pacsLabel.setPacsResults(pacsResults);
 
+        // 辅检诊断
+        List<Lemma> pacsDisease = createEntityTree(aiOut, EntityEnum.DIEASE.toString());
+        List<Pacs> disList = new ArrayList<>();
+        for (Lemma lemma : pacsDisease) {
+            Pacs dis = new Pacs();
+            dis.setName(lemma.getText());
+            dis.setStandName(lemma.getText());
+            disList.add(dis);
+        }
+        pacsLabel.setDisease(disList);
     }
-
 }

+ 1 - 0
src/main/java/com/diagbot/model/entity/Pacs.java

@@ -19,6 +19,7 @@ public class Pacs extends General{
     private PacsValue pacsValues;
     private BodyPart bodyPart;
     private List<BodyPart> bodyPartList; // 部位列表
+    private List<Modification> modification; // 修饰,例如:重度
     private List<Diag> disease;//辅检提的诊断
     private OuterCourtyard outerCourtyard; //外院
 }