FHIR Application Feature Framework Implementation Guide
1.0.0 - STU1 Ballot International flag

FHIR Application Feature Framework Implementation Guide, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/capstmt/ and changes regularly. 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: 1 Computable Name: FeatureCapabilityStatement

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

Usages:

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.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CapabilityStatement C 0..* CapabilityStatement A statement of system capabilities
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
... 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 BindingsPurpose
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

doco 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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CapabilityStatement 0..* CapabilityStatement A statement of system capabilities
... 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

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CapabilityStatement C 0..* CapabilityStatement A statement of system capabilities
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 BindingsPurpose
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 BindingsPurpose
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 BindingsPurpose
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

doco 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:

Maturity: 1

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CapabilityStatement C 0..* CapabilityStatement A statement of system capabilities
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
... 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 BindingsPurpose
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

doco 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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CapabilityStatement 0..* CapabilityStatement A statement of system capabilities
... 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

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CapabilityStatement C 0..* CapabilityStatement A statement of system capabilities
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 BindingsPurpose
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 BindingsPurpose
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 BindingsPurpose
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

doco 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:

Maturity: 1

 

Other representations of profile: CSV, Excel, Schematron