Finnish Implementation Guide for SMART App Launch
2.0.0-rc3 - qa-preview

Publication Build: This will be filled in by the publication tooling

## Resource Profile: Finnish SMART Server Capability Statement Profile

Official URL: https://hl7.fi/fhir/finnish-smart/StructureDefinition/fi-smart-server-profile | Version: 2.0.0-rc3
Draft as of 2025-06-01 | Computable Name: FiSmartServerProfile

This CapabilityStatement profile describes the basic rules for a server actor providing SMART App Launch in Finland.

Usages:

- This Profile is not used by any profiles in this Implementation Guide

### 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 cpb-0: Name should be usable as an identifier for the module by machine processing applications such as code generation cpb-1: A Capability Statement SHALL have at least one of REST, messaging or document element. cpb-2: A Capability Statement SHALL have at least one of description, software, or implementation element. cpb-3: Messaging end-point is required (and is only permitted) when a statement is for an implementation. cpb-7: The set of documents must be unique by the combination of profile and mode. cpb-14: If kind = instance, implementation must be present and software may be present cpb-15: If kind = capability, implementation must be absent, software must be present cpb-16: If kind = requirements, implementation and software must be absent dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-5: If a resource is contained in another resource, it SHALL NOT have a security label dom-6: A resource should have narrative for robust management
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created ele-1: All FHIR elements must have a @value or children
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. ele-1: All FHIR elements must have a @value or children
date | Σ | 1..1 | dateTime | Date last changed ele-1: All FHIR elements must have a @value or children
kind | Σ C | 1..1 | code | instance | capability | requirements Binding: CapabilityStatementKind (required): How a capability statement is intended to be used. ele-1: All FHIR elements must have a @value or children
implementation | Σ C | 0..1 | BackboneElement | If this describes a specific instance ele-1: All FHIR elements must have a @value or children
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
description | Σ | 1..1 | string | Describes this specific instance ele-1: All FHIR elements must have a @value or children
fhirVersion | Σ | 1..1 | code | FHIR Version the system supports Binding: FHIRVersion (required): All published FHIR Versions. ele-1: All FHIR elements must have a @value or children
Slices for format | Σ | 1..* | code | JSON is mandatory Slice: Unordered, Open by value:$this Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. ele-1: All FHIR elements must have a @value or children
format:json | Σ | 1..* | code | formats supported (xml | json | ttl | mime type) Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. ele-1: All FHIR elements must have a @value or children
value |  | 0..1 | string | Primitive value for code Required Pattern: json
implementationGuide | Σ | 0..* | canonical(ImplementationGuide) | Implementation guides supported ele-1: All FHIR elements must have a @value or children Required Pattern: http://hl7.org/fhir/smart-app-launch/ImplementationGuide/hl7.fhir.uv.smart-app-launch
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
CapabilityStatement.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|4.0.1` From the FHIR Standard
CapabilityStatement.kind | required | CapabilityStatementKind `http://hl7.org/fhir/ValueSet/capability-statement-kind|4.0.1` From the FHIR Standard
CapabilityStatement.fhirVersion | required | FHIRVersion `http://hl7.org/fhir/ValueSet/FHIR-version|4.0.1` From the FHIR Standard
CapabilityStatement.format | required | Mime Types(a valid code from `urn:ietf:bcp:13`) `http://hl7.org/fhir/ValueSet/mimetypes|4.0.1` From the FHIR Standard
CapabilityStatement.format:json | required | Mime Types(a valid code from `urn:ietf:bcp:13`) `http://hl7.org/fhir/ValueSet/mimetypes|4.0.1` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
cpb-0 | warning | CapabilityStatement | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,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 required (and is only permitted) when a statement is for an implementation. : messaging.endpoint.empty() or kind = 'instance' |
cpb-7 | error | CapabilityStatement | The set of documents must be unique by the combination of profile and mode. : document.select(profile&mode).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()) |
dom-2 | error | CapabilityStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | CapabilityStatement | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() |
dom-4 | error | CapabilityStatement | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | CapabilityStatement | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | CapabilityStatement | A resource should have narrative for robust management : text.`div`.exists() |
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
Slices for format |  | 1..* | code | JSON is mandatory Slice: Unordered, Open by value:$this
format:json |  | 1..* | code | formats supported (xml | json | ttl | mime type)
value |  | 0..1 | string | Primitive value for code Required Pattern: json
implementationGuide |  | 0..* | canonical(ImplementationGuide) | Implementation guides supported Required Pattern: http://hl7.org/fhir/smart-app-launch/ImplementationGuide/hl7.fhir.uv.smart-app-launch
rest |  |  |  |
mode |  | 1..1 | code | client | server Required Pattern: server
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
CapabilityStatement | C | 0..* | CapabilityStatement | A statement of system capabilities cpb-0: Name should be usable as an identifier for the module by machine processing applications such as code generation cpb-1: A Capability Statement SHALL have at least one of REST, messaging or document element. cpb-2: A Capability Statement SHALL have at least one of description, software, or implementation element. cpb-3: Messaging end-point is required (and is only permitted) when a statement is for an implementation. cpb-7: The set of documents must be unique by the combination of profile and mode. cpb-14: If kind = instance, implementation must be present and software may be present cpb-15: If kind = capability, implementation must be absent, software must be present cpb-16: If kind = requirements, implementation and software must be absent
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: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
url | Σ | 0..1 | uri | Canonical identifier for this capability statement, represented as a URI (globally unique)
version | Σ | 0..1 | string | Business version of the capability statement
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 (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: Jurisdiction ValueSet (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
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 | string | 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.
Slices for format | Σ | 1..* | code | JSON is mandatory Slice: Unordered, Open by value:$this Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
format:json | Σ | 1..* | code | formats supported (xml | json | ttl | mime type) Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional content defined by implementations
value |  | 0..1 | string | Primitive value for code Required Pattern: json
patchFormat | Σ | 0..* | code | Patch formats supported Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
implementationGuide | Σ | 0..* | canonical(ImplementationGuide) | Implementation guides supported Required Pattern: http://hl7.org/fhir/smart-app-launch/ImplementationGuide/hl7.fhir.uv.smart-app-launch
rest | Σ C | 0..* | BackboneElement | If the endpoint is a RESTful one cpb-9: A given resource can only be described once per RESTful mode.
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 | client | server Binding: RestfulCapabilityMode (required): The mode of a RESTful capability statement. Required Pattern: server
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 cpb-12: Search parameter names must be unique in the context of a resource.
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 | Σ | 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) | Base System profile for all uses of resource
supportedProfile | Σ | 0..* | canonical(StructureDefinition) | Profiles for use cases supported
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
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 |  | 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 |  | 1..1 | string | Name of search parameter
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 |  | 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 | Σ | 1..1 | code | producer | consumer Binding: DocumentMode (required): Whether the application produces or consumes documents.
documentation |  | 0..1 | markdown | Description of document support
profile | Σ | 1..1 | canonical(StructureDefinition) | Constraint on the resources used in the document
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet / Code | URI
CapabilityStatement.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` From the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
CapabilityStatement.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|4.0.1` From the FHIR Standard
CapabilityStatement.jurisdiction | extensible | Jurisdiction ValueSet `http://hl7.org/fhir/ValueSet/jurisdiction` From the FHIR Standard
CapabilityStatement.kind | required | CapabilityStatementKind `http://hl7.org/fhir/ValueSet/capability-statement-kind|4.0.1` From the FHIR Standard
CapabilityStatement.fhirVersion | required | FHIRVersion `http://hl7.org/fhir/ValueSet/FHIR-version|4.0.1` From the FHIR Standard
CapabilityStatement.format | required | Mime Types(a valid code from `urn:ietf:bcp:13`) `http://hl7.org/fhir/ValueSet/mimetypes|4.0.1` From the FHIR Standard
CapabilityStatement.format:json | required | Mime Types(a valid code from `urn:ietf:bcp:13`) `http://hl7.org/fhir/ValueSet/mimetypes|4.0.1` From the FHIR Standard
CapabilityStatement.patchFormat | required | Mime Types(a valid code from `urn:ietf:bcp:13`) `http://hl7.org/fhir/ValueSet/mimetypes|4.0.1` From the FHIR Standard
CapabilityStatement.rest.mode | required | Pattern Value: server `http://hl7.org/fhir/ValueSet/restful-capability-mode|4.0.1` From the FHIR Standard
CapabilityStatement.rest.security.service | extensible | RestfulSecurityService `http://hl7.org/fhir/ValueSet/restful-security-service` From the FHIR Standard
CapabilityStatement.rest.resource.type | required | ResourceType `http://hl7.org/fhir/ValueSet/resource-types|4.0.1` From the FHIR Standard
CapabilityStatement.rest.resource.interaction.code | required | TypeRestfulInteraction `http://hl7.org/fhir/ValueSet/type-restful-interaction|4.0.1` From the FHIR Standard
CapabilityStatement.rest.resource.versioning | required | ResourceVersionPolicy `http://hl7.org/fhir/ValueSet/versioning-policy|4.0.1` From the FHIR Standard
CapabilityStatement.rest.resource.conditionalRead | required | ConditionalReadStatus `http://hl7.org/fhir/ValueSet/conditional-read-status|4.0.1` From the FHIR Standard
CapabilityStatement.rest.resource.conditionalDelete | required | ConditionalDeleteStatus `http://hl7.org/fhir/ValueSet/conditional-delete-status|4.0.1` From the FHIR Standard
CapabilityStatement.rest.resource.referencePolicy | required | ReferenceHandlingPolicy `http://hl7.org/fhir/ValueSet/reference-handling-policy|4.0.1` From the FHIR Standard
CapabilityStatement.rest.resource.searchParam.type | required | SearchParamType `http://hl7.org/fhir/ValueSet/search-param-type|4.0.1` From the FHIR Standard
CapabilityStatement.rest.interaction.code | required | SystemRestfulInteraction `http://hl7.org/fhir/ValueSet/system-restful-interaction|4.0.1` From the FHIR Standard
CapabilityStatement.messaging.endpoint.protocol | extensible | MessageTransport `http://hl7.org/fhir/ValueSet/message-transport` From the FHIR Standard
CapabilityStatement.messaging.supportedMessage.mode | required | EventCapabilityMode `http://hl7.org/fhir/ValueSet/event-capability-mode|4.0.1` From the FHIR Standard
CapabilityStatement.document.mode | required | DocumentMode `http://hl7.org/fhir/ValueSet/document-mode|4.0.1` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
cpb-0 | warning | CapabilityStatement | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,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 required (and is only permitted) when a statement is for an implementation. : messaging.endpoint.empty() or kind = 'instance' |
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()) |
dom-2 | error | CapabilityStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | CapabilityStatement | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() |
dom-4 | error | CapabilityStatement | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | CapabilityStatement | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | CapabilityStatement | A resource should have narrative for robust management : text.`div`.exists() |
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

