FHIR Application Feature Framework Implementation Guide
1.0.0 - STU 1

FHIR Application Feature Framework Implementation Guide - Local Development build (v1.0.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

## Resource Profile: Feature Capability Statement

Official URL: http://hl7.org/fhir/uv/application-feature/StructureDefinition/FeatureCapabilityStatement | Version: 1.0.0
Standards status: Trial-use | Maturity Level: 2 | Computable Name: FeatureCapabilityStatement

A profile on the CapabilityStatement resource that allows for feature negotiation.

Usages:

- Examples for this Profile: FeatureCapabilityStatementExample

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
CapabilityStatement | C | 0..* | CapabilityStatement | A statement of system capabilities Interfaces Implemented: CanonicalResource Constraints: cnl-0, cpb-1, cpb-2, cpb-3, cpb-4, cpb-7, cpb-14, cpb-15, cpb-16
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:feature | S | 0..* | (Complex) | Extension URL: http://hl7.org/fhir/uv/application-feature/StructureDefinition/feature
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
date | Σ | 1..1 | dateTime | Date last changed
kind | Σ C | 1..1 | code | instance | capability | requirements Binding: CapabilityStatementKind (required): How a capability statement is intended to be used.
software | Σ C | 0..1 | BackboneElement | Software that is covered by this capability statement
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | string | A name the software is known by
implementation | Σ C | 0..1 | BackboneElement | If this describes a specific instance
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
description | Σ | 1..1 | markdown | Describes this specific instance
fhirVersion | Σ | 1..1 | code | FHIR Version the system supports Binding: FHIRVersion (required): All published FHIR Versions.
format | Σ | 1..* | code | formats supported (xml | json | ttl | mime type) Binding: MimeTypes (required): The mime type of an attachment. Any valid mime type is allowed.
Additional Bindings | Purpose
CapabilityFormatType | Starter
rest | Σ C | 0..* | BackboneElement | If the endpoint is a RESTful one Constraints: cpb-9
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
mode | Σ C | 1..1 | code | client | server Binding: RestfulCapabilityMode (required): The mode of a RESTful capability statement.
document | Σ C | 0..* | BackboneElement | Document definition
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
mode | Σ C | 1..1 | code | producer | consumer Binding: DocumentMode (required): Whether the application produces or consumes documents.
profile | Σ C | 1..1 | canonical(StructureDefinition) | Constraint on the resources used in the document
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
CapabilityStatement.​status | Base | required | PublicationStatus | 📍5.0.0 | FHIR Std.
CapabilityStatement.​kind | Base | required | Capability Statement Kind | 📍5.0.0 | FHIR Std.
CapabilityStatement.​fhirVersion | Base | required | FHIRVersion | 📍5.0.0 | FHIR Std.
CapabilityStatement.​format | Base | required | Mime Types | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.mode | Base | required | Restful Capability Mode | 📍5.0.0 | FHIR Std.
CapabilityStatement.​document.mode | Base | required | Document Mode | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cnl-0 | warning | CapabilityStatement | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')`
cpb-1 | error | CapabilityStatement | A Capability Statement SHALL have at least one of REST, messaging or document element. | `rest.exists() or messaging.exists() or document.exists()`
cpb-2 | error | CapabilityStatement | A Capability Statement SHALL have at least one of description, software, or implementation element. | `(description.count() + software.count() + implementation.count()) > 0`
cpb-3 | error | CapabilityStatement | Messaging end-point is only permitted when a capability statement is for an implementation. | `messaging.endpoint.empty() or kind = 'instance'`
cpb-4 | error | CapabilityStatement | There should only be one CapabilityStatement.rest per mode. | `rest.mode.isDistinct()`
cpb-7 | error | CapabilityStatement | The set of documents must be unique by the combination of profile and mode. | `document.select(profile&mode).isDistinct()`
cpb-9 | error | CapabilityStatement.rest | A given resource can only be described once per RESTful mode. | `resource.select(type).isDistinct()`
cpb-14 | error | CapabilityStatement | If kind = instance, implementation must be present and software may be present | `(kind != 'instance') or implementation.exists()`
cpb-15 | error | CapabilityStatement | If kind = capability, implementation must be absent, software must be present | `(kind != 'capability') or (implementation.exists().not() and software.exists())`
cpb-16 | error | CapabilityStatement | If kind = requirements, implementation and software must be absent | `(kind!='requirements') or (implementation.exists().not() and software.exists().not())`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from CapabilityStatement

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
CapabilityStatement |  | 0..* | CapabilityStatement | A statement of system capabilities Interfaces Implemented: CanonicalResource
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:feature | S | 0..* | (Complex) | Extension URL: http://hl7.org/fhir/uv/application-feature/StructureDefinition/feature
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
CapabilityStatement | C | 0..* | CapabilityStatement | A statement of system capabilities Interfaces Implemented: CanonicalResource Constraints: cnl-0, cpb-1, cpb-2, cpb-3, cpb-4, cpb-7, cpb-14, cpb-15, cpb-16
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:feature | S | 0..* | (Complex) | Extension URL: http://hl7.org/fhir/uv/application-feature/StructureDefinition/feature
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
url | Σ C | 0..1 | uri | Canonical identifier for this capability statement, represented as a URI (globally unique) Constraints: cnl-1
identifier | Σ | 0..* | Identifier | Additional identifier for the CapabilityStatement (business identifier)
version | Σ | 0..1 | string | Business version of the capability statement
versionAlgorithm[x] | Σ | 0..1 |  | How to compare versions Binding: VersionAlgorithm (extensible)
versionAlgorithmString |  |  | string |
versionAlgorithmCoding |  |  | Coding |
name | Σ C | 0..1 | string | Name for this capability statement (computer friendly)
title | Σ | 0..1 | string | Name for this capability statement (human friendly)
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage
date | Σ | 1..1 | dateTime | Date last changed
publisher | Σ | 0..1 | string | Name of the publisher/steward (organization or individual)
contact | Σ | 0..* | ContactDetail | Contact details for the publisher
description | C | 0..1 | markdown | Natural language description of the capability statement
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for capability statement (if applicable) Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.
purpose |  | 0..1 | markdown | Why this capability statement is defined
copyright |  | 0..1 | markdown | Use and/or publishing restrictions
copyrightLabel |  | 0..1 | string | Copyright holder and year(s)
kind | Σ C | 1..1 | code | instance | capability | requirements Binding: CapabilityStatementKind (required): How a capability statement is intended to be used.
instantiates | Σ | 0..* | canonical(CapabilityStatement) | Canonical URL of another capability statement this implements
imports | Σ | 0..* | canonical(CapabilityStatement) | Canonical URL of another capability statement this adds to
software | Σ C | 0..1 | BackboneElement | Software that is covered by this capability statement
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | string | A name the software is known by
version | Σ | 0..1 | string | Version covered by this statement
releaseDate | Σ | 0..1 | dateTime | Date this version was released
implementation | Σ C | 0..1 | BackboneElement | If this describes a specific instance
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
description | Σ | 1..1 | markdown | Describes this specific instance
url | Σ | 0..1 | url | Base URL for the installation
custodian | Σ | 0..1 | Reference(Organization) | Organization that manages the data
fhirVersion | Σ | 1..1 | code | FHIR Version the system supports Binding: FHIRVersion (required): All published FHIR Versions.
format | Σ | 1..* | code | formats supported (xml | json | ttl | mime type) Binding: MimeTypes (required): The mime type of an attachment. Any valid mime type is allowed.
Additional Bindings | Purpose
CapabilityFormatType | Starter
patchFormat | Σ | 0..* | code | Patch formats supported Binding: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049)
acceptLanguage | Σ | 0..* | code | Languages supported Binding: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
implementationGuide | Σ | 0..* | canonical(ImplementationGuide) | Implementation guides supported
rest | Σ C | 0..* | BackboneElement | If the endpoint is a RESTful one Constraints: cpb-9
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
mode | Σ C | 1..1 | code | client | server Binding: RestfulCapabilityMode (required): The mode of a RESTful capability statement.
documentation |  | 0..1 | markdown | General description of implementation
security | Σ | 0..1 | BackboneElement | Information about security of implementation
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
cors | Σ | 0..1 | boolean | Adds CORS Headers (http://enable-cors.org/)
service | Σ | 0..* | CodeableConcept | OAuth | SMART-on-FHIR | NTLM | Basic | Kerberos | Certificates Binding: RestfulSecurityService (extensible): Types of security services used with FHIR.
description |  | 0..1 | markdown | General description of how security works
resource | Σ C | 0..* | BackboneElement | Resource served on the REST interface Constraints: cpb-12
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ C | 1..1 | code | A resource type that is supported Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.
profile | Σ | 0..1 | canonical(StructureDefinition) | System-wide profile
supportedProfile | Σ | 0..* | canonical(StructureDefinition) | Use-case specific profiles
documentation |  | 0..1 | markdown | Additional information about the use of the resource type
interaction |  | 0..* | BackboneElement | What operations are supported?
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code |  | 1..1 | code | read | vread | update | patch | delete | history-instance | history-type | create | search-type Binding: TypeRestfulInteraction (required): Operations supported by REST at the type or instance level.
documentation |  | 0..1 | markdown | Anything special about operation behavior
versioning |  | 0..1 | code | no-version | versioned | versioned-update Binding: ResourceVersionPolicy (required): How the system supports versioning for a resource.
readHistory |  | 0..1 | boolean | Whether vRead can return past versions
updateCreate |  | 0..1 | boolean | If update can commit to a new identity
conditionalCreate |  | 0..1 | boolean | If allows/uses conditional create
conditionalRead |  | 0..1 | code | not-supported | modified-since | not-match | full-support Binding: ConditionalReadStatus (required): A code that indicates how the server supports conditional read.
conditionalUpdate |  | 0..1 | boolean | If allows/uses conditional update
conditionalPatch |  | 0..1 | boolean | If allows/uses conditional patch
conditionalDelete |  | 0..1 | code | not-supported | single | multiple - how conditional delete is supported Binding: ConditionalDeleteStatus (required): A code that indicates how the server supports conditional delete.
referencePolicy |  | 0..* | code | literal | logical | resolves | enforced | local Binding: ReferenceHandlingPolicy (required): A set of flags that defines how references are supported.
searchInclude |  | 0..* | string | _include values supported by the server
searchRevInclude |  | 0..* | string | _revinclude values supported by the server
searchParam | C | 0..* | BackboneElement | Search parameters supported by implementation
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | C | 1..1 | string | Name for parameter in search url
definition |  | 0..1 | canonical(SearchParameter) | Source of definition for parameter
type |  | 1..1 | code | number | date | string | token | reference | composite | quantity | uri | special Binding: SearchParamType (required): Data types allowed to be used for search parameters.
documentation |  | 0..1 | markdown | Server-specific usage
operation | Σ | 0..* | BackboneElement | Definition of a resource operation
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | string | Name by which the operation/query is invoked
definition | Σ | 1..1 | canonical(OperationDefinition) | The defined operation/query
documentation |  | 0..1 | markdown | Specific details about operation behavior
interaction |  | 0..* | BackboneElement | What operations are supported?
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code |  | 1..1 | code | transaction | batch | search-system | history-system Binding: SystemRestfulInteraction (required): Operations supported by REST at the system level.
documentation |  | 0..1 | markdown | Anything special about operation behavior
searchParam |  | 0..* | See searchParam (CapabilityStatement) | Search parameters for searching all resources
operation | Σ | 0..* | See operation (CapabilityStatement) | Definition of a system level operation
compartment |  | 0..* | canonical(CompartmentDefinition) | Compartments served/used by system
messaging | Σ C | 0..* | BackboneElement | If messaging is supported
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
endpoint | C | 0..* | BackboneElement | Where messages should be sent
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
protocol |  | 1..1 | Coding | http | ftp | mllp + Binding: MessageTransport (extensible): The protocol used for message transport.
address |  | 1..1 | url | Network address or identifier of the end-point
reliableCache |  | 0..1 | unsignedInt | Reliable Message Cache Length (min)
documentation |  | 0..1 | markdown | Messaging interface behavior details
supportedMessage | Σ | 0..* | BackboneElement | Messages supported by this system
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
mode | Σ | 1..1 | code | sender | receiver Binding: EventCapabilityMode (required): The mode of a message capability statement.
definition | Σ | 1..1 | canonical(MessageDefinition) | Message supported by this system
document | Σ C | 0..* | BackboneElement | Document definition
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
mode | Σ C | 1..1 | code | producer | consumer Binding: DocumentMode (required): Whether the application produces or consumes documents.
documentation |  | 0..1 | markdown | Description of document support
profile | Σ C | 1..1 | canonical(StructureDefinition) | Constraint on the resources used in the document
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
CapabilityStatement.​language | Base | required | All Languages | 📍5.0.0 | FHIR Std.
CapabilityStatement.​versionAlgorithm[x] | Base | extensible | Version Algorithm | 📍5.0.0 | FHIR Std.
CapabilityStatement.​status | Base | required | PublicationStatus | 📍5.0.0 | FHIR Std.
CapabilityStatement.​jurisdiction | Base | extensible | Jurisdiction ValueSet | 📍5.0.0 | FHIR Std.
CapabilityStatement.​kind | Base | required | Capability Statement Kind | 📍5.0.0 | FHIR Std.
CapabilityStatement.​fhirVersion | Base | required | FHIRVersion | 📍5.0.0 | FHIR Std.
CapabilityStatement.​format | Base | required | Mime Types | 📍5.0.0 | FHIR Std.
CapabilityStatement.​patchFormat | Base | required | Mime Types | 📍5.0.0 | FHIR Std.
CapabilityStatement.​acceptLanguage | Base | required | All Languages | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.mode | Base | required | Restful Capability Mode | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.security.service | Base | extensible | Restful Security Service | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.resource.type | Base | required | Resource Types | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.resource.interaction.​code | Base | required | Type Restful Interaction | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.resource.versioning | Base | required | Resource Version Policy | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.resource.conditionalRead | Base | required | Conditional Read Status | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.resource.conditionalDelete | Base | required | Conditional Delete Status | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.resource.referencePolicy | Base | required | Reference Handling Policy | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.resource.searchParam.​type | Base | required | SearchParamType | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.interaction.code | Base | required | System Restful Interaction | 📍5.0.0 | FHIR Std.
CapabilityStatement.​messaging.endpoint.protocol | Base | extensible | Message Transport | 📍5.0.0 | FHIR Std.
CapabilityStatement.​messaging.supportedMessage.​mode | Base | required | Event Capability Mode | 📍5.0.0 | FHIR Std.
CapabilityStatement.​document.mode | Base | required | Document Mode | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cnl-0 | warning | CapabilityStatement | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')`
cnl-1 | warning | CapabilityStatement.url | URL should not contain | or # - these characters make processing canonical references problematic | `exists() implies matches('^[^|# ]+$')`
cpb-1 | error | CapabilityStatement | A Capability Statement SHALL have at least one of REST, messaging or document element. | `rest.exists() or messaging.exists() or document.exists()`
cpb-2 | error | CapabilityStatement | A Capability Statement SHALL have at least one of description, software, or implementation element. | `(description.count() + software.count() + implementation.count()) > 0`
cpb-3 | error | CapabilityStatement | Messaging end-point is only permitted when a capability statement is for an implementation. | `messaging.endpoint.empty() or kind = 'instance'`
cpb-4 | error | CapabilityStatement | There should only be one CapabilityStatement.rest per mode. | `rest.mode.isDistinct()`
cpb-7 | error | CapabilityStatement | The set of documents must be unique by the combination of profile and mode. | `document.select(profile&mode).isDistinct()`
cpb-9 | error | CapabilityStatement.rest | A given resource can only be described once per RESTful mode. | `resource.select(type).isDistinct()`
cpb-12 | error | CapabilityStatement.rest.resource | Search parameter names must be unique in the context of a resource. | `searchParam.select(name).isDistinct()`
cpb-14 | error | CapabilityStatement | If kind = instance, implementation must be present and software may be present | `(kind != 'instance') or implementation.exists()`
cpb-15 | error | CapabilityStatement | If kind = capability, implementation must be absent, software must be present | `(kind != 'capability') or (implementation.exists().not() and software.exists())`
cpb-16 | error | CapabilityStatement | If kind = requirements, implementation and software must be absent | `(kind!='requirements') or (implementation.exists().not() and software.exists().not())`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from CapabilityStatement

Summary

Must-Support: 1 element

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/uv/application-feature/StructureDefinition/feature

Maturity: 2

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
CapabilityStatement | C | 0..* | CapabilityStatement | A statement of system capabilities Interfaces Implemented: CanonicalResource Constraints: cnl-0, cpb-1, cpb-2, cpb-3, cpb-4, cpb-7, cpb-14, cpb-15, cpb-16
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:feature | S | 0..* | (Complex) | Extension URL: http://hl7.org/fhir/uv/application-feature/StructureDefinition/feature
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
date | Σ | 1..1 | dateTime | Date last changed
kind | Σ C | 1..1 | code | instance | capability | requirements Binding: CapabilityStatementKind (required): How a capability statement is intended to be used.
software | Σ C | 0..1 | BackboneElement | Software that is covered by this capability statement
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | string | A name the software is known by
implementation | Σ C | 0..1 | BackboneElement | If this describes a specific instance
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
description | Σ | 1..1 | markdown | Describes this specific instance
fhirVersion | Σ | 1..1 | code | FHIR Version the system supports Binding: FHIRVersion (required): All published FHIR Versions.
format | Σ | 1..* | code | formats supported (xml | json | ttl | mime type) Binding: MimeTypes (required): The mime type of an attachment. Any valid mime type is allowed.
Additional Bindings | Purpose
CapabilityFormatType | Starter
rest | Σ C | 0..* | BackboneElement | If the endpoint is a RESTful one Constraints: cpb-9
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
mode | Σ C | 1..1 | code | client | server Binding: RestfulCapabilityMode (required): The mode of a RESTful capability statement.
document | Σ C | 0..* | BackboneElement | Document definition
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
mode | Σ C | 1..1 | code | producer | consumer Binding: DocumentMode (required): Whether the application produces or consumes documents.
profile | Σ C | 1..1 | canonical(StructureDefinition) | Constraint on the resources used in the document
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
CapabilityStatement.​status | Base | required | PublicationStatus | 📍5.0.0 | FHIR Std.
CapabilityStatement.​kind | Base | required | Capability Statement Kind | 📍5.0.0 | FHIR Std.
CapabilityStatement.​fhirVersion | Base | required | FHIRVersion | 📍5.0.0 | FHIR Std.
CapabilityStatement.​format | Base | required | Mime Types | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.mode | Base | required | Restful Capability Mode | 📍5.0.0 | FHIR Std.
CapabilityStatement.​document.mode | Base | required | Document Mode | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cnl-0 | warning | CapabilityStatement | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')`
cpb-1 | error | CapabilityStatement | A Capability Statement SHALL have at least one of REST, messaging or document element. | `rest.exists() or messaging.exists() or document.exists()`
cpb-2 | error | CapabilityStatement | A Capability Statement SHALL have at least one of description, software, or implementation element. | `(description.count() + software.count() + implementation.count()) > 0`
cpb-3 | error | CapabilityStatement | Messaging end-point is only permitted when a capability statement is for an implementation. | `messaging.endpoint.empty() or kind = 'instance'`
cpb-4 | error | CapabilityStatement | There should only be one CapabilityStatement.rest per mode. | `rest.mode.isDistinct()`
cpb-7 | error | CapabilityStatement | The set of documents must be unique by the combination of profile and mode. | `document.select(profile&mode).isDistinct()`
cpb-9 | error | CapabilityStatement.rest | A given resource can only be described once per RESTful mode. | `resource.select(type).isDistinct()`
cpb-14 | error | CapabilityStatement | If kind = instance, implementation must be present and software may be present | `(kind != 'instance') or implementation.exists()`
cpb-15 | error | CapabilityStatement | If kind = capability, implementation must be absent, software must be present | `(kind != 'capability') or (implementation.exists().not() and software.exists())`
cpb-16 | error | CapabilityStatement | If kind = requirements, implementation and software must be absent | `(kind!='requirements') or (implementation.exists().not() and software.exists().not())`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Differential View

This structure is derived from CapabilityStatement

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
CapabilityStatement |  | 0..* | CapabilityStatement | A statement of system capabilities Interfaces Implemented: CanonicalResource
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:feature | S | 0..* | (Complex) | Extension URL: http://hl7.org/fhir/uv/application-feature/StructureDefinition/feature
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
CapabilityStatement | C | 0..* | CapabilityStatement | A statement of system capabilities Interfaces Implemented: CanonicalResource Constraints: cnl-0, cpb-1, cpb-2, cpb-3, cpb-4, cpb-7, cpb-14, cpb-15, cpb-16
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:feature | S | 0..* | (Complex) | Extension URL: http://hl7.org/fhir/uv/application-feature/StructureDefinition/feature
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
url | Σ C | 0..1 | uri | Canonical identifier for this capability statement, represented as a URI (globally unique) Constraints: cnl-1
identifier | Σ | 0..* | Identifier | Additional identifier for the CapabilityStatement (business identifier)
version | Σ | 0..1 | string | Business version of the capability statement
versionAlgorithm[x] | Σ | 0..1 |  | How to compare versions Binding: VersionAlgorithm (extensible)
versionAlgorithmString |  |  | string |
versionAlgorithmCoding |  |  | Coding |
name | Σ C | 0..1 | string | Name for this capability statement (computer friendly)
title | Σ | 0..1 | string | Name for this capability statement (human friendly)
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage
date | Σ | 1..1 | dateTime | Date last changed
publisher | Σ | 0..1 | string | Name of the publisher/steward (organization or individual)
contact | Σ | 0..* | ContactDetail | Contact details for the publisher
description | C | 0..1 | markdown | Natural language description of the capability statement
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for capability statement (if applicable) Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.
purpose |  | 0..1 | markdown | Why this capability statement is defined
copyright |  | 0..1 | markdown | Use and/or publishing restrictions
copyrightLabel |  | 0..1 | string | Copyright holder and year(s)
kind | Σ C | 1..1 | code | instance | capability | requirements Binding: CapabilityStatementKind (required): How a capability statement is intended to be used.
instantiates | Σ | 0..* | canonical(CapabilityStatement) | Canonical URL of another capability statement this implements
imports | Σ | 0..* | canonical(CapabilityStatement) | Canonical URL of another capability statement this adds to
software | Σ C | 0..1 | BackboneElement | Software that is covered by this capability statement
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | string | A name the software is known by
version | Σ | 0..1 | string | Version covered by this statement
releaseDate | Σ | 0..1 | dateTime | Date this version was released
implementation | Σ C | 0..1 | BackboneElement | If this describes a specific instance
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
description | Σ | 1..1 | markdown | Describes this specific instance
url | Σ | 0..1 | url | Base URL for the installation
custodian | Σ | 0..1 | Reference(Organization) | Organization that manages the data
fhirVersion | Σ | 1..1 | code | FHIR Version the system supports Binding: FHIRVersion (required): All published FHIR Versions.
format | Σ | 1..* | code | formats supported (xml | json | ttl | mime type) Binding: MimeTypes (required): The mime type of an attachment. Any valid mime type is allowed.
Additional Bindings | Purpose
CapabilityFormatType | Starter
patchFormat | Σ | 0..* | code | Patch formats supported Binding: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049)
acceptLanguage | Σ | 0..* | code | Languages supported Binding: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
implementationGuide | Σ | 0..* | canonical(ImplementationGuide) | Implementation guides supported
rest | Σ C | 0..* | BackboneElement | If the endpoint is a RESTful one Constraints: cpb-9
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
mode | Σ C | 1..1 | code | client | server Binding: RestfulCapabilityMode (required): The mode of a RESTful capability statement.
documentation |  | 0..1 | markdown | General description of implementation
security | Σ | 0..1 | BackboneElement | Information about security of implementation
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
cors | Σ | 0..1 | boolean | Adds CORS Headers (http://enable-cors.org/)
service | Σ | 0..* | CodeableConcept | OAuth | SMART-on-FHIR | NTLM | Basic | Kerberos | Certificates Binding: RestfulSecurityService (extensible): Types of security services used with FHIR.
description |  | 0..1 | markdown | General description of how security works
resource | Σ C | 0..* | BackboneElement | Resource served on the REST interface Constraints: cpb-12
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ C | 1..1 | code | A resource type that is supported Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.
profile | Σ | 0..1 | canonical(StructureDefinition) | System-wide profile
supportedProfile | Σ | 0..* | canonical(StructureDefinition) | Use-case specific profiles
documentation |  | 0..1 | markdown | Additional information about the use of the resource type
interaction |  | 0..* | BackboneElement | What operations are supported?
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code |  | 1..1 | code | read | vread | update | patch | delete | history-instance | history-type | create | search-type Binding: TypeRestfulInteraction (required): Operations supported by REST at the type or instance level.
documentation |  | 0..1 | markdown | Anything special about operation behavior
versioning |  | 0..1 | code | no-version | versioned | versioned-update Binding: ResourceVersionPolicy (required): How the system supports versioning for a resource.
readHistory |  | 0..1 | boolean | Whether vRead can return past versions
updateCreate |  | 0..1 | boolean | If update can commit to a new identity
conditionalCreate |  | 0..1 | boolean | If allows/uses conditional create
conditionalRead |  | 0..1 | code | not-supported | modified-since | not-match | full-support Binding: ConditionalReadStatus (required): A code that indicates how the server supports conditional read.
conditionalUpdate |  | 0..1 | boolean | If allows/uses conditional update
conditionalPatch |  | 0..1 | boolean | If allows/uses conditional patch
conditionalDelete |  | 0..1 | code | not-supported | single | multiple - how conditional delete is supported Binding: ConditionalDeleteStatus (required): A code that indicates how the server supports conditional delete.
referencePolicy |  | 0..* | code | literal | logical | resolves | enforced | local Binding: ReferenceHandlingPolicy (required): A set of flags that defines how references are supported.
searchInclude |  | 0..* | string | _include values supported by the server
searchRevInclude |  | 0..* | string | _revinclude values supported by the server
searchParam | C | 0..* | BackboneElement | Search parameters supported by implementation
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | C | 1..1 | string | Name for parameter in search url
definition |  | 0..1 | canonical(SearchParameter) | Source of definition for parameter
type |  | 1..1 | code | number | date | string | token | reference | composite | quantity | uri | special Binding: SearchParamType (required): Data types allowed to be used for search parameters.
documentation |  | 0..1 | markdown | Server-specific usage
operation | Σ | 0..* | BackboneElement | Definition of a resource operation
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | string | Name by which the operation/query is invoked
definition | Σ | 1..1 | canonical(OperationDefinition) | The defined operation/query
documentation |  | 0..1 | markdown | Specific details about operation behavior
interaction |  | 0..* | BackboneElement | What operations are supported?
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code |  | 1..1 | code | transaction | batch | search-system | history-system Binding: SystemRestfulInteraction (required): Operations supported by REST at the system level.
documentation |  | 0..1 | markdown | Anything special about operation behavior
searchParam |  | 0..* | See searchParam (CapabilityStatement) | Search parameters for searching all resources
operation | Σ | 0..* | See operation (CapabilityStatement) | Definition of a system level operation
compartment |  | 0..* | canonical(CompartmentDefinition) | Compartments served/used by system
messaging | Σ C | 0..* | BackboneElement | If messaging is supported
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
endpoint | C | 0..* | BackboneElement | Where messages should be sent
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
protocol |  | 1..1 | Coding | http | ftp | mllp + Binding: MessageTransport (extensible): The protocol used for message transport.
address |  | 1..1 | url | Network address or identifier of the end-point
reliableCache |  | 0..1 | unsignedInt | Reliable Message Cache Length (min)
documentation |  | 0..1 | markdown | Messaging interface behavior details
supportedMessage | Σ | 0..* | BackboneElement | Messages supported by this system
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
mode | Σ | 1..1 | code | sender | receiver Binding: EventCapabilityMode (required): The mode of a message capability statement.
definition | Σ | 1..1 | canonical(MessageDefinition) | Message supported by this system
document | Σ C | 0..* | BackboneElement | Document definition
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
mode | Σ C | 1..1 | code | producer | consumer Binding: DocumentMode (required): Whether the application produces or consumes documents.
documentation |  | 0..1 | markdown | Description of document support
profile | Σ C | 1..1 | canonical(StructureDefinition) | Constraint on the resources used in the document
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
CapabilityStatement.​language | Base | required | All Languages | 📍5.0.0 | FHIR Std.
CapabilityStatement.​versionAlgorithm[x] | Base | extensible | Version Algorithm | 📍5.0.0 | FHIR Std.
CapabilityStatement.​status | Base | required | PublicationStatus | 📍5.0.0 | FHIR Std.
CapabilityStatement.​jurisdiction | Base | extensible | Jurisdiction ValueSet | 📍5.0.0 | FHIR Std.
CapabilityStatement.​kind | Base | required | Capability Statement Kind | 📍5.0.0 | FHIR Std.
CapabilityStatement.​fhirVersion | Base | required | FHIRVersion | 📍5.0.0 | FHIR Std.
CapabilityStatement.​format | Base | required | Mime Types | 📍5.0.0 | FHIR Std.
CapabilityStatement.​patchFormat | Base | required | Mime Types | 📍5.0.0 | FHIR Std.
CapabilityStatement.​acceptLanguage | Base | required | All Languages | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.mode | Base | required | Restful Capability Mode | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.security.service | Base | extensible | Restful Security Service | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.resource.type | Base | required | Resource Types | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.resource.interaction.​code | Base | required | Type Restful Interaction | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.resource.versioning | Base | required | Resource Version Policy | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.resource.conditionalRead | Base | required | Conditional Read Status | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.resource.conditionalDelete | Base | required | Conditional Delete Status | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.resource.referencePolicy | Base | required | Reference Handling Policy | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.resource.searchParam.​type | Base | required | SearchParamType | 📍5.0.0 | FHIR Std.
CapabilityStatement.​rest.interaction.code | Base | required | System Restful Interaction | 📍5.0.0 | FHIR Std.
CapabilityStatement.​messaging.endpoint.protocol | Base | extensible | Message Transport | 📍5.0.0 | FHIR Std.
CapabilityStatement.​messaging.supportedMessage.​mode | Base | required | Event Capability Mode | 📍5.0.0 | FHIR Std.
CapabilityStatement.​document.mode | Base | required | Document Mode | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cnl-0 | warning | CapabilityStatement | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')`
cnl-1 | warning | CapabilityStatement.url | URL should not contain | or # - these characters make processing canonical references problematic | `exists() implies matches('^[^|# ]+$')`
cpb-1 | error | CapabilityStatement | A Capability Statement SHALL have at least one of REST, messaging or document element. | `rest.exists() or messaging.exists() or document.exists()`
cpb-2 | error | CapabilityStatement | A Capability Statement SHALL have at least one of description, software, or implementation element. | `(description.count() + software.count() + implementation.count()) > 0`
cpb-3 | error | CapabilityStatement | Messaging end-point is only permitted when a capability statement is for an implementation. | `messaging.endpoint.empty() or kind = 'instance'`
cpb-4 | error | CapabilityStatement | There should only be one CapabilityStatement.rest per mode. | `rest.mode.isDistinct()`
cpb-7 | error | CapabilityStatement | The set of documents must be unique by the combination of profile and mode. | `document.select(profile&mode).isDistinct()`
cpb-9 | error | CapabilityStatement.rest | A given resource can only be described once per RESTful mode. | `resource.select(type).isDistinct()`
cpb-12 | error | CapabilityStatement.rest.resource | Search parameter names must be unique in the context of a resource. | `searchParam.select(name).isDistinct()`
cpb-14 | error | CapabilityStatement | If kind = instance, implementation must be present and software may be present | `(kind != 'instance') or implementation.exists()`
cpb-15 | error | CapabilityStatement | If kind = capability, implementation must be absent, software must be present | `(kind != 'capability') or (implementation.exists().not() and software.exists())`
cpb-16 | error | CapabilityStatement | If kind = requirements, implementation and software must be absent | `(kind!='requirements') or (implementation.exists().not() and software.exists().not())`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from CapabilityStatement

Summary

Must-Support: 1 element

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/uv/application-feature/StructureDefinition/feature

Maturity: 2

Other representations of profile: CSV, Excel, Schematron