|
@@ -83,11 +83,7 @@ public class BEH02980 extends QCCatalogue {
|
|
if (pastLabel != null && StringUtils.isNotEmpty(pastLabel.getText())) {
|
|
if (pastLabel != null && StringUtils.isNotEmpty(pastLabel.getText())) {
|
|
extract_diags(pastLabel.getDiags(), pos_diags, neg_diags);
|
|
extract_diags(pastLabel.getDiags(), pos_diags, neg_diags);
|
|
//过敏史
|
|
//过敏史
|
|
- extract_Allergy(pastLabel.getAllergies(), pos_diags, neg_diags);
|
|
|
|
- //食物过敏史
|
|
|
|
- extract_AllergyFoods(pastLabel.getAllergyFoods(), pos_diags, neg_diags);
|
|
|
|
- //药物过敏史
|
|
|
|
- extract_Medicine(pastLabel.getAllergyMedicines(), pos_diags, neg_diags);
|
|
|
|
|
|
+ extract_Allergy(pastLabel.getAllergies(), pos_diags, neg_diags, pastLabel.getText());
|
|
} else {
|
|
} else {
|
|
//例如邵逸夫 台州这种结构化数据,判断高血压 和 糖尿病是否有冲突
|
|
//例如邵逸夫 台州这种结构化数据,判断高血压 和 糖尿病是否有冲突
|
|
List<Diag> pastDiags = new ArrayList<>();
|
|
List<Diag> pastDiags = new ArrayList<>();
|
|
@@ -183,7 +179,7 @@ public class BEH02980 extends QCCatalogue {
|
|
}
|
|
}
|
|
|
|
|
|
//过敏史
|
|
//过敏史
|
|
- private List<String> extract_Allergy(List<Allergy> allergys, List<String> pos_diags, List<String> neg_diags) {
|
|
|
|
|
|
+ private List<String> extract_Allergy(List<Allergy> allergys, List<String> pos_diags, List<String> neg_diags, String text) {
|
|
List<String> dgs = new ArrayList<>();
|
|
List<String> dgs = new ArrayList<>();
|
|
for (Allergy dg : allergys) {
|
|
for (Allergy dg : allergys) {
|
|
String dgname = dg.getName();
|
|
String dgname = dg.getName();
|
|
@@ -192,45 +188,9 @@ public class BEH02980 extends QCCatalogue {
|
|
pos_diags.add(dgname);
|
|
pos_diags.add(dgname);
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- if (!neg_diags.contains(dgname)) {
|
|
|
|
- neg_diags.add(dgname);
|
|
|
|
- dgs.add(dgname);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return dgs;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //食物过敏史
|
|
|
|
- private List<String> extract_AllergyFoods(List<AllergyFood> allergyFoods, List<String> pos_diags, List<String> neg_diags) {
|
|
|
|
- List<String> dgs = new ArrayList<>();
|
|
|
|
- for (AllergyFood af : allergyFoods) {
|
|
|
|
- String dgname = af.getName();
|
|
|
|
- if (af.getNegative() == null) {
|
|
|
|
- if (!pos_diags.contains(dgname)) {
|
|
|
|
- pos_diags.add(dgname);
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- if (!neg_diags.contains(dgname)) {
|
|
|
|
- neg_diags.add(dgname);
|
|
|
|
- dgs.add(dgname);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return dgs;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //药物过敏史
|
|
|
|
- private List<String> extract_Medicine(List<AllergyMedicine> allergyMedicines, List<String> pos_diags, List<String> neg_diags) {
|
|
|
|
- List<String> dgs = new ArrayList<>();
|
|
|
|
- for (AllergyMedicine am : allergyMedicines) {
|
|
|
|
- String dgname = am.getName();
|
|
|
|
- if (am.getNegative() == null) {
|
|
|
|
- if (!pos_diags.contains(dgname)) {
|
|
|
|
- pos_diags.add(dgname);
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- if (!neg_diags.contains(dgname)) {
|
|
|
|
|
|
+ int index = text.indexOf(dgname);
|
|
|
|
+ text = text.substring(Math.max(0, index - 10), index);
|
|
|
|
+ if (!neg_diags.contains(dgname) && !text.contains("其他")) {
|
|
neg_diags.add(dgname);
|
|
neg_diags.add(dgname);
|
|
dgs.add(dgname);
|
|
dgs.add(dgname);
|
|
}
|
|
}
|