|
@@ -10,10 +10,11 @@ import org.diagbot.nlp.util.NlpUtil;
|
|
|
import java.util.List;
|
|
|
|
|
|
public class PretreatmentVital extends Pretreatment {
|
|
|
- protected NegativeEnum[] nees_vital_result = new NegativeEnum[]{NegativeEnum.VITAL_RESULT};
|
|
|
- protected NegativeEnum[] nees_vital_index = new NegativeEnum[]{NegativeEnum.VITAL_INDEX};
|
|
|
+ protected NegativeEnum[] nees_vital_result = new NegativeEnum[] { NegativeEnum.VITAL_RESULT };
|
|
|
+ protected NegativeEnum[] nees_vital_index = new NegativeEnum[] { NegativeEnum.VITAL_INDEX };
|
|
|
+ protected NegativeEnum[] nees_digit = new NegativeEnum[] { NegativeEnum.DIGITS };
|
|
|
|
|
|
- public List<PreResult> analyze(String content) throws java.io.IOException{
|
|
|
+ public List<PreResult> analyze(String content) throws java.io.IOException {
|
|
|
List<PreResult> preResults = super.analyzeDefault(content);
|
|
|
for (PreResult result : preResults) {
|
|
|
result.setUniqueName("体征--" + result.getUniqueName());
|
|
@@ -27,12 +28,29 @@ public class PretreatmentVital extends Pretreatment {
|
|
|
result.setDetailName("体征--");
|
|
|
result.setValue(NlpUtil.concept(l, NegativeEnum.VITAL_RESULT));
|
|
|
preResults.add(result);
|
|
|
- }else if (NlpUtil.isFeature(l.getProperty(), nees_vital_index)) {
|
|
|
+ } else if (NlpUtil.isFeature(l.getProperty(), nees_vital_index)) {
|
|
|
PreResult result = new PreResult();
|
|
|
result.setUniqueName("体征--");
|
|
|
result.setDetailName("体征--");
|
|
|
result.setValue(NlpUtil.concept(l, NegativeEnum.VITAL_INDEX));
|
|
|
preResults.add(result);
|
|
|
+ } else if (NlpUtil.isFeature(l.getProperty(), nees_digit) && l.getText().contains("/")) {
|
|
|
+ String[] digits = l.getText().split("/");
|
|
|
+ if (digits.length != 2) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ PreResult result = new PreResult();
|
|
|
+ result.setUniqueName("体征--收缩压");
|
|
|
+ result.setDetailName("收缩压");
|
|
|
+ result.setValue(digits[0]);
|
|
|
+ result.setUnits("mmHg");
|
|
|
+ preResults.add(result);
|
|
|
+ result = new PreResult();
|
|
|
+ result.setUniqueName("体征--舒张压");
|
|
|
+ result.setDetailName("舒张压");
|
|
|
+ result.setValue(digits[1]);
|
|
|
+ result.setUnits("mmHg");
|
|
|
+ preResults.add(result);
|
|
|
}
|
|
|
}
|
|
|
return preResults;
|
|
@@ -44,12 +62,14 @@ public class PretreatmentVital extends Pretreatment {
|
|
|
|
|
|
|
|
|
public String findBodyValue(LexemePath<Lexeme> lexemes, Lexeme lexeme, int index) {
|
|
|
- if (cursor > 0) cursor--;
|
|
|
+ if (cursor > 0) {
|
|
|
+ cursor--;
|
|
|
+ }
|
|
|
int search_len = 0;
|
|
|
Lexeme leftLexeme = null;
|
|
|
while (search_len < max_back_search && cursor > -1) {
|
|
|
leftLexeme = lexemes.get(cursor);
|
|
|
- if (NlpUtil.isFeature(leftLexeme.getProperty(), new NegativeEnum[]{NegativeEnum.VITAL_INDEX})) {
|
|
|
+ if (NlpUtil.isFeature(leftLexeme.getProperty(), new NegativeEnum[] { NegativeEnum.VITAL_INDEX })) {
|
|
|
return NlpUtil.concept(leftLexeme, NegativeEnum.VITAL_INDEX);
|
|
|
}
|
|
|
search_len++;
|