FHIR 中文版

6.15 Resource Conformance - Content

A conformance statement is a set of requirements for a desired implementation or a description of how a target application fulfills those requirements in a particular implementation.



## 6.15.1 Scope and Usage

Conformance statements are used in one of three ways:

### 6.15.1.1 Describe an actual implementation

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.

### 6.15.1.2 Describe software solution capabilities

In this scenario, the conformance statement describes 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.

### 6.15.1.3 Describe a desired solution

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.



## 6.15.2 Background and Context



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.

6.15.3

Resource Content






UML Diagram









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 Organization publishing this conformance statementpublisher : string 1..1Contacts for Organization relevant to this conformance statement. The contacts may be a 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 statementConformanceStatementStatusA flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usageexperimental : boolean 0..1The date when the conformance statement was publisheddate : dateTime 1..1The version of the FHIR specification on which this conformance statement is basedfhirVersion : id 1..1A flag that indicates whether the application accepts unknown elements as part of a resourceacceptUnknown : boolean 1..1A list of the formats supported by this implementationformat : code 1.. 芦 The mime type of an attachmentMimeTypeA list of profiles supported by the system. For a server, "supported by the system" means the system hosts/produces a set of recourses, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profileprofile : Resource(Profile) 0..SoftwareName software is known byname : string 1..1The version identifier for the software 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..1A 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 statementRestfulConformanceModeInformation about the system’s restful capabilities that apply across all applications, such as securitydocumentation : string 0..1A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier "http://hl7.org/fhir/documents/mailbox". Other specifications can declare their own identifier for this purposedocumentMailbox : uri 0..SecurityServer adds CORS headers when responding to requests - this enables javascript applications to yuse the servercors : boolean 0..1Types of security services are supported/required by the systemservice : 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 attachmentMimeTypeActual certificateblob : base64Binary 0..1ResourceA type of resource exposed via the restful interfacetype : code 1..1 芦 One of the resource types defined as part of FHIRResourceTypeA specification of 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..1A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn’t already exist. This means that the server allows the client to create new identities on the serverupdateCreate : boolean 0..1A list of _include values supported by the serversearchInclude : string 0..OperationCoded identifier of the operation, supported by the system resourcecode : code 1..1 芦 Operations supported by REST at the type or instance levelRestfulOperationTypeGuidance 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..1SearchParamThe name of the search parameter used in the interfacename : 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 parameterdefinition : 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 parametersSearchParamTypeThis allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithmsdocumentation : string 0..1Types of resource (if a resource is referenced)target : code 0..One of the resource types defined as part of FHIRResourceTypeChained names supportedchain : string 0..OperationA coded identifier of the operation, supported by the systemcode : code 1..1 芦 Operations supported by REST at the system levelRestfulOperationSystemGuidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implementeddocumentation : string 0..1QueryThe name of a query, which is used in the _query parameter when the query is calledname : string 1..1Identifies the custom query, defined either in FHIR core or another profiledefinition : uri 1..1Additional information about how the query functions in this particular implementationdocumentation : string 0..1MessagingAn address to which messages and/or replies are to be sentendpoint : uri 0..1Length if the receiver’s reliable messaging cache (if a receiver) or how long the cache length on the receiver should be (if a sender)reliableCache : integer 0..1Documentation 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..1EventA coded identifier of a supported messaging eventcode : Coding 1..1 芦 One of the message events defined as part of FHIRMessageEvent+ 禄The impact of the content of the messagecategory : code 0..1 芦 The impact of the content of a messageMessageSignificanceCategoryThe mode of this event declaration - whether application is sender or receivermode : code 1..1 芦 The mode of a message conformance statementConformanceEventModeA list of the messaging transport protocol(s) identifiers, supported by this endpointprotocol : Coding 0..The protocol used for message transportMessageTransport+ 禄A 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 FHIRResourceTypeInformation 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..1DocumentMode of this document declaration - whether application is producer or consumermode : code 1..1 芦 Whether the application produces or consumes documentsDocumentModeA description of 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..1A constraint on a resource used in the documentprofile : Resource(Profile) 1..1Software that is covered by this conformance statement. It is used when the profile describes the capabilities of a particular software version, independent of an installationsoftware0..1Identifies a specific implementation instance that is described by the conformance statement - 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..Additional search parameters for implementations to support and/or make use ofsearchParam0..A specification of the restful capabilities of the solution for a specific resource typeresource1..A specification of restful operations supported by the systemoperation0..Identifies which of the parameters for the named query are supportedparameter0..Definition of a named query and its parameters and their meaningquery0..A definition of the restful capabilities of the solution, if anyrest0..A description of the solution’s support for an event at this end pointevent1..A description of the messaging capabilities of the solutionmessaging0..A document definitiondocument0..




