Jelajahi Sumber

北仑:危急值6小时更新逻辑

huj 4 tahun lalu
induk
melakukan
c8dba7622c

+ 21 - 5
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/crisisvaluereport/CRI0382.java

@@ -58,6 +58,18 @@ public class CRI0382 extends QCCatalogue {
         crisisInfoDocs.forEach(crisisInfoDoc -> {
             String reptTime = crisisInfoDoc.getStructureMap().get("报告时间");
             String crisisName = crisisInfoDoc.getStructureMap().get("危急结果值");
+            String crisisNm = "";
+            String companyNum = "";
+            if (crisisName.contains("项目为")) {
+                crisisName = crisisName.substring(crisisName.indexOf("项目为") + 3);
+            }
+            if (crisisName.contains(",结果:")) {
+                crisisNm = crisisName.split(",结果:")[0];
+                companyNum = crisisName.split(",结果:")[1];
+                if (StringUtil.isNotBlank(companyNum) && companyNum.contains("单位:")) {
+                    companyNum = companyNum.replaceAll("单位:", "");
+                }
+            }
             allCrisises.add(reptTime);
             if (StringUtils.isNotEmpty(reptTime)) {
                 //当前时间和报告时间未超过6小时,规则通过
@@ -67,9 +79,12 @@ public class CRI0382 extends QCCatalogue {
                     for (CrisisValueReportDoc crisisValueReportDoc : crisisValueReportDocs) {
                         String recordTimeStr = crisisValueReportDoc.getStructureMap().get("病历日期");
                         String docReptContent = crisisValueReportDoc.getStructureMap().get("病情分析及处理");
-                        if ((StringUtil.parseDateTime(recordTimeStr, dateFormats).getTime() - StringUtil.parseDateTime(reptTime, dateFormats).getTime()) > 0
-                                && (StringUtil.parseDateTime(recordTimeStr, dateFormats).getTime() - StringUtil.parseDateTime(reptTime, dateFormats).getTime()) < timeCha
-                                && StringUtil.removeBlank(docReptContent).contains(StringUtil.removeBlank(crisisName))) {
+                        if ((StringUtil.parseDateTime(recordTimeStr, dateFormats).getTime() - StringUtil.parseDateTime(reptTime, dateFormats).getTime()) < timeCha
+                                && (StringUtil.removeBlank(docReptContent).contains(StringUtil.removeBlank(crisisName)) ||
+                                (StringUtil.isNotBlank(crisisNm) && StringUtil.isNotBlank(companyNum)
+                                        && StringUtil.removeBlank(docReptContent).contains(StringUtil.removeBlank(crisisNm))
+                                        && StringUtil.removeBlank(docReptContent).contains(StringUtil.removeBlank(companyNum))
+                                ))) {
                             findCrisises.add(reptTime);
                             break;
                         }
@@ -77,11 +92,12 @@ public class CRI0382 extends QCCatalogue {
                 }
             }
         });
-
+        // (StringUtil.parseDateTime(recordTimeStr, dateFormats).getTime() - StringUtil.parseDateTime(reptTime, dateFormats).getTime()) > 0
+        //                                &&
         if (findCrisises.size() != allCrisises.size()) {
             status.set("-1");
             allCrisises.forEach(reptTime -> {
-                if (!findCrisises.contains(reptTime)) {
+                if (!findCrisises.contains(reptTime) && !info.get().contains(reptTime)) {
                     if (StringUtils.isEmpty(info.get())) {
                         info.set(reptTime);
                     } else {