Class: SequencingRequest
- Inherits:
-
CustomerRequest
- Object
- ActiveRecord::Base
- ApplicationRecord
- Request
- CustomerRequest
- SequencingRequest
- Extended by:
- Request::AccessioningRequired
- Includes:
- Api::Messages::FlowcellIo::LaneExtensions, Request::CustomerResponsibility, Request::SampleCompoundAliquotTransfer
- Defined in:
- app/models/sequencing_request.rb
Direct Known Subclasses
Defined Under Namespace
Classes: Metadata, RequestOptionsValidator
Constant Summary
Constants included from Metadata
Constants included from Request::Statemachine
Request::Statemachine::ACTIVE, Request::Statemachine::COMPLETED_STATE, Request::Statemachine::INACTIVE, Request::Statemachine::OPENED_STATE, Request::Statemachine::SORT_ORDER
Constants included from StandardNamedScopes
StandardNamedScopes::SORT_FIELDS, StandardNamedScopes::SORT_ORDERS
Class Method Summary collapse
Instance Method Summary collapse
- #concentration ⇒ Object
- #on_started ⇒ Object
- #order=(_) ⇒ Object
-
#ready? ⇒ Boolean
Returns true if a request is ready for batching.
Methods included from Request::AccessioningRequired
Methods included from Request::SampleCompoundAliquotTransfer
#compound_samples_needed?, #transfer_aliquots_into_compound_sample_aliquots
Methods included from Request::CustomerResponsibility
Methods inherited from CustomerRequest
#customer_accepts_responsibility!, #generate_create_request_event, #generate_destroy_request_event, #generate_request_event, #update_responsibilities!
Methods inherited from Request
accessioning_required?, #add_comment, #aliquot_attributes, #associated_studies, #cancelable?, #copy, #current_request_event, #customer_accepts_responsibility!, #detect_descriptor, #eventful_studies, for_study, #format_qc_information, get_all_comments, #has_passed, #lab_events_for_batch, #manifest_processed!, #most_recent_event_named, #next_request_type_id, #next_requests, #next_requests_via_asset, #next_requests_via_submission, number_expected_for_submission_id_and_request_type_id, #previous_failed_requests?, #priority, #product_line, #project=, #project_id=, #request_type_updatable?, #return_pending_to_inbox!, #run_events, #source_labware, #study=, #study_id=, #submission_plate_count, #submitted_at, #target_purpose, #target_tube, #update_pool_information, #update_priority, #update_responsibilities!
Methods included from Request::Statistics
#asset_statistics, #progress_statistics, #sample_statistics_new
Methods included from EventfulRecord
#has_many_events, #has_many_lab_events, #has_one_event_with_family
Methods included from Metadata
Methods included from Batch::RequestBehaviour
included, #recycle_from_batch!, #return_for_inbox!, #with_batch_id
Methods included from Request::Statemachine
#cancellable?, #change_decision!, #closed?, #failed_downstream!, #failed_upstream!, #finished?, #on_blocked, #on_cancelled, #on_failed, #on_hold, #on_passed, #open?, #terminated?, #transfer_aliquots
Methods included from StandardNamedScopes
Methods included from Commentable
Methods included from AASM::Extensions
Methods included from Uuid::Uuidable
included, #unsaved_uuid!, #uuid
Methods included from Api::RequestIo::Extensions
Methods included from Aliquot::DeprecatedBehaviours::Request
Methods inherited from ApplicationRecord
alias_association, convert_labware_to_receptacle_for, find_by_id_or_name, find_by_id_or_name!
Methods included from Squishify
Class Method Details
.delegate_validator ⇒ Object
62 63 64 |
# File 'app/models/sequencing_request.rb', line 62 def self.delegate_validator SequencingRequest::RequestOptionsValidator end |
Instance Method Details
#concentration ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 |
# File 'app/models/sequencing_request.rb', line 66 def concentration event = most_recent_event_named('Specify Dilution Volume') return ' ' if event.nil? concentration = event.descriptor_value('Concentration') return "#{concentration}μl" if concentration.present? dna = event.descriptor_value('DNA Volume') rsb = event.descriptor_value('RSB Volume') "#{dna}μl DNA in #{rsb}μl RSB" end |
#on_started ⇒ Object
38 39 40 41 42 |
# File 'app/models/sequencing_request.rb', line 38 def on_started super compound_samples_needed? ? transfer_aliquots_into_compound_sample_aliquots : transfer_aliquots end |
#order=(_) ⇒ Object
44 45 46 |
# File 'app/models/sequencing_request.rb', line 44 def order=(_) # Do nothing end |
#ready? ⇒ Boolean
Returns true if a request is ready for batching
49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'app/models/sequencing_request.rb', line 49 def ready? # rubocop:todo Metrics/CyclomaticComplexity # Reject any requests with missing or empty assets. # We use most tagged aliquot here, as its already loaded. return false if asset.nil? || asset.most_tagged_aliquot.nil? # Rejects any assets which haven't been scanned in return false if asset.scanned_in_date.blank? # It's ready if I don't have any lib creation requests or if all my lib creation requests are closed and # at least one of them is in 'passed' status upstream_requests.empty? || (upstream_requests.all?(&:closed?) && upstream_requests.any?(&:passed?)) end |