This page is part of the FHIR Specification (v5.0.0-ballot: FHIR R5 Ballot Preview). 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 both capability statements by reference, and must ensure that all the referenced resources are available to the conformance server.
The canonical URL for this operation definition is
http://hl7.org/fhir/OperationDefinition/CapabilityStatement-conforms
Formal Definition (as a OperationDefinition).
URL: [base]/CapabilityStatement/$conforms
This is an idempotent operation
In Parameters: | |||||
Name | Cardinality | Type | Binding | Profile | Documentation |
left | 0..1 | canonical | A canonical reference to the left-hand system's capability statement | ||
right | 0..1 | canonical | A canonical reference to the right-hand system's capability statement | ||
mode | 0..1 | code | What kind of comparison to perform - server to server, or client to server (use the codes 'server/server' or 'client/server') | ||
Out Parameters: | |||||
Name | Cardinality | Type | Binding | Profile | Documentation |
issues | 1..1 | OperationOutcome | Outcome of the CapabilityStatement test | ||
union | 0..1 | CapabilityStatement | The intersection of the functionality described by the CapabilityStatement resources | ||
intersection | 0..1 | CapabilityStatement | The union of the functionality described by the CapabilityStatement resources |
The operation performs a full comparison of the functionality described by the two capability statements, including the profiles and value sets they reference, and also including concept maps and structure maps.
The full execution of this operation is still a matter of research, but it is intended to support comparison of systems to see if they will interoperate
If the capability statements can be successfully compared, then the return value is a 200 OK with an OperationOutcome along with intersection and union capability statements. The operation outcome can contain errors relating to differences between the capability statements. If the capability statements cannot be compared, because dependencies cannot be located, the return value is a 4xx error, with an OperationOutcome with at least one issue with severity >= error
Request: Request a CapabilityStatement conforms comparison between two server systems
POST [base]/CapabilityStatement/$conforms [other headers] <Parameters xmlns="http://hl7.org/fhir"> <parameter> <name value="left"/> <valueUri value="http://server1.example.org/fhir/metadata"/> </parameter> <parameter> <name value="right"/> <valueUri value="http://server2.example.org/fhir/metadata"/> </parameter> <parameter> <name value="mode"/> <valueCode value="server/server"/> </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="conformsnotok"/> <text> <status value="additional"/> <div xmlns="http://www.w3.org/1999/xhtml"> <p>Request timeout waiting for server http://server1.example.org/fhir/metadata CapabilitiesStatement.</p> </div> </text> <issue> <severity value="error"/> <code value="timeout"/> <diagnostics value="Request timeout waiting for server http://server1.example.org/fhir/metadata CapabilitiesStatement."/> </issue> </OperationOutcome>
For more information about operations, including how they are invoked, see Operations.