Browse Source

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

zhangzw 4 years ago
parent
commit
c6f0fb0e64

+ 29 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/behospitalized/BEH0032.java

@@ -10,6 +10,7 @@ import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
@@ -24,22 +25,46 @@ public class BEH0032 extends QCCatalogue {
     @Override
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
         status.set("0");
-        if(inputInfo.getBeHospitalizedDoc() == null){
+        if (inputInfo.getBeHospitalizedDoc() == null) {
             return;
             return;
         }
         }
         PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
         PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
+        if (pastLabel == null) {
+            return;
+        }
         List<Diag> diags = pastLabel.getDiags();
         List<Diag> diags = pastLabel.getDiags();
         if (ListUtil.isEmpty(diags)) {
         if (ListUtil.isEmpty(diags)) {
             return;
             return;
         }
         }
         List<String> wtDiagNames = CatalogueUtil.noInQuotes(
         List<String> wtDiagNames = CatalogueUtil.noInQuotes(
                 diags.stream().filter(diag -> diag.getNegative() == null).map(i -> i.getHospitalDiagName()).filter(i -> StringUtil.isNotEmpty(i)).distinct().collect(Collectors.toList()),
                 diags.stream().filter(diag -> diag.getNegative() == null).map(i -> i.getHospitalDiagName()).filter(i -> StringUtil.isNotEmpty(i)).distinct().collect(Collectors.toList()),
-                pastLabel.getText().replace("“","\"").replace("”","\"")
+                pastLabel.getText().replace("“", "\"").replace("”", "\"")
         );
         );
+        String pastText = pastLabel.getText();
+        List<String> wtDiagList = new ArrayList<>();
         if (ListUtil.isNotEmpty(wtDiagNames)) {
         if (ListUtil.isNotEmpty(wtDiagNames)) {
-            status.set("-1");
             for (String wtDiagName : wtDiagNames) {
             for (String wtDiagName : wtDiagNames) {
-                info.set(info.get() + wtDiagName + " ");
+                int index = pastText.indexOf(wtDiagName);
+                if (index - 1 > 0) {
+                    String markText = pastText.substring(index - 1, index);
+                    if (markText.contains("\"") || markText.contains("“")) {
+                        continue;
+                    }
+                }
+                if (index + wtDiagName.length() + 1 < pastText.length() && index > 0) {
+                    String markText = pastText.substring(index + wtDiagName.length(), index + wtDiagName.length() + 1);
+                    if (markText.contains("\"") || markText.contains("”")) {
+                        continue;
+                    }
+                }
+                wtDiagList.add(wtDiagName);
+            }
+        }
+
+        if (ListUtil.isNotEmpty(wtDiagList)) {
+            status.set("-1");
+            for (String wtDiag : wtDiagList) {
+                info.set(info.get() + wtDiag + " ");
             }
             }
         }
         }
     }
     }

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/operationdiscussion/OPE0322.java

@@ -31,7 +31,7 @@ public class OPE0322 extends QCCatalogue {
         for (DoctorAdviceDoc dad : doctorAdviceDocs) {
         for (DoctorAdviceDoc dad : doctorAdviceDocs) {
             String name = dad.getStructureMap().get("医嘱项目名称");
             String name = dad.getStructureMap().get("医嘱项目名称");
             if (name.contains("非手术") || name.contains("手术室") || (name.contains("手术") && name.contains("取消")) || (name.contains("暂停") && name.contains("手术")) || name.contains("静脉穿刺置管术") || name.startsWith("停") || name.contains("前一次")
             if (name.contains("非手术") || name.contains("手术室") || (name.contains("手术") && name.contains("取消")) || (name.contains("暂停") && name.contains("手术")) || name.contains("静脉穿刺置管术") || name.startsWith("停") || name.contains("前一次")
-                    || name.contains("特殊病人手术使用一次性卫生材料")) {
+                    || name.contains("特殊病人手术使用一次性卫生材料") || name.contains("人免疫缺陷病毒抗体检测免费")) {
                 continue;
                 continue;
             }
             }
             if (name.contains("手术") && cou == 0) {
             if (name.contains("手术") && cou == 0) {

+ 2 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/operationdiscussion/OPE0369.java

@@ -63,8 +63,9 @@ public class OPE0369 extends QCCatalogue {
                                 StringUtil.parseDateTime(admisTime),
                                 StringUtil.parseDateTime(admisTime),
                                 StringUtil.parseDateTime(operationStartDate),
                                 StringUtil.parseDateTime(operationStartDate),
                                 Long.valueOf(30))) {
                                 Long.valueOf(30))) {
-                            operDateList.add(StringUtil.parseDateTime(operationStartDate));
+                            continue;
                         }
                         }
+                        operDateList.add(StringUtil.parseDateTime(operationStartDate));
                     } else {//取不到手术时间
                     } else {//取不到手术时间
                         return;
                         return;
                     }
                     }

