Explorar o código

查房记录中产科检查描述值为【破膜未破】与【胎膜早破】诊断不符规则修改

wangsy %!s(int64=3) %!d(string=hai) anos
pai
achega
b0e5c8931b

+ 4 - 9
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH03324.java

@@ -56,13 +56,8 @@ public class BEH03324 extends QCCatalogue {
         if (initialDiagLabel != null) {
             List<Diag> diagLists = initialDiagLabel.getDiags();
             if (ListUtil.isNotEmpty(diagLists)) {
-                diagLists.stream().filter(diag -> StringUtil.isNotEmpty(diag.getHospitalDiagName()) && (diagListWords.contains(diag.getHospitalDiagName()))).forEach(diag -> {
-                    Pattern pattern = Pattern.compile("[Gg孕][^1-9]?([1-9])[^1-9]?[Pp产][^1-9]?([0-9])[^1-9]");
-                    Matcher matcher = pattern.matcher(diag.getHospitalDiagName());
-                    if (matcher.find()) {
-                        diagList.add(matcher.group());
-                    }
-                });
+                diagLists.stream().filter(diag -> StringUtil.isNotEmpty(diag.getHospitalDiagName()) && (diagListWords.contains(diag.getHospitalDiagName()) || diag.getHospitalDiagName().matches(".*[Gg孕][^1-9]?([1-9])[^1-9]?[Pp产][^1-9]?([0-9])[^1-9].*"))).forEach(diag ->
+                        diagList.add(diag.getHospitalDiagName()));
             }
         }
         //如果疾病集合为空则直接返回
@@ -72,10 +67,10 @@ public class BEH03324 extends QCCatalogue {
 
         //第一个诊断为准
         if (diagList.get(0).contains("孕")) {
-            graNum = diagList.get(0).substring(diagList.get(0).indexOf("孕"), Math.min(diagList.get(0).length(), diagList.get(0).indexOf("孕") + 1));
+            graNum = diagList.get(0).substring(diagList.get(0).indexOf("孕") + 1, Math.min(diagList.get(0).length(), diagList.get(0).indexOf("孕") + 2));
         }
         if (diagList.get(0).contains("产")) {
-            parityNum = diagList.get(0).substring(diagList.get(0).indexOf("产"), Math.min(diagList.get(0).length(), diagList.get(0).indexOf("产") + 1));
+            parityNum = diagList.get(0).substring(diagList.get(0).indexOf("产") + 1, Math.min(diagList.get(0).length(), diagList.get(0).indexOf("产") + 2));
         }
 
 

+ 28 - 21
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC03326.java

@@ -60,13 +60,8 @@ public class FIRC03326 extends QCCatalogue {
         if (initialDiagLabel != null) {
             List<Diag> diagLists = initialDiagLabel.getDiags();
             if (ListUtil.isNotEmpty(diagLists)) {
-                diagLists.stream().filter(diag -> StringUtil.isNotEmpty(diag.getHospitalDiagName()) && (diagListWords.contains(diag.getHospitalDiagName()))).forEach(diag -> {
-                    Pattern pattern = Pattern.compile("[Gg孕][^1-9]?([1-9])[^1-9]?[Pp产][^1-9]?([0-9])[^1-9]");
-                    Matcher matcher = pattern.matcher(diag.getHospitalDiagName());
-                    if (matcher.find()) {
-                        diagList.add(matcher.group());
-                    }
-                });
+                diagLists.stream().filter(diag -> StringUtil.isNotEmpty(diag.getHospitalDiagName()) && (diagListWords.contains(diag.getHospitalDiagName()) || diag.getHospitalDiagName().matches(".*[Gg孕][^1-9]?([1-9])[^1-9]?[Pp产][^1-9]?([0-9])[^1-9].*"))).forEach(diag ->
+                        diagList.add(diag.getHospitalDiagName()));
             }
         }
 
@@ -77,10 +72,10 @@ public class FIRC03326 extends QCCatalogue {
 
         //第一个诊断为准
         if (diagList.get(0).contains("孕")) {
-            graNumA = diagList.get(0).substring(diagList.get(0).indexOf("孕"), Math.min(diagList.get(0).length(), diagList.get(0).indexOf("孕") + 1));
+            graNumA = diagList.get(0).substring(diagList.get(0).indexOf("孕") + 1, Math.min(diagList.get(0).length(), diagList.get(0).indexOf("孕") + 2));
         }
         if (diagList.get(0).contains("产")) {
-            parityNumB = diagList.get(0).substring(diagList.get(0).indexOf("产"), Math.min(diagList.get(0).length(), diagList.get(0).indexOf("产") + 1));
+            parityNumB = diagList.get(0).substring(diagList.get(0).indexOf("产") + 1, Math.min(diagList.get(0).length(), diagList.get(0).indexOf("产") + 2));
         }
 
         if (StringUtil.isEmpty(graNumA) || StringUtil.isEmpty(parityNumB)) {
@@ -92,7 +87,7 @@ public class FIRC03326 extends QCCatalogue {
         if (diagnosisLabel != null) {
             String text = diagnosisLabel.getText();
             if (StringUtil.isNotBlank(text)) {
-                Pattern pattern = Pattern.compile("[Gg孕][^1-9]?([1-9])[^1-9]?[Pp产][^1-9]?([0-9])[^1-9]");
+                Pattern pattern = Pattern.compile(".*[Gg孕][^1-9]?([1-9])[^1-9]?[Pp产][^1-9]?([0-9])[^1-9].*|([0-9])-([0-9])-([0-9])-([0-9])");
                 Matcher matcher = pattern.matcher(text);
                 if (matcher.find()) {
                     Diagnosis = matcher.group();
@@ -102,22 +97,34 @@ public class FIRC03326 extends QCCatalogue {
         if (StringUtil.isEmpty(Diagnosis)) {
             return;
         }
-        if (Diagnosis.contains("孕")) {
-            graNumA1 = Diagnosis.substring(Diagnosis.indexOf("孕"), Math.min(Diagnosis.length(), Diagnosis.indexOf("孕") + 1));
-        }
-        if (Diagnosis.contains("产")) {
-            parityNumB1 = Diagnosis.substring(Diagnosis.indexOf("产"), Math.min(Diagnosis.length(), Diagnosis.indexOf("产") + 1));
-        }
+        if (Diagnosis.contains("孕") && Diagnosis.contains("产")) {
+            graNumA1 = Diagnosis.substring(Diagnosis.indexOf("孕") + 1, Math.min(Diagnosis.length(), Diagnosis.indexOf("孕") + 2));
+            parityNumB1 = Diagnosis.substring(Diagnosis.indexOf("产") + 1, Math.min(Diagnosis.length(), Diagnosis.indexOf("产") + 2));
 
-        if (StringUtil.isEmpty(graNumA1) || StringUtil.isEmpty(parityNumB1)) {
-            return;
+            if (StringUtil.isEmpty(graNumA1) || StringUtil.isEmpty(parityNumB1)) {
+                return;
+            }
+            if (strConvertInt(graNumA) != strConvertInt(graNumA1) || strConvertInt(parityNumB) != strConvertInt(parityNumB1)) {
+                status.set("-1");
+                return;
+            }
         }
 
-        if (strConvertInt(graNumA) != strConvertInt(graNumA1) || strConvertInt(parityNumB) != strConvertInt(parityNumB1)) {
-            status.set("-1");
-            return;
+        if (Diagnosis.contains("-")) {
+            String[] split = Diagnosis.split("-");
+            try {
+                if ((strConvertInt(graNumA) != strConvertInt(split[0]) + strConvertInt(split[1]) + strConvertInt(split[2]) + 1) ||
+                        (strConvertInt(parityNumB) != strConvertInt(split[0]) + strConvertInt(split[1]) + strConvertInt(split[2]))
+                ) {
+                    status.set("-1");
+                    return;
+                }
+            } catch (Exception e) {
+                return;
+            }
         }
 
+
     }
 
     //String转int

+ 3 - 13
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03301.java

@@ -38,7 +38,7 @@ public class FIRP03301 extends QCCatalogue {
 
         //查证住院信息表
         MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
-        if(medicalRecordInfoDoc == null){
+        if (medicalRecordInfoDoc == null) {
             return;
         }
         //定义变量,并将住院信息表中的出院科室信息赋值给变量
@@ -54,24 +54,14 @@ public class FIRP03301 extends QCCatalogue {
         //获取出院诊断信息
         Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
         List<Map<String, String>> dischargeDiag = (List) firstpageStructureMap.get(Content.dischargeDiag);
-        if(dischargeDiag == null){
+        if (dischargeDiag == null) {
             return;
         }
         //获取诊断编码
         String s = dischargeDiag.get(0).get(Content.diagCode);
-        char fir = s.charAt(0);
-        if(s == null){
-            return;
-        } else if(fir == 0){
-
+        if (!s.startsWith("O") && !s.startsWith("o")) {
             status.set("-1");
             return;
-        } else{
-            return;
         }
-
-
-
-
     }
 }

+ 2 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03329.java

@@ -15,7 +15,7 @@ import java.util.Map;
 
 /**
  * @ClassName : FIRP03329
- * @Description :  首页出院诊断有【阴道或外(会)阴裂伤】,无手术操作
+ * @Description :  首页出院诊断有【阴道或外(会)阴裂伤】,无相关手术操作
  * @Author : wsy
  * @Date: 2022-04-15 15:51
  */
@@ -48,7 +48,7 @@ public class FIRP03329 extends QCCatalogue {
         List<String> diagOPList = new ArrayList<>();
         //获取病案首页疾病并判断
         //获取出院诊断
-        List<Map<String, String>> leaveDiagList = (List) firstPageRecordDoc.getStructureExtMap().get(Content.operative_information);
+        List<Map<String, String>> leaveDiagList = (List) firstPageRecordDoc.getStructureExtMap().get(Content.dischargeDiag);
         if (leaveDiagList == null || leaveDiagList.size() == 0) {
             return;
         }

+ 3 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR03325.java

@@ -59,7 +59,7 @@ public class THR03325 extends QCCatalogue {
         for (ThreeLevelWardDoc threeLevelWard : allDoctorWradDocs) {
             Map<String, String> structureMap = threeLevelWard.getStructureMap();
             String record = structureMap.get("病情记录");
-            Pattern pattern = Pattern.compile("[Gg孕][^1-9]?([1-9])[^1-9]?[Pp产][^1-9]?([0-9])[^1-9]");
+            Pattern pattern = Pattern.compile(".*[Gg孕][^1-9]?([1-9])[^1-9]?[Pp产][^1-9]?([0-9])[^1-9].*");
             Matcher matcher = pattern.matcher(record);
             if (matcher.find()) {
                 diagList.add(matcher.group());
@@ -71,10 +71,10 @@ public class THR03325 extends QCCatalogue {
         }
 
         if (diagList.get(0).contains("孕")) {
-            graNum = diagList.get(0).substring(diagList.get(0).indexOf("孕"), Math.min(diagList.get(0).length(), diagList.get(0).indexOf("孕") + 1));
+            graNum = diagList.get(0).substring(diagList.get(0).indexOf("孕") + 1, Math.min(diagList.get(0).length(), diagList.get(0).indexOf("孕") + 2));
         }
         if (diagList.get(0).contains("产")) {
-            parityNum = diagList.get(0).substring(diagList.get(0).indexOf("产"), Math.min(diagList.get(0).length(), diagList.get(0).indexOf("产") + 1));
+            parityNum = diagList.get(0).substring(diagList.get(0).indexOf("产") + 1, Math.min(diagList.get(0).length(), diagList.get(0).indexOf("产") + 2));
         }
 
         if (StringUtil.isEmpty(graNum) || StringUtil.isEmpty(parityNum)) {