Serenity BDD Report
Home > Requirements > Stufe5 > Medikation > Testing search parameters against a resource of type procedure, according to the definition of isikcapabilitystatementklinischerolle (@procedure-search)
Report generated 01-09-2026 06:59

Feature: Testing search parameters against a resource of type procedure, according to the definition of isikcapabilitystatementklinischerolle (@procedure-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: - Some ISiKProzedur Test Instances have been created in the System Under Test for performing different Search Requests

  • The id of one of the active ISiKProzedur Test Instances can be configured with the property medication-procedure-id
  • One Test Resource should have a Category Code 387713003 from the SNOMED-CT Code System
  • One Test Resource should have a Code '5-470.11' from the BfArM OPS Code System
  • One Test Resource should have Status 'completed'

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

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

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

Examples:

searchParamValuesearchParamType
_idtoken
_countnumber
statustoken
categorytoken
codetoken
patientreference
encounterreference
datedate

Examples:

searchParamValuesearchParamType
_hasstring
_tagtoken
subjectreference

When Get FHIR resource at "http://fhirserver/Procedure/?_id=${data.medication-procedure-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-procedure-id}" with error message "The requested Procedure ${data.medication-procedure-id} is not contained in the response bundle"

And Check if current response of resource "Procedure" is valid isik5 resource and conforms to profile "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur"

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

And FHIR current response body evaluates the FHIRPath 'entry.resource.count() } 0 and entry.resource.count() {= ${data.search-count}' with error message 'No valid search results were found'

And FHIR current response body evaluates the FHIRPath "entry.resource.all((status = 'completed').exists())" with error message 'There are search results, but they do not fully match the search criteria'

And element "subject" in all bundle resources references resource with ID "${data.medication-patient-id}"

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

When Get FHIR resource at "http://fhirserver/Procedure/?patient=Patient/${data.medication-patient-id}&category=http://snomed.info/sct%7C387713003&_count=${data.search-count}" with content type "xml"

And FHIR current response body evaluates the FHIRPath 'entry.resource.count() } 0 and entry.resource.count() {= ${data.search-count}' with error message 'No valid search results were found'

And FHIR current response body evaluates the FHIRPath "entry.resource.all((category.where(coding.code = '387713003' and coding.system = 'http://snomed.info/sct' and coding.version = 'http://snomed.info/sct/11000274103/version/${data.snomed-ct-version}')).exists())" with error message 'There are search results, but they do not fully match the search criteria'

When Get FHIR resource at "http://fhirserver/Procedure/?patient=Patient/${data.medication-patient-id}&code=http://fhir.de/CodeSystem/bfarm/ops%7C5-470.11&_count=${data.search-count}" with content type "xml"

And FHIR current response body evaluates the FHIRPath 'entry.resource.count() } 0 and entry.resource.count() {= ${data.search-count}' with error message 'No valid search results were found'

And FHIR current response body evaluates the FHIRPath "entry.resource.all((code.coding.where(code = '5-470.11' and system = 'http://fhir.de/CodeSystem/bfarm/ops')).exists())" with error message 'There are search results, but they do not fully match the search criteria'

When Get FHIR resource at "http://fhirserver/Procedure/?date=le2050-01-01&patient=Patient/${data.medication-patient-id}&_count=${data.search-count}" with content type "xml"

And FHIR current response body evaluates the FHIRPath 'entry.resource.count() } 0 and entry.resource.count() {= ${data.search-count}' with error message 'No valid search results were found'

And FHIR current response body evaluates the FHIRPath "entry.resource.all(performedDateTime.exists().not() or performedDateTime {= @2050-01-01T23:59:59+01:00)" 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(performedPeriod.start.exists().not() or performedPeriod.start {= @2050-01-01T23:59:59+01:00)" with error message 'There are search results, but they do not fully match the search criteria'

When Get FHIR resource at "http://fhirserver/Procedure/?encounter=Encounter/${data.encounter-read-in-progress-id}&patient=Patient/${data.medication-patient-id}&_count=${data.search-count}" with content type "xml"

And FHIR current response body evaluates the FHIRPath 'entry.resource.count() } 0 and entry.resource.count() {= ${data.search-count}' with error message 'No valid search results were found'

And FHIR current response body evaluates the FHIRPath 'entry.resource.all(encounter.reference.replaceMatches("/_history/.+","").matches("\b${data.encounter-read-in-progress-id}$"))' with error message 'There are search results, but they do not fully match the search criteria'

When Get FHIR resource at "http://fhirserver/Procedure/?_id:not=${data.medication-procedure-id}&status:not=completed&patient=Patient/${data.medication-patient-id}&_count=${data.search-count}" with content type "xml"

And bundle does not contain resource "Procedure" with ID "${data.medication-procedure-id}" with error message "There are search results, but they do not fully match the search criteria"

When Get FHIR resource at "http://fhirserver/Procedure/?_tag=${data.tag-system}%7C${data.tag-value}&_id=${data.medication-procedure-id}&_count=${data.search-count}" with content type "xml"

And FHIR current response body evaluates the FHIRPath 'entry.resource.count() } 0 and entry.resource.count() {= ${data.search-count}' with error message 'No valid 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'

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

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

And FHIR current response body evaluates the FHIRPath 'entry.resource.count() } 0 and entry.resource.count() {= ${data.search-count}' with error message 'No valid search results were found'

And element "subject" in all bundle resources references resource with ID "${data.medication-patient-id}"

Feature Coverage By Scenario

Test Outcomes

Test Performance

Key Statistics

Number of Scenarios 12 Total Duration 1m 26s
Total Number of Test Cases 22 Fastest Test 279ms
Number of Manual Test Cases 0 Slowest Test 1m 8s
Tests Started Sep 01, 2026 06:59:25 Average Execution Time 3s
Tests Finished Sep 01, 2026 07:00:51 Cumulative Test Time
(sum of all individual test durations)
1m 26s

Automated Tests

feature Scenario Context Steps Started Total Duration Result
Testing search parameters against a resource of type Procedure, according to the definition of ISiKCapabilityStatementKlinischeRolle (@Procedure-Search) Precondition 2 06:59:25 432ms SUCCESS
Testing search parameters against a resource of type Procedure, according to the definition of ISiKCapabilityStatementKlinischeRolle (@Procedure-Search) Read and Validation of the CapabilityStatement for ISiKProzedur 2 06:59:25 2s 569ms SUCCESS
Testing search parameters against a resource of type Procedure, according to the definition of ISiKCapabilityStatementKlinischeRolle (@Procedure-Search) Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle
11 passing test cases
1 06:59:28 8s 334ms SUCCESS
Testing search parameters against a resource of type Procedure, according to the definition of ISiKCapabilityStatementKlinischeRolle (@Procedure-Search) Search for Procedure resource by ID 4 06:59:36 1m 9s SUCCESS
Testing search parameters against a resource of type Procedure, according to the definition of ISiKCapabilityStatementKlinischeRolle (@Procedure-Search) Search for Procedures by Status 'completed' and Patient 5 07:00:45 1s 133ms SUCCESS
Testing search parameters against a resource of type Procedure, according to the definition of ISiKCapabilityStatementKlinischeRolle (@Procedure-Search) Search for Procedures by Category Code 387713003 and Patient, group by _count 3 07:00:46 705ms SUCCESS
Testing search parameters against a resource of type Procedure, according to the definition of ISiKCapabilityStatementKlinischeRolle (@Procedure-Search) Search for Procedures by Code 5-470.11 (OPS) and Patient, group by _count 3 07:00:47 702ms SUCCESS
Testing search parameters against a resource of type Procedure, according to the definition of ISiKCapabilityStatementKlinischeRolle (@Procedure-Search) Search for Procedures by Performed Date and Patient, group by _count 4 07:00:47 1s 020ms SUCCESS
Testing search parameters against a resource of type Procedure, according to the definition of ISiKCapabilityStatementKlinischeRolle (@Procedure-Search) Search for Procedures by Encounter and Patient, group by _count 3 07:00:48 712ms SUCCESS
Testing search parameters against a resource of type Procedure, according to the definition of ISiKCapabilityStatementKlinischeRolle (@Procedure-Search) Negative search for Procedures by Status and Patient, group by _count 2 07:00:49 483ms SUCCESS
Testing search parameters against a resource of type Procedure, according to the definition of ISiKCapabilityStatementKlinischeRolle (@Procedure-Search) Optional Search for Procedures resource by Tag, group by count 4 07:00:50 928ms SUCCESS
Testing search parameters against a resource of type Procedure, according to the definition of ISiKCapabilityStatementKlinischeRolle (@Procedure-Search) Optional Search for Procedures by Subject reference 3 07:00:51 713ms SUCCESS

Manual Tests

No manual tests were recorded

Evidence

Scenario Title Details
Precondition RBellog 0  Download Evidence
Read and Validation of the CapabilityStatement for ISiKProzedur INFO - rest.where(mode = 'server').resource.where(type = 'Procedure' and interaction.where(code = 'search-type').exists()).exists()  Details
Read and Validation of the CapabilityStatement for ISiKProzedur RBellog 0  Download Evidence
Read and Validation of the CapabilityStatement for ISiKProzedur Evidence Report  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle INFO - rest.where(mode = 'server').resource.where(type = 'Procedure' and searchParam.where(name = '_id' and type = 'token').exists()).exists()  Details
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle RBellog 1  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle Evidence Report  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle INFO - rest.where(mode = 'server').resource.where(type = 'Procedure' and searchParam.where(name = '_count' and type = 'number').exists()).exists()  Details
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle RBellog 2  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle Evidence Report  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle INFO - rest.where(mode = 'server').resource.where(type = 'Procedure' and searchParam.where(name = 'status' and type = 'token').exists()).exists()  Details
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle RBellog 3  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle Evidence Report  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle INFO - rest.where(mode = 'server').resource.where(type = 'Procedure' and searchParam.where(name = 'category' and type = 'token').exists()).exists()  Details
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle RBellog 4  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle Evidence Report  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle INFO - rest.where(mode = 'server').resource.where(type = 'Procedure' and searchParam.where(name = 'code' and type = 'token').exists()).exists()  Details
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle RBellog 5  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle Evidence Report  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle INFO - rest.where(mode = 'server').resource.where(type = 'Procedure' and searchParam.where(name = 'patient' and type = 'reference').exists()).exists()  Details
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle RBellog 6  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle Evidence Report  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle INFO - rest.where(mode = 'server').resource.where(type = 'Procedure' and searchParam.where(name = 'encounter' and type = 'reference').exists()).exists()  Details
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle RBellog 7  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle Evidence Report  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle INFO - rest.where(mode = 'server').resource.where(type = 'Procedure' and searchParam.where(name = 'date' and type = 'date').exists()).exists()  Details
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle RBellog 8  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle Evidence Report  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle INFO - rest.where(mode = 'server').resource.where(type = 'Procedure' and searchParam.where(name = '_has' and type = 'string').exists()).exists()  Details
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle RBellog 9  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle Evidence Report  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle INFO - rest.where(mode = 'server').resource.where(type = 'Procedure' and searchParam.where(name = '_tag' and type = 'token').exists()).exists()  Details
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle RBellog 10  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle Evidence Report  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle INFO - rest.where(mode = 'server').resource.where(type = 'Procedure' and searchParam.where(name = 'subject' and type = 'reference').exists()).exists()  Details
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle RBellog 11  Download Evidence
Validation of the search parameter definitions for Procedure in ISiKCapabilityStatementKlinischeRolle Evidence Report  Download Evidence
Search for Procedure resource by ID INFO - Unknown extension http://fhir.de/StructureDefinition/ProzedurDokumentationsdatum  Details
Search for Procedure resource by ID WARN - Profile reference 'https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur' has not been checked because it is unknown  Details
Search for Procedure 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 Procedure resource by ID INFO - entry.resource.where(id.replaceMatches('/_history/.+','').matches('\\bProcedure-Read-Example$')).count() = 1  Details
Search for Procedure resource by ID INFO - Code system definition is missing for 'http://snomed.info/sct#387713003'  Details
Search for Procedure resource by ID WARN - Value set https://gematik.de/fhir/isik/ValueSet/ProzedurenKategorieSCT has been ignored due to module configuration  Details
Search for Procedure resource by ID INFO - Code system definition is missing for 'http://snomed.info/sct#6025007'  Details
Search for Procedure resource by ID INFO - Code system definition is missing for 'http://fhir.de/CodeSystem/bfarm/ops#5-470.11'  Details
Search for Procedure resource by ID WARN - Value set https://gematik.de/fhir/isik/ValueSet/ProzedurenCodesSCT has been ignored due to module configuration  Details
Search for Procedure resource by ID RBellog 0  Download Evidence
Search for Procedure resource by ID Evidence Report  Download Evidence
Search for Procedures by Status 'completed' and Patient INFO - entry.resource.count() > 0 and entry.resource.count() <= 20  Details
Search for Procedures by Status 'completed' and Patient INFO - entry.resource.all((status = 'completed').exists())  Details
Search for Procedures by Status 'completed' and Patient INFO - entry.resource.all(subject.reference.replaceMatches('/_history/.+','').matches('\\bPatient-Read-Example$'))  Details
Search for Procedures by Status 'completed' and Patient INFO - entry.resource.where(id.replaceMatches('/_history/.+','').matches('\\bProcedure-Read-Example$')).count() = 1  Details
Search for Procedures by Status 'completed' and Patient RBellog 0  Download Evidence
Search for Procedures by Status 'completed' and Patient Evidence Report  Download Evidence
Search for Procedures by Category Code 387713003 and Patient, group by _count INFO - entry.resource.count() > 0 and entry.resource.count() <= 20  Details
Search for Procedures by Category Code 387713003 and Patient, group by _count INFO - entry.resource.all((category.where(coding.code = '387713003' and coding.system = 'http://snomed.info/sct' and coding.version = 'http://snomed.info/sct/11000274103/version/20251115')).exists())  Details
Search for Procedures by Category Code 387713003 and Patient, group by _count RBellog 0  Download Evidence
Search for Procedures by Category Code 387713003 and Patient, group by _count Evidence Report  Download Evidence
Search for Procedures by Code 5-470.11 (OPS) and Patient, group by _count INFO - entry.resource.count() > 0 and entry.resource.count() <= 20  Details
Search for Procedures by Code 5-470.11 (OPS) and Patient, group by _count INFO - entry.resource.all((code.coding.where(code = '5-470.11' and system = 'http://fhir.de/CodeSystem/bfarm/ops')).exists())  Details
Search for Procedures by Code 5-470.11 (OPS) and Patient, group by _count RBellog 0  Download Evidence
Search for Procedures by Code 5-470.11 (OPS) and Patient, group by _count Evidence Report  Download Evidence
Search for Procedures by Performed Date and Patient, group by _count INFO - entry.resource.count() > 0 and entry.resource.count() <= 20  Details
Search for Procedures by Performed Date and Patient, group by _count INFO - entry.resource.all(performedDateTime.exists().not() or performedDateTime <= @2050-01-01T23:59:59+01:00)  Details
Search for Procedures by Performed Date and Patient, group by _count INFO - entry.resource.all(performedPeriod.start.exists().not() or performedPeriod.start <= @2050-01-01T23:59:59+01:00)  Details
Search for Procedures by Performed Date and Patient, group by _count RBellog 0  Download Evidence
Search for Procedures by Performed Date and Patient, group by _count Evidence Report  Download Evidence
Search for Procedures by Encounter and Patient, group by _count INFO - entry.resource.count() > 0 and entry.resource.count() <= 20  Details
Search for Procedures by Encounter and Patient, group by _count INFO - entry.resource.all(encounter.reference.replaceMatches("/_history/.+","").matches("\\bEncounter-Read-In-Progress-Example$"))  Details
Search for Procedures by Encounter and Patient, group by _count RBellog 0  Download Evidence
Search for Procedures by Encounter and Patient, group by _count Evidence Report  Download Evidence
Negative search for Procedures by Status and Patient, group by _count INFO - entry.resource.ofType(Procedure).where(id.replaceMatches('/_history/.+','').matches('\\bProcedure-Read-Example$')).count() = 0  Details
Negative search for Procedures by Status and Patient, group by _count RBellog 0  Download Evidence
Negative search for Procedures by Status and Patient, group by _count Evidence Report  Download Evidence
Optional Search for Procedures resource by Tag, group by count INFO - entry.resource.count() > 0 and entry.resource.count() <= 20  Details
Optional Search for Procedures resource by Tag, group by count INFO - entry.resource.all(meta.tag.where(code='external').exists())  Details
Optional Search for Procedures resource by Tag, group by count INFO - entry.resource.where(id.replaceMatches('/_history/.+','').matches('\\bProcedure-Read-Example$')).count() = 1  Details
Optional Search for Procedures resource by Tag, group by count RBellog 0  Download Evidence
Optional Search for Procedures resource by Tag, group by count Evidence Report  Download Evidence
Optional Search for Procedures by Subject reference INFO - entry.resource.count() > 0 and entry.resource.count() <= 20  Details
Optional Search for Procedures by Subject reference INFO - entry.resource.all(subject.reference.replaceMatches('/_history/.+','').matches('\\bPatient-Read-Example$'))  Details
Optional Search for Procedures by Subject reference RBellog 0  Download Evidence
Optional Search for Procedures by Subject reference Evidence Report  Download Evidence
Serenity BDD version 5.3.10