/// <summary>
        /// Applies a specialty type filter to the query.
        /// </summary>
        /// <param name="query">The query.</param>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public static IQueryable<Specialty> FilterBySpecialtyType(this IQueryable<Specialty> query, SearchSpecialtyRequest request)
        {
            if (!string.IsNullOrEmpty(request.SpecialtyType))
                query = query.Where(i => i.SpecialtyType == request.SpecialtyType);

            if (request.IncludeParentSpecialties && !request.IncludeSubSpecialties)
                query = query.Where(i => !i.ParentSpecialtyId.HasValue);
            else if (!request.IncludeParentSpecialties && request.IncludeSubSpecialties)
                query = query.Where(i => i.ParentSpecialtyId.HasValue);

            return query;
        }
        /// <summary>
        /// Filters the query by specialties in use.
        /// </summary>
        /// <param name="query">The query.</param>
        /// <param name="request">The request.</param>
        /// <param name="entityContext">The entity context.</param>
        /// <returns></returns>
        public static IQueryable<Specialty> FilterBySpecialtiesInUse(this IQueryable<Specialty> query, SearchSpecialtyRequest request, IEntityContext entityContext)
        {
            if (request.OnlyInUseSpecialties)
            {
                query = (from q in query
                         join ps in entityContext.EntitySet<ProviderSpecialty>() on q.Id equals ps.SpecialtyId
                         select q);
            }
            else
            {
                query = (from q in query
                         where q.IsEnabled
                         select q);
            }

            return query;
        }
 /// <summary>
 /// Applies a parent specialty Id filter to the query.
 /// </summary>
 /// <param name="query">The query.</param>
 /// <param name="request">The request.</param>
 /// <returns></returns>
 public static IQueryable<Specialty> FilterByParentSpecialtyId(this IQueryable<Specialty> query, SearchSpecialtyRequest request)
 {
     if (request.ParentSpecialtyId.HasValue)
         query = query.Where(i => i.ParentSpecialtyId == request.ParentSpecialtyId.Value);
     return query;
 }