This page is part of the FHIR Specification (v0.11: DSTU 1 Ballot 3). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions

Resource Conformance - Content 6.12

A conformance statement about how an application or implementation supports FHIR or the set of requirements for a desired implementation.

The resource name as it appears in a RESTful URL is [root]/conformance/

Conformance Statements provide for a degree of automatic configuration and adaptation. However, capturing absolutely every variation that could impact the interoperability of two systems, let alone keeping that detailed information up-to-date as systems evolve through maintenance and upgrades is rarely practical. Therefore, conformance statements should be seen as an interim step. They provide a degree of automation. However, they also provide a great deal of human-readable content that can minimize the need for direct communication between the operators of the systems being configured to interoperate.

Conformance statements are used in one of three ways:

Describe an actual implementation 6.12.1

In this scenario, the conformance statement describes the capabilities of a deployed and configured solution available at a particular access point or set of access points. The statement describes exactly how to interface with that deployed solution and thus provides for a degree of self-configuration of software solutions.

This is the type of profile that FHIR restful solutions are expected to make available on invocation of the conformance operation. It is also the type of statement that forms a basis for the testing, certification or commissioning of specific software installations.

A conformance statement is identified as being an implementation statement through the presence of the implementation element.

Describe software solution capabilities 6.12.2

In this scenario, the conformance statement describes the generic capabilities of a software application or component solution. The solution might be available for purchase or other acquisition and might be deployed and configured at any number of independent sites. Because it is not dependent on any particular implementation, the profile cannot provide specific details such as endpoint addresses. It may also need to document various configurations in which the application can be set up or describe the degree of customizability associated with the solution.

This type of statement may be used as a marketing tool by software and system developers to formally describe their capabilities. It can also be used as the basis for conformance testing of software solutions independent of a particular installation.

A conformance statement is identified as being a software solution statement through the presence of the software element.

Describe a desired solution 6.12.3

In this scenario, the conformance statement describes the capabilities of a desired system. It might be used as part of an architectural design process to document needed system capabilities, or might be used as part of an RFP process to formally document the requirements of a requested solution and to document the criteria by which proposals will be evaluated.

A conformance statement is identified as being a requirements statement through the presence of the proposal element.


These three types of profiles can be used together. A requirements statement can be compared against the solution statements proffered by respondents to an RFP. A solution statement for a software package forms the starting point for the implementation statement associated with a particular installation of that software package.

Resource Content 6.12.4

