SMART Base
0.2.0 - ci-build

SMART Base, published by WHO. This guide is not an authorized publication; it is the continuous build for version 0.2.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-base/ and changes regularly. See the Directory of published versions

Logical Model: Functional and Non-Functional Requirements (DAK)

Official URL: http://smart.who.int/base/StructureDefinition/Requirements Version: 0.2.0
Active as of 2025-10-14 Computable Name: Requirements

Logical Model for representing Functional and Non-Functional Requirements from a DAK. A high-level list of core functions and capabilities that the system must have to meet the end users' needs.

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
.. Requirements 0..* Base Functional and Non-Functional Requirements (DAK)
... description[x] 0..1 Description
.... descriptionString string
.... descriptionUri uri
... functional 0..* BackboneElement Functional Requirements
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... canonical 0..1 canonical(Functional Requirement (DAK)) Canonical
.... instance 0..1 FunctionalRequirement Instance
... nonfunctional 0..* BackboneElement Non-Functional Requirements
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... canonical 0..1 canonical(Non-Functional Requirement (DAK)) Canonical
.... instance 0..1 NonFunctionalRequirement Instance

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
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 Base

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Requirements 0..* Base Functional and Non-Functional Requirements (DAK)
... description[x] 0..1 Description
.... descriptionString string
.... descriptionUri uri
... functional 0..* BackboneElement Functional Requirements
.... canonical 0..1 canonical(Functional Requirement (DAK)) Canonical
.... instance 0..1 FunctionalRequirement Instance
... nonfunctional 0..* BackboneElement Non-Functional Requirements
.... canonical 0..1 canonical(Non-Functional Requirement (DAK)) Canonical
.... instance 0..1 NonFunctionalRequirement Instance

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Requirements 0..* Base Functional and Non-Functional Requirements (DAK)
... description[x] 0..1 Description
.... descriptionString string
.... descriptionUri uri
... functional 0..* BackboneElement Functional Requirements
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... canonical 0..1 canonical(Functional Requirement (DAK)) Canonical
.... instance 0..1 FunctionalRequirement Instance
... nonfunctional 0..* BackboneElement Non-Functional Requirements
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... canonical 0..1 canonical(Non-Functional Requirement (DAK)) Canonical
.... instance 0..1 NonFunctionalRequirement Instance

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
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()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Requirements 0..* Base Functional and Non-Functional Requirements (DAK)
... description[x] 0..1 Description
.... descriptionString string
.... descriptionUri uri
... functional 0..* BackboneElement Functional Requirements
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... canonical 0..1 canonical(Functional Requirement (DAK)) Canonical
.... instance 0..1 FunctionalRequirement Instance
... nonfunctional 0..* BackboneElement Non-Functional Requirements
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... canonical 0..1 canonical(Non-Functional Requirement (DAK)) Canonical
.... instance 0..1 NonFunctionalRequirement Instance

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
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 Base

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Requirements 0..* Base Functional and Non-Functional Requirements (DAK)
... description[x] 0..1 Description
.... descriptionString string
.... descriptionUri uri
... functional 0..* BackboneElement Functional Requirements
.... canonical 0..1 canonical(Functional Requirement (DAK)) Canonical
.... instance 0..1 FunctionalRequirement Instance
... nonfunctional 0..* BackboneElement Non-Functional Requirements
.... canonical 0..1 canonical(Non-Functional Requirement (DAK)) Canonical
.... instance 0..1 NonFunctionalRequirement Instance

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Requirements 0..* Base Functional and Non-Functional Requirements (DAK)
... description[x] 0..1 Description
.... descriptionString string
.... descriptionUri uri
... functional 0..* BackboneElement Functional Requirements
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... canonical 0..1 canonical(Functional Requirement (DAK)) Canonical
.... instance 0..1 FunctionalRequirement Instance
... nonfunctional 0..* BackboneElement Non-Functional Requirements
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... canonical 0..1 canonical(Non-Functional Requirement (DAK)) Canonical
.... instance 0..1 NonFunctionalRequirement Instance

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
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()

 

Other representations of profile: CSV, Excel