private static OperationData Capture(DiscontinueModalityProcedureStepsRequest request, IPersistenceContext persistenceContext) { 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.Discontinue, patientProfile, order, procedures); }
public DiscontinueModalityProcedureStepsResponse DiscontinueModalityProcedureSteps(DiscontinueModalityProcedureStepsRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.ModalityProcedureSteps, "ModalityProcedureSteps"); // load the set of mps var modalitySteps = CollectionUtils.Map<EntityRef, ModalityProcedureStep>( request.ModalityProcedureSteps, mpsRef => this.PersistenceContext.Load<ModalityProcedureStep>(mpsRef)); foreach (var step in modalitySteps) { var op = new DiscontinueModalityProcedureStepOperation(); op.Execute(step, request.DiscontinuedTime, new PersistentWorkflow(this.PersistenceContext)); // If discontinuing the procedure step caused the parent procedure to be discontinued, // create an HL7 event. if (step.Procedure.IsTerminated) LogicalHL7Event.ProcedureCancelled.EnqueueEvents(step.Procedure); } this.PersistenceContext.SynchState(); var assembler = new ProcedurePlanAssembler(); return new DiscontinueModalityProcedureStepsResponse( assembler.CreateProcedurePlanSummary(modalitySteps[0].Procedure.Order, this.PersistenceContext)); }