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.
