US Core Implementation Guide
6.1.0 - STU6 United States of America flag

This page is part of the US Core (v6.1.0: STU6 Update) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Resource Profile: US Core CareTeam Profile

Official URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam Version: 6.1.0
Active as of 2022-04-20 Computable Name: USCoreCareTeam

Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

This profile sets minimum expectations for the CareTeam resource for identifying the Care Team members associated with a patient to promote interoperability and adoption through common implementation. It identifies which core elements, extensions, vocabularies, and value sets SHALL be present in the resource and constrains the way the elements are used when using this profile. It provides the floor for standards development for specific use cases.

Example Usage Scenarios:

The following are example usage scenarios for this profile:

Mandatory and Must Support Data Elements

The following data-elements must always be present (Mandatory definition) 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 Views below provides the formal summary, definitions, and terminology requirements.

Each CareTeam Must Have:

  1. a patient
  2. a participant role for each careteam members
  3. a reference to each careteam member which can be:
    • a practitioner or practitioner type (doctor, nurse, therapist)*
    • a relative or friend or guardian

*See below for how practitioner members are represented in this Profile.

Each CareTeam Must Support:

  1. a status code

Profile Specific Implementation Guidance:

In order to access care team member’s names, identifiers, locations, and contact information, the CareTeam profile supports several types of care team participants. They are represented as references to other profiles and include the following three profiles which are marked as Must Support:

  1. US Core Practitioner Profile
  2. US Core PractitionerRole Profile
  3. US Core RelatedPerson Profile
  • Although both US Core Practitioner Profile and US Core PractitionerRole are Must Support, the server system is not required to support both types of references (and _include search parameters), but SHALL support at least one of them.
  • The client application SHALL support all three profile references.
  • Because the US Core PractitionerRole Profile supplies the provider’s location and contact information and a reference to the Practitioner, server systems SHOULD reference it instead of the US Core Practitioner Profile. An example of how to access the practitioner name and identifier is shown in the quick start section below.
  • Servers that support only US Core Practitioner Profile SHALL provide implementation specific guidance how to access a provider’s location and contact information using only the Practitioner resource.

Usage:

Formal Views of Profile Content

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

This structure is derived from CareTeam

NameFlagsCard.TypeDescription & Constraintsdoco
.. CareTeam 0..*CareTeamPlanned participants in the coordination and delivery of care for a patient or group
... status S0..1code(USCDI) proposed | active | suspended | inactive | entered-in-error
Binding: CareTeamStatus (required): Indicates whether the team is current , represents future intentions or is now a historical record.

... subject S1..1Reference(US Core Patient Profile)(USCDI) Who care team is for
... participant S1..*BackboneElement(USCDI) Members of the team
.... role S1..1CodeableConcept(USCDI) Type of involvement
Binding: Care Team Member Function (extensible): Indicates specific responsibility of an individual within the care team, such as Primary physician, Team coordinator, Caregiver, etc.

.... member S1..1Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core Patient Profile | US Core PractitionerRole Profile S | US Core CareTeam Profile | US Core RelatedPerson Profile S)(USCDI) Who is involved

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
CareTeam.statusrequiredCareTeamStatus
CareTeam.participant.roleextensibleCareTeamMemberFunction
NameFlagsCard.TypeDescription & Constraintsdoco
.. CareTeam 0..*CareTeamPlanned participants in the coordination and delivery of care for a patient or group
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!SΣ0..1code(USCDI) proposed | active | suspended | inactive | entered-in-error
Binding: CareTeamStatus (required): Indicates whether the team is current , represents future intentions or is now a historical record.

... subject SΣ1..1Reference(US Core Patient Profile)(USCDI) Who care team is for
... participant SC1..*BackboneElement(USCDI) Members of the team
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... role SΣ1..1CodeableConcept(USCDI) Type of involvement
Binding: Care Team Member Function (extensible): Indicates specific responsibility of an individual within the care team, such as Primary physician, Team coordinator, Caregiver, etc.


.... member SΣ1..1Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | US Core RelatedPerson Profile)(USCDI) Who is involved

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
CareTeam.statusrequiredCareTeamStatus
CareTeam.participant.roleextensibleCareTeamMemberFunction

Constraints

IdGradePath(s)DetailsRequirements
ctm-1errorCareTeam.participantCareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner
: onBehalfOf.exists() implies (member.resolve().iif(empty(), true, ofType(Practitioner).exists()))
dom-2errorCareTeamIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCareTeamIf 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-4errorCareTeamIf 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-5errorCareTeamIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceCareTeamA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. CareTeam 0..*CareTeamPlanned participants in the coordination and delivery of care for a patient or group
... 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): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... 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 Σ0..*IdentifierExternal Ids for this team
... status ?!SΣ0..1code(USCDI) proposed | active | suspended | inactive | entered-in-error
Binding: CareTeamStatus (required): Indicates whether the team is current , represents future intentions or is now a historical record.

