Class: Lab::OrdersController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- ApplicationController
- Lab::OrdersController
- Defined in:
- app/controllers/lab/orders_controller.rb
Instance Method Summary collapse
- #create ⇒ Object
- #destroy ⇒ Object
- #index ⇒ Object
- #order_result ⇒ Object
- #order_status ⇒ Object
- #summary ⇒ Object
- #update ⇒ Object
- #verify_tracking_number ⇒ Object
Methods inherited from ApplicationController
Instance Method Details
#create ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'app/controllers/lab/orders_controller.rb', line 8 def create order_params_list = params.require(:orders) orders = order_params_list.map do |order_params| OrdersService.order_test(order_params) end orders.each { |order| Lab::PushOrderJob.perform_later(order.fetch(:order_id)) } render json: orders, status: :created end |
#destroy ⇒ Object
39 40 41 42 43 44 |
# File 'app/controllers/lab/orders_controller.rb', line 39 def destroy OrdersService.void_order(params[:id], params[:reason]) Lab::VoidOrderJob.perform_later(params[:id]) render status: :no_content end |
#index ⇒ Object
27 28 29 30 31 32 |
# File 'app/controllers/lab/orders_controller.rb', line 27 def index filters = params.slice(:patient_id, :accession_number, :date, :status) Lab::UpdatePatientOrdersJob.perform_later(filters[:patient_id]) if filters[:patient_id] render json: OrdersSearchService.find_orders(filters) end |
#order_result ⇒ Object
52 53 54 55 56 57 |
# File 'app/controllers/lab/orders_controller.rb', line 52 def order_result params.permit! order_params = params[:data].to_h OrdersService.update_order_result(order_params) render json: { message: 'Results processed successfully' }, status: :ok end |
#order_status ⇒ Object
46 47 48 49 50 |
# File 'app/controllers/lab/orders_controller.rb', line 46 def order_status order_params = params.permit(:tracking_number, :status, :status_time, :comments) OrdersService.update_order_status(order_params) render json: { message: "Status for order #{order_params['tracking_number']} successfully updated" }, status: :ok end |
#summary ⇒ Object
59 60 61 62 63 64 65 66 |
# File 'app/controllers/lab/orders_controller.rb', line 59 def summary start_date = params[:start_date].present? ? params[:start_date] : 24.hours.ago.beginning_of_day end_date = params[:end_date].present? ? params[:end_date].to_date.end_of_day : 24.hours.ago.end_of_day concept_id = params[:concept_id] include_data = params[:include_data] orders = OrdersService.lab_orders(start_date, end_date, concept_id, include_data: include_data) render json: orders, status: :ok end |
#update ⇒ Object
19 20 21 22 23 24 25 |
# File 'app/controllers/lab/orders_controller.rb', line 19 def update specimen = params.require(:specimen).slice(:concept_id) order = OrdersService.update_order(params[:id], specimen:, force_update: params[:force_update]) Lab::PushOrderJob.perform_later(order.fetch(:order_id)) render json: order end |
#verify_tracking_number ⇒ Object
34 35 36 37 |
# File 'app/controllers/lab/orders_controller.rb', line 34 def verify_tracking_number tracking_number = params.require(:accession_number) render json: { exists: OrdersService.check_tracking_number(tracking_number) }, status: :ok end |