GithubHelp home page GithubHelp logo

sanger / samples_extraction Goto Github PK

View Code? Open in Web Editor NEW

This project forked from emrojo/samples_extraction

0.0 5.0 5.0 4.04 MB

License: MIT License

Ruby 75.19% JavaScript 15.66% HTML 6.06% Shell 0.03% Dockerfile 0.09% SCSS 2.00% EJS 0.97%

samples_extraction's Introduction

samples_extraction

A workflow processor and management tool supported in metadata annotations that allows a user to specifiy the decisions to make during the process of a group of labware. Actions can be specified as metadata changes definition or as external scripts, allowing it to interact with external persistance applications.

Main Features:

  • UI for workflows creation and process
  • Background jobs management for the actions of the workflow
  • JSON API available for external services to access the metadata
  • External applications required: Sequencescape (storage), PrintMyBarcode (printing)
  • Searching facilities for labware based on metadata
  • Kits, kit types, users, printers

Requirements

  • Sequencescape
  • PrintMyBarcode
  • Redis
  • Mysql

Installation

Setup a development environment in local

This installation procedure is prepared for a MacOS environment:

Redis

  1. Install redis as we will need it (for example, using Homebrew):
    # brew install redis
  1. Start redis
    # redis-server

Print_my_barcode config

  1. Add the barcode printers that you would like to use in the server. In a MacOS environment open Settings/Printers & Scanners and add the barcode printers making sure they are defined with protocol LPD.

  2. In the rails console, run the following command to add the printer we require into the database:

  > Printer.create(name: PRINTER_NAME)
  1. In print_my_barcode folder, start the server
  # rails s -p10000
  1. In Samples Extraction project folder, run the following command to create the required label templates into print_my_barcode:
  # rake label_templates:setup

mysql

  1. Start the server
  # mysql.server start

Sequencescape

  1. Start the delayed jobs:
  # rake jobs:work
  1. Start the Sequencescape server:
  # rails s

Samples extraction config

  1. Install all the dependencies for the project
  # gem install bundler -v 2.4.22

  # bundle install

  # bundle exec rake db:setup

  # yarn

Note that for ruby 2.7, the latest supported version of bundler is 2.4.22

  1. From the project folder, run the command
  # rake secret
  1. Copy the resulting string and create a config/secrets.yml file and paste the string as value from secret_key_base attribute:
development:
  secret_key_base: <RANDOM_STRING_OBTAINED>
  1. Run the delayed job for Samples extraction
  # rake jobs:work
  1. Run the server in a different port than the other services
  # rails s -p9000

Starting procedure:

First, start all the required service applications and configure their endpoints by defining the following environment variables:

Additionally you may require to configure the database connection and credentials for mysql from database.yml.

Second, start the background jobs processor:

rake jobs:work

Finally, start the main server:

bundle exec puma

Running Javascript tests

  yarn test

Running tests in watch mode

  yarn test-watch

Debugging Javascript with Chrome DevTools

  • Add a line 'debugger' in the JS code where we want to add a breakpoint

  • Then in Chrome type this URL: about://inspect.

  • Click the Open dedicated DevTools for Node

  • Run the tests in debug mode:

  yarn test:debug

Description

Selection of workflows

Workflows are selected by using one of the instruments from the instruments view at /instruments and scanning for them a kit barcode. The kit barcode is linked with one of the available workflows so it will create a new Activity to start processing labware with that workflow.

Brief description of the workflow process

When inside an activity, labware from Sequencescape can be imported by scanning the barcode of the labware in the box of a group of labware. At the beginning only one group is available, but may change during process. Depending on the selected group of labware the interface will show different information.

Annotations stage

With the information from Sequencescape a new asset will be created in Extraction lims, and annotated with metadata with the relevant information for the activity type. Asset and Metadata information are stored in the tables Assets and Facts. If the scanned labware already existed, the metadata will be refreshed from Sequencescape to reflect the changes. Before the rules matching stage, all assets metadata will be refreshed from Sequencescape.

Rules matching stage

