haau3 FHIR Implementation Guide (HFIG)
0.1.0 - ci-build United States of America flag

haau3 FHIR Implementation Guide (HFIG), published by haau3. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/haau3/fhir-ig/ and changes regularly. See the Directory of published versions

Resource Profile: Person

Official URL: https://haau3.com/fhir/StructureDefinition/haau3-person Version: 0.1.0
Draft as of 2026-03-09 Computable Name: Haau3Person

An individual who manages care for one or more patients, but can also manage their own care.

Usages:

  • This Profile is not used by any profiles in this Implementation Guide

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Person 0..* Person A generic person record
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier S 1..* Identifier A human identifier for this person
... active ?!Σ 0..1 boolean This person's record is in active use
... Slices for link S 1..* BackboneElement Link to a resource that concerns the same actual person
Slice: Unordered, Open by profile:target
.... link:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... target 1..1 Reference(Patient | Practitioner | RelatedPerson | Person) The resource to which this actual person is associated
.... link:self S 0..1 BackboneElement Link to a resource that concerns the same actual person
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... target 1..1 Reference(Patient) The resource to which this actual person is associated
..... assurance 0..1 code level1 | level2 | level3 | level4
Binding: IdentityAssuranceLevel (required): The level of confidence that this link represents the same actual person, based on NIST Authentication Levels.
Required Pattern: level4
.... link:caregiver S 0..* BackboneElement Link to a resource that concerns the same actual person
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... target 1..1 Reference(RelatedPerson) The resource to which this actual person is associated
..... assurance 0..1 code level1 | level2 | level3 | level4
Binding: IdentityAssuranceLevel (required): The level of confidence that this link represents the same actual person, based on NIST Authentication Levels.
Required Pattern: level4

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Person.link:self.assurance Base required IdentityAssuranceLevel 📍4.0.1 FHIR Std.
Person.link:caregiver.​assurance Base required IdentityAssuranceLevel 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Person If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Person If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Person If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Person If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Person A resource should have narrative for robust management text.`div`.exists()
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 Person

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Person 0..* Person A generic person record
... identifier S 1..* Identifier A human identifier for this person
... name S 1..* HumanName A name associated with the person
... Slices for link S 1..* BackboneElement Link to a resource that concerns the same actual person
Slice: Unordered, Open by profile:target
.... link:self S 0..1 BackboneElement Link to a resource that concerns the same actual person
..... target 1..1 Reference(Patient) The resource to which this actual person is associated
..... assurance 0..1 code level1 | level2 | level3 | level4
Required Pattern: level4
.... link:caregiver S 0..* BackboneElement Link to a resource that concerns the same actual person
..... target 1..1 Reference(RelatedPerson) The resource to which this actual person is associated
..... assurance 0..1 code level1 | level2 | level3 | level4
Required Pattern: level4

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Person 0..* Person A generic person record
... 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
... 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
... identifier S 1..* Identifier A human identifier for this person
... name SΣ 1..* HumanName A name associated with the person
... telecom Σ 0..* ContactPoint A contact detail for the person
... gender Σ 0..1 code male | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.
... birthDate Σ 0..1 date The date on which the person was born
... address 0..* Address One or more addresses for the person
... photo 0..1 Attachment Image of the person
... managingOrganization Σ 0..1 Reference(Organization) The organization that is the custodian of the person record
... active ?!Σ 0..1 boolean This person's record is in active use
... Slices for link S 1..* BackboneElement Link to a resource that concerns the same actual person
Slice: Unordered, Open by profile:target
.... link:All Slices Content/Rules for all slices
..... 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
..... target 1..1 Reference(Patient | Practitioner | RelatedPerson | Person) The resource to which this actual person is associated
..... assurance 0..1 code level1 | level2 | level3 | level4
Binding: IdentityAssuranceLevel (required): The level of confidence that this link represents the same actual person, based on NIST Authentication Levels.
.... link:self S 0..1 BackboneElement Link to a resource that concerns the same actual person
..... 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
..... target 1..1 Reference(Patient) The resource to which this actual person is associated
..... assurance 0..1 code level1 | level2 | level3 | level4
Binding: IdentityAssuranceLevel (required): The level of confidence that this link represents the same actual person, based on NIST Authentication Levels.
Required Pattern: level4
.... link:caregiver S 0..* BackboneElement Link to a resource that concerns the same actual person
..... 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
..... target 1..1 Reference(RelatedPerson) The resource to which this actual person is associated
..... assurance 0..1 code level1 | level2 | level3 | level4
Binding: IdentityAssuranceLevel (required): The level of confidence that this link represents the same actual person, based on NIST Authentication Levels.
Required Pattern: level4

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Person.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Person.gender Base required AdministrativeGender 📍4.0.1 FHIR Std.
Person.link.assurance Base required IdentityAssuranceLevel 📍4.0.1 FHIR Std.
Person.link:self.assurance Base required IdentityAssuranceLevel 📍4.0.1 FHIR Std.
Person.link:caregiver.​assurance Base required IdentityAssuranceLevel 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Person If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Person If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Person If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Person If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Person A resource should have narrative for robust management text.`div`.exists()
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 Person

