@Override
  public List<Paciente> filtrarPaciente(Paciente paciente) throws SystemException {

    String sql = "SELECT p FROM Paciente p WHERE 1=1 ";
    StringBuffer buffer = new StringBuffer(sql);

    if (!StringUtil.ehBrancoOuNulo(paciente.getNomePaciente())) {
      buffer.append("AND upper(p.nomePaciente) like upper(:nome) ");
    }

    if (!StringUtil.ehBrancoOuNulo(paciente.getCodigoCarteira())) {
      buffer.append("AND p.codigoCarteira = :carteira ");
    }

    Query query = getSession().createQuery(buffer.toString());

    if (!StringUtil.ehBrancoOuNulo(paciente.getNomePaciente())) {
      query.setParameter("nome", "%" + paciente.getNomePaciente() + "%");
    }

    if (!StringUtil.ehBrancoOuNulo(paciente.getCodigoCarteira())) {
      query.setParameter("carteira", paciente.getCodigoCarteira());
    }

    return (List<Paciente>) query.list();
  }
  @Override
  public List<Paciente> filtrarPaciente(PacienteFilter pacienteFilter) throws SystemException {

    String sql = "SELECT p FROM Paciente p WHERE 1=1 ";
    StringBuffer buffer = new StringBuffer(sql);

    if (!StringUtil.ehBrancoOuNulo(pacienteFilter.getPaciente().getNomePaciente())) {
      buffer.append("AND upper(p.nomePaciente) like upper(:nome) ");
    }

    if (!StringUtil.ehBrancoOuNulo(pacienteFilter.getPaciente().getCodigoCarteira())) {
      buffer.append("AND p.codigoCarteira = :carteira ");
    }

    if (pacienteFilter.getDataInicial() != null && pacienteFilter.getDataFinal() == null) {
      buffer.append("AND p.dataAtualizacao = :dataInicio ");
    }

    if (pacienteFilter.getDataInicial() != null && pacienteFilter.getDataFinal() != null) {
      buffer.append("AND p.dataAtualizacao BETWEEN :dataInicio AND :dataFim ");
    }

    Query query = getSession().createQuery(buffer.toString());

    if (!StringUtil.ehBrancoOuNulo(pacienteFilter.getPaciente().getNomePaciente())) {
      query.setParameter("nome", "%" + pacienteFilter.getPaciente().getNomePaciente() + "%");
    }

    if (!StringUtil.ehBrancoOuNulo(pacienteFilter.getPaciente().getCodigoCarteira())) {
      query.setParameter("carteira", pacienteFilter.getPaciente().getCodigoCarteira());
    }

    if (pacienteFilter.getDataInicial() != null && pacienteFilter.getDataFinal() == null) {
      query.setParameter("dataInicio", pacienteFilter.getDataInicial());
    }

    if (pacienteFilter.getDataInicial() != null && pacienteFilter.getDataFinal() != null) {
      query.setParameter("dataInicio", pacienteFilter.getDataInicial());
      query.setParameter("dataFim", pacienteFilter.getDataFinal());
    }

    return (List<Paciente>) query.list();
  }
 public boolean isUsuarioUnicoo() throws SystemException {
   if (usuarioUnicoo != null && !StringUtil.ehBrancoOuNulo(usuarioUnicoo.getCodigoFuncionario())) {
     return true;
   }
   return false;
 }