This page is part of the Argonaut Scheduling Implementation Guide (v1.0.0: Release) based on FHIR R3. This is the current published version in it's permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions
Availability Prefetch Operation
OPERATION: Availability Prefetch Operation
The official URL for this operation definition is:
http://fhir.org/guides/argonaut-scheduling/OperationDefinition/slot-prefetch
This operation fetches available free slots for the 'initial load', update and reconciliation steps in the Prefetch Use Case. The server determines which open slots to expose to the application for use in creating new appointments. If neither a start or end date is given then the maximum period as defined by local business rules and starting from when the operation was transacted SHALL be used. The actors practitioner, organization and location further refine the search.
URL: [base]/Slot/$prefetch
Parameters
Use | Name | Cardinality | Type | Binding | Documentation |
IN | start | 1..1 | dateTime |
The period of time that should be checked for free slots. If no start date is provided, all available slots prior to the end date are in scope (subject to limits imposed by local business rules). |
|
IN | end | 1..1 | dateTime |
The period of time that should be checked for appointment availability. If no end date is provided, all available slots after the start date are in scope (subject to limits imposed by local business rules). |
|
IN | practitioner | 0..* | uri |
The Practitioner reference when performing a provider based query. This is a reference to a FHIR Practitioner resource, e.g. 'Practitioner/123'. |
|
IN | organization | 0..* | uri |
The Organization reference when performing a provider based query. This is a reference to a FHIR Organization resource, e.g. 'Organization/abc'. |
|
IN | location-string | 0..* | string |
A (part of the) address of the location of interest. (e.g., zip codes, city or state). This string parameter is interpreted as a String search parameter and covers the |
|
IN | location-reference | 0..* | uri |
A Location reference when performing an operation where the Location resource |
|
OUT | return | 0..1 | Bundle(Argonaut Slot Bundle Profile) |
An Argonaut Slot Bundle Profile of type |
- All input parameters are simple types allowing either the
GET
or thePOST
syntax to be used to initiate the interaction. Examples of both are shown below. - If more than one actor type is present, the response SHALL contain slots with all of these actors (i.e, this is a logical 'AND'). If an actor type is repeated the response SHALL contain slots with any of these actors and the order SHOULD be interpreted as the order of preference (i.e. this is a logical 'OR' and does not drive a joint appointment with multiple practitioners. locations or organizations).
- References can be to an absolute URL, but servers only perform operations on their own resources.
Using Both GET
and POST
Syntax the operation can be invoked as follows:
GET [base]/Slot/$prefetch?{parameters}
POST [base]/Slot/$prefetch
Examples
Prefetch open slots from July 15,2017 to August 17,2017
Request using GET
Syntax
GET [base]/Slot/$prefetch?start=2017-07-15T20:00:00Z&end=2017-07-17T20:00:00Z
Request using POST
Syntax
POST [base]/Slot/$prefetch
Post request body
{
"resourceType": "Parameters",
"parameter": [
{
"name": "start",
"valueDateTime" : "2017-07-15T20:00:00Z"
},
{
"name": "end",
"valueDateTime" : "2017-07-17T20:00:00Z"
}
]
}
Response
HTTP/1.1 200 OK
[other headers]
Response body
{
"resourceType": "Bundle",
"id": "prefetch-1",
"type": "searchset",
"total": 1000,
"entry": [{
"fullUrl": "http://server/path/Slot/1",
"resource": {
"resourceType": "Slot",
"id": "1",
.. snip ...
"status":"free"
.. snip ...
},
"fullUrl": "http://server/path/Slot/2",
"resource": {
"resourceType": "Slot",
"id": "2",
.. snip ...
"status":"free"
.. snip ...
},
"fullUrl": "http://server/path/Slot/3",
"resource": {
"resourceType": "Slot",
"id": "3",
.. snip ...
"status":"free"
.. snip ...
},
"fullUrl": "http://server/path/OperationOutcome/oo-for-prefetch",
"resource": {
"resourceType": "OperationOutcome",
"id": "oo-for-prefetch",
.. snip ...
}
]
}