HL7 Electronic Health Record System Functional Model, Release 2.1.1
2.1.1-ballot - Normative Ballot

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

## Resource Profile: FunctionalModel

Official URL: http://hl7.org/ehrs/uv/ehrsfmr2/StructureDefinition/FunctionalModel | Version: 2.1.1-ballot
Standards status: Normative | Maturity Level: 1 | Computable Name: FunctionalModel

This StructureDefinition represents the base EHR-S FunctionalModel type

Usage:

- Examples for this Resource Profile: EHRS_FM_R2_1_April_2022

### 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
--- | --- | --- | --- | ---
Requirements | C | 0..* | Requirements | A set of requirements - features of systems that are necessary cnl-0: Name should be usable as an identifier for the module by machine processing applications such as code generation
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
contained |  | 0..* | Resource | Contained, inline Resources
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
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Requirements.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|5.0.0` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
cnl-0 | warning | Requirements | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$') |
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 Requirements

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Requirements |  | 0..* | Requirements | A set of requirements - features of systems that are necessary
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Requirements | C | 0..* | Requirements | A set of requirements - features of systems that are necessary cnl-0: Name should be usable as an identifier for the module by machine processing applications such as code generation
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
url | Σ C | 0..1 | uri | Canonical identifier for this Requirements, represented as a URI (globally unique) cnl-1: URL should not contain | or # - these characters make processing canonical references problematic
identifier | Σ | 0..* | Identifier | Additional identifier for the Requirements (business identifier)
version | Σ | 0..1 | string | Business version of the Requirements
versionAlgorithm[x] | Σ | 0..1 |  | How to compare versions Binding: VersionAlgorithm (extensible)
versionAlgorithmString |  |  | string |
versionAlgorithmCoding |  |  | Coding |
name | Σ C | 0..1 | string | Name for this Requirements (computer friendly)
title | Σ | 0..1 | string | Name for this Requirements (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 | Σ | 0..1 | dateTime | Date last changed
publisher | Σ | 0..1 | string | Name of the publisher/steward (organization or individual)
contact | Σ | 0..* | ContactDetail | Contact details for the publisher
description |  | 0..1 | markdown | Natural language description of the requirements
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for Requirements (if applicable) Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.
purpose |  | 0..1 | markdown | Why this Requirements is defined
copyright |  | 0..1 | markdown | Use and/or publishing restrictions
copyrightLabel |  | 0..1 | string | Copyright holder and year(s)
derivedFrom | Σ | 0..* | canonical(Requirements) | Other set of Requirements this builds on
reference |  | 0..* | url | External artifact (rule/document etc. that) created this set of requirements
actor |  | 0..* | canonical(ActorDefinition) | Actor for these requirements
statement |  | 0..* | BackboneElement | Actual statement as markdown
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
key |  | 1..1 | id | Key that identifies this statement
label |  | 0..1 | string | Short Human label for this statement
conformance |  | 0..* | code | SHALL | SHOULD | MAY | SHOULD-NOT Binding: ConformanceExpectation (required)
conditionality |  | 0..1 | boolean | Set to true if requirements statement is conditional
requirement |  | 1..1 | markdown | The actual requirement
derivedFrom |  | 0..1 | string | Another statement this clarifies/restricts ([url#]key)
parent |  | 0..1 | string | A larger requirement that this requirement helps to refine and enable
satisfiedBy |  | 0..* | url | Design artifact that satisfies this requirement
reference |  | 0..* | url | External artifact (rule/document etc. that) created this requirement
source |  | 0..* | Reference(CareTeam | Device | Group | HealthcareService | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who asked for this statement
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Requirements.language | required | AllLanguages `http://hl7.org/fhir/ValueSet/all-languages|5.0.0` from the FHIR Standard
Requirements.versionAlgorithm[x] | extensible | VersionAlgorithm `http://hl7.org/fhir/ValueSet/version-algorithm` from the FHIR Standard
Requirements.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|5.0.0` from the FHIR Standard
Requirements.jurisdiction | extensible | JurisdictionValueSet `http://hl7.org/fhir/ValueSet/jurisdiction` from the FHIR Standard
Requirements.statement.conformance | required | ConformanceExpectation `http://hl7.org/fhir/ValueSet/conformance-expectation|5.0.0` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
cnl-0 | warning | Requirements | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$') |
cnl-1 | warning | Requirements.url | URL should not contain | or # - these characters make processing canonical references problematic : exists() implies matches('^[^|# ]+$') |
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 Requirements

