This page is part of the US Core (v3.0.0: STU3) based on FHIR R4. The current version which supercedes this version is 5.0.1. For a full list of available versions, see the Directory of published versions
StructureDefinition-us-core-patient
This profile sets minimum expectations for the Patient resource to record, search and fetch basic demographics and other administrative information about an individual patient. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile.
Example Usage Scenarios:
The following are example usage scenarios for the US Core Patient profile:
- Query for a Patient demographic information using Medical Record Number (MRN), which is a type of identifier. The MRN is identifiable by identifier.system and may be location specific.
- Query for a Patient demographic information using first name, last name, birthdate, and gender.
Mandatory and Must Support Data Elements
The following data-elements are mandatory (i.e data MUST be present) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.
Each Patient must have:
- a patient identifier (e.g. MRN)
- a patient name
- a gender*
Each Patient must support:
- contact detail (e.g. a telephone number or an email address)
- a birth date
- an address
- a communication language
- a race
- an ethnicity
- a birth sex*
Profile specific implementation guidance:
- *The FHIR Specification provides guidance and background for representing patient gender. The American Clinical Laboratory Association (ACLA) has published best practice guidelines for administrative and clinical gender related to laboratory testing and reporting which implementers may find helpful as well.
Examples
Formal Views of Profile Content
Description of Profiles, Differentials, and Snapshots.
The official URL for this profile is:
http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
Published on Tue May 21 00:00:00 EDT 2019 as active by the HL7 US Realm Steering Committee.
This profile builds on Patient
Patient
Summary of the Mandatory Requirements
- One or more Identifiers in
Patient.identifier
- which must have an uri value in
Patient.identifier.system
- which must have a string value in
Patient.identifier.value
- which must have an uri value in
- One or more HumanNames in
Patient.name
with the following constraints: Patient.name.given or Patient.name.family or both SHALL be present- which should have a string value in
Patient.name.family
- which should have one or more string values in
Patient.name.given
- which should have a string value in
- A code in
Patient.gender
with a required binding to AdministrativeGender
Summary of the Must Support Requirements
- A Race Extension in
Patient.extension
- An Ethnicity Extension in
Patient.extension
- A Birthsex Extension in
Patient.extension
with a required binding to Birth Sex - One or more ContactPoints in
Patient.telecom
- which must have a code value in
Patient.telecom.system
with a required binding to ContactPointSystem - which must have a string value in
Patient.telecom.value
- which must have a code value in
- A date in
Patient.birthDate
- One or more Addresses in
Patient.address
- which should have one or more string values in
Patient.address.line
- which should have a string value in
Patient.address.city
- which should have a string value in
Patient.address.state
with an extensible binding to USPS Two Letter Alphabetic Codes - which should have a string value in
Patient.address.postalCode
- which should have one or more string values in
- One or more Communications in
Patient.communication
- which must have a CodeableConcept value in
Patient.communication.language
with an extensible+ MaxValueSet binding to Language codes with language and optionally a region modifier
- which must have a CodeableConcept value in
Summary of Constraints
- Patient.name.given or Patient.name.family or both SHALL be present
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Patient | I | 0..* | Information about an individual or animal receiving health care services | |
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: CommonLanguages (preferred) Max Binding: AllLanguages | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
us-core-race | S | 0..1 | (Complex) | Extension URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-race |
us-core-ethnicity | S | 0..1 | (Complex) | Extension URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity |
us-core-birthsex | S | 0..1 | code | Extension URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex Binding: Birth Sex (required) |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | SΣ | 1..* | Identifier | An identifier for this patient |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required) |
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible) |
system | SΣ | 1..1 | uri | The namespace for the identifier value Example General': http://www.acme.com/identifiers/patient |
value | SΣ | 1..1 | string | The value that is unique within the system. Example General': 123456 |
period | Σ | 0..1 | Period | Time period when id is/was valid for use |
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text) |
active | ?!Σ | 0..1 | boolean | Whether this patient's record is in active use |
name | SΣI | 1..* | HumanName | A name associated with the patient us-core-8: Patient.name.given or Patient.name.family or both SHALL be present |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
use | ?!Σ | 0..1 | code | usual | official | temp | nickname | anonymous | old | maiden Binding: NameUse (required) |
text | Σ | 0..1 | string | Text representation of the full name |
family | SΣ | 0..1 | string | Family name (often called 'Surname') |
given | SΣ | 0..* | string | Given names (not always 'first'). Includes middle names This repeating element order: Given Names appear in the correct order for presenting the name |
prefix | Σ | 0..* | string | Parts that come before the name This repeating element order: Prefixes appear in the correct order for presenting the name |
suffix | Σ | 0..* | string | Parts that come after the name This repeating element order: Suffixes appear in the correct order for presenting the name |
period | Σ | 0..1 | Period | Time period when name was/is in use |
telecom | SΣ | 0..* | ContactPoint | A contact detail for the individual |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
system | SΣI | 1..1 | code | phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required) |
value | SΣ | 1..1 | string | The actual contact point details |
use | ?!Σ | 0..1 | code | home | work | temp | old | mobile - purpose of this contact point Binding: ContactPointUse (required) |
rank | Σ | 0..1 | positiveInt | Specify preferred order of use (1 = highest) |
period | Σ | 0..1 | Period | Time period when the contact point was/is in use |
gender | SΣ | 1..1 | code | male | female | other | unknown Binding: AdministrativeGender (required) |
birthDate | SΣ | 0..1 | date | The date of birth for the individual |
deceased[x] | ?!Σ | 0..1 | boolean, dateTime | Indicates if the individual is deceased or not |
address | SΣ | 0..* | Address | An address for the individual |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
use | ?!Σ | 0..1 | code | home | work | temp | old | billing - purpose of this address Binding: AddressUse (required) Example General': home |
type | Σ | 0..1 | code | postal | physical | both Binding: AddressType (required) Example General': both |
text | Σ | 0..1 | string | Text representation of the address Example General': 137 Nowhere Street, Erewhon 9132 |
line | SΣ | 0..* | string | Street name, number, direction & P.O. Box etc. This repeating element order: The order in which lines should appear in an address label Example General': 137 Nowhere Street |
city | SΣ | 0..1 | string | Name of city, town etc. Example General': Erewhon |
district | Σ | 0..1 | string | District name (aka county) Example General': Madison |
state | SΣ | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible) |
postalCode | SΣ | 0..1 | string | US Zip Codes Example General': 9132 |
country | Σ | 0..1 | string | Country (e.g. can be ISO 3166 2 or 3 letter code) |
period | Σ | 0..1 | Period | Time period when address was/is in use Example General': {"start":"2010-03-23T00:00:00-04:00","end":"2010-07-01T00:00:00-04:00"} |
maritalStatus | 0..1 | CodeableConcept | Marital (civil) status of a patient Binding: Marital Status Codes (extensible) | |
multipleBirth[x] | 0..1 | boolean, integer | Whether patient is part of a multiple birth | |
photo | 0..* | Attachment | Image of the patient | |
contact | I | 0..* | BackboneElement | A contact party (e.g. guardian, partner, friend) for the patient pat-1: SHALL at least contain a contact's details or a reference to an organization |
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 |
relationship | 0..* | CodeableConcept | The kind of relationship Binding: PatientContactRelationship (extensible) | |
name | 0..1 | HumanName | A name associated with the contact person | |
telecom | 0..* | ContactPoint | A contact detail for the person | |
address | 0..1 | Address | Address for the contact person | |
gender | 0..1 | code | male | female | other | unknown Binding: AdministrativeGender (required) | |
organization | I | 0..1 | Reference(Organization) | Organization that is associated with the contact |
period | 0..1 | Period | The period during which this contact person or organization is valid to be contacted relating to this patient | |
communication | SI | 0..* | BackboneElement | A language which may be used to communicate with the patient about his or her health |
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 |
language | S | 1..1 | CodeableConcept | The language which can be used to communicate with the patient about his or her health Binding: Language codes with language and optionally a region modifier (extensible) Max Binding: Language codes with language and optionally a region modifier |
preferred | 0..1 | boolean | Language preference indicator | |
generalPractitioner | 0..* | Reference(Organization | Practitioner | PractitionerRole) | Patient's nominated primary care provider | |
managingOrganization | Σ | 0..1 | Reference(Organization) | Organization that is the custodian of the patient record |
link | ?!ΣI | 0..* | BackboneElement | Link to another patient 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 |
other | Σ | 1..1 | Reference(Patient | RelatedPerson) | The other patient or related person resource that the link refers to |
type | Σ | 1..1 | code | replaced-by | replaces | refer | seealso Binding: LinkType (required) |
Documentation for this format |
Patient
Summary of the Mandatory Requirements
- One or more Identifiers in
Patient.identifier
- which must have an uri value in
Patient.identifier.system
- which must have a string value in
Patient.identifier.value
- which must have an uri value in
- One or more HumanNames in
Patient.name
with the following constraints: Patient.name.given or Patient.name.family or both SHALL be present- which should have a string value in
Patient.name.family
- which should have one or more string values in
Patient.name.given
- which should have a string value in
- A code in
Patient.gender
with a required binding to AdministrativeGender
Summary of the Must Support Requirements
- A Race Extension in
Patient.extension
- An Ethnicity Extension in
Patient.extension
- A Birthsex Extension in
Patient.extension
with a required binding to Birth Sex - One or more ContactPoints in
Patient.telecom
- which must have a code value in
Patient.telecom.system
with a required binding to ContactPointSystem - which must have a string value in
Patient.telecom.value
- which must have a code value in
- A date in
Patient.birthDate
- One or more Addresses in
Patient.address
- which should have one or more string values in
Patient.address.line
- which should have a string value in
Patient.address.city
- which should have a string value in
Patient.address.state
with an extensible binding to USPS Two Letter Alphabetic Codes - which should have a string value in
Patient.address.postalCode
- which should have one or more string values in
- One or more Communications in
Patient.communication
- which must have a CodeableConcept value in
Patient.communication.language
with an extensible+ MaxValueSet binding to Language codes with language and optionally a region modifier
- which must have a CodeableConcept value in
Summary of Constraints
- Patient.name.given or Patient.name.family or both SHALL be present
Differential View
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Patient | I | 0..* | Information about an individual or animal receiving health care services | |
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: CommonLanguages (preferred) Max Binding: AllLanguages | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
us-core-race | S | 0..1 | (Complex) | Extension URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-race |
us-core-ethnicity | S | 0..1 | (Complex) | Extension URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity |
us-core-birthsex | S | 0..1 | code | Extension URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex Binding: Birth Sex (required) |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | SΣ | 1..* | Identifier | An identifier for this patient |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required) |
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible) |
system | SΣ | 1..1 | uri | The namespace for the identifier value Example General': http://www.acme.com/identifiers/patient |
value | SΣ | 1..1 | string | The value that is unique within the system. Example General': 123456 |
period | Σ | 0..1 | Period | Time period when id is/was valid for use |
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text) |
active | ?!Σ | 0..1 | boolean | Whether this patient's record is in active use |
name | SΣI | 1..* | HumanName | A name associated with the patient us-core-8: Patient.name.given or Patient.name.family or both SHALL be present |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
use | ?!Σ | 0..1 | code | usual | official | temp | nickname | anonymous | old | maiden Binding: NameUse (required) |
text | Σ | 0..1 | string | Text representation of the full name |
family | SΣ | 0..1 | string | Family name (often called 'Surname') |
given | SΣ | 0..* | string | Given names (not always 'first'). Includes middle names This repeating element order: Given Names appear in the correct order for presenting the name |
prefix | Σ | 0..* | string | Parts that come before the name This repeating element order: Prefixes appear in the correct order for presenting the name |
suffix | Σ | 0..* | string | Parts that come after the name This repeating element order: Suffixes appear in the correct order for presenting the name |
period | Σ | 0..1 | Period | Time period when name was/is in use |
telecom | SΣ | 0..* | ContactPoint | A contact detail for the individual |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
system | SΣI | 1..1 | code | phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required) |
value | SΣ | 1..1 | string | The actual contact point details |
use | ?!Σ | 0..1 | code | home | work | temp | old | mobile - purpose of this contact point Binding: ContactPointUse (required) |
rank | Σ | 0..1 | positiveInt | Specify preferred order of use (1 = highest) |
period | Σ | 0..1 | Period | Time period when the contact point was/is in use |
gender | SΣ | 1..1 | code | male | female | other | unknown Binding: AdministrativeGender (required) |
birthDate | SΣ | 0..1 | date | The date of birth for the individual |
deceased[x] | ?!Σ | 0..1 | boolean, dateTime | Indicates if the individual is deceased or not |
address | SΣ | 0..* | Address | An address for the individual |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
use | ?!Σ | 0..1 | code | home | work | temp | old | billing - purpose of this address Binding: AddressUse (required) Example General': home |
type | Σ | 0..1 | code | postal | physical | both Binding: AddressType (required) Example General': both |
text | Σ | 0..1 | string | Text representation of the address Example General': 137 Nowhere Street, Erewhon 9132 |
line | SΣ | 0..* | string | Street name, number, direction & P.O. Box etc. This repeating element order: The order in which lines should appear in an address label Example General': 137 Nowhere Street |
city | SΣ | 0..1 | string | Name of city, town etc. Example General': Erewhon |
district | Σ | 0..1 | string | District name (aka county) Example General': Madison |
state | SΣ | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible) |
postalCode | SΣ | 0..1 | string | US Zip Codes Example General': 9132 |
country | Σ | 0..1 | string | Country (e.g. can be ISO 3166 2 or 3 letter code) |
period | Σ | 0..1 | Period | Time period when address was/is in use Example General': {"start":"2010-03-23T00:00:00-04:00","end":"2010-07-01T00:00:00-04:00"} |
maritalStatus | 0..1 | CodeableConcept | Marital (civil) status of a patient Binding: Marital Status Codes (extensible) | |
multipleBirth[x] | 0..1 | boolean, integer | Whether patient is part of a multiple birth | |
photo | 0..* | Attachment | Image of the patient | |
contact | I | 0..* | BackboneElement | A contact party (e.g. guardian, partner, friend) for the patient pat-1: SHALL at least contain a contact's details or a reference to an organization |
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 |
relationship | 0..* | CodeableConcept | The kind of relationship Binding: PatientContactRelationship (extensible) | |
name | 0..1 | HumanName | A name associated with the contact person | |
telecom | 0..* | ContactPoint | A contact detail for the person | |
address | 0..1 | Address | Address for the contact person | |
gender | 0..1 | code | male | female | other | unknown Binding: AdministrativeGender (required) | |
organization | I | 0..1 | Reference(Organization) | Organization that is associated with the contact |
period | 0..1 | Period | The period during which this contact person or organization is valid to be contacted relating to this patient | |
communication | SI | 0..* | BackboneElement | A language which may be used to communicate with the patient about his or her health |
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 |
language | S | 1..1 | CodeableConcept | The language which can be used to communicate with the patient about his or her health Binding: Language codes with language and optionally a region modifier (extensible) Max Binding: Language codes with language and optionally a region modifier |
preferred | 0..1 | boolean | Language preference indicator | |
generalPractitioner | 0..* | Reference(Organization | Practitioner | PractitionerRole) | Patient's nominated primary care provider | |
managingOrganization | Σ | 0..1 | Reference(Organization) | Organization that is the custodian of the patient record |
link | ?!ΣI | 0..* | BackboneElement | Link to another patient 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 |
other | Σ | 1..1 | Reference(Patient | RelatedPerson) | The other patient or related person resource that the link refers to |
type | Σ | 1..1 | code | replaced-by | replaces | refer | seealso Binding: LinkType (required) |
Documentation for this format |
Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron
Quick Start
Below is an overview of the required set of RESTful FHIR interactions - for example, search and read operations - for this profile. See the Conformance requirements for a complete list of supported RESTful interactions for this IG.
Mandatory Search Parameters:
The following search parameters, search parameter combinations and search parameter modifiers, comparators, chains and composites SHALL be supported. the modifiers, comparators, chains and composites that are listed as optional SHOULD be supported.:
-
SHALL support fetching a Patient using the
_id
search parameter:GET [base]/Patient[id]
Example:
- GET [base]/Patient/1032702
- GET [base]/Patient?_id=1032702
Implementation Notes: (how to search by the logical id of the resource)
-
SHALL support searching a patient by an identifier such as a MPI using the
identifier
search parameter:GET [base]/Patient?identifier={[system]}|[code]
Example:
- GET [base]/Patient?identifier=http://hospital.smarthealthit.org|1032702
Implementation Notes: Fetches a bundle containing any Patient resources matching the identifier (how to search by token)
-
SHALL support searching for a patient by a string match of any part of name using the
name
search parameter:GET [base]/Patient?name=[string]
Example:
- GET [base]/Patient?name=Shaw
Implementation Notes: Fetches a bundle of all Patient resources matching the name (how to search by string)
-
SHALL support searching using the combination of the
birthdate
andname
search parameters:GET [base]/Patient?birthdate=[date]&name=[string]
Example:
- GET [base]/Patient?name=Shaw&birthdate=2007-03-20
Implementation Notes: Fetches a bundle of all Patient resources matching the specified birthdate and name (how to search by date and how to search by string)
-
SHALL support searching using the combination of the
gender
andname
search parameters:GET [base]/Patient?gender={[system]}|[code]&name=[string]
Example:
- GET [base]/Patient?name=Shaw&gender=female
Implementation Notes: Fetches a bundle of all Patient resources matching the specified gender and name (how to search by string and how to search by token)
Optional Search Parameters:
The following search parameters, search parameter combinations and search parameter modifiers, comparators, chains and composites SHOULD be supported.
-
SHOULD support searching using the combination of the
birthdate
andfamily
search parameters:GET [base]/Patient?birthdate=[date]&family=[string]
Example:
- GET [base]/Patient?family=Shaw&birthdate=2007-03-20
Implementation Notes: Fetches a bundle of all Patient resources matching the specified birthdate and family (how to search by date and how to search by string)
-
SHOULD support searching using the combination of the
family
andgender
search parameters:GET [base]/Patient?family=[string]&gender={[system]}|[code]
Example:
- GET [base]/Patient?family=Shaw&gender=female
Implementation Notes: Fetches a bundle of all Patient resources matching the specified family and gender (how to search by string and how to search by token)