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.medication-practitioner-id}" with content type "xml"
And response bundle contains resource with ID "${data.medication-practitioner-id}" with error message "The requested Practitioner resource ${data.medication-practitioner-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"
And Check if current response of resource "Practitioner" is valid isik5 resource and conforms to profile "https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf"
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 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 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 Post FHIR search request to "http://fhirserver/Practitioner/_search" with content type "xml" and parameters:
| given | _count |
|---|---|
| Walter | ${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.given.where($this.startsWith('Walter')).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:
| family | _count |
|---|---|
| Musterarzt | ${data.search-count} |
When Get FHIR resource at "http://fhirserver/Practitioner/?family=Musterarzt&_id=${data.medication-practitioner-id}" with content type "json"
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.where($this.startsWith('Musterarzt')).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:
| given | _count |
|---|---|
| NotExistingName | ${data.search-count} |
When Get FHIR resource at "http://fhirserver/Practitioner/?given=Max&_id=${data.medication-practitioner-id}" with content type "xml"
And FHIR current response body evaluates the FHIRPath 'entry.resource.count() = 0' with error message 'Invalid search results were found'
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 | 13 | Total Duration | 25s |
| Total Number of Test Cases | 21 | Fastest Test | 286ms |
| Number of Manual Test Cases | 0 | Slowest Test | 8s |
| Tests Started | Sep 01, 2026 07:04:04 | Average Execution Time | 1s |
| Tests Finished | Sep 01, 2026 07:04:29 |
Cumulative Test Time
(sum of all individual test durations) |
24s |
| feature | Scenario | Context | Steps | Started | Total Duration | Result |
|---|---|---|---|---|---|---|
| Testing search parameters against a resource of type Practitioner, according to the definition of ISiKCapabilityStatementLeistungserbringerRolle (@Practitioner-Search) | Precondition | 2 | 07:04:04 | 427ms | ||
| Testing search parameters against a resource of type Practitioner, according to the definition of ISiKCapabilityStatementLeistungserbringerRolle (@Practitioner-Search) | Read and Validation of the CapabilityStatement | 2 | 07:04:04 | 8s 807ms | ||
| Testing search parameters against a resource of type Practitioner, according to the definition of ISiKCapabilityStatementLeistungserbringerRolle (@Practitioner-Search) |
Validation of the search parameter definitions in the CapabilityStatement
9 passing test cases |
1 | 07:04:13 | 3s 105ms | ||
| Testing search parameters against a resource of type Practitioner, according to the definition of ISiKCapabilityStatementLeistungserbringerRolle (@Practitioner-Search) | Search for Practitioner resource by ID | 4 | 07:04:16 | 979ms | ||
| Testing search parameters against a resource of type Practitioner, according to the definition of ISiKCapabilityStatementLeistungserbringerRolle (@Practitioner-Search) | Search for Practitioner resource by Identifier LANR | 3 | 07:04:17 | 683ms | ||
| Testing search parameters against a resource of type Practitioner, according to the definition of ISiKCapabilityStatementLeistungserbringerRolle (@Practitioner-Search) | Search for Practitioner resource by Identifier Telematik-ID | 3 | 07:04:18 | 692ms | ||
| Testing search parameters against a resource of type Practitioner, according to the definition of ISiKCapabilityStatementLeistungserbringerRolle (@Practitioner-Search) | Search for Practitioners that have the given Name "Walter", group by _count | 3 | 07:04:19 | 680ms | ||
| Testing search parameters against a resource of type Practitioner, according to the definition of ISiKCapabilityStatementLeistungserbringerRolle (@Practitioner-Search) | Search for Practitioners that have the family Name "Musterarzt", group by _count | 4 | 07:04:19 | 967ms | ||
| Testing search parameters against a resource of type Practitioner, according to the definition of ISiKCapabilityStatementLeistungserbringerRolle (@Practitioner-Search) | (Negative Test) Search for Practitioners that have the given Name "NotExistingName", group by _count | 3 | 07:04:20 | 5s 731ms | ||
| Testing search parameters against a resource of type Practitioner, according to the definition of ISiKCapabilityStatementLeistungserbringerRolle (@Practitioner-Search) | Optional Search for Practitioners that have the given Tag, group by _count | 3 | 07:04:26 | 767ms | ||
| Testing search parameters against a resource of type Practitioner, according to the definition of ISiKCapabilityStatementLeistungserbringerRolle (@Practitioner-Search) | Optional Search for Practitioners that have the Name "Musterarzt", group by _count | 3 | 07:04:27 | 677ms | ||
| Testing search parameters against a resource of type Practitioner, according to the definition of ISiKCapabilityStatementLeistungserbringerRolle (@Practitioner-Search) | Optional Search for Practitioners that have the Address that contains "Musterweg", group by _count | 3 | 07:04:27 | 679ms | ||
| Testing search parameters against a resource of type Practitioner, according to the definition of ISiKCapabilityStatementLeistungserbringerRolle (@Practitioner-Search) | Optional Search for Practitioners that have the Gender "male", group by _count | 3 | 07:04:28 | 686ms |
| 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 = '_tag' and type = 'token').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 = 'name' and type = 'string').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 = 'address' 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 = 'gender' and type = 'token').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 |
| 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 | INFO - This element does not match any known slice defined in the profile https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf|5.1.2 | Details |
| Search for Practitioner resource by ID | WARN - Rule add-7: 'Wenn die Extension 'Precinct' (Stadtteil) verwendet wird, dann muss diese Information auch als separates line-item abgebildet sein.' Failed | Details |
| Search for Practitioner resource by ID | INFO - This element does not match any known slice defined in the profile https://gematik.de/fhir/ti/StructureDefinition/ti-practitioner|1.1.1 | 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 Identifier LANR | INFO - entry.resource.count() > 0 | 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.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 Practitioners that have the given Name "Walter", group by _count | INFO - entry.resource.count() > 0 and entry.resource.count() <= 20 | Details |
| Search for Practitioners that have the given Name "Walter", group by _count | INFO - entry.resource.all(name.given.where($this.startsWith('Walter')).exists()) | Details |
| Search for Practitioners that have the given Name "Walter", group by _count | RBellog 0 | Download Evidence |
| Search for Practitioners that have the given Name "Walter", group by _count | Evidence Report | Download Evidence |
| Search for Practitioners that have the family Name "Musterarzt", group by _count | INFO - entry.resource.count() > 0 and entry.resource.count() <= 20 | Details |
| Search for Practitioners that have the family Name "Musterarzt", group by _count | INFO - entry.resource.all(name.family.where($this.startsWith('Musterarzt')).exists()) | Details |
| Search for Practitioners that have the family Name "Musterarzt", group by _count | RBellog 0 | Download Evidence |
| Search for Practitioners that have the family Name "Musterarzt", group by _count | Evidence Report | Download Evidence |
| (Negative Test) Search for Practitioners that have the given Name "NotExistingName", group by _count | INFO - entry.resource.count() = 0 | Details |
| (Negative Test) Search for Practitioners that have the given Name "NotExistingName", group by _count | RBellog 0 | Download Evidence |
| (Negative Test) Search for Practitioners that have the given Name "NotExistingName", group by _count | 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 |