zhoutg 5 år sedan
förälder
incheckning
0ff45d8b52

+ 9 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0196.java

@@ -18,6 +18,10 @@ import java.util.Map;
 @Component
 public class FIRP0196 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        /**
+         * 如果入院前天数且入院前天数不为空,且不是数字,例如是“-”,就不报错
+         * 如果天数是数字,那么小时和分都不能为空
+         */
         status.set("0");
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
@@ -27,6 +31,11 @@ public class FIRP0196 extends QCCatalogue {
             String brainInjuryComaAfterDays = firstpageStructureMap.get(Content.brainInjuryComaAfterDays);
             String brainInjuryComaAfterHours = firstpageStructureMap.get(Content.brainInjuryComaAfterHours);
             String brainInjuryComaAfterMins = firstpageStructureMap.get(Content.brainInjuryComaAfterMins);
+            String regex = "([1-9]\\d*\\.?\\d*)|(0\\.\\d*[1-9])";
+            if (StringUtil.isNotBlank(brainInjuryComaBeforeDays) && !brainInjuryComaBeforeDays.matches(regex)
+                && StringUtil.isNotBlank(brainInjuryComaAfterDays) && !brainInjuryComaAfterDays.matches(regex)) {
+                return ;
+            }
             if (StringUtil.isBlank(brainInjuryComaBeforeDays)
                     || StringUtil.isBlank(brainInjuryComaBeforeHours)
                     || StringUtil.isBlank(brainInjuryComaBeforeMins)

+ 4 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0273.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.kernel.catalogue.firstpagerecord;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.OutputInfo;
@@ -23,6 +24,9 @@ public class FIRP0273 extends QCCatalogue {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             String infantAgeMonths = firstpageStructureMap.get(Content.newbornAgeMonths);
             String infantAgeDays = firstpageStructureMap.get(Content.newbornAgeDays);
+            if (CatalogueUtil.isSpecialChar(infantAgeMonths)) {
+                return ;
+            }
             if (StringUtil.isNotBlank(infantAgeMonths) && Integer.parseInt(infantAgeMonths) > 0) {
                 status.set("-1");
             }

+ 12 - 0
kernel/src/main/java/com/lantone/qc/kernel/util/CatalogueUtil.java

@@ -492,4 +492,16 @@ public class CatalogueUtil {
         }
         return infoStr;
     }
+
+    /**
+     * 判断是否是特殊字符:“-”,“/”,"\"
+     * @param str
+     * @return
+     */
+    public static Boolean isSpecialChar(String str) {
+        if( ("-").equals(str) || ("\\").equals(str) || ("/").equals(str)){
+            return true;
+        }
+        return false;
+    }
 }