R6 Ballot (2nd Draft)

Publish-box (todo)

FHIR Infrastructure icon Work Group Maturity Level: 5Trial 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 Scope 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 Scope 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.