protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var request = (WorklistItemTextQueryRequest) recorderContext.Request;
				return request.UseAdvancedSearch ?
					new SearchOperationData(Operations.WorklistSearch, request.SearchFields)
					: new SearchOperationData(Operations.WorklistSearch, request.TextQuery);
			}
Exemple #2
0
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var response       = (LoadPatientProfileForEditResponse)recorderContext.Response;
                var patientProfile = persistenceContext.Load <PatientProfile>(response.PatientProfileRef, EntityLoadFlags.None);

                return(new OperationData(Operations.OpenForUpdate, patientProfile));
            }
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request = (CancelReportingStepRequest)recorderContext.Request;
                var rps     = persistenceContext.Load <ReportingProcedureStep>(request.ReportingStepRef, EntityLoadFlags.None);

                return(ReportingWorkflowServiceRecorder.Capture(Operations.Discarded, rps));
            }
			protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var response = (LoadPatientProfileForEditResponse)recorderContext.Response;
				var patientProfile = persistenceContext.Load<PatientProfile>(response.PatientProfileRef, EntityLoadFlags.None);

				return new OperationData(Operations.OpenForUpdate, patientProfile);
			}
Exemple #5
0
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request        = (UnmergeOrderRequest)recorderContext.Request;
                var order          = persistenceContext.Load <Order>(request.OrderRef, EntityLoadFlags.None);
                var patientProfile = order.Procedures.First().PatientProfile;                   // choose patient profile from one procedure?

                return(new OperationData(Operations.Unmerge, patientProfile, order));
            }
            protected override bool ShouldCapture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request = (SaveReportRequest)recorderContext.Request;
                var rps     = persistenceContext.Load <ReportingProcedureStep>(request.ReportingStepRef, EntityLoadFlags.None);

                // only relevant for the main report, not for addendums (i.e. we are still in P status)
                return(rps.ReportPart.Report.Status == ReportStatus.P && base.ShouldCapture(recorderContext, persistenceContext));
            }
Exemple #7
0
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var response       = (GetOrderRequisitionForEditResponse)recorderContext.Response;
                var patientProfile = persistenceContext.Load <PatientProfile>(response.Requisition.Patient.PatientProfileRef, EntityLoadFlags.None);
                var order          = persistenceContext.Load <Order>(response.Requisition.OrderRef, EntityLoadFlags.None);

                return(new OperationData(Operations.OpenForModifyOrReplace, patientProfile, order));
            }
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request = (WorklistItemTextQueryRequest)recorderContext.Request;

                return(request.UseAdvancedSearch ?
                       new SearchOperationData(Operations.WorklistSearch, request.SearchFields)
                                        : new SearchOperationData(Operations.WorklistSearch, request.TextQuery));
            }
			protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var response = (GetOrderRequisitionForEditResponse)recorderContext.Response;
				var patientProfile = persistenceContext.Load<PatientProfile>(response.Requisition.Patient.PatientProfileRef, EntityLoadFlags.None);
				var order = persistenceContext.Load<Order>(response.Requisition.OrderRef, EntityLoadFlags.None);

				return new OperationData(Operations.OpenForModifyOrReplace, patientProfile, order);
			}
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request        = (CompleteOrderDocumentationRequest)recorderContext.Request;
                var order          = persistenceContext.Load <Order>(request.OrderRef, EntityLoadFlags.None);
                var patientProfile = order.Procedures.First().PatientProfile;

                return(new OperationData(Operations.DocumentationComplete, patientProfile, order));
            }
			protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				if (recorderContext.Request is DiscontinueModalityProcedureStepsRequest)
					return Capture((DiscontinueModalityProcedureStepsRequest) recorderContext.Request, persistenceContext);
				if (recorderContext.Request is DiscontinueModalityPerformedProcedureStepRequest)
					return Capture((DiscontinueModalityPerformedProcedureStepRequest)recorderContext.Request, persistenceContext);
				throw new InvalidOperationException("Cannot audit this request");
			}
			protected override bool ShouldCapture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var request = (SaveReportRequest)recorderContext.Request;
				var rps = persistenceContext.Load<ReportingProcedureStep>(request.ReportingStepRef, EntityLoadFlags.None);

				// only relevant for the main report, not for addendums (i.e. we are still in P status)
				return rps.ReportPart.Report.Status == ReportStatus.P && base.ShouldCapture(recorderContext, persistenceContext);
			}
        void IServiceOperationRecorder.PostCommit(IServiceOperationRecorderContext recorderContext)
        {
            if (_capturedData == null)
            {
                return;
            }

            Write(recorderContext);
        }