Mandatory: 1 element

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of CapabilityStatement.format

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
CapabilityStatement | C | 0..* | CapabilityStatement | A statement of system capabilities cpb-0: Name should be usable as an identifier for the module by machine processing applications such as code generation cpb-1: A Capability Statement SHALL have at least one of REST, messaging or document element. cpb-2: A Capability Statement SHALL have at least one of description, software, or implementation element. cpb-3: Messaging end-point is required (and is only permitted) when a statement is for an implementation. cpb-7: The set of documents must be unique by the combination of profile and mode. cpb-14: If kind = instance, implementation must be present and software may be present cpb-15: If kind = capability, implementation must be absent, software must be present cpb-16: If kind = requirements, implementation and software must be absent dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-5: If a resource is contained in another resource, it SHALL NOT have a security label dom-6: A resource should have narrative for robust management
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created ele-1: All FHIR elements must have a @value or children
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. ele-1: All FHIR elements must have a @value or children
date | Σ | 1..1 | dateTime | Date last changed ele-1: All FHIR elements must have a @value or children
kind | Σ C | 1..1 | code | instance | capability | requirements Binding: CapabilityStatementKind (required): How a capability statement is intended to be used. ele-1: All FHIR elements must have a @value or children
implementation | Σ C | 0..1 | BackboneElement | If this describes a specific instance ele-1: All FHIR elements must have a @value or children
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
description | Σ | 1..1 | string | Describes this specific instance ele-1: All FHIR elements must have a @value or children
fhirVersion | Σ | 1..1 | code | FHIR Version the system supports Binding: FHIRVersion (required): All published FHIR Versions. ele-1: All FHIR elements must have a @value or children
Slices for format | Σ | 1..* | code | JSON is mandatory Slice: Unordered, Open by value:$this Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. ele-1: All FHIR elements must have a @value or children
format:json | Σ | 1..* | code | formats supported (xml | json | ttl | mime type) Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. ele-1: All FHIR elements must have a @value or children
value |  | 0..1 | string | Primitive value for code Required Pattern: json
implementationGuide | Σ | 0..* | canonical(ImplementationGuide) | Implementation guides supported ele-1: All FHIR elements must have a @value or children Required Pattern: http://hl7.org/fhir/smart-app-launch/ImplementationGuide/hl7.fhir.uv.smart-app-launch
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
CapabilityStatement.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|4.0.1` From the FHIR Standard
CapabilityStatement.kind | required | CapabilityStatementKind `http://hl7.org/fhir/ValueSet/capability-statement-kind|4.0.1` From the FHIR Standard
CapabilityStatement.fhirVersion | required | FHIRVersion `http://hl7.org/fhir/ValueSet/FHIR-version|4.0.1` From the FHIR Standard
CapabilityStatement.format | required | Mime Types(a valid code from `urn:ietf:bcp:13`) `http://hl7.org/fhir/ValueSet/mimetypes|4.0.1` From the FHIR Standard
CapabilityStatement.format:json | required | Mime Types(a valid code from `urn:ietf:bcp:13`) `http://hl7.org/fhir/ValueSet/mimetypes|4.0.1` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
cpb-0 | warning | CapabilityStatement | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,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 required (and is only permitted) when a statement is for an implementation. : messaging.endpoint.empty() or kind = 'instance' |
cpb-7 | error | CapabilityStatement | The set of documents must be unique by the combination of profile and mode. : document.select(profile&mode).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()) |
dom-2 | error | CapabilityStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | CapabilityStatement | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() |
dom-4 | error | CapabilityStatement | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | CapabilityStatement | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | CapabilityStatement | A resource should have narrative for robust management : text.`div`.exists() |
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
Slices for format |  | 1..* | code | JSON is mandatory Slice: Unordered, Open by value:$this
format:json |  | 1..* | code | formats supported (xml | json | ttl | mime type)
value |  | 0..1 | string | Primitive value for code Required Pattern: json
implementationGuide |  | 0..* | canonical(ImplementationGuide) | Implementation guides supported Required Pattern: http://hl7.org/fhir/smart-app-launch/ImplementationGuide/hl7.fhir.uv.smart-app-launch
rest |  |  |  |
mode |  | 1..1 | code | client | server Required Pattern: server
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 cpb-0: Name should be usable as an identifier for the module by machine processing applications such as code generation cpb-1: A Capability Statement SHALL have at least one of REST, messaging or document element. cpb-2: A Capability Statement SHALL have at least one of description, software, or implementation element. cpb-3: Messaging end-point is required (and is only permitted) when a statement is for an implementation. cpb-7: The set of documents must be unique by the combination of profile and mode. cpb-14: If kind = instance, implementation must be present and software may be present cpb-15: If kind = capability, implementation must be absent, software must be present cpb-16: If kind = requirements, implementation and software must be absent
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: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
url | Σ | 0..1 | uri | Canonical identifier for this capability statement, represented as a URI (globally unique)
version | Σ | 0..1 | string | Business version of the capability statement
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 (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: Jurisdiction ValueSet (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
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 | string | 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.
Slices for format | Σ | 1..* | code | JSON is mandatory Slice: Unordered, Open by value:$this Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
format:json | Σ | 1..* | code | formats supported (xml | json | ttl | mime type) Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional content defined by implementations
value |  | 0..1 | string | Primitive value for code Required Pattern: json
patchFormat | Σ | 0..* | code | Patch formats supported Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
implementationGuide | Σ | 0..* | canonical(ImplementationGuide) | Implementation guides supported Required Pattern: http://hl7.org/fhir/smart-app-launch/ImplementationGuide/hl7.fhir.uv.smart-app-launch
rest | Σ C | 0..* | BackboneElement | If the endpoint is a RESTful one cpb-9: A given resource can only be described once per RESTful mode.
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 | client | server Binding: RestfulCapabilityMode (required): The mode of a RESTful capability statement. Required Pattern: server
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 cpb-12: Search parameter names must be unique in the context of a resource.
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 | Σ | 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) | Base System profile for all uses of resource
supportedProfile | Σ | 0..* | canonical(StructureDefinition) | Profiles for use cases supported
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
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 |  | 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 |  | 1..1 | string | Name of search parameter
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 |  | 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 | Σ | 1..1 | code | producer | consumer Binding: DocumentMode (required): Whether the application produces or consumes documents.
documentation |  | 0..1 | markdown | Description of document support
profile | Σ | 1..1 | canonical(StructureDefinition) | Constraint on the resources used in the document
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet / Code | URI
CapabilityStatement.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` From the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
CapabilityStatement.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|4.0.1` From the FHIR Standard
CapabilityStatement.jurisdiction | extensible | Jurisdiction ValueSet `http://hl7.org/fhir/ValueSet/jurisdiction` From the FHIR Standard
CapabilityStatement.kind | required | CapabilityStatementKind `http://hl7.org/fhir/ValueSet/capability-statement-kind|4.0.1` From the FHIR Standard
CapabilityStatement.fhirVersion | required | FHIRVersion `http://hl7.org/fhir/ValueSet/FHIR-version|4.0.1` From the FHIR Standard
CapabilityStatement.format | required | Mime Types(a valid code from `urn:ietf:bcp:13`) `http://hl7.org/fhir/ValueSet/mimetypes|4.0.1` From the FHIR Standard
CapabilityStatement.format:json | required | Mime Types(a valid code from `urn:ietf:bcp:13`) `http://hl7.org/fhir/ValueSet/mimetypes|4.0.1` From the FHIR Standard
CapabilityStatement.patchFormat | required | Mime Types(a valid code from `urn:ietf:bcp:13`) `http://hl7.org/fhir/ValueSet/mimetypes|4.0.1` From the FHIR Standard
CapabilityStatement.rest.mode | required | Pattern Value: server `http://hl7.org/fhir/ValueSet/restful-capability-mode|4.0.1` From the FHIR Standard
CapabilityStatement.rest.security.service | extensible | RestfulSecurityService `http://hl7.org/fhir/ValueSet/restful-security-service` From the FHIR Standard
CapabilityStatement.rest.resource.type | required | ResourceType `http://hl7.org/fhir/ValueSet/resource-types|4.0.1` From the FHIR Standard
CapabilityStatement.rest.resource.interaction.code | required | TypeRestfulInteraction `http://hl7.org/fhir/ValueSet/type-restful-interaction|4.0.1` From the FHIR Standard
CapabilityStatement.rest.resource.versioning | required | ResourceVersionPolicy `http://hl7.org/fhir/ValueSet/versioning-policy|4.0.1` From the FHIR Standard
CapabilityStatement.rest.resource.conditionalRead | required | ConditionalReadStatus `http://hl7.org/fhir/ValueSet/conditional-read-status|4.0.1` From the FHIR Standard
CapabilityStatement.rest.resource.conditionalDelete | required | ConditionalDeleteStatus `http://hl7.org/fhir/ValueSet/conditional-delete-status|4.0.1` From the FHIR Standard
CapabilityStatement.rest.resource.referencePolicy | required | ReferenceHandlingPolicy `http://hl7.org/fhir/ValueSet/reference-handling-policy|4.0.1` From the FHIR Standard
CapabilityStatement.rest.resource.searchParam.type | required | SearchParamType `http://hl7.org/fhir/ValueSet/search-param-type|4.0.1` From the FHIR Standard
CapabilityStatement.rest.interaction.code | required | SystemRestfulInteraction `http://hl7.org/fhir/ValueSet/system-restful-interaction|4.0.1` From the FHIR Standard
CapabilityStatement.messaging.endpoint.protocol | extensible | MessageTransport `http://hl7.org/fhir/ValueSet/message-transport` From the FHIR Standard
CapabilityStatement.messaging.supportedMessage.mode | required | EventCapabilityMode `http://hl7.org/fhir/ValueSet/event-capability-mode|4.0.1` From the FHIR Standard
CapabilityStatement.document.mode | required | DocumentMode `http://hl7.org/fhir/ValueSet/document-mode|4.0.1` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
cpb-0 | warning | CapabilityStatement | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,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 required (and is only permitted) when a statement is for an implementation. : messaging.endpoint.empty() or kind = 'instance' |
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()) |
dom-2 | error | CapabilityStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | CapabilityStatement | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() |
dom-4 | error | CapabilityStatement | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | CapabilityStatement | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | CapabilityStatement | A resource should have narrative for robust management : text.`div`.exists() |
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

Mandatory: 1 element

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of CapabilityStatement.format

Other representations of profile: CSV, Excel, Schematron