assembleco / slim

A (slim) System for Laboratory Information Management
https://stoic-pare-ea69d2.netlify.com/
0 stars 1 forks source link

Test Plans, v2 #58

Open c-lliope opened 6 years ago

c-lliope commented 6 years ago

Test plans are defined by customers, and are a vital piece of documentation throughout a product's life cycle – from the lab to the pharmacy shelf.

Because test plans change over time, it is not enough to store a list of tests that are required for each part. Each sample must be traceable to the plan it was tested against.

Problem

At the moment, testing requirements are defined one-by-one in the specification table.

Once a specification has been created, there is no way to delete it through the UI.

There is not an intuitive way to see which tests were required at a certain point in time, or to look at how testing requirements have changed over time.

Possible Approaches

Option 1

The downside of this approach is that for a small change to an existing test plans, we will need to copy most of the data from the existing plan onto the new plan.

I've used this approach in the past. It works, but it leaves a lot to be desired.

Option 2

This would mean:

The downside of this approach is that we will almost never be able to query specification without joining it up to test_plan_modifications. This isn't a huge deal, but it requires everyone to have an understanding of how the system's set up.

Verdict

Option 2 seems like a much cleaner route to go, and it will give us room to experiment with an event-based data store.

We might be able to minimize the query overhead with a data modeling system like MobX (See #44).