US-Core CI Build

This page is part of the US Core (v0.0.0: STU1 Ballot 1) based on FHIR v1.8.0. The current version which supercedes this version is 5.0.1. For a full list of available versions, see the Directory of published versions

D.4.1 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.
  • Query for Patients less than 5 years of age
  • Query for Patients between ages of 25 and 50
Mandatory Data Elements and Terminology

The following data-elements are mandatory (i.e data MUST be present). These 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:

  1. a patient identifier (e.g. MRN)
  2. a patient name
  3. a gender

2015 Edition Certification Requirements (Must Support).

In addition, based upon the 2015 Edition Certification Requirements, the following data-elements must be supported.

’'’If the data is present, Patient shall include:’’’

  1. a birth date
  2. a communication language
  3. a race
  4. an ethnicity
  5. a birth sex

Profile specific implementation guidance:

  • none

Examples

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient

This profile builds on Patient.

This profile was published on Mon Aug 01 00:00:00 AEST 2016 as a draft by Health Level Seven International (FHIR-Infrastructure).

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

Complete Summary of the Mandatory Requirements

  1. One or more medical record numbers in Patient.identifier
    • each Patient.identifier must have:
      • an identifier.system
      • an identifier.value that is unique within the system.
  2. One or more names in Patient.name
    • each Patient.name must have:
      • a name.family
      • a name.given
  3. One administrative gender in Patient.gender

Summary of the Must Suport Requirements

Additionally your system must return:

  1. A date of birth in Patient.birthDate
  2. One or more languages spoken in Patient.communication.language which has an extensible binding to:
  3. One or more race codes in Patient.extension= US Core Race Extension which:
  4. One or more ethnicity codes in Patient.extension=US Core ethnicity Extension which:
  5. One Birth Sex in Patient.extension= US Core Patient Birth Sex which has an required binding to:
NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient I0..*US Core Patient Profile
... id ∑0..1idLogical id of this artifact
... meta ∑0..1MetaMetadata about the resource
... implicitRules ?!∑0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... us-core-race SI0..1(Complex)Extension
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-race
... us-core-ethnicity SI0..1(Complex)Extension
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity
... us-core-birthsex SI0..1codeExtension
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex
Binding: US Core Birth Sex Value Set (required)
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier S1..*IdentifierAn identifier for this patient
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... use ?!∑0..1codeusual | official | temp | secondary (If known)
Binding: IdentifierUse (required)
.... type ∑0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible)
.... system S1..1uriThe namespace for the identifier
Example' General': http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
.... value S1..1stringThe value that is unique within the system.
Example' General': 123456
.... period ∑0..1PeriodTime period when id is/was valid for use
.... assigner ∑0..1Reference(Organization)Organization that issued id (may be just text)
... active ?!∑0..1booleanWhether this patient's record is in active use
... name S1..*HumanNameA name associated with the patient
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... use ?!∑0..1codeusual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required)
.... text ∑0..1stringText representation of the full name
.... family S1..1stringFamily name (often called 'Surname')
.... given S1..*stringGiven names (not always 'first'). Includes middle names
.... prefix ∑0..*stringParts that come before the name
.... suffix ∑0..*stringParts that come after the name
.... period ∑0..1PeriodTime period when name was/is in use
... telecom ∑0..*ContactPointA contact detail for the individual
... gender S1..1codemale | female | other | unknown
Binding: AdministrativeGender (required)
... birthDate S0..1dateThe date of birth for the individual
... deceased[x] ?!∑0..1boolean, dateTimeIndicates if the individual is deceased or not
... address ∑0..*AddressAddresses for the individual
... maritalStatus 0..1CodeableConceptMarital (civil) status of a patient
Binding: Marital Status Codes (extensible)
... multipleBirth[x] 0..1boolean, integerWhether patient is part of a multiple birth
... photo 0..*AttachmentImage of the patient
... contact I0..*BackboneElementA 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..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... relationship 0..*CodeableConceptThe kind of relationship
Binding: v2 Contact Role (extensible)
.... name 0..1HumanNameA name associated with the contact person
.... telecom 0..*ContactPointA contact detail for the person
.... address 0..1AddressAddress for the contact person
.... gender 0..1codemale | female | other | unknown
Binding: AdministrativeGender (required)
.... organization I0..1Reference(Organization)Organization that is associated with the contact
.... period 0..1PeriodThe period during which this contact person or organization is valid to be contacted relating to this patient
... communication SI0..*BackboneElementA list of Languages which may be used to communicate with the patient about his or her health
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... language S1..1CodeableConceptThe language which can be used to communicate with the patient about his or her health
Binding: Common Languages (extensible)
.... preferred 0..1booleanLanguage preference indicator
... generalPractitioner 0..*Reference(Organization), Reference(Practitioner)Patient's nominated primary care provider
... managingOrganization ∑0..1Reference(Organization)Organization that is the custodian of the patient record
... link ?!∑I0..*BackboneElementLink to another patient resource that concerns the same actual person
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... other ?!∑1..1Reference(Patient), Reference(RelatedPerson)The other patient or related person resource that the link refers to
.... type ?!∑1..1codereplace | refer | seealso - type of link
Binding: LinkType (required)

