|
@@ -1,104 +0,0 @@
|
|
|
-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;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|