Laboratory Workflow Simulator – Impersonating instruments for automated E2E testing

Automated testing is a required part of any development but can be hard to achieve when using physical instruments and dynamically changing real-life samples. Here I will describe my solution to this, which impersonates laboratory instruments and randomly generates different sample characteristics.

If you are reading this externally I refer to Holly which is our Laboratory Information Management Systems (LIMS). This is the software used to manage the samples and instruments within the sample workflow.

Purpose

  • Generate a set of samples and add them to Holly via Babble (HL7 interface)
  • Generate each instruments out file set for interaction in Holly
  • Add dummy workflow & test information to allow final dashboard testing
  • Cross check data matches across each step automatically, data checked:
    • Patient demographics
    • Barcodes
    • Plate position
    • Id’s
    • Re-extraction & failed actions
    • Volumes, concentration & dilution info

Description – Workflow Simulator

DNA/RNA preparation workflow simulator

Generates:

With in/out sample ids and appropriate metrics and attributes

  • HL7 data file – Auslab (external LIS) impersonator
  • QiaSymphony (DNA extraction instrument) input driver file
  • QiaSymphony rackfiles – QiaSymphony instrument impersonator
  • Synergy Hx PlateReader driver file
  • Hamilton MicroLab driver file (load Qubit plate on liquid handler)
  • Qubit results file – PlateReader instrument impersonator
  • Hamilton driver file (dilutions)
  • Dilutions results file – Hamilton MicroLab instrument impersonator
  • XL9 Label input file
  • XL9 Label output file – XL9 instrument impersonator

Runs:

  • Babble import of HL7 file
  • Creates random workflow & sample metrics for dashboard (Lab work Impersonator)

By running this every time a change is made to software we can auto detect any issues from a software change. Inversely we can use these files to test instrument protocols when a change is made to the instruments onboard logic.

Code is kept in private source control but please email me if you are interested and I will put a modified version in git.

Leave a comment