Problema ao obter valor de DataTable

Ola, caros, tudo bem?

Bem, no projeto tenho três entidades, Receptor, Doador e Atendimento.
Visto isso, tenho um relacionamento de muitos para um de Receptor e Doador com atendimento.

Visto isso, o usuário cadastrará indistintamente doadores e receptores, porém quando cadastrar um atendimento, submeterá vários doadores e um receptor, e embora, haverá momentos em que o receptor poderá novamente ser atendido, por isso, muitos para um.

Meu problema pareceu simples ao meu ver.
Preciso ao clicar sobre um link oferecer ao usuário uma dataTable, que já está emplementada em uma janela modal, que por sua vez contem uma lista vinda de um banco, ao clicar sobre um registro em um selectOneRadio para o caso do receptor, pois será apenas um e para o caso de um Doador, um selectManyCheckbox pois serão varios.
Em links diferentes, em incluirAtendimento.xhtml.

Não estou conseguindo submeter os valores nos selectOneRadio e selectManyCheckbox.
Na minha tentativa, usei um WRAPPER,é o mesmo que DTO, usando-o para receber a lista, e quando está selecionado, será(pelo menos deveria) ser submetido.
O meu problema está na visão, creio eu, que não passa o valor, aparentemente.
Obrigado desde já pela ajuda.

Atendimento Bean

package br.com.agets.visao;

import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;

import br.com.agets.dominio.Atendimento;
import br.com.agets.dominio.Doador;
import br.com.agets.dominio.Receptor;
import br.com.agets.dominio.TipoHemoderivado;
import br.com.agets.dominio.TipoSanguineo;
import br.com.agets.negocio.AtendimentoService;
import br.com.agets.negocio.DoadorService;
import br.com.agets.negocio.ReceptorService;
import br.com.agets.negocio.RegraNegocioException;

@ManagedBean(name = "atendimentoBean")
@SessionScoped
public class AtendimentoBean {

	private Atendimento atendimentoEdicao;
	private Receptor receptorSelecionado;
	private List<Atendimento> atendimentos = new ArrayList<Atendimento>();
	private List<SelectItem> tiposHemoderivados;
	private List<SelectItem> tiposSanguineos;

	private List<DoadoresWrapper> ListaDoadores;
	private List<ReceptoresWrapper> ListaReceptores;

	private List<Doador> doadoresSelecionados;

	public String inicializar() {
		this.atendimentoEdicao = new Atendimento();
		this.tiposHemoderivados = null;
		this.tiposSanguineos = null;
		this.atendimentos = null;
		this.ListaReceptores = null;
		this.ListaDoadores = null;
		return "incluirAtendimento2";
	}

