Browse Source

修改bug

zhoutg 5 years ago
parent
commit
64707cd8c1

+ 12 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0414.java

@@ -42,12 +42,20 @@ public class BEH0414 extends QCCatalogue {
                 status.set("0");
                 return;
             }
-            int firstAdmissionAgeNum = removalUnit(firstAdmissionAge);
-            int admissionAgeNum = removalUnit(admissionAge);
-
-            if (firstAdmissionAgeNum != admissionAgeNum && newbornAge != admissionAgeNum) {
+            String admissAge = "";
+            if (StringUtil.isNotBlank(admissionAge) && admissionAge.contains("岁")) {
+                admissAge = admissionAge.substring(0, admissionAge.indexOf("岁"));
+            }
+            // int firstAdmissionAgeNum = removalUnit(firstAdmissionAge);
+            // int admissionAgeNum = removalUnit(admissionAge);
+            // 只比较年龄前的数值
+            if (!admissAge.equals(firstAdmissionAge)) {
                 status.set("-1");
+                return;
             }
+            // if (firstAdmissionAgeNum != admissionAgeNum && newbornAge != admissionAgeNum) {
+            //     status.set("-1");
+            // }
         }
     }
 

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

@@ -29,7 +29,8 @@ public class BEH0417 extends QCCatalogue {
             String contactAddress_bh = structureMap.get("出生地");
             String contactAddress_first = firstStructMap.get(Content.birth_address);
             if (!CatalogueUtil.isEmpty(contactAddress_bh) && !CatalogueUtil.isEmpty(contactAddress_first)) {
-                if (!contactAddress_first.equals(contactAddress_bh)) {
+                // 地址主要包含即可
+                if (!contactAddress_first.contains(contactAddress_bh) && !contactAddress_bh.contains(contactAddress_first)) {
                     status.set("-1");
                 }
             }

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

@@ -1,13 +1,11 @@
 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.util.StringUtil;
 import org.springframework.stereotype.Component;
 
-import java.util.Collection;
 import java.util.Map;
 
 
@@ -28,7 +26,7 @@ public class BEH0440 extends QCCatalogue {
             return;
         }
         Map<String, String> bhMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (StringUtil.isNotBlank(bhMap.get("联系地址"))) {
+        if (StringUtil.isNotBlank(bhMap.get("户口地址"))) {
             status.set("0");
         }
     }

+ 16 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0309.java

@@ -5,10 +5,15 @@ import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.ClinicBloodEffectDoc;
 import com.lantone.qc.pub.model.doc.ClinicalBloodDoc;
+import com.lantone.qc.pub.util.DateUtil;
 import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName : CLI0309
@@ -25,10 +30,18 @@ public class CLI0309 extends QCCatalogue {
         if (ListUtil.isEmpty(clinicalBloodDocs)) {
             return;
         }
-        if (clinicalBloodDocs.size() < clinicBloodEffectDocs.size()) {
-            return;
+        List<Date> clinicalBloodDate = new ArrayList<>();
+        for (ClinicalBloodDoc clinicalBloodDoc : clinicalBloodDocs) {
+            Map<String, String> structureMap = clinicalBloodDoc.getStructureMap();
+            if (StringUtil.isNotBlank(structureMap.get("记录时间"))) {
+                Date date = DateUtil.dateZeroClear(StringUtil.parseDateTime(structureMap.get("记录时间")));
+                if (!clinicalBloodDate.contains(date)) {
+                    clinicalBloodDate.add(date);
+                }
+            }
         }
-        if (clinicalBloodDocs.size() != clinicBloodEffectDocs.size()) {
+
+        if (clinicalBloodDate.size() > clinicBloodEffectDocs.size()) {
             status.set("-1");
             info.set("部分输血记录未找到对应输血后效果评价");
         }

+ 3 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE02930.java

@@ -49,6 +49,9 @@ public class OPE02930 extends QCCatalogue {
             }
             for (OperationDoc o : operationDocs) {
                 OperationDiscussionDoc operationDiscussionDoc = o.getOperationDiscussionDoc();
+                if (operationDiscussionDoc == null) {
+                    continue;
+                }
                 Map<String, String> structureMap = operationDiscussionDoc.getStructureMap();
                 String discussionStartDateStr = structureMap.get("手术开始时间");
                 String discussionEndDateStr = structureMap.get("手术结束时间");

+ 9 - 15
kernel/src/main/java/com/lantone/qc/kernel/catalogue/preoperativediscussion/PRE0328.java

@@ -7,6 +7,7 @@ import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
 import com.lantone.qc.pub.model.doc.ThreeLevelWardDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationRecordDoc;
+import com.lantone.qc.pub.util.DateUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
@@ -30,7 +31,7 @@ public class PRE0328 extends QCCatalogue {
         /**
          * 1:入院记录【现病史】包含".*急诊.*术.*|.*急症.*术.*"不报错。
          * 2:如果术前讨论、术前小结次数条数为0 且 (首次病程录【诊疗计划】或查房记录【病情记录】包含急诊手术——".*急诊.*术.*|.*急症.*术.*"),则术前讨论、术前小结次数+1。
-         * 3:如果手术记录次数(第一次手术的开始至截止时间内有其他手术不算次数) 大于 术前讨论、术前小结次数,则出错
+         * 3:如果手术记录次数(第一次手术的日期内有其他手术不算次数) 大于 术前讨论、术前小结次数,则出错
          */
         status.set("0");
         List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
@@ -111,29 +112,23 @@ public class PRE0328 extends QCCatalogue {
             }
             Map<String, String> structureMap = operationRecordDoc.getStructureMap();
             String operationStartDateStr = structureMap.get("手术开始时间");
-            String operationEndDateStr = structureMap.get("手术结束时间");
-            if (StringUtil.isNotBlank(operationStartDateStr) && StringUtil.isNotBlank(operationEndDateStr)) {
+            // String operationEndDateStr = structureMap.get("手术结束时间");
+            if (StringUtil.isNotBlank(operationStartDateStr)) {
                 Date operationStartDate = StringUtil.parseDateTime(operationStartDateStr);
-                Date operationEndDate = StringUtil.parseDateTime(operationEndDateStr);
-                if (operationStartDate != null && operationEndDate != null) {
-                    /* 放第一个手术记录的时间到operationDateList */
+                operationStartDate = DateUtil.dateZeroClear(operationStartDate);
+                if (operationStartDate != null) {
+                    /* 放第一个手术记录的日期到operationDateList */
                     if (operationDateList.size() == 0) {
                         operationDate = new HashMap<>();
                         operationDate.put("手术开始时间", operationStartDate);
-                        operationDate.put("手术结束时间", operationEndDate);
                         operationDateList.add(operationDate);
                         continue;
                     }
                     /* 如果其中一个手术记录的开始时间到结束时间之间还包含另一个手术,就不往operationDateList里加 */
                     boolean findInnerOperation = false;
                     for (Map<String, Date> date : operationDateList) {
-                        Date listStartDate = date.get("手术开始时间");
-                        Date listEndDate = date.get("手术结束时间");
-                        if (operationStartDate.before(listStartDate) && listEndDate.before(operationEndDate)){
-                            date.put("手术开始时间", operationStartDate);
-                            date.put("手术结束时间", operationEndDate);
-                        }
-                        if (listStartDate.before(operationStartDate) && operationEndDate.before(listEndDate)) {
+                        Date listStartDate = DateUtil.dateZeroClear(date.get("手术开始时间"));
+                        if (listStartDate.equals(operationStartDate)) {
                             findInnerOperation = true;
                             break;
                         }
@@ -141,7 +136,6 @@ public class PRE0328 extends QCCatalogue {
                     if (!findInnerOperation) {
                         operationDate = new HashMap<>();
                         operationDate.put("手术开始时间", operationStartDate);
-                        operationDate.put("手术结束时间", operationEndDate);
                         operationDateList.add(operationDate);
                     }
                 }

+ 1 - 1
kernel/src/main/resources/application.yml

@@ -1,5 +1,5 @@
 server:
-  port: 6009 # 端口号
+  port: 6008 # 端口号
   servlet:
     context-path: ${spring.application.name}  # 访问路径,如果不配置,访问IP:端口号,配置后访问IP:端口号/${context-path}