... category Σ0..*CodeableConceptType of team
Binding: CareTeamCategory (example): Indicates the type of care team.


... name Σ0..1stringName of the team, such as crisis assessment team
... subject SΣ1..1Reference(US Core Patient Profile)(USCDI) Who care team is for
... encounter Σ0..1Reference(Encounter)Encounter created as part of
... period Σ0..1PeriodTime period team covers
... participant SC1..*BackboneElement(USCDI) Members of the team
.... 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
.... role SΣ1..1CodeableConcept(USCDI) Type of involvement
Binding: Care Team Member Function (extensible): Indicates specific responsibility of an individual within the care team, such as Primary physician, Team coordinator, Caregiver, etc.


.... member SΣ1..1Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core Patient Profile | US Core PractitionerRole Profile S | US Core CareTeam Profile | US Core RelatedPerson Profile S)(USCDI) Who is involved
.... onBehalfOf Σ0..1Reference(Organization)Organization of the practitioner
.... period 0..1PeriodTime period of participant
... reasonCode 0..*CodeableConceptWhy the care team exists
Binding: SNOMEDCTClinicalFindings (example): Indicates the reason for the care team.


... reasonReference 0..*Reference(Condition)Why the care team exists
... managingOrganization Σ0..*Reference(Organization)Organization responsible for the care team
... telecom 0..*ContactPointA contact detail for the care team (that applies to all members)
... note 0..*AnnotationComments made about the CareTeam

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
CareTeam.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
CareTeam.statusrequiredCareTeamStatus
CareTeam.categoryexampleCareTeamCategory
CareTeam.participant.roleextensibleCareTeamMemberFunction
CareTeam.reasonCodeexampleSNOMEDCTClinicalFindings

Constraints

IdGradePath(s)DetailsRequirements
ctm-1errorCareTeam.participantCareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner
: onBehalfOf.exists() implies (member.resolve().iif(empty(), true, ofType(Practitioner).exists()))
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Differential View

This structure is derived from CareTeam

NameFlagsCard.TypeDescription & Constraintsdoco
.. CareTeam 0..*CareTeamPlanned participants in the coordination and delivery of care for a patient or group
... status S0..1code(USCDI) proposed | active | suspended | inactive | entered-in-error
Binding: CareTeamStatus (required): Indicates whether the team is current , represents future intentions or is now a historical record.

... subject S1..1Reference(US Core Patient Profile)(USCDI) Who care team is for
... participant S1..*BackboneElement(USCDI) Members of the team
.... role S1..1CodeableConcept(USCDI) Type of involvement
Binding: Care Team Member Function (extensible): Indicates specific responsibility of an individual within the care team, such as Primary physician, Team coordinator, Caregiver, etc.

.... member S1..1Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core Patient Profile | US Core PractitionerRole Profile S | US Core CareTeam Profile | US Core RelatedPerson Profile S)(USCDI) Who is involved

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
CareTeam.statusrequiredCareTeamStatus
CareTeam.participant.roleextensibleCareTeamMemberFunction

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. CareTeam 0..*CareTeamPlanned participants in the coordination and delivery of care for a patient or group
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!SΣ0..1code(USCDI) proposed | active | suspended | inactive | entered-in-error
Binding: CareTeamStatus (required): Indicates whether the team is current , represents future intentions or is now a historical record.

... subject SΣ1..1Reference(US Core Patient Profile)(USCDI) Who care team is for
... participant SC1..*BackboneElement(USCDI) Members of the team
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... role SΣ1..1CodeableConcept(USCDI) Type of involvement
Binding: Care Team Member Function (extensible): Indicates specific responsibility of an individual within the care team, such as Primary physician, Team coordinator, Caregiver, etc.


.... member SΣ1..1Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | US Core RelatedPerson Profile)(USCDI) Who is involved

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
CareTeam.statusrequiredCareTeamStatus
CareTeam.participant.roleextensibleCareTeamMemberFunction

Constraints

IdGradePath(s)DetailsRequirements
ctm-1errorCareTeam.participantCareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner
: onBehalfOf.exists() implies (member.resolve().iif(empty(), true, ofType(Practitioner).exists()))
dom-2errorCareTeamIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCareTeamIf 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-4errorCareTeamIf 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-5errorCareTeamIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceCareTeamA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. CareTeam 0..*CareTeamPlanned participants in the coordination and delivery of care for a patient or group
... 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): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... 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 Σ0..*IdentifierExternal Ids for this team
... status ?!SΣ0..1code(USCDI) proposed | active | suspended | inactive | entered-in-error
Binding: CareTeamStatus (required): Indicates whether the team is current , represents future intentions or is now a historical record.

