HL7 Electronic Health Record System Functional Model, Release 2.1.1
            
            2.1.1 - 
  
            
          
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
| Official URL: http://hl7.org/ehrs/uv/ehrsfmr2/StructureDefinition/FMHeader | Version: 2.1.1 | |||
| Standards status: Normative Active as of 2025-10-31 | Maturity Level: 1 | Computable Name: FMHeader | ||
This StructureDefinition represents the base EHR-S FM Header type
Usages:
You can also check for usages in the FHIR IG Statistics
Description Differentials, Snapshots, and other representations.
| Name | Flags | Card. | Type | Description & Constraints    Filter:  ![]() ![]()  | 
|---|---|---|---|---|
![]()  | 
C | 0..* | Requirements | A set of requirements - features of systems that are necessary Constraints: cnl-0, FMHC002, FMHC004, FMHC005, FMHC006, FMHC007, FMHC010  | 
![]() ![]()  | 
?!Σ | 0..1 | uri | A set of rules under which this content was created | 
![]() ![]()  | 
0..* | Resource | Contained, inline Resources | |
![]() ![]()  | 
?!Σ | 0..* | Extension | Extensions that cannot be ignored | 
![]() ![]()  | 
?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.  | 
  Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source | 
| Requirements.status | Base | required | PublicationStatus | 📍5.0.0 | FHIR Std. | 
| 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:  ![]() ![]()  | 
|---|---|---|---|---|
![]()  | 
C | 0..* | Requirements | A set of requirements - features of systems that are necessary Constraints: FMHC002, FMHC004, FMHC005, FMHC006, FMHC007, FMHC010  | 
  Documentation for this format | ||||
| 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:  ![]() ![]()  | ||||
|---|---|---|---|---|---|---|---|---|
![]()  | 
C | 0..* | Requirements | A set of requirements - features of systems that are necessary Constraints: cnl-0, FMHC002, FMHC004, FMHC005, FMHC006, FMHC007, FMHC010  | ||||
![]() ![]()  | 
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]()  | 
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]()  | 
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]()  | 
0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language 
  | |||||
![]() ![]()  | 
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  | |||||
![]() ![]()  | 
0..* | Resource | Contained, inline Resources | |||||
![]() ![]()  | 
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]()  | 
?!Σ | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]()  | 
ΣC | 0..1 | uri | Canonical identifier for this Requirements, represented as a URI (globally unique) Constraints: cnl-1  | ||||
![]() ![]()  | 
Σ | 0..* | Identifier | Additional identifier for the Requirements (business identifier) | ||||
![]() ![]()  | 
Σ | 0..1 | string | Business version of the Requirements | ||||
![]() ![]()  | 
Σ | 0..1 | How to compare versions Binding: VersionAlgorithm (extensible)  | |||||
![]() ![]() ![]()  | 
string | |||||||
![]() ![]() ![]()  | 
Coding | |||||||
![]() ![]()  | 
ΣC | 0..1 | string | Name for this Requirements (computer friendly) | ||||
![]() ![]()  | 
Σ | 0..1 | string | Name for this Requirements (human friendly) | ||||
![]() ![]()  | 
?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.  | ||||
![]() ![]()  | 
Σ | 0..1 | boolean | For testing purposes, not real usage | ||||
![]() ![]()  | 
Σ | 0..1 | dateTime | Date last changed | ||||
![]() ![]()  | 
Σ | 0..1 | string | Name of the publisher/steward (organization or individual) | ||||
![]() ![]()  | 
Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
![]() ![]()  | 
0..1 | markdown | Natural language description of the requirements | |||||
![]() ![]()  | 
Σ | 0..* | UsageContext | The context that the content is intended to support | ||||
![]() ![]()  | 
Σ | 0..* | CodeableConcept | Intended jurisdiction for Requirements (if applicable) Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.  | ||||
![]() ![]()  | 
0..1 | markdown | Why this Requirements is defined | |||||
![]() ![]()  | 
0..1 | markdown | Use and/or publishing restrictions | |||||
![]() ![]()  | 
0..1 | string | Copyright holder and year(s) | |||||
![]() ![]()  | 
Σ | 0..* | canonical(Requirements) | Other set of Requirements this builds on | ||||
![]() ![]()  | 
0..* | url | External artifact (rule/document etc. that) created this set of requirements | |||||
![]() ![]()  | 
0..* | canonical(ActorDefinition) | Actor for these requirements | |||||
![]() ![]()  | 
0..* | BackboneElement | Actual statement as markdown | |||||
![]() ![]() ![]()  | 
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]()  | 
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]()  | 
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]()  | 
1..1 | id | Key that identifies this statement | |||||
![]() ![]() ![]()  | 
0..1 | string | Short Human label for this statement | |||||
![]() ![]() ![]()  | 
0..* | code | SHALL | SHOULD | MAY | SHOULD-NOT Binding: ConformanceExpectation (required)  | |||||
![]() ![]() ![]()  | 
0..1 | boolean | Set to true if requirements statement is conditional | |||||
![]() ![]() ![]()  | 
1..1 | markdown | The actual requirement | |||||
![]() ![]() ![]()  | 
0..1 | string | Another statement this clarifies/restricts ([url#]key) | |||||
![]() ![]() ![]()  | 
0..1 | string | A larger requirement that this requirement helps to refine and enable | |||||
![]() ![]() ![]()  | 
0..* | url | Design artifact that satisfies this requirement | |||||
![]() ![]() ![]()  | 
0..* | url | External artifact (rule/document etc. that) created this requirement | |||||
![]() ![]() ![]()  | 
0..* | Reference(CareTeam | Device | Group | HealthcareService | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who asked for this statement | |||||
  Documentation for this format | ||||||||
| 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. | 
| 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()
     | 
  
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints    Filter:  ![]() ![]()  | 
|---|---|---|---|---|
![]()  | 
C | 0..* | Requirements | A set of requirements - features of systems that are necessary Constraints: cnl-0, FMHC002, FMHC004, FMHC005, FMHC006, FMHC007, FMHC010  | 
![]() ![]()  | 
?!Σ | 0..1 | uri | A set of rules under which this content was created | 
![]() ![]()  | 
0..* | Resource | Contained, inline Resources | |
![]() ![]()  | 
?!Σ | 0..* | Extension | Extensions that cannot be ignored | 
![]() ![]()  | 
?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.  | 
  Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source | 
| Requirements.status | Base | required | PublicationStatus | 📍5.0.0 | FHIR Std. | 
| 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:  ![]() ![]()  | 
|---|---|---|---|---|
![]()  | 
C | 0..* | Requirements | A set of requirements - features of systems that are necessary Constraints: FMHC002, FMHC004, FMHC005, FMHC006, FMHC007, FMHC010  | 
  Documentation for this format | ||||
| 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:  ![]() ![]()  | ||||
|---|---|---|---|---|---|---|---|---|
![]()  | 
C | 0..* | Requirements | A set of requirements - features of systems that are necessary Constraints: cnl-0, FMHC002, FMHC004, FMHC005, FMHC006, FMHC007, FMHC010  | ||||
![]() ![]()  | 
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]()  | 
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]()  | 
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]()  | 
0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language 
  | |||||
