Skip to main content

Immunization Recommendations

Immunization Recommendations (FHIR ImmunizationRecommendation) provide patient-specific vaccine recommendations. They are typically generated by clinical decision support systems based on a patient’s immunization history and current guidelines.

Create Recommendations for a Child

const { data: recs } = await clinik.immunizationRecommendations.create({
  patientId: 'pt_child456',
  date: '2024-06-15T10:00:00Z',
  authorityId: 'org_cdc',
  recommendation: [
    {
      vaccineCode: ['MMR'],
      targetDisease: 'Measles',
      forecastStatus: 'due',
      series: 'Primary Series',
      doseNumber: 2,
      seriesDoses: 2,
      dateCriterion: [
        { code: 'Earliest Date', value: '2024-07-01' },
        { code: 'Recommended Date', value: '2024-08-15' },
        { code: 'Latest Date', value: '2024-12-31' },
      ],
    },
    {
      vaccineCode: ['DTaP'],
      targetDisease: 'Diphtheria',
      forecastStatus: 'due',
      series: 'Primary Series',
      doseNumber: 5,
      seriesDoses: 5,
      dateCriterion: [
        { code: 'Recommended Date', value: '2024-09-01' },
      ],
    },
    {
      vaccineCode: ['IPV'],
      targetDisease: 'Polio',
      forecastStatus: 'complete',
      description: 'Series complete — no further doses needed',
      doseNumber: 4,
      seriesDoses: 4,
    },
  ],
});

Create Recommendations for an Adult

const { data } = await clinik.immunizationRecommendations.create({
  patientId: 'pt_adult789',
  date: new Date().toISOString(),
  recommendation: [
    {
      vaccineCode: ['Tdap', 'Td'],
      targetDisease: 'Tetanus',
      forecastStatus: 'overdue',
      forecastReason: ['Last dose was more than 10 years ago'],
      description: 'Tetanus booster overdue',
      doseNumber: 1,
      seriesDoses: 1,
    },
    {
      vaccineCode: ['Influenza, seasonal, injectable'],
      targetDisease: 'Influenza',
      forecastStatus: 'due',
      description: 'Annual flu vaccine recommended',
      dateCriterion: [
        { code: 'Recommended Date', value: '2024-10-01' },
      ],
    },
    {
      vaccineCode: ['COVID-19 mRNA'],
      targetDisease: 'COVID-19',
      forecastStatus: 'due',
      description: 'Updated booster recommended',
    },
  ],
});

Contraindicated Vaccine

const { data } = await clinik.immunizationRecommendations.create({
  patientId: 'pt_allergic001',
  date: new Date().toISOString(),
  recommendation: [{
    vaccineCode: ['MMR'],
    targetDisease: 'Measles',
    forecastStatus: 'contraindicated',
    forecastReason: ['Severe allergic reaction to previous dose'],
    description: 'MMR contraindicated due to anaphylaxis history',
  }],
});

Search Recommendations

// All recommendations for a patient
const { data } = await clinik.immunizationRecommendations.search({
  patientId: 'pt_child456',
});

// Filter by target disease
const { data: measles } = await clinik.immunizationRecommendations.search({
  targetDisease: 'Measles',
});

// Filter by vaccine code
const { data: mmr } = await clinik.immunizationRecommendations.search({
  vaccineCode: 'MMR',
});

// Filter by date range
const { data: recent } = await clinik.immunizationRecommendations.search({
  dateFrom: '2024-01-01',
  dateTo: '2024-12-31',
});