doco Documentation for this format

Complete Summary of the Mandatory Requirements

  1. One or more medical record numbers in Patient.identifier
    • each Patient.identifier must have:
      • an identifier.system
      • an identifier.value that is unique within the system.
  2. One or more names in Patient.name
    • each Patient.name must have:
      • a name.family
      • a name.given
  3. One administrative gender in Patient.gender

Summary of the Must Suport Requirements

Additionally your system must return:

  1. A date of birth in Patient.birthDate
  2. One or more languages spoken in Patient.communication.language which has an extensible binding to:
  3. One or more race codes in Patient.extension= US Core Race Extension which:
  4. One or more ethnicity codes in Patient.extension=US Core ethnicity Extension which:
  5. One Birth Sex in Patient.extension= US Core Patient Birth Sex which has an required binding to:

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient I0..*US Core Patient Profile
... id ∑0..1idLogical id of this artifact
... meta ∑0..1MetaMetadata about the resource
... implicitRules ?!∑0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... us-core-race SI0..1(Complex)Extension
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-race
... us-core-ethnicity SI0..1(Complex)Extension
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity
... us-core-birthsex SI0..1codeExtension
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex
Binding: US Core Birth Sex Value Set (required)
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier S1..*IdentifierAn identifier for this patient
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... use ?!∑0..1codeusual | official | temp | secondary (If known)
Binding: IdentifierUse (required)
.... type ∑0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible)
.... system S1..1uriThe namespace for the identifier
Example' General': http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
.... value S1..1stringThe value that is unique within the system.
Example' General': 123456
.... period ∑0..1PeriodTime period when id is/was valid for use
.... assigner ∑0..1Reference(Organization)Organization that issued id (may be just text)
... active ?!∑0..1booleanWhether this patient's record is in active use
... name S1..*HumanNameA name associated with the patient
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... use ?!∑0..1codeusual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required)
.... text ∑0..1stringText representation of the full name
.... family S1..1stringFamily name (often called 'Surname')
.... given S1..*stringGiven names (not always 'first'). Includes middle names
.... prefix ∑0..*stringParts that come before the name
.... suffix ∑0..*stringParts that come after the name
.... period ∑0..1PeriodTime period when name was/is in use
... telecom ∑0..*ContactPointA contact detail for the individual
... gender S1..1codemale | female | other | unknown
Binding: AdministrativeGender (required)
... birthDate S0..1dateThe date of birth for the individual
... deceased[x] ?!∑0..1boolean, dateTimeIndicates if the individual is deceased or not
... address ∑0..*AddressAddresses for the individual
... maritalStatus 0..1CodeableConceptMarital (civil) status of a patient
Binding: Marital Status Codes (extensible)
... multipleBirth[x] 0..1boolean, integerWhether patient is part of a multiple birth
... photo 0..*AttachmentImage of the patient
... contact I0..*BackboneElementA 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..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... relationship 0..*CodeableConceptThe kind of relationship
Binding: v2 Contact Role (extensible)
.... name 0..1HumanNameA name associated with the contact person
.... telecom 0..*ContactPointA contact detail for the person
.... address 0..1AddressAddress for the contact person
.... gender 0..1codemale | female | other | unknown
Binding: AdministrativeGender (required)
.... organization I0..1Reference(Organization)Organization that is associated with the contact
.... period 0..1PeriodThe period during which this contact person or organization is valid to be contacted relating to this patient
... communication SI0..*BackboneElementA list of Languages which may be used to communicate with the patient about his or her health
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... language S1..1CodeableConceptThe language which can be used to communicate with the patient about his or her health
Binding: Common Languages (extensible)
.... preferred 0..1booleanLanguage preference indicator
... generalPractitioner 0..*Reference(Organization), Reference(Practitioner)Patient's nominated primary care provider
... managingOrganization ∑0..1Reference(Organization)Organization that is the custodian of the patient record
... link ?!∑I0..*BackboneElementLink to another patient resource that concerns the same actual person
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... other ?!∑1..1Reference(Patient), Reference(RelatedPerson)The other patient or related person resource that the link refers to
.... type ?!∑1..1codereplace | refer | seealso - type of link
Binding: LinkType (required)

