Parcourir la source

长兴添加规则 台州修改bug

hujing il y a 5 ans
Parent
commit
ea32616fe2

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

@@ -0,0 +1,84 @@
+package com.lantone.qc.kernel.catalogue.operationdiscussion;
+
+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.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.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : OPE02930
+ * @Description : 术后首次病程未即刻完成
+ * @Author : 胡敬
+ * @Date: 2020-06-15 17:30
+ */
+@Component
+public class OPE02930 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        //        boolean isOperativePatient = true;//是手术患者(暂时默认是)
+        //        if (isOperativePatient) {
+        List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
+        if (operationDocs == null || operationDocs.size() == 0) {
+            status.set("0");
+            return;
+        }
+        for (OperationDoc operationDoc : operationDocs) {
+            OperationRecordDoc operationRecordDoc = operationDoc.getOperationRecordDoc();
+            if (operationRecordDoc == null) {
+                continue;
+            }
+            Map<String, String> operationRecordStructureMap = operationRecordDoc.getStructureMap();
+            String operationStartDateStr = operationRecordStructureMap.get("手术开始时间");
+            String operationEndDateStr = operationRecordStructureMap.get("手术结束时间");
+            if (StringUtil.isEmpty(operationStartDateStr) || StringUtil.isEmpty(operationEndDateStr)) {
+                continue;
+            }
+            Date operationStartDate = StringUtil.parseDateTime(operationStartDateStr);
+            Date operationEndDate = StringUtil.parseDateTime(operationEndDateStr);
+            if (operationStartDate == null || operationEndDate == null) {
+                continue;
+            }
+            for (OperationDoc o : operationDocs) {
+                OperationDiscussionDoc operationDiscussionDoc = o.getOperationDiscussionDoc();
+                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;
+                }
+                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)) {
+                        status.set("-1");
+                        return;
+                    }
+                }
+            }
+        }
+        //        }
+    }
+}

+ 4 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/preoperativediscussion/PRE0328.java

@@ -121,6 +121,10 @@ public class PRE0328 extends QCCatalogue {
                     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)) {
                             findInnerOperation = true;
                             break;