sanger / limber

A flexible lims extension of the old app
MIT License
3 stars 8 forks source link

Y24-042 'Cryostor' tube rack scan file improvements #1659

Closed KatyTaylor closed 3 months ago

KatyTaylor commented 3 months ago

User story As a user of the cDNA Prep part of the scRNA Core pipeline, I would like the rack scan format (used for the initial Seq/Spare tubes --> Cryostor plate/rack step) to match that required by a previous step in the pipeline, so that the tube rack scanner only has to have one output format, reducing scope for user error.

Who are the primary contacts for this story Abby, Katy

Who is the nominated tester for UAT Abby

Acceptance criteria To be considered successful the solution must allow:

References This is an enhancement to https://github.com/sanger/limber/issues/1388

Additional context This came up during UAT.

andrewsparkes commented 3 months ago

Thoughts The tube rack (represented by the Cryostor plate in LIMS) has not been created yet (this file upload is the start of the create process). So how is the barcode label printed out and stuck on the rack? Presumably it's not at the time of the rack scan, so the 'rack' barcode in the file must be the etched one on the rack (or worse a barcode label from a previous use).

andrewsparkes commented 3 months ago

See line 77 in app/models/labware_creators/multi_stamp_tubes_using_tube_rack_scan.rb

@csv_file ||= CommonFileHandling::CsvFileForTubeRack.new(file) if file

Change this to use CsvFileForTubeRackWithRackBarcode

For the error handling it is supposed to capture a problem and write to errors, but clearly isn't with unexpected columns. See CommonFileHandling::CsvFileBase and CsvFile::RowForTubeRackWithRackBarcode (and CsvFile::RowForTubeRack)

andrewsparkes commented 3 months ago

Katy discovered routing error in the erb file. form_for(@labware_creator, as: :tube, url: limber_plate_tubes_path(@labware_creator.parent)) needs to be form_for(@labware_creator, as: :plate, url: limber_plate_children_path(@labware_creator.parent))

routing path names are not clear and could be improved (we are making a plate child from parent tubes here, but the routing suggests the reverse)