臺灣核心實作指引(TW Core IG)
0.3.1 - Ci-Build Trial Use

臺灣核心實作指引(TW Core IG), published by 衛生福利部. This guide is not an authorized publication; it is the continuous build for version 0.3.1 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cctwFHIRterm/MOHW_TWCoreIG_Build/ and changes regularly. See the Directory of published versions

Resource Profile: TW Core CareTeam

Official URL: https://twcore.mohw.gov.tw/ig/twcore/StructureDefinition/CareTeam-twcore Version: 0.3.1
Active as of 2024-10-22 Computable Name: TWCoreCareTeam

此臺灣核心-照護團隊(TW Core CareTeam) Profile說明本IG如何進一步定義FHIR的CareTeam 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 CareTeam
... status S 0..1 code proposed | active | suspended | inactive | entered-in-error
... subject S 1..1 Reference(TW Core Patient S | Group) Who care team is for
... encounter 0..1 Reference(TW Core Encounter) Encounter created as part of
.... role S 1..1 CodeableConcept Type of involvement
Binding: ParticipantRoles (extensible)
.... member S 1..1 Reference(TW Core Practitioner S | TW Core Organization | TW Core Patient | TW Core PractitionerRole S | TW Core CareTeam | TW Core RelatedPerson S) Who is involved
.... onBehalfOf 0..1 Reference(TW Core Organization) Organization of the practitioner
... reasonReference 0..* Reference(TW Core Condition) Why the care team exists
... managingOrganization 0..* Reference(TW Core Organization) Organization responsible for the care team

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
CareTeam.participant.roleextensibleParticipantRoles
http://hl7.org/fhir/ValueSet/participant-role
from the FHIR Standard
NameFlagsCard.TypeDescription & Constraintsdoco
.. CareTeam 0..* CareTeam Planned participants in the coordination and delivery of care for a patient or group
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 0..1 code proposed | active | suspended | inactive | entered-in-error
Binding: CareTeamStatus (required): Indicates the status of the care team.

... encounter Σ 0..1 Reference(TW Core Encounter) Encounter created as part of
... participant SC 1..* BackboneElement Members of the team
ctm-1: CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... role SΣ 1..1 CodeableConcept Type of involvement
Binding: ParticipantRoles (extensible)
.... member SΣ 1..1 Reference(TW Core Practitioner | TW Core PractitionerRole | TW Core RelatedPerson) Who is involved
.... onBehalfOf Σ 0..1 Reference(TW Core Organization) Organization of the practitioner
... reasonReference 0..* Reference(TW Core Condition) Why the care team exists
... managingOrganization Σ 0..* Reference(TW Core Organization) Organization responsible for the care team

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
CareTeam.statusrequiredCareTeamStatus
http://hl7.org/fhir/ValueSet/care-team-status|4.0.1
from the FHIR Standard
CareTeam.participant.roleextensibleParticipantRoles
http://hl7.org/fhir/ValueSet/participant-role
from the FHIR Standard

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..* CareTeam Planned participants in the coordination and delivery of care for a patient or group
... 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
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier External Ids for this team
... status ?!SΣ 0..1 code proposed | active | suspended | inactive | entered-in-error
Binding: CareTeamStatus (required): Indicates the status of the care team.

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


... name Σ 0..1 string Name of the team, such as crisis assessment team
... subject SΣ 1..1 Reference(TW Core Patient S | Group) Who care team is for
... encounter Σ 0..1 Reference(TW Core Encounter) Encounter created as part of
... period Σ 0..1 Period Time period team covers
... participant SC 1..* BackboneElement Members of the team
ctm-1: CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner
.... 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
.... role SΣ 1..1 CodeableConcept Type of involvement
Binding: ParticipantRoles (extensible)
.... member SΣ 1..1 Reference(TW Core Practitioner S | TW Core Organization | TW Core Patient | TW Core PractitionerRole S | TW Core CareTeam | TW Core RelatedPerson S) Who is involved
.... onBehalfOf Σ 0..1 Reference(TW Core Organization) Organization of the practitioner
.... period 0..1 Period Time period of participant
... reasonCode 0..* CodeableConcept Why the care team exists
Binding: SNOMEDCTClinicalFindings (example): Indicates the reason for the care team.


... reasonReference 0..* Reference(TW Core Condition) Why the care team exists
... managingOrganization Σ 0..* Reference(TW Core Organization) Organization responsible for the care team
... telecom 0..* ContactPoint A contact detail for the care team (that applies to all members)
... note 0..* Annotation Comments made about the CareTeam

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
CareTeam.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
CareTeam.statusrequiredCareTeamStatus
http://hl7.org/fhir/ValueSet/care-team-status|4.0.1
from the FHIR Standard
CareTeam.categoryexampleCareTeamCategory
http://hl7.org/fhir/ValueSet/care-team-category
from the FHIR Standard
CareTeam.participant.roleextensibleParticipantRoles
http://hl7.org/fhir/ValueSet/participant-role
from the FHIR Standard
CareTeam.reasonCodeexampleSNOMEDCTClinicalFindings
http://hl7.org/fhir/ValueSet/clinical-findings
from the FHIR Standard

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()

Differential View

This structure is derived from CareTeam

