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

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/HL7/ehrsfm-ig/ and changes regularly. See the Directory of published versions

## Resource Profile: FMHeader

Official URL: http://hl7.org/ehrs/uv/ehrsfmr2/StructureDefinition/FMHeader | Version: 2.1.1
Standards status: Normative Active as of 2025-12-13 | Maturity Level: 1 | Computable Name: FMHeader

This StructureDefinition represents the base EHR-S FM Header type

Usages:

- Examples for this Profile: AS_1_Manage_Provider_Information, AS_3_2_Manage_Legal_and_Other_Related_PHR_files, AS_3_Manage_Personal_Health_Record_Interaction, AS_4_Manage_Communication... Show 33 more, AS_5_Manage_Clinical_Workflow_Tasking, AS_6_Manage_Resource_Availability, AS_7_Support_Encounter_Episode_of_Care_Management, AS_8_Manage_Information_Access_for_Supplemental_Use, AS_9_Manage_Administrative_Transaction_Processing, CP_1_Manage_Clinical_History, CP_3_Manage_Clinical_Documentation, CP_6_Manage_Medication__Immunization_and_Treatment_Administration, CP_7_Manage_Future_Care, CP_8_Manage_Patient_Education___Communication, CP_9_Manage_Care_Coordination___Reporting, CPS_1_6_Subject_to_Subject_Relationship, CPS_1_Record_Management, CPS_3_Support_Clinical_Documentation, CPS_4_4_Support_Orders_for_Diagnostic_Screening_Tests, CPS_4_5_Support_Orders_for_Blood_Products_and_Other_Biologics, CPS_4_6_Support_for_Referrals, CPS_4_Support_Orders, CPS_6_Support_Treatment_Administration, CPS_7_Support_Future_Care, CPS_8_Support_Patient_Education___Communication, CPS_9_Support_Care_Coordination___Reporting, POP_1_Support_for_Health_Maintenance__Preventative_Care_and_Wellness, POP_2_Support_Population_Based_Epidemiological_Investigation_Surveillance, POP_6_Measurement__Analysis__Research_and_Reports, RI_1_2_Record_Lifespan, RI_1_3_Record_States, RI_1_Record_Lifecycle_and_Lifespan, TI_1_Security, TI_10_Standard_or_Preferred_Clinical_Models_and_Clinical_Model_Services, TI_4_Standard_Terminology_and_Terminology_Services, TI_5_1_Application__Structured_Message__and_Structured_Document_Interchange_Standards and TI_5_Standards_Based_Interoperability

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Requirements | C | 0..* | Requirements | A set of requirements - features of systems that are necessary Constraints: cnl-0, FMHC002, FMHC004, FMHC005, FMHC006, FMHC007, FMHC010
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
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
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
FMHC002 | warning | Requirements | The header should have a name. | `title`
FMHC004 | error | Requirements | Header must have a statement about its purpose. | `purpose`
FMHC005 | warning | Requirements | Header purpose statement must end in a period. | `purpose.toString().endsWith('.')`
FMHC006 | error | Requirements | Header must have a description. | `description`
FMHC007 | warning | Requirements | Header description statement must end in a period. | `description.toString().endsWith('.')`
FMHC010 | error | Requirements | A Header must not have criteria statements. | `statement.count() = 0`
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()`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Requirements | C | 0..* | Requirements | A set of requirements - features of systems that are necessary Constraints: FMHC002, FMHC004, FMHC005, FMHC006, FMHC007, FMHC010
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
FMHC002 | warning | Requirements | The header should have a name. | `title`
FMHC004 | error | Requirements | Header must have a statement about its purpose. | `purpose`
FMHC005 | warning | Requirements | Header purpose statement must end in a period. | `purpose.toString().endsWith('.')`
FMHC006 | error | Requirements | Header must have a description. | `description`
FMHC007 | warning | Requirements | Header description statement must end in a period. | `description.toString().endsWith('.')`
FMHC010 | error | Requirements | A Header must not have criteria statements. | `statement.count() = 0`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Requirements | C | 0..* | Requirements | A set of requirements - features of systems that are necessary Constraints: cnl-0, FMHC002, FMHC004, FMHC005, FMHC006, FMHC007, FMHC010
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 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 |  | 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 | 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
FMHC002 | warning | Requirements | The header should have a name. | `title`
FMHC004 | error | Requirements | Header must have a statement about its purpose. | `purpose`
FMHC005 | warning | Requirements | Header purpose statement must end in a period. | `purpose.toString().endsWith('.')`
FMHC006 | error | Requirements | Header must have a description. | `description`
FMHC007 | warning | Requirements | Header description statement must end in a period. | `description.toString().endsWith('.')`
FMHC010 | error | Requirements | A Header must not have criteria statements. | `statement.count() = 0`
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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Requirements | C | 0..* | Requirements | A set of requirements - features of systems that are necessary Constraints: cnl-0, FMHC002, FMHC004, FMHC005, FMHC006, FMHC007, FMHC010
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
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
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
FMHC002 | warning | Requirements | The header should have a name. | `title`
FMHC004 | error | Requirements | Header must have a statement about its purpose. | `purpose`
FMHC005 | warning | Requirements | Header purpose statement must end in a period. | `purpose.toString().endsWith('.')`
FMHC006 | error | Requirements | Header must have a description. | `description`
FMHC007 | warning | Requirements | Header description statement must end in a period. | `description.toString().endsWith('.')`
FMHC010 | error | Requirements | A Header must not have criteria statements. | `statement.count() = 0`
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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Requirements | C | 0..* | Requirements | A set of requirements - features of systems that are necessary Constraints: FMHC002, FMHC004, FMHC005, FMHC006, FMHC007, FMHC010
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
FMHC002 | warning | Requirements | The header should have a name. | `title`
FMHC004 | error | Requirements | Header must have a statement about its purpose. | `purpose`
FMHC005 | warning | Requirements | Header purpose statement must end in a period. | `purpose.toString().endsWith('.')`
FMHC006 | error | Requirements | Header must have a description. | `description`
FMHC007 | warning | Requirements | Header description statement must end in a period. | `description.toString().endsWith('.')`
FMHC010 | error | Requirements | A Header must not have criteria statements. | `statement.count() = 0`

Snapshot ViewView

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Requirements | C | 0..* | Requirements | A set of requirements - features of systems that are necessary Constraints: cnl-0, FMHC002, FMHC004, FMHC005, FMHC006, FMHC007, FMHC010
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 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 |  | 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 | 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
FMHC002 | warning | Requirements | The header should have a name. | `title`
FMHC004 | error | Requirements | Header must have a statement about its purpose. | `purpose`
FMHC005 | warning | Requirements | Header purpose statement must end in a period. | `purpose.toString().endsWith('.')`
FMHC006 | error | Requirements | Header must have a description. | `description`
FMHC007 | warning | Requirements | Header description statement must end in a period. | `description.toString().endsWith('.')`
FMHC010 | error | Requirements | A Header must not have criteria statements. | `statement.count() = 0`
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