|
@@ -9,9 +9,11 @@ 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.util.BeanUtil;
|
|
|
import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.StringUtil;
|
|
|
+import com.diagbot.vo.ItemExt;
|
|
|
import com.diagbot.vo.SearchData;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import io.github.lvyahui8.spring.annotation.DataConsumer;
|
|
@@ -45,6 +47,8 @@ public class AssembleAggregate {
|
|
|
private OperationConfigFacade operationConfigFacade;
|
|
|
@Autowired
|
|
|
private DeptConfigFacade deptConfigFacade;
|
|
|
+ @Autowired
|
|
|
+ private TransfusionConfigFacade transfusionConfigFacade;
|
|
|
|
|
|
@DataProvider("assembleDataAll")
|
|
|
public SearchData assembleDataAll(
|
|
@@ -54,7 +58,8 @@ public class AssembleAggregate {
|
|
|
@DataConsumer("diagConfigMap") Map<String, Map<String, Long>> diagConfigMap,
|
|
|
@DataConsumer("drugConfigMap") Map<String, Map<String, Long>> drugConfigMap,
|
|
|
@DataConsumer("operationConfigMap") Map<String, Map<String, Long>> operationConfigMap,
|
|
|
- @DataConsumer("deptConfigMap") Map<String, Map<String, Long>> deptConfigMap) {
|
|
|
+ @DataConsumer("deptConfigMap") Map<String, Map<String, Long>> deptConfigMap,
|
|
|
+ @DataConsumer("transfusionConfigMap") Map<String, Map<String, Long>> transfusionConfigMap) {
|
|
|
//检验
|
|
|
if (MapUtils.isNotEmpty(lisConfigMap)) {
|
|
|
if (ListUtil.isNotEmpty(searchData.getLis())) {
|
|
@@ -101,6 +106,10 @@ public class AssembleAggregate {
|
|
|
}
|
|
|
//手术
|
|
|
if (MapUtils.isNotEmpty(operationConfigMap)) {
|
|
|
+ if (ListUtil.isNotEmpty(searchData.getOperation())) {
|
|
|
+ List<Item> convertItem = itemConvert(searchData.getOperation(), operationConfigMap);
|
|
|
+ searchData.setOperation(convertItem);
|
|
|
+ }
|
|
|
if (ListUtil.isNotEmpty(searchData.getOperationOrder())) {
|
|
|
List<Item> convertItem = itemConvert(searchData.getOperationOrder(), operationConfigMap);
|
|
|
searchData.setOperationOrder(convertItem);
|
|
@@ -113,6 +122,17 @@ public class AssembleAggregate {
|
|
|
searchData.setDept(convertItem);
|
|
|
}
|
|
|
}
|
|
|
+ //输血
|
|
|
+ if (MapUtils.isNotEmpty(transfusionConfigMap)) {
|
|
|
+ if (ListUtil.isNotEmpty(searchData.getTransfusion())) {
|
|
|
+ List<ItemExt> convertItem = itemExtConvert(searchData.getTransfusion(), transfusionConfigMap);
|
|
|
+ searchData.setTransfusion(convertItem);
|
|
|
+ }
|
|
|
+ if (ListUtil.isNotEmpty(searchData.getTransfusionOrder())) {
|
|
|
+ List<ItemExt> convertItem = itemExtConvert(searchData.getTransfusionOrder(), transfusionConfigMap);
|
|
|
+ searchData.setTransfusionOrder(convertItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
return searchData;
|
|
@@ -254,6 +274,14 @@ public class AssembleAggregate {
|
|
|
public Map<String, Map<String, Long>> operationConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
//手术公表转换
|
|
|
List<String> operationHisNameList = Lists.newArrayList();
|
|
|
+ //operation
|
|
|
+ if (ListUtil.isNotEmpty(searchData.getOperation())) {
|
|
|
+ operationHisNameList.addAll(searchData.getOperation()
|
|
|
+ .stream()
|
|
|
+ .filter(i -> StringUtil.isNotBlank(i.getName()) || StringUtil.isNotBlank(i.getUniqueName()))
|
|
|
+ .map(i -> i.getName())
|
|
|
+ .collect(Collectors.toList()));
|
|
|
+ }
|
|
|
//operationOrder
|
|
|
if (ListUtil.isNotEmpty(searchData.getOperationOrder())) {
|
|
|
operationHisNameList.addAll(searchData.getOperationOrder()
|
|
@@ -301,6 +329,40 @@ public class AssembleAggregate {
|
|
|
return configMap;
|
|
|
}
|
|
|
|
|
|
+ @DataProvider("transfusionConfigMap")
|
|
|
+ public Map<String, Map<String, Long>> transfusionConfigMap(@InvokeParameter("searchData") SearchData searchData) {
|
|
|
+ //输血公表转换
|
|
|
+ List<String> transfusionHisNameList = Lists.newArrayList();
|
|
|
+ //transfusion
|
|
|
+ if (ListUtil.isNotEmpty(searchData.getTransfusion())) {
|
|
|
+ transfusionHisNameList.addAll(searchData.getTransfusion()
|
|
|
+ .stream()
|
|
|
+ .filter(i -> StringUtil.isNotBlank(i.getName()) || StringUtil.isNotBlank(i.getUniqueName()))
|
|
|
+ .map(i -> i.getName())
|
|
|
+ .collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ //transfusionOrder
|
|
|
+ if (ListUtil.isNotEmpty(searchData.getTransfusionOrder())) {
|
|
|
+ transfusionHisNameList.addAll(searchData.getTransfusionOrder()
|
|
|
+ .stream()
|
|
|
+ .filter(i -> StringUtil.isNotBlank(i.getName()) || StringUtil.isNotBlank(i.getUniqueName()))
|
|
|
+ .map(i -> i.getName())
|
|
|
+ .collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ transfusionHisNameList = transfusionHisNameList
|
|
|
+ .stream()
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ Map<String, Map<String, Long>> configMap = new HashMap<>();
|
|
|
+
|
|
|
+ if (ListUtil.isNotEmpty(transfusionHisNameList)) {
|
|
|
+ configMap
|
|
|
+ = transfusionConfigFacade.getConfigMap(searchData.getHospitalId(), transfusionHisNameList, null);
|
|
|
+ }
|
|
|
+ return configMap;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 化验公表转换
|
|
|
*
|
|
@@ -417,4 +479,41 @@ public class AssembleAggregate {
|
|
|
});
|
|
|
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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return convertItem;
|
|
|
+ }
|
|
|
}
|