xCaliber healthCare Data Mesh

Goal

Overview

The Goal API empowers healthcare developers to seamlessly create, manage, and retrieve patient goals, providing a standardized interface for efficient integration of treatment objectives and care plans into clinical workflows. By leveraging this API, developers can optimize goal tracking, enhance care coordination, and ensure patient-centered care by systematically managing and updating treatment objectives for improved patient outcomes.

Use Cases

  • Care Plans - Incorporate health outcome goals and long term targets into care plans.
  • Patient Monitoring - Continuously track measurements against defined health goals.
  • Clinical Decision Support - Provide evidence-based goal recommendations to providers.
  • Incentive Programs - Measure progress against population health focused sprint goals.
  • Patient Engagement - Increase patient motivation by making goals visible on patient portals.
  • Goal Recommendations - Apply standards and best practice templates to suggest personalized goals.
  • Metrics Collection - Capture structured goal achievement data for analysis.
  • Workflow Integration - Trigger appropriate patient outreach actions based on goal progress.
  • Reporting - Generate mandated reports on standardized related metrics.
  • Telehealth - Remotely monitor and modify goals through telemedicine workflows.

EHR Data Model

EHRSupported?Mapped Source Object
AthenaPatient Goal Free Text, Patient Goals
ElationN/A
EpicN/A

Object Definition

{
  "resourceType": "Goal",
  "id": "example",
  "text": {
    "status": "additional",
    "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n\t\t\t<p> A simple care goal for a patient to lose weight due to obesity.</p>\n\t\t</div>"
  },
  "identifier": [
    {
      "value": "123"
    }
  ],
  "lifecycleStatus": "on-hold",
  "category": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/goal-category",
          "code": "dietary"
        }
      ]
    }
  ],
  "priority": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/goal-priority",
        "code": "high-priority",
        "display": "High Priority"
      }
    ],
    "text": "high"
  },
  "description": {
    "text": "Target weight is 160 to 180 lbs."
  },
  "subject": {
    "reference": "Patient/example",
    "display": "Peter James Chalmers"
  },
  "startDate": "2015-04-05",
  "target": [
    {
      "measure": {
        "coding": [
          {
            "system": "http://loinc.org",
            "code": "3141-9",
            "display": "Weight Measured"
          }
        ]
      },
      "detailRange": {
        "low": {
          "value": 160,
          "unit": "lbs",
          "system": "http://unitsofmeasure.org",
          "code": "[lb_av]"
        },
        "high": {
          "value": 180,
          "unit": "lbs",
          "system": "http://unitsofmeasure.org",
          "code": "[lb_av]"
        }
      },
      "dueDate": "2016-04-05"
    }
  ],
  "statusDate": "2016-02-14",
  "statusReason": "Patient wants to defer weight loss until after honeymoon.",
  "expressedBy": {
    "reference": "Patient/example",
    "display": "Peter James Chalmers"
  },
  "addresses": [
    {
      "display": "obesity condition"
    }
  ],
  "outcomeReference": [
    {
      "reference": "Observation/example",
      "display": "Body Weight Measured"
    }
  ],
  "meta": {
    "tag": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/v3-ActReason",
        "code": "HTEST",
        "display": "test health data"
      }
    ]
  }
}

Data Fields

