private void FillCheckBox(Control pai, ViverMais.Model.EstabelecimentoSaude estabelecimento)
        {
            ITipoSolicitacaoEstabelecimento iTipoSolicitacaoEstabelecimento = Factory.GetInstance<ITipoSolicitacaoEstabelecimento>();

            if (pai is CheckBoxList)
            {
                CheckBoxList chkbox = (CheckBoxList)pai;
                //Enquanto Existir ListItem
                foreach (ListItem list in chkbox.Items)
                {
                    ParametroTipoSolicitacaoEstabelecimento tipo = iTipoSolicitacaoEstabelecimento.BuscarTipoSolicitacaoPorEstabelecimento<ParametroTipoSolicitacaoEstabelecimento>(estabelecimento.CNES, list.Value);
                    if (tipo != null)
                        list.Selected = true;
                    else
                        list.Selected = false;
                }
            }
        }
        protected void CarregaProfissionaisUnidade(ViverMais.Model.EstabelecimentoSaude unidade, string id_procedimento)
        {
            IList<ViverMais.Model.CBO> cbosDoProcedimento = Factory.GetInstance<ICBO>().ListarCBOsPorProcedimento<ViverMais.Model.CBO>(id_procedimento);
            IList<CBO> cbosDoVinculo = Factory.GetInstance<IVinculo>().BuscarCbosDaUnidade<CBO>(unidade.CNES).Distinct().ToList();
            List<ViverMais.Model.Profissional> profissionais = new List<ViverMais.Model.Profissional>();
            var intersecao = from result in cbosDoVinculo
                             where cbosDoProcedimento.Select(p => p.Codigo).ToList().Contains(result.Codigo)
                             select result;

            ddlProfissional.Items.Clear();
            ddlProfissional.Items.Add(new ListItem("Selecione...", "0"));
            //foreach (CBO cbo in intersecao)
            //{
            IList<ViverMais.Model.VinculoProfissional> vinculos = Factory.GetInstance<IVinculo>().BuscarVinculoPorCNES<ViverMais.Model.VinculoProfissional>(unidade.CNES).Where(p => p.Status == Convert.ToChar(VinculoProfissional.DescricaStatus.Ativo).ToString()).ToList().Distinct().ToList();
            var linqVinculos = from result in vinculos
                               where intersecao.Select(p => p.Codigo).ToList().Contains(result.CBO.Codigo)
                               select result;

            if (vinculos.Count != 0)
            {
                foreach (VinculoProfissional vinculo in linqVinculos)
                {
                    //Verifica Se o Profissional já existe na Lista de Profissionais
                    if (profissionais.Where(p => p.CPF == vinculo.Profissional.CPF).ToList().Count == 0)
                    {
                        ViverMais.Model.Profissional profissional = Factory.GetInstance<IProfissional>().BuscarPorCodigo<ViverMais.Model.Profissional>(vinculo.Profissional.CPF);
                        if (profissional != null)
                            profissionais.Add(profissional);
                    }
                }
            }
            //}

            profissionais = profissionais.OrderBy(p => p.Nome).ToList();
            foreach (ViverMais.Model.Profissional prof in profissionais)
                ddlProfissional.Items.Add(new ListItem(prof.Nome.ToUpper(), prof.CPF));

            //ddlProfissional.Items.Add(new ListItem("Selecione...", "0"));

            //foreach (ViverMais.Model.VinculoProfissional f in vinculo)
            //{
            //    id_profissional = f.Profissional.CPF;
            //    IViverMaisServiceFacade iProfissional = Factory.GetInstance<IViverMaisServiceFacade>();
            //    ViverMais.Model.Profissional profissional = iProfissional.BuscarPorCodigo<ViverMais.Model.Profissional>(id_profissional);
            //    if (profissional != null)
            //    {
            //        ddlProfissional.Items.Add(new ListItem(profissional.Nome, profissional.CPF));
            //    }
            //}

            //ddlProfissional.Items.Clear();
            //ddlProfissional.Items.Add(new ListItem("Selecione...", "0"));
            //List<ViverMais.Model.Profissional> profissionais = new List<ViverMais.Model.Profissional>();
            //foreach (VinculoProfissional vinculo in vinculos)
            //{
            //    //Verifica Se o Profissional já existe na Lista de Profissionais
            //    if (ddlProfissional.Items.FindByValue(vinculo.Profissional.CPF) == null)
            //    {
            //        ViverMais.Model.Profissional profissional = Factory.GetInstance<IProfissional>().BuscarPorCodigo<ViverMais.Model.Profissional>(vinculo.Profissional.CPF);
            //        if (profissional != null)
            //            profissionais.Add(profissional);
            //    }
            //}
        }
        protected void CarregaProfissionaisUnidade(ViverMais.Model.EstabelecimentoSaude unidade, string id_procedimento)
        {
            Usuario usuario = (Usuario)Session["Usuario"];
            List<ViverMais.Model.Profissional> profissionais = new List<ViverMais.Model.Profissional>();
            if (usuario.Perfis.Where(p => p.Modulo.Codigo == Modulo.ATENDIMENTO && p.PerfilProfissionalSaude).ToList().Count != 0)
            {
                ddlProfissional.Items.Clear();
                ddlProfissional.Items.Add(new ListItem("Selecione...", "0"));
                ViverMais.Model.Profissional profissional = Factory.GetInstance<IProfissional>().BuscarPorCodigo<ViverMais.Model.Profissional>(usuario.ProfissionalSaude.CPF);
                if (profissional != null)
                    profissionais.Add(profissional);
                foreach (ViverMais.Model.Profissional prof in profissionais)
                    ddlProfissional.Items.Add(new ListItem(prof.Nome.ToUpper(), prof.CPF));

            }
            else
            {
                IList<ViverMais.Model.CBO> cbosDoProcedimento = Factory.GetInstance<ICBO>().ListarCBOsPorProcedimento<ViverMais.Model.CBO>(id_procedimento);
                IList<CBO> cbosDoVinculo = Factory.GetInstance<IVinculo>().BuscarCbosDaUnidade<CBO>(unidade.CNES).Distinct().ToList();
                var intersecao = from result in cbosDoVinculo
                                 where cbosDoProcedimento.Select(p => p.Codigo).ToList().Contains(result.Codigo)
                                 select result;

                ddlProfissional.Items.Clear();
                ddlProfissional.Items.Add(new ListItem("Selecione...", "0"));
                IList<ViverMais.Model.VinculoProfissional> vinculos = Factory.GetInstance<IVinculo>().BuscarVinculoPorCNES<ViverMais.Model.VinculoProfissional>(unidade.CNES).Where(p => p.Status == Convert.ToChar(VinculoProfissional.DescricaStatus.Ativo).ToString()).ToList().Distinct().ToList();
                var linqVinculos = from result in vinculos
                                   where intersecao.Select(p => p.Codigo).ToList().Contains(result.CBO.Codigo)
                                   select result;

                if (vinculos.Count != 0)
                {
                    foreach (VinculoProfissional vinculo in linqVinculos)
                    {
                        //Verifica Se o Profissional já existe na Lista de Profissionais
                        if (profissionais.Where(p => p.CPF == vinculo.Profissional.CPF).ToList().Count == 0)
                        {
                            ViverMais.Model.Profissional profissional = Factory.GetInstance<IProfissional>().BuscarPorCodigo<ViverMais.Model.Profissional>(vinculo.Profissional.CPF);
                            if (profissional != null)
                                profissionais.Add(profissional);
                        }
                    }
                }

                profissionais = profissionais.OrderBy(p => p.Nome).ToList();
                foreach (ViverMais.Model.Profissional prof in profissionais)
                    ddlProfissional.Items.Add(new ListItem(prof.Nome.ToUpper(), prof.CPF));
            }
        }
 public RetiradaDeLote(ViverMais.Model.Vacina vacina, FabricanteVacina fabricante, string lote, DateTime validade)
 {
     this.vacina = vacina;
     this.fabricante = fabricante;
     this.lote = lote;
     this.validade = validade;
 }
        private void SaveCheckBox(Control pai, ViverMais.Model.EstabelecimentoSaude estabelecimento)
        {
            IAgendamentoServiceFacade iAgendamentoServiceFacade = Factory.GetInstance<IAgendamentoServiceFacade>();
            ITipoSolicitacaoEstabelecimento iTipoSolicitacaoEstabelecimento = Factory.GetInstance<ITipoSolicitacaoEstabelecimento>();

            if (pai is CheckBoxList)
            {
                CheckBoxList chkbox = (CheckBoxList)pai;
                //Enquanto Existir ListItem
                foreach(ListItem list in chkbox.Items)
                {
                    //Busca para ver se já existe na base
                    ParametroTipoSolicitacaoEstabelecimento tipo = iTipoSolicitacaoEstabelecimento.BuscarTipoSolicitacaoPorEstabelecimento<ParametroTipoSolicitacaoEstabelecimento>(estabelecimento.CNES, list.Value);
                    if (tipo == null)//Se não existir
                    {
                        if (list.Selected)//Selecionou?
                        {
                            tipo = new ParametroTipoSolicitacaoEstabelecimento();
                            tipo.TipoSolicitacao = list.Value;
                            tipo.CodigoEstabelecimento = estabelecimento.CNES;
                            //parametro.EstabelecimentoSaude = estabelecimento;
                            iAgendamentoServiceFacade.Inserir(tipo);
                            Factory.GetInstance<IAgendamentoServiceFacade>().Inserir(new LogAgendamento(DateTime.Now,((Usuario)Session["Usuario"]).Codigo,23,"Tipo Estabelecimento :"+tipo.CodigoEstabelecimento+" CodigoEstabelecimento:"+tipo.CodigoEstabelecimento));
                        }
                    }
                    else//Se já existir
                    {
                        if (!list.Selected)//Está Desmarcado?
                        {
                            Factory.GetInstance<IAgendamentoServiceFacade>().Inserir(new LogAgendamento(DateTime.Now, ((Usuario)Session["Usuario"]).Codigo, 24, "Tipo Estabelecimento :" + tipo.CodigoEstabelecimento + " CodigoEstabelecimento:" + tipo.CodigoEstabelecimento));
                            iAgendamentoServiceFacade.Deletar(tipo);//Deleto da base
                        }
                    }
                }
            }
        }
 private void CarregaDispensacoes(ViverMais.Model.Paciente paciente)
 {
     IList<SalaVacina> salasvinculadas = Factory.GetInstance<ISalaVacina>().BuscarPorUsuario<SalaVacina, Usuario>((Usuario)Session["Usuario"], false, false);
     IList<DispensacaoVacina> dispensacoespaciente = Factory.GetInstance<IDispensacao>().BuscarPorPaciente<DispensacaoVacina, SalaVacina>(paciente.Codigo, salasvinculadas);
     Session["dispensacoesVacinaPaciente"] = dispensacoespaciente;
 }
 private void CadastrarEndereco(Endereco endereco, ViverMais.Model.Paciente paciente)
 {
     Factory.GetInstance<IEndereco>().CadastrarEndereco<ViverMais.Model.Endereco, ViverMais.Model.Paciente>(endereco, paciente);
 }