Capability Statement
The CapabilityStatement resource is a statement of the kinds of resources and operations provided and/or consumed by an application.
Overview
Using GET /metadata you can access FHIR capabilities
interaction.
Response is a CapabilityStatement generated from meta resources created in an Aidbox instance. The list of this meta resource types used for the response generation:
OperationSearchParameterEntity
Aidbox CapabilityStatement updates automatically after meta resources change. No interaction needed to apply changes to CapabilityStatement.
Read more about conformance rules and the CapabilityStatement resource itself.
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 metadata
GET <your-domain>/fhir/metadata
Path Parameters
| Name | Type | Description |
|---|---|---|
| mode | string | full | normative | terminology |
| _format | string | json | yaml | edn |
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.
Configure CapabilityStatement
You can reconfigure specific parts of CapabilityStatement by creating AidboxConfig/box resource:
PUT /AidboxConfig/box
metadata:
# override name and title of CapabilityStatement
name: MyFHIRServer
title: My FHIR server
description: Description of my FHIR server
# override CapabilityStatement.rest.service
service:
- coding:
- {system: 'http://hl7.org/fhir/restful-security-service', code: SMART-on-FHIR}
text: Very smart!!!
# override CapabilityStatement.rest.security
security:
extension:
- url: http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris
extension:
- {url: token, valueUri: 'https://myserver.com/connect/token'}
- {url: authorize, valueUri: 'https://myserver.com/connect/token'}
If you want more control over CapabilityStatement, please contact us in the community chat!
Notes
rest[].resource[].profile
The profile property is set when zen profiling is enabled and the following conditions are met:
- the corresponding resource is defined in zen profile
- there is exactly one zen schema tagged with
base-profilefor the corresponding resource
Aidbox native metadata
To get metadata in the internal Aidbox format, use /$metadata?_format=yaml
Get Aidbox native metadata
GET <your-domain>/$metadata
Path Parameters
| Name | Type | Description |
|---|---|---|
| _format | string | yaml | json | edn |
Query Parameters
| Name | Type | Description |
|---|---|---|
| path | string | Path to specific part of metadata (for example Entity.Patient) |
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](http://hl7.org/fhir/2018Sep/capabilitystatement-operation-subset.html) and [ operations to make it easy for a client to check conformance.