Conformance (Resource)The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI)identifier : string 0..1The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestampversion : string 0..1A free text natural language name identifying the conformance statementname : string 0..1Name of Organizationpublisher : string 1..1Contacts for Organization relevant to this conformance statement. May be website, email, phone numbers, etctelecom : Contact 0..*A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFPdescription : string 0..1The status of this conformance statement (this element modifies the meaning of other elements)status : code 0..1 <<The status of this conformance statementConformanceStatementStatus>>This conformance statement was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usageexperimental : boolean 0..1Date that the conformance statement is publisheddate : dateTime 1..1The version of the FHIR specification on which this conformance statement is basedfhirVersion : id 1..1Whether the application accepts unknown non-"must understand" elements as part of a resource. This does not include extensions, but genuine new additions to a resourceacceptUnknown : boolean 1..1The formats supported by this implementationformat : code 1..* <<The mime type of an attachmentMimeType>>SoftwareName software is known byname : string 1..1Version covered by this statementversion : string 0..1Date this version of the software releasedreleaseDate : dateTime 0..1ImplementationInformation about the specific installation that this conformance statement relates todescription : string 1..1The base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfacesurl : uri 0..1RestIdentifies whether this portion of the statement is describing ability to initiate or receive restful operationsmode : code 1..1 <<The mode of a RESTful conformance statementRestfulConformanceMode>>Provides documentation about the system's restful capabilities that apply across all applications, such as securitydocumentation : string 0..1If batches are supportedbatch : boolean 0..1If a system wide history list is supportedhistory : boolean 0..1SecurityWhat type of security services are supported/requiredservice : CodeableConcept 0..* <<Types of security services used with FHIRRestfulSecurityService>>General description of how security worksdescription : string 0..1CertificateMime type for certificatetype : code 0..1 <<The mime type of an attachmentMimeType>>Actual certificateblob : base64Binary 0..1ResourceIdentifies the resource exposed via the restful interfacetype : code 1..1 <<One of the resource types defined as part of FHIRResourceType>>Identifies the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitationsprofile : Resource(Profile) 0..1A flag for whether the server is able to return past versions as part of the vRead operationreadHistory : boolean 0..1_include values supported by the serversearchInclude : string 0..*OperationIdentifies which operation is supportedcode : code 1..1 <<Operations supported by RESTRestfulOperation>>Provides guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'documentation : string 0..1SearchParamCorresponds to the name of the standard or custom search parametername : string 1..1A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parametersource : uri 0..1The type of value a search parameter refers to, and how the content is interpretedtype : code 1..1 <<Data types allowed to be used for search parametersSearchParamType>>For standard parameters, provides additional information on how the parameter is used in this solution. For custom parameters, provides a description of what the parameter doesdocumentation : string 1..1An XPath expression that extracts the set of elements that contain values that a search parameter matchesxpath : string 0..1Types of resource (if a resource reference)target : code 0..* <<One of the resource types defined as part of FHIRResourceType>>Chained names supportedchain : string 0..*QueryThe name of this query, which is used in the _query parameter when the query is usedname : string 1..1Description of the query - the functionality it offers, and considerations about how it functions and to use itdocumentation : string 1..1MessagingThe address to which messages and/or replies are to be sentendpoint : uri 0..1The length if the receiver's reliable messaging cache length (if a receiver) or how long the cache length on the receiver should be (if a sender)reliableCache : integer 0..1Provides documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partnerdocumentation : string 0..1EventIdentifies the supported messaging eventcode : code 1..1 <<One of the message events defined as part of FHIRMessageEvent>>The mode of this event declaration - whether application is sender or receivermode : code 1..1 <<The mode of a message conformance statementConformanceEventMode>>Identifies the messaging transport protocol(s) supported by this endpointprotocol : Coding 0..* <<The protocol used for message transportMessageTransport>>Identifies the resource associated with the event. This is the resource that defines the eventfocus : code 1..1 <<One of the resource types defined as part of FHIRResourceType>>Information about the request for this eventrequest : Resource(Profile) 1..1Information about the response for this eventresponse : Resource(Profile) 1..1Guidance on how this event is handled, such as internal system trigger points, business rules, etcdocumentation : string 0..1DocumentThe mode of this event declaration - whether application is sender or receivermode : code 1..1 <<Whether the application produces or consumes documentsDocumentMode>>Describes how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etcdocumentation : string 0..1Constraint on a resource used in the documentprofile : Resource(Profile) 1..1Describes the software that is covered by this conformance statement. Used when the profile describes the capabilities of a particular software version, independent of an installationsoftware0..1Used when the statement describes the capabilities of a specific implementation instance - i.e. a particular installation, rather than the capabilities of a software programimplementation0..1Certificates associated with security profilescertificate0..*Information about security of implementationsecurity0..1Identifies a restful operation supported by the solutionoperation1..*Defines additional search parameters for implementations to support and/or make use ofsearchParam0..*Identifies the restful capabilities of the solution for a specific resource typeresource1..*Parameter for the named queryparameter0..*Definition of a named query and its parameters and their meaningquery0..*Defines the restful capabilities of the solution, if anyrest0..*Describes the solution's support for an event at this end pointevent1..*Describes the messaging capabilities of the solutionmessaging0..*A document definitiondocument0..*
<Conformance xmlns="http://hl7.org/fhir">
 <!-- from Resource: extension, narrative, and contained -->
 <identifier value="[string]"/><!-- 0..1 Logical id to reference this statement § -->
 <version value="[string]"/><!-- 0..1 Logical id for this version of the statement § -->
 <name value="[string]"/><!-- 0..1 Informal name for this conformance statement § -->
 <publisher value="[string]"/><!-- 1..1 Publishing Organization § -->
 <telecom><!-- 0..* Contact Contacts for Organization § --></telecom>
 <description value="[string]"/><!-- 0..1 Human description of the conformance statement § -->
 <status value="[code]"/><!-- 0..1 draft | experimental | review | production | withdrawn | superseded § -->
 <experimental value="[boolean]"/><!-- 0..1 If for testing purposes, not real usage § -->
 <date value="[dateTime]"/><!-- 1..1 Publication Date § -->
 <software>  <!-- 0..1 Software that is covered by this conformance statement § -->
  <name value="[string]"/><!-- 1..1 Name software is known by § -->
  <version value="[string]"/><!-- 0..1 Version covered by this statement § -->
  <releaseDate value="[dateTime]"/><!-- 0..1 Date this version released § -->
 </software>
 <implementation>  <!-- 0..1 If this describes a specific instance § -->
  <description value="[string]"/><!-- 1..1 Describes this specific instance § -->
  <url value="[uri]"/><!-- 0..1 Base URL for the installation § -->
 </implementation>
 <fhirVersion value="[id]"/><!-- 1..1 FHIR Version § -->
 <acceptUnknown value="[boolean]"/><!-- 1..1 True if application accepts unknown elements -->
 <format value="[code]"/><!-- 1..* formats supported (xml | json | mime type) -->
 <rest>  <!-- 0..* If the endpoint is a RESTful one -->
  <mode value="[code]"/><!-- 1..1 client | server -->
  <documentation value="[string]"/><!-- 0..1 General description of implementation -->
  <security>  <!-- 0..1 Information about security of implementation -->
   <service><!-- 0..* CodeableConcept What type of security services are supported/required --></service>
   <description value="[string]"/><!-- 0..1 General description of how security works -->
   <certificate>  <!-- 0..* Certificates associated with security profiles -->
    <type value="[code]"/><!-- 0..1 Mime type for certificate -->
    <blob value="[base64Binary]"/><!-- 0..1 Actual certificate -->
   </certificate>
  </security>
  <resource>  <!-- 1..* Resource served on the REST interface -->
   <type value="[code]"/><!-- 1..1 Resource type -->
   <profile><!-- 0..1 Resource(Profile) Resource Profiles supported --></profile>
   <operation>  <!-- 1..* What operations are supported? -->
    <code value="[code]"/><!-- 1..1 read | vread | update | etc. -->
    <documentation value="[string]"/><!-- 0..1 Anything special about operation behavior -->
   </operation>
   <readHistory value="[boolean]"/><!-- 0..1 Whether vRead can return past versions -->
   <searchInclude value="[string]"/><!-- 0..* _include values supported by the server -->
   <searchParam>  <!-- 0..* Additional search params defined -->
    <name value="[string]"/><!-- 1..1 Name of search parameter -->
    <source value="[uri]"/><!-- 0..1 Source of definition -->
    <type value="[code]"/><!-- 1..1 Type of search parameter -->
    <documentation value="[string]"/><!-- 1..1 Contents and meaning of search parameter -->
    <xpath value="[string]"/><!-- 0..1 XPath that extracts the parameter set -->
    <target value="[code]"/><!-- 0..* Types of resource (if a resource reference) -->
    <chain value="[string]"/><!-- 0..* Chained names supported -->
   </searchParam>
  </resource>
  <batch value="[boolean]"/><!-- 0..1 If batches are supported -->
  <history value="[boolean]"/><!-- 0..1 If a system wide history list is supported -->
  <query>  <!-- 0..* Definition of a named query -->
   <name value="[string]"/><!-- 1..1 Name of the query (_query=) -->
   <documentation value="[string]"/><!-- 1..1 Describes the named query -->
   <parameter><!-- 0..* Content as for Conformance.rest.resource.searchParam Parameter for the named query --></parameter>
  </query>
 </rest>
 <messaging>  <!-- 0..* If messaging is supported -->
  <endpoint value="[uri]"/><!-- 0..1 Actual endpoint being described -->
  <reliableCache value="[integer]"/><!-- 0..1 Reliable Message Cache Length -->
  <documentation value="[string]"/><!-- 0..1 Messaging interface behavior details -->
  <event>  <!-- 1..* Declare support for this event -->
   <code value="[code]"/><!-- 1..1 Event type -->
   <mode value="[code]"/><!-- 1..1 sender | receiver -->
   <protocol><!-- 0..* Coding http | ftp |MLLP | etc. --></protocol>
   <focus value="[code]"/><!-- 1..1 Resource that's focus of message -->
   <request><!-- 1..1 Resource(Profile) Profile that describes the request --></request>
   <response><!-- 1..1 Resource(Profile) Profile that describes the response --></response>
   <documentation value="[string]"/><!-- 0..1 Endpoint-specific event documentation -->
  </event>
 </messaging>
 <document>  <!-- 0..* Document definition -->
  <mode value="[code]"/><!-- 1..1 producer | consumer -->
  <documentation value="[string]"/><!-- 0..1 Description of document support -->
  <profile><!-- 1..1 Resource(Profile) Constraint on a resource used in the document --></profile>
 </document>
