Procházet zdrojové kódy

Merge remote-tracking branch 'origin/hb/beilun' into hb/beilun

rengb před 3 roky
rodič
revize
e84562173c

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

@@ -83,7 +83,7 @@ public class BEH0011 extends QCCatalogue {
                 /* 取现病史中一般情况之后的疾病名称 */
                 if (StringUtil.isNotBlank(presentText) && presentDiags.size() > 0) {
                     String lastGeneral = generals.get(generals.size() - 1).getName();
-                    int lastGeneralIndex = presentText.indexOf(lastGeneral);
+                    int lastGeneralIndex = presentText.lastIndexOf(lastGeneral);
                     for (Diag presentDiag : presentDiags) {
                         if (presentDiag.getNegative() != null || presentDiag.getHospitalDiagName().contains("否认")) {
                             continue;

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changshaxy/firstpagerecord/FIRP03242.java

@@ -18,8 +18,8 @@ import java.util.Map;
 @Component
 public class FIRP03242 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
         if (inputInfo.getFirstPageRecordDoc() == null) {
-            status.set("0");
             return;
         }
         //有出院31天再住院计划,“有”时必填,目的填写“-”错误。当为否时,目的可以为“-”。
@@ -28,10 +28,11 @@ public class FIRP03242 extends QCCatalogue {
             String objective = firstpageStructureMap.get("再住院目的");
             String rehospitalization = firstpageStructureMap.get(Content.reHospitalization);
             if (StringUtil.isBlank(objective) || StringUtil.isBlank(rehospitalization)) {
-                status.set("0");
+                return;
             }
             if (rehospitalization.equals("有") && objective.equals("-")) {
                 status.set("-1");
+                return;
             }
         }
     }

+ 126 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/ningbozhongyi/behospitalized/BEH0006.java

@@ -0,0 +1,126 @@
+package com.lantone.qc.kernel.catalogue.hospital.ningbozhongyi.behospitalized;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.entity.PD;
+import com.lantone.qc.pub.model.label.ChiefLabel;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * @ClassName : BEH0006
+ * @Description :主诉症状缺少近期时间描述
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28
+ */
+@Component
+public class BEH0006 extends QCCatalogue {
+    private List<String> containList = Arrays.asList("半年", "术后");
+
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (outputInfo != null && outputInfo.getResult() != null) {
+            Map<String, Object> outputMap = outputInfo.getResult().get("BEH0009");
+            if (outputMap != null && "-1".equals(outputMap.get("status"))) {
+                status.set("0");
+                return;
+            }
+        }
+        if (inputInfo.getBeHospitalizedDoc() == null) {
+            status.set("0");
+            return;
+        }
+        ChiefLabel chiefLabel = inputInfo.getBeHospitalizedDoc().getChiefLabel();
+        if (chiefLabel == null || StringUtil.isBlank(chiefLabel.getText())) {
+            status.set("0");
+            return;
+        }
+//        List<Clinical> clinicalList = chiefLabel.getClinicals();
+//        boolean flag = true;
+//        // 主诉症状不超过1年就不报错,单位不包含“年”
+//        if (ListUtil.isNotEmpty(clinicalList)) {
+//            for (Clinical c : clinicalList) {
+//                List<PD> pds = c.getTimestamp();
+//                if (ListUtil.isNotEmpty(pds)) {
+//                    for (PD pd : pds) {
+//                        if (StringUtil.isNotBlank(pd.getName()) &&
+//                                pd.getName().contains("年") && !"半年".equals(pd.getName())) {
+//                            flag = false;
+//                            break;
+//                        }
+//                    }
+//                }
+//            }
+//            if (flag) {
+//                status.set("0");
+//                return;
+//            }
+//        }
+        String chiefText = chiefLabel.getText();
+        if (StringUtil.isNotBlank(chiefText)) {
+            if(chiefText.contains("月经") && !chiefText.contains("痛")){
+                status.set("0");
+                return;
+            }
+            for (String fild : containList) {
+                if (chiefText.contains(fild)) {
+                    status.set("0");
+                    return;
+                }
+            }
+            List<PD> pds = chiefLabel.getPds();
+            if (pds != null && pds.size() > 0) {
+                if (pds.size() == 2) {
+                    status.set("0");
+                    return;
+                }
+                for (PD pd : pds) {
+                    String pdName = pd.getName();
+                    if (!CatalogueUtil.isEmpty(pdName)) {
+                        if (pdName.contains("天") || pdName.contains("周") || pdName.contains("月")
+                                || pdName.contains("时") || pdName.contains("半年") || pdName.contains("秒")
+                                || pdName.contains("分") || pdName.contains("日") || pdName.contains("今")
+                                || pdName.contains("1年") || pdName.contains("一年")) {
+                            status.set("0");
+                            break;
+                        }
+                    }
+                }
+            } else {
+                if (StringUtil.isNotBlank(chiefLabel.getText())) {
+                    status.set("0");
+                    return;
+                }
+            }
+        }
+            /*List<Clinical> clinicals = chiefLabel.getClinicals();
+            if(clinicals.size()>0){
+                for (Clinical clinical:clinicals) {
+                    List<PD> timestamp = clinical.getTimestamp();
+                    if(timestamp != null){
+                        for (PD pd:timestamp) {
+                            if(!CatalogueUtil.isEmpty(pd.getName())){
+                                if(pd.getName().contains("天") || pd.getName().contains("周")|| pd.getName().contains("月")
+                                        || pd.getName().contains("时") || pd.getName().contains("半年") || pd.getName().contains("秒")
+                                        || pd.getName().contains("日")|| pd.getName().contains("今")){
+                                    status.set("0");
+                                    break;
+                                }
+                            }
+                        }
+                        if(status.get().equals("0")){
+                            break;
+                        }
+                    }
+                }
+            }else {
+                status.set("0");
+            }*/
+    }
+}

+ 2 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR02931.java

@@ -53,7 +53,8 @@ public class THR02931 extends QCCatalogue {
             ThreeLevelWardDoc lastWardDoc = allDoctorWradDocs.get(i);
             Map<String, String> structureMap = lastWardDoc.getStructureMap();
             String title = structureMap.get("查房标题");
-            if (StringUtil.isBlank(title) || title.contains("病理报告")) {
+            if (StringUtil.isBlank(title) || title.contains("病理")|| title.contains("化验")
+                    || title.contains("检验")|| title.contains("检查")) {
                 continue;
             }
             String recordDateStr = structureMap.get("查房日期");