|
@@ -1,14 +1,18 @@
|
|
|
package com.lantone.qc.kernel.catalogue.yiwu.leavehospital;
|
|
|
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import com.lantone.qc.kernel.catalogue.QCCatalogue;
|
|
|
import com.lantone.qc.kernel.util.CatalogueUtil;
|
|
|
+import com.lantone.qc.kernel.util.SimilarityUtil;
|
|
|
import com.lantone.qc.pub.model.InputInfo;
|
|
|
import com.lantone.qc.pub.model.OutputInfo;
|
|
|
import com.lantone.qc.pub.model.doc.DeathCaseDiscussDoc;
|
|
|
import com.lantone.qc.pub.model.doc.DeathRecordDoc;
|
|
|
import com.lantone.qc.pub.model.doc.DoctorAdviceDoc;
|
|
|
import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
|
|
|
+import com.lantone.qc.pub.model.entity.Drug;
|
|
|
import com.lantone.qc.pub.util.StringUtil;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
@@ -25,6 +29,8 @@ import java.util.Set;
|
|
|
*/
|
|
|
@Component
|
|
|
public class LEA02987 extends QCCatalogue {
|
|
|
+ @Autowired
|
|
|
+ SimilarityUtil similarityUtil;
|
|
|
|
|
|
@Override
|
|
|
public void start(InputInfo inputInfo, OutputInfo outputInfo) {
|
|
@@ -39,6 +45,20 @@ public class LEA02987 extends QCCatalogue {
|
|
|
if (deathRecordDoc != null || deathCaseDiscussDoc != null) {
|
|
|
return;
|
|
|
}
|
|
|
+ List<Drug> drugList = null;
|
|
|
+ if (leaveHospitalDoc.getLeaveHospitalLabel() != null) {
|
|
|
+ drugList = leaveHospitalDoc.getLeaveHospitalLabel().getDrugs();
|
|
|
+ }
|
|
|
+ List<String> leaveDrugStandard = Lists.newArrayList();
|
|
|
+ if (drugList != null && drugList.size() > 0) {
|
|
|
+ for (Drug drug : drugList) {
|
|
|
+ String name = drug.getName();
|
|
|
+ String drugStandardWord = similarityUtil.getDrugStandardWord(name);
|
|
|
+ if (StringUtil.isNotBlank(drugStandardWord)) {
|
|
|
+ leaveDrugStandard.add(drugStandardWord);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
Map<String, String> structureMap = leaveHospitalDoc.getStructureMap();
|
|
|
String dischargeOrder = structureMap.get("出院医嘱");
|
|
|
if (StringUtil.isBlank(dischargeOrder)) {
|
|
@@ -58,26 +78,31 @@ public class LEA02987 extends QCCatalogue {
|
|
|
|
|
|
String infoStr = "";
|
|
|
List<String> notContainsDrugs = new ArrayList<>();
|
|
|
- for (String drug:drugs) {
|
|
|
- if (!dischargeOrder.contains(drug)){
|
|
|
+ for (String drug : drugs) {
|
|
|
+ if (!dischargeOrder.contains(drug)) {
|
|
|
notContainsDrugs.add(drug);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//没有包含的药品再次查看商品名或化学名在出院医嘱书写
|
|
|
for (String drug : notContainsDrugs) {
|
|
|
- Set<String> splitDrugs = CatalogueUtil.getRegexWords(drug, "[((\\[][^\\[\\]()()]+[\\]))]");
|
|
|
boolean isFind = false;
|
|
|
+ String drugStandardWord = similarityUtil.getDrugStandardWord(drug);
|
|
|
+ if (StringUtil.isNotBlank(drugStandardWord) && leaveDrugStandard.contains(drugStandardWord)) {
|
|
|
+ isFind = true;
|
|
|
+ }
|
|
|
+ Set<String> splitDrugs = CatalogueUtil.getRegexWords(drug, "[((\\[][^\\[\\]()()]+[\\]))]");
|
|
|
for (String sd : splitDrugs) {
|
|
|
- if (dischargeOrder.contains(sd)){
|
|
|
+ if (dischargeOrder.contains(sd)) {
|
|
|
isFind = true;
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
if (!isFind) {
|
|
|
infoStr = CatalogueUtil.concatInfo(infoStr, drug);
|
|
|
}
|
|
|
}
|
|
|
- if (StringUtil.isNotBlank(infoStr)){
|
|
|
+ if (StringUtil.isNotBlank(infoStr)) {
|
|
|
status.set("-1");
|
|
|
info.set(infoStr);
|
|
|
}
|