## Profile Comparison between https://hl7.fi/fhir/finnish-smart/StructureDefinition/fi-smart-server-profile vs https://hl7.fi/fhir/finnish-smart/StructureDefinition/fi-smart-server-profile

Left: | Finnish SMART Server Capability Statement Profile (https://hl7.fi/fhir/finnish-smart/StructureDefinition/fi-smart-server-profile)
Right: | Finnish SMART Server Capability Statement Profile (https://hl7.fi/fhir/finnish-smart/StructureDefinition/fi-smart-server-profile)

### Messages

Error | StructureDefinition.version | Values for version differ: '2.0.0-rc2' vs '2.0.0-rc3'
Information | StructureDefinition.date | Values for date differ: '2025-05-09T23:48:18+03:00' vs '2025-06-01T15:34:41+03:00'

### Metadata

Name | Value | Comments
--- | --- | ---
abstract | false |
baseDefinition | http://hl7.org/fhir/StructureDefinition/CapabilityStatement |
copyright |  |
date | 2025-05-09T23:48:18+03:00 | 2025-06-01T15:34:41+03:00 | Values Differ
description | This CapabilityStatement profile describes the basic rules for a server actor providing SMART App Launch in Finland. |
experimental |  |
fhirVersion | 4.0.1 |
jurisdiction |  |
jurisdiction[0] | urn:iso:std:iso:3166#FI |
kind | resource |
name | FiSmartServerProfile |
publisher | HL7 Finland ry |
purpose |  |
status | draft |
title | Finnish SMART Server Capability Statement Profile |
type | CapabilityStatement |
url | https://hl7.fi/fhir/finnish-smart/StructureDefinition/fi-smart-server-profile |
version | 2.0.0-rc2 | 2.0.0-rc3 | Values Differ

### Structure

Name | L Flags | L Card. | L Type | L Description & Constraints | R Flags | R Card. | R Type | R Description & Constraints | Comments
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
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 | 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 | Σ | 0..1 | id | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language |  | 0..1 | code | Language of the resource content Binding: ?? (preferred): A human language.
Additional Bindings | Purpose
?? | Max Binding
|  | 0..1 | code | Language of the resource content Binding: ?? (preferred): A human language.
Additional Bindings | Purpose
?? | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation |  | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained |  | 0..* | Resource | Contained, inline Resources |  | 0..* | Resource | Contained, inline Resources |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ?! | 0..* | Extension | Extensions that cannot be ignored |
url | Σ | 0..1 | uri | Canonical identifier for this capability statement, represented as a URI (globally unique) | Σ | 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 | Σ | 0..1 | string | Business version of the capability statement |
name | Σ C | 0..1 | string | Name for this capability statement (computer friendly) | Σ C | 0..1 | string | Name for this capability statement (computer friendly) |
title | Σ | 0..1 | string | Name for this capability statement (human friendly) | Σ | 0..1 | string | Name for this capability statement (human friendly) |
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: ?? (required): The lifecycle status of an artifact. | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: ?? (required): The lifecycle status of an artifact. |
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage | Σ | 0..1 | boolean | For testing purposes, not real usage |
date | Σ | 1..1 | dateTime | Date last changed | Σ | 1..1 | dateTime | Date last changed |
publisher | Σ | 0..1 | string | Name of the publisher (organization or individual) | Σ | 0..1 | string | Name of the publisher (organization or individual) |
contact | Σ | 0..* | ContactDetail | Contact details for the publisher | Σ | 0..* | ContactDetail | Contact details for the publisher |
description | C | 0..1 | markdown | Natural language description of the capability statement | C | 0..1 | markdown | Natural language description of the capability statement |
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support | Σ | 0..* | UsageContext | The context that the content is intended to support |
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for capability statement (if applicable) Binding: ?? (extensible): Countries and regions within which this artifact is targeted for use. | Σ | 0..* | CodeableConcept | Intended jurisdiction for capability statement (if applicable) Binding: ?? (extensible): Countries and regions within which this artifact is targeted for use. |
purpose |  | 0..1 | markdown | Why this capability statement is defined |  | 0..1 | markdown | Why this capability statement is defined |
copyright |  | 0..1 | markdown | Use and/or publishing restrictions |  | 0..1 | markdown | Use and/or publishing restrictions |
kind | Σ C | 1..1 | code | instance | capability | requirements Binding: ?? (required): How a capability statement is intended to be used. | Σ C | 1..1 | code | instance | capability | requirements Binding: ?? (required): How a capability statement is intended to be used. |
instantiates | Σ | 0..* | canonical(CapabilityStatement) | Canonical URL of another capability statement this implements | Σ | 0..* | canonical(CapabilityStatement) | Canonical URL of another capability statement this implements |
imports | Σ | 0..* | canonical(CapabilityStatement) | Canonical URL of another capability statement this adds to | Σ | 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 | Σ C | 0..1 | BackboneElement | Software that is covered by this capability statement |
id |  | 0..1 | string | Unique id for inter-element referencing |  | 0..1 | string | Unique id for inter-element referencing |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
name | Σ | 1..1 | string | A name the software is known by | Σ | 1..1 | string | A name the software is known by |
version | Σ | 0..1 | string | Version covered by this statement | Σ | 0..1 | string | Version covered by this statement |
releaseDate | Σ | 0..1 | dateTime | Date this version was released | Σ | 0..1 | dateTime | Date this version was released |
implementation | Σ C | 0..1 | BackboneElement | If this describes a specific instance | Σ C | 0..1 | BackboneElement | If this describes a specific instance |
id |  | 0..1 | string | Unique id for inter-element referencing |  | 0..1 | string | Unique id for inter-element referencing |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
description | Σ | 1..1 | string | Describes this specific instance | Σ | 1..1 | string | Describes this specific instance |
url | Σ | 0..1 | url | Base URL for the installation | Σ | 0..1 | url | Base URL for the installation |
custodian | Σ | 0..1 | Reference(Organization) | Organization that manages the data | Σ | 0..1 | Reference(Organization) | Organization that manages the data |
fhirVersion | Σ | 1..1 | code | FHIR Version the system supports Binding: ?? (required): All published FHIR Versions. | Σ | 1..1 | code | FHIR Version the system supports Binding: ?? (required): All published FHIR Versions. |
Slices for format | Σ | 1..* | code | JSON is mandatory Slice: Unordered, Open by value:$this Binding: ?? (required): The mime type of an attachment. Any valid mime type is allowed. | Σ | 1..* | code | JSON is mandatory Slice: Unordered, Open by value:$this Binding: ?? (required): The mime type of an attachment. Any valid mime type is allowed. |
patchFormat | Σ | 0..* | code | Patch formats supported Binding: ?? (required): The mime type of an attachment. Any valid mime type is allowed. | Σ | 0..* | code | Patch formats supported Binding: ?? (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 | Σ | 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. | Σ 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 |  | 0..1 | string | Unique id for inter-element referencing |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
mode | Σ | 1..1 | code | client | server Binding: ?? (required): The mode of a RESTful capability statement. Required Pattern: server | Σ | 1..1 | code | client | server Binding: ?? (required): The mode of a RESTful capability statement. Required Pattern: server |
documentation |  | 0..1 | markdown | General description of implementation |  | 0..1 | markdown | General description of implementation |
security | Σ | 0..1 | BackboneElement | Information about security of implementation | Σ | 0..1 | BackboneElement | Information about security of implementation |
id |  | 0..1 | string | Unique id for inter-element referencing |  | 0..1 | string | Unique id for inter-element referencing |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
cors | Σ | 0..1 | boolean | Adds CORS Headers (http://enable-cors.org/) | Σ | 0..1 | boolean | Adds CORS Headers (http://enable-cors.org/) |
service | Σ | 0..* | CodeableConcept | OAuth | SMART-on-FHIR | NTLM | Basic | Kerberos | Certificates Binding: ?? (extensible): Types of security services used with FHIR. | Σ | 0..* | CodeableConcept | OAuth | SMART-on-FHIR | NTLM | Basic | Kerberos | Certificates Binding: ?? (extensible): Types of security services used with FHIR. |
description |  | 0..1 | markdown | General description of how security works |  | 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. | Σ 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 |  | 0..1 | string | Unique id for inter-element referencing |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
type | Σ | 1..1 | code | A resource type that is supported Binding: ?? (required): One of the resource types defined as part of this version of FHIR. | Σ | 1..1 | code | A resource type that is supported Binding: ?? (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 | Σ | 0..1 | canonical(StructureDefinition) | Base System profile for all uses of resource |
supportedProfile | Σ | 0..* | canonical(StructureDefinition) | Profiles for use cases supported | Σ | 0..* | canonical(StructureDefinition) | Profiles for use cases supported |
documentation |  | 0..1 | markdown | Additional information about the use of the resource type |  | 0..1 | markdown | Additional information about the use of the resource type |
interaction |  | 0..* | BackboneElement | What operations are supported? |  | 0..* | BackboneElement | What operations are supported? |
id |  | 0..1 | string | Unique id for inter-element referencing |  | 0..1 | string | Unique id for inter-element referencing |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 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: ?? (required): Operations supported by REST at the type or instance level. |  | 1..1 | code | read | vread | update | patch | delete | history-instance | history-type | create | search-type Binding: ?? (required): Operations supported by REST at the type or instance level. |
documentation |  | 0..1 | markdown | Anything special about operation behavior |  | 0..1 | markdown | Anything special about operation behavior |
versioning |  | 0..1 | code | no-version | versioned | versioned-update Binding: ?? (required): How the system supports versioning for a resource. |  | 0..1 | code | no-version | versioned | versioned-update Binding: ?? (required): How the system supports versioning for a resource. |
readHistory |  | 0..1 | boolean | Whether vRead can return past versions |  | 0..1 | boolean | Whether vRead can return past versions |
updateCreate |  | 0..1 | boolean | If update can commit to a new identity |  | 0..1 | boolean | If update can commit to a new identity |
conditionalCreate |  | 0..1 | boolean | If allows/uses conditional create |  | 0..1 | boolean | If allows/uses conditional create |
conditionalRead |  | 0..1 | code | not-supported | modified-since | not-match | full-support Binding: ?? (required): A code that indicates how the server supports conditional read. |  | 0..1 | code | not-supported | modified-since | not-match | full-support Binding: ?? (required): A code that indicates how the server supports conditional read. |
conditionalUpdate |  | 0..1 | boolean | If allows/uses conditional update |  | 0..1 | boolean | If allows/uses conditional update |
conditionalDelete |  | 0..1 | code | not-supported | single | multiple - how conditional delete is supported Binding: ?? (required): A code that indicates how the server supports conditional delete. |  | 0..1 | code | not-supported | single | multiple - how conditional delete is supported Binding: ?? (required): A code that indicates how the server supports conditional delete. |
referencePolicy |  | 0..* | code | literal | logical | resolves | enforced | local Binding: ?? (required): A set of flags that defines how references are supported. |  | 0..* | code | literal | logical | resolves | enforced | local Binding: ?? (required): A set of flags that defines how references are supported. |
searchInclude |  | 0..* | string | _include values supported by the server |  | 0..* | string | _include values supported by the server |
searchRevInclude |  | 0..* | string | _revinclude values supported by the server |  | 0..* | string | _revinclude values supported by the server |
searchParam |  | 0..* | BackboneElement | Search parameters supported by implementation |  | 0..* | BackboneElement | Search parameters supported by implementation |
id |  | 0..1 | string | Unique id for inter-element referencing |  | 0..1 | string | Unique id for inter-element referencing |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
name |  | 1..1 | string | Name of search parameter |  | 1..1 | string | Name of search parameter |
definition |  | 0..1 | canonical(SearchParameter) | Source of definition for parameter |  | 0..1 | canonical(SearchParameter) | Source of definition for parameter |
type |  | 1..1 | code | number | date | string | token | reference | composite | quantity | uri | special Binding: ?? (required): Data types allowed to be used for search parameters. |  | 1..1 | code | number | date | string | token | reference | composite | quantity | uri | special Binding: ?? (required): Data types allowed to be used for search parameters. |
documentation |  | 0..1 | markdown | Server-specific usage |  | 0..1 | markdown | Server-specific usage |
operation | Σ | 0..* | BackboneElement | Definition of a resource operation | Σ | 0..* | BackboneElement | Definition of a resource operation |
id |  | 0..1 | string | Unique id for inter-element referencing |  | 0..1 | string | Unique id for inter-element referencing |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
name | Σ | 1..1 | string | Name by which the operation/query is invoked | Σ | 1..1 | string | Name by which the operation/query is invoked |
definition | Σ | 1..1 | canonical(OperationDefinition) | The defined operation/query | Σ | 1..1 | canonical(OperationDefinition) | The defined operation/query |
documentation |  | 0..1 | markdown | Specific details about operation behavior |  | 0..1 | markdown | Specific details about operation behavior |
interaction |  | 0..* | BackboneElement | What operations are supported? |  | 0..* | BackboneElement | What operations are supported? |
id |  | 0..1 | string | Unique id for inter-element referencing |  | 0..1 | string | Unique id for inter-element referencing |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code |  | 1..1 | code | transaction | batch | search-system | history-system Binding: ?? (required): Operations supported by REST at the system level. |  | 1..1 | code | transaction | batch | search-system | history-system Binding: ?? (required): Operations supported by REST at the system level. |
documentation |  | 0..1 | markdown | Anything special about operation behavior |  | 0..1 | markdown | Anything special about operation behavior |
searchParam |  | 0..* | See searchParam (CapabilityStatement) | Search parameters for searching all resources |  | 0..* | See searchParam (CapabilityStatement) | Search parameters for searching all resources |
operation | Σ | 0..* | See operation (CapabilityStatement) | Definition of a system level operation | Σ | 0..* | See operation (CapabilityStatement) | Definition of a system level operation |
compartment |  | 0..* | canonical(CompartmentDefinition) | Compartments served/used by system |  | 0..* | canonical(CompartmentDefinition) | Compartments served/used by system |
messaging | Σ C | 0..* | BackboneElement | If messaging is supported | Σ C | 0..* | BackboneElement | If messaging is supported |
id |  | 0..1 | string | Unique id for inter-element referencing |  | 0..1 | string | Unique id for inter-element referencing |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
endpoint |  | 0..* | BackboneElement | Where messages should be sent |  | 0..* | BackboneElement | Where messages should be sent |
id |  | 0..1 | string | Unique id for inter-element referencing |  | 0..1 | string | Unique id for inter-element referencing |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
protocol |  | 1..1 | Coding | http | ftp | mllp + Binding: ?? (extensible): The protocol used for message transport. |  | 1..1 | Coding | http | ftp | mllp + Binding: ?? (extensible): The protocol used for message transport. |
address |  | 1..1 | url | Network address or identifier of the end-point |  | 1..1 | url | Network address or identifier of the end-point |
reliableCache |  | 0..1 | unsignedInt | Reliable Message Cache Length (min) |  | 0..1 | unsignedInt | Reliable Message Cache Length (min) |
documentation |  | 0..1 | markdown | Messaging interface behavior details |  | 0..1 | markdown | Messaging interface behavior details |
supportedMessage | Σ | 0..* | BackboneElement | Messages supported by this system | Σ | 0..* | BackboneElement | Messages supported by this system |
id |  | 0..1 | string | Unique id for inter-element referencing |  | 0..1 | string | Unique id for inter-element referencing |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
mode | Σ | 1..1 | code | sender | receiver Binding: ?? (required): The mode of a message capability statement. | Σ | 1..1 | code | sender | receiver Binding: ?? (required): The mode of a message capability statement. |
definition | Σ | 1..1 | canonical(MessageDefinition) | Message supported by this system | Σ | 1..1 | canonical(MessageDefinition) | Message supported by this system |
document | Σ C | 0..* | BackboneElement | Document definition | Σ C | 0..* | BackboneElement | Document definition |
id |  | 0..1 | string | Unique id for inter-element referencing |  | 0..1 | string | Unique id for inter-element referencing |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
mode | Σ | 1..1 | code | producer | consumer Binding: ?? (required): Whether the application produces or consumes documents. | Σ | 1..1 | code | producer | consumer Binding: ?? (required): Whether the application produces or consumes documents. |
documentation |  | 0..1 | markdown | Description of document support |  | 0..1 | markdown | Description of document support |
profile | Σ | 1..1 | canonical(StructureDefinition) | Constraint on the resources used in the document | Σ | 1..1 | canonical(StructureDefinition) | Constraint on the resources used in the document |
Documentation for this format