Преглед на файлове

父母健康状况未描述

chengyao преди 3 години
родител
ревизия
91125e5ca8
променени са 1 файла, в които са добавени 99 реда и са изтрити 0 реда
  1. 99 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changshaxy/behospitalized/BEH0397.java

+ 99 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changshaxy/behospitalized/BEH0397.java

@@ -0,0 +1,99 @@
+package com.lantone.qc.kernel.catalogue.hospital.changshaxy.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.doc.BeHospitalizedDoc;
+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.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+/**
+ * @Description: 父母健康状况未描述
+ * @author: rengb
+ * @time: 2020/3/10 14:02
+ */
+@Component
+public class BEH0397 extends QCCatalogue {
+
+    @Override
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getBeHospitalizedDoc() == null) {
+            status.set("0");
+            return;
+        }
+        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
+        Map<String, String> structureMap = beHospitalizedDoc.getStructureMap();
+        if (StringUtils.isNotEmpty(structureMap.get("家庭成员健康情况"))) {
+            status.set("0");
+            return;
+        }
+        FamilyLabel familyLabel = beHospitalizedDoc.getFamilyLabel();
+        MaritalLabel maritalLabel = beHospitalizedDoc.getMaritalLabel();
+
+        String familyText = "", maritalText = "";
+        List<Family> familiesFl = null;
+        List<Family> familiesMl = null;
+        if (familyLabel != null) {
+            familyText = familyLabel.getText();
+            familiesFl = familyLabel.getFamilies();
+        }
+        if (maritalLabel != null && StringUtil.isNotBlank(maritalLabel.getText())) {
+            maritalText = maritalLabel.getText();
+            familiesMl = maritalLabel.getFamily();
+        }
+        if (StringUtil.isNotBlank(familyText)) {
+            familyText = StringUtil.removeBlank(familyText);
+        } else {
+            status.set("0");
+            return;
+        }
+        if ((StringUtil.isNotBlank(familyText)
+                && ((familyText.contains("父") || familyText.contains("双亲") || familyText.contains("母"))
+                && (familyText.contains("已故") || familyText.contains("体健") || familyText.contains("健在") || familyText.contains("去世") || familyText.contains("健康"))
+                || familyText.contains("详见") || familyText.contains("见旧病历") || familyText.contains("见既往病历"))
+                || (StringUtil.isNotBlank(maritalText) && ((maritalText.contains("父") || maritalText.contains("双亲") || maritalText.contains("母"))
+                && (maritalText.contains("已故") || maritalText.contains("体健")|| maritalText.contains("健在") || maritalText.contains("去世") || familyText.contains("健康"))
+                || maritalText.contains("详见") || maritalText.contains("见旧病历") || maritalText.contains("见既往病历"))))) {
+            status.set("0");
+            return;
+        }
+        List<Family> familyList = Lists.newArrayList();
+        if (familiesFl != null && familiesFl.size() > 0) {
+            familyList.addAll(familiesFl);
+        }
+        if (familiesMl != null && familiesMl.size() > 0) {
+            familyList.addAll(familiesMl);
+        }
+
+        Pattern p = Pattern.compile("[父母爸妈]");
+        List<Family> filterFamilies = familyList
+                .stream()
+                .filter(
+                        i -> i != null
+                                && StringUtil.isNotBlank(i.getName())
+                                && p.matcher(i.getName()).find()).collect(Collectors.toList());
+        for (Family family : filterFamilies) {
+            if (family.getDead() != null) {
+                status.set("0");
+                return;
+            } else if (family.getHealthCondition() != null && StringUtil.isNotBlank(family.getHealthCondition().getName())) {
+                status.set("0");
+                return;
+            } else if (family.getDiags() != null && family.getDiags().size() > 0) {
+                status.set("0");
+                return;
+            }
+        }
+    }
+
+}