Quellcode durchsuchen

Merge remote-tracking branch 'origin/hb/beilun' into hb/debug

wangsy vor 3 Jahren
Ursprung
Commit
2b79f72a5f

+ 104 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/ningbozhongyi/behospitalized/BEH0378.java

@@ -0,0 +1,104 @@
+package com.lantone.qc.kernel.catalogue.hospital.ningbozhongyi.behospitalized;
+
+import com.google.common.collect.Lists;
+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.Family;
+import com.lantone.qc.pub.model.label.FamilyLabel;
+import com.lantone.qc.pub.model.label.MaritalLabel;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Description: 配偶死亡原因未描述
+ * @author: rengb
+ * @time: 2020/3/10 14:02
+ */
+@Component
+public class BEH0378 extends QCCatalogue {
+
+    @Override
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        if (inputInfo.getBeHospitalizedDoc() == null) {
+            return;
+        }
+        FamilyLabel familyLabel = inputInfo.getBeHospitalizedDoc().getFamilyLabel();
+        MaritalLabel maritalLabel = inputInfo.getBeHospitalizedDoc().getMaritalLabel();
+
+        if (familyLabel == null || maritalLabel == null ||
+                StringUtil.isBlank(familyLabel.getText()) || StringUtil.isBlank(maritalLabel.getText())) {
+            return;
+        }
+        List<Family> familiesFl = null;
+        List<Family> familiesMl = null;
+
+        if (familyLabel != null) {
+            familiesFl = familyLabel.getFamilies();
+            //规则匹配
+            String familyText = familyLabel.getText();
+            if (StringUtil.isNotBlank(familyText) && (familyText.contains("自然死亡")|| familyText.matches("[\\s\\S]*(?=配偶因)[^,;,;。]{0,15}(?=已故)[\\s\\S]*"))) {
+                status.set("0");
+                return;
+            }
+        }
+        if (maritalLabel != null && maritalLabel.getFamily() != null) {
+            familiesMl = maritalLabel.getFamily();
+            if (familiesMl == null) {
+                return;
+            }
+            for (Family family : familiesMl) {
+                if (family.getDead() != null && family.getName() != null) {
+                    String maritalText = maritalLabel.getText();
+                    int index1 = maritalText.indexOf(family.getDead().getName());
+                    int index2 = maritalText.indexOf(family.getName());
+                    if (0 < index1 && index1 < index2 && maritalText.substring(index1, index2).contains(",")) {
+                        family.setDead(null);
+                    }
+                }
+            }
+        }
+        List<Family> familyList = Lists.newArrayList();
+
+        if (familiesFl != null && familiesFl.size() > 0) {
+            familyList.addAll(familiesFl);
+        }
+        if (familiesMl != null && familiesMl.size() > 0) {
+            familyList.addAll(familiesMl);
+        }
+
+        familyList = familyList
+                .stream()
+                .filter(
+                        i -> i != null
+                                && StringUtil.isNotBlank(i.getName())
+                                && i.getName().contains("配偶")
+                                && i.getDead() != null
+                                && StringUtil.isNotBlank(i.getDead().getName())
+                )
+                .collect(Collectors.toList());
+
+        if (familyList.size() > 0) {
+            status.set("-1");
+            long count = familyList
+                    .stream()
+                    .filter(
+                            i -> (i.getDead().getDeadReason() != null && StringUtil.isNotBlank(i.getDead().getDeadReason().getName()))
+                                    || (i.getDead().getUnknow() != null && StringUtil.isNotBlank(i.getDead().getUnknow().getName()))
+                    )
+                    .count();
+            if (count > 0) {
+                status.set("0");
+            }
+        }
+        String maritalText = maritalLabel.getText();
+        if (StringUtil.isNotBlank(maritalText) && maritalText.matches("[\\s\\S]*(?=配偶因)[^,;,;。]{0,15}(?=已故)[\\s\\S]*")) {
+            status.set("0");
+            return;
+        }
+    }
+}

