Class: LibraryCreationRequest

Inherits:
CustomerRequest show all
Includes:
Request::CustomerResponsibility, Request::LibraryManufacture
Defined in:
app/models/library_creation_request.rb

Overview

Used in the old-style (Workflow driven) tube based library creation pipelines

Direct Known Subclasses

MultiplexedLibraryCreationRequest

Constant Summary

Constants included from Metadata

Metadata::SECTION_FIELDS

Constants included from Request::Statemachine

Request::Statemachine::ACTIVE, Request::Statemachine::COMPLETED_STATE, Request::Statemachine::INACTIVE, Request::Statemachine::OPENED_STATE, Request::Statemachine::SORT_ORDER

Instance Method Summary collapse

Methods included from Request::LibraryManufacture

included, #insert_size

Methods included from Request::CustomerResponsibility

included

Methods inherited from CustomerRequest

#biffable?, #can_be_billed?, #create_billing_events, #customer_accepts_responsibility!, #generate_create_request_event, #generate_destroy_request_event, #generate_request_event, #update_responsibilities!

Methods inherited from Request

accessioning_required?, #add_comment, #associated_studies, #billing_product_identifier, #cancelable?, #copy, #current_request_event, #customer_accepts_responsibility!, delegate_validator, #event_with_key_value, #eventful_studies, for_study, #format_qc_information, #get_value, #has_passed, #lab_events_for_batch, #manifest_processed!, #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=, #ready?, #request_type_updatable?, #return_pending_to_inbox!, #run_events, #source_labware, #study=, #study_id=, #submitted_at, #target_purpose, #target_tube, #update_pool_information, #update_priority, #update_responsibilities!, #value_for

Methods included from Metadata

#has_metadata, required_tags

Methods included from EventfulRecord

#has_many_events, #has_many_lab_events, #has_one_event_with_family

Methods included from Request::Statistics

#asset_statistics, #progress_statistics, #sample_statistics_new

Methods included from Batch::RequestBehaviour

#create_batch_request!, included, #recycle_from_batch!, #return_for_inbox!, #with_batch_id

Methods included from Request::Statemachine

#cancellable?, #change_decision!, #closed?, #failed_downstream!, #failed_upstream!, #finished?, included, #on_blocked, #on_cancelled, #on_failed, #on_hold, #on_passed, #open?, #terminated?, #transfer_aliquots, #transition_to

Methods included from StandardNamedScopes

included

Methods included from Commentable

#after_comment_addition

Methods included from Uuid::Uuidable

included, #unsaved_uuid!, #uuid

Methods included from Api::RequestIO::Extensions

included, #json_root

Methods included from Aliquot::DeprecatedBehaviours::Request

#sample_name, #tag, #tag_number

Methods inherited from ApplicationRecord

convert_labware_to_receptacle_for, find_by_id_or_name, find_by_id_or_name!

Methods included from Warren::BroadcastMessages

#broadcast, included, #queue_associated_for_broadcast, #queue_for_broadcast, #warren

Instance Method Details

#aliquot_attributesHash

Passed into cloned aliquots at the beginning of a pipeline to set appropriate options


45
46
47
48
49
50
51
52
53
# File 'app/models/library_creation_request.rb', line 45

def aliquot_attributes
  {
    study_id: initial_study_id,
    project_id: initial_project_id,
    library_type: library_type,
    insert_size: insert_size,
    request_id: id
  }
end

#on_startedObject

When a library creation request passes it does the default behaviour of a request but also adds the insert size to the aliquots in the target asset and sets the library. There's a minor complication in that an MX library is also a type of library that might have libraries coming into it, therefore we only update the information that is missing.


25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/models/library_creation_request.rb', line 25

def on_started
  ActiveRecord::Base.transaction do
    super
    transfer_aliquots
    target_asset.aliquots.each do |aliquot|
      aliquot.library      ||= target_asset
      aliquot.library_type ||= library_type
      aliquot.insert_size  ||= insert_size
      aliquot.save!
    end
  end
end