Procházet zdrojové kódy

主诉症状时间模糊规则更新

kongwz před 5 roky
rodič
revize
6a52ba309c

+ 32 - 20
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0002.java

@@ -30,30 +30,42 @@ public class BEH0002 extends QCCatalogue {
     private RedisUtil redisUtil;
 
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        List<Diag> chiefDiags = inputInfo.getBeHospitalizedDoc().getChiefLabel().getDiags();
         List<Diag> diags = inputInfo.getBeHospitalizedDoc().getInitialDiagLabel().getDiags();
-        String mainDiag = diags.get(0).getName();
-        status = "0";
-       List<String> symptoms=null;
-       Map<String, Map<String, Object>> diagMap =(Map<String, Map<String, Object>>) redisUtil.get(KernelConstants.CONCEPT_DIAG_PROPERTY_MAP);
-       Map<String, Object> map = (Map<String, Object>) diagMap.get(mainDiag);
-       if(map != null || map.size() >0){
-           symptoms = (List<String>) map.get("symptoms");
-       }
-        List<Clinical> clinicals = inputInfo.getBeHospitalizedDoc().getPresentLabel().getClinicals();
-        if(clinicals != null && clinicals.size()>0){
-            for (Clinical clinical:clinicals) {
-                String clinicalName = clinical.getName();
-                if(symptoms != null && !symptoms.contains(clinicalName)){
-                    if(StringUtils.isEmpty(info)){
-                        info = clinicalName;
-                    }else {
-                        info = info +"," +clinicalName;
+        if(chiefDiags.size()>0){
+            for (Diag diag:chiefDiags) {
+                String hospitalDiagName = diag.getHospitalDiagName();
+                if(hospitalDiagName.contains("术后")||hospitalDiagName.contains("癌")||
+                        hospitalDiagName.contains("瘤") || hospitalDiagName.contains("复诊")){
+                    status = "0";
+                    break;
+                }
+            }
+        }else {
+            String mainDiag = diags.get(0).getName();
+            List<String> symptoms=null;
+            Map<String, Map<String, Object>> diagMap =(Map<String, Map<String, Object>>) redisUtil.get(KernelConstants.CONCEPT_DIAG_PROPERTY_MAP);
+            Map<String, Object> map = (Map<String, Object>) diagMap.get(mainDiag);
+            if(map != null || map.size() >0){
+                symptoms = (List<String>) map.get("symptoms");
+            }
+            List<Clinical> clinicals = inputInfo.getBeHospitalizedDoc().getPresentLabel().getClinicals();
+            if(clinicals != null && clinicals.size()>0){
+                for (Clinical clinical:clinicals) {
+                    String clinicalName = clinical.getName();
+                    if(symptoms != null && !symptoms.contains(clinicalName)){
+                        if(StringUtils.isEmpty(info)){
+                            info = clinicalName;
+                        }else {
+                            info = info +"," +clinicalName;
+                        }
                     }
                 }
             }
+            if(StringUtils.isEmpty(info)){
+                status = "0";
+            }
         }
-        if(StringUtils.isNotEmpty(info)){
-            status = "-1";
-        }
+
     }
 }

+ 13 - 13
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0007.java

@@ -29,23 +29,23 @@ public class BEH0007 extends QCCatalogue {
 
         ChiefLabel chiefLabel = inputInfo.getBeHospitalizedDoc().getChiefLabel();
         List<Clinical> clinicals = chiefLabel.getClinicals();
-        Set<String> clinicalSet = new HashSet<>();
         if(clinicals.size()>0){
-            for (Clinical clinical:clinicals) {
-                String clinicalName = clinical.getName();
-                List<PD> clinicalTimestamp = clinical.getTimestamp();
-                if(clinicalTimestamp.size()>0){
-                    for (PD pd:clinicalTimestamp) {
-                        if(StringUtils.isEmpty(pd.getUnit())){
-                            clinicalSet.add(clinicalName);
-                        }
+            Clinical clinical = clinicals.get(0);
+            List<PD> timestamp = clinical.getTimestamp();
+            if(timestamp.size()>0){
+                for (PD pd:timestamp) {
+                    String value = pd.getValue();
+                    String unit = pd.getUnit();
+                    if(StringUtils.isEmpty(unit) && value.contains("数")){
+                        status = "-1";
+                        break;
+                    }else {
+                        status = "0";
                     }
                 }
+            }else {
+                status = "0";
             }
-        }
-        if(clinicalSet.size()>0){
-            status = "-1";
-            info = clinicalSet.toString().replace("[","").replace("]","");
         }else {
             status = "0";
         }