HL7 Personal Health Record System Functional Model, Release 2
2.0.1-ballot - Normative Ballot

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

## Resource Profile: FMHeader

Official URL: http://hl7.org/ehrs/uv/phrsfmr2/StructureDefinition/FMHeader | Version: 2.0.1-ballot
Standards status: Normative | Maturity Level: 1 | Computable Name: FMHeader

This StructureDefinition represents the base EHR-S FM Header type

Usage:

- Examples for this Resource Profile: PH_1_PHR_Account_Holder_Profile, PH_3_1_Manage_Personal_Clinical_Measurements_and_Observations, PH_3_5_Manage_Tools_and_Functions_to_Assist_Self_Care, PH_3_6_Population_Health_and_Wellness... Show 18 more, PH_3_Wellness__Preventive_Medicine__and_Self_Care, PH_5_PHR_Account_Holder_Decision_Support, PH_6_Manage_Encounters_with_Providers, RI_1_2_Record_Lifespan, RI_1_3_Record_States, RI_1_Record_Lifecycle_and_Lifespan, S_1_Provider_Information, S_2_Financial_Management, S_3_3_Manage_Legal_and_other_Related_Documents, S_3_Administration_Management, S_4_1_Manage_Clinical_Research_Information, S_4_6_Manage_Public_Health_Information, S_4_Manage_Other_Resources, 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

### 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 FMHC002: The header should have a name. FMHC004: Header must have a statement about its purpose. FMHC005: Header purpose statement must end in a period. FMHC006: Header must have a description. FMHC007: Header description statement must end in a period. FMHC010: A Header must not have criteria statements.
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
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() |

This structure is derived from Requirements

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Requirements | C | 0..* | Requirements | A set of requirements - features of systems that are necessary FMHC002: The header should have a name. FMHC004: Header must have a statement about its purpose. FMHC005: Header purpose statement must end in a period. FMHC006: Header must have a description. FMHC007: Header description statement must end in a period. FMHC010: A Header must not have criteria statements.
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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
--- | --- | --- | --- | ---
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 FMHC002: The header should have a name. FMHC004: Header must have a statement about its purpose. FMHC005: Header purpose statement must end in a period. FMHC006: Header must have a description. FMHC007: Header description statement must end in a period. FMHC010: A Header must not have criteria statements.
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
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() |

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 FMHC002: The header should have a name. FMHC004: Header must have a statement about its purpose. FMHC005: Header purpose statement must end in a period. FMHC006: Header must have a description. FMHC007: Header description statement must end in a period. FMHC010: A Header must not have criteria statements.
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
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

This structure is derived from Requirements

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Requirements | C | 0..* | Requirements | A set of requirements - features of systems that are necessary FMHC002: The header should have a name. FMHC004: Header must have a statement about its purpose. FMHC005: Header purpose statement must end in a period. FMHC006: Header must have a description. FMHC007: Header description statement must end in a period. FMHC010: A Header must not have criteria statements.
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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 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 FMHC002: The header should have a name. FMHC004: Header must have a statement about its purpose. FMHC005: Header purpose statement must end in a period. FMHC006: Header must have a description. FMHC007: Header description statement must end in a period. FMHC010: A Header must not have criteria statements.
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
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() |

This structure is derived from Requirements

Summary

Maturity: 1

Other representations of profile: CSV, Excel, Schematron