瀏覽代碼

北仑:取首次病程的记录时间,离手术记录最近的一次判断是否超过两个小时

huj 4 年之前
父節點
當前提交
08e83b77e1

+ 29 - 25
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/operationdiscussion/OPE02930.java

@@ -8,6 +8,7 @@ import com.lantone.qc.pub.model.doc.operation.OperationDiscussionDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationRecordDoc;
 import com.lantone.qc.pub.util.StringUtil;
+import org.apache.commons.lang3.time.DateUtils;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -42,46 +43,49 @@ public class OPE02930 extends QCCatalogue {
             if (StringUtil.isEmpty(operationStartDateStr) || StringUtil.isEmpty(operationEndDateStr)) {
                 continue;
             }
-            Date operationStartDate = StringUtil.parseDateTime(operationStartDateStr);
-            Date operationEndDate = StringUtil.parseDateTime(operationEndDateStr);
-            if (operationStartDate == null || operationEndDate == null) {
+            if (!isDate(operationStartDateStr) || !isDate(operationEndDateStr)) {
                 continue;
             }
+            Date operationStartDate = StringUtil.parseDateTime(operationStartDateStr);
+            Date operationEndDate = StringUtil.parseDateTime(operationEndDateStr);
             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("手术结束时间");
-                if (StringUtil.isBlank(discussionStartDateStr) || StringUtil.isBlank(discussionEndDateStr)) {
-                    continue;
-                }
-                Date discussionStartDate = StringUtil.parseDateTime(discussionStartDateStr);
-                Date discussionEndDate = StringUtil.parseDateTime(discussionEndDateStr);
-                if (discussionStartDate == null || discussionEndDate == null) {
-                    continue;
+                String discussionRecordDateStr = structureMap.get("病历日期");
+                if (StringUtil.isBlank(discussionRecordDateStr)) {
+                    status.set("0");
+                    return;
                 }
-                if (operationStartDate.equals(discussionStartDate) && operationEndDate.equals(discussionEndDate)) {
-                    String discussionRecordDateStr = structureMap.get("记录时间");
-                    if (StringUtil.isBlank(discussionRecordDateStr)) {
-                        status.set("0");
-                        return;
-                    }
-                    Date discussionRecordDate = StringUtil.parseDateTime(discussionRecordDateStr);
-                    if (discussionRecordDate == null) {
-                        status.set("0");
-                        return;
-                    }
 
-                    if (CatalogueUtil.compareTime(discussionEndDate, discussionRecordDate, 15 * 60L)) {
+                if (!isDate(discussionRecordDateStr)) {
+                    status.set("0");
+                    return;
+                }
+                Date discussionRecordDate = StringUtil.parseDateTime(discussionRecordDateStr);
+                if (operationEndDate.before(discussionRecordDate) || DateUtils.isSameDay(operationEndDate, discussionRecordDate)) {
+                    if (CatalogueUtil.compareTime(operationEndDate, discussionRecordDate, 2 * 60L)) {
                         status.set("-1");
                         return;
                     }
                 }
             }
         }
-        //        }
+    }
+
+    /**
+     * 判断是否为日期
+     *
+     * @param dateStr
+     */
+    private boolean isDate(String dateStr) {
+        try {
+            StringUtil.parseDateTime(dateStr);
+            return true;
+        } catch (IllegalArgumentException e) {
+            return false;
+        }
     }
 }