فهرست منبع

去除需进诊断模型的文本空格(1.文本中必须包含数字才会进行去空格2.两个中文字之间去除空格)

hujing 5 سال پیش
والد
کامیت
8b839bbca9

+ 31 - 12
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/BeHospitalizedAI.java

@@ -1,24 +1,39 @@
 package com.lantone.qc.kernel.structure.ai;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.lantone.qc.kernel.client.CRFServiceClient;
-import com.lantone.qc.kernel.structure.ai.model.EntityEnum;
-import com.lantone.qc.kernel.structure.ai.model.Lemma;
-import com.lantone.qc.kernel.structure.ai.process.*;
+import com.lantone.qc.kernel.structure.ai.process.EntityProcessClinic;
+import com.lantone.qc.kernel.structure.ai.process.EntityProcessDiag;
+import com.lantone.qc.kernel.structure.ai.process.EntityProcessFamily;
+import com.lantone.qc.kernel.structure.ai.process.EntityProcessLis;
+import com.lantone.qc.kernel.structure.ai.process.EntityProcessMarital;
+import com.lantone.qc.kernel.structure.ai.process.EntityProcessMenses;
+import com.lantone.qc.kernel.structure.ai.process.EntityProcessPacs;
+import com.lantone.qc.kernel.structure.ai.process.EntityProcessPast;
+import com.lantone.qc.kernel.structure.ai.process.EntityProcessPersonal;
+import com.lantone.qc.kernel.structure.ai.process.EntityProcessVital;
 import com.lantone.qc.kernel.util.CatalogueUtil;
 import com.lantone.qc.pub.Content;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
-import com.lantone.qc.pub.model.entity.*;
-import com.lantone.qc.pub.model.label.*;
-import com.lantone.qc.pub.model.vo.CRFVo;
+import com.lantone.qc.pub.model.entity.Diag;
+import com.lantone.qc.pub.model.entity.Lis;
+import com.lantone.qc.pub.model.entity.Pacs;
+import com.lantone.qc.pub.model.entity.Vital;
+import com.lantone.qc.pub.model.label.ChiefLabel;
+import com.lantone.qc.pub.model.label.DiagLabel;
+import com.lantone.qc.pub.model.label.FamilyLabel;
+import com.lantone.qc.pub.model.label.MaritalLabel;
+import com.lantone.qc.pub.model.label.MenstrualLabel;
+import com.lantone.qc.pub.model.label.PacsLabel;
+import com.lantone.qc.pub.model.label.PastLabel;
+import com.lantone.qc.pub.model.label.PersonalLabel;
+import com.lantone.qc.pub.model.label.PresentLabel;
 import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