... category Σ0..*CodeableConceptType of team
Binding: CareTeamCategory (example): Indicates the type of care team.


... name Σ0..1stringName of the team, such as crisis assessment team
... subject SΣ1..1Reference(US Core Patient Profile)(USCDI) Who care team is for
... encounter Σ0..1Reference(Encounter)Encounter created as part of
... period Σ0..1PeriodTime period team covers
... participant SC1..*BackboneElement(USCDI) Members of the team
.... 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
.... role SΣ1..1CodeableConcept(USCDI) Type of involvement
Binding: Care Team Member Function (extensible): Indicates specific responsibility of an individual within the care team, such as Primary physician, Team coordinator, Caregiver, etc.


.... member SΣ1..1Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core Patient Profile | US Core PractitionerRole Profile S | US Core CareTeam Profile | US Core RelatedPerson Profile S)(USCDI) Who is involved
.... onBehalfOf Σ0..1Reference(Organization)Organization of the practitioner
.... period 0..1PeriodTime period of participant
... reasonCode 0..*CodeableConceptWhy the care team exists
Binding: SNOMEDCTClinicalFindings (example): Indicates the reason for the care team.


... reasonReference 0..*Reference(Condition)Why the care team exists
... managingOrganization Σ0..*Reference(Organization)Organization responsible for the care team
... telecom 0..*ContactPointA contact detail for the care team (that applies to all members)
... note 0..*AnnotationComments made about the CareTeam

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
CareTeam.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
CareTeam.statusrequiredCareTeamStatus
CareTeam.categoryexampleCareTeamCategory
CareTeam.participant.roleextensibleCareTeamMemberFunction
CareTeam.reasonCodeexampleSNOMEDCTClinicalFindings

Constraints

IdGradePath(s)DetailsRequirements
ctm-1errorCareTeam.participantCareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner
: onBehalfOf.exists() implies (member.resolve().iif(empty(), true, ofType(Practitioner).exists()))
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

 

Other representations of profile: CSV, Excel, Schematron

Notes:


Quick Start


Below is an overview of the required Server RESTful FHIR interactions for this profile - for example, search and read operations - when supporting the US Core interactions to access this profile’s information (Profile Support + Interaction Support). Note that systems that support only US Core Profiles (Profile Only Support) are not required to support these interactions. See the US Core Server CapabilityStatement for a complete list of supported RESTful interactions for this IG.

  • The syntax used to describe the interactions is described here.

  • Servers providing access to careteam data can use US Core SMART Scopes for:
  • See the General Requirements 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 and search parameter combinations SHALL be supported:

  1. SHALL support searching using the combination of the patient and status search parameters:
    • including optional support for these _include parameters: CareTeam:participant:PractitionerRole,CareTeam:participant:Practitioner,CareTeam:participant:Patient,CareTeam:participant:RelatedPerson
    • including optional support for OR search on status (e.g.status={system|}[code],{system|}[code],...)

    GET [base]/CareTeam?patient={Type/}[id]&status=active

    Example:

    1. GET [base]/CareTeam?patient=1137192&status=active
    2. GET [base]/CareTeam?patient=1137192&status=active&_include=CareTeam:participant:RelatedPerson&_include=CareTeam:participant:Patient&_include=CareTeam:participant:Practitioner&_include=CareTeam:participant:PractitionerRole

    Implementation Notes: Fetches a bundle of all CareTeam resources for the specified patient and status =active and may include CareTeam Patient, RelatedPerson and Practitioner and PractitionerRole participants.
    To get Practitioner name and identifier using PractitionerRole:
    1) Search for the careteam PractitionerRole: GET [base]/CareTeam?patient=[id]&status=active&_include=CareTeam:participant:PractitionerRole 2) Use the FHIR _id from the PractitionerRole.practitioner element, to fetch the Practitioner resources using GET [base]/Practitioner?_id=[id] (how to search by reference and how to search by token)

Optional Search Parameters:

The following search parameter combinations SHOULD be supported:

  1. SHOULD support searching using the combination of the patient and role search parameters:
    • including optional support for these _include parameters: CareTeam:participant:PractitionerRole,CareTeam:participant:Practitioner,CareTeam:participant:Patient,CareTeam:participant:RelatedPerson
    • including optional support for OR search on role (e.g.role={system|}[code],{system|}[code],...)

    GET [base]/CareTeam?patient={Type/}[id]&role={system|}[code]{,{system|}[code],...}

    Example:

    1. GET [base]/CareTeam?patient=1137192&role=http://snomed.info/sct|17561000

    Implementation Notes: Fetches a bundle of all CareTeam resources for the specified patient and participant role (how to search by reference and how to search by token)