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:
Operation
SearchParameter
Entity
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
mode
string
full | normative | terminology
_format
string
json | yaml | edn | xml
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'}
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-profile
for 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
_format
string
yaml | json | edn
Query Parameters
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 and $implements operations to make it easy for a client to check conformance.
Last updated
Was this helpful?