|
@@ -1,93 +0,0 @@
|
|
|
-package org.diagbot.common.push.filter.pretreat;
|
|
|
-
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.diagbot.common.push.bean.PreResult;
|
|
|
-import org.diagbot.nlp.participle.ParticipleUtil;
|
|
|
-import org.diagbot.nlp.participle.word.Lexeme;
|
|
|
-import org.diagbot.nlp.participle.word.LexemePath;
|
|
|
-import org.diagbot.nlp.util.NegativeEnum;
|
|
|
-import org.diagbot.nlp.util.NlpUtil;
|
|
|
-
|
|
|
-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);
|
|
|
- LexemePath<Lexeme> lexemes = ParticipleUtil.participle(content);
|
|
|
- for (int i = 0; i < lexemes.size(); i++) {
|
|
|
- Lexeme l = lexemes.get(i);
|
|
|
- if (NlpUtil.isFeature(l.getProperty(), lisResult)) {
|
|
|
- cursor = i;
|
|
|
- PreResult result = new PreResult();
|
|
|
- result = findPreResultPub(lexemes, result);
|
|
|
- if (result != null) {
|
|
|
- result.setOtherValue(l.getText());
|
|
|
- preResults.add(result);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return preResults;
|
|
|
- }
|
|
|
-
|
|
|
- public PreResult createPreResult(LexemePath<Lexeme> lexemes, Lexeme lexeme, int index) {
|
|
|
- PreResult result = new PreResult();
|
|
|
- double value = findNumberValue(lexemes, lexeme, index);
|
|
|
- if (value == -1) return null;
|
|
|
- result.setValue(String.valueOf(value));
|
|
|
- result.setUnits(lexeme.getText());
|
|
|
- return findPreResultPub(lexemes, result);
|
|
|
- }
|
|
|
-
|
|
|
- public PreResult findPreResultPub(LexemePath<Lexeme> lexemes, PreResult result) {
|
|
|
- //继续往前找化验明细项
|
|
|
- if (cursor > 0) cursor--;
|
|
|
- Lexeme leftLexeme = lexemes.get(cursor);
|
|
|
- if (join_symbols.contains(leftLexeme.getText())) {
|
|
|
- if (cursor > 0) {
|
|
|
- cursor--;
|
|
|
- leftLexeme = lexemes.get(cursor);
|
|
|
- } else {
|
|
|
- return null;
|
|
|
- }
|
|
|
- }
|
|
|
- if (NlpUtil.isFeature(leftLexeme.getProperty(), new NegativeEnum[]{NegativeEnum.LIS_NAME})) {
|
|
|
- result.setDetailName(NlpUtil.concept(leftLexeme, NegativeEnum.LIS_NAME));
|
|
|
- } else if (NlpUtil.isFeature(leftLexeme.getProperty(), new NegativeEnum[]{NegativeEnum.PUB_NAME})) {
|
|
|
- result.setUniqueName(NlpUtil.concept(leftLexeme, NegativeEnum.PUB_NAME));
|
|
|
- } else {
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- //查找化验套餐
|
|
|
- int position = cursor - 1;
|
|
|
- while (position > -1) {
|
|
|
- leftLexeme = lexemes.get(position);
|
|
|
- if (NlpUtil.isFeature(leftLexeme.getProperty(), new NegativeEnum[]{NegativeEnum.LIS_TYPE})) {
|
|
|
- result.setName(NlpUtil.concept(leftLexeme, NegativeEnum.LIS_TYPE));
|
|
|
- break;
|
|
|
- }
|
|
|
- position--;
|
|
|
- }
|
|
|
-
|
|
|
- if (StringUtils.isEmpty(result.getUniqueName())){
|
|
|
- if (StringUtils.isNotEmpty(result.getDetailName()) && StringUtils.isNotEmpty(result.getName())){
|
|
|
- result.setUniqueName(result.getName() + "--" + result.getDetailName());
|
|
|
- } else if (StringUtils.isNotEmpty(result.getDetailName())){
|
|
|
- result.setUniqueName(result.getDetailName());
|
|
|
- } else if (StringUtils.isNotEmpty(result.getName())){
|
|
|
- result.setUniqueName(result.getName());
|
|
|
- } else {
|
|
|
- return null;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- public String findBodyValue(LexemePath<Lexeme> lexemes, Lexeme lexeme, int index) {
|
|
|
- return null;
|
|
|
- }
|
|
|
-}
|