Exemple #14
0
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request        = (MergeOrderRequest)recorderContext.Request;
                var destOrder      = persistenceContext.Load <Order>(request.DestinationOrderRef, EntityLoadFlags.None);
                var patientProfile = destOrder.Procedures.First().PatientProfile;                       // choose patient profile from one procedure?
                var sourceOrders   = request.SourceOrderRefs.Select(r => persistenceContext.Load <Order>(r, EntityLoadFlags.None));

                return(new MergeOrderOperationData(Operations.Merge, patientProfile, destOrder, sourceOrders));
            }
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request = (StartModalityProcedureStepsRequest)recorderContext.Request;

                var procedures     = request.ModalityProcedureSteps.Select(r => persistenceContext.Load <ModalityProcedureStep>(r, EntityLoadFlags.None).Procedure).ToList();
                var order          = procedures.First().Order;
                var patientProfile = procedures.First().PatientProfile;

                return(new OperationData(Operations.Start, patientProfile, order, procedures));
            }
Exemple #16
0
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var response       = (UpdatePatientProfileResponse)recorderContext.Response;
                var patientProfile = persistenceContext.Load <PatientProfile>(response.PatientProfile.PatientProfileRef, EntityLoadFlags.None);

                IncludeChangeSetFor(patientProfile);
                IncludeChangeSetFor(patientProfile.Patient);

                return(new OperationData(Operations.Update, patientProfile));
            }
Exemple #17
0
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request = (PlaceOrderRequest)recorderContext.Request;
                var profile = persistenceContext.Load <PatientProfile>(request.Requisition.Patient.PatientProfileRef, EntityLoadFlags.None);

                var response = (PlaceOrderResponse)recorderContext.Response;
                var order    = persistenceContext.Load <Order>(response.Order.OrderRef, EntityLoadFlags.None);

                return(new OperationData(Operations.New, profile, order));
            }
			protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var request = (StartModalityProcedureStepsRequest) recorderContext.Request;

				var procedures = request.ModalityProcedureSteps.Select(r => persistenceContext.Load<ModalityProcedureStep>(r, EntityLoadFlags.None).Procedure).ToList();
				var order = procedures.First().Order;
				var patientProfile = procedures.First().PatientProfile;

				return new OperationData(Operations.Start, patientProfile, order, procedures);
			}
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request        = (PrintReportRequest)recorderContext.Request;
                var report         = persistenceContext.Load <Report>(request.ReportRef, EntityLoadFlags.None);
                var procedures     = report.Procedures;
                var order          = procedures.First().Order;
                var patientProfile = procedures.First().PatientProfile;

                return(new OperationData(Operations.Printed, patientProfile, order, procedures));
            }
			protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var response = (UpdatePatientProfileResponse)recorderContext.Response;
				var patientProfile = persistenceContext.Load<PatientProfile>(response.PatientProfile.PatientProfileRef, EntityLoadFlags.None);

				IncludeChangeSetFor(patientProfile);
				IncludeChangeSetFor(patientProfile.Patient);

				return new OperationData(Operations.Update, patientProfile);
			}
			protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var request = (PlaceOrderRequest)recorderContext.Request;
				var profile = persistenceContext.Load<PatientProfile>(request.Requisition.Patient.PatientProfileRef, EntityLoadFlags.None);
				
				var response = (PlaceOrderResponse) recorderContext.Response;
				var order = persistenceContext.Load<Order>(response.Order.OrderRef, EntityLoadFlags.None);

				return new OperationData(Operations.New, profile, order);
			}