	public void salvar(ActionEvent event) {
		FacesContext context = FacesContext.getCurrentInstance();
		try {
			for (ReceptoresWrapper wrapper : ListaReceptores) {
				if (wrapper.isSelecionado()) {
					atendimentoEdicao.setReceptor(wrapper.getReceptor());
				}
				List<Doador> doadores = new ArrayList<Doador>();
				for (DoadoresWrapper wrapper2 : ListaDoadores) {
					if (wrapper2.isSelecionado()) {
						doadores.add(wrapper2.getDoador());
					}
				}
				new AtendimentoService().salvar(this.atendimentoEdicao);
				atendimentoEdicao.setDoadores(doadores);
				FacesMessage msg = new FacesMessage(
						"Atendimento Cadastrado com sucesso!");
				msg.setSeverity(FacesMessage.SEVERITY_INFO);
				context.addMessage(null, msg);
				inicializar();
			}
		} catch (RegraNegocioException e) {
			context.addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_ERROR, e
							.getMessage(), e.getMessage()));
		} catch (Exception e) {
			e.printStackTrace();
			FacesMessage msg = new FacesMessage(
					"Erro inesperado ao cadastrar atendimento! "
							+ e.getMessage());
			msg.setSeverity(FacesMessage.SEVERITY_ERROR);
			context.addMessage(null, msg);
		}
	}

	public List<String> sugerirNomeReceptor(Object event) {
		return new ReceptorService().pesquisarReceptores(event.toString());

	}

	public void excluir() {
		FacesContext context = FacesContext.getCurrentInstance();
		try {
			new AtendimentoService().excluir(this.atendimentoEdicao);
			this.atendimentos.remove(this.atendimentoEdicao);
			FacesMessage msg = new FacesMessage(
					"Atendimento exclu�do com sucesso!");
			msg.setSeverity(FacesMessage.SEVERITY_INFO);
			context.addMessage(null, msg);
		} catch (RegraNegocioException e) {
			context.addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_ERROR, e
							.getMessage(), e.getMessage()));
		} catch (Exception e) {
			e.printStackTrace();
			FacesMessage msg = new FacesMessage(
					"Erro inesperado ao excluir atendimento!");
			msg.setSeverity(FacesMessage.SEVERITY_ERROR);
			context.addMessage(null, msg);
		}
	}

	public void selecionar(Receptor receptor) {
		this.receptorSelecionado = receptor;
	}

	public List<ReceptoresWrapper> getListaReceptores() {
		if (this.ListaReceptores == null) {
			List<Receptor> receptores = new ReceptorService().listarTodos();
			this.ListaReceptores = new ArrayList<ReceptoresWrapper>();
			if (receptores != null && !receptores.isEmpty()) {
				for (Receptor receptor : receptores) {
					ReceptoresWrapper receptorWrapper = new ReceptoresWrapper();
					receptorWrapper.setReceptor(receptor);
					ListaReceptores.add(receptorWrapper);
				}
			}
		}
		return this.ListaReceptores;

	}

	public List<DoadoresWrapper> getListaDoadores() {
		if (this.ListaDoadores == null) {
			List<Doador> doadores = new DoadorService().listarTodos();
			this.ListaDoadores = new ArrayList<DoadoresWrapper>();
			if (doadores != null && !doadores.isEmpty()) {
				for (Doador doador : doadores) {
					DoadoresWrapper doadorWrapper = new DoadoresWrapper();
					doadorWrapper.setDoador(doador);
					ListaDoadores.add(doadorWrapper);
				}
			}
		}
		//
		return this.ListaDoadores;

	}

	public List<SelectItem> getTiposHemoderivados() {
		if (this.tiposHemoderivados == null) {
			this.tiposHemoderivados = new ArrayList<SelectItem>();
			this.tiposHemoderivados.add(new SelectItem(null, "Selecione"));
			for (TipoHemoderivado tipos : TipoHemoderivado.values()) {
				this.tiposHemoderivados.add(new SelectItem(tipos.toString()));
			}
		}
		return tiposHemoderivados;
	}

	public List<SelectItem> getTiposSanguineos() {
		if (this.tiposSanguineos == null) {
			this.tiposSanguineos = new ArrayList<SelectItem>();
			this.tiposSanguineos.add(new SelectItem(null, "Selecione"));
			for (TipoSanguineo tipos : TipoSanguineo.values()) {
				this.tiposSanguineos.add(new SelectItem(tipos.toString()));
			}
		}
		return tiposSanguineos;
	}

	public Atendimento getAtendimentoEdicao() {
		return atendimentoEdicao;
	}

	public void setAtendimentoEdicao(Atendimento atendimentoEdicao) {
		this.atendimentoEdicao = atendimentoEdicao;
	}

	public Receptor getReceptorSelecionado() {
		return receptorSelecionado;
	}

	public void setReceptorSelecionado(Receptor receptorSelecionado) {
		this.receptorSelecionado = receptorSelecionado;
	}

	public List<Atendimento> getAtendimentos() {
		return atendimentos;
	}

	public void setAtendimentos(List<Atendimento> atendimentos) {
		this.atendimentos = atendimentos;
	}

	public List<Doador> getDoadoresSelecionados() {
		return doadoresSelecionados;
	}

	public void setDoadoresSelecionados(List<Doador> doadoresSelecionados) {
		this.doadoresSelecionados = doadoresSelecionados;
	}

	public void setTiposHemoderivados(List<SelectItem> tiposHemoderivados) {
		this.tiposHemoderivados = tiposHemoderivados;
	}

	public void setTiposSanguineos(List<SelectItem> tiposSanguineos) {
		this.tiposSanguineos = tiposSanguineos;
	}

	public void setListaDoadores(List<DoadoresWrapper> listaDoadores) {
		ListaDoadores = listaDoadores;
	}

}

ModalReceptor

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:a4j="http://richfaces.org/a4j"
	xmlns:rich="http://richfaces.org/rich">
<h:head>
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta>
</h:head>

