|
@@ -10,6 +10,7 @@ import com.lantone.qc.pub.util.ListUtil;
|
|
import com.lantone.qc.pub.util.StringUtil;
|
|
import com.lantone.qc.pub.util.StringUtil;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -24,22 +25,46 @@ public class BEH0032 extends QCCatalogue {
|
|
@Override
|
|
@Override
|
|
public void start(InputInfo inputInfo, OutputInfo outputInfo) {
|
|
public void start(InputInfo inputInfo, OutputInfo outputInfo) {
|
|
status.set("0");
|
|
status.set("0");
|
|
- if(inputInfo.getBeHospitalizedDoc() == null){
|
|
|
|
|
|
+ if (inputInfo.getBeHospitalizedDoc() == null) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
|
|
PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
|
|
|
|
+ if (pastLabel == null) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
List<Diag> diags = pastLabel.getDiags();
|
|
List<Diag> diags = pastLabel.getDiags();
|
|
if (ListUtil.isEmpty(diags)) {
|
|
if (ListUtil.isEmpty(diags)) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
List<String> wtDiagNames = CatalogueUtil.noInQuotes(
|
|
List<String> wtDiagNames = CatalogueUtil.noInQuotes(
|
|
diags.stream().filter(diag -> diag.getNegative() == null).map(i -> i.getHospitalDiagName()).filter(i -> StringUtil.isNotEmpty(i)).distinct().collect(Collectors.toList()),
|
|
diags.stream().filter(diag -> diag.getNegative() == null).map(i -> i.getHospitalDiagName()).filter(i -> StringUtil.isNotEmpty(i)).distinct().collect(Collectors.toList()),
|
|
- pastLabel.getText().replace("“","\"").replace("”","\"")
|
|
|
|
|
|
+ pastLabel.getText().replace("“", "\"").replace("”", "\"")
|
|
);
|
|
);
|
|
|
|
+ String pastText = pastLabel.getText();
|
|
|
|
+ List<String> wtDiagList = new ArrayList<>();
|
|
if (ListUtil.isNotEmpty(wtDiagNames)) {
|
|
if (ListUtil.isNotEmpty(wtDiagNames)) {
|
|
- status.set("-1");
|
|
|
|
for (String wtDiagName : wtDiagNames) {
|
|
for (String wtDiagName : wtDiagNames) {
|
|
- info.set(info.get() + wtDiagName + " ");
|
|
|
|
|
|
+ int index = pastText.indexOf(wtDiagName);
|
|
|
|
+ if (index - 1 > 0) {
|
|
|
|
+ String markText = pastText.substring(index - 1, index);
|
|
|
|
+ if (markText.contains("\"") || markText.contains("“")) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (index + wtDiagName.length() + 1 < pastText.length() && index > 0) {
|
|
|
|
+ String markText = pastText.substring(index + wtDiagName.length(), index + wtDiagName.length() + 1);
|
|
|
|
+ if (markText.contains("\"") || markText.contains("”")) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ wtDiagList.add(wtDiagName);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (ListUtil.isNotEmpty(wtDiagList)) {
|
|
|
|
+ status.set("-1");
|
|
|
|
+ for (String wtDiag : wtDiagList) {
|
|
|
|
+ info.set(info.get() + wtDiag + " ");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|