Use this file to discover all available pages before exploring further.
This guide walks you through installing FHIR Query Validator and running your first query validation. By the end, you’ll have a working Python script that validates FHIR search query strings and reports any errors.
Create a Python script to validate a FHIR search query:
quickstart.py
from fhir_query_validator import FHIRQueryValidator# Create a validator instancevalidator = FHIRQueryValidator()# Validate a Patient search queryresult = validator.validate_query("Patient?family=Smith&birthdate=1990-01-01")if result.is_valid: print("Query is valid")else: print(f"Query has {len(result.errors)} error(s):") for error in result.errors: print(f" - {error}")
Now try a query with an invalid search parameter to see how errors are reported:
error_example.py
from fhir_query_validator import FHIRQueryValidatorvalidator = FHIRQueryValidator()# This query uses 'lastname' which is not a valid FHIR search parameter# The correct parameter is 'family'result = validator.validate_query("Patient?lastname=Smith")if result.is_valid: print("Query is valid")else: print(f"Errors found:") for error in result.errors: print(f" - {error}") if result.warnings: print(f"Warnings:") for warning in result.warnings: print(f" - {warning}")
Expected output:
Errors found: - Unknown search parameter 'lastname' for resource type 'Patient'. Did you mean 'family'?
Use validate_batch to check a list of queries at once:
batch_example.py
from fhir_query_validator import FHIRQueryValidatorvalidator = FHIRQueryValidator()queries = [ "Patient?family=Smith&birthdate=1990-01-01", "Observation?code=8867-4&patient=Patient/123", "Encounter?status=invalid-status", "UnknownResource?id=1",]results = validator.validate_batch(queries)for query, result in zip(queries, results): status = "VALID" if result.is_valid else "INVALID" print(f"[{status}] {query}") for error in result.errors: print(f" Error: {error}")
Expected output:
[VALID] Patient?family=Smith&birthdate=1990-01-01[VALID] Observation?code=8867-4&patient=Patient/123[INVALID] Encounter?status=invalid-status Error: Invalid value 'invalid-status' for parameter 'status'. Valid values: planned, arrived, triaged, in-progress, onleave, finished, cancelled[INVALID] UnknownResource?id=1 Error: Unknown FHIR resource type 'UnknownResource'