GithubHelp home page GithubHelp logo

sanger / asset_audits Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 7.0 1.33 MB

Add audits to assets in sequencescape

License: MIT License

Shell 1.15% Ruby 64.43% HTML 2.55% JavaScript 3.30% CSS 3.62% Gherkin 18.93% Haml 6.03%
rails ruby

asset_audits's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

asset_audits's Issues

GPL-409 Create plate in SS programatically by calling the lighthouse service

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:

  1. the lighthouse service needs to be called (HTTP POST) with each barcode scanned in with the 'receive_plate' process

Additional context
Blocked by sanger/crawler#2

GPL-546 Display priority of scanned labware

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.

  • See priority on Wrangler samples
  • See priority on LH samples (BLOCKED)

Dependencies
This story is related to the following:

DPL-309 Allow destruction of tubes as well as plates (C=S, V=4)

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:

  • Existing Asset Audits labware destruction feature works for any labware

DPL-312 [Deprecated] Allow users to set labware lifespan [C=S]

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:

  • User interface (probably in admin area of Sequencescape) allows users to set the 'lifespan' field on the 'plate_purposes' table.

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.

GPL-??? See count of racks scanned into Asset Audits

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

DPL-452 Make Asset Audits labware box bigger

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:

  • Source labware / plates box is made larger for all features (not just 'destroying labware' feature)

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):
image

GPL-424 bed verification on the Hamilton Star for 1ml lysate extraction protocol

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

DPL-370 Labware destruction UX improvements [C=M]

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:

  • Source labware box lines are numbered (easier for user to review the list before submitting)
  • Display errors / feedback messages for different labware in more user-friendly format (currently difficult to read if multiple labware are scanned in one go, as all errors appear on the same line)
  • Show confirmations for the labware successfully destroyed. (currently only failures are shown and it makes it hard to know what was successful)
  • Retain the list of labware that were scanned on-screen once you press submit. (easier for user to review the list and check they did the right thing -- ideally the list would use colours and icons to indicate which were successful and which failed to be destroyed)

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.

DPL-670-7 Pass an Asset Audits specific API key to Sequencescape calls

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:

  • Update the config for the app to accept an API key for Sequencescape calls on the v2 API.
  • Ensure the deployment project sets this key on deployed versions.
  • Update the app to always provide this key in the headers for v2 SS endpoints.
  • Redeploy with an app specific API key for Sequencescape.
  • Check that requests coming from the app into Sequencescape are using the API key.

References
This story has a non-blocking relationship with:

GPL-443-1 (486) update how the wrangler is called

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:

  1. update the lib/wrangler.rb file to call the wrangler service using POST

Additional context
Add any other context or screenshots about the feature request here.

GPL-442 Feedback for SM - plate or rack scanned in to AA is production or R&D or a priority

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:

  1. Multiple plates/racks scanned into Assest audits at a time so needs to be able to provide feedback per barcode
  2. Show priority (Added in story refinement, 9th June with Laura L & Rich C)
  3. Show sample state
  4. Show study
    Sample state and study are already in the cgap_heron table, and priority will be added in x517, and picked up in GPL-528.

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.

GPL-547 BUG - times out when scanning in barcodes

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:

  • making the import process faster
  • set a limit on number of barcodes scanned
  • make the process asynchronous

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:

  1. Go to page /process_plates/new
  2. Enter your user barcode and the barcode for an instrument which has the 'Receive plates' process
  3. Scan around 50 barcodes into the box and hit submit
  4. See timeout error

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.

GPL-438 Add detail to bed verification audits

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:

  1. 'Asset Audit' record in SS includes information about which plates were scanned on which beds
  2. For all verifications or just new Heron ones?

GPL-422 Bravo Bed verification for lysates -> LHR Stock plate

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.

  • Should be in Asset Audits (LHR stock barcode created and extraction tracked in Samples extraction)
  • Bed / plate positions:

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

GPL-447 Prevent multiple presses of submit

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:

  1. prevent requests from being sent multiple times
  2. let user know that a request is in progress

Additional context
Add any other context or screenshots about the feature request here.

GPL-394 NX Bed Verification For Heron Stamp

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

  1. 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

  2. 1-4 destination Eppendorf twintec plates with DN barcode (Example: DN624334R)

  3. 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

GPL-913 Housekeeping - remove CGaP integration

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.

DPL-311 Destroy whole boxes at once (C=M)

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:

  • I can scan a LabWhere location into the destruction feature in Asset Audits
  • The number of labware within that box is displayed on the screen, so I can visually check it matches reality
  • When I press go, the destruction feature works as normal for each of the labware within that box (checks if they are suitable based on lifespan, creates a destruction event for them, and updates the location in LabWhere, assuming #339 has been done)
  • Labwhere location scanned should contain child locations
  • Scanned box if contains even a single non-expired the box should not be destroyed.

Dependencies
Assumes #339 has been done already, although they could probably also be done in the opposite order.

GPL-576 Deprecate LH sample creation in SS from Asset Audits (undo GPL-408/409)

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:

  • undo features GPL-408, 409 (447)
  • Ensure that plates from CGaP still create samples in SS

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

DPL-310 Destruction feature to move labware to LabWhere 'destroyed' location (C=M)

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:

  • Labware marked for destruction in Asset Audits should also have their locations updated in LabWhere, to a special 'destroyed' location.
  • There is messaging on the page to explain this is what will happen, and feedback to say whether the update in LabWhere was successful or not.

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.

DPL-371 [Deprecated] Undestroy a labware

!!! 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

  • I have a plan for how to correct labware destruction audits / events - either a way for PSD to correct it through an RT ticket, or a way for users to correct it themselves.
  • If the solution can be generic and so allow us to correct any data created by Asset Audits, or any events in the Event Warehouse, that would be great.

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:

  • asset_audits table in Sequencescape database
  • event in the Events Warehouse

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.

GPL-354 As a Development team (LIMS) when a new tube rack has been received in sample management we would like to trigger creation of samples in sequencescape

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

GPL-551 Distinguish between failed and repeated import

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:

  • When I 'receive' a plate or rack into Asset Audits, if it is not imported, I would like to be told whether that's because it already exists in Sequencescape or another reason.
  • Imported? box in results table says 'Yes', 'No' or 'Fail' depending on whether the import was successful, it has been previously imported into SS or it failed to import

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
image

GPL-410 Bed verifications for creation of 384 RT plate in Asset Audits

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:

  1. Bed verification in asset audits for the NX robot must work
  2. Bed verification in asset audits for the Bravo robot must work

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 3

Source 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

Instrument: 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 9

Source 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

DPL-368 Set lifespan on labware [C=S]

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:

  • Set 'lifespan' field on 'purpose' records as recorded in the attached spreadsheet

Labware purpose list.xlsx

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.