瀏覽代碼

Merge remote-tracking branch 'origin/shaoyf/dev-wsy' into shaoyf/dev

wangsy 4 年之前
父節點
當前提交
4bd14ad8c7

+ 4 - 6
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0001.java

@@ -3,12 +3,9 @@ package com.lantone.qc.kernel.catalogue.behospitalized;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Clinical;
 import com.lantone.qc.pub.model.entity.PD;
 import com.lantone.qc.pub.model.label.ChiefLabel;
-import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -23,17 +20,17 @@ import java.util.List;
 @Component
 public class BEH0001 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-
-        status.set("0");
         if (inputInfo.getBeHospitalizedDoc() == null) {
+            status.set("0");
             return;
         }
         ChiefLabel chiefLabel = inputInfo.getBeHospitalizedDoc().getChiefLabel();
         if (chiefLabel == null) {
+            status.set("0");
             return;
         }
         String chiefText = chiefLabel.getText();
-        if(StringUtil.isBlank(chiefText)){
+        if (StringUtil.isBlank(chiefText)) {
             status.set("0");
             return;
         }
@@ -75,6 +72,7 @@ public class BEH0001 extends QCCatalogue {
             status.set("-1");
         }*/
     }
+
     private boolean isDate(String pdName) {
         String regex = "[0-9]{4}.?[0-9]{2}.?[0-9]{2}";
         return pdName.matches(regex);

+ 9 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0006.java

@@ -23,6 +23,7 @@ import java.util.List;
 @Component
 public class BEH0006 extends QCCatalogue {
     private List<String> containList = Arrays.asList("半年", "术后");
+
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
 //        status.set("0");
         if (inputInfo.getBeHospitalizedDoc() == null) {
@@ -36,8 +37,8 @@ public class BEH0006 extends QCCatalogue {
         }
         String chiefText = chiefLabel.getText();
         if (StringUtil.isNotBlank(chiefText)) {
-            for (String fild:containList) {
-                if(chiefText.contains(fild)){
+            for (String fild : containList) {
+                if (chiefText.contains(fild)) {
                     status.set("0");
                     return;
                 }
@@ -60,7 +61,12 @@ public class BEH0006 extends QCCatalogue {
                         }
                     }
                 }
+            } else {
+                if (StringUtil.isNotBlank(chiefLabel.getText())) {
+                    status.set("0");
+                    return;
+                }
             }
         }
-     }
+    }
 }

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0013.java

