Przeglądaj źródła

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

MarkHuang 5 lat temu
rodzic
commit
1328fa1f9c
18 zmienionych plików z 101 dodań i 66 usunięć
  1. 5 5
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0002.java
  2. 2 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0011.java
  3. 8 4
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0024.java
  4. 8 4
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0025.java
  5. 8 4
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0073.java
  6. 2 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0408.java
  7. 2 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0440.java
  8. 16 17
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0305.java
  9. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0175.java
  10. 9 6
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0147.java
  11. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/preoperativediscussion/PRE0330.java
  12. 1 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0094.java
  13. 13 4
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0140.java
  14. 2 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0141.java
  15. 2 1
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxBeHospitalizedDocTrans.java
  16. 8 8
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxDocTrans.java
  17. 4 2
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxOperationDocTrans.java
  18. 9 2
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxThreeLevelWardDocTrans.java

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

@@ -65,11 +65,11 @@ public class BEH0002 extends QCCatalogue {
             String firstHDiag = diags.get(0).getHospitalDiagName();
             String mainDiag = StringUtil.isBlank(firstHDiag) ? firstDiag : firstHDiag;
             List<String> symptoms = null;
-            Map<String, String> hostpital_standDiag = redisUtil.getJsonStringValue(KernelConstants.HOSPITAL_DIAG_MAP);
-            if (!hostpital_standDiag.containsKey(mainDiag)) {
-                status.set("0");
-                return;
-            }
+//            Map<String, String> hostpital_standDiag = redisUtil.getJsonStringValue(KernelConstants.HOSPITAL_DIAG_MAP);
+//            if (!hostpital_standDiag.containsKey(mainDiag)) {
+//                status.set("0");
+//                return;
+//            }
             Map<String, Map<String, Object>> diagMap = redisUtil.getJsonStringValue(KernelConstants.CONCEPT_DIAG_PROPERTY_MAP);
             Map<String, Object> map = (Map<String, Object>) diagMap.get(mainDiag);
             if (map != null && map.size() > 0) {

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

@@ -13,6 +13,7 @@ import org.springframework.stereotype.Component;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @ClassName : BEH0011
@@ -32,7 +33,7 @@ public class BEH0011 extends QCCatalogue {
         }
         Map<String, Map<String, Object>> diagMap = redisUtil.getJsonStringValue(KernelConstants.CONCEPT_DIAG_PROPERTY_MAP);
         String initDiagText = CatalogueUtil.removeSpecialChar(inputInfo.getBeHospitalizedDoc().getInitialDiagLabel().getText());
-        List<Diag> diags = inputInfo.getBeHospitalizedDoc().getPastLabel().getDiags();
+        List<Diag> diags = inputInfo.getBeHospitalizedDoc().getPastLabel().getDiags().stream().filter(diag -> diag.getNegative() == null).collect(Collectors.toList());
         if(StringUtils.isNotEmpty(initDiagText)){
             List<String> initDiags = Arrays.asList(initDiagText.split(","));
             if(diags.size()>0){

+ 8 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0024.java

@@ -4,6 +4,7 @@ import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.entity.Wound;
+import com.lantone.qc.pub.model.label.PastLabel;
 import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -34,15 +35,18 @@ public class BEH0024 extends QCCatalogue {
             }
         }
         //硬规则匹配
-        if (inputInfo.getBeHospitalizedDoc().getPastLabel().getText().contains("外伤")) {
-            status.set("0");
-            return;
+        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
+        if (pastLabel != null){
+            String pastLabelText = pastLabel.getText();
+            if (StringUtil.isNotBlank(pastLabelText) && pastLabelText.contains("外伤")){
+                status.set("0");
+                return;
+            }
         }
         //台州结构化
         Map<String, String> structureMap_beh = inputInfo.getBeHospitalizedDoc().getStructureMap();
         if(StringUtils.isNotEmpty(structureMap_beh.get("手术外伤史"))){
             status.set("0");
-            return;
         }
 
     }

+ 8 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0025.java

@@ -4,6 +4,7 @@ import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.entity.Operation;
+import com.lantone.qc.pub.model.label.PastLabel;
 import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -34,15 +35,18 @@ public class BEH0025 extends QCCatalogue {
             }
         }
         //规则硬匹配
-        if (inputInfo.getBeHospitalizedDoc().getPastLabel().getText().contains("手术")) {
-            status.set("0");
-            return;
+        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
+        if (pastLabel != null){
+            String pastLabelText = pastLabel.getText();
+            if (StringUtil.isNotBlank(pastLabelText) && pastLabelText.contains("手术")){
+                status.set("0");
+                return;
+            }
         }
         //台州结构化
         Map<String, String> structureMap_beh = inputInfo.getBeHospitalizedDoc().getStructureMap();
         if(StringUtils.isNotEmpty(structureMap_beh.get("手术外伤史"))){
             status.set("0");
-            return;
         }
     }
 

+ 8 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0073.java

@@ -6,6 +6,7 @@ import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.entity.Diag;
 import com.lantone.qc.pub.model.entity.Family;
 import com.lantone.qc.pub.model.label.FamilyLabel;
+import com.lantone.qc.pub.model.label.PastLabel;
 import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
@@ -50,10 +51,13 @@ public class BEH0073 extends QCCatalogue {
                 }
             }
         }
