public ListOrdersForPatientResponse ListActiveOrdersForPatient(ListOrdersForPatientRequest request) { var criteria = new OrderSearchCriteria(); var profile = this.PersistenceContext.Load <PatientProfile>(request.PatientProfileRef); criteria.Patient.EqualTo(profile.Patient); criteria.Status.In(new[] { OrderStatus.SC, OrderStatus.IP }); var assembler = new OrderAssembler(); return(new ListOrdersForPatientResponse( CollectionUtils.Map <Order, OrderSummary, List <OrderSummary> >( this.PersistenceContext.GetBroker <IOrderBroker>().Find(criteria), order => assembler.CreateOrderSummary(order, this.PersistenceContext)))); }
public PlaceOrderResponse PlaceOrder(PlaceOrderRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.Requisition, "Requisition"); var order = PlaceOrderHelper(request.Requisition); ValidateVisitsExist(order); // ensure the new order is assigned an OID before using it in the return value this.PersistenceContext.SynchState(); LogicalHL7Event.OrderCreated.EnqueueEvents(order); var orderAssembler = new OrderAssembler(); return(new PlaceOrderResponse(orderAssembler.CreateOrderSummary(order, this.PersistenceContext))); }
public ModifyOrderResponse ModifyOrder(ModifyOrderRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.Requisition, "Requisition"); Platform.CheckMemberIsSet(request.Requisition.OrderRef, "OrderRef"); var order = this.PersistenceContext.Load <Order>(request.Requisition.OrderRef); var assembler = new OrderEntryAssembler(); assembler.UpdateOrderFromRequisition(order, request.Requisition, this.CurrentUserStaff, this.PersistenceContext); UpdateProceduresHelper(order, request.Requisition.Procedures, request); ValidateVisitsExist(order); this.PersistenceContext.SynchState(); var orderAssembler = new OrderAssembler(); return(new ModifyOrderResponse(orderAssembler.CreateOrderSummary(order, this.PersistenceContext))); }
public TimeShiftOrderResponse TimeShiftOrder(TimeShiftOrderRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.OrderRef, "OrderRef"); // load the order, explicitly ignoring the version (since this is only used for testing/demo data creation, we don't care) var order = this.PersistenceContext.Load <Order>(request.OrderRef, EntityLoadFlags.None); // shift the order, which will also shift all procedures, etc. order.TimeShift(request.NumberOfMinutes); // shift the visit order.Visit.TimeShift(request.NumberOfMinutes); this.PersistenceContext.SynchState(); LogicalHL7Event.OrderModified.EnqueueEvents(order); var orderAssembler = new OrderAssembler(); return(new TimeShiftOrderResponse(orderAssembler.CreateOrderSummary(order, this.PersistenceContext))); }
public ReplaceOrderResponse ReplaceOrder(ReplaceOrderRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.OrderRef, "OrderRef"); Platform.CheckMemberIsSet(request.Requisition, "Requisition"); var orderToReplace = this.PersistenceContext.Load <Order>(request.OrderRef); ValidateOrderReplacable(orderToReplace); // reason is optional var reason = (request.CancelReason != null) ? EnumUtils.GetEnumValue <OrderCancelReasonEnum>(request.CancelReason, this.PersistenceContext) : null; // duplicate any attachments in the requisition, // so that the replacement order gets a copy while the replaced order // retains the association to the originals DuplicateAttachmentsForOrderReplace(orderToReplace, request.Requisition); // place new order var newOrder = PlaceOrderHelper(request.Requisition); ValidateVisitsExist(newOrder); // cancel existing order CancelOrderHelper(orderToReplace, new OrderCancelInfo(reason, this.CurrentUserStaff, null, newOrder)); this.PersistenceContext.SynchState(); LogicalHL7Event.OrderCreated.EnqueueEvents(newOrder); LogicalHL7Event.OrderCancelled.EnqueueEvents(orderToReplace); var orderAssembler = new OrderAssembler(); return(new ReplaceOrderResponse(orderAssembler.CreateOrderSummary(newOrder, this.PersistenceContext))); }
public ListOrdersForPatientResponse ListActiveOrdersForPatient(ListOrdersForPatientRequest request) { var criteria = new OrderSearchCriteria(); var profile = this.PersistenceContext.Load<PatientProfile>(request.PatientProfileRef); criteria.Patient.EqualTo(profile.Patient); criteria.Status.In(new[] { OrderStatus.SC, OrderStatus.IP }); var assembler = new OrderAssembler(); return new ListOrdersForPatientResponse( CollectionUtils.Map<Order, OrderSummary, List<OrderSummary>>( this.PersistenceContext.GetBroker<IOrderBroker>().Find(criteria), order => assembler.CreateOrderSummary(order, this.PersistenceContext))); }
public TimeShiftOrderResponse TimeShiftOrder(TimeShiftOrderRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.OrderRef, "OrderRef"); // load the order, explicitly ignoring the version (since this is only used for testing/demo data creation, we don't care) var order = this.PersistenceContext.Load<Order>(request.OrderRef, EntityLoadFlags.None); // shift the order, which will also shift all procedures, etc. order.TimeShift(request.NumberOfMinutes); // shift the visit order.Visit.TimeShift(request.NumberOfMinutes); this.PersistenceContext.SynchState(); LogicalHL7Event.OrderModified.EnqueueEvents(order); var orderAssembler = new OrderAssembler(); return new TimeShiftOrderResponse(orderAssembler.CreateOrderSummary(order, this.PersistenceContext)); }
public ReplaceOrderResponse ReplaceOrder(ReplaceOrderRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.OrderRef, "OrderRef"); Platform.CheckMemberIsSet(request.Requisition, "Requisition"); var orderToReplace = this.PersistenceContext.Load<Order>(request.OrderRef); ValidateOrderReplacable(orderToReplace); // reason is optional var reason = (request.CancelReason != null) ? EnumUtils.GetEnumValue<OrderCancelReasonEnum>(request.CancelReason, this.PersistenceContext) : null; // duplicate any attachments in the requisition, // so that the replacement order gets a copy while the replaced order // retains the association to the originals DuplicateAttachmentsForOrderReplace(orderToReplace, request.Requisition); // place new order var newOrder = PlaceOrderHelper(request.Requisition); ValidateVisitsExist(newOrder); // cancel existing order CancelOrderHelper(orderToReplace, new OrderCancelInfo(reason, this.CurrentUserStaff, null, newOrder)); this.PersistenceContext.SynchState(); LogicalHL7Event.OrderCreated.EnqueueEvents(newOrder); LogicalHL7Event.OrderCancelled.EnqueueEvents(orderToReplace); var orderAssembler = new OrderAssembler(); return new ReplaceOrderResponse(orderAssembler.CreateOrderSummary(newOrder, this.PersistenceContext)); }
public ModifyOrderResponse ModifyOrder(ModifyOrderRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.Requisition, "Requisition"); Platform.CheckMemberIsSet(request.Requisition.OrderRef, "OrderRef"); var order = this.PersistenceContext.Load<Order>(request.Requisition.OrderRef); var assembler = new OrderEntryAssembler(); assembler.UpdateOrderFromRequisition(order, request.Requisition, this.CurrentUserStaff, this.PersistenceContext); UpdateProceduresHelper(order, request.Requisition.Procedures, request); ValidateVisitsExist(order); this.PersistenceContext.SynchState(); var orderAssembler = new OrderAssembler(); return new ModifyOrderResponse(orderAssembler.CreateOrderSummary(order, this.PersistenceContext)); }
public PlaceOrderResponse PlaceOrder(PlaceOrderRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.Requisition, "Requisition"); var order = PlaceOrderHelper(request.Requisition); ValidateVisitsExist(order); // ensure the new order is assigned an OID before using it in the return value this.PersistenceContext.SynchState(); LogicalHL7Event.OrderCreated.EnqueueEvents(order); var orderAssembler = new OrderAssembler(); return new PlaceOrderResponse(orderAssembler.CreateOrderSummary(order, this.PersistenceContext)); }