This page is part of the FHIR Specification (v5.0.0-ballot: R5 Ballot - see ballot notes). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4
FHIR Infrastructure Work Group | Maturity Level: 5 | Trial Use | Compartments: N/A |
This operation asks the server to check that it implements all the resources, interactions, search parameters, and operations that the client provides in its capability statement. The client provides its capability statement inline, or by referring the server to the canonical URL of its capability statement.
The canonical URL for this operation definition is
http://hl7.org/fhir/OperationDefinition/CapabilityStatement-implements
Formal Definition (as a OperationDefinition).
URL: [base]/CapabilityStatement/$implements
URL: [base]/CapabilityStatement/[id]/$implements
This is an idempotent operation
In Parameters: | |||||
Name | Cardinality | Type | Binding | Profile | Documentation |
server | 0..1 | canonical | A canonical reference to the server capability statement - use this if the implements is not invoked on an instance (or on the /metadata end-point) | ||
client | 0..1 | canonical | A canonical reference to the client capability statement - use this if the implements is not invoked on an instance (or on the /metadata end-point) | ||
resource | 0..1 | CapabilityStatement | The client capability statement, provided inline | ||
Out Parameters: | |||||
Name | Cardinality | Type | Binding | Profile | Documentation |
return | 1..1 | OperationOutcome | Outcome of the CapabilityStatement test Note: as this is the only out parameter, it is a resource, and it has the name 'return', the result of this operation is returned directly as a resource |
The operation does not perform a full conformance check; in particular it does not check that the profiles align. It merely checks that the behaviors the client wishes to use are provided Technically, this operation is implemented as follows:
If the capability statements match by these rules, then the return value is a 200 OK with an operation outcome that contains no issues with severity >= error. If the capability statement doesn't match, the return value is a 4xx error, with an OperationOutcome with at least one issue with severity >= error
Request: Request a CapabilityStatement implements comparison between a client and server systems
POST [base]/CapabilityStatement/$implements [other headers] <Parameters xmlns="http://hl7.org/fhir"> <parameter> <name value="server"/> <valueUri value="http://server.example.org/fhir/metadata"/> </parameter> <parameter> <name value="client"/> <valueUri value="http://client.example.org/fhir/metadata"/> </parameter> </Parameters>
Response:
HTTP/1.1 200 OK [other headers] <?xml version="1.0" encoding="UTF-8"?> <OperationOutcome xmlns="http://hl7.org/fhir"> <id value="implementsok"/> <text> <status value="additional"/> <div xmlns="http://www.w3.org/1999/xhtml"> <p>Server http://server.example.org/fhir/metadata implements client http://client.example.org/fhir/metadata capabilities.</p> </div> </text> <issue> <severity value="information"/> <code value="informational"/> <details> <text value="Server http://server.example.org/fhir/metadata implements client http://client.example.org/fhir/metadata capabilities."/> </details> </issue> </OperationOutcome>
For more information about operations, including how they are invoked, see Operations.