|
@@ -32,6 +32,7 @@ import org.springframework.stereotype.Component;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
|
+import java.util.HashSet;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
@@ -176,13 +177,13 @@ public class XmlDataAnalysisFacade {
|
|
if (ListUtil.isEmpty(keysBehospitalCodeEntryList)) {
|
|
if (ListUtil.isEmpty(keysBehospitalCodeEntryList)) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- Map<Set<String>, Set<String>> keysBehospitalCodesMap = keysBehospitalCodeEntryList.stream().collect(Collectors.groupingBy(Map.Entry::getKey, Collectors.mapping(Map.Entry::getValue, Collectors.toSet())));
|
|
|
|
|
|
+ Map<Set<String>, List<String>> keysBehospitalCodesMap = keysBehospitalCodeEntryList.stream().collect(Collectors.groupingBy(Map.Entry::getKey, Collectors.mapping(Map.Entry::getValue, Collectors.toList())));
|
|
|
|
|
|
//1、找出已经分析生成过的文书模块模板类型;2、找出相应的map_keys-模块模板类型id对应信息;3、找出相应的模块模板类型id-示例病历号对应信息
|
|
//1、找出已经分析生成过的文书模块模板类型;2、找出相应的map_keys-模块模板类型id对应信息;3、找出相应的模块模板类型id-示例病历号对应信息
|
|
Map<Set<String>, Long> alreadyExistsDataMap = Maps.newHashMap();//相应的map_keys-模块模板类型id对应信息
|
|
Map<Set<String>, Long> alreadyExistsDataMap = Maps.newHashMap();//相应的map_keys-模块模板类型id对应信息
|
|
Map<Long, Set<String>> raBecsMap = Maps.newHashMap();//相应的模块模板类型id-示例病历号对应信息
|
|
Map<Long, Set<String>> raBecsMap = Maps.newHashMap();//相应的模块模板类型id-示例病历号对应信息
|
|
QueryWrapper<RecordAnalyze> recordAnalyzeQe = new QueryWrapper<>();
|
|
QueryWrapper<RecordAnalyze> recordAnalyzeQe = new QueryWrapper<>();
|
|
- recordAnalyzeQe.eq("is_deleted", "N");
|
|
|
|
|
|
+ /*recordAnalyzeQe.eq("is_deleted", "N");//不能加这个条件,文书模块模板类型名称生成时靠历史个数累加map_type,加上后,map_type可能会重复之前出现过的*/
|
|
recordAnalyzeQe.eq("hospital_id", hospitalId);
|
|
recordAnalyzeQe.eq("hospital_id", hospitalId);
|
|
recordAnalyzeQe.eq("mode_id", modelId);
|
|
recordAnalyzeQe.eq("mode_id", modelId);
|
|
recordAnalyzeQe.eq(StringUtil.isNotBlank(recTitle), "rec_type", recTitle);
|
|
recordAnalyzeQe.eq(StringUtil.isNotBlank(recTitle), "rec_type", recTitle);
|
|
@@ -222,7 +223,7 @@ public class XmlDataAnalysisFacade {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
alreadyExistsRecordAnalyzeId = alreadyExistsDataMap.get(keys);
|
|
alreadyExistsRecordAnalyzeId = alreadyExistsDataMap.get(keys);
|
|
- behospitalCodeDeptInfoSet = keysBehospitalCodesMap.get(keys).stream().map(bec -> behospitalCodeDeptInfoMap.get(bec)).collect(Collectors.toSet());
|
|
|
|
|
|
+ behospitalCodeDeptInfoSet = keysBehospitalCodesMap.get(keys).stream().distinct().map(bec -> behospitalCodeDeptInfoMap.get(bec)).collect(Collectors.toSet());
|
|
RecordAnalyze recordAnalyze = new RecordAnalyze();
|
|
RecordAnalyze recordAnalyze = new RecordAnalyze();
|
|
if (alreadyExistsRecordAnalyzeId == null) {
|
|
if (alreadyExistsRecordAnalyzeId == null) {
|
|
recordAnalyze.setName(modeName + "-" + recTitle + "-" + sexAdd + type);
|
|
recordAnalyze.setName(modeName + "-" + recTitle + "-" + sexAdd + type);
|
|
@@ -247,7 +248,7 @@ public class XmlDataAnalysisFacade {
|
|
uptRecordAnalyzeList.add(recordAnalyze);
|
|
uptRecordAnalyzeList.add(recordAnalyze);
|
|
|
|
|
|
exitBecs = raBecsMap.get(alreadyExistsRecordAnalyzeId);
|
|
exitBecs = raBecsMap.get(alreadyExistsRecordAnalyzeId);
|
|
- for (String bhrec : keysBehospitalCodesMap.get(keys)) {
|
|
|
|
|
|
+ for (String bhrec : keysBehospitalCodesMap.get(keys).stream().distinct().collect(Collectors.toList())) {
|
|
if (exitBecs == null || !exitBecs.contains(bhrec)) {
|
|
if (exitBecs == null || !exitBecs.contains(bhrec)) {
|
|
RecordAnalyzeExample recordAnalyzeExample = new RecordAnalyzeExample();
|
|
RecordAnalyzeExample recordAnalyzeExample = new RecordAnalyzeExample();
|
|
recordAnalyzeExample.setRecordAnalyzeId(alreadyExistsRecordAnalyzeId);
|
|
recordAnalyzeExample.setRecordAnalyzeId(alreadyExistsRecordAnalyzeId);
|
|
@@ -272,12 +273,14 @@ public class XmlDataAnalysisFacade {
|
|
recordAnalyzeDetailList.add(recordAnalyzeDetail);
|
|
recordAnalyzeDetailList.add(recordAnalyzeDetail);
|
|
});
|
|
});
|
|
|
|
|
|
- keysBehospitalCodesMap.get(mapKeySet).forEach(bocd -> {
|
|
|
|
|
|
+ keysBehospitalCodesMap.get(mapKeySet).stream().distinct().forEach(bocd -> {
|
|
RecordAnalyzeExample recordAnalyzeExample = new RecordAnalyzeExample();
|
|
RecordAnalyzeExample recordAnalyzeExample = new RecordAnalyzeExample();
|
|
recordAnalyzeExample.setRecordAnalyzeId(raly.getId());
|
|
recordAnalyzeExample.setRecordAnalyzeId(raly.getId());
|
|
recordAnalyzeExample.setBehospitalCode(bocd);
|
|
recordAnalyzeExample.setBehospitalCode(bocd);
|
|
recordAnalyzeExampleList.add(recordAnalyzeExample);
|
|
recordAnalyzeExampleList.add(recordAnalyzeExample);
|
|
|
|
+ });
|
|
|
|
|
|
|
|
+ keysBehospitalCodesMap.get(mapKeySet).forEach(bocd -> {
|
|
Abnormal abnormal = new Abnormal();
|
|
Abnormal abnormal = new Abnormal();
|
|
abnormal.setHospitalId(hospitalId);
|
|
abnormal.setHospitalId(hospitalId);
|
|
abnormal.setBehospitalCode(bocd);
|
|
abnormal.setBehospitalCode(bocd);
|
|
@@ -301,11 +304,11 @@ public class XmlDataAnalysisFacade {
|
|
}
|
|
}
|
|
|
|
|
|
private Set<String> getKeys(long hospitalId, long modelId, String recTitle, String sex, String xml) throws Exception {
|
|
private Set<String> getKeys(long hospitalId, long modelId, String recTitle, String sex, String xml) throws Exception {
|
|
- Set<String> keys = Sets.newHashSet();
|
|
|
|
|
|
+ Set<String> keys = new HashSet<>();
|
|
if (hospitalId == 1) {
|
|
if (hospitalId == 1) {
|
|
- keys = CxXmlUtil.firstLevelNodeValue(xml).keySet();
|
|
|
|
|
|
+ keys.addAll(CxXmlUtil.firstLevelNodeValue(xml).keySet());
|
|
} else if (hospitalId == 3) {
|
|
} else if (hospitalId == 3) {
|
|
- keys = TzXmlUtil.getXmlToMapForTZ(xml).keySet();
|
|
|
|
|
|
+ keys.addAll(TzXmlUtil.getXmlToMapForTZ(xml).keySet());
|
|
}
|
|
}
|
|
if (keys.size() > 0) {
|
|
if (keys.size() > 0) {
|
|
if (StringUtil.isNotBlank(sex)) {
|
|
if (StringUtil.isNotBlank(sex)) {
|