public CompleteModalityPerformedProcedureStepResponse CompleteModalityPerformedProcedureStep(CompleteModalityPerformedProcedureStepRequest request) { var mpps = this.PersistenceContext.Load <ModalityPerformedProcedureStep>(request.Mpps.ModalityPerformendProcedureStepRef); // update extended properties (should this be in an assembler?) ExtendedPropertyUtils.Update(mpps.ExtendedProperties, request.Mpps.ExtendedProperties); var dicomSeriesAssembler = new DicomSeriesAssembler(); dicomSeriesAssembler.SynchronizeDicomSeries(mpps, request.Mpps.DicomSeries, this.PersistenceContext); var op = new CompleteModalityPerformedProcedureStepOperation(); op.Execute(mpps, request.CompletedTime, new PersistentWorkflow(PersistenceContext)); this.PersistenceContext.SynchState(); // Drill back to order so we can refresh procedure plan var onePs = CollectionUtils.FirstElement(mpps.Activities).As <ProcedureStep>(); var planAssembler = new ProcedurePlanAssembler(); var stepAssembler = new ModalityPerformedProcedureStepAssembler(); return(new CompleteModalityPerformedProcedureStepResponse( planAssembler.CreateProcedurePlanSummary(onePs.Procedure.Order, this.PersistenceContext), stepAssembler.CreateModalityPerformedProcedureStepDetail(mpps, this.PersistenceContext))); }
public StartModalityProcedureStepsResponse StartModalityProcedureSteps(StartModalityProcedureStepsRequest 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)); var hasProcedureNotCheckedIn = CollectionUtils.Contains( modalitySteps, mps => mps.Procedure.IsPreCheckIn); if (hasProcedureNotCheckedIn) { throw new RequestValidationException(SR.ExceptionProcedureNotCheckedIn); } var op = new StartModalityProcedureStepsOperation(); var mpps = op.Execute(modalitySteps, request.StartTime, this.CurrentUserStaff, new PersistentWorkflow(PersistenceContext)); this.PersistenceContext.SynchState(); var procedurePlanAssembler = new ProcedurePlanAssembler(); var mppsAssembler = new ModalityPerformedProcedureStepAssembler(); return(new StartModalityProcedureStepsResponse( procedurePlanAssembler.CreateProcedurePlanSummary(modalitySteps[0].Procedure.Order, this.PersistenceContext), mppsAssembler.CreateModalityPerformedProcedureStepDetail(mpps, this.PersistenceContext))); }
public ListPerformedProcedureStepsResponse ListPerformedProcedureSteps(ListPerformedProcedureStepsRequest request) { var order = this.PersistenceContext.Load <Order>(request.OrderRef); var assembler = new ModalityPerformedProcedureStepAssembler(); var mppsSet = new HashedSet <PerformedStep>(); foreach (var procedure in order.Procedures) { foreach (var mps in procedure.ModalityProcedureSteps) { mppsSet.AddAll(mps.PerformedSteps); } } return(new ListPerformedProcedureStepsResponse( CollectionUtils.Map <ModalityPerformedProcedureStep, ModalityPerformedProcedureStepDetail>( mppsSet, mpps => assembler.CreateModalityPerformedProcedureStepDetail(mpps, this.PersistenceContext)))); }
public DiscontinueModalityPerformedProcedureStepResponse DiscontinueModalityPerformedProcedureStep(DiscontinueModalityPerformedProcedureStepRequest request) { var mpps = this.PersistenceContext.Load <ModalityPerformedProcedureStep>(request.Mpps.ModalityPerformendProcedureStepRef); // update extended properties (should this be in an assembler?) ExtendedPropertyUtils.Update(mpps.ExtendedProperties, request.Mpps.ExtendedProperties); var dicomSeriesAssembler = new DicomSeriesAssembler(); dicomSeriesAssembler.SynchronizeDicomSeries(mpps, request.Mpps.DicomSeries, this.PersistenceContext); var op = new DiscontinueModalityPerformedProcedureStepOperation(); op.Execute(mpps, request.DiscontinuedTime, new PersistentWorkflow(PersistenceContext)); this.PersistenceContext.SynchState(); // If discontinuing the MPPS caused any associated procedures to be discontinued, // create an HL7 event. foreach (var activity in mpps.Activities) { var procedure = activity.As <ProcedureStep>().Procedure; if (procedure.IsTerminated) { LogicalHL7Event.ProcedureCancelled.EnqueueEvents(procedure); } } // Drill back to order so we can refresh procedure plan var order = CollectionUtils.FirstElement(mpps.Activities).As <ProcedureStep>().Procedure.Order; var planAssembler = new ProcedurePlanAssembler(); var stepAssembler = new ModalityPerformedProcedureStepAssembler(); return(new DiscontinueModalityPerformedProcedureStepResponse( planAssembler.CreateProcedurePlanSummary(order, this.PersistenceContext), stepAssembler.CreateModalityPerformedProcedureStepDetail(mpps, this.PersistenceContext))); }
public ListPerformedProcedureStepsResponse ListPerformedProcedureSteps(ListPerformedProcedureStepsRequest request) { var order = this.PersistenceContext.Load<Order>(request.OrderRef); var assembler = new ModalityPerformedProcedureStepAssembler(); var mppsSet = new HashedSet<PerformedStep>(); foreach (var procedure in order.Procedures) { foreach (var mps in procedure.ModalityProcedureSteps) { mppsSet.AddAll(mps.PerformedSteps); } } return new ListPerformedProcedureStepsResponse( CollectionUtils.Map<ModalityPerformedProcedureStep, ModalityPerformedProcedureStepDetail>( mppsSet, mpps => assembler.CreateModalityPerformedProcedureStepDetail(mpps, this.PersistenceContext))); }
public DiscontinueModalityPerformedProcedureStepResponse DiscontinueModalityPerformedProcedureStep(DiscontinueModalityPerformedProcedureStepRequest request) { var mpps = this.PersistenceContext.Load<ModalityPerformedProcedureStep>(request.Mpps.ModalityPerformendProcedureStepRef); // update extended properties (should this be in an assembler?) ExtendedPropertyUtils.Update(mpps.ExtendedProperties, request.Mpps.ExtendedProperties); var dicomSeriesAssembler = new DicomSeriesAssembler(); dicomSeriesAssembler.SynchronizeDicomSeries(mpps, request.Mpps.DicomSeries, this.PersistenceContext); var op = new DiscontinueModalityPerformedProcedureStepOperation(); op.Execute(mpps, request.DiscontinuedTime, new PersistentWorkflow(PersistenceContext)); this.PersistenceContext.SynchState(); // If discontinuing the MPPS caused any associated procedures to be discontinued, // create an HL7 event. foreach (var activity in mpps.Activities) { var procedure = activity.As<ProcedureStep>().Procedure; if(procedure.IsTerminated) LogicalHL7Event.ProcedureCancelled.EnqueueEvents(procedure); } // Drill back to order so we can refresh procedure plan var order = CollectionUtils.FirstElement(mpps.Activities).As<ProcedureStep>().Procedure.Order; var planAssembler = new ProcedurePlanAssembler(); var stepAssembler = new ModalityPerformedProcedureStepAssembler(); return new DiscontinueModalityPerformedProcedureStepResponse( planAssembler.CreateProcedurePlanSummary(order, this.PersistenceContext), stepAssembler.CreateModalityPerformedProcedureStepDetail(mpps, this.PersistenceContext)); }
public CompleteModalityPerformedProcedureStepResponse CompleteModalityPerformedProcedureStep(CompleteModalityPerformedProcedureStepRequest request) { var mpps = this.PersistenceContext.Load<ModalityPerformedProcedureStep>(request.Mpps.ModalityPerformendProcedureStepRef); // update extended properties (should this be in an assembler?) ExtendedPropertyUtils.Update(mpps.ExtendedProperties, request.Mpps.ExtendedProperties); var dicomSeriesAssembler = new DicomSeriesAssembler(); dicomSeriesAssembler.SynchronizeDicomSeries(mpps, request.Mpps.DicomSeries, this.PersistenceContext); var op = new CompleteModalityPerformedProcedureStepOperation(); op.Execute(mpps, request.CompletedTime, new PersistentWorkflow(PersistenceContext)); this.PersistenceContext.SynchState(); // Drill back to order so we can refresh procedure plan var onePs = CollectionUtils.FirstElement(mpps.Activities).As<ProcedureStep>(); var planAssembler = new ProcedurePlanAssembler(); var stepAssembler = new ModalityPerformedProcedureStepAssembler(); return new CompleteModalityPerformedProcedureStepResponse( planAssembler.CreateProcedurePlanSummary(onePs.Procedure.Order, this.PersistenceContext), stepAssembler.CreateModalityPerformedProcedureStepDetail(mpps, this.PersistenceContext)); }
public StartModalityProcedureStepsResponse StartModalityProcedureSteps(StartModalityProcedureStepsRequest 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)); var hasProcedureNotCheckedIn = CollectionUtils.Contains( modalitySteps, mps => mps.Procedure.IsPreCheckIn); if (hasProcedureNotCheckedIn) throw new RequestValidationException(SR.ExceptionProcedureNotCheckedIn); var op = new StartModalityProcedureStepsOperation(); var mpps = op.Execute(modalitySteps, request.StartTime, this.CurrentUserStaff, new PersistentWorkflow(PersistenceContext)); this.PersistenceContext.SynchState(); var procedurePlanAssembler = new ProcedurePlanAssembler(); var mppsAssembler = new ModalityPerformedProcedureStepAssembler(); return new StartModalityProcedureStepsResponse( procedurePlanAssembler.CreateProcedurePlanSummary(modalitySteps[0].Procedure.Order, this.PersistenceContext), mppsAssembler.CreateModalityPerformedProcedureStepDetail(mpps, this.PersistenceContext)); }