Appointment XIS OpenAPI specification
This page describes the Appointment API specification the XIS should provide to Spreekuur.nl.
XIS appointment FHIR API (1.0.0)
Download OpenAPI specification:Download
Response samples
- 200
{- "resourceType": "AppointmentType",
- "compose": {
- "include": [
- {
- "actor": {
- "concept": {
- "code": "E-CONSULT",
- "display": "E-Consult"
}
}
}
]
}
}
Response samples
- 200
{- "resourceType": "Bundle",
- "entry": [
- {
- "resource": {
- "resourceType": "PractitionerRole",
- "id": 123,
- "name": "Dr. John Doe",
- "speciality": {
- "coding": [
- {
- "code": "0100",
- "display": "Huisartsen, niet nader gespecificeerd"
}
]
}
}
}
]
}
Search for Schedules
query Parameters
service-category | string The service category a schedule is related to. System and value should be provided in the format "system|value" |
Responses
Response samples
- 200
{- "resourceType": "Bundle",
- "type": "searchset",
- "entry": [
- {
- "resourceType": "Schedule",
- "id": 123,
- "serviceCategory": [
- {
- "coding": [
- {
- "code": "E-CONSULT",
- "display": "E-Consult"
}
]
}
], - "actor": [
- {
- "reference": "PractitionerRole/topicus-practitioner-1-practitionerrole-1"
}
]
}
]
}
Search for available slots
query Parameters
service-category | string The service category a slot is related to. System and value should be provided in the format "system|value" |
schedule.date=ge | string The date in ISO-8601 from which to search for available slots. |
schedule.date=le | string The date in ISO-8601 to which to search for available slots. |
schedule.actor:PractitionerRole | string A comma seperated list of PractitionerRole id's which are related to the slots |
Responses
Response samples
- 200
{- "resourceType": "Bundle",
- "type": "searchset",
- "entry": [
- {
- "resourceType": "Slot",
- "id": 123,
- "status": "free",
- "start": "2025-04-10T09:00:00Z",
- "end": "2025-04-10T09:30:00Z",
- "serviceCategory": [
- {
- "coding": [
- {
- "code": "E-CONSULT",
- "display": "E-Consult"
}
]
}
], - "extension": [
- {
- "url": "urn:extension:actor",
- "valueReference": {
- "reference": "PractitionerRole/topicus-practitioner-1-practitionerrole-1",
- "display": "Dokter Jansen"
}
}
], - "slotType": {
- "coding": [
]
}
}
]
}
Response samples
- 200
{- "resourceType": "Bundle",
- "type": "searchset",
- "entry": [
- {
- "resource": {
- "resourceType": "Appointment",
- "id": "123",
- "status": "proposed",
- "start": "2025-04-10T09:00:00Z",
- "end": "2025-04-10T09:30:00Z",
- "comment": "Please arrive 10 minutes early.",
- "serviceCategory": [
- {
- "coding": [
- {
- "code": "E-CONSULT",
- "display": "E-Consult"
}
]
}
], - "participant": [
- {
- "actor": {
- "reference": "Patient/456",
- "display": "John Doe",
- "required": "required"
}, - "status": "needs-action"
}
]
}
}
]
}
Create a new Appointment
Request Body schema: application/fhir+jsonrequired
resourceType required | string Value: "Appointment" |
id required | string |
status required | string Enum: "proposed" "booked" "cancelled" |
start required | string <date-time> |
end required | string <date-time> |
comment required | string |
required | Array of objects (serviceCategory) |
required | Array of objects When the appointment is created, two participants are added: the patient and the practitioner. When the approval flow is enabled, the practitioner has the status 'needs-action'. If not, the status is 'accepted' The patient always has the status 'accepted'. |
Responses
Request samples
- Payload
{- "resourceType": "Appointment",
- "id": "123",
- "status": "proposed",
- "start": "2025-04-10T09:00:00Z",
- "end": "2025-04-10T09:30:00Z",
- "comment": "Please arrive 10 minutes early.",
- "serviceCategory": [
- {
- "coding": [
- {
- "code": "E-CONSULT",
- "display": "E-Consult"
}
]
}
], - "participant": [
- {
- "actor": {
- "reference": "Patient/456",
- "display": "John Doe",
- "required": "required"
}, - "status": "needs-action"
}
]
}
Cancel an appointment with an Appointment Response
Request Body schema: application/fhir+jsonrequired
required | object |
comment required | string |
required | object |
participantStatus required | string Value: "declined" |
Responses
Request samples
- Payload
{- "actor": {
- "reference": {
}
}, - "comment": "Deze afspraak is afgezegd door de patiënt via Spreekuur.nl",
- "appointment": {
- "reference": "Appointment/123"
}, - "participantStatus": "declined"
}