This page is part of the FHIR Specification (v4.6.0: R5 Draft Ballot - see ballot notes). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2
Patient Administration Work Group | Maturity Level: 2 | Trial Use | Security Category: Patient | Compartments: Patient, Practitioner, RelatedPerson |
Demographics and administrative information about a person independent of a specific health-related context.
The Person resource serves as a linkage resource that may provide a reference set of common demographics
for an individual (human or animal) across multiple roles.
This linkage can be direct to role-specific FHIR resources (Patient, Practitioner and RelatedPerson)
residing on the same or possibly distinct FHIR systems/applications, or indirectly through the use of
business identifiers.
The Person resource may be used in many situations/contexts, including:
Note: The Person resource is an advanced feature. Many systems don’t have a way to relate information across resource types, or systems, especially from Patient to Practitioner, and therefore might not implement this functionality. Some do have ways of relating the Patient and RelatedPerson resource types. FHIR is also able to do this without the Person resource, utilizing the Patient.link property (as shown in the Mother and newborn relationship example)
Person resources may have references to Patient, RelatedPerson and/or Practitioner resources. These linkages assert that all the records relate to the same individual.
Person instances are never directly referenced as actors (authors, subjects, performers, etc.) Individual actors are always identified as either Patient, Practitioner or RelatedPerson, depending on the role of the individual when undertaking the action. Therefore this resource SHALL NOT be referenced by any other clinical or administrative resources. E.g. it can be the focus of an operation or message or included in a Bundle, but cannot be a member of a List or Group, the subject of an Observation, or other similar non-infrastructural usage.
In some use cases the linkages will be indirect, and through business Identifiers, such as in the case of the various types of Master Person Indexes, where the records are not there for the purpose of healthcare, but simply describing a population of people, and has other purposes and not just to represent a population patients.
This resource is referenced by CatalogEntry, Citation, EvidenceReport, Permission and itself.
This resource does not implement any patterns.
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Person | TU | DomainResource | A generic person record Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension | |
identifier | 0..* | Identifier | A human identifier for this person | |
name | Σ | 0..* | HumanName | A name associated with the person |
telecom | Σ | 0..* | ContactPoint | A contact detail for the person |
gender | Σ | 0..1 | code | male | female | other | unknown AdministrativeGender (Required) |
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 |
link | 0..* | BackboneElement | Link to a resource that concerns the same actual person | |
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 IdentityAssuranceLevel (Required) | |
Documentation for this format |
UML Diagram (Legend)
XML Template
<Person xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier A human identifier for this person --></identifier> <name><!-- 0..* HumanName A name associated with the person --></name> <telecom><!-- 0..* ContactPoint A contact detail for the person --></telecom> <gender value="[code]"/><!-- 0..1 male | female | other | unknown --> <birthDate value="[date]"/><!-- 0..1 The date on which the person was born --> <address><!-- 0..* Address One or more addresses for the person --></address> <photo><!-- 0..1 Attachment Image of the person --></photo> <managingOrganization><!-- 0..1 Reference(Organization) The organization that is the custodian of the person record --></managingOrganization> <active value="[boolean]"/><!-- 0..1 This person's record is in active use --> <link> <!-- 0..* Link to a resource that concerns the same actual person --> <target><!-- 1..1 Reference(Patient|Person|Practitioner|RelatedPerson) The resource to which this actual person is associated --></target> <assurance value="[code]"/><!-- 0..1 level1 | level2 | level3 | level4 --> </link> </Person>
JSON Template
{ "resourceType" : "Person", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // A human identifier for this person "name" : [{ HumanName }], // A name associated with the person "telecom" : [{ ContactPoint }], // A contact detail for the person "gender" : "<code>", // male | female | other | unknown "birthDate" : "<date>", // The date on which the person was born "address" : [{ Address }], // One or more addresses for the person "photo" : { Attachment }, // Image of the person "managingOrganization" : { Reference(Organization) }, // The organization that is the custodian of the person record "active" : <boolean>, // This person's record is in active use "link" : [{ // Link to a resource that concerns the same actual person "target" : { Reference(Patient|Person|Practitioner|RelatedPerson) }, // R! The resource to which this actual person is associated "assurance" : "<code>" // level1 | level2 | level3 | level4 }] }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:Person; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:Person.identifier [ Identifier ], ... ; # 0..* A human identifier for this person fhir:Person.name [ HumanName ], ... ; # 0..* A name associated with the person fhir:Person.telecom [ ContactPoint ], ... ; # 0..* A contact detail for the person fhir:Person.gender [ code ]; # 0..1 male | female | other | unknown fhir:Person.birthDate [ date ]; # 0..1 The date on which the person was born fhir:Person.address [ Address ], ... ; # 0..* One or more addresses for the person fhir:Person.photo [ Attachment ]; # 0..1 Image of the person fhir:Person.managingOrganization [ Reference(Organization) ]; # 0..1 The organization that is the custodian of the person record fhir:Person.active [ boolean ]; # 0..1 This person's record is in active use fhir:Person.link [ # 0..* Link to a resource that concerns the same actual person fhir:Person.link.target [ Reference(Patient|Person|Practitioner|RelatedPerson) ]; # 1..1 The resource to which this actual person is associated fhir:Person.link.assurance [ code ]; # 0..1 level1 | level2 | level3 | level4 ], ...; ]
Changes since R3
Person | |
Person.gender |
|
Person.link.assurance |
|
See the Full Difference for further information
This analysis is available as XML or JSON.
See R3 <--> R4 Conversion Maps (status = 5 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.)
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Person | TU | DomainResource | A generic person record Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension | |
identifier | 0..* | Identifier | A human identifier for this person | |
name | Σ | 0..* | HumanName | A name associated with the person |
telecom | Σ | 0..* | ContactPoint | A contact detail for the person |
gender | Σ | 0..1 | code | male | female | other | unknown AdministrativeGender (Required) |
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 |
link | 0..* | BackboneElement | Link to a resource that concerns the same actual person | |
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 IdentityAssuranceLevel (Required) | |
Documentation for this format |
XML Template
<Person xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier A human identifier for this person --></identifier> <name><!-- 0..* HumanName A name associated with the person --></name> <telecom><!-- 0..* ContactPoint A contact detail for the person --></telecom> <gender value="[code]"/><!-- 0..1 male | female | other | unknown --> <birthDate value="[date]"/><!-- 0..1 The date on which the person was born --> <address><!-- 0..* Address One or more addresses for the person --></address> <photo><!-- 0..1 Attachment Image of the person --></photo> <managingOrganization><!-- 0..1 Reference(Organization) The organization that is the custodian of the person record --></managingOrganization> <active value="[boolean]"/><!-- 0..1 This person's record is in active use --> <link> <!-- 0..* Link to a resource that concerns the same actual person --> <target><!-- 1..1 Reference(Patient|Person|Practitioner|RelatedPerson) The resource to which this actual person is associated --></target> <assurance value="[code]"/><!-- 0..1 level1 | level2 | level3 | level4 --> </link> </Person>
JSON Template
{ "resourceType" : "Person", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // A human identifier for this person "name" : [{ HumanName }], // A name associated with the person "telecom" : [{ ContactPoint }], // A contact detail for the person "gender" : "<code>", // male | female | other | unknown "birthDate" : "<date>", // The date on which the person was born "address" : [{ Address }], // One or more addresses for the person "photo" : { Attachment }, // Image of the person "managingOrganization" : { Reference(Organization) }, // The organization that is the custodian of the person record "active" : <boolean>, // This person's record is in active use "link" : [{ // Link to a resource that concerns the same actual person "target" : { Reference(Patient|Person|Practitioner|RelatedPerson) }, // R! The resource to which this actual person is associated "assurance" : "<code>" // level1 | level2 | level3 | level4 }] }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:Person; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:Person.identifier [ Identifier ], ... ; # 0..* A human identifier for this person fhir:Person.name [ HumanName ], ... ; # 0..* A name associated with the person fhir:Person.telecom [ ContactPoint ], ... ; # 0..* A contact detail for the person fhir:Person.gender [ code ]; # 0..1 male | female | other | unknown fhir:Person.birthDate [ date ]; # 0..1 The date on which the person was born fhir:Person.address [ Address ], ... ; # 0..* One or more addresses for the person fhir:Person.photo [ Attachment ]; # 0..1 Image of the person fhir:Person.managingOrganization [ Reference(Organization) ]; # 0..1 The organization that is the custodian of the person record fhir:Person.active [ boolean ]; # 0..1 This person's record is in active use fhir:Person.link [ # 0..* Link to a resource that concerns the same actual person fhir:Person.link.target [ Reference(Patient|Person|Practitioner|RelatedPerson) ]; # 1..1 The resource to which this actual person is associated fhir:Person.link.assurance [ code ]; # 0..1 level1 | level2 | level3 | level4 ], ...; ]
Changes since Release 3
Person | |
Person.gender |
|
Person.link.assurance |
|
See the Full Difference for further information
This analysis is available as XML or JSON.
See R3 <--> R4 Conversion Maps (status = 5 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.)
See the Profiles & Extensions and the alternate definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions, the spreadsheet version & the dependency analysis a
Path | Definition | Type | Reference |
---|---|---|---|
Person.gender | Required | AdministrativeGender | |
Person.link.assurance | Required | IdentityAssuranceLevel |
Most of the properties of the Person resource are replicated within the other resources that they are shared with. This is intentional and highlights the loose coupling of the resources.
Not many systems implement a shared Person record, and as such the values DO become out of sync with each other. The inclusion of this resource does permit a capability for systems to identify other instances of this actual person's data via a centralized registry that can assist in keeping things up to date.
The link element is used to relate resources under a common person record. This element supports two primary scenarios where other resources refer to the same person resource.
The link element cannot be used to link to RelatedPerson entries, so we can use a Person resource to relate these elements together identifying them as the same individual.
In a data sharing network, finding the location of patient records across different systems is a necessary pre-requisite for accessing external patient data. Using the link element, systems associate patient resources from different organizations. The assuranceLevel associated with the link provides a way for a system to qualify its confidence in the asserted link. For example, a relationship from the person to a patient using a probabilistic matching algorithm may be represented using a link with an assurance level of level1, while a relationship established using a government-issued photo ID may be created with an assurance level of level3.
Similarly, providers working in multiple healthcare service settings may be linked across different organizations using the link element. The various practitioner resources can be related using a common person resource with a link for each of the practitioner resources located in other organizations.
Many national and state programs maintain a central register of people, and their key Identifiers. These systems do not store any health related information, they are purely a validated set data, often provided by government departments. These may contain identifiers for patients, practitioners from various departments for various purposes. Access to these systems typically requires some form of professional role or permission, such as those in healthcare, law enforcement, or other internal government uses.
These may also operate outside of government in the private sector, such as associations or networks that a person may be involved with and may work in the same was as they do inside government. The usage of the data into the healthcare environment is not the only use of the register.
Note: This style of system may use the Person resource without any FHIR references to Patient or Practitioner resources. In these environments the Master Index is likely to have a master identifier that performs this logical linking.
This style of usage has fewer security implications, as it doesn’t disclose where the information is being used.
Client Portals provide consumer access to a window of their data locked up in healthcare systems. In many cases these systems are externally integrated and do not have access to the legacy CIS/PAS systems.
In contrast to most systems where a user has access to multiple patients depending on their roles and permissions,
a client portal provides a consumer with direct access to their data (with permissions applied).
This can also include not just their data (via the Person.link Patient entries), but also to information that they
have entered, or were involved with (via the Person.link RelatedPerson entries), such as observations that they
entered.
With appropriate permissions/consent applied, the user could have access to other Patient records linked via
a RelatedPerson.
The Person resource may contain identifying and demographic information about an individual, therefore it must be protected as Identifying Information.
The Person resource may contain references to the individual's other various Patient, Practitioner,
and RelatedPerson resources, where the referenced record might be to very sensitive information.
The access to the linked sensitive Resource may be protected, but the link itself may expose information.
For example where a Practitioner and Patient resource are linked through a Person resource, inspecting the
Patient URL could reveal that the Practitioner has a record at a sensitive medical health clinic (e.g. Drug Rehabilitation Clinic).
When implementing the Person resource consideration should be given to the security and privacy of this information. Some mitigations to these risks include higher access control protections, filling out the Person resource as sparsely as practical for the given use-cases, and masking some data elements for certain users of the information. Additional security guidance can be found on the security page.
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
Name | Type | Description | Expression | In Common |
address | string | A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text | Person.address | |
address-city N | string | A city specified in an address | Person.address.city | |
address-country N | string | A country specified in an address | Person.address.country | |
address-postalcode N | string | A postal code specified in an address | Person.address.postalCode | |
address-state N | string | A state specified in an address | Person.address.state | |
address-use N | token | A use code specified in an address | Person.address.use | |
birthdate N | date | The person's date of birth | Person.birthDate | |
token | A value in an email contact | Person.telecom.where(system='email') | ||
gender N | token | The gender of the person | Person.gender | |
identifier | token | A person Identifier | Person.identifier | |
link | reference | Any link has this Patient, Person, RelatedPerson or Practitioner reference | Person.link.target (Practitioner, Patient, Person, RelatedPerson) | |
name | string | A server defined search that may match any of the string fields in the HumanName, including family, give, prefix, suffix, suffix, and/or text | Person.name | |
organization | reference | The organization at which this person record is being managed | Person.managingOrganization (Organization) | |
patient | reference | The Person links to this Patient | Person.link.target.where(resolve() is Patient) (Practitioner, Patient, Person, RelatedPerson) | |
phone | token | A value in a phone contact | Person.telecom.where(system='phone') | |
phonetic | string | A portion of name using some kind of phonetic matching algorithm | Person.name | |
practitioner | reference | The Person links to this Practitioner | Person.link.target.where(resolve() is Practitioner) (Practitioner, Patient, Person, RelatedPerson) | |
relatedperson | reference | The Person links to this RelatedPerson | Person.link.target.where(resolve() is RelatedPerson) (Practitioner, Patient, Person, RelatedPerson) | |
telecom | token | The value in any kind of contact | Person.telecom |