@@ -110,19 +125,23 @@ public class BeHospitalizedAI extends ModelAI {
                 putContent(crfContent, medicalTextType.get(3), pacs_text, Content.pacs);//辅助检查(暂用主诉现病史模型,之后会新训练单独模型再做修改)
             }
             if (beHospitalizedDoc.getInitialDiagLabel().isCrfLabel()) {
-                if (StringUtil.isNotBlank(initial_diag_text)) {
+                if (StringUtil.isNotBlank(initial_diag_text) && CatalogueUtil.numberExist(initial_diag_text)) {
                     initial_diag_text = CatalogueUtil.removeBetweenWordSpace(initial_diag_text);
-                    putContent(crfContent, medicalTextType.get(6), initial_diag_text, Content.initial_diag);//初步诊断
                 }
+                putContent(crfContent, medicalTextType.get(6), initial_diag_text, Content.initial_diag);//初步诊断
             }
             if (StringUtils.isNotEmpty(revised_diag_text) && beHospitalizedDoc.getRevisedDiagLabel().isCrfLabel()) {
                 //修正诊断
-                revised_diag_text = CatalogueUtil.removeBetweenWordSpace(revised_diag_text);
+                if (CatalogueUtil.numberExist(initial_diag_text)) {
+                    revised_diag_text = CatalogueUtil.removeBetweenWordSpace(revised_diag_text);
+                }
                 putContent(crfContent, medicalTextType.get(6), revised_diag_text, Content.revised_diag);
             }
             if (StringUtils.isNotEmpty(supple_diag_text) && beHospitalizedDoc.getSuppleDiagLabel().isCrfLabel()) {
                 //补充诊断
-                supple_diag_text = CatalogueUtil.removeBetweenWordSpace(supple_diag_text);
+                if (CatalogueUtil.numberExist(initial_diag_text)) {
+                    supple_diag_text = CatalogueUtil.removeBetweenWordSpace(supple_diag_text);
+                }
                 putContent(crfContent, medicalTextType.get(6), supple_diag_text, Content.supple_diag);
             }
             JSONObject midData = loadAI(crfContent, crfServiceClient);

+ 16 - 8
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/FirstCourseRecordAI.java

@@ -47,12 +47,16 @@ public class FirstCourseRecordAI extends ModelAI {
             //putContent(crfContent, medicalTextType.get(0), firstCourseRecordDoc.getCaseCharacteristicLabel().getText(), Content.case_feature);
             //初步诊断
             if (StringUtils.isNotEmpty(structureMap.get(Content.initial_diag))) {
-                String initial_diag = CatalogueUtil.removeBetweenWordSpace(structureMap.get(Content.initial_diag));
-                //String initial_diag = structureMap.get(Content.initial_diag);
+                String initial_diag = structureMap.get(Content.initial_diag);
+                if (CatalogueUtil.numberExist(initial_diag)) {
+                    initial_diag = CatalogueUtil.removeBetweenWordSpace(structureMap.get(Content.initial_diag));
+                }
                 putContent(crfContent, medicalTextType.get(1), initial_diag, Content.initial_diag);
             } else if (firstCourseRecordDoc.getInitialDiagLabel() != null && StringUtil.isNotBlank(firstCourseRecordDoc.getInitialDiagLabel().getText())) {
-                String initial_diag = CatalogueUtil.removeBetweenWordSpace(firstCourseRecordDoc.getInitialDiagLabel().getText());
-                //String initial_diag = firstCourseRecordDoc.getInitialDiagLabel().getText();
+                String initial_diag = firstCourseRecordDoc.getInitialDiagLabel().getText();
+                if (CatalogueUtil.numberExist(initial_diag)) {
+                    initial_diag = CatalogueUtil.removeBetweenWordSpace(firstCourseRecordDoc.getInitialDiagLabel().getText());
+                }
                 putContent(crfContent, medicalTextType.get(1), initial_diag, Content.initial_diag);
             }
 
@@ -60,12 +64,16 @@ public class FirstCourseRecordAI extends ModelAI {
             //putContent(crfContent, medicalTextType.get(0), firstCourseRecordDoc.getDiagnosisLabel().getText(), Content.diag_basis);
             //鉴别诊断
             if (StringUtils.isNotEmpty(structureMap.get("鉴别诊断"))) {
-                String diffDiag = CatalogueUtil.removeBetweenWordSpace(structureMap.get("鉴别诊断"));
-                //String diffDiag = structureMap.get("鉴别诊断");
+                String diffDiag = structureMap.get("鉴别诊断");
+                if (CatalogueUtil.numberExist(diffDiag)) {
+                    diffDiag = CatalogueUtil.removeBetweenWordSpace(diffDiag);
+                }
                 putContent(crfContent, medicalTextType.get(1), diffDiag, "鉴别诊断");
             } else if (firstCourseRecordDoc.getDifferentialDiagLabel() != null && StringUtil.isNotBlank(firstCourseRecordDoc.getDifferentialDiagLabel().getText())) {
-                String diffDiag = CatalogueUtil.removeBetweenWordSpace(firstCourseRecordDoc.getDifferentialDiagLabel().getText());
-                //String diffDiag = firstCourseRecordDoc.getDifferentialDiagLabel().getText();
+                String diffDiag = firstCourseRecordDoc.getDifferentialDiagLabel().getText();
+                if (CatalogueUtil.numberExist(diffDiag)) {
+                    diffDiag = CatalogueUtil.removeBetweenWordSpace(diffDiag);
+                }
                 putContent(crfContent, medicalTextType.get(1), diffDiag, "鉴别诊断");
             }
             //诊疗计划

+ 4 - 2
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/LeaveHospitalAI.java

@@ -49,8 +49,10 @@ public class LeaveHospitalAI extends ModelAI {
                 //                }
                 //出院诊断
                 if (StringUtil.isNotBlank(leaveHospitalStructureMap.get(Content.dischargeDiag))) {
-                    String dischargeDiag = CatalogueUtil.removeBetweenWordSpace(leaveHospitalStructureMap.get(Content.dischargeDiag));
-                    //String dischargeDiag = leaveHospitalStructureMap.get(Content.dischargeDiag);
+                    String dischargeDiag = leaveHospitalStructureMap.get(Content.dischargeDiag);
+                    if (CatalogueUtil.numberExist(dischargeDiag)) {
+                        dischargeDiag = CatalogueUtil.removeBetweenWordSpace(dischargeDiag);
+                    }
                     putContent(crfContent, medicalTextType.get(1), dischargeDiag, Content.dischargeDiag);
                 }
             }

+ 11 - 1
kernel/src/main/java/com/lantone/qc/kernel/util/CatalogueUtil.java

@@ -295,12 +295,22 @@ public class CatalogueUtil {
     }
 
     /**
-     * 判断字符串是否仅包含数字
+     * 判断字符串是否  包含数字
      *
      * @param str
      * @return
      */
     public static boolean numbersOnly(String str) {
+        String regex = "^[0-9]+$";
+        return str.matches(regex);
+    }
+
+    /**
+     * 判断文本是否包含数字
+     * @param str
+     * @return
+     */
+    public static boolean numberExist(String str) {
         Pattern p = Pattern.compile("[0-9]");
         Matcher m = p.matcher(str);
         return m.find();