/// <summary> /// Initializes this object. /// </summary> /// <param name="procedureStepClasses"></param> /// <param name="criteria"></param> /// <param name="projection"></param> /// <param name="page"></param> protected void Initialize(Type[] procedureStepClasses, WorklistItemSearchCriteria[] criteria, WorklistItemProjection projection, SearchResultPage page) { this.Criteria = criteria; this.Projection = projection; this.Page = page; this.ProcedureStepClasses = procedureStepClasses; }
/// <summary> /// Constructor. /// </summary> public WorklistItemTextQueryHelper( IWorklistItemBroker broker, Converter <TDomainItem, TSummary> summaryAssembler, Type procedureStepClass, WorklistItemProjection projection, WorklistItemTextQueryOptions options, IPersistenceContext context) : this(broker, summaryAssembler, new [] { procedureStepClass }, projection, options, context) { }
/// <summary> /// Constructor. /// </summary> public WorklistItemTextQueryHelper( IWorklistItemBroker broker, Converter <TDomainItem, TSummary> summaryAssembler, Type[] procedureStepClasses, WorklistItemProjection projection, WorklistItemTextQueryOptions options, IPersistenceContext context) : base(null, summaryAssembler, null, null) { _broker = broker; _procedureStepClasses = procedureStepClasses; _projection = projection; _options = options; _context = context; }
/// <summary> /// Helper method that implements the logic for performing searches on worklists. /// </summary> /// <typeparam name="TItem"></typeparam> /// <typeparam name="TSummary"></typeparam> /// <param name="request"></param> /// <param name="broker"></param> /// <param name="projection"></param> /// <param name="mapCallback"></param> /// <returns></returns> protected TextQueryResponse <TSummary> SearchHelper <TItem, TSummary>( WorklistItemTextQueryRequest request, IWorklistItemBroker broker, WorklistItemProjection projection, Converter <TItem, TSummary> mapCallback) where TSummary : DataContractBase where TItem : WorklistItem { var procedureStepClass = request.ProcedureStepClassName == null ? null : ProcedureStep.GetSubClass(request.ProcedureStepClassName, PersistenceContext); var helper = new WorklistItemTextQueryHelper <TItem, TSummary>(broker, mapCallback, procedureStepClass, projection, request.Options, PersistenceContext); return(helper.Query(request)); }
/// <summary> /// Maps the specified set of protocolling steps to a corresponding set of reporting worklist items. /// </summary> /// <param name="protocollingSteps"></param> /// <param name="timeField"></param> /// <returns></returns> public IList <ReportingWorklistItem> GetWorklistItems(IEnumerable <ProtocolProcedureStep> protocollingSteps, WorklistItemField timeField) { var worklistItemCriteria = CollectionUtils.Map(protocollingSteps, delegate(ProtocolProcedureStep ps) { var criteria = new ReportingWorklistItemSearchCriteria(); criteria.ProcedureStep.EqualTo(ps); return(criteria); }).ToArray(); var projection = WorklistItemProjection.GetDefaultProjection(timeField); var args = new SearchQueryArgs(typeof(ProtocolProcedureStep), worklistItemCriteria, projection); var query = this.BuildWorklistSearchQuery(args); return(DoQuery <ReportingWorklistItem>(query, this.WorklistItemQueryBuilder, args)); }
/// <summary> /// Constructor. /// </summary> /// <param name="procedureStepClasses"></param> /// <param name="criteria"></param> /// <param name="projection"></param> /// <param name="page"></param> public QueryBuilderArgs(Type[] procedureStepClasses, WorklistItemSearchCriteria[] criteria, WorklistItemProjection projection, SearchResultPage page) { Initialize(procedureStepClasses, criteria, projection, page); }
/// <summary> /// Constructor. /// </summary> /// <param name="procedureStepClasses"></param> /// <param name="criteria"></param> /// <param name="projection"></param> public SearchQueryArgs(Type[] procedureStepClasses, WorklistItemSearchCriteria[] criteria, WorklistItemProjection projection) : base(procedureStepClasses, criteria, projection, null) { }
/// <summary> /// Gets the HQL select list for the specified projection. /// </summary> /// <param name="projection"></param> /// <returns></returns> private static HqlSelect[] GetWorklistItemSelects(WorklistItemProjection projection) { return CollectionUtils.Map<WorklistItemField, HqlSelect>(projection.Fields, MapWorklistItemFieldToHqlSelect).ToArray(); }
/// <summary> /// Gets the HQL select list for the specified projection. /// </summary> /// <param name="projection"></param> /// <returns></returns> private static HqlSelect[] GetWorklistItemSelects(WorklistItemProjection projection) { return(CollectionUtils.Map <WorklistItemField, HqlSelect>(projection.Fields, MapWorklistItemFieldToHqlSelect).ToArray()); }
protected override WorklistItemProjection GetProjectionCore(WorklistItemField timeField) { return(WorklistItemProjection.GetDefaultProjection(timeField)); }
/// <summary> /// Gets a new projection that represents the specified projection filtered to the specified level. /// </summary> /// <param name="projection"></param> /// <param name="level"></param> /// <returns></returns> private static WorklistItemProjection FilterProjection(WorklistItemProjection projection, WorklistItemFieldLevel level) { return(projection.Filter(f => level.Includes(f.Level))); }
/// <summary> /// Gets the HQL for debugging purposes only. /// </summary> /// <param name="procedureStepClasses"></param> /// <param name="criteria"></param> /// <param name="projection"></param> /// <param name="page"></param> /// <returns></returns> public string GetWorklistItemsHql(Type[] procedureStepClasses, WorklistItemSearchCriteria[] criteria, WorklistItemProjection projection, SearchResultPage page) { var args = new QueryBuilderArgs(procedureStepClasses, criteria, projection, page); var query = BuildWorklistQuery(args); return(query.Hql); }
/// <summary> /// Gets the set of items matching the specified criteria, returned as tuples shaped by the specified projection. /// </summary> public IList <object[]> GetWorklistItems(Type[] procedureStepClasses, WorklistItemSearchCriteria[] criteria, WorklistItemProjection projection, SearchResultPage page) { var args = new QueryBuilderArgs(procedureStepClasses, criteria, projection, page); var query = BuildWorklistQuery(args); return(CollectionUtils.Map(ExecuteHql <object[]>(query), (object[] tuple) => this.WorklistItemQueryBuilder.PreProcessResult(tuple, args))); }