Пример #1
0
		public ProtocolDetail CreateProtocolDetail(Protocol protocol, IPersistenceContext context)
		{
			var detail = new ProtocolDetail();
			var staffAssembler = new StaffAssembler();

			detail.ProtocolRef = protocol.GetRef();
			detail.Author = protocol.Author != null ? staffAssembler.CreateStaffSummary(protocol.Author, context) : null;
			detail.Supervisor = protocol.Supervisor != null ? staffAssembler.CreateStaffSummary(protocol.Supervisor, context) : null;
			detail.Status = EnumUtils.GetEnumValueInfo(protocol.Status, context);
			detail.Urgency = EnumUtils.GetEnumValueInfo(protocol.Urgency);
			detail.RejectReason = EnumUtils.GetEnumValueInfo(protocol.RejectReason);

			detail.Codes = protocol.Codes == null
				? new List<ProtocolCodeSummary>()
				: CollectionUtils.Map<ProtocolCode, ProtocolCodeSummary>(protocol.Codes, CreateProtocolCodeSummary);

			var procedureAssembler = new ProcedureAssembler();
			detail.Procedures = protocol.Procedures == null
				? new List<ProcedureDetail>()
				: CollectionUtils.Map<Procedure, ProcedureDetail>(
					protocol.Procedures,
					procedure => procedureAssembler.CreateProcedureDetail(procedure, delegate { return false; }, false, context));

			return detail;
		}
Пример #2
0
        private void SaveProtocolHelper(ProtocolAssignmentStep step, ProtocolDetail protocolDetail, List <OrderNoteDetail> notes, EntityRef supervisorRef, bool supervisorValidationRequired)
        {
            var protocol = step.Protocol;

            if (protocolDetail != null && supervisorRef != null)
            {
                throw new RequestValidationException("UpdateProtocolRequest should not specify both a ProtocolDetail and a SupervisorRef");
            }

            if (supervisorValidationRequired &&
                Thread.CurrentPrincipal.IsInRole(Extended.Common.AuthorityTokens.Workflow.Protocol.OmitSupervisor) == false &&
                protocol.Supervisor == null &&
                (protocolDetail == null || protocolDetail.Supervisor == null) &&
                supervisorRef == null)
            {
                throw new SupervisorValidationException();
            }

            if (protocolDetail != null)
            {
                var assembler = new ProtocolAssembler();
                assembler.UpdateProtocol(protocol, protocolDetail, this.PersistenceContext);
            }

            if (supervisorRef != null)
            {
                var supervisor = this.PersistenceContext.Load <Staff>(supervisorRef);
                protocol.Supervisor = supervisor;
            }

            if (notes != null)
            {
                UpdateOrderNotes(step.Procedure.Order, notes);
            }
        }
Пример #3
0
 public RejectProtocolRequest(
     EntityRef protocolAssignmentStepRef,
     ProtocolDetail protocol,
     List <OrderNoteDetail> orderNotes,
     EnumValueInfo rejectReason,
     OrderNoteDetail additionalCommentsNote)
     : base(protocolAssignmentStepRef, protocol, orderNotes)
 {
     this.RejectReason           = rejectReason;
     this.AdditionalCommentsNote = additionalCommentsNote;
 }
Пример #4
0
		public void UpdateProtocol(Protocol protocol, ProtocolDetail detail, IPersistenceContext context)
		{
			protocol.Urgency = EnumUtils.GetEnumValue<ProtocolUrgencyEnum>(detail.Urgency, context);

			// if detail specifies a supervisor use it otherwise retain previous supervisor (null or valued)
			protocol.Supervisor = detail.Supervisor != null ? context.Load<Staff>(detail.Supervisor.StaffRef) : protocol.Supervisor;

			protocol.Codes.Clear();
			foreach (var codeSummary in detail.Codes)
			{
				var code = context.Load<ProtocolCode>(codeSummary.ProtocolCodeRef, EntityLoadFlags.Proxy);
				protocol.Codes.Add(code);
			}
		}
Пример #5
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");
        }
Пример #6
0
 public AcceptProtocolRequest(EntityRef protocolAssignmentStepRef, ProtocolDetail protocol, List <OrderNoteDetail> orderNotes)
     : base(protocolAssignmentStepRef, protocol, orderNotes)
 {
 }
Пример #7
0
 public ProtocolEditorProcedurePlanSummaryTableItem(ProcedureDetail _rpDetail, ProtocolDetail _protocolDetail)
 {
     this._rpDetail       = _rpDetail;
     this._protocolDetail = _protocolDetail;
 }
Пример #8
0
 public SaveProtocolRequest(EntityRef protocolAssignmentStepRef, ProtocolDetail protocol, List <OrderNoteDetail> protocolNotes)
     : base(protocolAssignmentStepRef, protocol, protocolNotes)
 {
 }
Пример #9
0
 public GetProcedureProtocolResponse(ProtocolDetail protocolDetail)
 {
     ProtocolDetail = protocolDetail;
 }
 public SubmitProtocolForApprovalRequest(EntityRef protocolAssignmentStepRef, ProtocolDetail protocol, List <OrderNoteDetail> orderNotes)
     : base(protocolAssignmentStepRef, protocol, orderNotes)
 {
 }
 public ApproveResidentProtocolResponse(ProtocolDetail protocolDetail)
 {
     ProtocolDetail = protocolDetail;
 }
Пример #12
0
 public UpdateProtocolRequest(EntityRef protocolAssignmentStepRef, ProtocolDetail protocol, List <OrderNoteDetail> orderNotes)
 {
     this.ProtocolAssignmentStepRef = protocolAssignmentStepRef;
     this.Protocol   = protocol;
     this.OrderNotes = orderNotes;
 }
 public GetProtocolResponse(EntityRef protocolRef, ProtocolDetail protocolDetail)
 {
     ProtocolRef    = protocolRef;
     ProtocolDetail = protocolDetail;
 }