瀏覽代碼

Merge remote-tracking branch 'origin/dev-1.2' into dev-1.2

wangyu 5 年之前
父節點
當前提交
e91e812f0a
共有 16 個文件被更改,包括 131 次插入79 次删除
  1. 18 14
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0012.java
  2. 5 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0060.java
  3. 5 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0061.java
  4. 5 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0062.java
  5. 5 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0063.java
  6. 5 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0064.java
  7. 17 18
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0065.java
  8. 6 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0066.java
  9. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0067.java
  10. 6 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0068.java
  11. 7 13
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0306.java
  12. 14 9
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0308.java
  13. 13 7
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0569.java
  14. 13 9
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0571.java
  15. 4 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0125.java
  16. 7 6
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0144.java

+ 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");
         }
 

+ 5 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0060.java

@@ -34,6 +34,11 @@ public class BEH0060 extends QCCatalogue {
                 }
                 if (inputInfo.getBeHospitalizedDoc().getMenstrualLabel() != null) {
                     MenstrualLabel menstrualLabel = inputInfo.getBeHospitalizedDoc().getMenstrualLabel();
+                    String text = menstrualLabel.getText();
+                    if (StringUtil.isNotBlank(text) && text.contains("未行经")) {
+                        status.set("0");
+                        return;
+                    }
                     List<Menses> mensesList = menstrualLabel.getMensesList();
                     for (Menses menses : mensesList) {
                         if (menses.getMenarcheAge() != null && StringUtil.isNotBlank(menses.getMenarcheAge().getName())) {

+ 5 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0061.java

@@ -35,6 +35,11 @@ public class BEH0061 extends QCCatalogue {
                 }
                 if (inputInfo.getBeHospitalizedDoc().getMenstrualLabel() != null) {
                     MenstrualLabel menstrualLabel = inputInfo.getBeHospitalizedDoc().getMenstrualLabel();
+                    String text = menstrualLabel.getText();
+                    if (StringUtil.isNotBlank(text) && text.contains("未行经")) {
+                        status.set("0");
+                        return;
+                    }
                     List<Menses> mensesList = menstrualLabel.getMensesList();
                     if (ListUtil.isEmpty(mensesList)) {
                         return;

+ 5 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0062.java

@@ -35,6 +35,11 @@ public class BEH0062 extends QCCatalogue {
                 }
                 if (inputInfo.getBeHospitalizedDoc().getMenstrualLabel() != null) {
                     MenstrualLabel menstrualLabel = inputInfo.getBeHospitalizedDoc().getMenstrualLabel();
+                    String text = menstrualLabel.getText();
+                    if (StringUtil.isNotBlank(text) && text.contains("未行经")) {
+                        status.set("0");
+                        return;
+                    }
                     List<Menses> mensesList = menstrualLabel.getMensesList();
                     if (ListUtil.isEmpty(mensesList)) {
                         return;

+ 5 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0063.java

@@ -36,6 +36,11 @@ public class BEH0063 extends QCCatalogue {
                 }
                 if (inputInfo.getBeHospitalizedDoc().getMenstrualLabel() != null) {
                     MenstrualLabel menstrualLabel = inputInfo.getBeHospitalizedDoc().getMenstrualLabel();
+                    String text = menstrualLabel.getText();
+                    if (StringUtil.isNotBlank(text) && text.contains("未行经")) {
+                        status.set("0");
+                        return;
+                    }
                     List<Menses> mensesList = menstrualLabel.getMensesList();
                     if (ListUtil.isEmpty(mensesList)) {
                         return;

+ 5 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0064.java

@@ -45,6 +45,11 @@ public class BEH0064 extends QCCatalogue {
             }
             if (inputInfo.getBeHospitalizedDoc().getMenstrualLabel() != null) {
                 MenstrualLabel menstrualLabel = inputInfo.getBeHospitalizedDoc().getMenstrualLabel();
+                String text = menstrualLabel.getText();
+                if (StringUtil.isNotBlank(text) && text.contains("未行经")) {
+                    status.set("0");
+                    return;
+                }
                 List<Menses> mensesList = menstrualLabel.getMensesList();
                 if (ListUtil.isEmpty(mensesList)) {
                     return;

+ 17 - 18
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0065.java

@@ -31,25 +31,24 @@ public class BEH0065 extends QCCatalogue {
             status.set("0"); //如果性别是男,就不报错
         } else if (inputInfo.getBeHospitalizedDoc().getMenstrualLabel() != null) {
             MenstrualLabel menstrualLabel = inputInfo.getBeHospitalizedDoc().getMenstrualLabel();
-            if (menstrualLabel != null) {
-                if (StringUtil.isNotBlank(menstrualLabel.getText()) && menstrualLabel.getText().contains("颜色")) {
-                    status.set("0");
-                    return;
-                }
-                List<Menses> mensesList = menstrualLabel.getMensesList();
-                if (ListUtil.isEmpty(mensesList)) {
-                    return;
+            String text = menstrualLabel.getText();
+            if (StringUtil.isNotBlank(text) && (text.contains("未行经") || text.contains("颜色"))) {
+                status.set("0");
+                return;
+            }
+            List<Menses> mensesList = menstrualLabel.getMensesList();
+            if (ListUtil.isEmpty(mensesList)) {
+                return;
+            }
+            for (Menses menses : mensesList) {
+                if (menses.getClinicals() == null) {
+                    continue;
                 }
-                for (Menses menses : mensesList) {
-                    if (menses.getClinicals() == null) {
-                        continue;
-                    }
-                    List<Clinical> clinicals = menses.getClinicals();
-                    for (Clinical clinical : clinicals) {
-                        if (clinical.getName().contains("颜色")) {
-                            status.set("0");
-                            return;
-                        }
+                List<Clinical> clinicals = menses.getClinicals();
+                for (Clinical clinical : clinicals) {
+                    if (clinical.getName().contains("颜色")) {
+                        status.set("0");
+                        return;
                     }
                 }
             }

+ 6 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0066.java

@@ -7,6 +7,7 @@ import com.lantone.qc.pub.model.entity.Clinical;
 import com.lantone.qc.pub.model.entity.Menses;
 import com.lantone.qc.pub.model.label.MenstrualLabel;
 import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -30,6 +31,11 @@ public class BEH0066 extends QCCatalogue {
             status.set("0"); //如果性别是男,就不报错
         } else if (inputInfo.getBeHospitalizedDoc().getMenstrualLabel() != null) {
             MenstrualLabel menstrualLabel = inputInfo.getBeHospitalizedDoc().getMenstrualLabel();
+            String text = menstrualLabel.getText();
+            if (StringUtil.isNotBlank(text) && text.contains("未行经")){
+                status.set("0");
+                return;
+            }
             List<Menses> mensesList = menstrualLabel.getMensesList();
             if (ListUtil.isEmpty(mensesList)) {
                 return;

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0067.java

@@ -39,7 +39,7 @@ public class BEH0067 extends QCCatalogue {
             if (inputInfo.getBeHospitalizedDoc().getMenstrualLabel() != null) {
                 MenstrualLabel menstrualLabel = inputInfo.getBeHospitalizedDoc().getMenstrualLabel();
                 String labelText = menstrualLabel.getText();
-                if (StringUtil.isNotBlank(labelText) && labelText.contains("痛经")) {
+                if (StringUtil.isNotBlank(labelText) && (labelText.contains("未行经") ||labelText.contains("痛经"))) {
                     status.set("0");
                     return;
                 }

+ 6 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0068.java

@@ -34,7 +34,12 @@ public class BEH0068 extends QCCatalogue {
             }
             if (inputInfo.getBeHospitalizedDoc().getMenstrualLabel() != null) {
                 MenstrualLabel menstrualLabel = inputInfo.getBeHospitalizedDoc().getMenstrualLabel();
-                if (menstrualLabel == null || menstrualLabel.getLeukorrheas() == null) {
+                String text = menstrualLabel.getText();
+                if (StringUtil.isNotBlank(text) && text.contains("未行经")){
+                    status.set("0");
+                    return;
+                }
+                if (menstrualLabel.getLeukorrheas() == null) {
                     return;
                 }
                 if (menstrualLabel.getLeukorrheas().size() > 0) {

+ 7 - 13
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0306.java

@@ -24,30 +24,24 @@ import java.util.regex.Pattern;
 public class CLI0306 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
-        if(ListUtil.isEmpty(clinicalBloodDocs)){
+        if (ListUtil.isEmpty(clinicalBloodDocs)) {
             status.set("0");
             return;
         }
-        if(clinicalBloodDocs != null && clinicalBloodDocs.size()>0){
-            for (ClinicalBloodDoc cliB:clinicalBloodDocs) {
+        if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
+            for (ClinicalBloodDoc cliB : clinicalBloodDocs) {
                 Map<String, String> cliBStructureMap = cliB.getStructureMap();
                 //台州
-                if(StringUtils.isNotEmpty(cliBStructureMap.get("输血检验指标"))){
+                if (StringUtils.isNotEmpty(cliBStructureMap.get("输血检验指标"))) {
                     status.set("0");
                     break;
                 }
                 String infusionReason = cliBStructureMap.get("输注原因");
-                if(StringUtils.isNotEmpty(infusionReason)){
-                    Pattern compile = Pattern.compile("[^\\d]+(\\d+)");
-                    Matcher matcher = compile.matcher(infusionReason);
-                    while (matcher.find()){
-                        status.set("0");
-                        break;
-                    }
-
+                if (StringUtils.isNotEmpty(infusionReason)) {
+                    status.set("0");
                 }
             }
-        }else {
+        } else {
             status.set("0");
         }
 

+ 14 - 9
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0308.java

@@ -21,27 +21,32 @@ import java.util.Map;
 public class CLI0308 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
-        if(ListUtil.isEmpty(clinicalBloodDocs)){
+        if (ListUtil.isEmpty(clinicalBloodDocs)) {
             status.set("0");
             return;
         }
 
-        if(clinicalBloodDocs != null && clinicalBloodDocs.size()>0){
-            for (ClinicalBloodDoc cliB:clinicalBloodDocs) {
+        if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
+            String regex = ".*未?无?否?.*(输血反应|不良反应).*";
+            for (ClinicalBloodDoc cliB : clinicalBloodDocs) {
                 Map<String, String> cliBStructureMap = cliB.getStructureMap();
-                if(StringUtils.isNotEmpty(cliBStructureMap.get("输注后效果评价")) && (cliBStructureMap.get("输注后效果评价").contains("不良反应")
-                        || cliBStructureMap.get("输注后效果评价").contains("不适"))){
+                if (StringUtils.isNotEmpty(cliBStructureMap.get("输注后效果评价")) && (cliBStructureMap.get("输注后效果评价").contains("不良反应")
+                        || cliBStructureMap.get("输注后效果评价").contains("不适"))) {
                     status.set("0");
                     break;
                 }
                 String infusion_process = cliBStructureMap.get("输注过程");
-                if(StringUtils.isNotEmpty(infusion_process) && (infusion_process.contains("不良反应")
-                || infusion_process.contains("不适"))){
+                if (StringUtils.isEmpty(infusion_process)) {
                     status.set("0");
-                    break;
+                    continue;
+                }
+                if (infusion_process.matches(regex)) {
+                    status.set("0");
+                } else {
+                    status.set("-1");
                 }
             }
-        }else {
+        } else {
             status.set("0");
         }
 

+ 13 - 7
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0569.java

@@ -23,26 +23,32 @@ import java.util.regex.Pattern;
 public class CLI0569 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
-        if(ListUtil.isEmpty(clinicalBloodDocs)){
+        if (ListUtil.isEmpty(clinicalBloodDocs)) {
             status.set("0");
             return;
         }
-        if(clinicalBloodDocs != null && clinicalBloodDocs.size()>0){
-            for (ClinicalBloodDoc cliB:clinicalBloodDocs) {
+        if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
+            for (ClinicalBloodDoc cliB : clinicalBloodDocs) {
                 Map<String, String> cliBStructureMap = cliB.getStructureMap();
                 //台州
-                if(StringUtils.isNotEmpty(cliBStructureMap.get("血型"))){
+                if (StringUtils.isNotEmpty(cliBStructureMap.get("血型"))) {
                     status.set("0");
                     break;
                 }
-                if(cliBStructureMap.containsKey("输注种类、血型、数量")){
-                    if(StringUtils.isEmpty(cliBStructureMap.get("输注种类、血型、数量"))){
+                if (cliBStructureMap.containsKey("输注种类、血型、数量")) {
+                    String bloodType = cliBStructureMap.get("输注种类、血型、数量");
+                    if (StringUtils.isEmpty(bloodType)) {
                         status.set("-1");
                         break;
+                    } else {
+                        if (bloodType.contains("白蛋白")) {
+                            status.set("0");
+                            continue;
+                        }
                     }
                     Pattern compile = Pattern.compile("[a-zA-Z]+型");
                     Matcher matcher = compile.matcher(cliBStructureMap.get("输注种类、血型、数量"));
-                    if(matcher.find()){
+                    if (matcher.find()) {
                         status.set("0");
                     }
                 }

+ 13 - 9
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0571.java

@@ -5,6 +5,7 @@ import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.ClinicalBloodDoc;
 import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
@@ -21,24 +22,27 @@ import java.util.Map;
 public class CLI0571 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
-        if(ListUtil.isEmpty(clinicalBloodDocs)){
+        if (ListUtil.isEmpty(clinicalBloodDocs)) {
             status.set("0");
             return;
         }
-        if(clinicalBloodDocs != null && clinicalBloodDocs.size()>0){
-            for (ClinicalBloodDoc cliB:clinicalBloodDocs) {
+        if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
+            for (ClinicalBloodDoc cliB : clinicalBloodDocs) {
                 Map<String, String> cliBStructureMap = cliB.getStructureMap();
                 //台州
-                if(StringUtils.isNotEmpty(cliBStructureMap.get("Rh血型"))){
+                if (StringUtils.isNotEmpty(cliBStructureMap.get("Rh血型"))) {
                     status.set("0");
                     return;
                 }
                 //长兴
-                if(cliBStructureMap != null && cliBStructureMap.containsKey("输注种类、血型、数量")){
-                    if(cliBStructureMap.get("输注种类、血型、数量").contains("Rh")
-                            || cliBStructureMap.get("输注种类、血型、数量").contains("RH")){
-                        status.set("0");
-                        return;
+                if (cliBStructureMap.containsKey("输注种类、血型、数量")) {
+                    String bloodType = cliBStructureMap.get("输注种类、血型、数量");
+                    if (StringUtil.isNotBlank(bloodType)) {
+                        if (bloodType.contains("Rh") || bloodType.contains("RH")
+                                || bloodType.contains("白蛋白")) {
+                            status.set("0");
+                            return;
+                        }
                     }
                 }
 

+ 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");
         }
     }