HL7 FHIR® US Core Implementation Guide (Release 3.0.1 STU3 Update for Comment)

This page is part of the US Core (v3.0.1: STU3 Ballot 3) 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-practitioner

This profile sets minimum expectations for the Practitioner resource to record, search and fetch basic demographics and other administrative information about an individual practitioner. 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-Practitioner profile:

  • Query for an practitioner by name or NPI
  • Reference from other Resources

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 Practitioner must have:

  1. An identifier which must support an NPI if available.
  2. A name

Profile specific implementation guidance:

Examples

Practitioner-1

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-practitioner

Published on Mon Sep 02 00:00:00 EDT 2019 as active by the HL7 US Realm Steering Committee.

This profile builds on Practitioner


Practitioner

Summary of the Mandatory Requirements

  1. One or more Identifiers in Practitioner.identifier
    • which must have an uri value in Practitioner.identifier.system
    • which must have a string value in Practitioner.identifier.value
  2. One or more HumanNames in Practitioner.name
    • which must have a string value in Practitioner.name.family

Summary of the Must Support Requirements

  1. A Identifier in Practitioner.identifier
    • which must have a fixed Practitioner.identifier.system = http://hl7.org/fhir/sid/us-npi
NameFlagsCard.TypeDescription & Constraintsdoco
.. Practitioner 0..*
... identifier S1..*(Slice Definition)Slice: Unordered, Open by pattern:$this
.... identifier:All Slices Content/Rules for all slices
..... system S1..1uri
..... value S1..1string
.... identifier:NPI S0..1IdentifierRequired Pattern: At least the following
..... system1..1uriThe namespace for the identifier value
Fixed Value: http://hl7.org/fhir/sid/us-npi
... name S1..*HumanName
.... family S1..1string

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Practitioner I0..*A person with a formal responsibility in the provisioning of healthcare or related services
... 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: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier SΣ1..*(Slice Definition)An identifier for the person as this agent
Slice: Unordered, Open by pattern:$this
.... identifier:All Slices Content/Rules for all slices
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required)
..... type Σ0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible)
..... system SΣ1..1uriThe namespace for the identifier value
Example General': http://www.acme.com/identifiers/patient
..... value SΣ1..1stringThe value that is unique
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)
.... identifier:NPI SΣ0..1IdentifierAn identifier for the person as this agent

Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... use0..1codeusual | official | temp | secondary | old (If known)
..... type0..1CodeableConceptDescription of identifier
..... system1..1uriThe namespace for the identifier value
Fixed Value: http://hl7.org/fhir/sid/us-npi
..... value0..1stringThe value that is unique
..... period0..1PeriodTime period when id is/was valid for use
..... assigner0..1Reference(Organization)Organization that issued id (may be just text)
... active Σ0..1booleanWhether this practitioner's record is in active use
... name SΣ1..*HumanNameThe name(s) associated with the practitioner
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ0..1codeusual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required)
.... text Σ0..1stringText representation of the full name
.... family SΣ1..1stringFamily name (often called 'Surname')
.... given Σ0..*stringGiven names (not always 'first'). Includes middle names
This repeating element order: Given Names appear in the correct order for presenting the name
.... prefix Σ0..*stringParts that come before the name
This repeating element order: Prefixes appear in the correct order for presenting the name
.... suffix Σ0..*stringParts that come after the name
This repeating element order: Suffixes appear in the correct order for presenting the name
.... period Σ0..1PeriodTime period when name was/is in use
... telecom Σ0..*ContactPointA contact detail for the practitioner (that apply to all roles)
... address Σ0..*AddressAddress(es) of the practitioner that are not role specific (typically home address)
... gender Σ0..1codemale | female | other | unknown
Binding: AdministrativeGender (required)
... birthDate Σ0..1dateThe date on which the practitioner was born
... photo 0..*AttachmentImage of the person
... qualification I0..*BackboneElementCertification, licenses, or training pertaining to the provision of care
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... identifier 0..*IdentifierAn identifier for this qualification for the practitioner
.... code 1..1CodeableConceptCoded representation of the qualification
Binding: v2 table 0360, Version 2.7 (example)
.... period 0..1PeriodPeriod during which the qualification is valid
.... issuer 0..1Reference(Organization)Organization that regulates and issues the qualification
... communication 0..*CodeableConceptA language the practitioner can use in patient communication
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages

doco Documentation for this format

Practitioner

