예제 #1
0
            public IList <WorklistItem> FindProcedures(WorklistItemSearchCriteria[] where)
            {
                var p      = FilterProjection(_args.Projection, WorklistItemFieldLevel.Procedure);
                var qbArgs = new SearchQueryArgs((Type[])null, where, p);
                var query  = _owner.BuildProcedureSearchQuery(qbArgs);

                return(_owner.DoQuery(query, _worklistItemClass, _owner._procedureQueryBuilder, qbArgs));
            }
예제 #2
0
            public IList <WorklistItem> FindWorklistItems(WorklistItemSearchCriteria[] where)
            {
                var qbArgs = new SearchQueryArgs(_args.ProcedureStepClasses, where, _args.Projection);
                var query  = _owner.BuildWorklistSearchQuery(qbArgs);

                // query may be null to signal that it should not be performed
                return(query == null ? new List <WorklistItem>() :
                       _owner.DoQuery(query, _worklistItemClass, _owner.WorklistItemQueryBuilder, qbArgs));
            }
예제 #3
0
            public IList <WorklistItem> FindPatients(WorklistItemSearchCriteria[] where)
            {
                var p      = FilterProjection(_args.Projection, WorklistItemFieldLevel.Patient);
                var w      = GetPatientCriteria(where);
                var qbArgs = new SearchQueryArgs((Type[])null, w, p);
                var query  = _owner.BuildPatientSearchQuery(qbArgs);

                return(_owner.DoQuery(query, _worklistItemClass, _owner._patientQueryBuilder, qbArgs));
            }
예제 #4
0
        /// <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));
        }