Tiger FHIR validation evidences

☰ Scenario Book an appointment by schedule reference

Given Get FHIR resource at "http://fhirserver/Slot/?schedule=${data.appointment-book-by-schedule-schedule-id}&start=${data.appointment-book-by-schedule-date}" with content type "json"
And FHIR current response body evaluates the FHIRPath 'entry.resource.ofType(Slot).count() > 0' with error message 'No slots were found for the configured schedule and booking date'
INFO
entry.resource.ofType(Slot).count() > 0
 
["BooleanType[true]"]
And FHIR current response body evaluates the FHIRPath "entry.resource.ofType(Slot).where(status = 'free' and start <= @${data.appointment-book-by-schedule-datetime-start} and end >= @${data.appointment-book-by-schedule-datetime-end}).count() >= 1" with error message 'The configured schedule does not contain a free slot covering the requested appointment window'
INFO
entry.resource.ofType(Slot).where(status = 'free' and start <= @2027-03-31T10:05:00Z and end >= @2027-03-31T10:55:00Z).count() >= 1
 
["BooleanType[true]"]
And FHIR current response body evaluates the FHIRPath "entry.resource.ofType(Slot).where(status != 'free' and start < @${data.appointment-book-by-schedule-datetime-end} and end > @${data.appointment-book-by-schedule-datetime-start}).count() = 0" with error message 'The configured appointment window overlaps with at least one non-free slot in the selected schedule. Choose a different free time window before executing the happy-path scenario.'
INFO
entry.resource.ofType(Slot).where(status != 'free' and start < @2027-03-31T10:55:00Z and end > @2027-03-31T10:05:00Z).count() = 0
 
["BooleanType[true]"]
And TGR set default header "Content-Type" to "application/fhir+json"
And TGR send POST request to "http://fhirserver/Appointment/$book" with body "!{file('src/test/resources/features/Stufe5/Terminplanung/fixtures/Appointment-Appointment-Book-By-Schedule-Parameters-Fixture.json')}"
Then TGR find the last request
And TGR current response with attribute "$.responseCode" matches "20\d"
And FHIR current response body evaluates the FHIRPath '($this is Appointment) or ($this is Parameters)' with error message 'The response contains neither an Appointment nor a Parameters resource'
INFO
($this is Appointment) or ($this is Parameters)
 
["BooleanType[true]"]
And FHIR current response body evaluates the FHIRPath '($this is Appointment) implies id.exists()' with error message 'No ID was assigned to the appointment'
INFO
($this is Appointment) implies id.exists()
 
["BooleanType[true]"]
And FHIR current response body evaluates the FHIRPath "($this is Appointment) implies status.toString().matches('^booked|pending$')" with error message 'Appointment status is neither booked nor pending'
INFO
($this is Appointment) implies status.toString().matches('^booked|pending$')
 
["BooleanType[true]"]
And FHIR current response body evaluates the FHIRPath "($this is Appointment) implies slot.exists()" with error message 'Appointment does not contain a slot reference'
INFO
($this is Appointment) implies slot.exists()
 
["BooleanType[true]"]
And FHIR current response body evaluates the FHIRPath "($this is Parameters) implies parameter.where(name = 'return' and resource is Appointment).resource.id.exists()" with error message 'No ID was assigned to the Appointment'
INFO
($this is Parameters) implies parameter.where(name = 'return' and resource is Appointment).resource.id.exists()
 
["BooleanType[true]"]
And FHIR current response body evaluates the FHIRPath "($this is Parameters) implies parameter.where(name = 'return' and resource is Appointment).resource.status.toString().matches('^booked|pending$')" with error message 'the Appointment status is neither booked nor pending'
INFO
($this is Parameters) implies parameter.where(name = 'return' and resource is Appointment).resource.status.toString().matches('^booked|pending$')
 
["BooleanType[true]"]
And FHIR current response body evaluates the FHIRPath "($this is Parameters) implies parameter.where(name = 'return' and resource is Appointment).resource.slot.exists()" with error message 'Appointment does not contain a slot reference'
INFO
($this is Parameters) implies parameter.where(name = 'return' and resource is Appointment).resource.slot.exists()
 
["BooleanType[true]"]