A rule system that works with this metadata annotation is used afterwards to show the user the available actions that can be performed with the group of labware scanned. The rule system is represented in the tables ActivityTypes (group of all rules available), StepTypes (each individual rule, that represents a possible interaction for the user), ConditionGroups (a group pattern that represents the antecedent of the rule) and Conditions (each individual condition a group should match).

User interaction stage

The user can then select one of the options available and run that rule. Every step can have a different interaction control defined by the step template. By default, the step template will be a button. When clicking the button the user runs the action for that rule in the selected group.

Rules execution stage

The actions of the rule to ran are queued in a table in the database. A background processor (delayed_jobs) will load this changes to apply and run the associated action for the rule. Actions can be a combination of external scripts and metadata changes definitions. All metadata changes are gathered to be applied in a single commit in the database.

User interface sections

Groups of assets

A tab-based control table will allow to change the selection of the group of assets to work with. Each panel contains a list of labware.

Rules compatible

A set of controls to allow the user to run the available rules

Rules running

A table showing the background jobs already running, with a control allowing to stop the job if needed. Stopping the job will revert all metadata changes.

Rules applied

All applied changes from past rules are stored in the Operations table and displayed in this view. A set of controls is provided so the user can perform the following actions:

  • Cancel applied rules by reverting all metadata changes, which it would allow to revert history
  • Re-apply cancelled rules
  • Continue with already stopped jobs (this is really a re-run, as the changes from a stopped job are always reverted)

User feedback

Changes are broadcasted to the user interface by websockets with the support of a Redis database. The interface is updated with the changes in the database. All changes in available groups, assets, metadata and rules to apply are updated in the user interface automatically.

Data model:

Kits <-- KitTypes <-- ActivityTypes ---> Activities
                          |                |
                          V                V
Actions <------------ StepTypes -------> Steps -----------> Step Execution
                     /    |                |
                    /     V                V
ConditionGroups <--/   AssetGroups        Operations
     |                   |
     V                   V
Conditions             Assets --> Facts

Linting and formatting

Linting and formatting are provided by rubocop, prettier and Eslint. I strongly recommend checking out editor integrations. Also, using lefthook will help ensure that only valid files are committed.

# Run rubocop
bundle exec rubocop
# Run rubocop with safe autofixes
bundle exec rubocop -a
# Check prettier formatting
yarn prettier --check .
# Fix prettier formatting
yarn prettier --write .

samples_extraction's People

Contributors

andrewsparkes avatar bentopping avatar dasunpubudumal avatar dependabot[bot] avatar depfu[bot] avatar emrojo avatar harrietc52 avatar jamesglover avatar katytaylor avatar pjvv avatar sangeetha-bheeman avatar shiv5t3r avatar yoldas avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

samples_extraction's Issues

DPL-348 - As a user (Michelle) I would like to decouple tube creation from printing in samples extraction so I can print the barcodes when I need them and ensure that tubes are still created when printing is broken [C=S, V=4]

User story
As a user (Michelle) I would like to decouple tube creation from printing in samples extraction so I can print the barcodes when I need them and ensure that tubes are still created when printing is broken

Pulled out the complete decoupling into separate story to check with users.

Who are the primary contacts for this story
Michelle

Acceptance criteria
To be considered successful the solution must allow:

  • When tubes are created the labels will not be automatically printed
  • If tube label printing fails, the action still completes
  • There should be a printing button for tube labels

Dependencies
This story is blocked by the following dependencies:

  • #<issue_no.>
  • sanger/#<issue_no.>

References
This story has a non-blocking relationship with:

  • #<issue_no.>
  • sanger/#<issue_no.>

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

GPL-515 BUG - Spaces not allowed when editing Step Type

Describe the bug
A clear and concise description of what the bug is.

RT Ticket Number
If applicable

