ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

Goal — Patient's clinical objective

A measurable target: HbA1c < 7%, weight loss of 5 kg in 6 months, independent walking of 100 m by end of rehab. Goal carries the measure, target value, due date and achievement status.

Purpose of the resource

Goal represents the intended objective(s) for a patient, group or organisation care: weight loss, restoring daily activities, control of a chronic disease, smoking cessation. A Goal articulates a desired health outcome reachable through interventions or natural recovery.

Goal is referenced from CarePlan via goal, and can itself reference Condition via addresses. Cornerstone of objective-based care, it's the resource that turns a plan into an assessable journey. mCODE (oncology), SDOH-CC and the upcoming US Core Goal profiles make central use of it.

Key fields

FieldTypeCardinalityRole
identifierIdentifier[]0..*External goal identifiers.
lifecycleStatuscode1..1Mandatory. Lifecycle state. Modifier.
achievementStatusCodeableConcept0..1Achievement progress indicator.
categoryCodeableConcept[]0..*Goal category (dietary, safety, behavioral, nursing, physiotherapy…).
continuousboolean0..1Is the goal continuous (maintenance) or one-time?
priorityCodeableConcept0..1Priority (high-priority, medium-priority, low-priority).
descriptionCodeableConcept1..1Mandatory. Goal description (free text or coded).
subjectReference(Patient | Group | Organization)1..1Mandatory. Goal beneficiary.
start[x]date | CodeableConcept0..1Start date or trigger condition.
targetBackboneElement[]0..*Measurable target(s): measure + detail[x] + due[x].
statusDatedate0..1Date of last status change.
statusReasonstring0..1Reason for current status.
sourceReference(Patient | Practitioner | PractitionerRole | RelatedPerson | CareTeam)0..1Source of the formulation (who set the goal).
addressesReference(Condition | Observation | MedicationStatement | NutritionOrder | ServiceRequest | RiskAssessment | Procedure)[]0..*Conditions, observations or requests addressed by the goal.
noteAnnotation[]0..*Additional notes.
outcomeCodeableReference(Observation)[]0..*Observed outcomes for this goal.

lifecycleStatus & achievementStatus

Goal carries two independent status dimensions.

lifecycleStatus (Required) — where the goal sits in its lifecycle:

CodeMeaning
proposedProposed, not yet engaged.
plannedPlanned for the future.
acceptedAccepted (by patient and/or team).
activeIn progress: the usual value for a goal under follow-up.
on-holdOn hold.
completedCompleted (achieved or abandoned per achievementStatus).
cancelledCancelled.
entered-in-errorErroneous entry.
rejectedRejected by patient or team.

achievementStatus (Preferred) — where you are in achieving the target:

CodeMeaning
in-progressTarget not yet met, progress ongoing.
improvingImproving trajectory.
worseningWorsening trajectory.
no-changeStable.
achievedTarget achieved.
sustainingTarget achieved and being sustained.
not-achievedTarget not met despite progress.
no-progressNo progression.
not-attainableRecognised as unattainable.

JSON example

Goal of HbA1c < 7% at 6 months for a newly diagnosed type 2 diabetic patient, set by Dr Adam Careful, linked to the diabetes Condition.

json goal-example.json
{
  "resourceType": "Goal",
  "id": "example-hba1c",
  "identifier": [{
    "system": "http://example.org/identifiers/goal",
    "value": "G-2026-187-HBA1C"
  }],
  "lifecycleStatus": "active",
  "achievementStatus": {
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/goal-achievement",
      "code": "in-progress",
      "display": "In Progress"
    }]
  },
  "category": [{
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/goal-category",
      "code": "physiotherapy",
      "display": "Physiotherapy"
    }]
  }],
  "priority": {
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/goal-priority",
      "code": "high-priority",
      "display": "High Priority"
    }]
  },
  "description": {
    "text": "Reduce HbA1c below 7%"
  },
  "subject": { "reference": "Patient/example", "display": "Peter Chalmers" },
  "startDate": "2026-05-14",
  "target": [{
    "measure": {
      "coding": [{
        "system": "http://loinc.org",
        "code": "4548-4",
        "display": "Hemoglobin A1c/Hemoglobin.total in Blood"
      }]
    },
    "detailQuantity": {
      "value": 7.0,
      "unit": "%",
      "system": "http://unitsofmeasure.org",
      "code": "%"
    },
    "dueDate": "2026-11-14"
  }],
  "statusDate": "2026-05-14",
  "statusReason": "Newly diagnosed type 2 diabetes, care plan starting.",
  "source": { "reference": "Practitioner/example", "display": "Dr Adam Careful" },
  "addresses": [{ "reference": "Condition/example-diabetes" }],
  "note": [{
    "text": "HbA1c assessment at month 3 and month 6."
  }],
  "outcome": [{
    "concept": {
      "coding": [{
        "system": "http://snomed.info/sct",
        "code": "171036003",
        "display": "HbA1c measurement"
      }]
    }
  }]
}

Worth pointing out in this example:

  • lifecycleStatus=active + achievementStatus=in-progress = goal accepted and being evaluated.
  • target.measure LOINC 4548-4 = HbA1c: the target is measurable via an Observation of that code.
  • detailQuantity gives the target value (7%), with UCUM unit.
  • dueDate sets the deadline.
  • addresses links the goal to the diabetes Condition.
  • outcome codes the target observation — useful for quality engines that auto-detect an HbA1c measurement and compute progression.

Common pitfalls

  • Missing lifecycleStatus1..1, modifier. Rejected by the validator.
  • Empty description1..1. A Goal must always carry a description, even free-text.
  • Goal without target — technically allowed but semantically poor. Without a measurable target, assessment becomes subjective.
  • Mixing lifecycleStatus and achievementStatus — a cancelled lifecycle goal can still have achievementStatus=achieved (target reached before administrative cancellation). Both dimensions are independent.
  • No statusDate on changes — without statusDate, the status-change history is lost (or must be rebuilt via Provenance).
  • Eternal goal continuous=true without completed — a "maintain HbA1c < 7% lifelong" goal stays active+sustaining without ever flipping to completed. That's expected.
  • Confusion addresses Condition / Observationaddresses points to the problem addressed; outcome points to the progress measurement. Don't confuse them.
  • CarePlan — references Goal to structure its objectives.
  • Condition — pathology referenced by addresses.
  • Observation — measurement enabling progress assessment (referenced by outcome).
  • ServiceRequest, MedicationRequest — actions tied to goal achievement.
  • CareTeam — team responsible for achieving the goal.
  • RiskAssessment — risk assessment that may motivate the goal.

See also: the FHIR R5 index.