فهرست منبع

Merge remote-tracking branch 'origin/master'

rengb 5 سال پیش
والد
کامیت
5abe6485f5

+ 26 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0193.java

@@ -0,0 +1,26 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0193
+ * @Description :手术及操作名称填写不全
+ * @Author : 胡敬
+ * @Date: 2020-03-16 20:28
+ */
+@Component
+public class FIRP0193 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
+
+    }
+}

+ 58 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0248.java

@@ -0,0 +1,58 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.RescueDoc;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @ClassName : FIRP0248
+ * @Description : 抢救次数填写错误
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28ss
+ */
+@Component
+public class FIRP0248 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String name = firstpageStructureMap.get(Content.rescue_condition);
+            if (!CatalogueUtil.isEmpty(name)){
+                String[] split = name.split("\\s+");
+                Pattern compile = Pattern.compile("(?<=抢救).*(?=次)");
+                Matcher matcher = compile.matcher(split[0]);
+                while (matcher.find()){
+                    try{
+                        String number = matcher.group(0);
+                        List<RescueDoc> rescueDocs = inputInfo.getRescueDocs();
+                        if(rescueDocs != null && rescueDocs.size()>0){
+                            int size = rescueDocs.size();
+                            try{
+                                int num = Integer.parseInt(number);
+                                if(num != size){
+                                    status = "-1";
+                                }
+                            }catch (Exception e){
+                                e.printStackTrace();
+                            }
+
+                        }
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
+                }
+
+
+            }
+        }
+    }
+}

+ 67 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0250.java

@@ -0,0 +1,67 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.RescueDoc;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @ClassName : FIRP0250
+ * @Description : 抢救成功次数填写错误
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28ss
+ */
+@Component
+public class FIRP0250 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String name = firstpageStructureMap.get(Content.rescue_condition);
+            if (!CatalogueUtil.isEmpty(name)){
+                String[] split = name.split("\\s+");
+                Pattern compile = Pattern.compile("(?<=成功).*(?=次)");
+                Matcher matcher = compile.matcher(split[0]);
+                while (matcher.find()){
+                    try{
+                        String number = matcher.group(0);
+                        int i = 0;
+                        List<RescueDoc> rescueDocs = inputInfo.getRescueDocs();
+                        if(rescueDocs != null && rescueDocs.size()>0){
+                            for (RescueDoc re:rescueDocs
+                                 ) {
+                                Map<String, String> structureMap = re.getStructureMap();
+                                String qjgc = structureMap.get("抢救过程");
+                                if(!qjgc.contains("死亡")){
+                                    i++;
+                                }
+                            }
+
+                            try{
+                                int num = Integer.parseInt(number);
+                                if(num != i){
+                                    status = "-1";
+                                }
+                            }catch (Exception e){
+                                e.printStackTrace();
+                            }
+
+                        }
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
+                }
+
+
+            }
+        }
+    }
+}

+ 8 - 4
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/BeHospitalizedAI.java

@@ -82,11 +82,14 @@ public class BeHospitalizedAI {
             putContent(crfContent, medicalTextType.get(2), personal_text, Content.personal);
             //月经史
             String concatMenstrual = "";
-            if (personal_text.length() > 30) {
-                concatMenstrual = personal_text.substring(personal_text.length() - 30);
-            } else {
-                concatMenstrual = personal_text;
+            if(personal_text != null){
+                if (personal_text.length() > 30) {
+                    concatMenstrual = personal_text.substring(personal_text.length() - 30);
+                } else {
+                    concatMenstrual = personal_text;
+                }
             }
+
             putContent(crfContent, medicalTextType.get(2), concatMenstrual, menstrual_text, Content.menses);
             //婚育史
             putContent(crfContent, medicalTextType.get(2), marital_text, Content.marriage);
@@ -169,6 +172,7 @@ public class BeHospitalizedAI {
         }
         presentLabel.setTreats(treats);
 
+
     }
 
     /**

+ 2 - 0
public/src/main/java/com/lantone/qc/pub/Content.java

@@ -154,6 +154,8 @@ public class Content {
     public static final String radiation_pathology = "放射与病理";
 
     public static final String medical_classification = "病历分型";
+    public static final String inStatus = "入院病情";
+    public static final String brainInjuryComaTime = "颅脑损伤患者昏迷时间";
 
     public static final String outpatientEmergencyDiag = "门(急)诊诊断";
     public static final String diagCode = "诊断编码";

+ 1 - 0
public/src/main/java/com/lantone/qc/pub/model/label/PresentLabel.java

@@ -25,4 +25,5 @@ public class PresentLabel extends GeneralLabel {
     private List<Treat> treats;
     //一般情况
     private List<GeneralDesc> generals;
+    private List<Diag> diags;
 }