HL7 Electronic Health Record System Functional Model, Release 2.1.1
2.1.1 - International flag

HL7 Electronic Health Record System Functional Model, Release 2.1.1, published by HL7 International / Electronic Health Records. This guide is not an authorized publication; it is the continuous build for version 2.1.1 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/mvdzel/ehrsfm-fhir-r5/ and changes regularly. See the Directory of published versions

Resource Profile: FMFunction

Official URL: http://hl7.org/ehrs/uv/ehrsfmr2/StructureDefinition/FMFunction Version: 2.1.1
Standards status: Normative Active as of 2025-10-31 Maturity Level: 1 Computable Name: FMFunction

This StructureDefinition represents the base EHR-S FM Function type

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Requirements C 0..* Requirements A set of requirements - features of systems that are necessary
Constraints: cnl-0, FMFLC08, FMFLC09, FMFLC10, FMFLC11, FMFLC12, FMFLC13
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... statement C 0..* BackboneElement Actual statement as markdown
Constraints: FMTSR03, FMCC001, FMCC002, FMSVR08, FMFLC15
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... key 1..1 id Key that identifies this statement
.... requirement 1..1 markdown The actual requirement

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Requirements.status Base required PublicationStatus 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
FMCC001 warning Requirements.statement The Conditional Criteria is not structured correctly. (conditionality and requirement.toString().startsWith('IF ').not()).not()
FMCC002 warning Requirements.statement The Criteria is structured as conditional but conditional is not indicated. (conditionality.not() and requirement.toString().startsWith('IF ')).not()
FMFLC08 warning Requirements Function names must not end with a period. title.endsWith('.').not()
FMFLC09 error Requirements Function must have a statement about its purpose. purpose
FMFLC10 warning Requirements Function purpose statement must end in a period. purpose.toString().endsWith('.')
FMFLC11 error Requirements Function must have a description. description
FMFLC12 warning Requirements Function description statement must end in a period. description.toString().endsWith('.')
FMFLC13 error Requirements Function must have one or more conformance criteria statements. statement.count() > 0
FMFLC15 error Requirements.statement Criterion must have a textual description. requirement.hasValue()
FMSVR08 warning Requirements.statement Optionality attribute does not match the optionality in the text. requirement.toString().contains(conformance.first())
FMTSR03 warning Requirements.statement The text is not single spaced (there are multiple spaces). requirement.toString().contains(' ').not()
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()

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Requirements C 0..* Requirements A set of requirements - features of systems that are necessary
Constraints: FMFLC08, FMFLC09, FMFLC10, FMFLC11, FMFLC12, FMFLC13
... statement C 0..* BackboneElement Actual statement as markdown
Constraints: FMTSR03, FMCC001, FMCC002, FMSVR08, FMFLC15

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
FMCC001 warning Requirements.statement The Conditional Criteria is not structured correctly. (conditionality and requirement.toString().startsWith('IF ').not()).not()
FMCC002 warning Requirements.statement The Criteria is structured as conditional but conditional is not indicated. (conditionality.not() and requirement.toString().startsWith('IF ')).not()
FMFLC08 warning Requirements Function names must not end with a period. title.endsWith('.').not()
FMFLC09 error Requirements Function must have a statement about its purpose. purpose
FMFLC10 warning Requirements Function purpose statement must end in a period. purpose.toString().endsWith('.')
FMFLC11 error Requirements Function must have a description. description
FMFLC12 warning Requirements Function description statement must end in a period. description.toString().endsWith('.')
FMFLC13 error Requirements Function must have one or more conformance criteria statements. statement.count() > 0
FMFLC15 error Requirements.statement Criterion must have a textual description. requirement.hasValue()
FMSVR08 warning Requirements.statement Optionality attribute does not match the optionality in the text. requirement.toString().contains(conformance.first())
FMTSR03 warning Requirements.statement The text is not single spaced (there are multiple spaces). requirement.toString().contains(' ').not()
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Requirements C 0..* Requirements A set of requirements - features of systems that are necessary
Constraints: cnl-0, FMFLC08, FMFLC09, FMFLC10, FMFLC11, FMFLC12, FMFLC13
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... 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)
Constraints: cnl-1
... 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 C 0..* BackboneElement Actual statement as markdown
Constraints: FMTSR03, FMCC001, FMCC002, FMSVR08, FMFLC15
.... 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

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Requirements.language Base required All Languages 📍5.0.0 FHIR Std.
Requirements.versionAlgorithm[x] Base extensible Version Algorithm 📍5.0.0 FHIR Std.
Requirements.status Base required PublicationStatus 📍5.0.0 FHIR Std.
Requirements.jurisdiction Base extensible Jurisdiction ValueSet 📍5.0.0 FHIR Std.
Requirements.statement.​conformance Base required Conformance Expectation 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
FMCC001 warning Requirements.statement The Conditional Criteria is not structured correctly. (conditionality and requirement.toString().startsWith('IF ').not()).not()
FMCC002 warning Requirements.statement The Criteria is structured as conditional but conditional is not indicated. (conditionality.not() and requirement.toString().startsWith('IF ')).not()
FMFLC08 warning Requirements Function names must not end with a period. title.endsWith('.').not()
FMFLC09 error Requirements Function must have a statement about its purpose. purpose
FMFLC10 warning Requirements Function purpose statement must end in a period. purpose.toString().endsWith('.')
FMFLC11 error Requirements Function must have a description. description
FMFLC12 warning Requirements Function description statement must end in a period. description.toString().endsWith('.')
FMFLC13 error Requirements Function must have one or more conformance criteria statements. statement.count() > 0
FMFLC15 error Requirements.statement Criterion must have a textual description. requirement.hasValue()
FMSVR08 warning Requirements.statement Optionality attribute does not match the optionality in the text. requirement.toString().contains(conformance.first())
FMTSR03 warning Requirements.statement The text is not single spaced (there are multiple spaces). requirement.toString().contains(' ').not()
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()