Structure











































































NameCard.TypeDescription & Constraints
.. Conformance ResourceA conformance statement
A Conformance statement SHALL have at least one of description, software, or implementationA Conformance statement SHALL have at least one of rest, messaging or documentThe set of documents must be unique by the combination of profile & modeThe set of end points listed for messaging must be uniqueIf there is more than one messaging element, endpoint must be specified for each oneThere can only be one REST declaration per mode
... identifier 0..1stringLogical id to reference this statement
... version 0..1stringLogical id for this version of the statement
... name 0..1stringInformal name for this conformance statement
... publisher 1..1stringPublishing Organization
... telecom 0..ContactContacts for Organization
... description 0..1stringHuman description of the conformance statement
... status 0..1codedraft | active | retired
ConformanceStatementStatus (Required)
... experimental 0..1booleanIf for testing purposes, not real usage
... date 1..1dateTimePublication Date
... software ElementSoftware that is covered by this conformance statement
.... name 1..1stringA name the software is known by
.... version 0..1stringVersion covered by this statement
.... releaseDate 0..1dateTimeDate this version released
... implementation ElementIf this describes a specific instance
.... description 1..1stringDescribes this specific instance
.... url 0..1uriBase URL for the installation
... fhirVersion 1..1idFHIR Version
... acceptUnknown 1..1booleanTrue if application accepts unknown elements
... format 1..codeformats supported (xml | json | mime type)
MimeType (Required)
... profile 0..ProfileProfiles supported by the system
... rest ElementIf the endpoint is a RESTful one
A given query can only be described once per RESTful modeA given resource can only be described once per RESTful mode
.... mode 1..1codeclient | server
RestfulConformanceMode (Required)
.... documentation 0..1stringGeneral description of implementation
.... security ElementInformation about security of implementation
..... cors 0..1booleanAdds CORS Headers (http://enable-cors.org/)
..... service 0..CodeableConceptOAuth | OAuth2 | NTLM | Basic | Kerberos
RestfulSecurityService (Incomplete)
..... description 0..1stringGeneral description of how security works
..... certificate ElementCertificates associated with security profiles
...... type 0..1codeMime type for certificate
MimeType (Required)
...... blob 0..1base64BinaryActual certificate
.... resource ElementResource served on the REST interface
Operation codes must be unique in the context of a resourceSearch parameter names must be unique in the context of a resource
..... type 1..1codeA resource type that is supported
ResourceType (Required)
..... profile 0..1ProfileWhat structural features are supported
..... operation ElementWhat operations are supported?
...... code 1..1coderead | vread | update | delete | history-instance | validate | history-type | create | search-type
RestfulOperationType (Required)
...... documentation 0..1stringAnything special about operation behavior
..... readHistory 0..1booleanWhether vRead can return past versions
..... updateCreate 0..1booleanIf allows/uses update to a new location
..... searchInclude 0..string_include values supported by the server
..... searchParam ElementAdditional search params defined
...... name 1..1stringName of search parameter
...... definition 0..1uriSource of definition for parameter
...... type 1..1codenumber | date | string | token | reference | composite | quantity
SearchParamType (Required)
...... documentation 0..1stringServer-specific usage
...... target 0..codeTypes of resource (if a resource reference)
ResourceType (Required)
...... chain 0..stringChained names supported
.... operation ElementWhat operations are supported?
..... code 1..1codetransaction | search-system | history-system
RestfulOperationSystem (Required)
..... documentation 0..1stringAnything special about operation behavior
.... query ElementDefinition of a named query
Search parameter names must be unique in the context of a query
..... name 1..1stringSpecial named queries (_query=)
..... definition 1..1uriWhere query is defined
..... documentation 0..1stringAdditional usage guidance
..... parameter 0..see searchParamParameter for the named query
.... documentMailbox 0..uriHow documents are accepted in /Mailbox
... messaging ElementIf messaging is supported
Messaging end point is required (and is only permitted) when statement is for an implementationThe set of events per messaging endpoint must be unique by the combination of code & mode
.... endpoint 0..1uriActual endpoint being described
.... reliableCache 0..1integerReliable Message Cache Length
.... documentation 0..1stringMessaging interface behavior details
.... event ElementDeclare support for this event
..... code 1..1CodingEvent type
MessageEvent (Incomplete)
..... category 0..1codeConsequence | Currency | Notification
MessageSignificanceCategory (Required)
..... mode 1..1codesender | receiver
ConformanceEventMode (Required)
..... protocol 0..Codinghttp | ftp | mllp +
MessageTransport (Incomplete)
..... focus 1..1codeResource that’s focus of message
ResourceType (Required)
..... request 1..1ProfileProfile that describes the request
..... response 1..1ProfileProfile that describes the response
..... documentation 0..1stringEndpoint-specific event documentation
... document ElementDocument definition
.... mode 1..1codeproducer | consumer
DocumentMode (Required)
.... documentation 0..1stringDescription of document support
.... profile 1..1ProfileConstraint on a resource used in the document





XML Template



<Conformance xmlns="http://hl7.org/fhir"&gt; doco
<!– from Resource: extension, modifierExtension, language, text, 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 | active | retired § –>
<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 A name the 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) –>
<profile><!– 0..* Resource(Profile) Profiles supported by the system –></profile>
<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 –>
<cors value="[boolean]"/><!– 0..1 Adds CORS Headers (http://enable-cors.org/) –>
<service><!– 0..* CodeableConcept OAuth | OAuth2 | NTLM | Basic | Kerberos –></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 A resource type that is supported –>
<profile><!– 0..1 Resource(Profile) What structural features are supported –></profile>
<operation> <!– 1..* What operations are supported? –>
<code value="[code]"/><!– 1..1 read | vread | update | delete | history-instance | validate | history-type | create | search-type –>
<documentation value="[string]"/><!– 0..1 Anything special about operation behavior –>
</operation>
<readHistory value="[boolean]"/><!– 0..1 Whether vRead can return past versions –>
<updateCreate value="[boolean]"/><!– 0..1 If allows/uses update to a new location –>
<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 –>
<definition value="[uri]"/><!– 0..1 Source of definition for parameter –>
<type value="[code]"/><!– 1..1 number | date | string | token | reference | composite | quantity –>
<documentation value="[string]"/><!– 0..1 Server-specific usage –>
<target value="[code]"/><!– 0..* Types of resource (if a resource reference) –>
<chain value="[string]"/><!– 0..* Chained names supported –>
</searchParam>
</resource>
<operation> <!– 0..* What operations are supported? –>
<code value="[code]"/><!– 1..1 transaction | search-system | history-system –>
<documentation value="[string]"/><!– 0..1 Anything special about operation behavior –>
</operation>
<query> <!– 0..* Definition of a named query –>
<name value="[string]"/><!– 1..1 Special named queries (_query=) –>
<definition value="[uri]"/><!– 1..1 Where query is defined –>
<documentation value="[string]"/><!– 0..1 Additional usage guidance –>
<parameter><!– 0..* Content as for Conformance.rest.resource.searchParam Parameter for the named query –></parameter>
</query>
<documentMailbox value="[uri]"/><!– 0..* How documents are accepted in /Mailbox –>
</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><!– 1..1 Coding Event type –></code>
<category value="[code]"/><!– 0..1 Consequence | Currency | Notification –>
<mode value="[code]"/><!– 1..1 sender | receiver –>
<protocol><!– 0..* Coding http | ftp | mllp + –></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 (XML, JSON)

6.15.3.1

Terminology Bindings
















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/valueset/resource-types
Conformance.rest.resource.operation.code Operations supported by REST at the type or instance levelFixedhttp://hl7.org/fhir/type-restful-operation
Conformance.rest.resource.searchParam.type Data types allowed to be used for search parametersFixedhttp://hl7.org/fhir/search-param-type
Conformance.rest.operation.code Operations supported by REST at the system levelFixedhttp://hl7.org/fhir/system-restful-operation
Conformance.messaging.event.code One of the message events defined as part of FHIRIncompletehttp://hl7.org/fhir/valueset/message-events
Conformance.messaging.event.category The impact of the content of a messageFixedhttp://hl7.org/fhir/message-significance-category
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

6.15.3.2 Constraints

  • Inv-1: A Conformance statement SHALL have at least one of rest, messaging or document (xpath: exists(f:rest) or exists(f:messaging) or exists(f:document))
  • Inv-2: A Conformance statement SHALL have at least one of description, software, or implementation (xpath: count(f:software | f:implementation | f:description) > 0)
  • Inv-4: If there is more than one messaging element, endpoint must be specified for each one (xpath: count(f:messaging)<=1 or not(f:messaging[not(f:endpoint)]))
  • Inv-5: The set of end points listed for messaging must be unique (xpath: count(f:messaging/f:endpoint)=count(distinct-values(f:messaging/f:endpoint/@value)))
  • Inv-7: The set of documents must be unique by the combination of profile & mode (xpath: count(f:document[f:mode=’producer’])=count(distinct-values(f:document[f:mode=’producer’]/f:profile/@value)) and count(f:document[f:mode=’consumer’])=count(distinct-values(f:document[f:mode=’consumer’]/f:profile/@value)))
  • Inv-8: There can only be one REST declaration per mode (xpath: count(f:rest)=count(distinct-values(f:rest/f:mode/@value)))
  • Inv-9: On Conformance.rest: A given resource can only be described once per RESTful mode (xpath on f:Conformance/f:rest: count(f:resource)=count(distinct-values(f:resource/f:type/@value)))
  • Inv-10: On Conformance.rest: A given query can only be described once per RESTful mode (xpath on f:Conformance/f:rest: count(f:query)=count(distinct-values(f:query/f:name/@value)))
  • Inv-11: On Conformance.rest.resource: Operation codes must be unique in the context of a resource (xpath on f:Conformance/f:rest/f:resource: count(f:operation)=count(distinct-values(f:operation/f:code/@value)))
  • Inv-12: On Conformance.rest.resource: Search parameter names must be unique in the context of a resource (xpath on f:Conformance/f:rest/f:resource: count(f:searchParam)=count(distinct-values(f:searchParam/f:name/@value)))
  • Inv-13: On Conformance.rest.query: Search parameter names must be unique in the context of a query (xpath on f:Conformance/f:rest/f:query: count(f:parameter)=count(distinct-values(f:parameter/f:name/@value)))
  • Inv-3: On Conformance.messaging: Messaging end point is required (and is only permitted) when statement is for an implementation (xpath on f:Conformance/f:messaging: exists(f:endpoint) = exists(parent::f:Conformance/f:implementation))
  • Inv-6: On Conformance.messaging: The set of events per messaging endpoint must be unique by the combination of code & mode (xpath on f:Conformance/f:messaging: count(f:event[f:mode=’sender’])=count(distinct-values(f:event[f:mode=’sender’]/f:code/@value)) and count(f:event[f:mode=’receiver’])=count(distinct-values(f:event[f:mode=’receiver’]/f:code/@value)))

6.15.4

Notes:

  • The Conformance resource provides for an application to describe its use of the RESTful
    paradigm messaging events, or FHIR documents. Usually, an application would only describe one, but more than one may be described
  • RESTful conformance rules:

    *   RESTful servers are required to provide [this resource on demand](http.html#conformance).   Servers SHALL specify what resource types and operations are supported, and SHOULD also   specify profiles for each resource type.
    
    • RESTful clients SHOULD publish a conformance statement
    • The search parameters that a server supports (or a client makes use of) are specified in the resource profile that the conformance statement references
    • Resource Types or operations that are not listed are not supported* Messaging conformance rules:

      • The interpretation of request and response depends on the mode. If the mode is sender, then request specifies what the application sends, and response specifies what it accepts. If the mode is "receiver", then this is reversed
    • If a request or response is not specified for an event, then no rules are made for it
    • Events that are not listed are not supported* Document conformance rules:

      • Document Profiles should directly constrain the Document.information.class & type elements so so that there is no ambiguity concerning which profile any given document conforms to* Other service based use of resources: Due to the variability of these services, the Conformance resource does not attempt to describe service based use of resources. The various service specifications will need to describe this usage in their own way

6.15.4.1 Supporting Profiles

A conformance profile declares two different kinds of profiles for the functionality it describes.
The Resource Profiles are specified using Conformance.rest.resource.profile element and the System Profiles are specified using Conformance.profile element.

6.15.4.1.1 Resource Profiles

These profiles describe the general features that are supported by the system for each kind of
resource. Typically, this is the superset of all the different use-cases implemented by the system.
This is a resource-level perspective of the system functionality.

6.15.4.1.2 System Profiles

These profiles describe the information handled/produced by the system on a per use case basis.
Some examples of the uses for system profiles:

  • A Laboratory service producing a set of different reports - general chemistry, blood count, etc. Typical labs would support several hundred different reports
  • A care manager which handles a set of different types of care plans and associated clinical resources
  • A medications formulary that handles several different levels of sophistication in its medication representations

Typically, these profiles are a series of variations on the same set of resources - different use cases leading to handling
the resources that represent them differently. These use-cases described above all pertain to system that produce and publish
data, but the same concept applies to systems that consume data. For instance:

  • An expert service that provides analysis on several different sets of data conforming to a particular pattern - tests x,y and z with particular codes and units

For producer and a consumer systems to exchange data successfully based on
one of these system supported profiles, it’s not enough to know that the
systems happen to have system profiles that overlap for the use case
of interest; the consumer must be able to filter the total set of resources
made available by the producer system and deal only with the ones relevant
to the use case.

As an example consider a laboratory system generating 1000s of reports
a day. 1% of those reports are a particular endocrine report that a
decision support system knows how to process. Both systems declare that
they support the particular endocrine profile, but how does the expert
system actually find the endocrine reports that it knows how to process?

One possible option is for the expert system to receive every single
report coming from the lab system, check whether it conforms to the
profile or not, and then decide whether to process it. Checking whether
a resource conforms to a particular profile or not is a straight
forward operation (on option is to use the provided tools for this),
but this is very inefficient way - the expert system has to receive
and process 100 times many resources as it uses. To help a consumer
find the correct set of reports for a use-case, the producer of the
resources also SHALL:

  1. Mark resources with the tag declaring the profile(s) they conform to (this enables indexing by the profile)
  2. (if a server) support searching by the _profile parameter for the declared profiles

Beyond these requirements, a producer of resources SHOULD ensure that any data that would reasonably be expected
to conform to the declared profiles SHOULD be published in this form.

DSTU note: there are many uninvestigated issues associated with system profiles.
HL7 is actively seeking feedback from users who experiment with system profiles, and users
should be prepared for changes to features and obligations in this area in the future.

6.15.5 Search Parameters

Search parameters for this resource. The standard parameters also apply. See Searching for more information about searching in REST, messaging, and services.





















NameTypeDescriptionPaths
_idtokenThe logical resource id associated with the resource (must be supported by all servers)
_languagetokenThe stated language of the resource
datedateThe conformance statement publication dateConformance.date
descriptionstringText search in the description of the conformance statementConformance.description
eventtokenEvent code in a conformance statementConformance.messaging.event.code
fhirversiontokenThe version of FHIRConformance.version
formattokenformats supported (xml | json | mime type)Conformance.format
identifiertokenThe identifier of the conformance statementConformance.identifier
modetokenMode - restful (server/client) or messaging (sender/receiver)Conformance.rest.mode
namestringName of the conformance statementConformance.name
profilereferenceA profile id invoked in a conformance statementConformance.rest.resource.profile
(Profile)
publisherstringName of the publisher of the conformance statementConformance.publisher
resourcetokenName of a resource mentioned in a conformance statementConformance.rest.resource.type
securitytokenInformation about security of implementationConformance.rest.security
softwarestringPart of a the name of a software applicationConformance.software.name
statustokenThe current status of the conformance statementConformance.status
supported-profilereferenceProfiles supported by the systemConformance.profile
(Profile)
versiontokenThe version identifier of the conformance statementConformance.version

            </div>  <!-- /inner-wrapper -->
        </div>  <!-- /row -->
    </div>  <!-- /container -->

</div>  <!-- /segment-content -->

<div id="segment-footer" class="segment">  <!-- segment-footer -->
    <div class="container">  <!-- container -->
        <div class="inner-wrapper">

    &copy; HL7.org 2011 - 2014. FHIR DSTU (v0.2.1-2606) generated on Wed, Jul 2, 2014 16:27+0800.   <!-- [QA Report](qa.html) -->   <!-- achive note -->

    <span style="color: #FFFF77">
    Links: [What's a DSTU?](dstu.html) | 
           [Version History](history.html) | 
           [Compare to DSTU](http://services.w3.org/htmldiff?doc1=http%3A%2F%2Fhl7.org%2Fimplement%2Fstandards%2Ffhir%2Fconformance.html&amp;doc2=http%3A%2F%2Fhl7.org%2Fimplement%2Fstandards%2FFHIR-Develop%2Fconformance.html) | 
           [License](license.html) | 
           [Propose a change](http://gforge.hl7.org/gf/project/fhir/tracker/?action=TrackerItemAdd&amp;tracker_id=677)   
    </span>

        </div>  <!-- /inner-wrapper -->
    </div>  <!-- /container -->
</div>  <!-- /segment-footer -->