/// <summary>
        /// Este método salva e atualiza a tabela de Procedimentos
        /// </summary>
        /// <param name="objProcedimentos"></param>
        /// <returns></returns>
        public Procedimentos SalvarProcedimentos(Procedimentos objProcedimentos)
        {
            ProcedimentosDados objProcedimentosDados = new ProcedimentosDados();

            objProcedimentos = objProcedimentosDados.Salvar(objProcedimentos);

            return objProcedimentos;
        }
        public Procedimentos Salvar(Procedimentos objProcedimentos)
        {
            SqlCommand comando = new SqlCommand();
            comando.Connection = base.Conectar();


            if (!objProcedimentos.CodigoProcedimento.HasValue)
            {
                comando.CommandText =
                    @"INSERT INTO Procedimentos (CodigoAssistido, TipoProcedimento, Descricao, StatusProcedimento,
                                  PessoaAtendente, DataMarcada, LaudoAtendente)
                    VALUES (@codigoAssistido, @tipoProcedimento, @descricao, @statusProcedimento, @pessoaAtendente,
                           @dataMarcada, @laudoAtendente)";
            }
            else
            {
                comando.CommandText =
                    @"UPDATE Procedimentos SET CodigoAssistido = @codigoAssistido, TipoProcedimento = @tipoProcedimento,
                             Descricao = @descricao, StatusProcedimento = @statusProcedimento,
                             PessoaAtendente = @pessoaAtendente, DataMarcada = @dataMarcada, LaudoAtendente = @laudoAtendente
                    WHERE (CodigoProcedimento = @codigoProcedimento)";
            }

            comando.CommandType = System.Data.CommandType.Text;
            if (objProcedimentos.CodigoProcedimento.HasValue)
            {
                SqlParameter parametroCodigo = new SqlParameter("@codigoProcedimento", objProcedimentos.CodigoProcedimento.Value);
                parametroCodigo.DbType = System.Data.DbType.Int32;
                comando.Parameters.Add(parametroCodigo);
            }

            SqlParameter parametroCodigoAssistido = new SqlParameter();
            if (objProcedimentos.CodigoAssistido.HasValue)
            {
                parametroCodigoAssistido.Value = objProcedimentos.CodigoAssistido.Value;
                parametroCodigoAssistido.ParameterName = "@codigoAssistido";
                parametroCodigoAssistido.DbType = System.Data.DbType.Int32;
            }
            else
            {
                parametroCodigoAssistido.Value = DBNull.Value;
                parametroCodigoAssistido.ParameterName = "@codigoAssistido";
                parametroCodigoAssistido.DbType = System.Data.DbType.Int32;
            }

            SqlParameter parametroTipoProcedimento = new SqlParameter("@tipoProcedimento", objProcedimentos.TipoProcedimento);
            parametroTipoProcedimento.DbType = System.Data.DbType.String;

            SqlParameter parametroDescricao = new SqlParameter("@descricao", objProcedimentos.Descricao);
            parametroDescricao.DbType = System.Data.DbType.String;

            SqlParameter parametroStatusProcedimento = new SqlParameter("@statusProcedimento", objProcedimentos.StatusProcedimento);
            parametroStatusProcedimento.DbType = System.Data.DbType.String;

            SqlParameter parametroPessoaAtendente = new SqlParameter("@pessoaAtendente", objProcedimentos.PessoaAtendente);
            if (!String.IsNullOrEmpty(objProcedimentos.PessoaAtendente))
                parametroPessoaAtendente.Value = objProcedimentos.PessoaAtendente;
            else
                parametroPessoaAtendente.Value = DBNull.Value;

            SqlParameter parametroLaudoAtendente = new SqlParameter("@laudoAtendente", objProcedimentos.LaudoAtendente);
            if (!String.IsNullOrEmpty(objProcedimentos.LaudoAtendente))
                parametroLaudoAtendente.Value = objProcedimentos.LaudoAtendente;
            else
                parametroLaudoAtendente.Value = DBNull.Value;

            SqlParameter parametroDataMarcada = new SqlParameter();
            if (objProcedimentos.DataMarcada.HasValue)
            {
                parametroDataMarcada.Value = objProcedimentos.DataMarcada.Value;
                parametroDataMarcada.ParameterName = "@dataMarcada";
                parametroDataMarcada.DbType = System.Data.DbType.DateTime;
            }
            else
            {
                parametroDataMarcada.Value = DBNull.Value;
                parametroDataMarcada.ParameterName = "@dataMarcada";
                parametroDataMarcada.DbType = System.Data.DbType.DateTime;
            }

            comando.Parameters.Add(parametroCodigoAssistido);
            comando.Parameters.Add(parametroTipoProcedimento);
            comando.Parameters.Add(parametroDescricao);
            comando.Parameters.Add(parametroStatusProcedimento);
            comando.Parameters.Add(parametroPessoaAtendente);
            comando.Parameters.Add(parametroDataMarcada);
            comando.Parameters.Add(parametroLaudoAtendente);

            comando.ExecuteNonQuery();

            if(!objProcedimentos.CodigoProcedimento.HasValue)
            {
                return ObterUltimo();
            }
            else
            {
                return objProcedimentos;
            }
        }
        /// <summary>
        /// Obter o ultimo procedimento inserido na tabela
        /// </summary>
        /// <returns></returns>
        public Procedimentos ObterUltimo()
        {
            SqlCommand comando = new SqlCommand(@"SELECT TOP (1) * FROM Procedimentos ORDER BY CodigoProcedimento DESC", base.Conectar());
            SqlDataReader leitorDados = comando.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            Procedimentos objProcedimentos = null;

            if (leitorDados.Read())
            {
                objProcedimentos = new Procedimentos();

                objProcedimentos.CodigoProcedimento = Convert.ToInt32(leitorDados["CodigoProcedimento"]);
                objProcedimentos.CodigoAssistido = Convert.ToInt32(leitorDados["CodigoAssistido"]);
                objProcedimentos.TipoProcedimento = leitorDados["TipoProcedimento"].ToString();
                objProcedimentos.Descricao = leitorDados["Descricao"].ToString();
                objProcedimentos.StatusProcedimento = leitorDados["StatusProcedimento"].ToString();
                objProcedimentos.PessoaAtendente = leitorDados["PessoaAtendente"].ToString();
                objProcedimentos.LaudoAtendente = leitorDados["LaudoAtendente"].ToString();

                if (leitorDados["DataMarcada"] != DBNull.Value)
                    objProcedimentos.DataMarcada = Convert.ToDateTime(leitorDados["DataMarcada"]);
            }

            leitorDados.Close();
            leitorDados.Dispose();

            return objProcedimentos;
        }
        /// <summary>
        /// Obtém o Procedimentos pelo Código do Procedimento
        /// </summary>
        /// <param name="codigoProcedimento"></param>
        /// <returns></returns>
        public Procedimentos Obter(int codigoProcedimento)
        {
            SqlCommand comando = new SqlCommand("select * from Procedimentos where CodigoProcedimento = @codigoProcedimento", base.Conectar());
            SqlParameter parametroCodigoProcedimento = new SqlParameter("@codigoProcedimento", codigoProcedimento);
            parametroCodigoProcedimento.DbType = System.Data.DbType.Int32;
            comando.Parameters.Add(parametroCodigoProcedimento);

            SqlDataReader leitorDados = comando.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            Procedimentos objProcedimentos = null;

            if (leitorDados.Read())
            {
                objProcedimentos = new Procedimentos();

                objProcedimentos.CodigoProcedimento = codigoProcedimento;
                objProcedimentos.CodigoAssistido = Convert.ToInt32(leitorDados["CodigoAssistido"]);
                objProcedimentos.TipoProcedimento = leitorDados["TipoProcedimento"].ToString();
                objProcedimentos.Descricao = leitorDados["Descricao"].ToString();
                objProcedimentos.StatusProcedimento = leitorDados["StatusProcedimento"].ToString();
                objProcedimentos.PessoaAtendente = leitorDados["PessoaAtendente"].ToString();
                objProcedimentos.LaudoAtendente = leitorDados["LaudoAtendente"].ToString();

                if (leitorDados["DataMarcada"] != DBNull.Value)
                    objProcedimentos.DataMarcada = Convert.ToDateTime(leitorDados["DataMarcada"]);

            }

            leitorDados.Close();
            leitorDados.Dispose();

            return objProcedimentos;
        }