Parcourir la source

修改北仑术前手术患者无术前主刀医师查房记录 bug(术前小结和手术记录如果不是一一对应关系导致该规则出错处理)

easi il y a 4 ans
Parent
commit
8e3e261ad3

+ 25 - 17
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/threelevelward/THR03090.java

@@ -8,6 +8,7 @@ import com.lantone.qc.pub.model.doc.ThreeLevelWardDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
 import com.lantone.qc.pub.util.DateUtil;
 import com.lantone.qc.pub.util.StringUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
 import java.util.*;
@@ -19,6 +20,7 @@ import java.util.*;
  * @Date: 2021-01-11 10:39
  */
 @Component
+@Slf4j
 public class THR03090 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
@@ -36,27 +38,33 @@ public class THR03090 extends QCCatalogue {
             return;
         }
         String operationStartDate = "";
-        if (operationDocs.get(operationDocs.size() - 1).getOperationRecordDoc() != null) {
-            Map<String, String> operationDocStructureMap = operationDocs.get(operationDocs.size() - 1).getOperationRecordDoc().getStructureMap();
-            operationStartDate = operationDocStructureMap.get("手术开始时间");
-            if (operationStartDate.contains("年月日")) {
-                operationStartDate = DateUtil.nowString();
+        try {
+            if (operationDocs.get(operationDocs.size() - 1).getOperationRecordDoc() != null) {
+                Map<String, String> operationDocStructureMap = operationDocs.get(operationDocs.size() - 1).getOperationRecordDoc().getStructureMap();
+                operationStartDate = operationDocStructureMap.get("手术开始时间");
+                if (operationStartDate.contains("年月日")) {
+                    operationStartDate = DateUtil.nowString();
+                }
             }
-        }
-
-        List<ThreeLevelWardDoc> allDoctorWradDocs = threeLevelWardDocs.get(0).getAllDoctorWradDocs();
-        for (ThreeLevelWardDoc threeLevelWard : allDoctorWradDocs) {
-            Map<String, String> structureMap = threeLevelWard.getStructureMap();
-            String makeTitle = structureMap.get("查房标题");
-            String writTitle = structureMap.get("文书标题");
-            String makeDate = structureMap.get("查房日期");
-            if (StringUtil.isNotBlank(makeDate) && StringUtil.parseDateTime(makeDate).before(StringUtil.parseDateTime(operationStartDate))) {
-                if (((StringUtil.isNotBlank(makeTitle) && makeTitle.contains("主刀")) || (StringUtil.isNotBlank(writTitle) && writTitle.contains("主刀"))
-                        || ((StringUtil.isNotBlank(makeTitle) && makeTitle.contains("术前")) || (StringUtil.isNotBlank(writTitle) && writTitle.contains("术前"))))) {
-                    return;
+            List<ThreeLevelWardDoc> allDoctorWradDocs = threeLevelWardDocs.get(0).getAllDoctorWradDocs();
+            for (ThreeLevelWardDoc threeLevelWard : allDoctorWradDocs) {
+                Map<String, String> structureMap = threeLevelWard.getStructureMap();
+                String makeTitle = structureMap.get("查房标题");
+                String writTitle = structureMap.get("文书标题");
+                String makeDate = structureMap.get("查房日期");
+                if (StringUtil.isNotBlank(makeDate) && StringUtil.parseDateTime(makeDate).before(StringUtil.parseDateTime(operationStartDate))) {//时间为空会报错
+                    if (((StringUtil.isNotBlank(makeTitle) && makeTitle.contains("主刀")) || (StringUtil.isNotBlank(writTitle) && writTitle.contains("主刀"))
+                            || ((StringUtil.isNotBlank(makeTitle) && makeTitle.contains("术前")) || (StringUtil.isNotBlank(writTitle) && writTitle.contains("术前"))))) {
+                        return;
+                    }
                 }
             }
         }
+        catch (Exception e)
+        {
+            log.error(this.getClass().getName()+"error:"+e.toString());
+            return;
+        }
 
         //判断医嘱里有无手术
         List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();