Exemple #22
0
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request = (ModifyOrderRequest)recorderContext.Request;
                var profile = persistenceContext.Load <PatientProfile>(request.Requisition.Patient.PatientProfileRef, EntityLoadFlags.None);
                var order   = persistenceContext.Load <Order>(request.Requisition.OrderRef, EntityLoadFlags.None);

                IncludeChangeSetFor(order);
                IncludeChangeSetFor(typeof(Procedure));

                return(new OperationData(Operations.Modify, profile, order));
            }
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request = (CompleteModalityPerformedProcedureStepRequest)recorderContext.Request;

                var mpps           = persistenceContext.Load <ModalityPerformedProcedureStep>(request.Mpps.ModalityPerformendProcedureStepRef, EntityLoadFlags.None);
                var procedures     = mpps.Activities.Select(a => a.Downcast <ModalityProcedureStep>().Procedure).ToList();
                var order          = procedures.First().Order;
                var patientProfile = procedures.First().PatientProfile;

                return(new OperationData(Operations.End, patientProfile, order, procedures));
            }
Exemple #24
0
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request        = (CompleteOrderDocumentationRequest)recorderContext.Request;
                var order          = persistenceContext.Load <Order>(request.OrderRef, EntityLoadFlags.None);
                var patientProfile = order.Procedures.First().PatientProfile;

                Platform.Log(LogLevel.Debug, "!!!!!!!!!!!!!!!!!!Documentation Complete for triggered for order!!!!!!!!!!!!!!!!!!");
                Platform.Log(LogLevel.Debug, order.OID);

                return(new OperationData(Operations.DocumentationComplete, patientProfile, order));
            }
			protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var request = (CompleteModalityPerformedProcedureStepRequest)recorderContext.Request;

				var mpps = persistenceContext.Load<ModalityPerformedProcedureStep>(request.Mpps.ModalityPerformendProcedureStepRef, EntityLoadFlags.None);
				var procedures = mpps.Activities.Select(a => a.Downcast<ModalityProcedureStep>().Procedure).ToList();
				var order = procedures.First().Order;
				var patientProfile = procedures.First().PatientProfile;

				return new OperationData(Operations.End, patientProfile, order, procedures);
			}
			protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var request = (SaveReportRequest)recorderContext.Request;
				var rps = persistenceContext.Load<ReportingProcedureStep>(request.ReportingStepRef, EntityLoadFlags.None);

				// report will not have changed to F status yet, since it is not yet published
				// if we are in P status, this is a verification of the main report
				// if we are in F status, this is a verification of an addendum, hence a correction
				var operation = rps.ReportPart.Report.Status == ReportStatus.P ? Operations.Verified : Operations.Corrected;
				return ReportingWorkflowServiceRecorder.Capture(operation, rps);
			}
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request = (SaveReportRequest)recorderContext.Request;
                var rps     = persistenceContext.Load <ReportingProcedureStep>(request.ReportingStepRef, EntityLoadFlags.None);

                // report will not have changed to F status yet, since it is not yet published
                // if we are in P status, this is a verification of the main report
                // if we are in F status, this is a verification of an addendum, hence a correction
                var operation = rps.ReportPart.Report.Status == ReportStatus.P ? Operations.Verified : Operations.Corrected;

                return(ReportingWorkflowServiceRecorder.Capture(operation, rps));
            }
 protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
 {
     if (recorderContext.Request is DiscontinueModalityProcedureStepsRequest)
     {
         return(Capture((DiscontinueModalityProcedureStepsRequest)recorderContext.Request, persistenceContext));
     }
     if (recorderContext.Request is DiscontinueModalityPerformedProcedureStepRequest)
     {
         return(Capture((DiscontinueModalityPerformedProcedureStepRequest)recorderContext.Request, persistenceContext));
     }
     throw new InvalidOperationException("Cannot audit this request");
 }
