@Transactional(readOnly = true)
  public void fetchDataForTransactionCreation(
      Consumer<Map<String, Object>> sender, Integer entityId) {

    List<Provider> providerList = providerService.findProvidersByEntity(entityId);
    List<Practice> practiceList = practiseDao.findAllByEntity(entityId);
    List<Payer> payerList =
        payerService.executeListQuery("select P from Payer P left join fetch P.plans");
    //				payerService.executeListQuery("select P from Payer P left join fetch P.plans");
    Map<String, Object> response = new HashMap<>();
    response.put("practiceList", practiceList);
    response.put("providerList", providerList);
    response.put("payerList", payerList);

    sender.accept(response);
  }
  @Override
  @Transactional(readOnly = true)
  public void refreshAllData(int start, int end, int entityId, ITransactionCallback callBack) {

    User user = SharedData.getSharedInstace().getCurrentUser();
    user = userService.findById(user.getId(), false);

    List<Transaction> transactions =
        new ArrayList<>(); // this.fetchAllByRole(start, end, entityId);
    Integer totalRows = service.getTotalTransactionCount(entityId);
    List<Payer> payerList = payerService.getAll();
    List<Practice> practiceList = new ArrayList<>(); // practiseService.fetchAllByRole();
    List<Provider> providerList = new ArrayList<>(); // providerService.fetchAllByRole();

    Map<String, Object> otherInfo = new HashMap<>();
    otherInfo.put("count", totalRows);
    callBack.refreshAllData(user, transactions, payerList, practiceList, providerList, otherInfo);
  }