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¶
Fuzzy Search of Study Name in SequenceScape¶
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¶
- Only
GET /sapio/studies/v1(look up a study by name) is implemented and in UAT today.POST /sapio/studies/v1(create a study) is in progress, andPATCH(update a study) is planned but not yet built — see Supported Operations for current status.