Exemple #29
0
            protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request = (PlaceOrderRequest)recorderContext.Request;
                var profile = persistenceContext.Load <PatientProfile>(request.Requisition.Patient.PatientProfileRef, EntityLoadFlags.None);

                var response = (PlaceOrderResponse)recorderContext.Response;
                var order    = persistenceContext.Load <Order>(response.Order.OrderRef, EntityLoadFlags.None);

                Platform.Log(LogLevel.Debug, "!!!!!!!!!!!!!!!!!!New Order Trigger!!!!!!!!!!!!!!!!!!");
                Platform.Log(LogLevel.Debug, order.AccessionNumber);



                return(new OperationData(Operations.New, profile, order));
            }
		public void PostCommit(IServiceOperationRecorderContext recorderContext)
		{
			var request = (ConfigurationDocumentRequestBase)recorderContext.Request;

			var data = new OperationData
						{
							Operation = "SetConfigurationDocument",
							DocumentName = request.DocumentKey.DocumentName,
							DocumentVersion = request.DocumentKey.Version.ToString(),
							DocumentUser = request.DocumentKey.User ?? "{application}",
							DocumentInstanceKey = StringUtilities.NullIfEmpty(request.DocumentKey.InstanceKey) ?? "{default}"
						};


			var xml = JsmlSerializer.Serialize(data, "Audit");
			recorderContext.Write(data.Operation, xml);
		}
        public void PostCommit(IServiceOperationRecorderContext recorderContext)
        {
            var request = (ConfigurationDocumentRequestBase)recorderContext.Request;

            var data = new OperationData
            {
                Operation           = "SetConfigurationDocument",
                DocumentName        = request.DocumentKey.DocumentName,
                DocumentVersion     = request.DocumentKey.Version.ToString(),
                DocumentUser        = request.DocumentKey.User ?? "{application}",
                DocumentInstanceKey = StringUtilities.NullIfEmpty(request.DocumentKey.InstanceKey) ?? "{default}"
            };


            var xml = JsmlSerializer.Serialize(data, "Audit");

            recorderContext.Write(data.Operation, xml);
        }
        void IServiceOperationRecorder.PreCommit(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
        {
            if (!ShouldCapture(recorderContext, persistenceContext))
            {
                return;
            }

            _capturedData = Capture(recorderContext, persistenceContext);

            // if we need to capture the change-set, it is important that we do so now,
            // while the persistence context is still alive, rather than during the
            // post-commit phase, where we can get lazy loading exceptions
            if (_changeSetIncludes.Any() && recorderContext.ChangeSet != null)
            {
                var changeSetData   = DefaultEntityChangeSetRecorder.WriteChangeSet(_capturedData.Operation, recorderContext.ChangeSet.Changes);
                var includedActions = from action in changeSetData.Actions
                                      where action.Type == "Update" && _changeSetIncludes.Contains(action.OID) || _changeSetIncludes.Contains(action.Class)
                                      select(object) action;
                _capturedData.ChangeSet = new ChangeSetData {
                    Actions = includedActions.ToList()
                };
            }
        }
		/// <summary>
		/// Called to capture data about the current invocation.
		/// </summary>
		/// <param name="recorderContext"></param>
		/// <param name="persistenceContext"></param>
		/// <returns>An <see cref="OperationData"/> contract instance, or a subclass of it.</returns>
		protected abstract OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext);
		private void Write(IServiceOperationRecorderContext recorderContext)
		{
			var xml = JsmlSerializer.Serialize(_capturedData, "Audit");
			recorderContext.Write(_capturedData.Operation, xml);
		}
        private void Write(IServiceOperationRecorderContext recorderContext)
        {
            var xml = JsmlSerializer.Serialize(_capturedData, "Audit");

            recorderContext.Write(_capturedData.Operation, xml);
        }
			protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				return new SearchOperationData(Operations.PatientProfileSearch, ((TextQueryRequest)recorderContext.Request).TextQuery);
			}
 /// <summary>
 /// Called to capture data about the current invocation.
 /// </summary>
 /// <param name="recorderContext"></param>
 /// <param name="persistenceContext"></param>
 /// <returns>An <see cref="OperationData"/> contract instance, or a subclass of it.</returns>
 protected abstract OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext);
			protected override bool ShouldCapture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var request = (MergeOrderRequest)recorderContext.Request;
				return !(request.DryRun || request.ValidationOnly);
			}
		void IServiceOperationRecorder.PostCommit(IServiceOperationRecorderContext recorderContext)
		{
			if (_capturedData == null)
				return;

			Write(recorderContext);
		}
		void IServiceOperationRecorder.PreCommit(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
		{
			if (!ShouldCapture(recorderContext, persistenceContext))
				return;

			_capturedData = Capture(recorderContext, persistenceContext);

			// if we need to capture the change-set, it is important that we do so now,
 			// while the persistence context is still alive, rather than during the 
			// post-commit phase, where we can get lazy loading exceptions
			if (_changeSetIncludes.Any() && recorderContext.ChangeSet != null)
			{
				var changeSetData = DefaultEntityChangeSetRecorder.WriteChangeSet(_capturedData.Operation, recorderContext.ChangeSet.Changes);
				var includedActions = from action in changeSetData.Actions
									  where action.Type == "Update" && _changeSetIncludes.Contains(action.OID) || _changeSetIncludes.Contains(action.Class)
									  select (object)action;
				_capturedData.ChangeSet = new ChangeSetData { Actions = includedActions.ToList() };
			}
		}
			protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var request = (UnmergeOrderRequest)recorderContext.Request;
				var order = persistenceContext.Load<Order>(request.OrderRef, EntityLoadFlags.None);
				var patientProfile = order.Procedures.First().PatientProfile;	// choose patient profile from one procedure?
				return new OperationData(Operations.Unmerge, patientProfile, order);
			}
			protected override bool ShouldCapture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var request = (UnmergeOrderRequest)recorderContext.Request;
				return !request.DryRun;
			}
			protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var request = (MergeOrderRequest)recorderContext.Request;
				var destOrder = persistenceContext.Load<Order>(request.DestinationOrderRef, EntityLoadFlags.None);
				var patientProfile = destOrder.Procedures.First().PatientProfile;	// choose patient profile from one procedure?
				var sourceOrders = request.SourceOrderRefs.Select(r => persistenceContext.Load<Order>(r, EntityLoadFlags.None));

				return new MergeOrderOperationData(Operations.Merge, patientProfile, destOrder, sourceOrders);
			}
 protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
 {
     return(new SearchOperationData(Operations.PatientProfileSearch, ((TextQueryRequest)recorderContext.Request).TextQuery));
 }
		/// <summary>
		/// Determines if data should be captured for the current invocation.
		/// </summary>
		/// <param name="recorderContext"></param>
		/// <param name="persistenceContext"></param>
		/// <returns>True if data should be captured, otherwise false.</returns>
		protected virtual bool ShouldCapture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
		{
			return true;
		}
 public void PreCommit(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContent)
 {
 }
