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

Defined Under Namespace

Classes: Metadata

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

Constants included from StandardNamedScopes

StandardNamedScopes::SORT_FIELDS, StandardNamedScopes::SORT_ORDERS

Instance Method Summary collapse

Methods included from Request::LibraryManufacture

included, #insert_size

Methods included from Request::CustomerResponsibility

included

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, #associated_studies, #cancelable?, #copy, #current_request_event, #customer_accepts_responsibility!, delegate_validator, #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=, #ready?, #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

#has_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

included

Methods included from Commentable

#after_comment_addition

Methods included from AASM::Extensions

#transition_to

Methods included from Uuid::Uuidable

included, #unsaved_uuid!, #uuid

Methods included from Api::RequestIo::Extensions

included, #json_root

Methods included from Aliquot::DeprecatedBehaviours::Request

#tag, #tag_number

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

extended

Instance Method Details

#aliquot_attributesHash

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

Returns:

  • (Hash)

    A hash of aliquot attributes



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