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

Feature: Testing search parameters against a resource of type patient, according to the definition of isikcapabilitystatementstammdatenrolle (@patient-search @medikation)

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: - A valid Patient resource conform to the Profile ISiKPatient and with ID defined in the property 'medication-patient-id'

  • Some ISiKPatient Test Instances have been created in the System Under Test for performing different Search Requests

When Get FHIR resource at "http://fhirserver/metadata" with content type "xml"

And CapabilityStatement contains interaction "search-type" for resource "Patient"

And CapabilityStatement contains definition of search parameter "{searchParamValue}" of type "{searchParamType}" for resource "Patient"

Examples:

searchParamValuesearchParamType
_idtoken
_countnumber
identifiertoken
givenstring
familystring
birthdatedate
gendertoken

Examples:

searchParamValuesearchParamType
_hasstring
_tagtoken

When Get FHIR resource at "http://fhirserver/Patient/?_id=${data.medication-patient-id}" with content type "xml"

And FHIR current response body is a valid CORE resource and conforms to profile "https://hl7.org/fhir/StructureDefinition/Bundle"

And response bundle contains resource with ID "${data.medication-patient-id}" with error message "The requested Patient ${data.medication-patient-id} is not contained in the response bundle"

When Get FHIR resource at "http://fhirserver/Patient/?identifier=http://fhir.de/sid/gkv/kvid-10%7CX485231029" 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($this.system = 'http://fhir.de/sid/gkv/kvid-10' and $this.value = 'X485231029').exists())" with error message 'The requested Patient ${data.medication-patient-id} is not contained in the response bundle'

When Post FHIR search request to "http://fhirserver/Patient/_search" with content type "json" and parameters:

