CareTeam Profile¶
| Canonical | ../StructureDefinition/nexus-emr-core-careteam |
|---|---|
| Status | draft · 1.26.0 |
| Base | CareTeam (constraint) |
| Source | FSH · JSON |
Nexus EMR profile for CareTeam, capturing the care providers associated with a patient (e.g. most-responsible physician, nurse, midwife, referring physician). Backs the Patient Profile Care Providers section.
FSH
The authored source of truth: resources/StructureDefinition-nexus-emr-core-careteam.fsh (edit on GitHub). One FSH file may define several related artifacts.
// NexusEmrCoreCareTeam.fsh
// Defines the Nexus EMR CareTeam profile — the set of care providers
// (most-responsible physician, nurse, midwife, referring physician)
// associated with a single patient. Backs the Patient Profile "Care Providers"
// section in the frontend.
Alias: $NexusEmrCoreCareTeam = ../StructureDefinition/nexus-emr-core-careteam
// Profile Definition
Profile: NexusEmrCoreCareTeam
Parent: CareTeam
Id: nexus-emr-core-careteam
Title: "CareTeam Profile"
Description: "Nexus EMR profile for CareTeam, capturing the care providers associated with a patient (e.g. most-responsible physician, nurse, midwife, referring physician). Backs the Patient Profile Care Providers section."
* ^url = $NexusEmrCoreCareTeam // Canonical URL from alias
* ^status = #draft
* insert NoResourceNoteExtension
* . ^short = "Nexus EMR CareTeam Core"
* . ^definition = """
Represents the group of practitioners providing care to a single patient, each with a
role drawn from the official FHIR participant-role value set (plus v3 ParticipationType
REF for the referring physician).
"""
// THE effective date for this profile (see the EffectiveDate / NoEffectiveDate
// RuleSets): none. A care team is a relationship, not a dated event -- `period` is the
// team's validity window, not an effective date. Same call as PractitionerRole, which
// also carries a period and pins itself empty.
* insert NoEffectiveDate
// SMART on FHIR exposure -- this resource is reachable by an app, and these are the
// permissions each operation costs (see SmartExposed + the SmartExposed RuleSet).
* insert SmartExposed(careteam)
* meta.source 0..1 MS
* meta.source ^short = "Identifies EMR instance & pipeline version the resource came from"
* meta.source ^definition = "A URI that identifies the EMR pipeline and version from which this resource originated. This tells you which EMR instance (recommend using the instance identifier), and the version of the pipeline code/transformations."
* text 0..1 MS // Narrative element with human-readable summary
* text ^short = "Narrative"
* text ^definition = "A human-readable narrative summary of the NexusEmrCoreCareTeam resource for human interpretation."
// -----------------------------------------
// Subject — the patient the care team serves
// -----------------------------------------
//
// RELAXED from 1..1 in this release, and the reason is Task ownership rather than anything about
// care teams as such. `Task.owner` now accepts a CareTeam so that pooled work can name its real
// holder (see the ClinicalTask profile), and the teams that hold pooled work -- the nursing pool,
// the front desk, the referrals desk -- are STANDING teams that serve every patient in the clinic
// and therefore have no single `subject`. Leaving this required would have made the CareTeam owner
// target unusable for exactly the population it was widened for: a pool team could not conform to
// the profile the reference is typed to.
//
// The patient-scoped team is still the ordinary case and still carries `subject`. Two populations
// now live here, and the discriminator is this element: a team WITH a subject is that patient's
// care team (it backs the chart's Care Providers section); a team WITHOUT one is an operational
// work stream. A reader listing "this patient's care providers" must filter on `subject` rather
// than assume it -- a query that ignores it will show the nursing pool as one of the patient's
// clinicians.
* subject 0..1 MS
* subject ^short = "The patient the care team cares for, when the team serves one patient"
* subject ^definition = "The patient whose care this team is responsible for. Present on a patient-scoped care team, which is the ordinary case; absent on a standing operational team (a nursing pool, a referrals desk) that serves the practice rather than one patient and can hold pooled work as a `Task.owner`."
* subject ^comment = "Absence is meaningful, not missing data: a team with no subject is an operational work stream, not an incompletely recorded care team. Surfaces that render a patient's care providers must require `subject`."
* subject only Reference(Patient)
// -----------------------------------------
// Participant — the care providers and their roles
// -----------------------------------------
* participant 0..* MS
* participant ^short = "Members of the care team and their roles"
* participant.role 0..* MS
* participant.role ^short = "Care team role (physician/MRP, nurse, midwife, referring physician)"
* participant.role from http://hl7.org/fhir/ValueSet/participant-role (extensible)
* participant.role ^comment = """
Bound to the official FHIR participant-role value set (SNOMED CT). The frontend assigns:
446050000 |Primary care physician| (MRP), 106292003 |Nurse|, and 75271001 |Midwife|.
The referring physician has no concept in that value set,
so it carries HL7 v3 ParticipationType REF (referrer) — official, and permitted by the
extensible binding because the value set holds no applicable concept.
Where this code was mapped from a source system's own vocabulary, carry the raw coding
alongside the mapped one, flagged `userSelected = true`. See
[Carrying the raw code](../guide/patterns/raw-codes.md).
"""
* participant.member 0..1 MS
* participant.member ^short = "The practitioner filling this role"
* participant.member ^definition = "Reference to the practitioner filling this care-team role."
* participant.member ^comment = "The frontend references Practitioner directly. This may be reconciled to PractitionerRole in a later revision, mirroring the patient profile's generalPractitioner."
* participant.member only Reference(Practitioner)