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));
        }
Exemple #2
0
        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");
        }