public List<AgendaDAO> getAgendamentos(String dataInicio, String dataFinal) {
        EntityManager em = conectar();
        try {
            String consulta;
            Query q;
            if (dataInicio != null) {
                consulta = "SELECT a FROM Agenda a WHERE dataHora BETWEEN :dataInicio AND :dataFinal";
                q = em.createQuery(consulta).setParameter("dataInicio", dataInicio).setParameter("dataFinal", dataFinal);
            } else {
                consulta = "SELECT a FROM Agenda a";
                q = em.createQuery(consulta);
            }
            List<Agenda> a = q.getResultList();
            List<AgendaDAO> agenda = new ArrayList<AgendaDAO>();
            for (Agenda ag : a) {
                AgendaPK apk = ag.getAgendaPK();
                agenda.add(new AgendaDAO(apk.getDataHora(), apk.getIdPaciente(), apk.getIdMedico(), apk.getIdExame(),
                        ag.getObs(), ag.getResultado()));
            }
            return agenda;
        } catch (Exception e) {
            if (em.getTransaction().isActive()) {
                em.getTransaction().rollback();
            }
            return null;
        }
    }