瀏覽代碼

Merge remote-tracking branch 'origin/master'

rengb 5 年之前
父節點
當前提交
6cff30b464

+ 10 - 46
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/BeHospitalizedAI.java

@@ -144,10 +144,13 @@ public class BeHospitalizedAI {
             return;
         }
         JSONObject aiOut = jsonObject.getJSONObject(entityRelationObject).getJSONObject(BeHospitalizedAI.outputs);
-        //放置入inputinfo
+        //使用现病史结构
+        EntityProcessClinic entityProcessClinic = new EntityProcessClinic();
+        PresentLabel presentLabel = entityProcessClinic.extractEntity(aiOut);
+
         ChiefLabel chiefLabel = inputInfo.getBeHospitalizedDoc().getChiefLabel();
-        chiefLabel.setClinicals(loadClinicals(aiOut));
-        chiefLabel.setDiags(loadDiags(aiOut));
+        chiefLabel.setClinicals(presentLabel.getClinicals());
+        chiefLabel.setDiags(presentLabel.getDiags());
     }
 
     public void putPresentCrfData(JSONObject jsonObject, InputInfo inputInfo) {
@@ -156,23 +159,10 @@ public class BeHospitalizedAI {
         }
         JSONObject aiOut = jsonObject.getJSONObject(entityRelationObject).getJSONObject(BeHospitalizedAI.outputs);
         //放置入inputinfo
-        PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
-        presentLabel.setClinicals(loadClinicals(aiOut));
-        presentLabel.setGenerals(loadGeneralDes(aiOut));
-        presentLabel.setPacses(loadPacses(aiOut));
-        presentLabel.setDiags(loadDiags(aiOut));
-
-        EntityProcess entityProcess = new EntityProcess();
-        List<Lemma> entityTree = entityProcess.createEntityTree(aiOut, EntityEnum.CURE.toString());
-        List<Treat> treats = new ArrayList<>();
-        for (Lemma lemma : entityTree) {
-            Treat treat = new Treat();
-            treat.setName(lemma.getText());
-            treats.add(treat);
-        }
-        presentLabel.setTreats(treats);
-
-
+        EntityProcessClinic entityProcessClinic = new EntityProcessClinic();
+        PresentLabel presentLabel = entityProcessClinic.extractEntity(aiOut);
+        presentLabel.setText(inputInfo.getBeHospitalizedDoc().getPresentLabel().getText());
+        inputInfo.getBeHospitalizedDoc().setPresentLabel(presentLabel);
     }
 
     /**
@@ -359,19 +349,6 @@ public class BeHospitalizedAI {
         pacsLabel.setPacses(loadPacses(aiOut));
     }
 
-    /**
-     * 关系抽取临床表现信息
-     *
-     * @param aiOut
-     * @return
-     */
-    public List<Clinical> loadClinicals(JSONObject aiOut) {
-        //主诉
-        EntityProcessClinic entityProcessClinic = new EntityProcessClinic();
-        List<Clinical> clinicals = entityProcessClinic.extractEntity(aiOut);
-        return clinicals;
-    }
-
     /**
      * 关系抽取疾病信息
      *
@@ -424,19 +401,6 @@ public class BeHospitalizedAI {
         return vitals;
     }
 
-    /**
-     * 关系抽取一般情况描述信息
-     *
-     * @param aiOut
-     * @return
-     */
-    public List<GeneralDesc> loadGeneralDes(JSONObject aiOut) {
-        //一般情况描述信息
-        EntityProcessGenerals entityProcessGeneral = new EntityProcessGenerals();
-        List<GeneralDesc> generals = entityProcessGeneral.extractEntity(aiOut);
-        return generals;
-    }
-
     public void putContent(JSONArray crfContent, String medicalTextType, String text, String sign) {
         String move_text = CatalogueUtil.removeSpecialChar(text);
         if (StringUtil.isEmpty(move_text)) {

+ 25 - 17
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/process/EntityProcessClinic.java

@@ -10,6 +10,7 @@ import com.lantone.qc.pub.model.label.PresentLabel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -65,24 +66,31 @@ public class EntityProcessClinic extends EntityProcess {
                 beHospitalizedWay.setName(lemma.getText());
                 presentLabel.setBeHospitalizedWay(beHospitalizedWay);
             }
-            //读取疾病信息
-            List<Lemma> diagLemmas = createEntityTree(aiOut, EntityEnum.DIEASE.toString());
-            for (Lemma lemma : diagLemmas) {
-                Diag diag = DiagEnhancer.create(lemma.getText());
-                if (lemma.isHaveChildren()) {
-                    //阴性
-                    diag.setNegative(findNegative(lemma));
-                    //可能的
-                    for (Lemma relationLemma : lemma.getRelationLemmas()) {
-                        if (relationLemma.getProperty().equals(EntityEnum.POSSIBLE.toString())) {
-                            Possible possible = new Possible();
-                            possible.setName(relationLemma.getText());
-                            diag.setPossible(possible);
-                        }
-                    }
-                }
-                presentLabel.add(presentLabel.getDiags(), diag);
+            //诊断信息
+            EntityProcessDiag entityProcessDiag = new EntityProcessDiag();
+            List<Diag> diags = entityProcessDiag.extractEntity(aiOut);
+            presentLabel.setDiags(diags);
+
+            //一般情况描述信息
+            EntityProcessGenerals entityProcessGeneral = new EntityProcessGenerals();
+            List<GeneralDesc> generals = entityProcessGeneral.extractEntity(aiOut);
+            presentLabel.setGenerals(generals);
+
+            //辅检信息
+            EntityProcessPacs entityProcessLis = new EntityProcessPacs();
+            List<Pacs> pacses = entityProcessLis.extractEntity(aiOut);
+            presentLabel.setPacses(pacses);
+
+            //治疗
+            List<Lemma> cureLemmas = createEntityTree(aiOut, EntityEnum.CURE.toString());
+            List<Treat> treats = new ArrayList<>();
+            for (Lemma lemma : cureLemmas) {
+                Treat treat = new Treat();
+                treat.setName(lemma.getText());
+                treats.add(treat);
             }
+            presentLabel.setTreats(treats);
+
         } catch (Exception e) {
             e.printStackTrace();
             logger.error(e.getMessage(), e);