Skip to main content

Goals

Goals (FHIR Goal) represent intended objectives for a patient’s care. They support measurable targets, achievement tracking, and lifecycle management — from initial proposal through completion.

Create a Clinical Goal

const { data: goal } = await clinik.goals.create({
  lifecycleStatus: 'active',
  description: 'Reduce HbA1c to below 7%',
  patientId: 'pt_abc123',
  achievementStatus: 'in-progress',
  category: ['treatment'],
  priority: 'high-priority',
  startDate: '2024-01-01',
  target: [
    {
      measure: 'HbA1c',
      detailQuantity: { value: 7, unit: '%' },
      dueDate: '2024-06-30',
    },
  ],
  expressedById: 'prac_dr456',
  addressesIds: ['cond_diabetes789'],
  note: 'Patient motivated, starting metformin and dietary changes',
});

Behavioral Goals

const { data: exerciseGoal } = await clinik.goals.create({
  lifecycleStatus: 'active',
  description: 'Walk 30 minutes daily, 5 days per week',
  patientId: 'pt_abc123',
  category: ['behavioral'],
  priority: 'medium-priority',
  startDate: '2024-02-01',
  target: [
    {
      measure: 'Exercise frequency',
      detailString: '5 days per week, 30 minutes each',
      dueDate: '2024-04-01',
    },
  ],
});

Weight Management Goal

const { data: weightGoal } = await clinik.goals.create({
  lifecycleStatus: 'active',
  description: 'Achieve target weight of 180 lbs',
  patientId: 'pt_abc123',
  category: ['dietary'],
  target: [
    {
      measure: 'Body weight',
      detailQuantity: { value: 180, unit: 'lbs' },
      dueDate: '2024-12-31',
    },
  ],
});

Update Goal Progress

await clinik.goals.update(goal.id, {
  achievementStatus: 'improving',
  note: 'HbA1c dropped from 9.2% to 8.1% after 3 months',
});

// Mark goal as achieved
await clinik.goals.update(goal.id, {
  lifecycleStatus: 'completed',
  achievementStatus: 'achieved',
  statusReason: 'HbA1c measured at 6.8% — target met',
});

Search Goals

// Find all active goals for a patient
const { data } = await clinik.goals.search({
  patientId: 'pt_abc123',
  lifecycleStatus: 'active',
});

// Find goals by achievement status
const { data: achieved } = await clinik.goals.search({
  patientId: 'pt_abc123',
  achievementStatus: 'achieved',
});

// Find goals by category
const { data: dietary } = await clinik.goals.search({
  patientId: 'pt_abc123',
  category: 'dietary',
});

Lifecycle Status Values

StatusDescription
proposedGoal has been suggested
plannedGoal is planned but not yet started
acceptedGoal has been accepted by the patient
activeGoal is being actively pursued
on-holdGoal pursuit is temporarily paused
completedGoal has been completed
cancelledGoal was cancelled before completion
rejectedGoal was rejected by the patient