|
@@ -47,7 +47,8 @@ public class AssembleAggregate {
|
|
|
@DataConsumer("drugConfigMap") Map<String, Map<String, Map<String, List<String>>>> drugConfigMap,
|
|
|
@DataConsumer("operationConfigMap") Map<String, Map<String, Map<String, List<String>>>> operationConfigMap,
|
|
|
@DataConsumer("deptConfigMap") Map<String, Map<String, Map<String, List<String>>>> deptConfigMap,
|
|
|
- @DataConsumer("transfusionConfigMap") Map<String, Map<String, Map<String, List<String>>>> transfusionConfigMap) {
|
|
|
+ @DataConsumer("transfusionConfigMap") Map<String, Map<String, Map<String, List<String>>>> transfusionConfigMap,
|
|
|
+ @DataConsumer("routeConfigMap") Map<String, Map<String, Map<String, List<String>>>> routeConfigMap) {
|
|
|
//检验
|
|
|
if (MapUtils.isNotEmpty(lisConfigMap)) {
|
|
|
if (ListUtil.isNotEmpty(searchData.getLis())) {
|
|
@@ -97,6 +98,18 @@ public class AssembleAggregate {
|
|
|
searchData.setDrugOrder(convertItem);
|
|
|
}
|
|
|
}
|
|
|
+ //给药途径
|
|
|
+ if (MapUtils.isNotEmpty(routeConfigMap)) {
|
|
|
+ if (ListUtil.isNotEmpty(searchData.getDrug())) {
|
|
|
+ List<Drug> convertItem = addUniqueName(searchData.getDrug(), routeConfigMap, ConceptTypeEnum.AdministrationRoute.getKey(), "routeName", "routeUniqueName");
|
|
|
+ searchData.setDrug(convertItem);
|
|
|
+ }
|
|
|
+ if (ListUtil.isNotEmpty(searchData.getDrugOrder())) {
|
|
|
+ List<Drug> convertItem = addUniqueName(searchData.getDrugOrder(), routeConfigMap, ConceptTypeEnum.AdministrationRoute.getKey(), "routeName", "routeUniqueName");
|
|
|
+ searchData.setDrugOrder(convertItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//手术
|
|
|
if (MapUtils.isNotEmpty(operationConfigMap)) {
|
|
|
if (ListUtil.isNotEmpty(searchData.getOperation())) {
|
|
@@ -196,7 +209,7 @@ public class AssembleAggregate {
|
|
|
Map<String, Map<String, Map<String, List<String>>>> pacsConfigMap = new HashMap<>();
|
|
|
if (ListUtil.isNotEmpty(pacsHisNameList)) {
|
|
|
pacsConfigMap
|
|
|
- = mappingConfigFacade.groupByHisNameWithName(pacsHisNameList, ConceptTypeEnum.Pacs.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
|
|
|
+ = mappingConfigFacade.groupByHisNameWithName(pacsHisNameList, ConceptTypeEnum.Pacs.getKey(), searchData.getHospitalId(), StatusEnum.Enable.getKey());
|
|
|
}
|
|
|
return pacsConfigMap;
|
|
|
}
|
|
@@ -234,7 +247,7 @@ public class AssembleAggregate {
|
|
|
Map<String, Map<String, Map<String, List<String>>>> configMap = new HashMap<>();
|
|
|
if (ListUtil.isNotEmpty(diagHisNameList)) {
|
|
|
configMap
|
|
|
- = mappingConfigFacade.groupByHisNameWithName(diagHisNameList, ConceptTypeEnum.Disease.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
|
|
|
+ = mappingConfigFacade.groupByHisNameWithName(diagHisNameList, ConceptTypeEnum.Disease.getKey(), searchData.getHospitalId(), StatusEnum.Enable.getKey());
|
|
|
}
|
|
|
return configMap;
|
|
|
}
|
|
@@ -267,7 +280,7 @@ public class AssembleAggregate {
|
|
|
Map<String, Map<String, Map<String, List<String>>>> configMap = new HashMap<>();
|
|
|
if (ListUtil.isNotEmpty(drugHisNameList)) {
|
|
|
configMap
|
|
|
- = mappingConfigFacade.groupByHisNameWithName(drugHisNameList, ConceptTypeEnum.Drug.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
|
|
|
+ = mappingConfigFacade.groupByHisNameWithName(drugHisNameList, ConceptTypeEnum.Drug.getKey(), searchData.getHospitalId(), StatusEnum.Enable.getKey());
|
|
|
}
|
|
|
return configMap;
|
|
|
}
|
|
@@ -305,7 +318,7 @@ public class AssembleAggregate {
|
|
|
Map<String, Map<String, Map<String, List<String>>>> configMap = new HashMap<>();
|
|
|
if (ListUtil.isNotEmpty(operationHisNameList)) {
|
|
|
configMap
|
|
|
- = mappingConfigFacade.groupByHisNameWithName(operationHisNameList, ConceptTypeEnum.Operation.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
|
|
|
+ = mappingConfigFacade.groupByHisNameWithName(operationHisNameList, ConceptTypeEnum.Operation.getKey(), searchData.getHospitalId(), StatusEnum.Enable.getKey());
|
|
|
}
|
|
|
return configMap;
|
|
|
}
|
|
@@ -331,7 +344,7 @@ public class AssembleAggregate {
|
|
|
|
|
|
if (ListUtil.isNotEmpty(deptHisNameList)) {
|
|
|
configMap
|
|
|
- = mappingConfigFacade.groupByHisNameWithName(deptHisNameList, ConceptTypeEnum.Dept.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
|
|
|
+ = mappingConfigFacade.groupByHisNameWithName(deptHisNameList, ConceptTypeEnum.Dept.getKey(), searchData.getHospitalId(), StatusEnum.Enable.getKey());
|
|
|
}
|
|
|
return configMap;
|
|
|
}
|
|
@@ -365,7 +378,40 @@ public class AssembleAggregate {
|
|
|
|
|
|
if (ListUtil.isNotEmpty(transfusionHisNameList)) {
|
|
|
configMap
|
|
|
- = mappingConfigFacade.groupByHisNameWithName(transfusionHisNameList, ConceptTypeEnum.Transfusion.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
|
|
|
+ = mappingConfigFacade.groupByHisNameWithName(transfusionHisNameList, ConceptTypeEnum.Transfusion.getKey(), searchData.getHospitalId(), StatusEnum.Enable.getKey());
|
|
|
+ }
|
|
|
+ return configMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ @DataProvider("routeConfigMap")
|
|
|
+ public Map<String, Map<String, Map<String, List<String>>>> routeConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
+ //药品给药途径公表转换
|
|
|
+ List<String> routeHisNameList = Lists.newArrayList();
|
|
|
+ //drug
|
|
|
+ if (ListUtil.isNotEmpty(searchData.getDrug())) {
|
|
|
+ routeHisNameList.addAll(searchData.getDrug()
|
|
|
+ .stream()
|
|
|
+ .filter(i -> StringUtil.isNotBlank(i.getRouteName()) || StringUtil.isNotBlank(i.getRouteUniqueName()))
|
|
|
+ .map(i -> i.getRouteName())
|
|
|
+ .collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ //drugOrder
|
|
|
+ if (ListUtil.isNotEmpty(searchData.getDrugOrder())) {
|
|
|
+ routeHisNameList.addAll(searchData.getDrugOrder()
|
|
|
+ .stream()
|
|
|
+ .filter(i -> StringUtil.isNotBlank(i.getRouteName()) || StringUtil.isNotBlank(i.getRouteUniqueName()))
|
|
|
+ .map(i -> i.getRouteName())
|
|
|
+ .collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ routeHisNameList = routeHisNameList
|
|
|
+ .stream()
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ Map<String, Map<String, Map<String, List<String>>>> configMap = new HashMap<>();
|
|
|
+ if (ListUtil.isNotEmpty(routeHisNameList)) {
|
|
|
+ configMap
|
|
|
+ = mappingConfigFacade.groupByHisNameWithName(routeHisNameList, ConceptTypeEnum.AdministrationRoute.getKey(), searchData.getHospitalId(), StatusEnum.Enable.getKey());
|
|
|
}
|
|
|
return configMap;
|
|
|
}
|
|
@@ -456,4 +502,64 @@ public class AssembleAggregate {
|
|
|
}
|
|
|
return retList;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 标准名称转换,指定字段
|
|
|
+ *
|
|
|
+ * @param list
|
|
|
+ * @param configMap
|
|
|
+ * @param type
|
|
|
+ * @param <T>
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public <T> List<T> addUniqueName(List<T> list, Map<String, Map<String, Map<String, List<String>>>> configMap, Integer type,
|
|
|
+ String fieldName, String uniqueFieldName) {
|
|
|
+ List<T> retList = new ArrayList<>();
|
|
|
+ if (ListUtil.isEmpty(list)) {
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+ if (configMap == null || configMap.size() == 0) {
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ for (T item : list) {
|
|
|
+ String name = ReflectUtil.getProperty(item, fieldName);
|
|
|
+ if (StringUtil.isBlank(name)) {
|
|
|
+ retList.add(item);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ String uniqueName = ReflectUtil.getProperty(item, uniqueFieldName);
|
|
|
+ if (StringUtil.isNotBlank(uniqueName)) {
|
|
|
+ retList.add(item);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ String hisDetailName = "";
|
|
|
+
|
|
|
+ if (configMap.containsKey(name)) {
|
|
|
+ Map<String, Map<String, List<String>>> subMap = configMap.get(name);
|
|
|
+ if (subMap.containsKey(hisDetailName)) {
|
|
|
+ List<String> standNames = new ArrayList<>(subMap.get(hisDetailName).keySet());
|
|
|
+ for (String stdName : standNames) {
|
|
|
+ T o = (T) item.getClass().newInstance();
|
|
|
+ BeanUtil.copyProperties(item, o);
|
|
|
+ Method setUniqueName = o.getClass().getMethod("set" + uniqueFieldName.substring(0, 1).toUpperCase() + uniqueFieldName.substring(1), String.class);
|
|
|
+ setUniqueName.invoke(o, stdName);
|
|
|
+ retList.add(o);
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ retList.add(item);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ retList.add(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return retList;
|
|
|
+ }
|
|
|
}
|