Skip to content

Care Plan Profile

Canonical../StructureDefinition/nexus-emr-core-careplan
Statusdraft (experimental) · 1.26.0
BaseCarePlan (constraint)
SourceFSH · JSON

Nexus EMR profile for CarePlan -- the management plan tying goals, conditions and activities together (CDM flowsheets, care gaps). First pass: status/intent, category, goal/addresses linkage, minimal activity. Closed to SMART apps pending an exposure decision.

FSH

The authored source of truth: resources/StructureDefinition-nexus-emr-core-careplan.fsh (edit on GitHub). One FSH file may define several related artifacts.

// NexusEmrCoreCarePlan.fsh
// FIRST PASS (FHIR-29). The plan tying goals, conditions and activities together.
//
// CONSUMER + THE INVERSE GAP: the seed corpus has been emitting CarePlans (the Synthea GMF
// progression expresses ongoing management as care plans) with NO profile behind them -- the
// exact no-model-but-generated gap the bidirectional coverage check now catches; this profile
// resolves it by PROFILING rather than un-emitting (the 2026-08-10 ruling). The CDM
// flowsheet/care-gap work (SD-242) is the forward consumer: a flowsheet is Goal targets +
// CarePlan structure over the chronic Conditions. CarePlan also already holds granted SMART
// scopes with no profile (the Appendix-A mismatch class) -- the profile closes that hole from
// the IG side without opening exposure.
//
// FIRST-PASS SCOPE: status/intent, category, subject, goal + addresses linkage, minimal
// activity (reference OR detail with code/status). Deliberately NOT settled: care-team
// linkage, activity scheduling richness, and the protocol (instantiates*) surface.
//
// SMART EXPOSURE: deliberately NOT declared -- closed to apps pending a decision (FHIR-28
// policy; note the gateway's scope map currently grants CarePlan scopes, which is the
// Appendix-A cleanup's problem, not this profile's).

Alias: $NexusEmrCoreCarePlan = ../StructureDefinition/nexus-emr-core-careplan

Profile:        NexusEmrCoreCarePlan
Parent:         CarePlan
Id:             nexus-emr-core-careplan
Title:          "Care Plan Profile"
Description:    "Nexus EMR profile for CarePlan -- the management plan tying goals, conditions and activities together (CDM flowsheets, care gaps). First pass: status/intent, category, goal/addresses linkage, minimal activity. Closed to SMART apps pending an exposure decision."
* ^url = $NexusEmrCoreCarePlan
* ^status = #draft
* insert NoResourceNoteExtension
* ^experimental = true

* insert EffectiveDate([[period.start | created]])

* . ^short = "Nexus EMR Care Plan Core"

* status 1..1 MS
* status ^short = "draft | active | on-hold | revoked | completed | entered-in-error | unknown"
* status ^comment = "This is a modifier element. A draft plan that is being SUGGESTED rides in the transaction Bundle contained in its review Task, like every other suggested resource."

* intent 1..1 MS
* intent ^short = "proposal | plan | order | option -- normally `plan`"

* category 0..* MS
* category ^short = "What kind of plan (e.g. the managed condition's domain)"

* subject 1..1 MS
* subject only Reference(NexusEmrCorePatient)
* subject ^short = "The patient"

* period 0..1 MS
* period ^short = "When the plan is/was in effect"

* addresses 0..* MS
* addresses only Reference(NexusEmrCoreCondition)
* addresses ^short = "The condition(s) being managed"

* goal 0..* MS
* goal only Reference(NexusEmrCoreGoal)
* goal ^short = "The measurable targets (flowsheet rows) of this plan"

* activity 0..* MS
* activity ^short = "Planned activities: a reference to a request resource, or an inline detail"
* activity.reference 0..1 MS
* activity.reference ^short = "The planned action as its own resource (ServiceRequest, MedicationRequest, Appointment, Task)"
* activity.detail 0..1 MS
* activity.detail ^short = "Inline activity when no request resource exists"
* activity.detail.code 0..1 MS
* activity.detail.status 1..1 MS
* activity.detail.status ^short = "not-started | scheduled | in-progress | on-hold | completed | cancelled | stopped | unknown | entered-in-error"