Exemple #47
0
            protected override bool ShouldCapture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request = (MergeOrderRequest)recorderContext.Request;

                return(!(request.DryRun || request.ValidationOnly));
            }
			protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var request = (ModifyOrderRequest)recorderContext.Request;
				var profile = persistenceContext.Load<PatientProfile>(request.Requisition.Patient.PatientProfileRef, EntityLoadFlags.None);
				var order = persistenceContext.Load<Order>(request.Requisition.OrderRef, EntityLoadFlags.None);

				IncludeChangeSetFor(order);
				IncludeChangeSetFor(typeof(Procedure));

				return new OperationData(Operations.Modify, profile, order);
			}
Exemple #49
0
            protected override bool ShouldCapture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
            {
                var request = (UnmergeOrderRequest)recorderContext.Request;

                return(!request.DryRun);
            }
			protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var request = (CancelReportingStepRequest)recorderContext.Request;
				var rps = persistenceContext.Load<ReportingProcedureStep>(request.ReportingStepRef, EntityLoadFlags.None);
				return ReportingWorkflowServiceRecorder.Capture(Operations.Discarded, rps);
			}
			protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var request = (PrintReportRequest)recorderContext.Request;
				var report = persistenceContext.Load<Report>(request.ReportRef, EntityLoadFlags.None);
				var procedures = report.Procedures;
				var order = procedures.First().Order;
				var patientProfile = procedures.First().PatientProfile;

				return new OperationData(Operations.Printed, patientProfile, order, procedures);
			}
			protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
			{
				var request = (CompleteOrderDocumentationRequest)recorderContext.Request;
				var order = persistenceContext.Load<Order>(request.OrderRef, EntityLoadFlags.None);
				var patientProfile = order.Procedures.First().PatientProfile;

				return new OperationData(Operations.DocumentationComplete, patientProfile, order);
			}
		public void PreCommit(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContent)
		{
		}
 /// <summary>
 /// Determines if data should be captured for the current invocation.
 /// </summary>
 /// <param name="recorderContext"></param>
 /// <param name="persistenceContext"></param>
 /// <returns>True if data should be captured, otherwise false.</returns>
 protected virtual bool ShouldCapture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext)
 {
     return(true);
 }