|
@@ -21,12 +21,7 @@ import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.HashSet;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -135,6 +130,16 @@ public class BEH0011 extends QCCatalogue {
|
|
|
addInitDiagHospitalName(initDiags, initialDiagDiags);
|
|
|
|
|
|
String infoStr = "";
|
|
|
+ /*先两两对比,能对上就删除,对不上的再走相似度模型*/
|
|
|
+ Iterator<String> iterator = presentPastDiags.iterator();
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ String presentPastDiag = iterator.next();
|
|
|
+ for (String initDiag : initDiags) {
|
|
|
+ if (presentPastDiag.equals(initDiag) || presentPastDiag.contains(initDiag) || initDiag.contains(presentPastDiag)) {
|
|
|
+ iterator.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
int matchSum = 0;
|
|
|
ModelAI modelAI = new ModelAI();
|
|
|
for (String presentPastDiag : presentPastDiags) {
|
|
@@ -160,7 +165,7 @@ public class BEH0011 extends QCCatalogue {
|
|
|
if (matchSum == presentPastDiags.size()) {
|
|
|
status.set("0");
|
|
|
}
|
|
|
- lackDiabetesFeritin(presentLabel.getText(), inputInfo.getBeHospitalizedDoc().getStructureMap().get("长期用药"), inputInfo.getBeHospitalizedDoc().getStructureMap().get("外院用药"), inputInfo.getMedicalRecordInfoDoc().getStructureMap().get("behospitalCode"));
|
|
|
+ lackDiabetesFeritin(initDiags, presentLabel.getText(), inputInfo.getBeHospitalizedDoc().getStructureMap().get("长期用药"), inputInfo.getBeHospitalizedDoc().getStructureMap().get("外院用药"), inputInfo.getMedicalRecordInfoDoc().getStructureMap().get("behospitalCode"));
|
|
|
/*
|
|
|
if (initDiags.containsAll(presentPastDiags)) {
|
|
|
status.set("0");
|
|
@@ -242,7 +247,7 @@ public class BEH0011 extends QCCatalogue {
|
|
|
*/
|
|
|
|
|
|
//糖尿病、高血压药品过滤
|
|
|
- private void lackDiabetesFeritin(String... texts) {
|
|
|
+ private void lackDiabetesFeritin(List<String> initDiags, String... texts) {
|
|
|
String checkText = "";
|
|
|
if (StringUtil.isNotBlank(texts[0])) {
|
|
|
checkText += texts[0] + "。";
|
|
@@ -256,9 +261,10 @@ public class BEH0011 extends QCCatalogue {
|
|
|
if (StringUtil.isBlank(checkText)) {
|
|
|
return;
|
|
|
}
|
|
|
+ long diabetes = initDiags.stream().filter(x -> x.contains("糖尿病")).count();
|
|
|
for (String diabetesDrug : diabetesDrugs) {
|
|
|
- if (checkText.indexOf(diabetesDrug) > -1) {
|
|
|
- if (StringUtil.isBlank(info.get()) || info.get().indexOf("糖尿病") == -1) {
|
|
|
+ if (checkText.contains(diabetesDrug) && diabetes == 0) {
|
|
|
+ if (StringUtil.isBlank(info.get()) || !info.get().contains("糖尿病")) {
|
|
|
info.set(CatalogueUtil.concatInfo(info.get(), "糖尿病"));
|
|
|
status.set("-1");
|
|
|
log.error("初步诊断不完整:" + texts[3]);
|
|
@@ -266,9 +272,10 @@ public class BEH0011 extends QCCatalogue {
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
+ long hypertension = initDiags.stream().filter(x -> x.contains("高血压")).count();
|
|
|
for (String feritinDrug : feritinDrugs) {
|
|
|
- if (checkText.indexOf(feritinDrug) > -1) {
|
|
|
- if (StringUtil.isBlank(info.get()) || info.get().indexOf("高血压") == -1) {
|
|
|
+ if (checkText.contains(feritinDrug) && hypertension == 0) {
|
|
|
+ if (StringUtil.isBlank(info.get()) || !info.get().contains("高血压")) {
|
|
|
info.set(CatalogueUtil.concatInfo(info.get(), "高血压"));
|
|
|
status.set("-1");
|
|
|
log.error("初步诊断不完整:" + texts[3]);
|
|
@@ -391,17 +398,7 @@ public class BEH0011 extends QCCatalogue {
|
|
|
"哌唑嗪",
|
|
|
"乌拉地尔",
|
|
|
"乌拉地尔氯化钠",
|
|
|
- "普萘洛尔",
|
|
|
- "索他洛尔",
|
|
|
- "阿替洛尔",
|
|
|
- "艾司洛尔",
|
|
|
- "贝凡洛尔",
|
|
|
- "比索洛尔",
|
|
|
- "美托洛尔",
|
|
|
- "阿罗洛尔",
|
|
|
"卡维地洛",
|
|
|
- "拉贝洛尔",
|
|
|
- "比索洛尔氢氯噻嗪",
|
|
|
"阿夫唑嗪",
|
|
|
"赛洛多辛",
|
|
|
"坦洛新",
|