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 = (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); }
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)); }
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); }
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)); }
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)); }
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); }
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)); }
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"); }
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); }
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); }
protected override OperationData Capture(IServiceOperationRecorderContext recorderContext, IPersistenceContext persistenceContext) { return new SearchOperationData(Operations.PatientProfileSearch, ((TextQueryRequest)recorderContext.Request).TextQuery); }
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) { }
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); }
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); }
/// <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); }