STU 3 Ballot

This page is part of the FHIR Specification (v1.6.0: STU 3 Ballot 4). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions

Operation-conformance-implements.xml

Raw XML (canonical form)

Operation Definition

<OperationDefinition xmlns="http://hl7.org/fhir">
  <id value="Conformance-implements"/>
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
      <h2>Test if a server implements a client's required operations</h2>
      <p>OPERATION: Test if a server implements a client's required operations</p>
      <div>
        <p>This operation asks the server to check that it implements all the resources, interactions,
           search parameters, and operations that the client provides in it's conformance statement.
           The client provides it's conformance statement inline, or by referring the server to the
           canonical URL of it's conformance statement</p>

      </div>
      <p>URL: [base]/Conformance/$implements</p>
      <p>URL: [base]/Conformance/[id]/$implements</p>
      <p>Parameters</p>
      <table class="grid">
        <tr>
          <td>
            <b>Use</b>
          </td>
          <td>
            <b>Name</b>
          </td>
          <td>
            <b>Cardinality</b>
          </td>
          <td>
            <b>Type</b>
          </td>
          <td>
            <b>Binding</b>
          </td>
          <td>
            <b>Documentation</b>
          </td>
        </tr>
        <tr>
          <td>IN</td>
          <td>server</td>
          <td>0..1</td>
          <td>uri</td>
          <td/>
          <td>
            <div>
              <p>The canonical URL for the server conformance statement - use this if the subset is not
                 invoked on an instance (or on the /metadata end-point)</p>

            </div>
          </td>
        </tr>
        <tr>
          <td>IN</td>
          <td>client</td>
          <td>0..1</td>
          <td>uri</td>
          <td/>
          <td>
            <div>
              <p>The canonical URL for the client conformance statement - use this if the subset is not
                 invoked on an instance (or on the /metadata end-point)</p>

            </div>
          </td>
        </tr>
        <tr>
          <td>IN</td>
          <td>resource</td>
          <td>0..1</td>
          <td>Conformance</td>
          <td/>
          <td>
            <div>
              <p>The client conformance statement, provided inline</p>

            </div>
          </td>
        </tr>
        <tr>
          <td>OUT</td>
          <td>return</td>
          <td>1..1</td>
          <td>OperationOutcome</td>
          <td/>
          <td>
            <div>
              <p>Outcome of the conformance test</p>

            </div>
          </td>
        </tr>
        <tr>
          <td>OUT</td>
          <td>issues</td>
          <td>1..1</td>
          <td>OperationOutcome</td>
          <td/>
          <td>
            <div>
              <p>Outcome of the conformance test</p>

            </div>
          </td>
        </tr>
        <tr>
          <td>OUT</td>
          <td>union</td>
          <td>0..1</td>
          <td>Bundle</td>
          <td/>
          <td>
            <div>
              <p>The intersection of the functionality described by the conformance resources</p>

            </div>
          </td>
        </tr>
        <tr>
          <td>OUT</td>
          <td>intersection</td>
          <td>0..1</td>
          <td>Bundle</td>
          <td/>
          <td>
            <div>
              <p>The union of the functionality described by the conformance resources</p>

            </div>
          </td>
        </tr>
      </table>
      <div>
        <p>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</p>

        <p>Technically, this operation is implemented as follows:
* The server's conformance statement must have an entry for each resource in the client's
           conformance statement
* The servers' resource support must have matching flags for updateCreate, conditionalCreate,
           conditionalRead, conditionalUpdate, conditionalDelete, searchInclude, searchRevInclude
* The server conformance statement must have a matching interaction for each interaction
           in the client conformance statement (whether or not it is on a resource)
* The server must have a search parameter with matching name and definition for any search
           parameters in the client conformance statement
* The server must have an operation definitions with a matching reference for any operations
           in the client conformance statement</p>

        <p>If the conformance statements match by these rules, then the return value is a 200 OK
           with an operation outcome that contains no issues with severity &gt;= error. If the conformance
           statement doesn't match, the return value is a 4xx error, with an OperationOutcome with
           at least one issue with severity &gt;= error</p>

      </div>
    </div>
  </text>
  <url value="http://hl7.org/fhir/OperationDefinition/Conformance-implements"/>
  <name value="Test if a server implements a client's required operations"/>
  <status value="draft"/>
  <kind value="operation"/>
  <date value="2016-08-11T17:02:54+10:00"/>
  <publisher value="HL7 (FHIR Project)"/>
  <contact>
    <telecom>
      <system value="other"/>
      <value value="http://hl7.org/fhir"/>
    </telecom>
    <telecom>
      <system value="email"/>
      <value value="fhir@lists.hl7.org"/>
    </telecom>
  </contact>
  <description value="This operation asks the server to check that it implements all the resources, interactions,
   search parameters, and operations that the client provides in it's conformance statement.
   The client provides it's conformance statement inline, or by referring the server to the
   canonical URL of it's conformance statement"/>
  <code value="implements"/>
  <comment value="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:  * The server's conformance
   statement must have an entry for each resource in the client's conformance statement 
    * The servers' resource support must have matching flags for updateCreate, conditionalCreate,
   conditionalRead, conditionalUpdate, conditionalDelete, searchInclude, searchRevInclude
    * The server conformance statement must have a matching interaction for each interaction
   in the client conformance statement (whether or not it is on a resource)  * The server
   must have a search parameter with matching name and definition for any search parameters
   in the client conformance statement  * The server must have an operation definitions with
   a matching reference for any operations in the client conformance statement  If the conformance
   statements match by these rules, then the return value is a 200 OK with an operation outcome
   that contains no issues with severity &gt;= error. If the conformance statement doesn't
   match, the return value is a 4xx error, with an OperationOutcome with at least one issue
   with severity &gt;= error"/>
  <system value="false"/>
  <type value="Conformance"/>
  <instance value="true"/>
  <parameter>
    <name value="server"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation value="The canonical URL for the server conformance statement - use this if the subset is not
     invoked on an instance (or on the /metadata end-point)"/>
    <type value="uri"/>
  </parameter>
  <parameter>
    <name value="client"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation value="The canonical URL for the client conformance statement - use this if the subset is not
     invoked on an instance (or on the /metadata end-point)"/>
    <type value="uri"/>
  </parameter>
  <parameter>
    <name value="resource"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation value="The client conformance statement, provided inline"/>
    <type value="Conformance"/>
  </parameter>
  <parameter>
    <name value="return"/>
    <use value="out"/>
    <min value="1"/>
    <max value="1"/>
    <documentation value="Outcome of the conformance test"/>
    <type value="OperationOutcome"/>
  </parameter>
  <parameter>
    <name value="issues"/>
    <use value="out"/>
    <min value="1"/>
    <max value="1"/>
    <documentation value="Outcome of the conformance test"/>
    <type value="OperationOutcome"/>
  </parameter>
  <parameter>
    <name value="union"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <documentation value="The intersection of the functionality described by the conformance resources"/>
    <type value="Bundle"/>
  </parameter>
  <parameter>
    <name value="intersection"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <documentation value="The union of the functionality described by the conformance resources"/>
    <type value="Bundle"/>
  </parameter>
</OperationDefinition>

Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.