Class: WorkCompletion::TubeRackCompletion
- Inherits:
-
LabwareCompletion
- Object
- LabwareCompletion
- WorkCompletion::TubeRackCompletion
- Defined in:
- app/models/work_completion/tube_rack_completion.rb
Overview
Class WorkCompletion::TubeRackCompletion provides the business logic for passing tubes within a tube rack, especially in the Limber pipelines. This has been pulled out of WorkCompletion itself to allow for separate behaviour for tube racks.
Instance Attribute Summary
Attributes inherited from LabwareCompletion
#order_ids, #submission_ids, #target_labware, #work_completion
Instance Method Summary collapse
-
#connect_requests ⇒ void
Connects upstream requests to the target labware's racked tubes.
-
#detect_upstream_requests ⇒ ActiveRecord::Relation
Detects upstream customer requests associated with the target labware.
-
#target_tubes ⇒ ActiveRecord::Relation
Retrieves the target tubes associated with the target labware.
Methods inherited from LabwareCompletion
#fire_events, #initialize, #pass_and_link_up_requests, #process
Constructor Details
This class inherits a constructor from WorkCompletion::LabwareCompletion
Instance Method Details
#connect_requests ⇒ void
This method returns an undefined value.
Connects upstream requests to the target labware's racked tubes.
Iterates through each upstream request and links it to the receptacle of each tube in the target labware's racked tubes.
21 22 23 24 25 |
# File 'app/models/work_completion/tube_rack_completion.rb', line 21 def connect_requests target_tubes.each do |target_tube| detect_upstream_requests.each { |upstream| pass_and_link_up_requests(target_tube.tube.receptacle, upstream) } end end |
#detect_upstream_requests ⇒ ActiveRecord::Relation
Detects upstream customer requests associated with the target labware.
Queries the database for customer requests linked to the aliquots of the target labware.
59 60 61 |
# File 'app/models/work_completion/tube_rack_completion.rb', line 59 def detect_upstream_requests target_labware.in_progress_requests.includes(WorkCompletion::REQUEST_INCLUDES) end |
#target_tubes ⇒ ActiveRecord::Relation
This method is similar to the target_wells
method in WorkCompletion::PlateCompletion
,
Retrieves the target tubes associated with the target labware.
This method fetches the tubes that are racked within the target labware (i.e., tube rack), including their associated aliquots and requests. It filters the tubes based on the submission IDs of the requests.
41 42 43 44 45 46 47 |
# File 'app/models/work_completion/tube_rack_completion.rb', line 41 def target_tubes @target_tubes ||= target_labware .racked_tubes .includes(tube: { aliquots: { request: WorkCompletion::REQUEST_INCLUDES } }) .where(requests: { submission_id: submission_ids }) end |