Преглед на файлове

患者出院前无上级医师(主治及以上)同意出院的病程记录

kongwz преди 5 години
родител
ревизия
01d42b4974
променени са 1 файла, в които са добавени 24 реда и са изтрити 3 реда
  1. 24 3
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0144.java

+ 24 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0144.java

@@ -52,7 +52,7 @@ public class THR0144 extends QCCatalogue {
             String treatmentPlan = structureMap.get("治疗计划和措施");
             String title = structureMap.get("查房标题");
             String ob = structureMap.get("记录医师个人职称");
-            if ( title.contains("病理报告")) {
+            if ( StringUtils.isNotBlank(title) && title.contains("病理报告")) {
                 continue;
             }
             conditionRecord = StringUtil.isBlank(conditionRecord) ? "" : conditionRecord;
@@ -65,12 +65,33 @@ public class THR0144 extends QCCatalogue {
                 status.set("0");
                 return;
             }
-            //title为空,treatmentPlan里包含出院或转院,记录医师职称为A/F
-            if(StringUtils.isBlank(title) && StringUtils.isNotBlank(ob) && (conditionRecord.contains("出院") || treatmentPlan.contains("出院") || leave_method(treatmentPlan))
+            //treatmentPlan里包含出院或转院,记录医师职称为A/F
+            if(StringUtils.isNotBlank(ob) && (conditionRecord.contains("出院") || treatmentPlan.contains("出院") || leave_method(treatmentPlan)
+                    || leave_method(conditionRecord))
             && (ob.equals("A") || ob.equals("F"))){
                 status.set("0");
                 return;
             }
+            //treatmentPlan前20个字包含A或F,并且包含出院或转院
+            boolean treat_boolean = false;
+            if(treatmentPlan.length()>10){
+                String sub_treat = treatmentPlan.substring(0, 10);
+                if(sub_treat.contains("A") || sub_treat.contains("F")){
+                    treat_boolean = true;
+                }
+            }
+            boolean record_boolean = false;
+            if(conditionRecord.length()>10){
+                String sub_treat = conditionRecord.substring(0, 10);
+                if(sub_treat.contains("A") || sub_treat.contains("F")){
+                    record_boolean = true;
+                }
+            }
+            if((conditionRecord.contains("出院") || treatmentPlan.contains("出院") || leave_method(treatmentPlan))
+            && (record_boolean || treat_boolean)){
+                status.set("0");
+                return;
+            }
             //普通查房 内容需要包含“上级”和“出院”
             if (StringUtil.isBlank(title)
                     || (title.contains("日常查房记录") || title.contains("普通查房记录") || title.contains("日常病程记录"))