Serenity BDD Report
Home > Requirements > Stufe5 > Medikation > Testing search parameters against a resource of type practitioner, according to the definition of isikcapabilitystatementleistungserbringerrolle (@practitioner-search)
Report generated 01-09-2026 07:04

Feature: Testing search parameters against a resource of type practitioner, according to the definition of isikcapabilitystatementleistungserbringerrolle (@practitioner-search)

Scenarios

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"

Examples:

searchParamValuesearchParamType
_idtoken
_countnumber
identifiertoken
givenstring
familystring

Examples:

searchParamValuesearchParamType
_tagtoken
namestring
addressstring
gendertoken

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'

Feature Coverage By Scenario

Test Outcomes

Test Performance

Key Statistics

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

Automated Tests

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 SUCCESS
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 SUCCESS
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 SUCCESS
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 SUCCESS
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 SUCCESS
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 SUCCESS
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 SUCCESS
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 SUCCESS
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 SUCCESS
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 SUCCESS
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 SUCCESS
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 SUCCESS
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 SUCCESS

Manual Tests

No manual tests were recorded

Evidence

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
Serenity BDD version 5.3.10