|
@@ -32,12 +32,15 @@ import java.util.stream.Collectors;
|
|
public class CommonFacade {
|
|
public class CommonFacade {
|
|
@Autowired
|
|
@Autowired
|
|
CRFServiceClient crfServiceClient;
|
|
CRFServiceClient crfServiceClient;
|
|
|
|
+ @Autowired
|
|
|
|
+ LisConfigFacade lisConfigFacade;
|
|
|
|
|
|
//组装好的label
|
|
//组装好的label
|
|
public WordCrfDTO crf_process(SearchData searchData) {
|
|
public WordCrfDTO crf_process(SearchData searchData) {
|
|
|
|
|
|
AIAnalyze aiAnalyze = new AIAnalyze(crfServiceClient);
|
|
AIAnalyze aiAnalyze = new AIAnalyze(crfServiceClient);
|
|
WordCrfDTO wordCrfDTO = new WordCrfDTO();
|
|
WordCrfDTO wordCrfDTO = new WordCrfDTO();
|
|
|
|
+ wordCrfDTO.setHospitalId(searchData.getHospitalId());
|
|
wordCrfDTO.setAge(searchData.getAge());
|
|
wordCrfDTO.setAge(searchData.getAge());
|
|
wordCrfDTO.setSex(searchData.getSex());
|
|
wordCrfDTO.setSex(searchData.getSex());
|
|
if (ListUtil.isNotEmpty(searchData.getLis())) {
|
|
if (ListUtil.isNotEmpty(searchData.getLis())) {
|
|
@@ -65,6 +68,9 @@ public class CommonFacade {
|
|
wordCrfDTO.setDiag(searchData.getDiag());
|
|
wordCrfDTO.setDiag(searchData.getDiag());
|
|
}
|
|
}
|
|
aiAnalyze.aiProcess(searchData, wordCrfDTO);
|
|
aiAnalyze.aiProcess(searchData, wordCrfDTO);
|
|
|
|
+ List<Lis> lisList = processPresentLisPacs(wordCrfDTO);
|
|
|
|
+ wordCrfDTO.getLis().addAll(lisList);
|
|
|
|
+ wordCrfDTO.setLis(wordCrfDTO.getLis());
|
|
return wordCrfDTO;
|
|
return wordCrfDTO;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -268,5 +274,58 @@ public class CommonFacade {
|
|
return pushVO;
|
|
return pushVO;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public List<Lis> processPresentLisPacs(WordCrfDTO wordCrfDTO){
|
|
|
|
+ PresentLabel presentLabel = wordCrfDTO.getPresentLabel();
|
|
|
|
+ List<com.diagbot.model.entity.Lis> lises = presentLabel.getLises();
|
|
|
|
+ List<Lis> lisList = new ArrayList<>();
|
|
|
|
+ if(ListUtil.isNotEmpty(lises)){
|
|
|
|
+ List<String> lisNames = lises.stream().map(x -> x.getBigItem().getName()).distinct().collect(Collectors.toList());
|
|
|
|
+ Map<String, Map<String, Map<String, Long>>> configMap = lisConfigFacade.getConfigMap(wordCrfDTO.getHospitalId(), lisNames, null);
|
|
|
|
+ if(configMap.size() > 0){
|
|
|
|
+ lises.stream().forEach(x ->{
|
|
|
|
+
|
|
|
|
+ String bigName = x.getBigItem().getName();//大项名
|
|
|
|
+ String detailName = x.getName();//小项名
|
|
|
|
+ String value = x.getPd().getValue();
|
|
|
|
+ String unit = x.getPd().getUnit();
|
|
|
|
+ if(configMap.containsKey(bigName)){
|
|
|
|
+ Map<String, Map<String, Long>> uniqueDetailMap = configMap.get(bigName);
|
|
|
|
+ if(uniqueDetailMap.containsKey(detailName)){
|
|
|
|
+
|
|
|
|
+ List<String> uniques = uniqueDetailMap.get(detailName).keySet().stream().collect(Collectors.toList());//所有的公表项
|
|
|
|
+ if(ListUtil.isNotEmpty(uniques)){
|
|
|
|
+ List<Lis> lisStream = uniques.stream().map(z -> {
|
|
|
|
+ Lis lis = new Lis();
|
|
|
|
+ lis.setDetailName(detailName);
|
|
|
|
+ lis.setName(bigName);
|
|
|
|
+ lis.setUniqueName(z);
|
|
|
|
+ lis.setValue(Double.parseDouble(value));
|
|
|
|
+ lis.setUnits(unit);
|
|
|
|
+ return lis;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+ lisList.addAll(lisStream);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }else {
|
|
|
|
+ Lis lis = new Lis();
|
|
|
|
+ lis.setUnits(unit);
|
|
|
|
+ lis.setValue(Double.parseDouble(value));
|
|
|
|
+ lis.setDetailName(detailName);
|
|
|
|
+ lis.setName(bigName);
|
|
|
|
+ lisList.add(lis);
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ Lis lis = new Lis();
|
|
|
|
+ lis.setUnits(unit);
|
|
|
|
+ lis.setValue(Double.parseDouble(value));
|
|
|
|
+ lis.setDetailName(detailName);
|
|
|
|
+ lis.setName(bigName);
|
|
|
|
+ lisList.add(lis);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return lisList;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|