-        if (inputInfo.getBeHospitalizedDoc().getPastLabel() != null &&
-                (inputInfo.getBeHospitalizedDoc().getPastLabel().getText().contains("肝炎")
-                        || inputInfo.getBeHospitalizedDoc().getPastLabel().getText().contains("结核"))) {
-            status.set("0");
+        //规则硬匹配
+        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
+        if (pastLabel != null){
+            String pastLabelText = pastLabel.getText();
+            if (StringUtil.isNotBlank(pastLabelText) && (pastLabelText.contains("肝炎") || pastLabelText.contains("结核"))){
+                status.set("0");
+            }
         }
     }
 }

+ 2 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0408.java

@@ -24,8 +24,8 @@ public class BEH0408 extends QCCatalogue {
         }
         Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
         if(structureMap != null){
-//            String name = structureMap.get("联系地址");
-            String name = structureMap.get("户口地址");
+            String name = structureMap.get("联系地址");
+//            String name = structureMap.get("户口地址");
             if(CatalogueUtil.isEmpty(name)){
                 status.set("-1");
             }

+ 2 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0440.java

@@ -25,8 +25,8 @@ public class BEH0440 extends QCCatalogue {
         }
         Map<String, String> bhMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
         if(bhMap != null){
-            if(bhMap.containsKey("户口地址")){
-                if(!CatalogueUtil.isEmpty(bhMap.get("户口地址"))){
+            if(bhMap.containsKey("联系地址")){
+                if(!CatalogueUtil.isEmpty(bhMap.get("联系地址"))){
                     status.set("0");
                 }
             }

+ 16 - 17
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0305.java

@@ -1,10 +1,12 @@
 package com.lantone.qc.kernel.catalogue.clinicalblood;
 
 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.doc.ClinicalBloodDoc;
 import com.lantone.qc.pub.util.DateUtil;
+import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
@@ -25,32 +27,29 @@ import java.util.regex.Pattern;
  */
 @Component
 public class CLI0305 extends QCCatalogue {
-    public static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm"; //输注时间
-    public static String FORMAT_LONG_CN_MI = "yyyy年MM月dd日HH时mm分"; //记录时间
-    DateUtil dateUtil = new DateUtil();
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
         List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
-        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();
-                String infusion_begin= cliBStructureMap.get("输注开始");
-                String infusion_end = cliBStructureMap.get("输注结束");
-               if(StringUtils.isNotEmpty(infusion_begin) && StringUtils.isNotEmpty(infusion_end)){
-                    try {
-                        Date date_in = new SimpleDateFormat(DATE_TIME_FORMAT).parse(infusion_begin);
-                        Date date_out = new SimpleDateFormat(DATE_TIME_FORMAT).parse(infusion_end);
-                        double distanceHour = dateUtil.getDistanceTime2(date_in, date_out);
-                        if(distanceHour > 24.0){
+                String infusionEnd = cliBStructureMap.get("输注结束");
+                String recordDateStr = cliBStructureMap.get("记录时间");
+                if (StringUtils.isNotEmpty(infusionEnd) && StringUtils.isNotEmpty(recordDateStr)) {
+                    Date infusionEndDate = StringUtil.parseDateTime(infusionEnd);
+                    Date recordDate = StringUtil.parseDateTime(recordDateStr);
+                    if (infusionEndDate != null && recordDate != null) {
+                        if (infusionEndDate.after(recordDate)) {
+                            continue;
+                        }
+                        if (CatalogueUtil.compareTime(infusionEndDate, recordDate, 24 * 60L)) {
                             status.set("-1");
+                            info.set(infusionEnd + " -> " + recordDateStr);
+                            return;
                         }
-                    } catch (ParseException e) {
-                        e.printStackTrace();
                     }
-
                 }
             }
         }
-
     }
 }

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0175.java

@@ -33,7 +33,7 @@ public class FIRP0175 extends QCCatalogue {
                 return;
             }
             String firstpageleaveDiag = dischargeDiag.get(0).get(Content.diagnoseName);
-            String leaveDiag = leaveDiags.get(0).getName();
+            String leaveDiag = leaveDiags.get(0).getHospitalDiagName();
             if (!CatalogueUtil.compareToken(firstpageleaveDiag, leaveDiag)) {
                 status.set("-1");
             }

+ 9 - 6
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0147.java

@@ -11,9 +11,11 @@ import com.lantone.qc.pub.model.entity.Diag;
 import com.lantone.qc.pub.model.label.DiagLabel;
 import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -42,13 +44,14 @@ public class LEA0147 extends QCCatalogue {
                 List<Diag> diags = leaveDiagLabel.getDiags();
                 Map<String, Map<String, String>> hospitalDiagMap = redisUtil.getJsonStringValue(KernelConstants.HOSPITAL_DIAG_MAP);
                 if (ListUtil.isNotEmpty(diags) && hospitalDiagMap != null) {
-                    long count = diags.stream().filter(i -> {
-                        if (i != null && StringUtil.isNotBlank(i.getHospitalDiagName())) {
-                            return hospitalDiagMap.get(i.getHospitalDiagName()) == null;
+                    List<String> diagnames = new ArrayList<>();
+                    for (Diag dg:diags) {
+                        if (hospitalDiagMap.get(dg.getHospitalDiagName())==null) {
+                            diagnames.add(dg.getHospitalDiagName());
                         }
-                        return false;
-                    }).count();
-                    if (count > 0) {
+                    }
+                    if (diagnames.size()>0) {
+                        info.set(StringUtils.join(diagnames.toArray(), ","));
                         status.set("-1");
                     }
                 }

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/preoperativediscussion/PRE0330.java

@@ -30,7 +30,7 @@ public class PRE0330 extends QCCatalogue {
             if (operationDoc.getPreoperativeDiscussionDoc() != null) {
                 Map<String, String> structureMap = operationDoc.getPreoperativeDiscussionDoc().getStructureMap();
                 if(structureMap != null
-                        && structureMap.get("拟施手术方式、名称及可能的变更与禁忌征 ") != null){
+                        && structureMap.get("拟施手术方式名称及可能的变更与禁忌症") != null){
                     return;
                 }
                 if (StringUtil.isEmpty(structureMap.get("拟行术式")) && StringUtil.isEmpty(structureMap.get("可能的变更"))) {

+ 1 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0094.java

@@ -33,6 +33,7 @@ public class THR0094 extends QCCatalogue {
         RedisUtil redisUtil = SpringContextUtil.getBean("redisUtil");
         Map<String, Object> surgeon = redisUtil.getJsonStringValue(KernelConstants.HOSPITAL_DOCTOR_MAP);
         if (surgeon == null) {
+            status.set("0");
             return;
         }
         Map<String, String> doctor = (Map) surgeon.get(sign);

+ 13 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0140.java

@@ -42,14 +42,23 @@ public class THR0140 extends QCCatalogue {
 
         StringBuffer message = new StringBuffer();
         //长兴:返回所有医师未签名的记录日期
+        int i = 0;
         for (ThreeLevelWardDoc threeLevelWardDoc : allDoctorWradDocs) {
-            if(StringUtil.isBlank(threeLevelWardDoc.getStructureMap().get("记录医师"))){
-                if(threeLevelWardDoc.getStructureMap() != null && threeLevelWardDoc.getStructureMap().get("记录时间") != null){
-                    message.append(threeLevelWardDoc.getStructureMap().get("记录时间")+",");
+            if (StringUtil.isBlank(threeLevelWardDoc.getStructureMap().get("记录医师"))) {
+                if (threeLevelWardDoc.getStructureMap() != null && threeLevelWardDoc.getStructureMap().get("记录时间") != null) {
+                    if (i > 1) {
+                        break;
+                    }
+                    if (message.toString().length() == 0) {
+                        message.append(threeLevelWardDoc.getStructureMap().get("记录时间"));
+                    } else {
+                        message.append(",").append(threeLevelWardDoc.getStructureMap().get("记录时间"));
+                    }
+                    i++;
                 }
             }
         }
-        info.set(message.toString());
+        info.set(message.append("...").toString());
         //        if (inputInfo.getDifficultCaseDiscussDocs().size() > 0) {
         //            processSign(inputInfo, "疑难患者");
         //        }

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

@@ -50,9 +50,9 @@ public class THR0141 extends QCCatalogue {
                 directorSum++;
             }
         }
-        if (directorSum != allDoctorWradDocs.size()) {
+        if (directorSum == 0) {
             status.set("-1");
-            if (StringUtil.isBlank(message)) {
+            if (StringUtil.isBlank(info.toString())) {
                 info.set(message);
             } else {
                 info.set(info.get() + "," + message);

+ 2 - 1
trans/src/main/java/com/lantone/qc/trans/changx/ChangxBeHospitalizedDocTrans.java

@@ -74,7 +74,8 @@ public class ChangxBeHospitalizedDocTrans extends ModelDocTrans {
             "家庭住址++++现住址=现住址",
             "产次++++产=产次",
             "家长姓名++++家长=家长姓名",
-            "职业++++首页职业新=职业"
+            "职业++++首页职业新=职业",
+            "签名时间++++修正签名时间=修正签名时间"
     );
 
     private String concatString(String item) {

+ 8 - 8
trans/src/main/java/com/lantone/qc/trans/changx/ChangxDocTrans.java

@@ -245,14 +245,14 @@ public class ChangxDocTrans extends DocTrans {
             //                            .map(operationDoc -> operationDoc.getOperationInformedConsentDoc().getPageData())
             //                            .collect(Collectors.toList())
             //            );
-            inputInfo.getPageData().put(
-                    "手术安全核查表",
-                    inputInfo.getOperationDocs()
-                            .stream()
-                            .filter(operationDoc -> operationDoc != null && operationDoc.getOperationSafetyChecklistDoc() != null)
-                            .map(operationDoc -> operationDoc.getOperationSafetyChecklistDoc().getPageData())
-                            .collect(Collectors.toList())
-            );
+//            inputInfo.getPageData().put(
+//                    "手术安全核查表",
+//                    inputInfo.getOperationDocs()
+//                            .stream()
+//                            .filter(operationDoc -> operationDoc != null && operationDoc.getOperationSafetyChecklistDoc() != null)
+//                            .map(operationDoc -> operationDoc.getOperationSafetyChecklistDoc().getPageData())
+//                            .collect(Collectors.toList())
+//            );
         }
         if (inputInfo.getTransferRecordDocs() != null) {
             if (ListUtil.isNotEmpty(inputInfo.getTransferRecordDocs().getTransferIntoDocs())) {

+ 4 - 2
trans/src/main/java/com/lantone/qc/trans/changx/ChangxOperationDocTrans.java

@@ -234,7 +234,8 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
             "手术并发症=",
             "失血量=",
             "手术经过=",
-            "记录时间="
+            "记录时间=",
+            "风险评估分值=手术风险评估"
     );
 
 
@@ -328,7 +329,8 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
             "术前准备++++术前准备情况=",
             "手术风险及预防措施++++文本框=可能意外和防范措施",
             "术中注意事项=术前术后注意事项",
-            "术后注意事项="
+            "术后注意事项=",
+            "拟施手术方式、名称及可能的变更与禁忌征=拟施手术方式名称及可能的变更与禁忌症"
     );
 
 

+ 9 - 2
trans/src/main/java/com/lantone/qc/trans/changx/ChangxThreeLevelWardDocTrans.java

@@ -51,13 +51,19 @@ public class ChangxThreeLevelWardDocTrans extends ModelDocTrans {
             }
             cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
             if (StringUtil.isBlank(structureMap.get("记录医师"))) {
+                Pattern p = Pattern.compile("^[^\\u4e00-\\u9fa5]+$");//分词结果如果不包含中文为日期,则不覆盖
                 if (StringUtil.isNotEmpty(cutWordMap.get("医师签名"))) {
-                    Pattern p = Pattern.compile("^[^\\u4e00-\\u9fa5]+$");//分词结果如果不包含中文为日期,则不覆盖
                     Matcher m = p.matcher(cutWordMap.get("医师签名"));
                     if (!m.matches()) {
                         structureMap.put("记录医师", cutWordMap.get("医师签名"));
                     }
                 }
+                if(StringUtil.isNotEmpty(cutWordMap.get("记录医生"))){
+                    Matcher m = p.matcher(cutWordMap.get("记录医生"));
+                    if (!m.matches()) {
+                        structureMap.put("记录医师", cutWordMap.get("记录医生"));
+                    }
+                }
             }
         }
 
@@ -129,7 +135,8 @@ public class ChangxThreeLevelWardDocTrans extends ModelDocTrans {
     }
 
     private List<String> sourceTitles = Lists.newArrayList(
-            "医师签名"
+            "医师签名",
+            "记录医生"
     );
 
     private List<String> keyContrasts = Lists.newArrayList(