sanger / labwhere

A tool for tracking uniquely barcoded labware

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GPL-809 As a Reefer Team Manager (Bart & Sameena) we would like to find the locations of all plates in a list in one quick operation.

TWJW-SANGER opened this issue · comments

User story
As a Reefer Team Manager (Bart & Sameena) we would like to find the locations of all plates in a list in one quick operation.

Reefer Managers are often asked to retrieve a large number of plates in one go, or to determine if all the plates in a list have been destroyed. Currently they are doing this one by one via the current LabWhere interface and it is time consuming.

Who are the primary contacts for this story
Bart S (Reefer Mgr)
Sameena I (Reefer Mgr)
Christen S (Service Support Officer)

Acceptance criteria
To be considered successful the solution must allow:

  • Find locations of all plates from a list of plate barcodes - provided as a csv file, as single column
  • For plates not found to indicate this clearly in the results, e.g. having a location of "Not found"
  • Export of location results as csv file
  • Display appropriate error message if user provides a list of plates barcodes that is invalid - empty file, multiple columns, etc...

Dependencies
N/A

Additional context
The requirements in this story could be met by providing some more dynamic reporting functionality rather than altering the LabWhere interface.
Having discussed with Matt F. it is not easy to provide this in Tableau as uploading large lists and parsing is non-trivial.
Users can download plates lists from "What's in LabWhere" report and search within them using Excel, but the lists can be very large and it is not easy to do.

Tasks:

create a find location model

  • accepts a one column csv with no header (list of labwares)
  • for each labware find its location
  • removes duplicates and does not raise an error
  • if a labware has no location return 'Not Found' (could we just use unknown?)
  • add the parentage for each location so users know where it is
  • returns a hash with a row for each labware with the key as the labware barcode and the value as the labware

create a find location form

  • accepts a csv
  • checks that there is only one column
  • checks that there is data
  • if invalid returns an error
  • if valid calls find location model and returns data

create a find location view (/find_locations/new)

  • instructions on how to use it i.e. what format to expect data
  • one input which accepts a csv
  • reports errors if there is anything wrong
  • calls find location controller

create a find location controller

  • accepts request from /find_locations/new
  • calls find location form
  • on error shows new with errors
  • on success shows show action with csv output

create routing (find_locations)

  • new
  • show

create output view (csv)

  • header labware_barcode, location_barcode, location_name, location_parentage
  • row for each labware