![]() ![]()  | 
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  | |||||
![]() ![]()  | 
0..* | Resource | Contained, inline Resources | |||||
![]() ![]()  | 
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]()  | 
?!Σ | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]()  | 
ΣC | 0..1 | uri | Canonical identifier for this Requirements, represented as a URI (globally unique) Constraints: cnl-1  | ||||
![]() ![]()  | 
Σ | 0..* | Identifier | Additional identifier for the Requirements (business identifier) | ||||
![]() ![]()  | 
Σ | 0..1 | string | Business version of the Requirements | ||||
![]() ![]()  | 
Σ | 0..1 | How to compare versions Binding: VersionAlgorithm (extensible)  | |||||
![]() ![]() ![]()  | 
string | |||||||
![]() ![]() ![]()  | 
Coding | |||||||
![]() ![]()  | 
ΣC | 0..1 | string | Name for this Requirements (computer friendly) | ||||
![]() ![]()  | 
Σ | 0..1 | string | Name for this Requirements (human friendly) | ||||
![]() ![]()  | 
?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.  | ||||
![]() ![]()  | 
Σ | 0..1 | boolean | For testing purposes, not real usage | ||||
![]() ![]()  | 
Σ | 0..1 | dateTime | Date last changed | ||||
![]() ![]()  | 
Σ | 0..1 | string | Name of the publisher/steward (organization or individual) | ||||
![]() ![]()  | 
Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
![]() ![]()  | 
0..1 | markdown | Natural language description of the requirements | |||||
![]() ![]()  | 
Σ | 0..* | UsageContext | The context that the content is intended to support | ||||
![]() ![]()  | 
Σ | 0..* | CodeableConcept | Intended jurisdiction for Requirements (if applicable) Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.  | ||||
![]() ![]()  | 
0..1 | markdown | Why this Requirements is defined | |||||
![]() ![]()  | 
0..1 | markdown | Use and/or publishing restrictions | |||||
![]() ![]()  | 
0..1 | string | Copyright holder and year(s) | |||||
![]() ![]()  | 
Σ | 0..* | canonical(Requirements) | Other set of Requirements this builds on | ||||
![]() ![]()  | 
0..* | url | External artifact (rule/document etc. that) created this set of requirements | |||||
![]() ![]()  | 
0..* | canonical(ActorDefinition) | Actor for these requirements | |||||
![]() ![]()  | 
0..* | BackboneElement | Actual statement as markdown | |||||
![]() ![]() ![]()  | 
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]()  | 
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]()  | 
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]()  | 
1..1 | id | Key that identifies this statement | |||||
![]() ![]() ![]()  | 
0..1 | string | Short Human label for this statement | |||||
![]() ![]() ![]()  | 
0..* | code | SHALL | SHOULD | MAY | SHOULD-NOT Binding: ConformanceExpectation (required)  | |||||
![]() ![]() ![]()  | 
0..1 | boolean | Set to true if requirements statement is conditional | |||||
![]() ![]() ![]()  | 
1..1 | markdown | The actual requirement | |||||
![]() ![]() ![]()  | 
0..1 | string | Another statement this clarifies/restricts ([url#]key) | |||||
![]() ![]() ![]()  | 
0..1 | string | A larger requirement that this requirement helps to refine and enable | |||||
![]() ![]() ![]()  | 
0..* | url | Design artifact that satisfies this requirement | |||||
![]() ![]() ![]()  | 
0..* | url | External artifact (rule/document etc. that) created this requirement | |||||
![]() ![]() ![]()  | 
0..* | Reference(CareTeam | Device | Group | HealthcareService | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who asked for this statement | |||||
  Documentation for this format | ||||||||
| 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. | 
| 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()
     | 
  
Other representations of profile: CSV, Excel, Schematron