+ 6 - 7
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/preoperativediscussion/PRE0328.java

@@ -63,6 +63,12 @@ public class PRE0328 extends QCCatalogue {
                 j++;
                 j++;
             }
             }
         }
         }
+        /* 如果入院时间-手术开始时间小于30分钟,则术前讨论、术前小结次数+1*/
+        if (emergencyOperation) {
+            if (j == 0) {
+                j++;
+            }
+        }
         //医嘱中包含“冠状动脉造影术”,且无术前讨论.则报规则
         //医嘱中包含“冠状动脉造影术”,且无术前讨论.则报规则
         for (DoctorAdviceDoc doctorAdviceDoc : doctorAdviceDocs) {
         for (DoctorAdviceDoc doctorAdviceDoc : doctorAdviceDocs) {
             Map<String, String> doctorAdviceStructuerMap = doctorAdviceDoc.getStructureMap();
             Map<String, String> doctorAdviceStructuerMap = doctorAdviceDoc.getStructureMap();
@@ -72,13 +78,6 @@ public class PRE0328 extends QCCatalogue {
                 info.set("手术记录不一致");
                 info.set("手术记录不一致");
             }
             }
         }
         }
-        /* 如果入院时间-手术开始时间小于30分钟,则术前讨论、术前小结次数+1*/
-        if (emergencyOperation) {
-            if (j == 0) {
-                j++;
-            }
-        }
-
 
 
         if (i > 0 && i > j) {
         if (i > 0 && i > j) {
             status.set("-1");
             status.set("-1");

+ 6 - 0
kernel/src/main/java/com/lantone/qc/kernel/util/CatalogueUtil.java

@@ -451,6 +451,12 @@ public class CatalogueUtil {
             Map<String, String> structureMap = operationRecordDoc.getStructureMap();
             Map<String, String> structureMap = operationRecordDoc.getStructureMap();
             String chiefSurgeon = structureMap.get(findTitle);
             String chiefSurgeon = structureMap.get(findTitle);
             String operatorEndDateStr = structureMap.get("手术结束时间");
             String operatorEndDateStr = structureMap.get("手术结束时间");
+            if(StringUtil.isBlank(chiefSurgeon)){
+                chiefSurgeon = structureMap.get("手术者及助手名称");
+                if(StringUtil.isNotBlank(chiefSurgeon) && chiefSurgeon.contains("、")){
+                    chiefSurgeon = chiefSurgeon.split("、")[0].replace("主刀:","");
+                }
+            }
 
 
             if (StringUtil.isBlank(chiefSurgeon) || StringUtil.isBlank(operatorEndDateStr)) {
             if (StringUtil.isBlank(chiefSurgeon) || StringUtil.isBlank(operatorEndDateStr)) {
                 continue;
                 continue;

+ 6 - 1
trans/src/main/java/com/lantone/qc/trans/beilun/BeiLunThreeLevelWardDocTrans.java

@@ -299,7 +299,12 @@ public class BeiLunThreeLevelWardDocTrans extends ModelDocTrans {
             Map<String, String> structureMap = operationRecordDoc.getStructureMap();
             Map<String, String> structureMap = operationRecordDoc.getStructureMap();
             String chiefSurgeon = structureMap.get(findTitle);
             String chiefSurgeon = structureMap.get(findTitle);
             String operatorEndDateStr = structureMap.get("手术结束时间");
             String operatorEndDateStr = structureMap.get("手术结束时间");
-
+            if(StringUtil.isBlank(chiefSurgeon)){
+                chiefSurgeon = structureMap.get("手术者及助手名称");
+                if(StringUtil.isNotBlank(chiefSurgeon) && chiefSurgeon.contains("、")){
+                    chiefSurgeon = chiefSurgeon.split("、")[0].replace("主刀:","");
+                }
+            }
             if (StringUtil.isBlank(chiefSurgeon) || StringUtil.isBlank(operatorEndDateStr)) {
             if (StringUtil.isBlank(chiefSurgeon) || StringUtil.isBlank(operatorEndDateStr)) {
                 continue;
                 continue;
             }
             }