<h:body>
	<f:view>
		<h:form>
			<rich:popupPanel id="modalPanelReceptor" modal="false" width="600"
				moveable="false">
				<f:facet name="header">
					<h:outputText value="Defina o Receptor"></h:outputText>
				</f:facet>

				<f:facet name="controls">
					<h:outputLink value="#" style="text-decoration:none;"
						onclick="#{rich:component('modalPanelReceptor')}.hide(); return false;">X</h:outputLink>
				</f:facet>

				<rich:dataTable value="#{atendimentoBean.listaReceptores}"
					id="table" var="_receptor" style="width: 100%;" rowKeyVar="ind"
					noDataLabel="Não existem receptores cadastrados.">

					<rich:column width="10%">
						<f:facet name="header">
							<h:outputText value="Nome do Receptor" />
						</f:facet>
						<h:outputText value="#{_receptor.receptor.nomeReceptor}"></h:outputText>
					</rich:column>
					
					<h:selectManyCheckbox></h:selectManyCheckbox>

					<rich:column width="25%">
						<f:facet name="header">
							<h:outputText value="Tipo sanguíneo do receptor" />
						</f:facet>
						<h:outputText value="#{_receptor.receptor.tipoSanguineo}"></h:outputText>
					</rich:column>

					<rich:column width="25%">
						<f:facet name="header">
							<h:outputText value="Tipo Hemoderivado do receptor" />
						</f:facet>
						<h:outputText value="#{_receptor.receptor.tipoHemo}"></h:outputText>
					</rich:column>

					<rich:column width="20%">
						<f:facet name="header">
							<h:outputText value="selecione" />
						</f:facet>
						<h:selectOneRadio id="myRadio#{Ind}"
							value="#{atendimentoBean.atendimentoEdicao.receptor}">
							<f:selectItem
								value="#{atendimentoBean.atendimentoEdicao.receptor}"
								itemValue="#{atendimentoBean.atendimentoEdicao.receptor}"
								itemLabel="#{atendimentoBean.atendimentoEdicao.receptor}"></f:selectItem>
						</h:selectOneRadio>
					</rich:column>
				</rich:dataTable>
			</rich:popupPanel>
			<br />
		&lt;/h:form&gt;
	&lt;/f:view&gt;
&lt;/h:body&gt;
&lt;/html&gt;

Modal Doador

&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:a4j="http://richfaces.org/a4j"
	xmlns:rich="http://richfaces.org/rich"&gt;
&lt;h:head&gt;
	&lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&gt;&lt;/meta&gt;
&lt;/h:head&gt;

&lt;h:body&gt;
	&lt;f:view&gt;
		&lt;h:form&gt;
			&lt;rich:popupPanel id="modalPanelDoador" modal="false" width="600"
				moveable="false"&gt;
				&lt;f:facet name="header"&gt;
					&lt;h:outputText value="Defina o Receptor"&gt;&lt;/h:outputText&gt;
				&lt;/f:facet&gt;

				&lt;f:facet name="controls"&gt;
					&lt;h:outputLink value="#" style="text-decoration:none;"
						onclick="#{rich:component('modalPanelDoador')}.hide(); return false;"&gt;X&lt;/h:outputLink&gt;
				&lt;/f:facet&gt;

				&lt;rich:dataTable value="#{atendimentoBean.listaDoadores}" 
					 var="_doador" style="width: 100%;"
					noDataLabel="Não existem receptores cadastrados."&gt;

					&lt;rich:column width="40%"&gt;
						&lt;f:facet name="header"&gt;
							&lt;h:outputText value=" " /&gt;
						&lt;/f:facet&gt;
						&lt;h:selectBooleanCheckbox value="#{_doador.selecionado}" /&gt;
					&lt;/rich:column&gt;

					&lt;rich:column width="40%"&gt;
						&lt;f:facet name="header"&gt;
							&lt;h:outputText value="Nome do Doador" /&gt;
						&lt;/f:facet&gt;
						&lt;h:outputText value="#{_doador.doador.nomeDoador}"&gt;&lt;/h:outputText&gt;
					&lt;/rich:column&gt;

					&lt;rich:column width="25%"&gt;
						&lt;f:facet name="header"&gt;
							&lt;h:outputText value="Tipo sanguíneo do doador" /&gt;
						&lt;/f:facet&gt;
						&lt;h:outputText value="#{_doador.doador.tipoSanguineo}"&gt;&lt;/h:outputText&gt;
					&lt;/rich:column&gt;

					&lt;rich:column width="25%"&gt;
						&lt;f:facet name="header"&gt;
							&lt;h:outputText value="Tipo Hemoderivado do doador" /&gt;
						&lt;/f:facet&gt;
						&lt;h:outputText value="#{_doador.doador.tipoHemo}"&gt;&lt;/h:outputText&gt;
					&lt;/rich:column&gt;
				&lt;/rich:dataTable&gt;
				&lt;a4j:commandButton value="Confirmar" 
					action="#{atendimentoBean.selecionarDoadores}" /&gt;
				&lt;h:commandButton value="Voltar" immediate="true" action="menu" /&gt;
			&lt;/rich:popupPanel&gt;
			<br />

		&lt;/h:form&gt;
	&lt;/f:view&gt;
&lt;/h:body&gt;
&lt;/html&gt;

Não sei se é relevante, mas este é o wrapper, o doador e receptor são basicamente iguais.

package br.com.agets.visao;

import br.com.agets.dominio.Doador;

public class DoadoresWrapper {
	
	private boolean selecionado;
	private Doador doador;
	
	
	
	public boolean isSelecionado() {
		return selecionado;
	}
	public void setSelecionado(boolean selecionado) {
		this.selecionado = selecionado;
	}
	public Doador getDoador() {
		return doador;
	}
	public void setDoador(Doador doador) {
		this.doador = doador;
	}

}