소스 검색

1.入院记录初诊不标准 最后一次出院查房 主任72小时内没有查房记录 规则修改逻辑

hujing 5 년 전
부모
커밋
14ff9f19ec

+ 18 - 14
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0012.java

@@ -24,34 +24,38 @@ import java.util.Map;
  */
 @Component
 public class BEH0012 extends QCCatalogue {
-    private static String[] strings = {"2型糖尿病"};
+    private static String[] strings = { "2型糖尿病" };
     @Autowired
     private RedisUtil redisUtil;
+
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if(inputInfo.getBeHospitalizedDoc() == null){
+        if (inputInfo.getBeHospitalizedDoc() == null) {
             status.set("0");
             return;
         }
         List<String> diags_out = new ArrayList<>();
         Map<String, String> hostpital_standDiag = redisUtil.getJsonStringValue(KernelConstants.HOSPITAL_DIAG_MAP);
         List<Diag> diags = inputInfo.getBeHospitalizedDoc().getInitialDiagLabel().getDiags();
-        if(diags != null && diags.size()>0){
-            for (Diag diag:diags) {
+        if (diags != null && diags.size() > 0) {
+            for (Diag diag : diags) {
                 List<String> disList = Arrays.asList(strings);
-                String hospitalDiagName = diag.getHospitalDiagName().trim().replace("待查","");
-                if(!disList.contains(hospitalDiagName)){
-                    hospitalDiagName = hospitalDiagName.replaceAll("^[0-9]","");
-                }
-                if(!hostpital_standDiag.containsKey(hospitalDiagName)){
-                    diags_out.add(hospitalDiagName);
+                for (String diagSplit : diag.getHospitalDiagName().split("、")) {
+
+                    String hospitalDiagName = diagSplit.trim().replace("待查", "");
+                    if (!disList.contains(hospitalDiagName)) {
+                        hospitalDiagName = hospitalDiagName.replaceAll("^[0-9]", "");
+                    }
+                    if (!hostpital_standDiag.containsKey(hospitalDiagName)) {
+                        diags_out.add(hospitalDiagName);
+                    }
                 }
             }
-            if(diags_out.size()>0){
-                info.set(diags_out.toString().replace("[","").replace("]",""));
-            }else {
+            if (diags_out.size() > 0) {
+                info.set(diags_out.toString().replace("[", "").replace("]", ""));
+            } else {
                 status.set("0");
             }
-        }else {
+        } else {
             status.set("0");
         }
 

+ 4 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0125.java

@@ -47,9 +47,12 @@ public class THR0125 extends QCCatalogue {
             }
             DirectorDoctorWardDoc firstDirector = directorDoctorWardDocs.get(0);
             String wardDateStr = firstDirector.getStructureMap().get("查房日期");
-            if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(wardDateStr), (long) (72 * 60))) {
+            if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(wardDateStr), 72 * 60L)) {
                 status.set("0");
             }
+        } else {
+            //没有出院小结,这条直接不报错
+            status.set("0");
         }
     }
 }

+ 7 - 6
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0144.java

@@ -35,18 +35,19 @@ public class THR0144 extends QCCatalogue {
         String conditionRecord = structureMap.get("病情记录");
         String treatmentPlan = structureMap.get("治疗计划和措施");
         String title = structureMap.get("查房标题");
-        conditionRecord = StringUtil.isBlank(conditionRecord)?"":conditionRecord;
-        treatmentPlan = StringUtil.isBlank(treatmentPlan)?"":treatmentPlan;
-        //主任或主治查房
+        conditionRecord = StringUtil.isBlank(conditionRecord) ? "" : conditionRecord;
+        treatmentPlan = StringUtil.isBlank(treatmentPlan) ? "" : treatmentPlan;
+        //主任或主治查房 标题需要包含“主任”或“主治”,内容需要包含“出院”
         if ((conditionRecord.contains("出院") || treatmentPlan.contains("出院"))
                 && StringUtil.isNotBlank(title)
                 && (CatalogueUtil.subTitle(title).contains(Content.attend) || CatalogueUtil.subTitle(title).contains(Content.director))) {
             status.set("0");
         }
-        //普通查房
-        if(StringUtil.isBlank(title)
+        //普通查房 内容需要包含“上级”和“出院”
+        if (StringUtil.isBlank(title)
                 || (title.contains("日常查房记录") || title.contains("普通查房记录") || title.contains("日常病程记录"))
-                && conditionRecord.contains("上级医师")){
+                && conditionRecord.contains("上级")
+                && (conditionRecord.contains("出院") || treatmentPlan.contains("出院"))) {
             status.set("0");
         }
     }