FHIR Release 3 (STU) R4 Ballot #1 (Mixed Normative/Trial use)

This page is part of the FHIR Specification (v3.0.2: STU 3). (v3.3.0: R4 Ballot 2). 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 R3

FHIR Infrastructure Work Group Maturity Level : 3   Trial Use Normative Compartments : Not linked to any defined compartments

This resource has 3 operations associated with it:

$subset Fetch a subset of the CapabilityStatement resource
$implements Test if a server implements a client's required operations
$conforms Test if a server implements a client's required operations

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

5.2.12.1 Fetch a subset of the CapabilityStatement resource This operation asks the server to return a subset of the CapabilityStatement resource - just the REST parts that relate to a set of nominated resources - the resources that the client is interested in The official URL for this operation definition is http://hl7.org/fhir/OperationDefinition/CapabilityStatement-subset Formal Definition (as a OperationDefinition ). URL: [base]/CapabilityStatement/$subset URL: [base]/CapabilityStatement/[id]/$subset This is an idempotent operation In Parameters: Name Cardinality Type Binding Profile Documentation server 0..1 uri The canonical URL - use this if the subset is not invoked on an instance (or on the /metadata end-point) resource 1..* code A resource that the client would like to include in the return Out Parameters: Name Cardinality Type Binding Profile Documentation return 1..1 CapabilityStatement The subsetted CapabilityStatement resource that is returned. This should be tagged with the SUBSETTED code Note: as this 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 5.2.12.1.1 Examples Request a subset of Patient capabilities from a known CapabilityStatement (Request): POST [base]/CapabilityStatement/example/$subset [other headers] <Parameters xmlns="http://hl7.org/fhir"> <parameter> <name value="resource"/> <valueCode value="Patient"/> </parameter> </Parameters> Response: HTTP/1.1 200 OK [other headers] <?xml version="1.0" encoding="UTF-8"?> <CapabilityStatement xmlns="http://hl7.org/fhir"> <id value="example"/> <meta> <tag> <system value="http://hl7.org/fhir/v3/ObservationValue"/> <code value="SUBSETTED"/> <display value="subsetted"/> </tag> </meta> <rest> <resource> <type value="Patient"/> <interaction> <code value="read"/> </interaction> <interaction> <code value="vread"/> <documentation value="Only supported for patient records since 12-Dec 2012"/> </interaction> <interaction> <code value="update"/> </interaction> <interaction> <code value="history-instance"/> </interaction> <interaction> <code value="create"/> </interaction> <interaction> <code value="history-type"/> </interaction> <versioning value="versioned-update"/> <readHistory value="true"/> <updateCreate value="false"/> <conditionalCreate value="true"/> <conditionalUpdate value="false"/> <conditionalDelete value="not-supported"/> <searchInclude value="Organization"/> <searchRevInclude value="Person"/> <searchParam> <name value="identifier"/> <definition value="http://hl7.org/fhir/SearchParameter/Patient-identifier"/> <type value="token"/> <documentation value="Only supports search by institution MRN"/> </searchParam> <searchParam> <name value="careprovider"/> <definition value="http://hl7.org/fhir/SearchParameter/Patient-careprovider"/> <type value="reference"/> </searchParam> </resource> </rest> </CapabilityStatement>   5.2.12.2 Test if a server implements a client's required operations 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 official 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 uri The canonical URL for the server capability statement - use this if the implements is not invoked on an instance (or on the /metadata end-point) client 0..1 uri The canonical URL for 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 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: * The server's capability statement must have an entry for each resource in the client's capability statement * The servers' resource support must have matching flags for updateCreate, conditionalCreate, conditionalRead, conditionalUpdate, conditionalDelete, searchInclude, searchRevInclude * The server capability statement must have a matching interaction for each interaction in the client capability 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 capability statement * The server must have an operation definitions with a matching reference for any operations in the client capability statement 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 5.2.12.2.1 Examples Request a CapabilityStatement implements comparison between a client and server systems (Request): 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>   5.2.12.3 Test if a server implements a client's required operations 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: Name Cardinality Type Binding Profile Documentation left 0..1 uri The canonical URL for the left-hand system's capability statement right 0..1 uri The canonical URL for 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 5.2.12.3.1 Examples 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>