Skip to main content

clinik.immunizations

Immunizations (FHIR Immunization) record vaccine administration events including vaccine details, dose information, and reactions.

create

const { data, meta } = await clinik.immunizations.create(request): Promise<ApiResponse<Immunization>>
FieldTypeRequiredDescription
statusstringYescompleted, not-done
vaccineCodestring | objectYesVaccine code (string or { system?, code, display? })
patientIdstringYesPatient ID
encounterIdstringNoEncounter context
occurrenceDateTimestringNoWhen administered (defaults to now)
recordedstringNoWhen recorded
primarySourcebooleanNoWhether from primary source
manufacturerstringNoVaccine manufacturer
lotNumberstringNoLot number
expirationDatestringNoExpiration date
sitestringNoBody site (e.g. left arm)
routestringNoRoute (e.g. intramuscular)
doseQuantity{ value, unit? }NoDose quantity
performerArrayNoPerformers
notestringNoAdditional notes
reasonCodestring[]NoReason codes
statusReasonstringNoReason for not-done status
isSubpotentbooleanNoWhether dose is subpotent
reactionArrayNoObserved reactions
protocolAppliedArrayNoProtocol applied records

Example

const { data } = await clinik.immunizations.create({
  status: 'completed',
  vaccineCode: { system: 'http://hl7.org/fhir/sid/cvx', code: '208', display: 'COVID-19 mRNA' },
  patientId: 'pt_abc123',
  occurrenceDateTime: '2024-03-15T10:30:00Z',
  manufacturer: 'Pfizer-BioNTech',
  lotNumber: 'EW0182',
  expirationDate: '2024-09-30',
  site: 'Left deltoid',
  route: 'Intramuscular',
  doseQuantity: { value: 0.3, unit: 'mL' },
  performer: [{ function: 'Administering', actorId: 'prac_nurse456' }],
  protocolApplied: [{
    series: 'Primary Series',
    doseNumber: 2,
    seriesDoses: 2,
    targetDisease: ['COVID-19'],
  }],
  note: 'Patient tolerated well, observed for 15 minutes post-administration',
});
Same pattern as other resources. Search supports patientId, status, vaccineCode, dateFrom, dateTo filters.