Summary

Maturity: 1

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Requirements C 0..* Requirements A set of requirements - features of systems that are necessary
Constraints: cnl-0, FMFLC08, FMFLC09, FMFLC10, FMFLC11, FMFLC12, FMFLC13
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... statement C 0..* BackboneElement Actual statement as markdown
Constraints: FMTSR03, FMCC001, FMCC002, FMSVR08, FMFLC15
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... key 1..1 id Key that identifies this statement
.... requirement 1..1 markdown The actual requirement

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Requirements.status Base required PublicationStatus 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
FMCC001 warning Requirements.statement The Conditional Criteria is not structured correctly. (conditionality and requirement.toString().startsWith('IF ').not()).not()
FMCC002 warning Requirements.statement The Criteria is structured as conditional but conditional is not indicated. (conditionality.not() and requirement.toString().startsWith('IF ')).not()
FMFLC08 warning Requirements Function names must not end with a period. title.endsWith('.').not()
FMFLC09 error Requirements Function must have a statement about its purpose. purpose
FMFLC10 warning Requirements Function purpose statement must end in a period. purpose.toString().endsWith('.')
FMFLC11 error Requirements Function must have a description. description
FMFLC12 warning Requirements Function description statement must end in a period. description.toString().endsWith('.')
FMFLC13 error Requirements Function must have one or more conformance criteria statements. statement.count() > 0
FMFLC15 error Requirements.statement Criterion must have a textual description. requirement.hasValue()
FMSVR08 warning Requirements.statement Optionality attribute does not match the optionality in the text. requirement.toString().contains(conformance.first())
FMTSR03 warning Requirements.statement The text is not single spaced (there are multiple spaces). requirement.toString().contains(' ').not()
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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Requirements C 0..* Requirements A set of requirements - features of systems that are necessary
Constraints: FMFLC08, FMFLC09, FMFLC10, FMFLC11, FMFLC12, FMFLC13
... statement C 0..* BackboneElement Actual statement as markdown
Constraints: FMTSR03, FMCC001, FMCC002, FMSVR08, FMFLC15

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
FMCC001 warning Requirements.statement The Conditional Criteria is not structured correctly. (conditionality and requirement.toString().startsWith('IF ').not()).not()
FMCC002 warning Requirements.statement The Criteria is structured as conditional but conditional is not indicated. (conditionality.not() and requirement.toString().startsWith('IF ')).not()
FMFLC08 warning Requirements Function names must not end with a period. title.endsWith('.').not()
FMFLC09 error Requirements Function must have a statement about its purpose. purpose
FMFLC10 warning Requirements Function purpose statement must end in a period. purpose.toString().endsWith('.')
FMFLC11 error Requirements Function must have a description. description
FMFLC12 warning Requirements Function description statement must end in a period. description.toString().endsWith('.')
FMFLC13 error Requirements Function must have one or more conformance criteria statements. statement.count() > 0
FMFLC15 error Requirements.statement Criterion must have a textual description. requirement.hasValue()
FMSVR08 warning Requirements.statement Optionality attribute does not match the optionality in the text. requirement.toString().contains(conformance.first())
FMTSR03 warning Requirements.statement The text is not single spaced (there are multiple spaces). requirement.toString().contains(' ').not()

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Requirements C 0..* Requirements A set of requirements - features of systems that are necessary
Constraints: cnl-0, FMFLC08, FMFLC09, FMFLC10, FMFLC11, FMFLC12, FMFLC13
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... 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)
Constraints: cnl-1
... 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 C 0..* BackboneElement Actual statement as markdown
Constraints: FMTSR03, FMCC001, FMCC002, FMSVR08, FMFLC15
.... 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

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Requirements.language Base required All Languages 📍5.0.0 FHIR Std.
Requirements.versionAlgorithm[x] Base extensible Version Algorithm 📍5.0.0 FHIR Std.
Requirements.status Base required PublicationStatus 📍5.0.0 FHIR Std.
Requirements.jurisdiction Base extensible Jurisdiction ValueSet 📍5.0.0 FHIR Std.
Requirements.statement.​conformance Base required Conformance Expectation 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
FMCC001 warning Requirements.statement The Conditional Criteria is not structured correctly. (conditionality and requirement.toString().startsWith('IF ').not()).not()
FMCC002 warning Requirements.statement The Criteria is structured as conditional but conditional is not indicated. (conditionality.not() and requirement.toString().startsWith('IF ')).not()
FMFLC08 warning Requirements Function names must not end with a period. title.endsWith('.').not()
FMFLC09 error Requirements Function must have a statement about its purpose. purpose
FMFLC10 warning Requirements Function purpose statement must end in a period. purpose.toString().endsWith('.')
FMFLC11 error Requirements Function must have a description. description
FMFLC12 warning Requirements Function description statement must end in a period. description.toString().endsWith('.')
FMFLC13 error Requirements Function must have one or more conformance criteria statements. statement.count() > 0
FMFLC15 error Requirements.statement Criterion must have a textual description. requirement.hasValue()
FMSVR08 warning Requirements.statement Optionality attribute does not match the optionality in the text. requirement.toString().contains(conformance.first())
FMTSR03 warning Requirements.statement The text is not single spaced (there are multiple spaces). requirement.toString().contains(' ').not()
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()

Summary

Maturity: 1

 

Other representations of profile: CSV, Excel, Schematron