Summary

Maturity: 1

Key Elements View

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Requirements | C | 0..* | Requirements | A set of requirements - features of systems that are necessary cnl-0: Name should be usable as an identifier for the module by machine processing applications such as code generation
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
contained |  | 0..* | Resource | Contained, inline Resources
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
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Requirements.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|5.0.0` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
cnl-0 | warning | Requirements | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$') |
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 Requirements

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Requirements |  | 0..* | Requirements | A set of requirements - features of systems that are necessary
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Requirements | C | 0..* | Requirements | A set of requirements - features of systems that are necessary cnl-0: Name should be usable as an identifier for the module by machine processing applications such as code generation
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
url | Σ C | 0..1 | uri | Canonical identifier for this Requirements, represented as a URI (globally unique) cnl-1: URL should not contain | or # - these characters make processing canonical references problematic
identifier | Σ | 0..* | Identifier | Additional identifier for the Requirements (business identifier)
version | Σ | 0..1 | string | Business version of the Requirements
versionAlgorithm[x] | Σ | 0..1 |  | How to compare versions Binding: VersionAlgorithm (extensible)
versionAlgorithmString |  |  | string |
versionAlgorithmCoding |  |  | Coding |
name | Σ C | 0..1 | string | Name for this Requirements (computer friendly)
title | Σ | 0..1 | string | Name for this Requirements (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 | Σ | 0..1 | dateTime | Date last changed
publisher | Σ | 0..1 | string | Name of the publisher/steward (organization or individual)
contact | Σ | 0..* | ContactDetail | Contact details for the publisher
description |  | 0..1 | markdown | Natural language description of the requirements
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for Requirements (if applicable) Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.
purpose |  | 0..1 | markdown | Why this Requirements is defined
copyright |  | 0..1 | markdown | Use and/or publishing restrictions
copyrightLabel |  | 0..1 | string | Copyright holder and year(s)
derivedFrom | Σ | 0..* | canonical(Requirements) | Other set of Requirements this builds on
reference |  | 0..* | url | External artifact (rule/document etc. that) created this set of requirements
actor |  | 0..* | canonical(ActorDefinition) | Actor for these requirements
statement |  | 0..* | BackboneElement | Actual statement as markdown
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
key |  | 1..1 | id | Key that identifies this statement
label |  | 0..1 | string | Short Human label for this statement
conformance |  | 0..* | code | SHALL | SHOULD | MAY | SHOULD-NOT Binding: ConformanceExpectation (required)
conditionality |  | 0..1 | boolean | Set to true if requirements statement is conditional
requirement |  | 1..1 | markdown | The actual requirement
derivedFrom |  | 0..1 | string | Another statement this clarifies/restricts ([url#]key)
parent |  | 0..1 | string | A larger requirement that this requirement helps to refine and enable
satisfiedBy |  | 0..* | url | Design artifact that satisfies this requirement
reference |  | 0..* | url | External artifact (rule/document etc. that) created this requirement
source |  | 0..* | Reference(CareTeam | Device | Group | HealthcareService | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who asked for this statement
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Requirements.language | required | AllLanguages `http://hl7.org/fhir/ValueSet/all-languages|5.0.0` from the FHIR Standard
Requirements.versionAlgorithm[x] | extensible | VersionAlgorithm `http://hl7.org/fhir/ValueSet/version-algorithm` from the FHIR Standard
Requirements.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|5.0.0` from the FHIR Standard
Requirements.jurisdiction | extensible | JurisdictionValueSet `http://hl7.org/fhir/ValueSet/jurisdiction` from the FHIR Standard
Requirements.statement.conformance | required | ConformanceExpectation `http://hl7.org/fhir/ValueSet/conformance-expectation|5.0.0` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
cnl-0 | warning | Requirements | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$') |
cnl-1 | warning | Requirements.url | URL should not contain | or # - these characters make processing canonical references problematic : exists() implies matches('^[^|# ]+$') |
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 Requirements

Summary

Maturity: 1

Other representations of profile: CSV, Excel, Schematron