doco Documentation for this format

Downloads: StructureDefinition: (XML, JSON, CSV), Schema: XML Schematron

 

D.4.1.2 Quick Start

Below is an overview of the required search and read operations.

Summary of Argonaut Search Criteria for StructureDefinition-us-core-patient


Clients

  • A client has connected to a server and fetched a patient using GET [base]/Patient/[id].
  • A client has connected to a server and searched through available Patients using at least 2 (example name and gender) of the following search parameters:
    • name
    • gender
    • birthdate

To limit overly broad search results, a client search with gender SHOULD include family and given name search parameters.

Servers

  • A server is capable of returning a patient using GET [base]/Patient/[id].
  • A server returns valid FHIR Patient resources according to the Data Access Framework (DAF) Patient Profile..
  • A server has exposed a FHIR Patient search endpoint supporting at a minimum the following search parameters:
    • identifier
  • A server has exposed a FHIR Patient search endpoint supporting at a minimum the following search parameters when at least 2 (example name and gender) are present:
    • name
    • gender
    • birthdate
  • A server has ensured that every API request includes a valid Authorization token, supplied via:Authorization: Bearer {server-specific-token-here}
  • A server has rejected any unauthorized requests by returning an HTTP 401 Unauthorized response code.

GET [base]/Patient/[id]

Support: Mandatory

Implementation Notes: Fetches a single Patient

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope
  • (Status 404): unknown resource
  • (Status 410): deleted resource

Example:

GET https://fhir-open-api.smarthealthit.org/Patient/1032702


GET [base]/Patient?name=[string]&birthdate=[date]

Support: Mandatory

Implementation Notes: Search based on at least 2 patient elements -text name (how to search by string) and birthdate (how to search by date)

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope
  • (Status 404): unknown resource
  • (Status 410): deleted resource

Example:

GET https://fhir-open-api-dstu2.smarthealthit.org/Patient?name=Shaw&birthdate=2007-03-20


GET [base]/Patient?name=[string]&gender=[code]

Support: Mandatory

Implementation Notes: Search based on at least 2 patient elements -text name (how to search by string) and gender (how to search by token).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope
  • (Status 404): unknown resource
  • (Status 410): deleted resource

Example:

GET https://fhir-open-api-dstu2.smarthealthit.org/Patient?name=Shaw&gender=female


GET [base]/Patient?family=[string]&gender=[code]

Support: SHOULD support Patient search by family name and gender

Implementation Notes: Search based on at least 2 patient elements -text family name (how to search by string) and gender (how to search by token).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope
  • (Status 404): unknown resource
  • (Status 410): deleted resource

Example:

GET https://fhir-open-api-dstu2.smarthealthit.org/Patient?family=shaw&gender=female


GET [base]/Patient?given=[string]&gender=[code]

Support: SHOULD support Patient search by given name and gender

Implementation Notes: Search based on at least 2 patient elements -text given name (how to search by string) and gender (how to search by token)

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope
  • (Status 404): unknown resource
  • (Status 410): deleted resource

Example:

GET https://fhir-open-api-dstu2.smarthealthit.org/Patient?given=amy&gender=female