Browse Source

新增规则 OPE03235 手术记录中手术日期填写错误

hecc 3 years ago
parent
commit
f4925a3816

+ 70 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE03235.java

@@ -0,0 +1,70 @@
+package com.lantone.qc.kernel.catalogue.operationdiscussion;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
+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.text.ParseException;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author 贺聪聪
+ * @Description: 手术记录中手术日期填写错误
+ * @data 2022/5/24  10:42
+ */
+@Component
+public class OPE03235 extends QCCatalogue {
+    @Override
+    protected void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
+        status.set("0");
+        List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
+        LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
+        if (operationDocs == null || operationDocs.size() == 0) {
+            return;
+        }
+        if (leaveHospitalDoc != null) {
+            for (OperationDoc operationDoc : operationDocs) {
+                OperationRecordDoc operationRecordDoc = operationDoc.getOperationRecordDoc();
+                if (operationRecordDoc == null) {
+                    return;
+                }
+                Map<String, String> structureMap = operationRecordDoc.getStructureMap();
+                String operationDayStr = structureMap.get("手术日期");
+                if (StringUtil.isBlank(operationDayStr)) {
+                    continue;
+                }
+                String operationDatesStr = operationDayStr.substring(0,10);//截取手术日期
+                String operationTimeStr = structureMap.get("开始时间").substring(0,5);//截取开始时间
+                String operationDateStr = operationDatesStr + " " + operationTimeStr;//拼接
+
+                String beginDateStr = leaveHospitalDoc.getStructureMap().get("入院日期");
+                String endDateStr = leaveHospitalDoc.getStructureMap().get("出院时间");
+                if (StringUtil.isBlank(beginDateStr) || StringUtil.isBlank(endDateStr) || StringUtil.isBlank(operationDateStr)) {
+                    return;
+                }
+                Date beginDate = StringUtil.parseDateTime(beginDateStr);
+                Date endDate = StringUtil.parseDateTime(endDateStr);
+                Date operationDate = StringUtil.parseDateTime(operationDateStr);
+
+                if (operationDate.before(beginDate) || operationDate.after(endDate)) {
+                    status.set("-1");
+                    return;
+                } else {
+                    return;
+                }
+            }
+        }
+    }
+}
+
+
+
+
+