Current Build
FHIR Infrastructure Work Group Maturity Level: 3Normative Compartments: N/A

Normative Candidate Note: This page is candidate normative content for R4 in the Conformance Package. Once normative, it will lose it's Maturity Level, and breaking changes will no longer be made.

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 official 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:
NameCardinalityTypeBindingProfileDocumentation
left0..1uri

The canonical URL for the left-hand system's capability statement

right0..1uri

The canonical URL for the right-hand system's capability statement

mode0..1code

What kind of comparison to perform - server to server, or client to server (use the codes 'server/server' or 'client/server')

Out Parameters:
NameCardinalityTypeBindingProfileDocumentation
issues1..1OperationOutcome

Outcome of the CapabilityStatement test

union0..1CapabilityStatement

The intersection of the functionality described by the CapabilityStatement resources

intersection0..1CapabilityStatement

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 a CapabilityStatement conforms comparison between two server systems (Request):

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 CapabilitieStatement.</p>
    </div>
  </text>
  <issue> 
    <severity value="error"/>
    <code value="timeout"/>
    <diagnostics value="Request timeout waiting for server http://server1.example.org/fhir/metadata CapabilitieStatement."/>
 </issue>
</OperationOutcome>

 

For more information about operations, including how they are invoked, see Operations.