sanger / asset_audits Goto Github PK
View Code? Open in Web Editor NEWAdd audits to assets in sequencescape
License: MIT License
Add audits to assets in sequencescape
License: MIT License
User story
As a dev team we would like AA to call the lighthouse service when the 'receive_plate' process occurs (similar to tube racks) so that the lighthouse service can find the sample data and create a plate in SS with that data.
Who the primary contacts are for this story
Philip
Acceptance criteria
To be considered successful the solution must allow:
Additional context
Blocked by sanger/crawler#2
User story
Extracted from #149
Who are the primary contacts for this story
Danni, Adam F
Acceptance criteria
After scanning a plate or tube rack into Asset Audits, if it is imported from 'wrangler' or 'lighthouse', I can see its priority. The priority of the labware is calculated as the same as the highest priority of its samples.
Dependencies
This story is related to the following:
This represents the asset_audits work required for sanger/General-Backlog-Items#109
Original issue:
Travis are have changed their open-source free tier, which places heavy restrictions on our needs. We are currently on a paid plan, but are looking to migrate off.
I have made notes about the changes made to migrate Sequencescape here:
https://github.com/JamesGlover/travis_to_gh_actions
User story
As a Sample Management or Heron user I would like to be able to use the destruction feature for tubes as well as plates, because I have to destroy both.
Who are the primary contacts for this story
Danni & Anna G
Acceptance criteria
To be considered successful the solution must allow:
User story
As a Sample Management user, Heron user or SSR, I would like to be able to set the lifespan of a type of labware, so that when I use the destruction feature it knows whether the labware should be destroyed or not.
Who are the primary contacts for this story
Danni, Siobhan, Anna G
Acceptance criteria
To be considered successful the solution must allow:
Additional context
There was discussion about setting the lifespan in the context of a Study. It might be that to identify robustly what the lifespan of a piece of labware should be, that you need to use more than one source of information (e.g. purpose & study). It could particularly be a problem with the LB Lib Pool Norm tubes, as these are used across multiple pipelines. However, this needs more research, and simply implementing this story to allow setting of the existing lifespan field on purposes should cover the majority of cases.
As a user in Sample Management, I would like to see a count of how many tube racks I've scanned into Asset Audits in one go, to help avoid missing one or scanning one twice when processing large numbers.
User: Danni
User story
As a Sample Management user I would like the box that I scan my labware barcodes into when destroying labware to be bigger, so I can see more barcodes at once. This will make it easier for me to review the list of barcodes before submitting.
Who are the primary contacts for this story
Danni W, Katy
Who is the nominated tester for UAT
Danni W
Acceptance criteria
To be considered successful the solution must allow:
References
This was split out from #365 so can be removed as an acceptance criteria from that if it's done before it.
Additional information
Suggested size of box, from Danni (made temporarily this large by manually dragging the corner):
User story
GPL-424 | As R&D (Diana R) we would like bed verification on the Hamilton Star for 1ml lysate extraction protocol currently in development [Hinxton #688840]
Who the primary contacts are for this story
Diana R
Scott T
Danni W
Acceptance criteria
To be considered successful the solution must allow:
Either 1 or 2 plates can be processed at a time.
Source = Heron Lysed Plate (2ml deep well - 96)
Destination = LHR stock (96 well PCR plate)
Instrument : Hamilton STAR in sample management (L3 PRE).
Source lysed plate 1, bed 4 > Destination plate LHR stock 1, bed 34
Source lysed plate 2, bed 5 > Destination plate LHR stock 2, bed 35
Additional context
Was https://rt.sanger.ac.uk/Ticket/Display.html?id=688840
From Danni relating to where the bed verification will happen given the extraction is tracked in Samples Extraction "SM usually use asset audits for bed verification, but limber is also an option which the SM team are also familiar with. To keep things consistent in SM I would go for asset audits but if it’s easier for psd to set it up in Limber that’s fine too."
Post Deployment:
Run this rake task to set up the instrument process:
bundle exec rake lysates_extraction_hamilton:add
User story
There were a number of UX improvements requested during UAT of the labware destruction feature #338
I have grouped them together in this story as each of them is probably quite small, and it might help to think about them together.
Who are the primary contacts for this story
Katy, Danni
Acceptance criteria
To be considered successful the solution must allow:
N.B. It would be good if these can be implemented generically for all Asset Audits actions - UX improvements for everyone! There's nothing specific to the labware destruction feature here, as far as I know.
References
See the other stories with the 'labware destruction' label.
User story
As an Asset Audits maintainer, I want to authenticate with a unique key when passing requests to Sequencescape.
Who are the primary contacts for this story
sm49 hc6
Acceptance criteria
To be considered successful the solution must allow:
References
This story has a non-blocking relationship with:
User story
As a dev team we need to update how the wrangler is called since it now uses a POST.
Who the primary contacts are for this story
Philip
Acceptance criteria
To be considered successful the solution must allow:
lib/wrangler.rb
file to call the wrangler service using POSTAdditional context
Add any other context or screenshots about the feature request here.
Describe the Housekeeping
As PSD we would like to upgrade Asset Audits to Ruby 3 and Rails 7 so that we keep up to date with our dependencies.
Blocking issues
Additional context
User story
GPL-442 | As Heron stakeholders (Laura, Tom, Philip) we think there is value in providing feedback to SM (Danni & Adam F), to inform lab staff of the study, sample state and priority of the plate or rack scanned in to Asset audits. |
---|
Who the primary contacts are for this story
Danni W
Philip VV
Acceptance criteria
To be considered successful the solution must allow:
Additional context
It would also be useful to include Sample state in the feedback provided so that the user knows if the plate is an extract or lysate. Because if lysate it needs to go through samples extraction.
Note adding feedback makes this a synchronous service and makes it difficult to makes this faster.
Describe the bug
If many barcodes are scanned in ('receive plates' process), the browser / rails times out. It continues running in the background, but the user gets an error. We should look at one or more of:
RT Ticket Number
This came out of https://rt.sanger.ac.uk/SelfService/Display.html?id=692892
Danni scanned in 52 barcodes ('lighthouse'), and got a timeout error.
To Reproduce
Steps to reproduce the behaviour:
Expected behaviour
No timeout error. Ideally user should be shown results of scanning in the barcodes. Difficulty is, if we make is asynchronous to avoid the timeout, we might sacrifice usability as will be harder to display the results.
User story
As Adam F, when I complete a bed verification in Asset Audits, I would like the audit record in Sequencescape to include which plates were scanned on which beds.
Who the primary contacts are for this story
Adam F
Acceptance criteria
To be considered successful the solution must allow:
User story
GPL-422 | As lead for sample management I would like bed verification set up for the extraction of lysates for tracking and barcoding on the Bravo
Who the primary contacts are for this story
Danni W - Rich C
Eduardo MR
Acceptance criteria
To be considered successful the solution must allow:
Bed verification for 2ml deep well (Heron Lysed Plate) --> 96 plates (LHR Stock), on Bravo.
1 plate at a time.
Instrument : Bravo in sample management (L3 PRE).
Source deep well lysed plate, bed 4 > Destination plate LHR stock, bed 14
Additional context
From Danni relating to where the bed verification will happen given the extraction is tracked in Samples Extraction "SM usually use asset audits for bed verification, but limber is also an option which the SM team are also familiar with. To keep things consistent in SM I would go for asset audits but if it’s easier for psd to set it up in Limber that’s fine too."
Post Deployment:
Run this rake task to set up the instrument process:
bundle exec rake lysates_extraction_bravo:add
User story
As a dev team we would like to prevent asset audits from submitting audits multiple times. This causes multiple calls to the lighthouse/wrangler service and slows the process down.
Who the primary contacts are for this story
Philip
Acceptance criteria
To be considered successful the solution must allow:
Additional context
Add any other context or screenshots about the feature request here.
User story
GPL-394 As Product leads for Sample management (Danni & Adam) we would like in Asset Audits, Bed verification on the NX to stamp from fluidx racks, kingfisher or eppendorf plates to Eppendorf twintec plates to verify upto 4 source and 4 destination are correctly paired to prevent sample switches
Who the primary contacts are for this story
Danni, Adam F
Acceptance criteria
To be considered successful the solution must allow:
i. Inputs
Asset audit to accept 1-4 source plates with barcodes
a. SA barcoded 96 tube fluid-x rack (Example: SA00914070) or
b. kingfisher barcoded plate (Example: TBD) or
c. DN barcoded Eppendorf
1-4 destination Eppendorf twintec plates with DN barcode (Example: DN624334R)
Sample Management Beckman NX, with barcode 009851
ii. Bed verify mapping
Source Bed Number | Destination Bed Number
2 | 3
5 | 6
8 | 9
11 | 12
iii) Outputs
None
Additional context
Email chain on 14th April, Danni, Adam, Neil, Andrew, James M
Describe the Housekeeping
The slack exception channel keeps getting messages when barcodes are scanned into asset audits which then calls the wrangler to search for these barcodes in the MLWH table which CGaP used to populate.
This functionality is no longer used nor required.
Blocking issues
Describe any other issues or tickets that may be blocking this change.
Additional context
Add any other context about the problem here.
User story
As a Sample Management user I would like to be able to destroy whole boxes at once, where a box is a location in LabWhere. This will save me having to scan each labware within the box individually.
Who are the primary contacts for this story
Danni
Acceptance criteria
To be considered successful the solution must allow:
Dependencies
Assumes #339 has been done already, although they could probably also be done in the opposite order.
User story
GPL-576 | As dev manger (Rich L) I want to deprecate and remove code in Asset Audits that creates samples & metadata in SS when lighthouse plates are scanned in to avoid creating samples twice as part of SM normal workflow.
Who are the primary contacts for this story
Rich L
Rich C
Acceptance criteria
To be considered successful the solution must allow:
Dependencies
This story needs GPL-558,574, 559 & 561 (Sentinel cherry picking) to be done.
Additional context
Current process is documented here: https://app.lucidchart.com/invitations/accept/101e45cc-1fe9-449b-8c78-a1e64e058e36
User story
As a Sample Management or Heron user I would like the destruction feature of Asset Audits to move the labware to a special location in LabWhere that I use to indicate that labware are destroyed, so that I don't have to go to LabWhere separately to do this.
Who are the primary contacts for this story
Danni & Anna G
Acceptance criteria
To be considered successful the solution must allow:
Additional context
Asset Audits has its own event-based way of marking a labware as destroyed. However, the Asset Audits feature is not being used, and the accepted way of marking labware as destroyed is to use these special locations in LabWhere.
!!! This story needs some design / refinement !!!
User story
As a sample management user, if I scan a labware as destroyed by accident, I want there to be a way to remove/correct the event history.
The main concern I have is if a sample custodian requests their samples to be returned and we have marked them as destroyed in the audit history will this be an issue? The location should be correct but the audit trail will have conflicting data, there has been rare occasions when a plate is not in its SScape location and actually physically in another location. With this new function it could be possible the user assumes the sample has been destroyed instead of searching further. I could be over thinking this specific scenario but I’ve had a bad experience when samples have gone missing and the lims audit trail was incorrect and it caused major issues due to sample governance/ethics not being followed.
If the correcting is done via an RT ticket submission to PSD (rather than a self help feature), this is OK.
Who are the primary contacts for this story
Danni, Fran, Katy
Acceptance criteria
References
See the other stories with the 'labware destruction' label.
Additional context
When a labware is marked as destroyed in Asset Audits, it is recorded in the following places:
Correcting / deleting data in the Events Warehouse is currently non-trivial, and we have previously discussed implementing a generic way to deprecate events.
The main place I think the users are concerned about is the event history log against a labware in the Sequencescape UI, which is probably driven by the asset_audits table and more easily correctable. However, the two sources of data should ideally remain consistent and if we correct one we should correct the other.
Describe the Housekeeping
At the moment in this project there is no clear process of generating pre-releases if we want to test before merging in development. It should be using same workflows that SS or limber uses.
Blocking issues
Describe any other issues or tickets that may be blocking this change.
Additional context
Add any other context about the problem here.
User story
As a development team we would like asset audits to send a get request to the csv parser when a 'received plates' audit has occured. This should trigger the creation of samples in sequencescape if the plate is a Heron.
Who the primary contacts are for this story
Philip
Acceptance criteria
To be considered successful the solution must allow:
1 - we are only interested in the receive plates instrument process
2 - Once all validation has succeeded send get request to csv parser with tube rack barcode
User story
As a user in Sample Management, scanning in Heron plates and racks, if a plate or rack does not import successfully, I would like to tell if it has already been imported or whether it failed for a different reason.
Who are the primary contacts for this story
Danni
Acceptance criteria
To be considered successful the solution must allow:
Additional context
Came out of UAT of sanger/sequencescape#2772
Current results table looks like this - it just says 'No' under 'Imported?' if the labware was not imported
User story
As Sample Management we will want to perform bed verification when creating the 384 RT plates from 1-4 source tube racks or plates, in order to avoid swaps (mistakes). This step happens on both NX and Bravo robots.
Who the primary contacts are for this story
Danni, Scott Thurston
Acceptance criteria
To be considered successful the solution must allow:
Additional context
Information from an email by Scott on the robot layouts:
Updated 29th April
I have set this up on two different instruments, so we will need two different custom robot steps for this.
I have configured them so that you can transfer 1-4 quadrants. Q1=A1, Q2 = B1, Q3 = A2, Q4 = B2.Instrument: NX-96
Positions:
Source Rack 1 = Bed 2
Source Rack 2 = Bed 5
Source Rack 3 = Bed 8
Source Rack 4 = Bed 11
Destination Plate = Bed 3Source rack 1 transferred to A1 quadrant
Source rack 2 transferred to B1 quadrant
Source rack 3 transferred to A2 quadrant
Source rack 4 transferred to B2 quadrantInstrument: Bravo
Positions:
Source Rack 1 = Bed 4
Source Rack 2 = Bed 5
Source Rack 3 = Bed 6
Source Rack 4 = Bed 8
Destination Plate = Bed 9Source rack 1 transferred to A1 quadrant
Source rack 2 transferred to B1 quadrant
Source rack 3 transferred to A2 quadrant
Source rack 4 transferred to B2 quadrant
User story
As a sample management user, I would like the 'lifespan' to be set on various types of labware, so I can use the Asset Audits feature to assist with labware destruction.
Who are the primary contacts for this story
Katy, Danni
Acceptance criteria
To be considered successful the solution must allow:
Additional context
This is a data change only, no code. This is in the Sequencescape database, although the relevant feature is in the Asset Audits app.
From Danni about list:
This list covers all short read sequencing pipelines, bespoke and long lead excluding TOL. I have also not included stock plate this should stay as do not destroy.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.