@@ -31,7 +31,7 @@ public class BEH0013 extends QCCatalogue {
         }
         String text = presentLabel.getText();
         if (StringUtil.isNotBlank(text)) {
-            if (text.contains("无") || text.contains("否认")) {
+            if ((text.contains("无") || text.contains("否认")) && !text.contains("诱因")) {
                 return;
             }
         } else {

+ 21 - 13
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH02860.java

@@ -1,18 +1,16 @@
 package com.lantone.qc.kernel.catalogue.behospitalized;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.util.CatalogueUtil;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Clinical;
 import com.lantone.qc.pub.model.entity.PD;
 import com.lantone.qc.pub.model.label.ChiefLabel;
 import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
+import java.util.Arrays;
 import java.util.List;
-import java.util.regex.Pattern;
 
 
 /**
@@ -24,33 +22,43 @@ import java.util.regex.Pattern;
 @Component
 public class BEH02860 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
         if (inputInfo.getBeHospitalizedDoc() == null) {
+            status.set("0");
             return;
         }
         ChiefLabel chiefLabel = inputInfo.getBeHospitalizedDoc().getChiefLabel();
         if (chiefLabel == null || StringUtil.isBlank(chiefLabel.getText())) {
+            status.set("0");
             return;
         }
-        String regex = "[零一二三四五六七八九十百千]";
+        List<String> arabicNumList = Arrays.asList("0", "1", "2", "3", "4", "5", "6", "7"
+                , "8", "9");
+        List<String> containList = Arrays.asList("零", "一", "二", "三", "四", "五", "六", "七"
+                , "八", "九", "十", "百", "千");
         List<PD> pds = chiefLabel.getPds();
         if (ListUtil.isNotEmpty(pds)) {
             String name = null, value = null;
             for (PD pd : pds) {
                 name = pd.getName();
                 value = pd.getValue();
-                if(name.contains("半")){
+                if (name.contains("半")) {
                     continue;
                 }
-                if (value != null && Pattern.matches(regex, value)) {
-                    status.set("-1");
-                    return;
+                for (String num : arabicNumList) {
+                    if (StringUtil.isNotBlank(name) && name.contains(num)) {
+                        status.set("0");
+                        return;
+                    }
                 }
-                if (name != null && Pattern.matches(regex, name)) {
-                    status.set("-1");
-                    return;
+                for (String word : containList) {
+                    if (StringUtil.isNotBlank(value) && value.contains(word)) {
+                        return;
+                    }
+                    if (StringUtil.isNotBlank(name) && name.contains(word)) {
+                        return;
+                    }
                 }
             }
         }
     }
-}
+}

+ 18 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH02988.java

@@ -3,6 +3,10 @@ package com.lantone.qc.kernel.catalogue.behospitalized;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
+import com.lantone.qc.pub.model.label.ChiefLabel;
+import com.lantone.qc.pub.model.label.PastLabel;
+import com.lantone.qc.pub.model.label.PresentLabel;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
@@ -17,11 +21,22 @@ public class BEH02988 extends QCCatalogue {
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
+        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
+        //主诉
+        ChiefLabel chiefLabel = beHospitalizedDoc.getChiefLabel();
+        //现病史
+        PresentLabel presentLabel = beHospitalizedDoc.getPresentLabel();
+        //既往史
+        PastLabel pastLabel = beHospitalizedDoc.getPastLabel();
+        if (beHospitalizedDoc == null) {
             return;
         }
-        if (inputInfo.getBeHospitalizedDoc().getChiefLabel() == null
-                && StringUtil.isBlank(inputInfo.getBeHospitalizedDoc().getChiefLabel().getText())) {
+        if (StringUtil.isBlank(chiefLabel.getText()) && StringUtil.isNotBlank(presentLabel.getText()) ||
+                StringUtil.isNotBlank(pastLabel.getText())) {
+            status.set("-1");
+            return;
+        }
+        if (chiefLabel == null && StringUtil.isBlank(chiefLabel.getText())) {
             status.set("-1");
         }
     }

+ 51 - 47
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR02986.java

@@ -72,15 +72,19 @@ public class THR02986 extends QCCatalogue {
             String drugName = adviceDoc.get("医嘱项目名称");
             String startDateStr = adviceDoc.get("医嘱开始时间");
             if (StringUtil.isNotBlank(drugName)) {
-                if (Arrays.asList(JS).contains(drugName)) {
-                    continue;
-                }
 //                startDate = DateUtil.dateZeroClear(StringUtil.parseDateTime(startDateStr));
                 startDate = StringUtil.parseDateTime(startDateStr);
                 if (antibioticDateTimes.get(drugName).get(startDate) > 0) {
-                    continue;   //一天内同一激素开过多次的激素直接过滤
+                    continue;   //一天内同一抗生素开过多次的抗生素直接过滤
+                }
+                drugName = removeBracket(drugName).replaceAll("[^\u4e00-\u9fa5]", "");
+                String drugStandardWord = similarityUtil.getDrugStandardWord(drugName);
+                if (StringUtil.isNotBlank(drugStandardWord)) {
+                    drugName = drugStandardWord;
+                }
+                if (!Arrays.asList(JS).contains(drugName)) {
+                    doctorAdviceDrugMap.put(startDate, adviceDoc.get("医嘱项目名称"));
                 }
-                doctorAdviceDrugMap.put(startDate, drugName);
             }
         }
 
@@ -364,12 +368,12 @@ public class THR02986 extends QCCatalogue {
      * @param str
      * @return
      */
-//    private String removeBracket(String str) {
-//        if (str.contains("]") && str.indexOf("]") != str.length() - 1) {
-//            return str.substring(str.indexOf("]") + 1);
-//        }
-//        return str;
-//    }
+    private String removeBracket(String str) {
+        if (str.contains("]") && str.indexOf("]") != str.length() - 1) {
+            return str.substring(str.indexOf("]") + 1);
+        }
+        return str;
+    }
 
     /**
      * 拼接提示信息
@@ -387,70 +391,70 @@ public class THR02986 extends QCCatalogue {
             "西格列汀片",
             "维格列汀片",
             "伏格列波糖片",
-            "[合资]二甲双胍片",
-            "[进口]硫辛酸针",
-            "[合资]阿卡波糖片",
+            "二甲双胍片",
+            "硫辛酸针",
+            "阿卡波糖片",
             "格列齐特缓释片",
             "达格列净片",
-            "[合资]格列美脲片",
-            "[绿叶]阿卡波糖胶囊",
-            "[海汇]格列美脲片",
+            "格列美脲片",
+            "阿卡波糖胶囊",
+            "格列美脲片",
             "格列吡嗪缓释胶囊",
-            "[国产]阿卡波糖片",
+            "阿卡波糖片",
             "格列吡嗪控释片",
-            "[国产]二甲双胍片",
+            "二甲双胍片",
             "吡格列酮二甲双胍片",
             "沙格列汀片",
-            "[艾可拓]吡格列酮片",
+            "吡格列酮片",
             "阿仑膦酸钠维D3片",
-            "[卡司平]吡格列酮片",
-            "[国产]硫辛酸针",
+            "吡格列酮片",
+            "硫辛酸针",
             "格列喹酮片",
-            "[国产]阿仑膦酸钠肠溶片",
+            "阿仑膦酸钠肠溶片",
             "那格列奈片",
-            "[自备]格列齐特-II片",
-            "[特]门冬胰岛素针",
-            "[预填充]甘精胰岛素针",
-            "[优泌乐50]精蛋白锌赖脯胰岛素针",
-            "[特30]门冬胰岛素30针",
+            "格列齐特-II片",
+            "门冬胰岛素针",
+            "甘精胰岛素针",
+            "精蛋白锌赖脯胰岛素针",
+            "门冬胰岛素30针",
             "左旋甲状腺素片",
             "胰岛素针",
-            "[进口]奥曲肽针",
-            "[优泌乐25]精蛋白锌赖脯胰岛素针",
-            "[国产]生长抑素针",
-            "[国产]特利加压素针",
-            "[国产]奥曲肽针",
-            "[诺和灵30R]精蛋白生物合成人胰岛素针",
+            "奥曲肽针",
+            "精蛋白锌赖脯胰岛素针",
+            "生长抑素针",
+            "特利加压素针",
+            "奥曲肽针",
+            "精蛋白生物合成人胰岛素针",
             "谷赖胰岛素针",
             "地特胰岛素针",
-            "[进口]生长抑素针",
+            "生长抑素针",
             "甲巯咪唑片",
             "降钙素针",
-            "[优泌乐]赖脯胰岛素针",
+            "赖脯胰岛素针",
             "利拉鲁肽针",
             "重组甘精胰岛素针",
-            "[70/30]精蛋白锌重组人胰岛素针",
-            "[预灌封优泌乐50]精蛋白锌赖脯胰岛素针",
+            "精蛋白锌重组人胰岛素针",
+            "精蛋白锌赖脯胰岛素针",
             "黄体酮针",
             "地屈孕酮片",
             "50/50混合重组人胰岛素针",
             "炔诺酮片",
-            "[进口]特利加压素针",
+            "特利加压素针",
             "戊酸雌二醇片",
             "4.5iu生长激素针",
             "生物合成人胰岛素针",
             "米非司酮片",
-            "[进口]黄体酮软胶囊",
+            "黄体酮软胶囊",
             "十一酸睾酮胶囊",
-            "[芯中效]精蛋白锌重组人胰岛素针",
-            "[国产]丙硫氧嘧啶片",
-            "[国产]黄体酮胶囊",
-            "[芯常规]重组人胰岛素针",
-            "[自备]重组甘精胰岛素针",
-            "[密盖息]降钙素鼻喷剂",
+            "精蛋白锌重组人胰岛素针",
+            "丙硫氧嘧啶片",
+            "黄体酮胶囊",
+            "重组人胰岛素针",
+            "重组甘精胰岛素针",
+            "降钙素鼻喷剂",
             "甲羟孕酮片",
             "替勃龙片",
-            "[金尔力]降钙素鼻喷剂",
+            "降钙素鼻喷剂",
             "雷洛昔芬片"
     };
 }