public GetLinkableInterpretationsResponse GetLinkableInterpretations(GetLinkableInterpretationsRequest request)
        {
            Platform.CheckForNullReference(request, "request");
            Platform.CheckMemberIsSet(request.InterpretationStepRef, "InterpretationStepRef");

            var step = this.PersistenceContext.Load <InterpretationStep>(request.InterpretationStepRef, EntityLoadFlags.Proxy);

            var broker         = this.PersistenceContext.GetBroker <IReportingWorklistItemBroker>();
            var candidateSteps = broker.GetLinkedInterpretationCandidates(step, this.CurrentUserStaff);

            // if any candidate steps were found, need to convert them to worklist items
            IList <ReportingWorklistItem> worklistItems;

            if (candidateSteps.Count > 0)
            {
                // because CLR does not support List co-variance, need to map to a list of the more general type (this seems silly!)
                var reportingSteps = CollectionUtils.Map <InterpretationStep, ReportingProcedureStep>(candidateSteps, s => s);
                worklistItems = broker.GetWorklistItems(reportingSteps, WorklistItemField.ProcedureStepScheduledStartTime);
            }
            else
            {
                worklistItems = new List <ReportingWorklistItem>();
            }

            var assembler = new ReportingWorkflowAssembler();

            return(new GetLinkableInterpretationsResponse(
                       CollectionUtils.Map <ReportingWorklistItem, ReportingWorklistItemSummary>(
                           worklistItems,
                           item => assembler.CreateWorklistItemSummary(item, this.PersistenceContext))));
        }
		public QueryWorklistResponse<ReportingWorklistItemSummary> QueryWorklist(QueryWorklistRequest request)
		{
			var assembler = new ReportingWorkflowAssembler();

			return QueryWorklistHelper<ReportingWorklistItem, ReportingWorklistItemSummary>(
				request,
				item => assembler.CreateWorklistItemSummary(item, this.PersistenceContext));
		}
        public QueryWorklistResponse <ReportingWorklistItemSummary> QueryWorklist(QueryWorklistRequest request)
        {
            var assembler = new ReportingWorkflowAssembler();

            return(QueryWorklistHelper <ReportingWorklistItem, ReportingWorklistItemSummary>(
                       request,
                       item => assembler.CreateWorklistItemSummary(item, this.PersistenceContext)));
        }
		public TextQueryResponse<ReportingWorklistItemSummary> SearchWorklists(WorklistItemTextQueryRequest request)
		{
			var assembler = new ReportingWorkflowAssembler();
			var broker = this.PersistenceContext.GetBroker<IReportingWorklistItemBroker>();

			return SearchHelper<ReportingWorklistItem, ReportingWorklistItemSummary>(
				request,
				broker,
				WorklistItemProjection.ReportingWorklistSearch,
				item => assembler.CreateWorklistItemSummary(item, this.PersistenceContext));
		}
示例#5
0
		public TextQueryResponse<ReportingWorklistItemSummary> SearchWorklists(WorklistItemTextQueryRequest request)
		{
			var procedureStepClass = request.ProcedureStepClassName == null ? null
				: ProcedureStep.GetSubClass(request.ProcedureStepClassName, PersistenceContext);

			// decide which broker/projection to use for searching
			var isReporting = typeof (ReportingProcedureStep).IsAssignableFrom(procedureStepClass);
			var broker = isReporting ?
				(IWorklistItemBroker)PersistenceContext.GetBroker<IReportingWorklistItemBroker>()
				: PersistenceContext.GetBroker<IProtocolWorklistItemBroker>();

			var projection = isReporting ? 
				WorklistItemProjection.ReportingWorklistSearch :
				WorklistItemProjection.ProtocolWorklistSearch;
			

			var assembler = new ReportingWorkflowAssembler();
			return SearchHelper<ReportingWorklistItem, ReportingWorklistItemSummary>(
				request,
				broker,
				projection,
				item => assembler.CreateWorklistItemSummary(item, PersistenceContext));
		}
        public TextQueryResponse <ReportingWorklistItemSummary> SearchWorklists(WorklistItemTextQueryRequest request)
        {
            var procedureStepClass = request.ProcedureStepClassName == null ? null
                                : ProcedureStep.GetSubClass(request.ProcedureStepClassName, PersistenceContext);

            // decide which broker/projection to use for searching
            var isReporting = typeof(ReportingProcedureStep).IsAssignableFrom(procedureStepClass);
            var broker      = isReporting ?
                              (IWorklistItemBroker)PersistenceContext.GetBroker <IReportingWorklistItemBroker>()
                                : PersistenceContext.GetBroker <IProtocolWorklistItemBroker>();

            var projection = isReporting ?
                             WorklistItemProjection.ReportingWorklistSearch :
                             WorklistItemProjection.ProtocolWorklistSearch;


            var assembler = new ReportingWorkflowAssembler();

            return(SearchHelper <ReportingWorklistItem, ReportingWorklistItemSummary>(
                       request,
                       broker,
                       projection,
                       item => assembler.CreateWorklistItemSummary(item, PersistenceContext)));
        }
示例#7
0
		public GetLinkableInterpretationsResponse GetLinkableInterpretations(GetLinkableInterpretationsRequest request)
		{
			Platform.CheckForNullReference(request, "request");
			Platform.CheckMemberIsSet(request.InterpretationStepRef, "InterpretationStepRef");

			var step = this.PersistenceContext.Load<InterpretationStep>(request.InterpretationStepRef, EntityLoadFlags.Proxy);

			var broker = this.PersistenceContext.GetBroker<IReportingWorklistItemBroker>();
			var candidateSteps = broker.GetLinkedInterpretationCandidates(step, this.CurrentUserStaff);

			// if any candidate steps were found, need to convert them to worklist items
			IList<ReportingWorklistItem> worklistItems;
			if (candidateSteps.Count > 0)
			{
				// because CLR does not support List co-variance, need to map to a list of the more general type (this seems silly!)
				var reportingSteps = CollectionUtils.Map<InterpretationStep, ReportingProcedureStep>(candidateSteps, s => s);
				worklistItems = broker.GetWorklistItems(reportingSteps, WorklistItemField.ProcedureStepScheduledStartTime);
			}
			else
			{
				worklistItems = new List<ReportingWorklistItem>();
			}

			var assembler = new ReportingWorkflowAssembler();
			return new GetLinkableInterpretationsResponse(
				CollectionUtils.Map<ReportingWorklistItem, ReportingWorklistItemSummary>(
					worklistItems,
					item => assembler.CreateWorklistItemSummary(item, this.PersistenceContext)));
		}