Skip to content

API Reference

parseFilterExpression

Parses a filter expression into its components.

Supported operators: = equality != inequality > greater than (lexicographic) < less than (lexicographic) >= greater than or equal (lexicographic) <= less than or equal (lexicographic) ~= contains (substring match) ^= starts with (prefix match)

### Parameters
| Name | Type | Description |
|------|------|-------------|
| `filterExpression` | `string` | The filter expression (e.g., "analysisType=SNV", "enrichmentKitName^=TwistExome") |

### Returns
**Type:** `object`

- An object containing field, operator, and value (e.g., { field: 'analysisType', operator: '=', value: 'SNV' })

applyFilter

Applies a single filter to a list of analyses.

### Parameters
| Name | Type | Description |
|------|------|-------------|
| `analyses` | `Array` | List of analyses returned by the API. |
| `filter` | `object` | Parsed filter object (e.g., { field: 'analysisType', operator: '=', value: 'SNV' }) |

### Returns
**Type:** `Array`

- Filtered list of analyses.

applyFilters

Applies multiple filters to a list of analyses sequentially (AND logic).

### Parameters
| Name | Type | Description |
|------|------|-------------|
| `analyses` | `Array` | List of analyses returned by the API. |
| `filterExpressions` | `Array` | Array of filter expressions (e.g., ['analysisType=SNV', 'enrichmentKitName^=TwistExome']) |

### Returns
**Type:** `Array`

- Filtered list of analyses.

deduplicateByLatest

Deduplicates analyses by keeping only the one with the highest analysis ID

per unique personLimsId. This ensures only the newest/latest analysis per sample is retained (e.g., when a sample has both original and repeat sequencing).

### Parameters
| Name | Type | Description |
|------|------|-------------|
| `analyses` | `Array` | List of analyses (must have id and personLimsId fields). |
| `logger` | `object` | The logger instance. |

### Returns
**Type:** `Array`

- Deduplicated list with one analysis per personLimsId.

Released under the GPL-3.0 License.