</Conformance>

Alternate definitions: Schema/Schematron, Resource Profile

Terminology Bindings 6.12.4.1

PathDefinitionTypeReference
Conformance.status The status of this conformance statementFixedhttp://hl7.org/fhir/conformance-statement-status
Conformance.format
Conformance.rest.security.certificate.type
The mime type of an attachmentIncompleteBCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049)
Conformance.rest.mode The mode of a RESTful conformance statementFixedhttp://hl7.org/fhir/restful-conformance-mode
Conformance.rest.security.service Types of security services used with FHIRFixedhttp://hl7.org/fhir/restful-security-service
Conformance.rest.resource.type
Conformance.rest.resource.searchParam.target
Conformance.messaging.event.focus
One of the resource types defined as part of FHIRIncompletehttp://hl7.org/fhir/resource-types
Conformance.rest.resource.operation.code Operations supported by RESTFixedhttp://hl7.org/fhir/restful-operation
Conformance.rest.resource.searchParam.type Data types allowed to be used for search parametersFixedhttp://hl7.org/fhir/search-param-type
Conformance.messaging.event.code One of the message events defined as part of FHIRIncompletehttp://hl7.org/fhir/message-events
Conformance.messaging.event.mode The mode of a message conformance statementFixedhttp://hl7.org/fhir/message-conformance-event-mode
Conformance.messaging.event.protocol The protocol used for message transportFixedhttp://hl7.org/fhir/message-transport
Conformance.document.mode Whether the application produces or consumes documentsFixedhttp://hl7.org/fhir/document-mode

Constraints 6.12.4.2

Notes: 6.12.5

Search Parameters 6.12.6

Search Parameters for RESTful searches. The standard parameters also apply. See Searching for more information.

Name / TypeDescriptionPaths
_id : tokenThe logical resource id associated with the resource (must be supported by all servers)
date : datethe conformance statement publication dateConformance.date
event : tokenevent code in a conformance statementConformance.messaging.event.code
format : tokenformats supported (xml | json | mime type)Conformance.format
mode : tokenmode - restful (server/client) or messaging (sender/receiver)Conformance.rest.mode
profile : referencea profile id invoked in a conformance statementConformance.rest.resource.profile
publisher : stringpart of a publisher nameConformance.publisher
resource : tokenname of a resource mentioned in a conformance statementConformance.rest.resource.type
security : tokenInformation about security of implementationConformance.rest.security
software : stringpart of a the name of a software applicationConformance.software.name
version : tokenthe version of FHIRConformance.version