public void create(InfoPaciente infoPaciente) {
        if (infoPaciente.getPypAdmAgendList() == null) {
            infoPaciente.setPypAdmAgendList(new ArrayList<PypAdmAgend>());
        }
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            InfoEntidades contratante = infoPaciente.getContratante();
            if (contratante != null) {
                contratante = em.getReference(contratante.getClass(), contratante.getId());
                infoPaciente.setContratante(contratante);
            }
            List<PypAdmAgend> attachedPypAdmAgendList = new ArrayList<PypAdmAgend>();
            for (PypAdmAgend pypAdmAgendListPypAdmAgendToAttach : infoPaciente.getPypAdmAgendList()) {
                pypAdmAgendListPypAdmAgendToAttach = em.getReference(pypAdmAgendListPypAdmAgendToAttach.getClass(), pypAdmAgendListPypAdmAgendToAttach.getId());
                attachedPypAdmAgendList.add(pypAdmAgendListPypAdmAgendToAttach);
            }
            infoPaciente.setPypAdmAgendList(attachedPypAdmAgendList);
            em.persist(infoPaciente);
            if (contratante != null) {
                contratante.getInfoPacienteList().add(infoPaciente);
                contratante = em.merge(contratante);
            }
            for (PypAdmAgend pypAdmAgendListPypAdmAgend : infoPaciente.getPypAdmAgendList()) {
                InfoPaciente oldIdPacienteOfPypAdmAgendListPypAdmAgend = pypAdmAgendListPypAdmAgend.getIdPaciente();
                pypAdmAgendListPypAdmAgend.setIdPaciente(infoPaciente);
                pypAdmAgendListPypAdmAgend = em.merge(pypAdmAgendListPypAdmAgend);
                if (oldIdPacienteOfPypAdmAgendListPypAdmAgend != null) {
                    oldIdPacienteOfPypAdmAgendListPypAdmAgend.getPypAdmAgendList().remove(pypAdmAgendListPypAdmAgend);
                    oldIdPacienteOfPypAdmAgendListPypAdmAgend = em.merge(oldIdPacienteOfPypAdmAgendListPypAdmAgend);
                }
            }
            em.getTransaction().commit();
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }