public ListProtocolGroupsForProcedureResponse ListProtocolGroupsForProcedure(ListProtocolGroupsForProcedureRequest request) { var assembler = new ProtocolAssembler(); var procedure = this.PersistenceContext.Load <Procedure>(request.ProcedureRef); var groups = CollectionUtils.Map <ProtocolGroup, ProtocolGroupSummary>( this.PersistenceContext.GetBroker <IProtocolGroupBroker>().FindAll(procedure.Type), assembler.CreateProtocolGroupSummary); var initialProtocolGroup = CollectionUtils.FirstElement(groups); return(new ListProtocolGroupsForProcedureResponse(groups, initialProtocolGroup)); }
private void LoadWorklistItem(IProtocollingWorkflowService service) { if (_worklistItem == null) { return; } var protocolRequest = new GetProcedureProtocolRequest(_worklistItem.ProcedureRef); var protocolResponse = service.GetProcedureProtocol(protocolRequest); _protocolDetail = protocolResponse.ProtocolDetail; var sb = new StringBuilder(); foreach (var procedure in _protocolDetail.Procedures) { sb.Append(ProcedureFormat.Format(procedure) + ", "); } _proceduresText = sb.ToString().TrimEnd(", ".ToCharArray()); // Load available protocol groups var request = new ListProtocolGroupsForProcedureRequest(_worklistItem.ProcedureRef); var response = service.ListProtocolGroupsForProcedure(request); _protocolGroupChoices = response.ProtocolGroups; _protocolGroup = GetInitialProtocolGroup(); RefreshAvailableProtocolCodes(_protocolDetail.Codes, service); // fill out selected item codes _selectedProtocolCodes.Items.Clear(); _selectedProtocolCodes.Items.AddRange(_protocolDetail.Codes); if (Thread.CurrentPrincipal.IsInRole(ClearCanvas.Ris.Application.Common.AuthorityTokens.Workflow.Protocol.SubmitForReview) && _protocolDetail.Supervisor == null) { // if this user has a default supervisor, retreive it, otherwise leave supervisor as null if (_rememberSupervisor && !String.IsNullOrEmpty(ProtocollingSettings.Default.SupervisorID)) { _protocolDetail.Supervisor = GetStaffByID(ProtocollingSettings.Default.SupervisorID); } } NotifyPropertyChanged("ProtocolGroupChoices"); NotifyPropertyChanged("ProtocolGroup"); NotifyPropertyChanged("SetDefaultProtocolGroupEnabled"); NotifyPropertyChanged("Urgency"); }