NameFlagsCard.TypeDescription & Constraintsdoco
.. CareTeam CareTeam
... status S 0..1 code proposed | active | suspended | inactive | entered-in-error
... subject S 1..1 Reference(TW Core Patient S | Group) Who care team is for
... encounter 0..1 Reference(TW Core Encounter) Encounter created as part of
.... role S 1..1 CodeableConcept Type of involvement
Binding: ParticipantRoles (extensible)
.... member S 1..1 Reference(TW Core Practitioner S | TW Core Organization | TW Core Patient | TW Core PractitionerRole S | TW Core CareTeam | TW Core RelatedPerson S) Who is involved
.... onBehalfOf 0..1 Reference(TW Core Organization) Organization of the practitioner
... reasonReference 0..* Reference(TW Core Condition) Why the care team exists
... managingOrganization 0..* Reference(TW Core Organization) Organization responsible for the care team

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
CareTeam.participant.roleextensibleParticipantRoles
http://hl7.org/fhir/ValueSet/participant-role
from the FHIR Standard

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. CareTeam 0..* CareTeam Planned participants in the coordination and delivery of care for a patient or group
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 0..1 code proposed | active | suspended | inactive | entered-in-error
Binding: CareTeamStatus (required): Indicates the status of the care team.

... encounter Σ 0..1 Reference(TW Core Encounter) Encounter created as part of
... participant SC 1..* BackboneElement Members of the team
ctm-1: CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... role SΣ 1..1 CodeableConcept Type of involvement
Binding: ParticipantRoles (extensible)
.... member SΣ 1..1 Reference(TW Core Practitioner | TW Core PractitionerRole | TW Core RelatedPerson) Who is involved
.... onBehalfOf Σ 0..1 Reference(TW Core Organization) Organization of the practitioner
... reasonReference 0..* Reference(TW Core Condition) Why the care team exists
... managingOrganization Σ 0..* Reference(TW Core Organization) Organization responsible for the care team

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
CareTeam.statusrequiredCareTeamStatus
http://hl7.org/fhir/ValueSet/care-team-status|4.0.1
from the FHIR Standard
CareTeam.participant.roleextensibleParticipantRoles
http://hl7.org/fhir/ValueSet/participant-role
from the FHIR Standard

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..* CareTeam Planned participants in the coordination and delivery of care for a patient or group
... 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
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier External Ids for this team
... status ?!SΣ 0..1 code proposed | active | suspended | inactive | entered-in-error
Binding: CareTeamStatus (required): Indicates the status of the care team.

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


... name Σ 0..1 string Name of the team, such as crisis assessment team
... subject SΣ 1..1 Reference(TW Core Patient S | Group) Who care team is for
... encounter Σ 0..1 Reference(TW Core Encounter) Encounter created as part of
... period Σ 0..1 Period Time period team covers
... participant SC 1..* BackboneElement Members of the team
ctm-1: CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner
.... 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
.... role SΣ 1..1 CodeableConcept Type of involvement
Binding: ParticipantRoles (extensible)
.... member SΣ 1..1 Reference(TW Core Practitioner S | TW Core Organization | TW Core Patient | TW Core PractitionerRole S | TW Core CareTeam | TW Core RelatedPerson S) Who is involved
.... onBehalfOf Σ 0..1 Reference(TW Core Organization) Organization of the practitioner
.... period 0..1 Period Time period of participant
... reasonCode 0..* CodeableConcept Why the care team exists
Binding: SNOMEDCTClinicalFindings (example): Indicates the reason for the care team.


... reasonReference 0..* Reference(TW Core Condition) Why the care team exists
... managingOrganization Σ 0..* Reference(TW Core Organization) Organization responsible for the care team
... telecom 0..* ContactPoint A contact detail for the care team (that applies to all members)
... note 0..* Annotation Comments made about the CareTeam

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
CareTeam.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
CareTeam.statusrequiredCareTeamStatus
http://hl7.org/fhir/ValueSet/care-team-status|4.0.1
from the FHIR Standard
CareTeam.categoryexampleCareTeamCategory
http://hl7.org/fhir/ValueSet/care-team-category
from the FHIR Standard
CareTeam.participant.roleextensibleParticipantRoles
http://hl7.org/fhir/ValueSet/participant-role
from the FHIR Standard
CareTeam.reasonCodeexampleSNOMEDCTClinicalFindings
http://hl7.org/fhir/ValueSet/clinical-findings
from the FHIR Standard

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()

 

Other representations of profile: CSV, Excel, Schematron

Notes:

以下概述了此Profile所需的RESTful FHIR互動功能。有關TW Core IG支援的RESTful互動功能的完整清單,請參閱TW Core Server能力聲明

必須支援以下查詢參數:

  1. 必須(SHALL) 支援透過查詢參數 patientstatus 查詢所有CareTeam:
    • 包含支援透過以下_include參數:CareTeam:participant:PractitionerRole,CareTeam:participant:Practitioner,CareTeam:participant:Patient,CareTeam:participant:RelatedPerson
      (如何透過reference查詢)
      (如何透過token查詢)
      GET [base]/CareTeam?patient={Type/}[id]&status={system|}[code]{,{system|}[code],...}

    例子:
    (1) GET [base]/CareTeam?patient=Patient/pat-example&status=active
    (1) GET [base]/CareTeam?patient=Patient/pat-example&status=active&_include=CareTeam:participant:RelatedPerson&_include=CareTeam:participant:Patient&_include=CareTeam:participant:Practitioner&_include=CareTeam:participant:PractitionerRole

建議應該支援以下查詢參數:

  1. 建議應該(SHOULD) 支援透過查詢參數 patientrole 查詢所有CareTeam:
    • 包含支援透過以下_include參數:CareTeam:participant:PractitionerRole,CareTeam:participant:Practitioner,CareTeam:participant:Patient,CareTeam:participant:RelatedPerson
      (如何透過reference查詢)
      (如何透過token查詢)
      GET [base]/CareTeam?patient={Type/}[id]&role={system|}[code]{,{system|}[code],...}

    例子:
    (1) GET [base]/CareTeam?patient=Patient/pat-example&role=http://snomed.info/sct|17561000