Given the Test Description: "The system under test MUST find a previously created resource when searched using the parameter and return it in the search results (SEARCH)."
Given the Preconditions: - The Practitioner-Read test case must have been executed successfully beforehand.
When Get FHIR resource at "http://fhirserver/metadata" with content type "xml"
And CapabilityStatement contains interaction "search-type" for resource "Practitioner"
And CapabilityStatement contains definition of search parameter "{searchParamValue}" of type "{searchParamType}" for resource "Practitioner"
When Get FHIR resource at "http://fhirserver/Practitioner/?_id=${data.practitioner-read-id}" with content type "xml"
And response bundle contains resource with ID "${data.practitioner-read-id}" with error message "The requested Practitioner resource ${data.practitioner-read-id} is not contained in the response bundle"
And FHIR current response body is a valid CORE resource and conforms to profile "https://hl7.org/fhir/StructureDefinition/Bundle"
When Get FHIR resource at "http://fhirserver/Practitioner/?_count" with content type "xml"
And FHIR current response body evaluates the FHIRPath 'total } 0 and entry.resource.count() } 0' with error message 'No search results were found'
When Get FHIR resource at "http://fhirserver/Practitioner/?identifier=https://fhir.kbv.de/NamingSystem/KBV_NS_Base_ANR%7C123456789" with content type "json"
And FHIR current response body evaluates the FHIRPath 'entry.resource.count() } 0' with error message 'No search results were found'
And response bundle contains resource with ID "${data.practitioner-read-id}" with error message "The requested Practitioner resource ${data.practitioner-read-id} is not contained in the response bundle"
And FHIR current response body evaluates the FHIRPath "entry.resource.all(identifier.where(system='https://fhir.kbv.de/NamingSystem/KBV_NS_Base_ANR' and value='123456789').exists())" with error message 'There are search results, but they do not fully match the search criteria'
When Get FHIR resource at "http://fhirserver/Practitioner/?identifier=https%3A%2F%2Fgematik.de%2Ffhir%2Fsid%2Ftelematik-id%7C123456789" with content type "json"
And FHIR current response body evaluates the FHIRPath 'entry.resource.count() } 0' with error message 'No search results were found'
And response bundle contains resource with ID "${data.practitioner-read-id}" with error message "The requested Practitioner resource ${data.practitioner-read-id} is not contained in the response bundle"
And FHIR current response body evaluates the FHIRPath "entry.resource.all(identifier.where(system='https://gematik.de/fhir/sid/telematik-id' and value='123456789').exists())" with error message 'There are search results, but they do not fully match the search criteria'
When Get FHIR resource at "http://fhirserver/Practitioner/?given=Walter&_id=${data.practitioner-read-id}" with content type "json"
And FHIR current response body evaluates the FHIRPath 'entry.resource.count() } 0' with error message 'No search results were found'
And FHIR current response body evaluates the FHIRPath "entry.resource.all(name.given.where($this.startsWith('Walter')).exists())" with error message 'There are search results, but they do not fully match the search criteria'
And response bundle contains resource with ID "${data.practitioner-read-id}" with error message "The requested Practitioner resource ${data.practitioner-read-id} is not contained in the response bundle"
When Get FHIR resource at "http://fhirserver/Practitioner/?family=Musterarzt&_id=${data.practitioner-read-id}" with content type "json"
And FHIR current response body evaluates the FHIRPath 'entry.resource.count() } 0' with error message 'No search results were found'
And FHIR current response body evaluates the FHIRPath "entry.resource.all(name.family.where($this.startsWith('Musterarzt')).exists())" with error message 'There are search results, but they do not fully match the search criteria'
And response bundle contains resource with ID "${data.practitioner-read-id}" with error message "The requested Practitioner resource ${data.practitioner-read-id} is not contained in the response bundle"
When Get FHIR resource at "http://fhirserver/Practitioner/?given=Max&_id=${data.practitioner-read-id}" with content type "xml"
And bundle does not contain resource "Practitioner" with ID "${data.practitioner-read-id}" with error message "There are search results, but they do not fully match the search criteria"
When Post FHIR search request to "http://fhirserver/Practitioner/_search" with content type "xml" and parameters:
| _tag | _count |
|---|---|
| ${data.tag-system} | ${data.tag-value} |
And FHIR current response body evaluates the FHIRPath 'entry.resource.count() } 0 and entry.resource.count() {= ${data.search-count}' with error message 'Invalid search results were found'
And FHIR current response body evaluates the FHIRPath "entry.resource.all(meta.tag.where(code='${data.tag-value}').exists())" with error message 'There are search results, but they do not fully match the search criteria'
When Post FHIR search request to "http://fhirserver/Practitioner/_search" with content type "xml" and parameters:
| name | _count |
|---|---|
| Musterarzt | ${data.search-count} |
And FHIR current response body evaluates the FHIRPath 'entry.resource.count() } 0 and entry.resource.count() {= ${data.search-count}' with error message 'Invalid search results were found'
And FHIR current response body evaluates the FHIRPath "entry.resource.all(name.family contains 'Musterarzt')" with error message 'There are search results, but they do not fully match the search criteria'
When Post FHIR search request to "http://fhirserver/Practitioner/_search" with content type "xml" and parameters:
| address:contains | _count |
|---|---|
| Musterweg | ${data.search-count} |
And FHIR current response body evaluates the FHIRPath 'entry.resource.count() } 0 and entry.resource.count() {= ${data.search-count}' with error message 'Invalid search results were found'
And FHIR current response body evaluates the FHIRPath "entry.resource.all(address.where(line.contains('Musterweg')).count()=1)" with error message 'There are search results, but they do not fully match the search criteria'
When Post FHIR search request to "http://fhirserver/Practitioner/_search" with content type "xml" and parameters:
| gender | _count |
|---|---|
| male | ${data.search-count} |
And FHIR current response body evaluates the FHIRPath 'entry.resource.count() } 0 and entry.resource.count() {= ${data.search-count}' with error message 'Invalid search results were found'
And FHIR current response body evaluates the FHIRPath "entry.resource.all(gender = 'male')" with error message 'There are search results, but they do not fully match the search criteria'
| Number of Scenarios | 14 | Total Duration | 29s |
| Total Number of Test Cases | 23 | Fastest Test | 324ms |
| Number of Manual Test Cases | 0 | Slowest Test | 6s |
| Tests Started | Sep 01, 2026 07:12:15 | Average Execution Time | 1s |
| Tests Finished | Sep 01, 2026 07:12:44 |
Cumulative Test Time
(sum of all individual test durations) |
29s |
| feature | Scenario | Context | Steps | Started | Total Duration | Result |
|---|---|---|---|---|---|---|
| Testing search parameters against a resource of type Practitioner (@Practitioner-Search) | Precondition | 2 | 07:12:15 | 499ms | ||
| Testing search parameters against a resource of type Practitioner (@Practitioner-Search) | Read and Validation of the CapabilityStatement | 2 | 07:12:16 | 6s 090ms | ||
| Testing search parameters against a resource of type Practitioner (@Practitioner-Search) |
Validation of the search parameter definitions in the CapabilityStatement
10 passing test cases |
1 | 07:12:22 | 8s 950ms | ||
| Testing search parameters against a resource of type Practitioner (@Practitioner-Search) | Search for Practitioner resource by ID | 3 | 07:12:31 | 809ms | ||
| Testing search parameters against a resource of type Practitioner (@Practitioner-Search) | Search for Practitioner resource by Count | 2 | 07:12:32 | 545ms | ||
| Testing search parameters against a resource of type Practitioner (@Practitioner-Search) | Search for Practitioner resource by Identifier LANR | 4 | 07:12:32 | 999ms | ||
| Testing search parameters against a resource of type Practitioner (@Practitioner-Search) | Search for Practitioner resource by Identifier Telematik-ID | 4 | 07:12:33 | 988ms | ||
| Testing search parameters against a resource of type Practitioner (@Practitioner-Search) | Search for Practitioner resource by First Name (given) and ID | 4 | 07:12:34 | 960ms | ||
| Testing search parameters against a resource of type Practitioner (@Practitioner-Search) | Search for Practitioner resource by Last Name (family) and ID | 4 | 07:12:35 | 908ms | ||
| Testing search parameters against a resource of type Practitioner (@Practitioner-Search) | Search for Practitioner resource by First Name (negative test) and ID | 2 | 07:12:36 | 506ms | ||
| Testing search parameters against a resource of type Practitioner (@Practitioner-Search) | Optional Search for Practitioners that have the given Tag, group by _count | 3 | 07:12:37 | 715ms | ||
| Testing search parameters against a resource of type Practitioner (@Practitioner-Search) | Optional Search for Practitioners that have the Name "Musterarzt", group by _count | 3 | 07:12:37 | 690ms | ||
| Testing search parameters against a resource of type Practitioner (@Practitioner-Search) | Optional Search for Practitioners that have the Address that contains "Musterweg", group by _count | 3 | 07:12:38 | 5s 706ms | ||
| Testing search parameters against a resource of type Practitioner (@Practitioner-Search) | Optional Search for Practitioners that have the Gender "male", group by _count | 3 | 07:12:44 | 696ms |
| Scenario | Title | Details |
|---|---|---|
| Precondition | RBellog 0 | Download Evidence |
| Read and Validation of the CapabilityStatement | INFO - rest.where(mode = 'server').resource.where(type = 'Practitioner' and interaction.where(code = 'search-type').exists()).exists() | Details |
| Read and Validation of the CapabilityStatement | RBellog 0 | Download Evidence |
| Read and Validation of the CapabilityStatement | Evidence Report | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | INFO - rest.where(mode = 'server').resource.where(type = 'Practitioner' and searchParam.where(name = '_id' and type = 'token').exists()).exists() | Details |
| Validation of the search parameter definitions in the CapabilityStatement | RBellog 1 | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | Evidence Report | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | INFO - rest.where(mode = 'server').resource.where(type = 'Practitioner' and searchParam.where(name = '_count' and type = 'number').exists()).exists() | Details |
| Validation of the search parameter definitions in the CapabilityStatement | RBellog 2 | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | Evidence Report | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | INFO - rest.where(mode = 'server').resource.where(type = 'Practitioner' and searchParam.where(name = 'identifier' and type = 'token').exists()).exists() | Details |
| Validation of the search parameter definitions in the CapabilityStatement | RBellog 3 | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | Evidence Report | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | INFO - rest.where(mode = 'server').resource.where(type = 'Practitioner' and searchParam.where(name = 'given' and type = 'string').exists()).exists() | Details |
| Validation of the search parameter definitions in the CapabilityStatement | RBellog 4 | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | Evidence Report | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | INFO - rest.where(mode = 'server').resource.where(type = 'Practitioner' and searchParam.where(name = 'family' and type = 'string').exists()).exists() | Details |
| Validation of the search parameter definitions in the CapabilityStatement | RBellog 5 | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | Evidence Report | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | INFO - rest.where(mode = 'server').resource.where(type = 'Practitioner' and searchParam.where(name = '_has' and type = 'string').exists()).exists() | Details |
| Validation of the search parameter definitions in the CapabilityStatement | RBellog 6 | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | Evidence Report | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | INFO - rest.where(mode = 'server').resource.where(type = 'Practitioner' and searchParam.where(name = '_tag' and type = 'token').exists()).exists() | Details |
| Validation of the search parameter definitions in the CapabilityStatement | RBellog 7 | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | Evidence Report | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | INFO - rest.where(mode = 'server').resource.where(type = 'Practitioner' and searchParam.where(name = 'name' and type = 'string').exists()).exists() | Details |
| Validation of the search parameter definitions in the CapabilityStatement | RBellog 8 | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | Evidence Report | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | INFO - rest.where(mode = 'server').resource.where(type = 'Practitioner' and searchParam.where(name = 'address' and type = 'string').exists()).exists() | Details |
| Validation of the search parameter definitions in the CapabilityStatement | RBellog 9 | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | Evidence Report | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | INFO - rest.where(mode = 'server').resource.where(type = 'Practitioner' and searchParam.where(name = 'gender' and type = 'token').exists()).exists() | Details |
| Validation of the search parameter definitions in the CapabilityStatement | RBellog 10 | Download Evidence |
| Validation of the search parameter definitions in the CapabilityStatement | Evidence Report | Download Evidence |
| Search for Practitioner resource by ID | INFO - entry.resource.where(id.replaceMatches('/_history/.+','').matches('\\bPractitioner-Read-Example$')).count() = 1 | Details |
| Search for Practitioner resource by ID | WARN - Profile reference 'https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf' has not been checked because it is unknown | Details |
| Search for Practitioner resource by ID | WARN - Resource meta.profile differs from the passed profile for validation: meta.profile=[]; passed=https://hl7.org/fhir/StructureDefinition/Bundle | Details |
| Search for Practitioner resource by ID | RBellog 0 | Download Evidence |
| Search for Practitioner resource by ID | Evidence Report | Download Evidence |
| Search for Practitioner resource by Count | INFO - total > 0 and entry.resource.count() > 0 | Details |
| Search for Practitioner resource by Count | RBellog 0 | Download Evidence |
| Search for Practitioner resource by Count | Evidence Report | Download Evidence |
| Search for Practitioner resource by Identifier LANR | INFO - entry.resource.count() > 0 | Details |
| Search for Practitioner resource by Identifier LANR | INFO - entry.resource.where(id.replaceMatches('/_history/.+','').matches('\\bPractitioner-Read-Example$')).count() = 1 | Details |
| Search for Practitioner resource by Identifier LANR | INFO - entry.resource.all(identifier.where(system='https://fhir.kbv.de/NamingSystem/KBV_NS_Base_ANR' and value='123456789').exists()) | Details |
| Search for Practitioner resource by Identifier LANR | RBellog 0 | Download Evidence |
| Search for Practitioner resource by Identifier LANR | Evidence Report | Download Evidence |
| Search for Practitioner resource by Identifier Telematik-ID | INFO - entry.resource.count() > 0 | Details |
| Search for Practitioner resource by Identifier Telematik-ID | INFO - entry.resource.where(id.replaceMatches('/_history/.+','').matches('\\bPractitioner-Read-Example$')).count() = 1 | Details |
| Search for Practitioner resource by Identifier Telematik-ID | INFO - entry.resource.all(identifier.where(system='https://gematik.de/fhir/sid/telematik-id' and value='123456789').exists()) | Details |
| Search for Practitioner resource by Identifier Telematik-ID | RBellog 0 | Download Evidence |
| Search for Practitioner resource by Identifier Telematik-ID | Evidence Report | Download Evidence |
| Search for Practitioner resource by First Name (given) and ID | INFO - entry.resource.count() > 0 | Details |
| Search for Practitioner resource by First Name (given) and ID | INFO - entry.resource.all(name.given.where($this.startsWith('Walter')).exists()) | Details |
| Search for Practitioner resource by First Name (given) and ID | INFO - entry.resource.where(id.replaceMatches('/_history/.+','').matches('\\bPractitioner-Read-Example$')).count() = 1 | Details |
| Search for Practitioner resource by First Name (given) and ID | RBellog 0 | Download Evidence |
| Search for Practitioner resource by First Name (given) and ID | Evidence Report | Download Evidence |
| Search for Practitioner resource by Last Name (family) and ID | INFO - entry.resource.count() > 0 | Details |
| Search for Practitioner resource by Last Name (family) and ID | INFO - entry.resource.all(name.family.where($this.startsWith('Musterarzt')).exists()) | Details |
| Search for Practitioner resource by Last Name (family) and ID | INFO - entry.resource.where(id.replaceMatches('/_history/.+','').matches('\\bPractitioner-Read-Example$')).count() = 1 | Details |
| Search for Practitioner resource by Last Name (family) and ID | RBellog 0 | Download Evidence |
| Search for Practitioner resource by Last Name (family) and ID | Evidence Report | Download Evidence |
| Search for Practitioner resource by First Name (negative test) and ID | INFO - entry.resource.ofType(Practitioner).where(id.replaceMatches('/_history/.+','').matches('\\bPractitioner-Read-Example$')).count() = 0 | Details |
| Search for Practitioner resource by First Name (negative test) and ID | RBellog 0 | Download Evidence |
| Search for Practitioner resource by First Name (negative test) and ID | Evidence Report | Download Evidence |
| Optional Search for Practitioners that have the given Tag, group by _count | INFO - entry.resource.count() > 0 and entry.resource.count() <= 20 | Details |
| Optional Search for Practitioners that have the given Tag, group by _count | INFO - entry.resource.all(meta.tag.where(code='external').exists()) | Details |
| Optional Search for Practitioners that have the given Tag, group by _count | RBellog 0 | Download Evidence |
| Optional Search for Practitioners that have the given Tag, group by _count | Evidence Report | Download Evidence |
| Optional Search for Practitioners that have the Name "Musterarzt", group by _count | INFO - entry.resource.count() > 0 and entry.resource.count() <= 20 | Details |
| Optional Search for Practitioners that have the Name "Musterarzt", group by _count | INFO - entry.resource.all(name.family contains 'Musterarzt') | Details |
| Optional Search for Practitioners that have the Name "Musterarzt", group by _count | RBellog 0 | Download Evidence |
| Optional Search for Practitioners that have the Name "Musterarzt", group by _count | Evidence Report | Download Evidence |
| Optional Search for Practitioners that have the Address that contains "Musterweg", group by _count | INFO - entry.resource.count() > 0 and entry.resource.count() <= 20 | Details |
| Optional Search for Practitioners that have the Address that contains "Musterweg", group by _count | INFO - entry.resource.all(address.where(line.contains('Musterweg')).count()=1) | Details |
| Optional Search for Practitioners that have the Address that contains "Musterweg", group by _count | RBellog 0 | Download Evidence |
| Optional Search for Practitioners that have the Address that contains "Musterweg", group by _count | Evidence Report | Download Evidence |
| Optional Search for Practitioners that have the Gender "male", group by _count | INFO - entry.resource.count() > 0 and entry.resource.count() <= 20 | Details |
| Optional Search for Practitioners that have the Gender "male", group by _count | INFO - entry.resource.all(gender = 'male') | Details |
| Optional Search for Practitioners that have the Gender "male", group by _count | RBellog 0 | Download Evidence |
| Optional Search for Practitioners that have the Gender "male", group by _count | Evidence Report | Download Evidence |