Data FieldTypeDescription
resourceTypeGoalThis is a Goal resource
ididThe logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
metaMetaThe metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
implicitRulesuriA reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.
languagecodeThe base language in which the resource is written.
textNarrativeA human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.
containedBackboneElementThese resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.
extensionExtensionMay be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
modifierExtensionExtensionMay be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
identifierIdentifierBusiness identifiers assigned to this goal by the performer or other systems which remain constant as the resource is updated and propagates from server to server.
lifecycleStatuscodeThe state of the goal throughout its lifecycle.
achievementStatusCodeableConceptDescribes the progression, or lack thereof, towards the goal against the target.
categoryCodeableConceptIndicates a category the goal falls within.
priorityCodeableConceptIdentifies the mutually agreed level of importance associated with reaching/sustaining the goal.
descriptionCodeableConceptHuman-readable and/or coded description of a specific desired objective of care, such as "control blood pressure" or "negotiate an obstacle course" or "dance with child at wedding".
subjectReferenceIdentifies the patient, group or organization for whom the goal is being established.
startDatestringThe date or event after which the goal should begin being pursued.
startCodeableConceptCodeableConceptThe date or event after which the goal should begin being pursued.
targetBackboneElementIndicates what should be done by when.
target.idstringUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
target.extensionExtensionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
target.modifierExtensionExtensionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
target.measureCodeableConceptThe parameter whose value is being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level.
target.detailQuantityQuantityThe target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.
target.detailRangeRangeThe target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.
target.detailCodeableConceptCodeableConceptThe target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.
target.detailStringstringThe target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.
target.detailBooleanbooleanThe target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.
target.detailIntegernumberThe target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.
target.detailRatioRatioThe target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.
target.dueDatestringIndicates either the date or the duration after start by which the goal should be met.
target.dueDurationDurationIndicates either the date or the duration after start by which the goal should be met.
statusDatedateIdentifies when the current status. I.e. When initially created, when achieved, when cancelled, etc.
statusReasonstringCaptures the reason for the current status.
expressedByReferenceIndicates whose goal this is - patient goal, practitioner goal, etc.
addressesReferenceThe identified conditions and other health record elements that are intended to be addressed by the goal.
noteAnnotationAny comments related to the goal.
outcomeCodeCodeableConceptIdentifies the change (or lack of change) at the point when the status of the goal is assessed.
outcomeReferenceReferenceDetails of what's changed (or not changed).

Extensions

NameURL
DISCUSSIONNOTESLASTMODIFIEDBYhttp://xcaliber-fhir/structureDefinition/discussion-notes-last-modified-by
DISCUSSIONNOTESLASTMODIFIEDDATETIMEhttp://xcaliber-fhir/structureDefinition/discussion-notes-last-modified-datetime
FREETEXTGOALLASTMODIFIEDBYhttp://xcaliber-fhir/structureDefinition/free-text-goal-last-modified-by
FREETEXTGOALLASTMODIFIEDDATETIMEhttp://xcaliber-fhir/structureDefinition/free-text-goal-last-modified-datetime
PATIENTINSTRUCTIONSLASTMODIFIEDBYhttp://xcaliber-fhir/structureDefinition/patient-instructions-last-modified-by
PATIENTINSTRUCTIONSLASTMODIFIEDDATETIMEhttp://xcaliber-fhir/structureDefinition/patient-instructions-last-modified-datetime
DISCUSSIONNOTEShttp://xcaliber-fhir/structureDefinition/discussion-notes
FREETEXTGOALhttp://xcaliber-fhir/structureDefinition/free-text-goal
PATIENTINSTRUCTIONShttp://xcaliber-fhir/structureDefinition/patient-instructions
VERSIONTOKENSDISCUSSIONNOTEShttp://xcaliber-fhir/structureDefinition/version-tokens-discussion-notes
VERSIONTOKENSPATIENTINSTRUCTIONShttp://xcaliber-fhir/structureDefinition/version-tokens-patient-instructions
VERSIONTOKENSFREETEXTGOALhttp://xcaliber-fhir/structureDefinition/version-tokens-free-text-goal
ISPRIMARYGOALhttp://xcaliber-fhir/structureDefinition/is-primary-goal
NAMEhttp://xcaliber-fhir/structureDefinition/name
COMPOUNDVALUEShttp://xcaliber-fhir/structureDefinition/compound-values

Operations & APIs

Goal-GET

Goal-POST

Goal ID-GET

Goal ID-PUT

Goal ID-DELETE