RIDING BYTES
← All insights

September 15, 2024 · 5 min read

Provision SENAITE LIMS with demo data

A freshly installed SENAITE is empty. One command and one click populate it with realistic sample types, methods, analysis services, and clients.

Loading this video will connect you to YouTube (Google LLC, USA) and transmit your IP address. By clicking play you consent to this transfer. See our privacy policy.

A fresh SENAITE installation looks emptier than it is. There are no sample types, no methods, no analysis services, no clients. The workflow engine works, the audit trail records, the API responds. But there is nothing to click around because nothing has been configured.

The demo data profile fixes this. One command from inside the container, and the system fills with realistic laboratory content you can use to evaluate the product, train new users, or prototype a workflow.

What demo data contains

senaite.lims ships a built-in installation profile called senaite.lims:demo. Running it once populates:

  • Clients. A handful of realistic lab customers.
  • Contacts. People who belong to those clients.
  • Sample types. Water, soil, wastewater, blood, urine, and a few others.
  • Methods. Reference methods with documentation links.
  • Analysis services. Several dozen services, with units, uncertainties, calculations, and instrument associations.
  • Instruments. Stub records you can wire to real ASTM/HL7 later.
  • Sample points. Sampling locations for environmental samples.

It is not production data. It is enough data to make every screen in SENAITE show something meaningful.

Prerequisite: a running SENAITE

You need a running instance. If you do not have one, start with the 5-minute Docker run. The example below assumes the container name senaite and that your SENAITE listens on port 8080.

Apply the profile via the UI

The simplest path. Log into SENAITE as the Zope admin, then:

  1. Click your name in the top right and choose Site Setup.
  2. Open Add-ons.
  3. Find SENAITE LIMS DEMO.
  4. Click Install.

Wait twenty to forty seconds. The page refreshes and the install profile applies. Navigate back to /senaite and you will find clients, sample types, and analysis services where there were none.

Apply the profile via the command line

If you are scripting environments, the same install runs from zopectl run:

docker exec -it senaite bin/instance run -O senaite \
  src/senaite.lims/scripts/install.py

The container needs to be running. The script imports the senaite.lims:demo profile against the SENAITE site object and commits the transaction.

For your own provisioning scripts, the underlying Python is just:

from Products.GenericSetup.tool import SetupTool
setup = portal.portal_setup
setup.runAllImportStepsFromProfile("profile-senaite.lims:demo")
import transaction
transaction.commit()

That is the entire mechanism. The demo profile is a normal Plone GenericSetup profile that lives inside the senaite.lims package.

What to do next

With demo data in place, three useful walk-throughs:

  1. Register a sample. Clients > pick one > Add Sample. Add a few analysis services. Submit.
  2. Open the worksheet view. Worksheets > Add. Drag samples in. Print the worksheet for the analyst.
  3. Enter and verify results. Open the sample, type in results, submit, verify, publish. Watch the audit trail capture every step.

When the demo has shown you what SENAITE feels like with content in it, the next question is usually “what does this look like with our data, our methods, our workflow.” That is what the 3-day workshop is for: we drop your real data into a configured system and you leave on Friday with a VM you can take home.

Removing demo data

The demo profile is additive. The only way to fully remove it is to start from a fresh ZODB. For local Docker evaluation, the easiest path is to stop the container (--rm deletes the volume) and re-run.

For production-leaning installs where you want a clean state, see the Ubuntu install guide, which provisions a fresh Data.fs you can keep or wipe at will.

Bring this to your lab

Whether you are evaluating SENAITE, scaling it across sites, or wiring up instruments and monitoring, the team that wrote the platform is the team you talk to.

Start a conversation