/// <summary>
        /// Elimina una consulta
        /// </summary>
        /// <param name="historialConsulta">La informacion del historialClinico</param>
        public void EliminarHistorialConsulta(HistorialesClinicos historialClinico)
        {
            try
            {
                // Query de actualización
                string query = @"UPDATE Pacientes.HistorialClinico
                                 SET estado = @estado
                                 WHERE idHistorialClinico = @idHistorialClinico";

                // Establecer la conexión
                sqlConnection.Open();

                // Crear el comando SQL
                SqlCommand sqlCommand = new SqlCommand(query, sqlConnection);

                // Establecer los valores de los parámetros

                sqlCommand.Parameters.AddWithValue("@estado", CambiarEstado(historialClinico.Estado));
                sqlCommand.Parameters.AddWithValue("@idHistorialClinico", historialClinico.IdHistorialClinico);

                // Ejecutar el comando de actualización
                sqlCommand.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                // Cerrar la conexión
                sqlConnection.Close();
            }
        }
        //Metodos
        /// <summary>
        /// Inserta un Historial.
        /// </summary>
        /// <param name="historialClinico">La información del historialClinico</param>
        public void CrearHistorialClinico(HistorialesClinicos historialClinico)
        {
            try
            {
                // Query de inserción
                string query = @"INSERT INTO Pacientes.HistorialClinico (identidadPaciente, fechaCreacion, observaciones, afecciones,estado)
                                 VALUES (@identidadPaciente, @fechaCreacion,@observaciones,@afecciones,@estado)";

                // Establecer la conexión
                sqlConnection.Open();

                // Crear el comando SQL
                SqlCommand sqlCommand = new SqlCommand(query, sqlConnection);

                // Establecer los valores de los parámetros
                sqlCommand.Parameters.AddWithValue("@identidadPaciente", historialClinico.identidadPaciente);
                sqlCommand.Parameters.AddWithValue("@fechaCreacion", historialClinico.FechaCreacion);
                sqlCommand.Parameters.AddWithValue("@observaciones", historialClinico.Observaciones);
                sqlCommand.Parameters.AddWithValue("@afecciones", historialClinico.Afecciones);
                sqlCommand.Parameters.AddWithValue("@estado", ObtenerEstado(historialClinico.Estado));

                // Ejecutar el comando de inserción
                sqlCommand.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                // Cerrar la conexión
                sqlConnection.Close();
            }
        }
        private void btnConsulta_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                // Implementar la búsqueda del historiallinico desde la clase HistorialClinico
                HistorialesClinicos loshistorialesClinicos = consulta.BuscarHistorialClinico2(Convert.ToInt32(txtHistorialClinico.Text));

                // Verificar si el historialClinico existe
                if (Convert.ToInt32(loshistorialesClinicos.IdHistorialClinico).ToString() == null)
                {
                    MessageBox.Show("El historialClinico no ha sido seleccionado. Favor verificar.");
                }
                else
                {
                    historialConsulta historialConsultas = new historialConsulta(Convert.ToInt32(loshistorialesClinicos.IdHistorialClinico));

                    historialConsultas.Show();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                Console.WriteLine(ex.Message);
            }
        }
        private void btnCita_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                // Implementar la búsqueda del historialClinico desde la clase HistorialClinico
                HistorialesClinicos elHistorial = consulta.BuscarHistorialClinico(txtIdentidadPaciente.Text);

                // Verificar si el historialClinico existe
                if (elHistorial.IdHistorialClinico == null)
                {
                    MessageBox.Show("El historial clínico no ha sido seleccionado. Favor verificar.");
                }
                else
                {
                    cita lacita = new cita(Convert.ToInt32(elHistorial.IdHistorialClinico));

                    lacita.Show();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                Console.WriteLine(ex.Message);
            }
        }
        private void dgvHistorialClinico_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            HistorialesClinicos HistorialSelecionado = dgvHistorialClinico.SelectedItem as HistorialesClinicos;

            consulta = consulta.BuscarHistorialClinico(HistorialSelecionado.identidadPaciente);

            ValoresFormularioDesdeObjeto();
            Inhabilitar();
        }
        /// <summary>
        /// Obtiene un detalle por su idHistorialclinico
        /// </summary>
        /// <param name="idHistorialClinico">El idHistorialClinico del HistorialClinico</param>
        /// <returns>Los datos del historialClinico</returns>
        public HistorialesClinicos BuscarHistorialClinico2(int idHistorialClinico)
        {
            HistorialesClinicos elhistorialClinico = new HistorialesClinicos();

            try
            {
                // Query de búsqueda
                string query = @"SELECT * FROM Pacientes.HistorialClinico
                                 WHERE idHistorialClinico = @idHistorialClinico";

                // Establecer la conexión
                sqlConnection.Open();

                // Crear el comando SQL
                SqlCommand sqlCommand = new SqlCommand(query, sqlConnection);

                // Establecer el valor del parámetro
                sqlCommand.Parameters.AddWithValue("@idHistorialClinico", idHistorialClinico);

                using (SqlDataReader rdr = sqlCommand.ExecuteReader())
                {
                    while (rdr.Read())
                    {
                        elhistorialClinico.IdHistorialClinico = Convert.ToInt32(rdr["idHistorialClinico"]);
                        elhistorialClinico.identidadPaciente  = rdr["identidadPaciente"].ToString();
                        elhistorialClinico.Afecciones         = rdr["afecciones"].ToString();
                        elhistorialClinico.Observaciones      = rdr["observaciones"].ToString();
                        elhistorialClinico.Estado             = (estadoClinico)Convert.ToInt32((rdr["estado"])); //probar
                    }
                }

                return(elhistorialClinico);
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                // Cerrar la conexión
                sqlConnection.Close();
            }
        }
        private void btnAgregar_Click(object sender, RoutedEventArgs e)
        {
            // Verificar que se ingresaron los valores requeridos
            if (VerificarValores())
            {
                try
                {
                    consulta = consulta.BuscarHistorialClinico(txtIdentidadPaciente.Text);

                    if (consulta.identidadPaciente == null)
                    {
                        // Obtener los valores para el historial
                        ObtenerValoresFormulario();

                        // Insertar los datos del historial
                        consulta.CrearHistorialClinico(consulta);

                        // Mensaje de inserción exitosa
                        MessageBox.Show("¡Datos insertados correctamente!");
                        LimpiarFormulario();
                    }
                    else
                    {
                        MessageBox.Show("Ya cuenta con un historial clínico");
                        ValoresFormularioDesdeObjeto();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ha ocurrido un error al momento de insertar el historialClinico...");
                    Console.WriteLine(ex.Message);
                }
                finally
                {
                    ObtenerHistorialClinico();
                }
            }
        }
        /// <summary>
        /// Modifica los datos del historial
        /// </summary>
        /// <param name="historialClinico">Informacion del historial</param>
        public void ModificarHistorialClinico(HistorialesClinicos historialClinico)
        {
            try
            {
                // Query de actualización
                string query = @"UPDATE Pacientes.HistorialClinico
                                 SET fechaCreacion = @fechaCreacion, afecciones = @afecciones, observaciones = @observaciones, identidadPaciente=@identidadPaciente ,estado= @estado
                                 WHERE idHistorialClinico = @idHistorialClinico";

                // Establecer la conexión
                sqlConnection.Open();

                // Crear el comando SQL
                SqlCommand sqlCommand = new SqlCommand(query, sqlConnection);

                // Establecer los valores de los parámetros

                sqlCommand.Parameters.AddWithValue("@idHistorialClinico", historialClinico.IdHistorialClinico);
                sqlCommand.Parameters.AddWithValue("@fechaCreacion", historialClinico.FechaCreacion);
                sqlCommand.Parameters.AddWithValue("@afecciones", historialClinico.Afecciones);
                sqlCommand.Parameters.AddWithValue("@observaciones", historialClinico.Observaciones);
                sqlCommand.Parameters.AddWithValue("@identidadPaciente", historialClinico.identidadPaciente);
                sqlCommand.Parameters.AddWithValue("@estado", ObtenerEstado(historialClinico.Estado));

                // Ejecutar el comando de actualización
                sqlCommand.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                // Cerrar la conexión
                sqlConnection.Close();
            }
        }