To Reproduce
Steps to reproduce the behaviour:

  1. Go to tab 'Step Types'
  2. Click on button 'New Step Type'
  3. Give it a name (e.g. 'test') and a step action (e.g. 'transfer_plate_to_plate.rb')
  4. Click 'New Asset'
  5. In the box next to 'addFacts', enter a:Thing With Spaces
  6. Click 'Create Step Type'
  7. See error screen ('We're sorry, but something went wrong.')

Expected behaviour
Step type should save successfully.

Additional context
Workaround is to click 'Edit N3' and modify this manually, putting triple quotes around the part with a space, e.g. """Thing With Spaces"""

DPL-nnn Remove n3 code

Describe the Housekeeping
There is a large amount of code, and a few dependencies, to support 'Notation 3' (and inferences based on it. However, this isn't used in practice and can be removed.

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-399 [BUG] Support for new barcode format (sequencescape22)

Describe the bug
Current samples_extraction code is not compatible with new barcode format sequencescape22. This happens when a new plate is create in Sequencescape it uses the wrong format. It is rendered as:

SQPD12345
but it should be
SQPD-12345

There must be some conversion with prefix that is making suppositions on the format. This needs fixing before new barcode format can be deployed.

RT Ticket Number
If applicable

To Reproduce
Steps to reproduce the behaviour:

  1. Go to page '...'
  2. Click on button '...'
  3. See error

Expected behaviour
What was expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • Windows or Mac?
  • Browser Chrome, Firefox, Safari or other?
  • Browser version (use 'About' to look up)?

Additional context
Add any other context about the problem here.

DPL-nnn Ensure locally registered fluidx tubes refresh from SS if the barcodes are added there.

User story

Research required: Confirm that this actually IS an issue.

If fluidx barcodes are scanned into the assets page for a task, the tubes get created locally. This appears to (possibly) block subsequent synchronisation with Sequencescape if the tubes are later registered by manifest.

Edit: This is actually even more of an issue than I thought, as the local import will Always happen before remote import. So it is impossible to import fluidx barcodes fromSS via this route.

Who are the primary contacts for this story
e.g. John S (don't include surnames in public repos)

Acceptance criteria
To be considered successful the solution must allow:

  • add a list of acceptance criteria here
  • ...

Dependencies
This story is blocked by the following dependencies:

  • #<issue_no.>
  • sanger/#<issue_no.>

References
This story has a non-blocking relationship with:

  • #<issue_no.>
  • sanger/#<issue_no.>

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

GPL-544 (materialized) view for the Samples Extraction for reporting

User story
GPL-544 | As SRA for CGaP (Laura) I want a (materialized) view for the Samples Extraction database, so we can check and report on the data

Who are the primary contacts for this story
Laura L
Neil

Draft Acceptance criteria
Column headers something like;

Input barcode,
Output barcode,
Activity type,
Instrument,
Kit barcode,
Kit type,
Date,
User.
[Samples]

This would create a row per plate/rack extracted, alternative would be to do it on a per sample basis, in which case the first column would be COG-UK barcode/Supplier sample name

Dependencies
This story is blocked by the following dependencies:

  • #<issue_no.>
  • sanger/#<issue_no.>

Additional context
L

GPL-475 Extraction lims to create LHR Stock

User story
As SRA for CGaP (Laura) I want to use Extraction Lims to create LHR stock plate as an output to Sequencescape.

Who the primary contacts are for this story
Laura (CGAP)

Acceptance criteria
To be considered successful the solution must allow:

  1. Create LHR Stock plates from Extraction lims into Sequencescape
  2. Check in Sequencescape that the plate has been correctly created with all its contents

DPL-nnn Remove print_list from global scope

Describe the Housekeeping

https://github.com/sanger/samples_extraction/blob/3831e306b18c48d6074846669895e81d215eb99a/app/models/printables/print_asset.rb#L1-L16

This method is defined on Object. I think we can just remove it (couldn't find any calls to it), but if not it should be moved to somethign appropriate.

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-272 [BUG] Label printing with long study name [C=S,V=3]

Describe the bug
When printing a label from Sample Extraction with a study with a very long name, the text wraps around the barcode. In SS this is fixed by using an abbreviation of the study, but simply only getting the first x characters of text when making the print job body would resolve it.

This cam in from an RT ticket. 743353

RT Ticket Number
743353

To Reproduce
Steps to reproduce the behaviour:

  1. Go to Sample Extraction
  2. Get plate with barcode DN924424N
  3. Print
  4. Printed label will have overlapping text

Expected behaviour
Study name on the label should be limited to x number of characters so it doesnt run off the label

Screenshots
If applicable, add screenshots to help explain your problem.
Screenshot 2022-02-10 at 11 01 30

Desktop (please complete the following information):

  • Windows or Mac?
  • Browser Chrome, Firefox, Safari or other?
  • Browser version (use 'About' to look up)?

Additional context
More info in RT ticket

DPL-205 - Token util does not recognise right pattern (C=S, V=3)

Describe the bug
In TokenUtil (lib folder) the regular expression for wildcard variables is defined like:

  def self.WILDCARD_REGEXP
    /\?\w*/
  end

which is incorrect, because it parses as a wildcard symbol a string like: 'asdf?asdf' but it shouldn't. A wildcard is only strings starting with '?'.

Error was found in RT739435.

RT Ticket Number
RT739435

To Reproduce
Steps to reproduce the behaviour:

  1. Go to page '...'
  2. Click on button '...'
  3. See error

Expected behaviour
What was expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • Windows or Mac?
  • Browser Chrome, Firefox, Safari or other?
  • Browser version (use 'About' to look up)?

Additional context
Add any other context about the problem here.

GPL-480 Support Heron Lysed TubeRack purposes from SS

User story
GPL-480 As SRA for CGaP (Laura) I want to use Extraction Lims to accept the plate purpose Heron Lysed TubeRack for tube racks as an input from Sequencescape.

Who the primary contacts are for this story
Laura (CGaP)

Acceptance criteria
To be considered successful the solution must allow:

The user can scan the barcode from a Heron Lysed TubeRack rack
The rack is imported into Extraction lims

Additional context
As today 20th May, this story affects the plate purpose created at story GPL-478.

GPL-530 BUG - permissions/ linux user deployment issues

Describe the bug
When deploying to production, you need to remove all the become:yes lines from roles/docker_stack/tasks/main.yml
Otherwise, you get this error on deployment:
Screenshot 2020-06-08 at 11 34 54

However, when deploying to UAT, if you try without those become:yes lines, you get the following error:
Screenshot 2020-06-08 at 11 40 53

We should make the packer images / user permissions consistent so that the UAT and prod deployments work the same way.

DPL-nnn Possible redundant fact creation in actions.rb

Describe the Housekeeping

When running some of the rubocop auto-fixes, I noticed this:

assets.each do |asset|
each_connected_asset(assets, destinations, wildcard_values) do |s, d|
updates.add(s, predicate, d)
end
end

The yielded asset is unused, and instead assets gets passed into `each_connected_asset. This will need to be evaluated to make sure we aren't creating asset*asset facts unnecessarily. It can then either be fixed, or annotated with a clear explanation.

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-nnn Scanned assets appear in confusing order

User story
When scanning in a range of barcodes the displayed assets appear in an order that doesn't make a huge amount of sense.

  • Preferred: Order in which they were scanned
  • Otherwise barcode sort order

Who are the primary contacts for this story
e.g. John S (don't include surnames in public repos)

Acceptance criteria
To be considered successful the solution must allow:

  • add a list of acceptance criteria here
  • ...

Dependencies
This story is blocked by the following dependencies:

  • #<issue_no.>
  • sanger/#<issue_no.>

References
This story has a non-blocking relationship with:

  • #<issue_no.>
  • sanger/#<issue_no.>

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

DPL-670-8 Pass a Samples Extraction specific API key to Sequencescape calls

User story
As a Samples Extraction 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.
  • Remove the old / potentially compromised API key from Sequencescape's ApiApplication records.

References
This story has a non-blocking relationship with:

GPL-481 Accept plate purpose Heron Lysed Plate

User story
GPL-481 As SRA for CGaP (Laura) I want to use Extraction Lims to accept the plate purpose Heron Lysed Plate for plates as an input from Sequencescape.

Who the primary contacts are for this story
Laura (CGaP)

Acceptance criteria
To be considered successful the solution must allow:

The user can scan the barcode from a Heron Lysed Plate plate
The plate is imported into Extraction lims

Additional context
As today 20th May, this story affects the plate purpose created at story GPL-478.

DPL-nnn [BUG] RT745433

Describe the bug
Plate needs to be fixed like:

 We need well C1 to stay in the original plate and for this to be empty in the new re racked plate.

RT Ticket Number
RT745433

To Reproduce
Steps to reproduce the behaviour:

  1. Go to page '...'
  2. Click on button '...'
  3. See error

Expected behaviour
What was expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • Windows or Mac?
  • Browser Chrome, Firefox, Safari or other?
  • Browser version (use 'About' to look up)?

Additional context
Add any other context about the problem here.

GPL-543 GUI feedback when you scan a barcode in Samples Extraction

User story
GPL-543 | As SRA for CGaP (Laura) I want to a add loading symbol to Samples Extraction LIMS when you scan a barcode in, currently it doesn’t look like anything is happening which confuses users.

Who are the primary contacts for this story
Laura L (CGaP)
Eduardo
And?

Acceptance criteria
To be considered successful the solution must allow:

  • add a list of acceptance criteria here
  • ...

Dependencies
This story is blocked by the following dependencies:

  • #<issue_no.>
  • sanger/#<issue_no.>

Additional context
Laura L wrote (Thursday, 18 June 2020 at 18:08):

I think these all have benefit beyond Heron. I can see Samples extraction LIMS being used for other CGAP projects in future and if Sample management intend to use it in future as well this wouldn’t be ‘wasted’ effort. Appreciate these will not be top of the priority list though!

GPL-560 As a developer I would like to replace the materialised view with a MLWH report

User story
As a developer I would like to replace the materialised view introduced in GPL-544 #117 with a report in the unified warehouse to reduce coupling to the samples_extraction database, increase flexibility of reporting, centralise the report tables, and reduce overall brittleness of the reports.

Who are the primary contacts for this story
James G (Wrote original view)
Laura L

Acceptance criteria
To be considered successful the solution must allow:

  • Reporting on all data within the existing view
  • Reporting of correct source barcodes for ALL activities

Additional context
The addition of the view was made to fulfil an urgent need to gain insight into Heron samples. However it has resulted in a fairly complicated query, which is difficult to generalise to all activities. The main difficult is in ensuring that the report can handle:

  1. Activities in which there are intermediate step between the input plate and output
  2. Activities where we are dealing with anything other than a single input mapped to a single output
  3. Multiple different asset types (especially tubes vs. plate/racks)

The current view handles requirement 1, and has some support for requirement 3, however currently does not support requirement 2. To help restrict this impact it confines itself to ONLY the heron extraction pipleines, which at time of writing have other issues confining them to 1->1 transfers.

Meanwhile we cheat on Option 1, essentially extracting the source of the earliest transfer associated with the activity, this avoids the need for recursive queries, but prevents us simultaneously delivering requirement 2.

Meanwhile, a report in the application itself will be able to make use of internal application logic, and potentially handle recursive queries programatically.
The view also runs counter to the general strategy of building reports of the warehouse and isolating application databases within the applications themselves.

DPL-308 - As R&D I need to investigate options for processing ToL samples for long read extractions

Description
We’re hoping to start processing ToL samples for long read extractions in the BOB. We’re “lifting and shifting” the existing process and have little scope for LIMS support in this ToR. Currently ToL are handwriting the sample names on their tubes and using googlesheets to track the sample movement, we’d prefer to track our samples with barcoded labels when we take on the process.
As we can’t have a dedicated LIMS we’re investigating which systems we can co-opt to track our samples. The samples start in FluidX tubes and will end up in new fluidX tubes halfway through the process so we’ll need to track incoming samples FluidX ID, label the intermediate 1.5ml tubes, track the new fluidX ID, associate the first FluidX ID with the second and then track the final 1.5ml tubes. The samples which pass will uploaded to traction for PacBio seq. I can currently see 3 possible options for how we can track the samples.
Option 1. The customer submits the FluidX tubes, uploads a manifest to SS and we then print the NT tube barcodes and place them on all the child tubes generated throughout the process. We’ll use googledocs/excel to track the intermediate FluidX tube ID numbers and associate them with the starting FluidX IDs. The NT numbers would then be uploaded to traction to get the samples sequenced on a PacBio instrument. This method is quick, requires no LIMS development but is dangerous as we’d have multiple assets stored with the same barcode.
Option 2. The customer submits the FluidX tubes, these get uploaded to sample extraction LIMS. We use SE LIMS to track the samples through the kingfisher extraction but this process finishes with the samples in new FluidX tubes and as far as I’m aware we can’t enter new FluidX IDs into SE LIMS so we’ll have to track the starting FluidX IDs association with the intermediate FluidX IDs with googledocs/excel. I can see some functionality to upload QC data in SE LIMS. Can SE LIMS upload data in any format? After the kingfisher extraction we’ll take a subset of samples forward through the process and a subset of those will proceed for PB seq.
Option 3. If it’s not too much difficultly could a new webpage be created? It would be similar to SPrint but would allow us to upload a .csv file containing FluidX IDs and then print them out as 1.5ml tube labels. The label configuration would be like this http://sprint.psd.sanger.ac.uk/?labelType=tube&printRequest=%7B%22layouts%22%3A%5B%7B%22textFields%22%3A%5B%7B%22fontSize%22%3A%222.5%22%2C%22font%22%3A%22proportional%22%2C%22rotation%22%3A%22north%22%2C%22value%22%3A%22FD04797460%22%2C%22x%22%3A%224%22%2C%22y%22%3A%228%22%7D%5D%2C%22barcodeFields%22%3A%5B%7B%22x%22%3A%227%22%2C%22y%22%3A%2211%22%2C%22value%22%3A%22FD04797460%22%2C%22cellWidth%22%3A%220.5%22%2C%22height%22%3A%2221%22%2C%22rotation%22%3A%22north%22%2C%22barcodeType%22%3A%22datamatrix%22%7D%2C%7B%22x%22%3A%2224%22%2C%22y%22%3A%2217%22%2C%22value%22%3A%22FD04797460%22%2C%22cellWidth%22%3A%220.3%22%2C%22height%22%3A%2210%22%2C%22rotation%22%3A%22north%22%2C%22barcodeType%22%3A%22datamatrix%22%7D%5D%7D%5D%7D. This would allow us to copy the source barcodes on the incoming FluidX IDs and make copies for all the child 1.5ml tubes. If we had the ability to add a suffix to the FluidX ID e.g post SPRI, megaruptor etc that would be brilliant.
Apologies for the wall of text. We’re currently exploring all options and as you can probably tell aren’t fully aware of what’s currently possible with our existing LIMS. If someone would be free to talk though the options with Di and myself over zoom it would be much appreciated. Thanks.

Who the primary contacts are for this work
Ben

Knowledge or Stake holders
Other people that may have specific knowledge about this work or have a stake in how it is implemented. e.g. John Smith is an expert on x

Additional context or information
Any other useful context or information that may be useful.

DPL-1098 Sample Extraction printed barcode format error [Should've]

When we (Sample preparation) use samples extraction to create a stock plate barcode, it prints out the plate info within the barcode rather than to the right hand side of it.
Extraction_barcode

The first label is printed through sequencescape and the second is generated on extraction lims.

We are having to re print these barcodes is it possible for this to be fixed please?

Primary contacts
lm15
ld20

To recreate in SE UAT
steps from lm15

  1. Instrument tab
  2. Select Qiasymphony
  3. Scan kit barcode
  4. Scan Pre extracted plate barcode
  5. I can't go any further than that as I don’t have a barcode that’s in the system unfortunately but you would just follow all the actions until you get to upload in sequencescape and this would produce a barcode which is automatically printed.

Relates to RT796134

DPL-nnn [BUG] warehouse deadletters - instrument doesnt have a default value

Describe the bug
When processing messages with content:

{"samples_extraction_activity":{"samples":[...'

with UWH consumer, getting following exception:

Mar 25 14:46:35 ware-prod unified_warehouse[28402]: (thread-7200) [WIP:production] ERROR -- : 🦊 production_MultiLimsWarehouseConsumer_28402: Dead-letter Exception: Mysql2::Error: Field 'instrument' doesn't have a default value
Mar 25 14:46:35 ware-prod unified_warehouse[28402]: (thread-7200) [WIP:production] ERROR -- : 🦊 production_MultiLimsWarehouseConsumer_28402: Dead-letter nacked

Message is sent to deadletters

RT Ticket Number
If applicable

To Reproduce
Steps to reproduce the behaviour:

  1. Go to page '...'
  2. Click on button '...'
  3. See error

Expected behaviour

The messages should be correctly processed
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • Windows or Mac?
  • Browser Chrome, Firefox, Safari or other?
  • Browser version (use 'About' to look up)?

Additional context
Add any other context about the problem here.

GPL-542 Actually we need parent/child relationships LHR stockplates from Samples extraction

User story
GPL-542 | As SRA for CGaP (Laura) I want to maintain the parent/child relationship when plates are created in Sequencescape through Samples Extraction LIMS as it would be good to have consistency between LHR stock plates created by SS or Samples extraction

Who are the primary contacts for this story
Laura L (CGaP)
Eduardo
And?

Acceptance criteria
To be considered successful the solution must allow:

  • add a list of acceptance criteria here
  • ...

Dependencies
This story is blocked by the following dependencies:

  • #<issue_no.>
  • sanger/#<issue_no.>

Additional context
Laura L writes: Thursday, 18 June 2020 at 18:08

Maintain the parent/child relationship when plates are created in Sequencescape through Samples Extraction LIMS. As it is now all the LHR stock plates that were created prior to using Samples extraction have parent/child relationships in SS, whereas those created through samples extraction do not. This wasn’t deemed an issue but it would be good to have consistency and might have implications in tracking/reporting? We did talk about this a while back at stand-up and I think we said add it to the bottom of the backlog but not sure anyone was tasked with this so it may have been forgotten.

DPL-089 Improve re-racking performance [C=M, V=5]

Timebox this story as there is no obvious end point, and longer term we are looking to move this feature to SS - sanger/sequencescape#3260. Hopefully there are some low-hanging fruit to be picked that will improve the user experience in the short term though.

User story
As a user in Sample Management, using the re-racking feature, I would like the time I have to wait for the software to complete tasks. Currently, a single re-racking can take 45 mins - 1 hour. This means I can only get through 4-5 a day, which is not good for the DDD project, where we have hundreds to process.

Who are the primary contacts for this story
Danni, Katy, Eduardo, Andrew

Acceptance criteria
To be considered successful the solution must allow:

  • Performance is improved / process is streamlined (see #137 (comment) for current timings)

Additional context
This feature has come up recently because it will also be used in the Cardinal pipeline. It is thought that improved tube rack / re-racking functionality could also be useful for the Tree of Life project, and Long Read, as they both use tubes currently.

Sample Management SOPs for re-racking -
Samples extraction screen shots for SOP.docx
SM_PRO_0094 DDD Stock Transfer To FluidX Racks v2.1.docx

DPL-1003 Sample Prep - Create an RNA stock plate from Extraction LIMS

User story
As a User (Lynda) of the Sample Prep team, I WANT the ability to create RNA Stock Plate in Samples Extraction LIMS AS currently I can only create Stock Plate even if RNA Kit is selected

Refer to slides 3 and13-to-16 for details from the refinement sessions,
https://docs.google.com/presentation/d/1UvMcZhYmTwj2yqSXtp6Tv_d-s8hFX152OGH7_JF4Y7A/edit#slide=id.g292a0708915_0_150

Current limitation in Extraction LIMS:
Using Samples Extractions LIMS =SamplesExtraction 2.2.0 (outside SeqScape) we input the pre-extracted barcode

  1. Select correct kit
  2. Select instrument or manual
  3. Generate the necessary barcode
  4. Only stock barcode plate can be created which is DNA even if RNA kit is selected

Who are the primary contacts for this story
Lynda D.

Who is the nominated tester for UAT
Lynda D.

Acceptance criteria

  • Confirm whether I can create a RNA tube or plate downstream to export into SeqScape from RNA Kits,
  • QiAcube and
  • QiaSymphony

Dependencies
This story is blocked by the following dependencies:

  • #<issue_no.>
  • sanger/#<issue_no.>

References
This story has a non-blocking relationship with:

Additional context

DPL-321 - As Long Read we would like to be able to print barcodes to Squix printers because these are the ones we have in the office[C=S, V=3]

User story
As CellGen SSR (Rich C) we would like to be able to print code128/code39 barcodes from sample extraction Lims. At present we get a syntax error (attached).

Who are the primary contacts for this story
Rich

Acceptance criteria
To be considered successful the solution must allow:

  • When I go to print a barcode the Squix printers should be available
  • I should be able to print a code 128 barcode to the Squix printers

References
This story has a non-blocking relationship with:
#151

Additional context
Relates to RT

DPL-nnn Better feedback on adding assets

User story
When scanning assets in it would be good to have more feedback to indicate that something is happening in the background.

Who are the primary contacts for this story
e.g. John S (don't include surnames in public repos)

Acceptance criteria
To be considered successful the solution must allow:

  • add a list of acceptance criteria here
  • ...

Dependencies
This story is blocked by the following dependencies:

  • #<issue_no.>
  • sanger/#<issue_no.>

References
This story has a non-blocking relationship with:

  • #<issue_no.>
  • sanger/#<issue_no.>

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

DPL-375 [BUG] Reracking failing on every alternative run

Describe the bug
When running the integration suite on reracking in UAT, I'm getting failures on every alternate run, due to location information being improperly stored (or possibly looked up) on the tubes in the scanned rack.

RT Ticket Number
If applicable

To Reproduce
Steps to reproduce the behaviour:

  1. Go to page '...'
  2. Click on button '...'
  3. See error

Expected behaviour
What was expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • Windows or Mac?
  • Browser Chrome, Firefox, Safari or other?
  • Browser version (use 'About' to look up)?

Additional context
Add any other context about the problem here.

GPL-476 Extraction lims to accept tube racks

User story
As SRA for CGaP (Laura) I want to use Extraction Lims to accept TR stock 96 tube racks as an input from Sequencescape.

Who the primary contacts are for this story
Laura (CGaP)

Acceptance criteria
To be considered successful the solution must allow:

  1. The user can scan the barcode from a TR stock 96 rack
  2. The rack is imported into Extraction lims

DPL-485 [BUG] Fail on scanning old ean13 barcodes

Describe the bug
When scanning a barcode that follows ean13 format (13 digits) the app fails to import those barcodes because Sequencescape is using now human barcodes by default, instead of machine barcodes.

RT Ticket Number
RT759906

To Reproduce
Steps to reproduce the behaviour:

  1. Go to any activity page
  2. Scan a ean13 barcode
  3. See error

Expected behaviour
The barcode should have been correctly imported

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • Windows or Mac?
  • Browser Chrome, Firefox, Safari or other?
  • Browser version (use 'About' to look up)?

Additional context
Add any other context about the problem here.

Add Rack::Cors

Brings it inline with all other rails apps and saves adding development specific gems.

DPL-nnn Migrate all script/runners to step_planners

Describe the Housekeeping
Script/runners have some significant performance overheads, as they involve spinning up an entirely new process, and rely on serialization and deserialization of their information, which often results in excess database queries.

Note: Care will have to be made to avoid affecting any global state, as global state will be shared by all jobs.

Long term we could consider performing some tasks synchronously as well.

Blocking issues
Describe any other issues or tickets that may be blocking this change.

Additional context
Add any other context about the problem here.

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.