|
@@ -1,10 +1,9 @@
|
|
|
package com.lantone.qc.kernel.catalogue.behospitalized;
|
|
|
|
|
|
import com.lantone.qc.kernel.catalogue.QCCatalogue;
|
|
|
+import com.lantone.qc.kernel.util.RegexUtil;
|
|
|
import com.lantone.qc.pub.model.InputInfo;
|
|
|
import com.lantone.qc.pub.model.OutputInfo;
|
|
|
-import com.lantone.qc.pub.model.entity.MaritalStatus;
|
|
|
-import com.lantone.qc.pub.model.label.MaritalLabel;
|
|
|
import com.lantone.qc.pub.util.StringUtil;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
@@ -18,8 +17,17 @@ public class BEH0372 extends QCCatalogue {
|
|
|
|
|
|
@Override
|
|
|
public void start(InputInfo inputInfo, OutputInfo outputInfo) {
|
|
|
- if (inputInfo.getBeHospitalizedDoc() == null) {
|
|
|
- status.set("0");
|
|
|
+ /**
|
|
|
+ * 1.获取入院记录中婚姻状况,为空则通过
|
|
|
+ * 2.获取入院记录中婚育史,为空或者包含【详见】或者婚育史等于【其他】则通过
|
|
|
+ * 3.婚姻为【未婚】,婚育史包含【未婚/未结婚】任一则通过 ,不存在但包含【已故/丧偶/去世/亡故/已逝/死亡/离婚/离异/适龄结婚/适龄婚育/结婚/再婚/育有/已婚】中任一则报出。
|
|
|
+ * 4.婚姻为【丧偶】并且婚育史包含【已故/丧偶/去世/亡故/已逝/死亡】任一则通过,不存在但包含【离婚/离异/未婚/未结婚】中任一则报出
|
|
|
+ * 5.婚姻为【离婚/离异】并且婚育史包含【离婚/离异】任一则通过,不存在但包含【未婚/未结婚/已故/丧偶/去世/亡故/已逝/死亡】中任一则报出。
|
|
|
+ * 6.婚姻为【已婚/再婚】并且婚育史包含【适龄结婚/适龄婚育/结婚/再婚/育有/已婚】任一则通过,不存在但包含【未婚/未结婚/离婚/离异/已故/丧偶/去世/亡故/已逝/死亡】中任一则报出。
|
|
|
+ */
|
|
|
+
|
|
|
+ status.set("0");
|
|
|
+ if (inputInfo.getBeHospitalizedDoc() == null || inputInfo.getBeHospitalizedDoc().getStructureMap() == null) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -28,59 +36,77 @@ public class BEH0372 extends QCCatalogue {
|
|
|
if (StringUtil.isBlank(bhbasicInfoStatus)) {
|
|
|
bhbasicInfoStatus = inputInfo.getBeHospitalizedDoc().getStructureMap().get("婚姻");
|
|
|
}
|
|
|
- if (StringUtil.isBlank(basicInfoStatus) || basicInfoStatus.contains("详见")
|
|
|
- || basicInfoStatus.contains("见旧病历") || basicInfoStatus.contains("见既往病历") || StringUtil.isBlank(bhbasicInfoStatus)) {
|
|
|
- status.set("0");
|
|
|
- return;
|
|
|
- }
|
|
|
- bhbasicInfoStatus = bhbasicInfoStatus.replace(" ", "");
|
|
|
- if (bhbasicInfoStatus.equals("未婚") && (basicInfoStatus.contains("未婚") || basicInfoStatus.contains("未结婚"))) {
|
|
|
- status.set("0");
|
|
|
- return;
|
|
|
+
|
|
|
+ if (StringUtil.isBlank(bhbasicInfoStatus)) {
|
|
|
+ if (inputInfo.getBeHospitalizedDoc().getMaritalLabel() != null
|
|
|
+ && inputInfo.getBeHospitalizedDoc().getMaritalLabel().getMaritalStatus() != null
|
|
|
+ && StringUtil.isNotBlank(inputInfo.getBeHospitalizedDoc().getMaritalLabel().getMaritalStatus().getName())) {
|
|
|
+ bhbasicInfoStatus = inputInfo.getBeHospitalizedDoc().getMaritalLabel().getMaritalStatus().getName();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- if (StringUtil.isNotBlank(bhbasicInfoStatus) && basicInfoStatus.equals("其他")) {
|
|
|
- status.set("0");
|
|
|
+ if (StringUtil.isBlank(bhbasicInfoStatus)) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (bhbasicInfoStatus.equals("丧偶") &&
|
|
|
- (basicInfoStatus.contains("已故") || basicInfoStatus.contains("丧偶") || basicInfoStatus.contains("去世") ||
|
|
|
- basicInfoStatus.contains("亡故") || basicInfoStatus.contains("已逝") || basicInfoStatus.contains("死"))) {
|
|
|
- status.set("0");
|
|
|
- return;
|
|
|
+ if (StringUtil.isBlank(basicInfoStatus)) {
|
|
|
+ if (inputInfo.getBeHospitalizedDoc().getMaritalLabel() != null) {
|
|
|
+ basicInfoStatus = inputInfo.getBeHospitalizedDoc().getMaritalLabel().getText();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- if ((bhbasicInfoStatus.equals("离婚") || bhbasicInfoStatus.equals("离异")) &&
|
|
|
- (basicInfoStatus.contains("离异") || basicInfoStatus.contains("离婚"))) {
|
|
|
- status.set("0");
|
|
|
+ if (StringUtil.isBlank(basicInfoStatus) || basicInfoStatus.contains("详见")
|
|
|
+ || basicInfoStatus.contains("见旧病历") || basicInfoStatus.contains("见既往病历")
|
|
|
+ || basicInfoStatus.equals("其他")) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (bhbasicInfoStatus.equals("已婚") && (basicInfoStatus.contains("结婚") || basicInfoStatus.contains("再婚")
|
|
|
- || basicInfoStatus.contains("育有") || basicInfoStatus.contains("已婚") || basicInfoStatus.contains("婚育"))) {
|
|
|
- status.set("0");
|
|
|
- return;
|
|
|
+ bhbasicInfoStatus = bhbasicInfoStatus.replace(" ", "");
|
|
|
+
|
|
|
+ //3.婚姻为【未婚】,婚育史包含【未婚/未结婚】任一则通过 ,不存在但包含【已故/丧偶/去世/亡故/已逝/死亡/离婚/离异/适龄结婚/适龄婚育/结婚/再婚/育有/已婚】中任一则报出。
|
|
|
+ if (bhbasicInfoStatus.equals("未婚")) {
|
|
|
+ if (RegexUtil.getRegexRes(basicInfoStatus, "未婚|未结婚")) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (RegexUtil.getRegexRes(basicInfoStatus, "已故|丧偶|去世|亡故|已逝|死亡|离婚|离异|适龄结婚|适龄婚育|结婚|再婚|育有|已婚")) {
|
|
|
+ status.set("-1");
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- MaritalStatus mts = inputInfo.getBeHospitalizedDoc().getMaritalLabel().getMaritalStatus();
|
|
|
- if (mts != null && StringUtil.isNotBlank(mts.getName())) {
|
|
|
- String maritalStatus = mts.getName();
|
|
|
- if (basicInfoStatus.equals(maritalStatus)) {
|
|
|
- status.set("0");
|
|
|
+ //4.婚姻为【丧偶】并且婚育史包含【已故/丧偶/去世/亡故/已逝/死亡】任一则通过,不存在但包含【离婚/离异/未婚/未结婚】中任一则报出
|
|
|
+ if (bhbasicInfoStatus.equals("丧偶")) {
|
|
|
+ if (RegexUtil.getRegexRes(basicInfoStatus, "已故|丧偶|去世|亡故|已逝|死亡")) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (RegexUtil.getRegexRes(basicInfoStatus, "离婚|离异|未婚|未结婚")) {
|
|
|
+ status.set("-1");
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //无婚育史
|
|
|
- MaritalLabel maritalLabel = inputInfo.getBeHospitalizedDoc().getMaritalLabel();
|
|
|
- if (maritalLabel == null || maritalLabel.getText() == null) {
|
|
|
- status.set("0");
|
|
|
+ //5.婚姻为【离婚/离异】并且婚育史包含【离婚/离异】任一则通过,不存在但包含【未婚/未结婚/已故/丧偶/去世/亡故/已逝/死亡】中任一则报出。
|
|
|
+ if (bhbasicInfoStatus.equals("离婚") || bhbasicInfoStatus.equals("离异")) {
|
|
|
+ if (RegexUtil.getRegexRes(basicInfoStatus, "离婚|离异")) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (RegexUtil.getRegexRes(basicInfoStatus, "未婚|未结婚|已故|丧偶|去世|亡故|已逝|死亡")) {
|
|
|
+ status.set("-1");
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- if (bhbasicInfoStatus.equals("未婚") && basicInfoStatus.contains("结婚")) {
|
|
|
- return;
|
|
|
+ //6.婚姻为【已婚/再婚】并且婚育史包含【适龄结婚/适龄婚育/结婚/再婚/育有/已婚】任一则通过,不存在但包含【未婚/未结婚/离婚/离异/已故/丧偶/去世/亡故/已逝/死亡】中任一则报出。
|
|
|
+ if (bhbasicInfoStatus.equals("已婚") || bhbasicInfoStatus.contains("再婚")) {
|
|
|
+ if (RegexUtil.getRegexRes(basicInfoStatus, "适龄结婚|适龄婚育|结婚|再婚|育有|已婚")) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (RegexUtil.getRegexRes(basicInfoStatus, "未婚|未结婚|离婚|离异|已故|丧偶|去世|亡故|已逝|死亡")) {
|
|
|
+ status.set("-1");
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
-}
|
|
|
+}
|