Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/dhanyasukumaran1/fhir_query_validator/llms.txt

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.

Prerequisites

  • Python 3.8 or later
  • pip package manager
  • Basic familiarity with FHIR search syntax (see FHIR Overview if you’re new to FHIR)

Step 1: Install

Install FHIR Query Validator using pip:
pip install fhir-query-validator
Verify the installation:
python -c "from fhir_query_validator import FHIRQueryValidator; print('Installation successful')"

Step 2: Validate a query

Create a Python script to validate a FHIR search query:
quickstart.py
from fhir_query_validator import FHIRQueryValidator

# Create a validator instance
validator = FHIRQueryValidator()

# Validate a Patient search query
result = 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}")
Run the script:
python quickstart.py
Expected output:
Query is valid

Step 3: Catch a validation error

Now try a query with an invalid search parameter to see how errors are reported:
error_example.py
from fhir_query_validator import FHIRQueryValidator

validator = 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'?

Step 4: Validate multiple queries

Use validate_batch to check a list of queries at once:
batch_example.py
from fhir_query_validator import FHIRQueryValidator

validator = 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'

Next steps

Basic validation guide

Learn more about working with ValidationResult objects and integrating validation into your code.

Advanced queries

Explore complex FHIR search patterns including chained parameters and modifiers.

Error handling

Handle validation errors and warnings programmatically in your application.

Supported resources

See the full list of FHIR R4 resource types and search parameters that are validated.

Build docs developers (and LLMs) love