Summary

Mandatory: 3 elements
Must-Support: 5 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Person.link

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Person 0..* Person A generic person record
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier S 1..* Identifier A human identifier for this person
... active ?!Σ 0..1 boolean This person's record is in active use
... Slices for link S 1..* BackboneElement Link to a resource that concerns the same actual person
Slice: Unordered, Open by profile:target
.... link:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... target 1..1 Reference(Patient | Practitioner | RelatedPerson | Person) The resource to which this actual person is associated
.... link:self S 0..1 BackboneElement Link to a resource that concerns the same actual person
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... target 1..1 Reference(Patient) The resource to which this actual person is associated
..... assurance 0..1 code level1 | level2 | level3 | level4
Binding: IdentityAssuranceLevel (required): The level of confidence that this link represents the same actual person, based on NIST Authentication Levels.
Required Pattern: level4
.... link:caregiver S 0..* BackboneElement Link to a resource that concerns the same actual person
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... target 1..1 Reference(RelatedPerson) The resource to which this actual person is associated
..... assurance 0..1 code level1 | level2 | level3 | level4
Binding: IdentityAssuranceLevel (required): The level of confidence that this link represents the same actual person, based on NIST Authentication Levels.
Required Pattern: level4

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Person.link:self.assurance Base required IdentityAssuranceLevel 📍4.0.1 FHIR Std.
Person.link:caregiver.​assurance Base required IdentityAssuranceLevel 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Person If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Person If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Person If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Person If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Person A resource should have narrative for robust management text.`div`.exists()
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 Person

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Person 0..* Person A generic person record
... identifier S 1..* Identifier A human identifier for this person
... name S 1..* HumanName A name associated with the person
... Slices for link S 1..* BackboneElement Link to a resource that concerns the same actual person
Slice: Unordered, Open by profile:target
.... link:self S 0..1 BackboneElement Link to a resource that concerns the same actual person
..... target 1..1 Reference(Patient) The resource to which this actual person is associated
..... assurance 0..1 code level1 | level2 | level3 | level4
Required Pattern: level4
.... link:caregiver S 0..* BackboneElement Link to a resource that concerns the same actual person
..... target 1..1 Reference(RelatedPerson) The resource to which this actual person is associated
..... assurance 0..1 code level1 | level2 | level3 | level4
Required Pattern: level4

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Person 0..* Person A generic person record
... 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
... 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
... identifier S 1..* Identifier A human identifier for this person
... name SΣ 1..* HumanName A name associated with the person
... telecom Σ 0..* ContactPoint A contact detail for the person
... gender Σ 0..1 code male | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.
... birthDate Σ 0..1 date The date on which the person was born
... address 0..* Address One or more addresses for the person
... photo 0..1 Attachment Image of the person
... managingOrganization Σ 0..1 Reference(Organization) The organization that is the custodian of the person record
... active ?!Σ 0..1 boolean This person's record is in active use
... Slices for link S 1..* BackboneElement Link to a resource that concerns the same actual person
Slice: Unordered, Open by profile:target
.... link:All Slices Content/Rules for all slices
..... 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
..... target 1..1 Reference(Patient | Practitioner | RelatedPerson | Person) The resource to which this actual person is associated
..... assurance 0..1 code level1 | level2 | level3 | level4
Binding: IdentityAssuranceLevel (required): The level of confidence that this link represents the same actual person, based on NIST Authentication Levels.
.... link:self S 0..1 BackboneElement Link to a resource that concerns the same actual person
..... 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
..... target 1..1 Reference(Patient) The resource to which this actual person is associated
..... assurance 0..1 code level1 | level2 | level3 | level4
Binding: IdentityAssuranceLevel (required): The level of confidence that this link represents the same actual person, based on NIST Authentication Levels.
Required Pattern: level4
.... link:caregiver S 0..* BackboneElement Link to a resource that concerns the same actual person
..... 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
..... target 1..1 Reference(RelatedPerson) The resource to which this actual person is associated
..... assurance 0..1 code level1 | level2 | level3 | level4
Binding: IdentityAssuranceLevel (required): The level of confidence that this link represents the same actual person, based on NIST Authentication Levels.
Required Pattern: level4

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Person.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Person.gender Base required AdministrativeGender 📍4.0.1 FHIR Std.
Person.link.assurance Base required IdentityAssuranceLevel 📍4.0.1 FHIR Std.
Person.link:self.assurance Base required IdentityAssuranceLevel 📍4.0.1 FHIR Std.
Person.link:caregiver.​assurance Base required IdentityAssuranceLevel 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Person If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Person If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Person If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Person If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Person A resource should have narrative for robust management text.`div`.exists()
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 Person

Summary

Mandatory: 3 elements
Must-Support: 5 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Person.link

 

Other representations of profile: CSV, Excel, Schematron