Search System
The FHIR system-level search operation allows you to search across all resource types on the FHIR server. This is done using an HTTP GET request to the root endpoint with query parameters.
- CLI
- TypeScript
- cURL
Search across all resource types using the Haste Health CLI:
haste-health api search-system "_type=Patient,Observation&_lastUpdated=ge2025-01-01"
This command searches for Patient and Observation resources updated on or after January 1, 2025.
You can also perform a system-level search without parameters:
haste-health api search-system
Search across all resource types using the TypeScript client:
import { AsynchronousClient } from '@haste-health/client';
import { R4 } from '@haste-health/fhir-types/versions';
// Assuming you have a configured client
const client: AsynchronousClient<{}> = /* ... */;
const searchResults = await client.search_system(
{},
R4,
'_type=Patient,Observation&_lastUpdated=ge2025-01-01'
);
console.log('Total matches:', searchResults.total);
console.log('Resources found:', searchResults.resources);
// You can also use parsed parameters
import { parseQuery } from '@haste-health/client/url';
const searchWithParsed = await client.search_system(
{},
R4,
parseQuery('_type=Patient,Observation&_lastUpdated=ge2025-01-01')
);
Search across all resource types using cURL:
curl -X GET "https://api.haste.health/w/[tenant]/[project]/api/v1/fhir/r4?_type=Patient,Observation&_lastUpdated=ge2025-01-01" \
-H "Content-Type: application/fhir+json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Replace [tenant] with your tenant name and [project] with your project ID.
Error Handling
If there are any issues with the request (e.g., invalid search parameters), the server will respond with an appropriate error status code and include an OperationOutcome resource in the response body.
HTTP/1.1 400 Bad Request
Content-Type: application/fhir+json
{
"resourceType": "OperationOutcome",
"issue": [
{
"severity": "error",
"code": "invalid",
"diagnostics": "Invalid search parameter: unknown_param"
}
]
}