care-plan
A per-patient (and per-discipline) aggregate of care-plan items, planned assessments,
and schedule entries — sourced from the provider's care-planning record. One
care-plan record represents one patient/discipline plan, not a single planned item.
Fields
| Field | Type | Required | Description |
|---|---|---|---|
identifiers | Identifier[] | yes (≥1) | Business identifiers for this care plan. |
patientRef | SourceRef | yes | The patient this care plan belongs to. |
discipline | string | no | The clinical discipline this plan belongs to, e.g. physiotherapy. |
status | string enum | no (defaults active) | One of active, completed, revoked, unknown. |
activities | CarePlanActivity[] (below) | no (defaults []) | The plan's individual activities. |
Care-plan activity
| Field | Type | Required | Description |
|---|---|---|---|
description | string | yes | Free-text description of the activity. |
kind | string enum | yes | One of care-plan-item, planned-assessment, schedule-entry. |
scheduledStart | string | no | Free-form schedule field — not a normalized timestamp. |
scheduledEnd | string | no | Free-form schedule field — not a normalized timestamp. |
location | string | no | Free-text location for the activity. |
Example payload
{
"identifiers": [{ "system": "urn:michels:care-plan", "value": "CP-8001" }],
"patientRef": {
"sourceSystem": "michels",
"resourceType": "patient",
"sourceId": "pat-1"
},
"discipline": "physiotherapy",
"status": "active",
"activities": [
{
"description": "Daily grip-strength exercises",
"kind": "care-plan-item",
"location": "Ward 3B"
},
{
"description": "Barthel Index re-assessment",
"kind": "planned-assessment",
"scheduledStart": "2026-07-21"
},
{
"description": "Physiotherapy session",
"kind": "schedule-entry",
"scheduledStart": "2026-07-15 09:00",
"scheduledEnd": "2026-07-15 09:30",
"location": "Therapy room 2"
}
]
}
As a change-feed event
{
"sequence": 129,
"resourceType": "care-plan",
"canonicalId": "3d6c9e1a-5f8b-4d2a-9c6e-1b4f7a0d3c8e",
"operation": "create",
"version": 1,
"occurredAt": "2026-07-14T11:00:00.000Z",
"orgSlug": "default",
"record": {
"identifiers": [{ "system": "urn:michels:care-plan", "value": "CP-8001" }],
"patientRef": {
"sourceSystem": "michels",
"resourceType": "patient",
"sourceId": "pat-1"
},
"discipline": "physiotherapy",
"status": "active",
"activities": [
{
"description": "Daily grip-strength exercises",
"kind": "care-plan-item",
"location": "Ward 3B"
},
{
"description": "Barthel Index re-assessment",
"kind": "planned-assessment",
"scheduledStart": "2026-07-21"
},
{
"description": "Physiotherapy session",
"kind": "schedule-entry",
"scheduledStart": "2026-07-15 09:00",
"scheduledEnd": "2026-07-15 09:30",
"location": "Therapy room 2"
}
]
}
}
From the Records API
curl -H "Authorization: Bearer $ROSETTA_SYNC_TOKEN" \
"https://sync.example.com/api/v1/records/care-plan/3d6c9e1a-5f8b-4d2a-9c6e-1b4f7a0d3c8e"
{
"id": "3d6c9e1a-5f8b-4d2a-9c6e-1b4f7a0d3c8e",
"resourceType": "care-plan",
"version": 1,
"payload": {
"identifiers": [{ "system": "urn:michels:care-plan", "value": "CP-8001" }],
"patientRef": {
"sourceSystem": "michels",
"resourceType": "patient",
"sourceId": "pat-1"
},
"discipline": "physiotherapy",
"status": "active",
"activities": [
{
"description": "Daily grip-strength exercises",
"kind": "care-plan-item",
"location": "Ward 3B"
},
{
"description": "Barthel Index re-assessment",
"kind": "planned-assessment",
"scheduledStart": "2026-07-21"
},
{
"description": "Physiotherapy session",
"kind": "schedule-entry",
"scheduledStart": "2026-07-15 09:00",
"scheduledEnd": "2026-07-15 09:30",
"location": "Therapy room 2"
}
]
},
"updatedAt": "2026-07-14T11:00:00.000Z",
"orgSlug": "default",
"identifiers": [{ "system": "urn:michels:care-plan", "value": "CP-8001" }]
}
Consumption notes
- This is an aggregate updated in place, not an immutable clinical fact — a new change
event carries the whole payload again (a full-record event), including all
activities, not just the ones that changed. Always overwrite your stored copy rather
than merging
activitiesarrays element-wise, and dedupe applied events on(canonicalId, version). - Expect one record per (patient, discipline) aggregate, not one record per activity.
planned-assessmentactivities are plan entries describing an assessment that is scheduled or expected — they are notassessmentrecords. When the instrument is actually completed, it arrives separately as its ownassessmentrecord; correlate the two by discipline/patient and description, not by any shared id.scheduledStart/scheduledEndare free-form source strings, not normalized timestamps — do not assume they parse as ISO-8601.statusdefaults toactivewhen the source system doesn't report one explicitly.patientRefis a source reference; correlate it to the canonicalpatientwhoseidentifierscontain the matching business identifier.