Summary of the Mandatory Requirements

  1. One or more Identifiers in Practitioner.identifier
    • which must have an uri value in Practitioner.identifier.system
    • which must have a string value in Practitioner.identifier.value
  2. One or more HumanNames in Practitioner.name
    • which must have a string value in Practitioner.name.family

Summary of the Must Support Requirements

  1. A Identifier in Practitioner.identifier
    • which must have a fixed Practitioner.identifier.system = http://hl7.org/fhir/sid/us-npi

Differential View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Practitioner 0..*
... identifier S1..*(Slice Definition)Slice: Unordered, Open by pattern:$this
.... identifier:All Slices Content/Rules for all slices
..... system S1..1uri
..... value S1..1string
.... identifier:NPI S0..1IdentifierRequired Pattern: At least the following
..... system1..1uriThe namespace for the identifier value
Fixed Value: http://hl7.org/fhir/sid/us-npi
... name S1..*HumanName
.... family S1..1string

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Practitioner I0..*A person with a formal responsibility in the provisioning of healthcare or related services
... 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: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier SΣ1..*(Slice Definition)An identifier for the person as this agent
Slice: Unordered, Open by pattern:$this
.... identifier:All Slices Content/Rules for all slices
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required)
..... type Σ0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible)
..... system SΣ1..1uriThe namespace for the identifier value
Example General': http://www.acme.com/identifiers/patient
..... value SΣ1..1stringThe value that is unique
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)
.... identifier:NPI SΣ0..1IdentifierAn identifier for the person as this agent

Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... use0..1codeusual | official | temp | secondary | old (If known)
..... type0..1CodeableConceptDescription of identifier
..... system1..1uriThe namespace for the identifier value
Fixed Value: http://hl7.org/fhir/sid/us-npi
..... value0..1stringThe value that is unique
..... period0..1PeriodTime period when id is/was valid for use
..... assigner0..1Reference(Organization)Organization that issued id (may be just text)
... active Σ0..1booleanWhether this practitioner's record is in active use
... name SΣ1..*HumanNameThe name(s) associated with the practitioner
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ0..1codeusual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required)
.... text Σ0..1stringText representation of the full name
.... family SΣ1..1stringFamily name (often called 'Surname')
.... given Σ0..*stringGiven names (not always 'first'). Includes middle names
This repeating element order: Given Names appear in the correct order for presenting the name
.... prefix Σ0..*stringParts that come before the name
This repeating element order: Prefixes appear in the correct order for presenting the name
.... suffix Σ0..*stringParts that come after the name
This repeating element order: Suffixes appear in the correct order for presenting the name
.... period Σ0..1PeriodTime period when name was/is in use
... telecom Σ0..*ContactPointA contact detail for the practitioner (that apply to all roles)
... address Σ0..*AddressAddress(es) of the practitioner that are not role specific (typically home address)
... gender Σ0..1codemale | female | other | unknown
Binding: AdministrativeGender (required)
... birthDate Σ0..1dateThe date on which the practitioner was born
... photo 0..*AttachmentImage of the person
... qualification I0..*BackboneElementCertification, licenses, or training pertaining to the provision of care
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... identifier 0..*IdentifierAn identifier for this qualification for the practitioner
.... code 1..1CodeableConceptCoded representation of the qualification
Binding: v2 table 0360, Version 2.7 (example)
.... period 0..1PeriodPeriod during which the qualification is valid
.... issuer 0..1Reference(Organization)Organization that regulates and issues the qualification
... communication 0..*CodeableConceptA language the practitioner can use in patient communication
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages

doco 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.

  • See the General Guidance section for additional rules and expectations when a server requires status parameters.
  • See the General Guidance section for additional guidance on searching for multiple patients.

Mandatory Search Parameters:

The following search parameters, search parameter combinations SHALL be supported. Any listed search parameter modifiers, comparators, chains and composites SHALL also be supported UNLESS they are listed as “optional” in which case they SHOULD be supported.:

  1. SHALL support searching for a practitioner by a string match of any part of name using the name search parameter:

    GET [base]/Practitioner?name=[string]

    Example:

    1. GET [base]/Practitioner?name=Smith

    Implementation Notes: Fetches a bundle of all Practitioner resources matching the name (how to search by string)

  2. SHALL support searching a practitioner by an identifier such as an NPI using the identifier search parameter:

    GET [base]/Practitioner?identifier={[system]}|[code]

    Example:

    1. GET [base]/Practitioner?identifier=http://hl7.org/fhir/sid/us-npi|97860456

    Implementation Notes: Fetches a bundle containing any Practitioner resources matching the identifier (how to search by token)