+ 52 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/ningbozhongyi/clinicalblood/CLI0571.java

@@ -0,0 +1,52 @@
+package com.lantone.qc.kernel.catalogue.hospital.ningbozhongyi.clinicalblood;
+
+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.doc.ClinicalBloodDoc;
+import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : CLI0571
+ * @Description :  输血记录Rh血型未填写
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28
+ */
+@Component
+public class CLI0571 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
+        if (ListUtil.isEmpty(clinicalBloodDocs)) {
+            status.set("0");
+            return;
+        }
+        if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
+            for (ClinicalBloodDoc cliB : clinicalBloodDocs) {
+                Map<String, String> cliBStructureMap = cliB.getStructureMap();
+                //台州
+                if (StringUtils.isNotEmpty(cliBStructureMap.get("Rh血型"))) {
+                    status.set("0");
+                    return;
+                }
+                //长兴
+                if (cliBStructureMap.containsKey("输注种类、血型、数量")) {
+                    String bloodType = cliBStructureMap.get("输注种类、血型、数量");
+                    if (StringUtil.isNotBlank(bloodType)) {
+                        if (bloodType.contains("RH") || bloodType.contains("Rh")
+                                || bloodType.contains("血蛋白")) {
+                            status.set("0");
+                            return;
+                        }
+                    }
+                }
+            }
+        }
+
+    }
+}

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

@@ -262,8 +262,8 @@ public class Content {
     public static final String single_disease_management = "单病种管理";
     public static final String rescue_condition = "抢救情况";
     public static final String treatmentType = "治疗类别";
-    public static final String outpatientEmrChDiagnose = "门急诊诊断(中医)";
-    public static final String outpatientEmrChDiagnoseCode = "门急诊诊断(中医)";
+    public static final String outpatientEmrChDiagnose = "中医门急诊诊断";
+    public static final String outpatientEmrChDiagnoseCode = "中医疾病编码";
 
 
     public static final String doctor_rank = "医师等级";
@@ -693,43 +693,43 @@ public class Content {
             "尼可刹米", "可拉明", "盐酸洛贝林", "山梗菜碱", "肾上腺素", "阿拉明", "重酒石酸间羟胺", "多巴胺", "利血平", "25%硫酸镁注射液", "垂体后叶素", "注射用血凝酶", "阿托品", "氯解磷定注射液", "盐酸纳洛酮", "异丙嗪", "非那更", "地西泮", "安定", "20%甘露醇");
 
     /**
-     *   临床用血
+     * 临床用血
      */
     public static List<String> BLOODRECORDLIST = Arrays.asList(
             "血制品", "血液制品", "输血/成份血知情同意书", "成份血知情同意书", "输血知情同意书", "输血治疗知情同意书", "输血治疗同意书", "临床输血治疗知情同意书");
 
     /**
-     *   植入物
+     * 植入物
      */
     public static List<String> IMPLANTSLIST = Arrays.asList(
             "植入物", "支架植入术");
 
     /**
-     *   种类
+     * 种类
      */
     public static List<String> MODELIST = Arrays.asList(
             "国产", "进口");
 
     /**
-     *   数量单位
+     * 数量单位
      */
     public static List<String> NUMBERLIST = Arrays.asList(
             "枚", "支", "块", "个");
 
     /**
-     *   入院病情代码表
+     * 入院病情代码表
      */
     public static List<String> ADMISSIONCONDITION = Arrays.asList(
             "有", "临床未确定", "情况不明", "无");
 
     /**
-     *   实施临床路径字典
+     * 实施临床路径字典
      */
     public static List<String> CLINICALPATHWAY = Arrays.asList(
             "中医", "西医", "否");
 
     /**
-     *   是否
+     * 是否
      */
     public static List<String> MARK = Arrays.asList(
             "是", "否");