public GetLinkableProtocolsResponse GetLinkableProtocols(GetLinkableProtocolsRequest request) { var step = this.PersistenceContext.Load <ProtocolAssignmentStep>(request.ProtocolAssignmentStepRef, EntityLoadFlags.Proxy); var broker = this.PersistenceContext.GetBroker <IProtocolWorklistItemBroker>(); var candidateSteps = broker.GetLinkedProtocolCandidates(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 protocolSteps = CollectionUtils.Map <ProtocolAssignmentStep, ProtocolProcedureStep>( candidateSteps, s => s); worklistItems = broker.GetWorklistItems(protocolSteps, WorklistItemField.ProcedureStepCreationTime); } else { worklistItems = new List <ReportingWorklistItem>(); } var assembler = new ReportingWorkflowAssembler(); return(new GetLinkableProtocolsResponse( 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 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))); }