123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- package com.diagbot.aggregate;
- import com.diagbot.dto.PushBaseDTO;
- import com.diagbot.dto.PushDTO;
- 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.util.ListUtil;
- import com.google.common.collect.Lists;
- import io.github.lvyahui8.spring.annotation.DataConsumer;
- import io.github.lvyahui8.spring.annotation.DataProvider;
- import io.github.lvyahui8.spring.annotation.InvokeParameter;
- import org.apache.commons.collections4.MapUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- /**
- * @Description:
- * @author: gaodm
- * @time: 2020/8/19 13:50
- */
- @Component
- public class AssemblePushAggregate {
- @Autowired
- private LisConfigFacade lisConfigFacade;
- @Autowired
- private PacsConfigFacade pacsConfigFacade;
- @Autowired
- private DiseaseConfigFacade diseaseConfigFacade;
- @Autowired
- private DrugConfigFacade drugConfigFacade;
- @Autowired
- private OperationConfigFacade operationConfigFacade;
- @DataProvider("assemblePushAll")
- public PushDTO assemblePushAll(
- @InvokeParameter("pushDTO") PushDTO data,
- @InvokeParameter("hospitalId") Long hospitalId,
- @DataConsumer("retLis") List<PushBaseDTO> retLis,
- @DataConsumer("retPacs") List<PushBaseDTO> retPacs,
- @DataConsumer("retDiagMap") Map<String, List<PushBaseDTO>> retDiagMap,
- @DataConsumer("retOperation") List<PushBaseDTO> retOperation,
- @DataConsumer("retDrug") List<PushBaseDTO> retDrug) {
- if (ListUtil.isNotEmpty(retLis)) {
- data.setLis(retLis);
- }
- if (ListUtil.isNotEmpty(retPacs)) {
- data.setPacs(retPacs);
- }
- if (MapUtils.isNotEmpty(retDiagMap)) {
- data.setDis(retDiagMap);
- }
- if (ListUtil.isNotEmpty(retOperation)) {
- data.setOperations(retOperation);
- }
- if (ListUtil.isNotEmpty(retDrug)) {
- data.setMedicines(retDrug);
- }
- return data;
- }
- @DataProvider("retLis")
- public List<PushBaseDTO> retLis(@InvokeParameter("pushDTO") PushDTO data,
- @InvokeParameter("hospitalId") Long hospitalId) {
- //检验
- List<PushBaseDTO> retLis = new ArrayList<>();
- if (ListUtil.isNotEmpty(data.getLis())) {
- retLis = data.getLis();
- List<String> uniqueNameList = retLis.stream()
- .map(i -> i.getName())
- .collect(Collectors.toList());
- Map<String, Map<String, Long>> uniqueNameMap
- = lisConfigFacade.getUniqueNameConfigMap(hospitalId, null, uniqueNameList);
- if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
- retLis.forEach(item -> {
- if (uniqueNameMap.get(item.getName()) != null) {
- item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
- }
- });
- }
- }
- return retLis;
- }
- @DataProvider("retPacs")
- public List<PushBaseDTO> retPacs(@InvokeParameter("pushDTO") PushDTO data,
- @InvokeParameter("hospitalId") Long hospitalId) {
- //检查
- List<PushBaseDTO> retPacs = new ArrayList<>();
- if (ListUtil.isNotEmpty(data.getPacs())) {
- retPacs = data.getPacs();
- List<String> uniqueNameList = retPacs.stream()
- .map(i -> i.getName())
- .collect(Collectors.toList());
- Map<String, Map<String, Long>> uniqueNameMap
- = pacsConfigFacade.getUniqueNameConfigMap(hospitalId, null, uniqueNameList);
- if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
- retPacs.forEach(item -> {
- if (uniqueNameMap.get(item.getName()) != null) {
- item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
- }
- });
- }
- }
- return retPacs;
- }
- @DataProvider("retDiagMap")
- public Map<String, List<PushBaseDTO>> retDiagMap(@InvokeParameter("pushDTO") PushDTO data,
- @InvokeParameter("hospitalId") Long hospitalId) {
- Map<String, List<PushBaseDTO>> retMap = new HashMap<>();
- if (data.getDis() != null && data.getDis().size() > 0) {
- retMap = data.getDis();
- List<String> uniqueNameList = Lists.newLinkedList();
- for (Map.Entry<String, List<PushBaseDTO>> entry : retMap.entrySet()) {
- if (ListUtil.isNotEmpty(entry.getValue())) {
- uniqueNameList.addAll(entry.getValue().stream()
- .map(i -> i.getName())
- .collect(Collectors.toList()));
- }
- }
- if (ListUtil.isNotEmpty(uniqueNameList)) {
- Map<String, Map<String, Long>> uniqueNameMap
- = diseaseConfigFacade.getUniqueNameConfigMap(hospitalId, null, uniqueNameList);
- for (Map.Entry<String, List<PushBaseDTO>> entry : retMap.entrySet()) {
- if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
- entry.getValue().forEach(item -> {
- if (uniqueNameMap.get(item.getName()) != null) {
- item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
- }
- });
- }
- }
- }
- }
- return retMap;
- }
- @DataProvider("retOperation")
- public List<PushBaseDTO> retOperation(@InvokeParameter("pushDTO") PushDTO data,
- @InvokeParameter("hospitalId") Long hospitalId) {
- //手术
- List<PushBaseDTO> retOperation = new ArrayList<>();
- if (ListUtil.isNotEmpty(data.getOperations())) {
- retOperation = data.getOperations();
- List<String> uniqueNameList = retOperation.stream()
- .map(i -> i.getName())
- .collect(Collectors.toList());
- Map<String, Map<String, Long>> uniqueNameMap
- = operationConfigFacade.getUniqueNameConfigMap(hospitalId, null, uniqueNameList);
- if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
- retOperation.forEach(item -> {
- if (uniqueNameMap.get(item.getName()) != null) {
- item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
- }
- });
- }
- }
- return retOperation;
- }
- @DataProvider("retDrug")
- public List<PushBaseDTO> retDrug(@InvokeParameter("pushDTO") PushDTO data,
- @InvokeParameter("hospitalId") Long hospitalId) {
- //药品
- List<PushBaseDTO> retDrug = new ArrayList<>();
- if (ListUtil.isNotEmpty(data.getMedicines())) {
- retDrug = data.getMedicines();
- List<String> uniqueNameList = retDrug.stream()
- .map(i -> i.getName())
- .collect(Collectors.toList());
- Map<String, Map<String, Long>> uniqueNameMap
- = drugConfigFacade.getUniqueNameConfigMap(hospitalId, null, uniqueNameList);
- if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
- retDrug.forEach(item -> {
- if (uniqueNameMap.get(item.getName()) != null) {
- item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
- }
- });
- }
- }
- return retDrug;
- }
- }
|