|
@@ -3,13 +3,8 @@ package com.diagbot.aggregate;
|
|
|
import com.diagbot.biz.push.entity.Item;
|
|
|
import com.diagbot.biz.push.entity.Lis;
|
|
|
import com.diagbot.biz.push.entity.Pacs;
|
|
|
-import com.diagbot.facade.DeptConfigFacade;
|
|
|
-import com.diagbot.facade.DiseaseConfigFacade;
|
|
|
-import com.diagbot.facade.DrugConfigFacade;
|
|
|
-import com.diagbot.facade.LisConfigFacade;
|
|
|
-import com.diagbot.facade.OperationConfigFacade;
|
|
|
-import com.diagbot.facade.PacsConfigFacade;
|
|
|
-import com.diagbot.facade.TransfusionConfigFacade;
|
|
|
+import com.diagbot.enums.ConceptTypeEnum;
|
|
|
+import com.diagbot.facade.MappingConfigFacade;
|
|
|
import com.diagbot.util.BeanUtil;
|
|
|
import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.StringUtil;
|
|
@@ -24,6 +19,8 @@ import org.apache.commons.collections4.MapUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.lang.reflect.Method;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -37,110 +34,98 @@ import java.util.stream.Collectors;
|
|
|
@Component
|
|
|
public class AssembleAggregate {
|
|
|
@Autowired
|
|
|
- private LisConfigFacade lisConfigFacade;
|
|
|
- @Autowired
|
|
|
- private PacsConfigFacade pacsConfigFacade;
|
|
|
- @Autowired
|
|
|
- private DiseaseConfigFacade diseaseConfigFacade;
|
|
|
- @Autowired
|
|
|
- private DrugConfigFacade drugConfigFacade;
|
|
|
- @Autowired
|
|
|
- private OperationConfigFacade operationConfigFacade;
|
|
|
- @Autowired
|
|
|
- private DeptConfigFacade deptConfigFacade;
|
|
|
- @Autowired
|
|
|
- private TransfusionConfigFacade transfusionConfigFacade;
|
|
|
+ private MappingConfigFacade mappingConfigFacade;
|
|
|
|
|
|
@DataProvider("assembleDataAll")
|
|
|
public SearchData assembleDataAll(
|
|
|
@InvokeParameter("searchData") SearchData searchData,
|
|
|
- @DataConsumer("lisConfigMap") Map<String, Map<String, Map<String, Long>>> lisConfigMap,
|
|
|
- @DataConsumer("pacsConfigMap") Map<String, Map<String, Long>> pacsConfigMap,
|
|
|
- @DataConsumer("diagConfigMap") Map<String, Map<String, Long>> diagConfigMap,
|
|
|
- @DataConsumer("drugConfigMap") Map<String, Map<String, Map<String, Long>>> drugConfigMap,
|
|
|
- @DataConsumer("operationConfigMap") Map<String, Map<String, Long>> operationConfigMap,
|
|
|
- @DataConsumer("deptConfigMap") Map<String, Map<String, Long>> deptConfigMap,
|
|
|
- @DataConsumer("transfusionConfigMap") Map<String, Map<String, Long>> transfusionConfigMap) {
|
|
|
+ @DataConsumer("lisConfigMap") Map<String, Map<String, Map<String, List<String>>>> lisConfigMap,
|
|
|
+ @DataConsumer("pacsConfigMap") Map<String, Map<String, Map<String, List<String>>>> pacsConfigMap,
|
|
|
+ @DataConsumer("diagConfigMap") Map<String, Map<String, Map<String, List<String>>>> diagConfigMap,
|
|
|
+ @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) {
|
|
|
//检验
|
|
|
if (MapUtils.isNotEmpty(lisConfigMap)) {
|
|
|
if (ListUtil.isNotEmpty(searchData.getLis())) {
|
|
|
- List<Lis> convertLis = lisConvert(searchData.getLis(), lisConfigMap);
|
|
|
+ List<Lis> convertLis = addUniqueName(searchData.getLis(), lisConfigMap, ConceptTypeEnum.LisPack.getKey());
|
|
|
searchData.setLis(convertLis);
|
|
|
}
|
|
|
if (ListUtil.isNotEmpty(searchData.getLisOrder())) {
|
|
|
- List<Lis> convertLis = lisConvert(searchData.getLisOrder(), lisConfigMap);
|
|
|
+ List<Lis> convertLis = addUniqueName(searchData.getLisOrder(), lisConfigMap, ConceptTypeEnum.LisPack.getKey());
|
|
|
searchData.setLisOrder(convertLis);
|
|
|
}
|
|
|
}
|
|
|
//检查
|
|
|
if (MapUtils.isNotEmpty(pacsConfigMap)) {
|
|
|
if (ListUtil.isNotEmpty(searchData.getPacs())) {
|
|
|
- List<Pacs> convertPacs = pacsConvert(searchData.getPacs(), pacsConfigMap);
|
|
|
+ List<Pacs> convertPacs = addUniqueName(searchData.getPacs(), pacsConfigMap, ConceptTypeEnum.Pacs.getKey());
|
|
|
searchData.setPacs(convertPacs);
|
|
|
}
|
|
|
if (ListUtil.isNotEmpty(searchData.getPacsOrder())) {
|
|
|
- List<Pacs> convertPacs = pacsConvert(searchData.getPacsOrder(), pacsConfigMap);
|
|
|
+ List<Pacs> convertPacs = addUniqueName(searchData.getPacsOrder(), pacsConfigMap, ConceptTypeEnum.Pacs.getKey());
|
|
|
searchData.setPacsOrder(convertPacs);
|
|
|
}
|
|
|
}
|
|
|
//诊断
|
|
|
if (MapUtils.isNotEmpty(diagConfigMap)) {
|
|
|
if (ListUtil.isNotEmpty(searchData.getDiag())) {
|
|
|
- List<Item> convertItem = itemConvert(searchData.getDiag(), diagConfigMap);
|
|
|
+ List<Item> convertItem = addUniqueName(searchData.getDiag(), diagConfigMap, ConceptTypeEnum.Disease.getKey());
|
|
|
searchData.setDiag(convertItem);
|
|
|
}
|
|
|
if (ListUtil.isNotEmpty(searchData.getDiagOrder())) {
|
|
|
- List<Item> convertItem = itemConvert(searchData.getDiagOrder(), diagConfigMap);
|
|
|
+ List<Item> convertItem = addUniqueName(searchData.getDiagOrder(), diagConfigMap, ConceptTypeEnum.Disease.getKey());
|
|
|
searchData.setDiagOrder(convertItem);
|
|
|
}
|
|
|
if (searchData.getDiseaseName() != null
|
|
|
&& StringUtil.isNotBlank(searchData.getDiseaseName().getName())) {
|
|
|
- List<Item> convertItem = itemConvert(Lists.newArrayList(searchData.getDiseaseName()), diagConfigMap);
|
|
|
+ List<Item> convertItem = addUniqueName(Lists.newArrayList(searchData.getDiseaseName()), diagConfigMap, ConceptTypeEnum.Disease.getKey());
|
|
|
searchData.setDiseaseName(convertItem.get(0));
|
|
|
}
|
|
|
}
|
|
|
//药品
|
|
|
if (MapUtils.isNotEmpty(drugConfigMap)) {
|
|
|
if (ListUtil.isNotEmpty(searchData.getDrug())) {
|
|
|
- List<Drug> convertItem = drugConvert(searchData.getDrug(), drugConfigMap);
|
|
|
+ List<Drug> convertItem = addUniqueName(searchData.getDrug(), drugConfigMap, ConceptTypeEnum.Drug.getKey());
|
|
|
searchData.setDrug(convertItem);
|
|
|
}
|
|
|
if (ListUtil.isNotEmpty(searchData.getDrugOrder())) {
|
|
|
- List<Drug> convertItem = drugConvert(searchData.getDrugOrder(), drugConfigMap);
|
|
|
+ List<Drug> convertItem = addUniqueName(searchData.getDrugOrder(), drugConfigMap, ConceptTypeEnum.Drug.getKey());
|
|
|
searchData.setDrugOrder(convertItem);
|
|
|
}
|
|
|
}
|
|
|
//手术
|
|
|
if (MapUtils.isNotEmpty(operationConfigMap)) {
|
|
|
if (ListUtil.isNotEmpty(searchData.getOperation())) {
|
|
|
- List<Item> convertItem = itemConvert(searchData.getOperation(), operationConfigMap);
|
|
|
+ List<Item> convertItem = addUniqueName(searchData.getOperation(), operationConfigMap, ConceptTypeEnum.Operation.getKey());
|
|
|
searchData.setOperation(convertItem);
|
|
|
}
|
|
|
if (ListUtil.isNotEmpty(searchData.getOperationOrder())) {
|
|
|
- List<Item> convertItem = itemConvert(searchData.getOperationOrder(), operationConfigMap);
|
|
|
+ List<Item> convertItem = addUniqueName(searchData.getOperationOrder(), operationConfigMap, ConceptTypeEnum.Operation.getKey());
|
|
|
searchData.setOperationOrder(convertItem);
|
|
|
}
|
|
|
if (searchData.getOperationName() != null
|
|
|
&& StringUtil.isNotBlank(searchData.getOperationName().getName())) {
|
|
|
- List<Item> convertItem = itemConvert(Lists.newArrayList(searchData.getOperationName()), operationConfigMap);
|
|
|
+ List<Item> convertItem = addUniqueName(Lists.newArrayList(searchData.getOperationName()), operationConfigMap, ConceptTypeEnum.Operation.getKey());
|
|
|
searchData.setOperationName(convertItem.get(0));
|
|
|
}
|
|
|
}
|
|
|
//科室
|
|
|
if (MapUtils.isNotEmpty(deptConfigMap)) {
|
|
|
if (ListUtil.isNotEmpty(searchData.getDept())) {
|
|
|
- List<Item> convertItem = itemConvert(searchData.getDept(), deptConfigMap);
|
|
|
+ List<Item> convertItem = addUniqueName(searchData.getDept(), deptConfigMap, ConceptTypeEnum.Dept.getKey());
|
|
|
searchData.setDept(convertItem);
|
|
|
}
|
|
|
}
|
|
|
//输血
|
|
|
if (MapUtils.isNotEmpty(transfusionConfigMap)) {
|
|
|
if (ListUtil.isNotEmpty(searchData.getTransfusion())) {
|
|
|
- List<ItemExt> convertItem = itemExtConvert(searchData.getTransfusion(), transfusionConfigMap);
|
|
|
+ List<ItemExt> convertItem = addUniqueName(searchData.getTransfusion(), transfusionConfigMap, ConceptTypeEnum.Transfusion.getKey());
|
|
|
searchData.setTransfusion(convertItem);
|
|
|
}
|
|
|
if (ListUtil.isNotEmpty(searchData.getTransfusionOrder())) {
|
|
|
- List<ItemExt> convertItem = itemExtConvert(searchData.getTransfusionOrder(), transfusionConfigMap);
|
|
|
+ List<ItemExt> convertItem = addUniqueName(searchData.getTransfusionOrder(), transfusionConfigMap, ConceptTypeEnum.Transfusion.getKey());
|
|
|
searchData.setTransfusionOrder(convertItem);
|
|
|
}
|
|
|
}
|
|
@@ -148,7 +133,7 @@ public class AssembleAggregate {
|
|
|
}
|
|
|
|
|
|
@DataProvider("lisConfigMap")
|
|
|
- public Map<String, Map<String, Map<String, Long>>> lisConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
+ public Map<String, Map<String, Map<String, List<String>>>> lisConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
//化验公表转换
|
|
|
List<String> lisHisNameList = Lists.newArrayList();
|
|
|
//lis
|
|
@@ -172,16 +157,17 @@ public class AssembleAggregate {
|
|
|
.distinct()
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
- Map<String, Map<String, Map<String, Long>>> lisConfigMap = new HashMap<>();
|
|
|
+ Map<String, Map<String, Map<String, List<String>>>> lisConfigMap = new HashMap<>();
|
|
|
+
|
|
|
if (ListUtil.isNotEmpty(lisHisNameList)) {
|
|
|
lisConfigMap
|
|
|
- = lisConfigFacade.getConfigMap(searchData.getHospitalId(), lisHisNameList, null);
|
|
|
+ = mappingConfigFacade.groupByHisNameWithName(lisHisNameList, ConceptTypeEnum.LisPack.getKey(), searchData.getHospitalId());
|
|
|
}
|
|
|
return lisConfigMap;
|
|
|
}
|
|
|
|
|
|
@DataProvider("pacsConfigMap")
|
|
|
- public Map<String, Map<String, Long>> pacsConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
+ public Map<String, Map<String, Map<String, List<String>>>> pacsConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
//辅检公表转换
|
|
|
List<String> pacsHisNameList = Lists.newArrayList();
|
|
|
//pacs
|
|
@@ -205,16 +191,16 @@ public class AssembleAggregate {
|
|
|
.distinct()
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
- Map<String, Map<String, Long>> pacsConfigMap = new HashMap<>();
|
|
|
+ Map<String, Map<String, Map<String, List<String>>>> pacsConfigMap = new HashMap<>();
|
|
|
if (ListUtil.isNotEmpty(pacsHisNameList)) {
|
|
|
pacsConfigMap
|
|
|
- = pacsConfigFacade.getConfigMap(searchData.getHospitalId(), pacsHisNameList, null);
|
|
|
+ = mappingConfigFacade.groupByHisNameWithName(pacsHisNameList, ConceptTypeEnum.Pacs.getKey(), searchData.getHospitalId());
|
|
|
}
|
|
|
return pacsConfigMap;
|
|
|
}
|
|
|
|
|
|
@DataProvider("diagConfigMap")
|
|
|
- public Map<String, Map<String, Long>> diagConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
+ public Map<String, Map<String, Map<String, List<String>>>> diagConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
//诊断公表转换
|
|
|
List<String> diagHisNameList = Lists.newArrayList();
|
|
|
//diag
|
|
@@ -243,16 +229,16 @@ public class AssembleAggregate {
|
|
|
.distinct()
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
- Map<String, Map<String, Long>> configMap = new HashMap<>();
|
|
|
+ Map<String, Map<String, Map<String, List<String>>>> configMap = new HashMap<>();
|
|
|
if (ListUtil.isNotEmpty(diagHisNameList)) {
|
|
|
configMap
|
|
|
- = diseaseConfigFacade.getConfigMap(searchData.getHospitalId(), diagHisNameList, null);
|
|
|
+ = mappingConfigFacade.groupByHisNameWithName(diagHisNameList, ConceptTypeEnum.Disease.getKey(), searchData.getHospitalId());
|
|
|
}
|
|
|
return configMap;
|
|
|
}
|
|
|
|
|
|
@DataProvider("drugConfigMap")
|
|
|
- public Map<String, Map<String, Map<String, Long>>> drugConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
+ public Map<String, Map<String, Map<String, List<String>>>> drugConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
//药品公表转换
|
|
|
List<String> drugHisNameList = Lists.newArrayList();
|
|
|
//drug
|
|
@@ -276,16 +262,16 @@ public class AssembleAggregate {
|
|
|
.distinct()
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
- Map<String, Map<String, Map<String, Long>>> configMap = new HashMap<>();
|
|
|
+ Map<String, Map<String, Map<String, List<String>>>> configMap = new HashMap<>();
|
|
|
if (ListUtil.isNotEmpty(drugHisNameList)) {
|
|
|
configMap
|
|
|
- = drugConfigFacade.getConfigMap(searchData.getHospitalId(), drugHisNameList, null);
|
|
|
+ = mappingConfigFacade.groupByHisNameWithName(drugHisNameList, ConceptTypeEnum.Drug.getKey(), searchData.getHospitalId());
|
|
|
}
|
|
|
return configMap;
|
|
|
}
|
|
|
|
|
|
@DataProvider("operationConfigMap")
|
|
|
- public Map<String, Map<String, Long>> operationConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
+ public Map<String, Map<String, Map<String, List<String>>>> operationConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
//手术公表转换
|
|
|
List<String> operationHisNameList = Lists.newArrayList();
|
|
|
//operation
|
|
@@ -314,16 +300,16 @@ public class AssembleAggregate {
|
|
|
.distinct()
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
- Map<String, Map<String, Long>> configMap = new HashMap<>();
|
|
|
+ Map<String, Map<String, Map<String, List<String>>>> configMap = new HashMap<>();
|
|
|
if (ListUtil.isNotEmpty(operationHisNameList)) {
|
|
|
configMap
|
|
|
- = operationConfigFacade.getConfigMap(searchData.getHospitalId(), operationHisNameList, null);
|
|
|
+ = mappingConfigFacade.groupByHisNameWithName(operationHisNameList, ConceptTypeEnum.Operation.getKey(), searchData.getHospitalId());
|
|
|
}
|
|
|
return configMap;
|
|
|
}
|
|
|
|
|
|
@DataProvider("deptConfigMap")
|
|
|
- public Map<String, Map<String, Long>> deptConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
+ public Map<String, Map<String, Map<String, List<String>>>> deptConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
//科室公表转换
|
|
|
List<String> deptHisNameList = Lists.newArrayList();
|
|
|
//dept
|
|
@@ -339,17 +325,17 @@ public class AssembleAggregate {
|
|
|
.distinct()
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
- Map<String, Map<String, Long>> configMap = new HashMap<>();
|
|
|
+ Map<String, Map<String, Map<String, List<String>>>> configMap = new HashMap<>();
|
|
|
|
|
|
if (ListUtil.isNotEmpty(deptHisNameList)) {
|
|
|
configMap
|
|
|
- = deptConfigFacade.getConfigMap(searchData.getHospitalId(), deptHisNameList, null);
|
|
|
+ = mappingConfigFacade.groupByHisNameWithName(deptHisNameList, ConceptTypeEnum.Dept.getKey(), searchData.getHospitalId());
|
|
|
}
|
|
|
return configMap;
|
|
|
}
|
|
|
|
|
|
@DataProvider("transfusionConfigMap")
|
|
|
- public Map<String, Map<String, Long>> transfusionConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
+ public Map<String, Map<String, Map<String, List<String>>>> transfusionConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
//输血公表转换
|
|
|
List<String> transfusionHisNameList = Lists.newArrayList();
|
|
|
//transfusion
|
|
@@ -373,218 +359,99 @@ public class AssembleAggregate {
|
|
|
.distinct()
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
- Map<String, Map<String, Long>> configMap = new HashMap<>();
|
|
|
+ Map<String, Map<String, Map<String, List<String>>>> configMap = new HashMap<>();
|
|
|
|
|
|
if (ListUtil.isNotEmpty(transfusionHisNameList)) {
|
|
|
configMap
|
|
|
- = transfusionConfigFacade.getConfigMap(searchData.getHospitalId(), transfusionHisNameList, null);
|
|
|
+ = mappingConfigFacade.groupByHisNameWithName(transfusionHisNameList, ConceptTypeEnum.Transfusion.getKey(), searchData.getHospitalId());
|
|
|
}
|
|
|
return configMap;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 化验公表转换
|
|
|
+ * 标准名称转换
|
|
|
*
|
|
|
- * @param lis
|
|
|
+ * @param list
|
|
|
* @param configMap
|
|
|
+ * @param type
|
|
|
+ * @param <T>
|
|
|
* @return
|
|
|
*/
|
|
|
- public List<Lis> lisConvert(List<Lis> lis, Map<String, Map<String, Map<String, Long>>> configMap) {
|
|
|
- if (ListUtil.isEmpty(lis)) {
|
|
|
- return lis;
|
|
|
+ public <T> List<T> addUniqueName(List<T> list, Map<String, Map<String, Map<String, List<String>>>> configMap, Integer type) {
|
|
|
+ List<T> retList = new ArrayList<>();
|
|
|
+ if (ListUtil.isEmpty(list)) {
|
|
|
+ return list;
|
|
|
}
|
|
|
if (configMap == null || configMap.size() == 0) {
|
|
|
- return lis;
|
|
|
+ return list;
|
|
|
}
|
|
|
- List<Lis> convertLis = Lists.newLinkedList();
|
|
|
|
|
|
- lis.forEach(lisRecord -> {
|
|
|
- if (StringUtil.isBlank(lisRecord.getName())
|
|
|
- || StringUtil.isNotBlank(lisRecord.getUniqueName())) {
|
|
|
- convertLis.add(lisRecord);
|
|
|
- } else {
|
|
|
- Map<String, Long> uniqueNameMap = new HashMap<>();
|
|
|
- if (StringUtil.isBlank(lisRecord.getDetailName())) {
|
|
|
- lisRecord.setDetailName("");
|
|
|
- }
|
|
|
- if (configMap.get(lisRecord.getName()) != null
|
|
|
- && configMap.get(lisRecord.getName()).containsKey(lisRecord.getDetailName())) {
|
|
|
- uniqueNameMap = configMap.get(lisRecord.getName()).get(lisRecord.getDetailName());
|
|
|
+ try {
|
|
|
+ for (T item : list) {
|
|
|
+ String name = item.getClass().getMethod("getName").invoke(item).toString();
|
|
|
+ if (StringUtil.isBlank(name)) {
|
|
|
+ retList.add(item);
|
|
|
+ continue;
|
|
|
}
|
|
|
- if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
|
|
|
- for (String uniqueName : uniqueNameMap.keySet()) {
|
|
|
- Lis convertLisRecord = new Lis();
|
|
|
- BeanUtil.copyProperties(lisRecord, convertLisRecord);
|
|
|
- convertLisRecord.setUniqueName(uniqueName);
|
|
|
- convertLis.add(convertLisRecord);
|
|
|
- }
|
|
|
- } else {
|
|
|
- convertLis.add(lisRecord);
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- return convertLis;
|
|
|
- }
|
|
|
|
|
|
- /**
|
|
|
- * 辅检公表转换
|
|
|
- *
|
|
|
- * @param pacs
|
|
|
- * @param configMap
|
|
|
- * @return
|
|
|
- */
|
|
|
- public List<Pacs> pacsConvert(List<Pacs> pacs, Map<String, Map<String, Long>> configMap) {
|
|
|
- if (ListUtil.isEmpty(pacs)) {
|
|
|
- return pacs;
|
|
|
- }
|
|
|
- if (configMap == null || configMap.size() == 0) {
|
|
|
- return pacs;
|
|
|
- }
|
|
|
- List<Pacs> convertPacs = Lists.newLinkedList();
|
|
|
-
|
|
|
- pacs.forEach(pacsRecord -> {
|
|
|
- if (StringUtil.isBlank(pacsRecord.getName())
|
|
|
- || StringUtil.isNotBlank(pacsRecord.getUniqueName())) {
|
|
|
- convertPacs.add(pacsRecord);
|
|
|
- } else {
|
|
|
- Map<String, Long> uniqueNameMap = new HashMap<>();
|
|
|
- if (configMap.get(pacsRecord.getName()) != null) {
|
|
|
- uniqueNameMap = configMap.get(pacsRecord.getName());
|
|
|
+ String uniqueName = item.getClass().getMethod("getUniqueName").invoke(item).toString();
|
|
|
+ if (StringUtil.isNotBlank(uniqueName)) {
|
|
|
+ retList.add(item);
|
|
|
+ continue;
|
|
|
}
|
|
|
- if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
|
|
|
- for (String uniqueName : uniqueNameMap.keySet()) {
|
|
|
- Pacs convertPacsRecord = new Pacs();
|
|
|
- BeanUtil.copyProperties(pacsRecord, convertPacsRecord);
|
|
|
- convertPacsRecord.setUniqueName(uniqueName);
|
|
|
- convertPacs.add(convertPacsRecord);
|
|
|
+
|
|
|
+ String hisDetailName = "";
|
|
|
+ if(type.equals(ConceptTypeEnum.LisPack.getKey())) {
|
|
|
+ hisDetailName = item.getClass().getMethod("getHisDetailName").invoke(item).toString();
|
|
|
+ if (StringUtil.isBlank(hisDetailName)) {
|
|
|
+ hisDetailName = "";
|
|
|
}
|
|
|
- } else {
|
|
|
- convertPacs.add(pacsRecord);
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
- return convertPacs;
|
|
|
- }
|
|
|
|
|
|
- /**
|
|
|
- * 药品公表转换
|
|
|
- *
|
|
|
- * @param drug
|
|
|
- * @param configMap
|
|
|
- * @return
|
|
|
- */
|
|
|
- public List<Drug> drugConvert(List<Drug> drug, Map<String, Map<String, Map<String, Long>>> configMap) {
|
|
|
- if (ListUtil.isEmpty(drug)) {
|
|
|
- return drug;
|
|
|
- }
|
|
|
- if (configMap == null || configMap.size() == 0) {
|
|
|
- return drug;
|
|
|
- }
|
|
|
- List<Drug> convertDrug = Lists.newLinkedList();
|
|
|
+ if (configMap.containsKey(name)) {
|
|
|
+ Map<String, Map<String, List<String>>> subMap = configMap.get(name);
|
|
|
+ if (subMap.containsKey(hisDetailName)) {
|
|
|
+ if (type.equals(ConceptTypeEnum.Drug.getKey())) {
|
|
|
+ for (Map.Entry<String, List<String>> thirdEntry : subMap.get(hisDetailName).entrySet()) {
|
|
|
+ if (ListUtil.isNotEmpty(thirdEntry.getValue())) {
|
|
|
+ for (String form : thirdEntry.getValue()) {
|
|
|
+ T o = (T) item.getClass().newInstance();
|
|
|
+ BeanUtil.copyProperties(item, o);
|
|
|
+ Method setUniqueName = o.getClass().getMethod("setUniqueName", String.class);
|
|
|
+ setUniqueName.invoke(o, thirdEntry.getKey());
|
|
|
+ Method setForm = o.getClass().getMethod("setForm", String.class);
|
|
|
+ setForm.invoke(o, form);
|
|
|
+ retList.add(o);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ T o = (T) item.getClass().newInstance();
|
|
|
+ BeanUtil.copyProperties(item, o);
|
|
|
+ Method setUniqueName = o.getClass().getMethod("setUniqueName", String.class);
|
|
|
+ setUniqueName.invoke(o, thirdEntry.getKey());
|
|
|
+ retList.add(o);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- drug.forEach(drugRecord -> {
|
|
|
- if (StringUtil.isBlank(drugRecord.getName())
|
|
|
- || StringUtil.isNotBlank(drugRecord.getUniqueName())) {
|
|
|
- convertDrug.add(drugRecord);
|
|
|
- } else {
|
|
|
- Map<String, Map<String, Long>> uniqueNameMap = new HashMap<>();
|
|
|
- if (configMap.get(drugRecord.getName()) != null) {
|
|
|
- uniqueNameMap = configMap.get(drugRecord.getName());
|
|
|
- }
|
|
|
- if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
|
|
|
- for (String form : uniqueNameMap.keySet()) {
|
|
|
- Map<String, Long> s = uniqueNameMap.get(form);
|
|
|
- for (String uniqueName: s.keySet()){
|
|
|
- Drug convertDrugRecord = new Drug();
|
|
|
- BeanUtil.copyProperties(drugRecord, convertDrugRecord);
|
|
|
- convertDrugRecord.setUniqueName(uniqueName);
|
|
|
- convertDrugRecord.setForm(form);
|
|
|
- convertDrug.add(convertDrugRecord);
|
|
|
+ } else {
|
|
|
+ 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("setUniqueName", String.class);
|
|
|
+ setUniqueName.invoke(o, stdName);
|
|
|
+ retList.add(o);
|
|
|
+ }
|
|
|
}
|
|
|
+ } else {
|
|
|
+ retList.add(item);
|
|
|
}
|
|
|
} else {
|
|
|
- convertDrug.add(drugRecord);
|
|
|
+ retList.add(item);
|
|
|
}
|
|
|
}
|
|
|
- });
|
|
|
- return convertDrug;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 手术、诊断、科室转换
|
|
|
- *
|
|
|
- * @param items
|
|
|
- * @param configMap
|
|
|
- * @return
|
|
|
- */
|
|
|
- public List<Item> itemConvert(List<Item> items, Map<String, Map<String, Long>> configMap) {
|
|
|
- if (ListUtil.isEmpty(items)) {
|
|
|
- return items;
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
- if (configMap == null || configMap.size() == 0) {
|
|
|
- return items;
|
|
|
- }
|
|
|
- List<Item> convertItem = Lists.newLinkedList();
|
|
|
- items.forEach(item -> {
|
|
|
- if (StringUtil.isBlank(item.getName())
|
|
|
- || StringUtil.isNotBlank(item.getUniqueName())) {
|
|
|
- convertItem.add(item);
|
|
|
- } else {
|
|
|
- Map<String, Long> uniqueNameMap = new HashMap<>();
|
|
|
- if (configMap.get(item.getName()) != null) {
|
|
|
- uniqueNameMap = configMap.get(item.getName());
|
|
|
- }
|
|
|
- if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
|
|
|
- for (String uniqueName : uniqueNameMap.keySet()) {
|
|
|
- Item convertItemRecord = new Item();
|
|
|
- BeanUtil.copyProperties(item, convertItemRecord);
|
|
|
- convertItemRecord.setUniqueName(uniqueName);
|
|
|
- convertItem.add(convertItemRecord);
|
|
|
- }
|
|
|
- } else {
|
|
|
- convertItem.add(item);
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- return convertItem;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 输血转换
|
|
|
- *
|
|
|
- * @param items
|
|
|
- * @param configMap
|
|
|
- * @return
|
|
|
- */
|
|
|
- public List<ItemExt> itemExtConvert(List<ItemExt> items, Map<String, Map<String, Long>> configMap) {
|
|
|
- if (ListUtil.isEmpty(items)) {
|
|
|
- return items;
|
|
|
- }
|
|
|
- if (configMap == null || configMap.size() == 0) {
|
|
|
- return items;
|
|
|
- }
|
|
|
- List<ItemExt> convertItem = Lists.newLinkedList();
|
|
|
- items.forEach(item -> {
|
|
|
- if (StringUtil.isBlank(item.getName())
|
|
|
- || StringUtil.isNotBlank(item.getUniqueName())) {
|
|
|
- convertItem.add(item);
|
|
|
- } else {
|
|
|
- Map<String, Long> uniqueNameMap = new HashMap<>();
|
|
|
- if (configMap.get(item.getName()) != null) {
|
|
|
- uniqueNameMap = configMap.get(item.getName());
|
|
|
- }
|
|
|
- if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
|
|
|
- for (String uniqueName : uniqueNameMap.keySet()) {
|
|
|
- ItemExt convertItemRecord = new ItemExt();
|
|
|
- BeanUtil.copyProperties(item, convertItemRecord);
|
|
|
- convertItemRecord.setUniqueName(uniqueName);
|
|
|
- convertItem.add(convertItemRecord);
|
|
|
- }
|
|
|
- } else {
|
|
|
- convertItem.add(item);
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- return convertItem;
|
|
|
+ return retList;
|
|
|
}
|
|
|
}
|