family:containsbirthdate_count
Mustermannge1955-06-20${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 'No search results were found'

And FHIR current response body evaluates the FHIRPath "entry.resource.all(name.family.where($this.contains('Mustermann')).exists())" with error message 'There are search results, but they do not fully match the search criteria'

And FHIR current response body evaluates the FHIRPath "entry.resource.all(birthDate }= @1955-06-20)" with error message 'There are search results, but they do not fully match the search criteria'

When Post FHIR search request to "http://fhirserver/Patient/_search" with content type "json" and parameters:

family:containsgender_count
Mustermannmale${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 'No search results were found'

And FHIR current response body evaluates the FHIRPath "entry.resource.all(name.family.where($this.contains('Mustermann')).exists())" with error message 'There are search results, but they do not fully match the search criteria'

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'

When Post FHIR search request to "http://fhirserver/Patient/_search" with content type "xml" and parameters:

_idfamily:contains
NotExistingPatientMustermann

And FHIR current response body evaluates the FHIRPath 'entry.resource.ofType(Patient).count() = 0' with error message 'Search results were found when none were expected'

And bundle does not contain resource "Patient" with ID "NotExistingPatient" with error message "The requested Patient NotExistingPatient is unexpectedly contained in the response bundle"

When Post FHIR search request to "http://fhirserver/Patient/_search" with content type "xml" and parameters:

birthdate
ge1955-06-20

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(birthDate }= @1955-06-20)" with error message 'There are search results, but they do not fully match the search criteria'

When Get FHIR resource at "http://fhirserver/Patient/?_id=${data.medication-patient-id}&family=" with content type "xml"

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.where(id.exists() and id.replaceMatches('/_history/.+','').matches('\b${data.medication-patient-id}$')).count() = 1" with error message 'The requested Patient ${data.medication-patient-id} is not contained in the response bundle'

Feature Coverage By Scenario

Test Outcomes

Test Performance

Key Statistics

Number of Scenarios 10 Total Duration 18s
Total Number of Test Cases 18 Fastest Test 285ms
Number of Manual Test Cases 0 Slowest Test 9s
Tests Started Sep 01, 2026 07:03:45 Average Execution Time 1s
Tests Finished Sep 01, 2026 07:04:04 Cumulative Test Time
(sum of all individual test durations)
18s

Automated Tests

feature Scenario Context Steps Started Total Duration Result
Testing search parameters against a resource of type Patient, according to the definition of ISiKCapabilityStatementStammdatenRolle (@Patient-Search @Medikation) Precondition 2 07:03:45 426ms SUCCESS
Testing search parameters against a resource of type Patient, according to the definition of ISiKCapabilityStatementStammdatenRolle (@Patient-Search @Medikation) Read and Validation of the CapabilityStatement 2 07:03:46 9s 238ms SUCCESS
Testing search parameters against a resource of type Patient, according to the definition of ISiKCapabilityStatementStammdatenRolle (@Patient-Search @Medikation) Validation of the search parameter definitions in the CapabilityStatement
9 passing test cases
1 07:03:55 3s 190ms SUCCESS
Testing search parameters against a resource of type Patient, according to the definition of ISiKCapabilityStatementStammdatenRolle (@Patient-Search @Medikation) Search for Patient by ID 3 07:03:58 754ms SUCCESS
Testing search parameters against a resource of type Patient, according to the definition of ISiKCapabilityStatementStammdatenRolle (@Patient-Search @Medikation) Search for Patient by identifier 3 07:03:59 684ms SUCCESS
Testing search parameters against a resource of type Patient, according to the definition of ISiKCapabilityStatementStammdatenRolle (@Patient-Search @Medikation) Search for Patients that have a Family Name containing "Mustermann" and Birthdate >= 1955-06-20, group by _count 4 07:03:59 909ms SUCCESS
Testing search parameters against a resource of type Patient, according to the definition of ISiKCapabilityStatementStammdatenRolle (@Patient-Search @Medikation) Search for Patients that have a Family Name containing "Mustermann" and Gender male, group by _count 4 07:04:00 893ms SUCCESS
Testing search parameters against a resource of type Patient, according to the definition of ISiKCapabilityStatementStammdatenRolle (@Patient-Search @Medikation) Negative test: Search for Patients using ID and Family 3 07:04:01 771ms SUCCESS
Testing search parameters against a resource of type Patient, according to the definition of ISiKCapabilityStatementStammdatenRolle (@Patient-Search @Medikation) Search for Patients by Date of birth 3 07:04:02 724ms SUCCESS
Testing search parameters against a resource of type Patient, according to the definition of ISiKCapabilityStatementStammdatenRolle (@Patient-Search @Medikation) Search for Patient with an empty search parameter to be ignored 3 07:04:03 770ms 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 = 'Patient' 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 = 'Patient' 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 = 'Patient' 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 = 'Patient' 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 = 'Patient' 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 = 'Patient' 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 = 'Patient' and searchParam.where(name = 'birthdate' and type = 'date').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 = 'Patient' and searchParam.where(name = 'gender' 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 = 'Patient' and searchParam.where(name = '_has' 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 = 'Patient' and searchParam.where(name = '_tag' 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 Patient by ID INFO - Unknown extension http://fhir.de/StructureDefinition/humanname-namenszusatz  Details
Search for Patient by ID WARN - Profile reference 'https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient' has not been checked because it is unknown  Details
Search for Patient 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 Patient by ID INFO - entry.resource.where(id.replaceMatches('/_history/.+','').matches('\\bPatient-Read-Example$')).count() = 1  Details
Search for Patient by ID RBellog 0  Download Evidence
Search for Patient by ID Evidence Report  Download Evidence
Search for Patient by identifier INFO - entry.resource.count() > 0  Details
Search for Patient by identifier INFO - entry.resource.all(identifier.where($this.system = 'http://fhir.de/sid/gkv/kvid-10' and $this.value = 'X485231029').exists())  Details
Search for Patient by identifier RBellog 0  Download Evidence
Search for Patient by identifier Evidence Report  Download Evidence
Search for Patients that have a Family Name containing "Mustermann" and Birthdate >= 1955-06-20, group by _count INFO - entry.resource.count() > 0 and entry.resource.count() <= 20  Details
Search for Patients that have a Family Name containing "Mustermann" and Birthdate >= 1955-06-20, group by _count INFO - entry.resource.all(name.family.where($this.contains('Mustermann')).exists())  Details
Search for Patients that have a Family Name containing "Mustermann" and Birthdate >= 1955-06-20, group by _count INFO - entry.resource.all(birthDate >= @1955-06-20)  Details
Search for Patients that have a Family Name containing "Mustermann" and Birthdate >= 1955-06-20, group by _count RBellog 0  Download Evidence
Search for Patients that have a Family Name containing "Mustermann" and Birthdate >= 1955-06-20, group by _count Evidence Report  Download Evidence
Search for Patients that have a Family Name containing "Mustermann" and Gender male, group by _count INFO - entry.resource.count() > 0 and entry.resource.count() <= 20  Details
Search for Patients that have a Family Name containing "Mustermann" and Gender male, group by _count INFO - entry.resource.all(name.family.where($this.contains('Mustermann')).exists())  Details
Search for Patients that have a Family Name containing "Mustermann" and Gender male, group by _count INFO - entry.resource.all(gender = 'male')  Details
Search for Patients that have a Family Name containing "Mustermann" and Gender male, group by _count RBellog 0  Download Evidence
Search for Patients that have a Family Name containing "Mustermann" and Gender male, group by _count Evidence Report  Download Evidence
Negative test INFO - entry.resource.ofType(Patient).count() = 0  Details
Negative test INFO - entry.resource.ofType(Patient).where(id.replaceMatches('/_history/.+','').matches('\\bNotExistingPatient$')).count() = 0  Details
Negative test RBellog 0  Download Evidence
Negative test Evidence Report  Download Evidence
Search for Patients by Date of birth INFO - entry.resource.count() > 0  Details
Search for Patients by Date of birth INFO - entry.resource.all(birthDate >= @1955-06-20)  Details
Search for Patients by Date of birth RBellog 0  Download Evidence
Search for Patients by Date of birth Evidence Report  Download Evidence
Search for Patient with an empty search parameter to be ignored INFO - entry.resource.count() > 0  Details
Search for Patient with an empty search parameter to be ignored INFO - entry.resource.where(id.exists() and id.replaceMatches('/_history/.+','').matches('\\bPatient-Read-Example$')).count() = 1  Details
Search for Patient with an empty search parameter to be ignored RBellog 0  Download Evidence
Search for Patient with an empty search parameter to be ignored Evidence Report  Download Evidence
Serenity BDD version 5.3.10