Skip to content

Purpose and Features

The purpose of the Sapio Studies API is to provide the Sapio LIMS with a single, stable interface for study records management.

As part of the WSI initiative to rationalise the number of LIMS systems supporting Scientific Research activities, the Sapio LIMS application requires a unified approach to study records management across the different WSI on-premise data sources.

The Sapio Studies integration allows Sapio to co-exist with SequenceScape and MLWH as systems of record for study data while transitioning to a single LIMS system.

The integration provides a single API interface for the Sapio LIMS to access study data, abstracting the underlying data sources and their respective database-specific query logic. This allows the Sapio LIMS to retrieve, create, and update study records without needing to understand the underlying data sources or their schemas.


Key Features

Create a study once, it shows up everywhere it needs to

When a study is created in Sapio, this integration automatically creates the matching record in SequenceScape and in the sequencing data warehouse (MLWH) too. This ensures that the study is available in all systems that need it, without requiring users to create the same study multiple times in different systems.

If something goes wrong, it's traceable - no mystery failures

Tracking ID id created in intial validation step and can be used to look up exactly what happened to a specific submission: which step it got to, and what went wrong. This is important for debugging and for providing support to users when they encounter issues.

The right people get notified when something fails

If a study fails to be created in SequenceScape or MLWH or anywhere else it needs to be, an email alert goes out to a groups of users, so a person can step in rather than the failure sit there unnoticed. This ensures that issues are addressed promptly and that users are kept informed about the status of their submissions.

Notification channels and recipients can be configured

It doesn't have to be just email alerts - the integration can be configured to send notifications via other channels too, such as Slack or Microsoft Teams, depending on the needs of the organisation. The users group can also always be configured to be the right people for the organisation, so that the right people are always notified when something goes wrong.

Fuzzy Search of Study Name in SequenceScape when retrieving study records

GET /sapio/studies/v1 matches on a partial name rather than requiring the exact, full study title. The query is passed through to Sequencescape's own name filter, so a fragment like "Genomic variation" can resolve to the full study record.

This matters because Sapio LIMS users often only know part of a study's name. Requiring an exact match would force them to look the full title up elsewhere first, defeating the point of a single, self-contained interface.

Consideration: a broad fragment can match more than one study, so the response is always a list — callers should be prepared to handle zero, one, or several results from the same query.

Harmonised Response Shape

Sequencescape's real API returns a JSON:API-style response (data, attributes, links, relationships). The Sapio Studies API flattens this at the XAPI layer into a single, simple object per study — just the id merged with its attributes — before it ever reaches Sapio.

This means Sapio only ever has to understand one flat shape. It doesn't need to know Sequencescape's JSON:API conventions, its schema, or how the underlying data source represents relationships; the integration absorbs that complexity on Sapio's behalf.

Consideration: this flattening is XAPI-specific transform logic, not something Sequencescape does natively — any future response field changes need to be reflected in that transform to stay in sync.


Limitations

  • Both GET /sapio/studies/v1 (look up a study by name) and POST /sapio/studies/v1 (create a study) are implemented and in UAT today — see Supported Operations for current status.