Developer hub
Testkit | FHIR® Search
FHIR Search enables precise queries across complex, graph-like interconnected FHIR resources – structured, traceable, and in real time. Also available via tool interfaces.
527 / 527 = 100.0 %Community compliance
✓ 1 Passed✕ 0 Failed
- ✓ Should provide correct pagination links when searching encounters and return identical results for self/first links
✓ 9 Passed✕ 0 Failed
- ✓ Absence of search filters returns all records
- ✓ Case sensitivity of search parameters
- ✓ Filter on specific resource (Patient.birthDate)
- ✓ Order of operations (filters, sort, paging, includes)
- ✓ Parameter affecting search results (_sort)
- ✓ Server returns exact matches and respects _include parameter
- ✓ Should find a resource when filtering across all resources with _id
- ✓ Should return an empty bundle when filtering across all resources with non-existent _id
- ✓ Textual search across resource
✓ 6 Passed✕ 0 Failed
- ✓ Search across all resource types
- ✓ Search across all resource types with _type parameter
- ✓ Search in a specified compartment
- ✓ Search in a specified compartment with wildcard type
- ✓ Search on a specified resource type
- ✓ Validate common parameters when _type is used
✓ 1 Passed✕ 0 Failed
- ✓ Search across multiple resource types should only allow common search parameters
✓ 4 Passed✕ 0 Failed
- ✓ Search result bundle should contain a self link
- ✓ Self link may be absolute or relative URI
- ✓ Self link should be expressed as an HTTP GET-based search
- ✓ Self link should contain all used search parameters
✓ 4 Passed✕ 0 Failed
- ✓ Paging links should be expressed as GET requests
- ✓ Search result bundle should contain paging links when applicable
- ✓ Should handle _include correctly with pagination
- ✓ Should support both GET and POST for initial search with pagination
✓ 1 Passed✕ 0 Failed
- ✓ Search results should not contain duplicate entries
✓ 23 Passed✕ 0 Failed
- ✓ Empty search result should not be treated as an error
- ✓ Server should ignore empty parameters
- ✓ Server should ignore unknown parameters in lenient mode (default)
- ✓ Server should include only processed parameters in self link
- ✓ Server should process search with unknown code
- ✓ Server should process search with unknown subject
- ✓ Server should return an error in strict mode for unknown parameters
- ✓ Server should return appropriate 4xx/5xx codes for other errors
- ✓ Server should return error for syntactically incorrect parameter
- ✓ Should handle errors with _include/_revinclude parameters
- ✓ Should handle multiple error conditions in same request
- ✓ Should handle search for non-existent resource by id
- ✓ Should handle search with illegal/unsupported modifier
- ✓ Should handle search with incorrectly formatted date
- ✓ Should handle search with non-existent patient identifier
- ✓ Should handle search with out of scope date
- ✓ Should handle search with unknown code
- ✓ Should handle search with unknown parameter
- ✓ Should honor Prefer header when possible
- ✓ Should ignore unknown parameters by default
- ✓ Should optionally include OperationOutcome with hints/warnings in empty result set
- ✓ Should return an error for syntactically incorrect parameter content
- ✓ Should return empty result set for logically incorrect but syntactically valid parameter
✓ 2 Passed✕ 0 Failed
- ✓ Should not impose GET-specific limitations on searches within a batch
- ✓ Should support batching multiple search requests
✓ 10 Passed✕ 0 Failed
- ✓ Should support composite search parameter
- ✓ Should support date search parameter
- ✓ Should support number search parameter
- ✓ Should support quantity search parameter
- ✓ Should support reference search parameter
- ✓ Should support search parameter modifiers
- ✓ Should support search parameter prefixes
- ✓ Should support string search parameter
- ✓ Should support token search parameter
- ✓ Should support uri search parameter
✓ 4 Passed✕ 0 Failed
- ✓ Should perform basic string search
- ✓ Should perform number search with modifier
- ✓ Should perform number search with prefix
- ✓ Should perform token search
✓ 6 Passed✕ 0 Failed
- ✓ Should match patient when searching for second address
- ✓ Should match patient when searching for second given name
- ✓ Should match patient when searching for second identifier
- ✓ Should match patient with multiple addresses when searching for one address
- ✓ Should match patient with multiple identifiers when searching for one identifier
- ✓ Should match patient with multiple names when searching for one name
✓ 2 Passed✕ 0 Failed
- ✓ should match patient when searching by address (backbone element)
- ✓ should match patient when searching by name (complex element)
✓ 9 Passed✕ 0 Failed
- ✓ AND, Array, Complex: Intersection of records that contain at least one match for each search criteria
- ✓ AND, Array, Simple: Intersection of records that contain at least one match for each search criteria
- ✓ AND, Array, Simple: Should return empty result when ANDing mutually exclusive values
- ✓ OR, Array, Complex: Union of records that contain at least one match for any search criteria
- ✓ OR, Array, Simple: Union of records that contain at least one match for each search criteria
- ✓ Should perform AND join for multiple search parameters
- ✓ Should perform AND join for repeated search parameters
- ✓ Should perform OR join for comma-separated values
- ✓ Should support prefixes in OR joined values
✓ 4 Passed✕ 0 Failed
- ✓ Should allow only a single modifier per search parameter
- ✓ Should apply modifier to all values in OR-joined search
- ✓ Should reject search with unsupported modifier
- ✓ Should support modifiers on search parameters
✓ 3 Passed✕ 0 Failed
- ✓ Should find procedures in a specific location and its parent locations
- ✓ Should handle different reference formats with above modifier
- ✓ Should not apply above modifier to non-hierarchical references
✓ 3 Passed✕ 0 Failed
- ✓ Should find resources with versions above the specified version
- ✓ Should handle URL escaping in canonical references with :above modifier
- ✓ Should reject or ignore version-related search on resources with unknown version scheme with :above modifier
✓ 1 Passed✕ 0 Failed
- ✓ Should find observations with codes above the specified SNOMED CT code
✓ 1 Passed✕ 0 Failed
- ✓ Should find ValueSets with URLs above the specified URL
✓ 3 Passed✕ 0 Failed
- ✓ Should find procedures in a specific location and its child locations
- ✓ Should handle different reference formats with below modifier
- ✓ Should not apply below modifier to non-hierarchical references
✓ 4 Passed✕ 0 Failed
- ✓ Should find resources with versions below the specified version
- ✓ Should handle searches without version specified
- ✓ Should handle URL escaping in canonical references with :below modifier
- ✓ Should reject or ignore version-related search on resources with unknown version scheme with :below modifier
✓ 4 Passed✕ 0 Failed
- ✓ Should find observations with codes below the specified SNOMED CT code
- ✓ Should handle token search without system
- ✓ Should reject hierarchical token search with only system
- ✓ Should resolve MIME types using below modifier
✓ 4 Passed✕ 0 Failed
- ✓ Should find ValueSets with URLs below the specified URL
- ✓ Should handle partial URL matching
- ✓ Should not match URLs that are not below the specified URL
- ✓ Should not match URNs when using below modifier
✓ 5 Passed✕ 0 Failed
- ✓ Should match exact language code case-insensitively
- ✓ Should match language code case-insensitively
- ✓ Should match language code containing the search term
- ✓ Should work with reference type search parameters
- ✓ Should work with token type search parameters
✓ 3 Passed✕ 0 Failed
- ✓ Should find patients with family name containing the search string (case-insensitive)
- ✓ Should match anywhere in the string (start, middle, end)
- ✓ Should reject contains modifier on non-string, non-uri search parameters
✓ 8 Passed✕ 0 Failed
- ✓ Should find patient with exact match on family name (case-sensitive)
- ✓ Should match exact diacritic character (Renée)
- ✓ Should match exact diacritic character (Zoë)
- ✓ Should match multi-word name exactly (Van der Berg)
- ✓ Should not find patients with different casing or partial matches
- ✓ Should not match different Unicode representation of diacritic
- ✓ Should not match multi-word name with different case (Van der berg)
- ✓ Should not match name without diacritics (Renee) when searching with diacritics
✓ 6 Passed✕ 0 Failed
- ✓ Should find observations with matching subject identifier
- ✓ Should handle partial identifier matches correctly
- ✓ Should not find observations with matching subject reference but no identifier
- ✓ Should not support chaining with identifier modifier
- ✓ Should not support identifier modifier on canonical elements
- ✓ Should reject identifier modifier on non-reference search parameters
✓ 2 Passed✕ 0 Failed
- ✓ Should include patient and linked patients/related persons when using iterate modifier
- ✓ Should support iterate modifier with _revinclude
✓ 10 Passed✕ 0 Failed
- ✓ Should find patients with missing given name
- ✓ Should find patients with non-missing given name
- ✓ Should handle additional token type parameter scenarios
- ✓ Should handle missing modifier on date type parameters
- ✓ Should handle missing modifier on number type parameters
- ✓ Should handle missing modifier on quantity type parameters
- ✓ Should handle missing modifier on reference type parameters
- ✓ Should handle missing modifier on token type parameters
- ✓ Should handle missing modifier on uri type parameters
- ✓ Should reject invalid values for missing modifier
✓ 4 Passed✕ 0 Failed
- ✓ Should correctly apply not modifier to Composition sections
- ✓ Should find patients with gender not male
- ✓ Should handle not modifier correctly and warn about multiple values
- ✓ Should handle not modifier with token search parameters
✓ 5 Passed✕ 0 Failed
- ✓ Should find conditions with codes not in a specified ValueSet
- ✓ Should handle logical references to ValueSets
- ✓ Should handle URL-encoded ValueSet references
- ✓ Should not allow not-in modifier with boolean token parameters
- ✓ Should reject not-in modifier on non-token search parameters
✓ 5 Passed✕ 0 Failed
- ✓ Should find patients with specific identifier type and value
- ✓ Should handle escaped values in of-type modifier
- ✓ Should not find patients with different identifier types
- ✓ Should reject of-type modifier on non-token search parameters
- ✓ Should reject of-type modifier with missing parts
✓ 3 Passed✕ 0 Failed
- ✓ Should find conditions with codes that match text search on token parameter
- ✓ Should perform case-insensitive search with text modifier
- ✓ Should reject text modifier on non-reference, non-token search parameters
✓ 3 Passed✕ 0 Failed
- ✓ Should handle accents in token:text search
- ✓ Should perform case-insensitive search with section:text modifier
- ✓ Should support standard token search combinations with section:text modifier
✓ 3 Passed✕ 0 Failed
- ✓ Should find conditions with synonymous codes (server-dependent)
- ✓ Should reject text-advanced modifier on non-reference, non-token search parameters
- ✓ Should support case-insensitive search
✓ 5 Passed✕ 0 Failed
- ✓ Should be equivalent to standard reference search
- ✓ Should find observations with a specific patient as subject
- ✓ Should reject type modifier on non-reference search parameters
- ✓ Should support chaining with type modifier
- ✓ Should support reverse chaining with type modifier
✓ 11 Passed✕ 0 Failed
- ✓ Should handle approximate prefix (ap) for number searches based on configured percentage
- ✓ Should handle multiple prefixes in a single search
- ✓ Should handle prefix behavior with missing values
- ✓ Should handle prefix behavior with Range type in probability search
- ✓ Should handle prefixes with date ranges
- ✓ Should handle prefixes with partial dates
- ✓ Should handle prefixes with quantity searches including units
- ✓ Should handle prefixes with time-based searches
- ✓ Should search for observations with date prefixes
- ✓ Should search for observations with number prefixes
- ✓ Should search for observations with quantity prefixes
✓ 8 Passed✕ 0 Failed
- ✓ Should handle combination of percent-encoding and escaping
- ✓ Should handle escaped backslash as literal value
- ✓ Should handle escaped comma as literal value
- ✓ Should handle escaped dollar sign as literal value
- ✓ Should handle escaped pipe as literal value
- ✓ Should handle mix of escaped and unescaped delimiters
- ✓ Should handle percent-encoded URLs
- ✓ Should handle unescaped comma as OR operator
✓ 10 Passed✕ 0 Failed
- ✓ Should search date type against date, dateTime, instant, Period, and Timing
- ✓ Should search number type against decimal, integer, and positiveInt
- ✓ Should search quantity type against Quantity values
- ✓ Should search reference type against Canonical
- ✓ Should search reference type against Reference
- ✓ Should search reference type against URI
- ✓ Should search reference type against URL
- ✓ Should search string type against string values
- ✓ Should search token type against boolean, code, CodeableConcept, and Identifier
- ✓ Should search uri type against canonical, URI, and URL values
✓ 23 Passed✕ 0 Failed
- ✓ Should handle boundary comparison correctly
- ✓ Should handle partially specified dates - year and month
- ✓ Should handle partially specified dates - year only
- ✓ Should handle range comparison correctly
- ✓ Should handle timezone corrections
- ✓ Should handle timezone in date search
- ✓ Should search on date datatype
- ✓ Should search on dateTime datatype
- ✓ Should search on instant datatype
- ✓ Should search on Period datatype
- ✓ Should search on Timing datatype
- ✓ Should search procedures in patient compartment over a 2-year period
- ✓ Should search using full date-time format
- ✓ Should search using partial date format
- ✓ Should search with ap prefix for a specific day
- ✓ Should search with eb prefix
- ✓ Should search with eq prefix
- ✓ Should search with ge prefix
- ✓ Should search with gt prefix
- ✓ Should search with le prefix
- ✓ Should search with lt prefix
- ✓ Should search with ne prefix
- ✓ Should search with sa prefix
✓ 7 Passed✕ 0 Failed
- ✓ Should handle exponential form in searches
- ✓ Should handle integer searches exactly
- ✓ Should search for decimal values (precision=2) with implicit range 99.995-100.005
- ✓ Should search for integer values (precision=0) with implicit range 99.5-100.5
- ✓ Should search for risk assessments with probability in prediction
- ✓ Should search for scientific notation (1 sig fig) with implicit range 50-150
- ✓ Should search using comparison prefixes
✓ 5 Passed✕ 0 Failed
- ✓ Should search for observations using comparison operators
- ✓ Should search for observations with a specific value and any matching unit
- ✓ Should search for observations with a specific value and UCUM unit
- ✓ Should search for observations with a specific value regardless of unit
- ✓ Should search for observations with exponential notation
✓ 6 Passed✕ 0 Failed
- ✓ Should search for observations with a local reference
- ✓ Should search for observations with a typed local reference
- ✓ Should search for observations with an absolute URL reference
- ✓ Should search for observations with multiple possible reference types
- ✓ Should search using the identifier modifier
- ✓ Should search using the type modifier
✓ 18 Passed✕ 0 Failed
- ✓ Should handle compound name search correctly
- ✓ should handle contains search with umlauts
- ✓ should handle exact matches with umlauts
- ✓ should handle multiple umlauts in one name
- ✓ should handle ö/oe replacement in given name
- ✓ Should handle partial name search correctly
- ✓ Should handle search for name with hyphen correctly
- ✓ Should handle search for non-existent compound name
- ✓ Should handle simple name search correctly
- ✓ should handle ß/ss replacement
- ✓ should handle ü/ue replacement in family name
- ✓ Should match strings starting with the search parameter
- ✓ Should perform accent-insensitive search
- ✓ Should perform case-insensitive search with string parameter
- ✓ Should search family name parts independently
- ✓ Should search on complex elements (HumanName)
- ✓ Should use :contains modifier to match anywhere in the string
- ✓ Should use :exact modifier for exact matching
✓ 11 Passed✕ 0 Failed
- ✓ Should search by code without system
- ✓ Should search by code without system (explicit |code)
- ✓ Should search by identifier with system and code
- ✓ Should search by system only (system|)
- ✓ Should search Condition resources using :below modifier
- ✓ Should search in CodeableConcept
- ✓ Should search using :in modifier with custom value set
- ✓ Should search using :not modifier
- ✓ Should search using :of-type modifier for identifiers
- ✓ Should search using :text modifier
- ✓ Should support standard token search combinations with identifier parameter
✓ 6 Passed✕ 0 Failed
- ✓ Should be case-sensitive for URI searches
- ✓ Should not apply :above or :below modifiers to URNs
- ✓ Should search for exact URI match
- ✓ Should search for URN (OID) exactly
- ✓ Should search using :above modifier
- ✓ Should search ValueSet URLs using :below modifier
✓ 4 Passed✕ 0 Failed
- ✓ Should search Composition using section-text parameter
- ✓ Should search Location using contains parameter
- ✓ Should search Location using near parameter
- ✓ Should search using _filter parameter
✓ 4 Passed✕ 0 Failed
- ✓ Should differentiate between logical id and Identifier searches
- ✓ Should search by canonical URL for Canonical Resources
- ✓ Should search by Identifier-type element
- ✓ Should search by logical identifier (Resource.id)
✓ 4 Passed✕ 0 Failed
- ✓ Should allow additional search criteria with logical id search
- ✓ Should allow including additional resources in logical id search
- ✓ Should return a bundle even when logical id does not exist
- ✓ Should return a bundle when searching by logical id
✓ 4 Passed✕ 0 Failed
- ✓ Should combine _in search with additional criteria
- ✓ Should handle _list search with empty list
- ✓ Should search for conditions in a list using _list parameter
- ✓ Should search for Observations in a Patient compartment using _in parameter
✓ 3 Passed✕ 0 Failed
- ✓ Should handle multiple identifiers for a single patient
- ✓ Should search for a patient by identifier
- ✓ Should search for encounters by patient identifier using chaining
✓ 2 Passed✕ 0 Failed
- ✓ Should search encounters by patient identifier using :identifier modifier
- ✓ Should search encounters by patient identifier using chaining
✓ 2 Passed✕ 0 Failed
- ✓ Should search for a ValueSet by its canonical URL
- ✓ Should search for resources referencing a canonical resource
✓ 3 Passed✕ 0 Failed
- ✓ Should search for resources with canonical references
- ✓ Should search for resources with canonical references using :below modifier
- ✓ Should search for resources with versioned references
✓ 3 Passed✕ 0 Failed
- ✓ Should find ValueSets in hierarchy using :above modifier
- ✓ Should find ValueSets using :below modifier
- ✓ Should handle :above/:below modifiers on non-hierarchical references
✓ 4 Passed✕ 0 Failed
- ✓ Should find all image DocumentReferences using :below modifier on first segment
- ✓ Should find DocumentReference with exact MIME type match
- ✓ Should find DocumentReference with MIME type and charset using :below modifier
- ✓ Should not find non-matching MIME types when using :below modifier
✓ 4 Passed✕ 0 Failed
- ✓ Should find DiagnosticReports with chained patient name search
- ✓ Should find DiagnosticReports with chained patient name search and explicit type
- ✓ Should handle multiple independent chained parameters with AND logic
- ✓ Should reject search with ambiguous resource types in chained parameters
✓ 4 Passed✕ 0 Failed
- ✓ Should find Patients with a specific Observation code
- ✓ Should handle _has parameter in chained-searches
- ✓ Should handle multiple _has parameters
- ✓ Should handle nested _has parameters
✓ 4 Passed✕ 0 Failed
- ✓ Should only return AllergyIntolerance resources with active clinical status
- ✓ Should return AllergyIntolerance resources with missing clinical status
- ✓ Should return both active and missing clinical status AllergyIntolerance resources using _filter
- ✓ Should return empty result when combining active status and missing modifier
✓ 4 Passed✕ 0 Failed
- ✓ Should find observations with specific code and patient name using _filter
- ✓ Should find observations with specific code and patient name using standard search
- ✓ Should handle _filter with date comparisons
- ✓ Should handle complex _filter queries
✓ 5 Passed✕ 0 Failed
- ✓ Should handle searches with multiple resource types and multiple parameters
- ✓ Should return an error when using incompatible parameters across multiple resource types
- ✓ Should search across multiple specified resource types using base parameters
- ✓ Should search across multiple specified resource types using common parameters
- ✓ Should search using type-specific parameters when a single type is specified
✓ 4 Passed✕ 0 Failed
- ✓ Should find explicit CodeSystem resources
- ✓ Should handle search for created CodeSystem resources
- ✓ Should handle search for implicit CodeSystem resources
- ✓ Should handle search including both explicit and implicit CodeSystem resources
✓ 7 Passed✕ 0 Failed
- ✓ Should execute a named query with a specific parameter
- ✓ Should execute a named query with a standard search parameter
- ✓ Should execute a named query with both specific and standard parameters
- ✓ Should execute a named query without additional parameters
- ✓ Should handle named query with unordered parameters
- ✓ Should not allow invoking named query via search endpoint
- ✓ Should return OperationDefinition for named query
✓ 8 Passed✕ 0 Failed
- ✓ Should handle multiple occurrences of non-repeatable search result parameters as an error
- ✓ Should include referenced resources using _include
- ✓ Should include resources with reverse references using _revinclude
- ✓ Should limit the number of results per page using _count
- ✓ Should limit total results using _maxresults
- ✓ Should return a summary of resources using _summary
- ✓ Should return only specified elements using _elements
- ✓ Should sort results using _sort
✓ 6 Passed✕ 0 Failed
- ✓ Should sort case-insensitively on string parameters
- ✓ Should sort date-based resources
- ✓ Should sort on code parameters
- ✓ Should sort results in ascending order
- ✓ Should sort results in descending order
- ✓ Should sort results using multiple sort parameters
✓ 5 Passed✕ 0 Failed
- ✓ Should handle _total parameter with invalid value
- ✓ Should not return total count when _total=none
- ✓ Should return an accurate count when _total=accurate
- ✓ Should return an estimate when _total=estimate
- ✓ Should return total count by default
✓ 5 Passed✕ 0 Failed
- ✓ Should limit the number of returned resources based on _count
- ✓ Should not return more resources than requested with _count
- ✓ Should respect _count parameter in subsequent pages
- ✓ Should return a count-only response when _count=0
- ✓ Should return only the latest resource when using _sort and _count=1
✓ 4 Passed✕ 0 Failed
- ✓ Should include _maxresults in the Self Link
- ✓ Should limit the total number of returned resources based on _maxresults
- ✓ Should respect paging requirements when using _maxresults and _count
- ✓ Should return only the latest resource when using _sort and _maxresults=1
✓ 9 Passed✕ 0 Failed
- ✓ Should allow _include with other _summary values
- ✓ Should mark summarized resources with SUBSETTED tag
- ✓ Should not allow _include with _summary=text
- ✓ Should not allow _revinclude with _summary=text
- ✓ Should remove the text element when _summary=data
- ✓ Should return a limited subset of elements when _summary=true
- ✓ Should return all parts of the resource when _summary=false
- ✓ Should return only a count when _summary=count
- ✓ Should return only text, id, meta, and top-level mandatory elements when _summary=text
✓ 5 Passed✕ 0 Failed
- ✓ Should apply _elements restrictions to included resources while preserving mandatory elements
- ✓ Should handle _elements with [x] elements correctly
- ✓ Should mark resources with SUBSETTED tag when using _elements
- ✓ Should return mandatory elements even if not specified
- ✓ Should return only specified elements plus mandatory elements
✓ 4 Passed✕ 0 Failed
- ✓ Should handle _score parameter in combination with other search parameters
- ✓ Should not return scores when not using _score sort
- ✓ Should return higher scores for better matches
- ✓ Should return relevance scores when using a non-deterministic sort
✓ 5 Passed✕ 0 Failed
- ✓ Should include referenced resources with _include
- ✓ Should include referencing resources with _revinclude
- ✓ Should support _include with specific target type
- ✓ Should support iterative _include
- ✓ Should support wildcard _revinclude
✓ 3 Passed✕ 0 Failed
- ✓ Should find DocumentReference in base search without identifier parameter
- ✓ Should include non-Resource entities as Binary resources when using _include
- ✓ Should include resources from external servers when using _include
✓ 3 Passed✕ 0 Failed
- ✓ Should handle _graph parameter with invalid GraphDefinition reference
- ✓ Should handle _graph parameter with non-existent GraphDefinition
- ✓ Should include resources based on GraphDefinition when using _graph
✓ 4 Passed✕ 0 Failed
- ✓ Should find MedicationRequest with contained Medication using chained search
- ✓ Should not find contained Medication when searching directly
- ✓ Should return contained Medication when using _contained=true and _containedType=contained
- ✓ Should return container MedicationRequest when using _contained=true and _containedType=container
✓ 3 Passed✕ 0 Failed
- ✓ Should handle _include with multiple pages and different included resources per page
- ✓ Should return _include resources on each page
- ✓ Should return paged results with _revinclude respecting server hard limit
✓ 2 Passed✕ 0 Failed
- ✓ Should support all permitted modifiers for base SearchParameters
- ✓ Should support standard search parameters listed in the specification
✓ 21 Passed✕ 0 Failed
- ✓ Should find Conditions in a List
- ✓ Should find Encounters for Patients in a Group
- ✓ Should find Medications not in an allergy List
- ✓ Should find Patients which are participants of a CareTeam (optional extension)
- ✓ Should find resources in a Group
- ✓ Should not return inactive or excluded members
- ✓ Should support _content parameter
- ✓ Should support _filter parameter
- ✓ Should support _has parameter
- ✓ Should support _id parameter
- ✓ Should support _in parameter with Group resource
- ✓ Should support _language parameter
- ✓ Should support _lastUpdated parameter
- ✓ Should support _list parameter with standard functional list
- ✓ Should support _profile parameter
- ✓ Should support _security parameter
- ✓ Should support _source parameter
- ✓ Should support _tag parameter
- ✓ Should support _text parameter
- ✓ Should support _type parameter
- ✓ Should support $lastn named query for Observations
✓ 4 Passed✕ 0 Failed
- ✓ Should find Observation with _content in code
- ✓ Should find Observation with _content in display
- ✓ Should find Observation with _content in valueCodeableConcept
- ✓ Should support OR logic in _content parameter
✓ 5 Passed✕ 0 Failed
- ✓ Should find Patients with specific Observations using _has
- ✓ Should return no results when _has condition is not met
- ✓ Should support _has with other search parameters
- ✓ Should support multiple _has parameters
- ✓ Should support nested _has parameters
✓ 6 Passed✕ 0 Failed
- ✓ Should combine _id with other search parameters
- ✓ Should find a Patient using _id parameter
- ✓ Should not allow _id without resource type
- ✓ Should not find a Patient using non-existent _id
- ✓ Should only search within specified resource type
- ✓ Should perform exact match on _id (case-sensitive)
✓ 6 Passed✕ 0 Failed
- ✓ Should find Questionnaire resources with specific language
- ✓ Should handle case-insensitive language search
- ✓ Should handle invalid language code
- ✓ Should handle multiple language search
- ✓ Should not find Questionnaire resources with different language
- ✓ Should work with other search parameters
✓ 5 Passed✕ 0 Failed
- ✓ Should find resources updated after a specific date
- ✓ Should find resources updated within a date range
- ✓ Should handle invalid date format
- ✓ Should handle multiple resource types with _lastUpdated
- ✓ Should not find resources updated before a specific date
✓ 5 Passed✕ 0 Failed
- ✓ Should combine _list with other search parameters
- ✓ Should find Conditions referenced by a specific List
- ✓ Should find resources referenced by a specific List
- ✓ Should handle functional list for current allergies
- ✓ Should return empty result for non-existent List
✓ 6 Passed✕ 0 Failed
- ✓ Should combine _profile with other search parameters
- ✓ Should find resources with a specific profile
- ✓ Should find resources with multiple profiles
- ✓ Should handle invalid profile URL
- ✓ Should not find resources without the specified profile
- ✓ Should work with _profile across different resource types
✓ 4 Passed✕ 0 Failed
- ✓ Should execute $everything operation successfully
- ✓ Should execute $lastn operation with additional parameters
- ✓ Should execute $validate operation on multiple resource types
- ✓ Should reject request with unrecognized operation name
✓ 7 Passed✕ 0 Failed
- ✓ Should combine _security with other search parameters
- ✓ Should find resources with a specific security label
- ✓ Should find resources with multiple security labels
- ✓ Should find resources with only system specified (_security)
- ✓ Should handle invalid security label
- ✓ Should not find resources without the specified security label
- ✓ Should work with _security across different resource types
✓ 7 Passed✕ 0 Failed
- ✓ Should combine _source with other search parameters
- ✓ Should find resources with a specific source
- ✓ Should handle invalid source URI
- ✓ Should handle multiple _source parameters
- ✓ Should handle partial matches on source URI
- ✓ Should not find resources without the specified source
- ✓ Should work with _source across different resource types
✓ 8 Passed✕ 0 Failed
- ✓ Should combine _tag with other search parameters
- ✓ Should find resources with a specific tag
- ✓ Should find resources with multiple tags
- ✓ Should find resources with only code specified
- ✓ Should find resources with only system specified
- ✓ Should handle invalid tag
- ✓ Should not find resources without the specified tag
- ✓ Should work with _tag across different resource types
✓ 7 Passed✕ 0 Failed
- ✓ Should combine _text with other search parameters
- ✓ Should find resources with specific text in narrative
- ✓ Should find resources with text in code.text
- ✓ Should handle partial word matches in _text search
- ✓ Should support combined AND/OR logic in _text parameter (optional extension)
- ✓ Should support OR logic in _text parameter
- ✓ Should work with _text across different resource types
✓ 7 Passed✕ 0 Failed
- ✓ Should accept _type with search parameters common to all resource types
- ✓ Should combine _type with other search parameters
- ✓ Should filter resources by multiple types
- ✓ Should filter resources by single type
- ✓ Should reject _type with search parameters specific to one resource type (FHIR-conform)
- ✓ Should require case-sensitive resource type
- ✓ Should return empty result for non-existent resource type
✓ 6 Passed✕ 0 Failed
- ✓ Should handle multiple paths for a single search parameter
- ✓ Should search observations by code
- ✓ Should search observations by date
- ✓ Should search patients by birthdate
- ✓ Should search patients by name
- ✓ Should support _id parameter for all resource types
✓ 6 Passed✕ 0 Failed
- ✓ Should handle sophisticated text search with proximity and thesaurus considerations
- ✓ Should search using _content parameter across entire resource content
- ✓ Should search using _content parameter with multiple words and logical operators
- ✓ Should search using _text parameter with multiple words and AND logic
- ✓ Should search using _text parameter with multiple words and OR logic
- ✓ Should search using _text parameter with single word
✓ 7 Passed✕ 0 Failed
- ✓ Should handle unsupported search parameters gracefully
- ✓ Should honor _count parameter
- ✓ Should honor _sort parameter
- ✓ Should not be case-sensitive for parameter names
- ✓ Should return used search parameters in the self link
- ✓ Should support _include parameter when applicable
- ✓ Should support parameter chaining when applicable
✓ 3 Passed✕ 0 Failed
- ✓ Should handle updates to resources during paged search
- ✓ Should not change the set of resources on the server (except possibly AuditEvent)
- ✓ Should return current results at the time of search execution