Class: Request::AutoMultiplexing

Inherits:
Multiplexing
  • Object
show all
Defined in:
app/models/request/auto_multiplexing.rb

Overview

In the Generic Lims, transfer into the Multiplexed library tube is triggered automatically when the plate is passed. However, if multiplexing decisions are made after library creation, this step has already taken place. This callback ensure that the tube are generated after the submission is complete. The user may then log into generic Lims to see their plates. This issue is avoided in Limber by decoupling tube creation from plate passing allowing the step to be repeated at any time. This class can be removed if either the generic LIMS behaviour is updated, or moved into Limber.

Instance Method Summary collapse

Instance Method Details

#register_transfer_callbackObject

Triggers immediate transfer into the tubes if the source asset already exists. This allows multiplexing requests to be made on plates at the end of library prep, after the plate is qc_complete. If no asset is present then we haven't got to that stage yet and transfer will be triggered as part of the standard workflow.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/models/request/auto_multiplexing.rb', line 18

 do
  # NOTE: The following attribute is not required for Microarray Genotyping.
  # I think this might be broken and suggests that there should be separate classes for project: one for
  # next-gen sequencing that includes this attribute in it's metadata, and one for microarray genotyping
  # that doesn't.
  include ProjectManager::Associations
  include BudgetDivision::Associations

  custom_attribute(:project_cost_code, required: true)
  custom_attribute(:funding_comments)
  custom_attribute(:collaborators)
  custom_attribute(:external_funding_source)
  custom_attribute(:sequencing_budget_cost_centre)
  custom_attribute(:project_funding_model, in: PROJECT_FUNDING_MODELS)
  custom_attribute(:gt_committee_tracking_id)

  before_validation do |record|
    record.project_cost_code = nil if record.project_cost_code.blank?
    record.project_funding_model = nil if record.project_funding_model.blank?
  end
end