|
@@ -8,12 +8,11 @@ import org.diagbot.nlp.participle.word.LexemePath;
|
|
|
import org.diagbot.nlp.util.NegativeEnum;
|
|
|
import org.diagbot.nlp.util.NlpUtil;
|
|
|
|
|
|
-import java.lang.reflect.Array;
|
|
|
-import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
public class PretreatmentLis extends Pretreatment {
|
|
|
private String join_symbols = ";:;:";
|
|
|
+ protected NegativeEnum[] lisResult = new NegativeEnum[]{NegativeEnum.LIS_RESULT};
|
|
|
|
|
|
public List<PreResult> analyze(String content) throws java.io.IOException {
|
|
|
List<PreResult> preResults = super.analyzeDefault(content);
|
|
@@ -21,8 +20,11 @@ public class PretreatmentLis extends Pretreatment {
|
|
|
for (int i = 0; i < lexemes.size(); i++) {
|
|
|
Lexeme l = lexemes.get(i);
|
|
|
if (NlpUtil.isFeature(l.getProperty(), lisResult)) {
|
|
|
- PreResult result = createPreResultNoValue(lexemes, i);
|
|
|
+ cursor = i;
|
|
|
+ PreResult result = new PreResult();
|
|
|
+ result = findPreResultPub(lexemes, result);
|
|
|
if (result != null) {
|
|
|
+ result.setValue(l.getText());
|
|
|
preResults.add(result);
|
|
|
}
|
|
|
}
|
|
@@ -36,20 +38,10 @@ public class PretreatmentLis extends Pretreatment {
|
|
|
if (value == -1) return null;
|
|
|
result.setValue(String.valueOf(value));
|
|
|
result.setUnits(lexeme.getText());
|
|
|
- return getPreResultPub(lexemes, result);
|
|
|
+ return findPreResultPub(lexemes, result);
|
|
|
}
|
|
|
|
|
|
- public PreResult createPreResultNoValue(LexemePath<Lexeme> lexemes, int index) {
|
|
|
- PreResult result = new PreResult();
|
|
|
- String lisResult = findLisResult(lexemes, index);
|
|
|
- if (StringUtils.isEmpty(lisResult)) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- result.setValue(lisResult);
|
|
|
- return getPreResultPub(lexemes, result);
|
|
|
- }
|
|
|
-
|
|
|
- public PreResult getPreResultPub(LexemePath<Lexeme> lexemes, PreResult result) {
|
|
|
+ public PreResult findPreResultPub(LexemePath<Lexeme> lexemes, PreResult result) {
|
|
|
//继续往前找化验明细项
|
|
|
if (cursor > 0) cursor--;
|
|
|
Lexeme leftLexeme = lexemes.get(cursor);
|
|
@@ -82,29 +74,6 @@ public class PretreatmentLis extends Pretreatment {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- protected String findLisResult(LexemePath<Lexeme> lexemes, int index) {
|
|
|
- if (index < 1) return null;
|
|
|
- cursor = index;
|
|
|
- Lexeme leftLexeme = lexemes.get(cursor);
|
|
|
- if ("×".equals(leftLexeme.getText())) {
|
|
|
- if (cursor <= 0) return null;
|
|
|
- cursor--;
|
|
|
- leftLexeme = lexemes.get(cursor);
|
|
|
- }
|
|
|
- if (isLisResult(leftLexeme)) {
|
|
|
- return leftLexeme.getText();
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- public static boolean isLisResult(Lexeme l) {
|
|
|
- if (l == null) return false;
|
|
|
- if (NlpUtil.isFeature(l.getProperty(), new NegativeEnum[]{NegativeEnum.LIS_RESULT})) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
public String findBodyValue(LexemePath<Lexeme> lexemes, Lexeme lexeme, int index) {
|
|
|
return null;
|
|
|
}
|