Capability Statement

Last updated 3 months ago

The CapabilityStatement resource is a statement of the kinds of resources and operations provided and/or consumed by an application.

Overview

Read more about conformance rules http://build.fhir.org/conformance-rules.html and the CapabilityStatement resource itself http://build.fhir.org/capabilitystatement.html.

Base URL for FHIR compatible API is <server-domain>/fhir/.

The capabilities interaction returns a capability statement describing the server's current operational functionality. The interaction is performed by the HTTP GET command as shown:

GET [base]/metadata{?mode=[mode]}{&_format=[mime-type]}

You can get Capability Statement of your Aidbox with the command:

GET <server-domain>/fhir/metadata

get
Get metadata

<your-domain>/fhir/metadata
Request
Response
Path Parameters
mode
optional
string
full | normative | terminology
_format
optional
string
json | yaml | edn | xml
200: OK
patchFormat: [json-patch, merge-patch]
rest:
- mode: server
interaction:
- {code: batch}
- {code: transaction}
operation:
- {name: patient_list, deinition: Operation/patient_list}
....
resource:
- interaction:
- {code: read}
- {code: vread}
- {code: update}
- {code: patch}
- {code: delete}
- {code: history-instance}
- {code: history-type}
- {code: create}
- {code: search-type}
readHistory: true
updateCreate: true
versioning: versioned-update
searchRevInclude: [all]
referencePolicy: local
conditionalRead: full-support
searchInclude: [all]
type: Patient
conditionalDelete: single
conditionalUpdate: true
conditionalCreate: true
searchParam:
- {name: address-city, definition: /SearchParameter/Patient.address-city, type: string}
- {name: active, definition: /SearchParameter/Patient.active, type: token}
- {name: given, definition: /SearchParameter/Patient.given, type: string}
- {name: address-state, definition: /SearchParameter/Patient.address-state, type: string}
- {name: general-practitioner, definition: /SearchParameter/Patient.general-practitioner,
type: reference}
- {name: gender, definition: /SearchParameter/Patient.gender, type: token}
- {name: name, definition: /SearchParameter/Patient.name, type: string}
- {name: family, definition: /SearchParameter/Patient.family, type: string}
- {name: telecom, definition: /SearchParameter/Patient.telecom, type: token}
- {name: animal-species, definition: /SearchParameter/Patient.animal-species,
type: token}
- {name: identifier, definition: /SearchParameter/Patient.identifier, type: token}
- {name: link, definition: /SearchParameter/Patient.link, type: reference}
- {name: address-use, definition: /SearchParameter/Patient.address-use, type: token}
- {name: language, definition: /SearchParameter/Patient.language, type: token}
- {name: phonetic, definition: /SearchParameter/Patient.phonetic, type: string}
- {name: death-date, definition: /SearchParameter/Patient.death-date, type: date}
- {name: animal-breed, definition: /SearchParameter/Patient.animal-breed, type: token}
- {name: deceased, definition: /SearchParameter/Patient.deceased, type: token}
- {name: address, definition: /SearchParameter/Patient.address, type: string}
- {name: email, definition: /SearchParameter/Patient.email, type: token}
- {name: organization, definition: /SearchParameter/Patient.organization, type: reference}
- {name: birthdate, definition: /SearchParameter/Patient.birthdate, type: date}
- {name: address-country, definition: /SearchParameter/Patient.address-country,
type: string}
- {name: phone, definition: /SearchParameter/Patient.phone, type: token}
- {name: address-postalcode, definition: /SearchParameter/Patient.address-postalcode,
type: string}

The information returned depends on the value of the mode parameter:

Value

Description

full (or mode not present)

A Capability Statement that specifies which resource types and interactions are supported

normative

As above, but only the normative portions of the Capability Statement

terminology

A TerminologyCapabilities resource that provides further information about terminologies are supported by the server

Servers MAY ignore the mode parameter and return a CapabilityStatement resource.

To get metadata in the internal Aidbox format, use /$metadata?_format=yaml

get
Get Aidbox native metadata

<your-domain>/$metadata
Request
Response
Path Parameters
_format
optional
string
yaml | json | edn
Query Parameters
path
optional
string
Path to specific part of metadata (for example Entity.Patient)
200: OK

Capability statements can become quite large; servers are encouraged to support the _summary and _elements parameters on the capabilities interaction, though this is not required. In addition, servers are encouraged to implement the $subset and $implements operations to make it easy for a client to check conformance.