Immunization — Vaccination administrée
L'enregistrement d'une dose vaccinale : produit, lot, voie, site, série vaccinale. Ressource clef pour les carnets et passeports vaccinaux.
Objet de la ressource
Immunization documente l'administration effective d'une dose
vaccinale à un patient. À ne pas confondre avec ImmunizationRecommendation
(recommandation par calendrier vaccinal) ni avec MedicationRequest (prescription).
Immunization est un événement passé : la dose a été injectée, ou refusée
(status=not-done), à un moment et un lieu précis.
Cas d'usage typiques : carnet de vaccination électronique, registre national de vaccination (REIVAC en France, IIS aux États-Unis), passeport vaccinal numérique (DCC / EU Digital Covid Certificate, SMART Health Cards), reporting épidémiologique et pharmacovigilance.
Champs clés
| Champ | Type | Cardinalité | Rôle |
|---|---|---|---|
identifier | Identifier[] | 0..* | Identifiant métier local. |
status | code | 1..1 | completed, entered-in-error, not-done. |
statusReason | CodeableConcept | 0..1 | Raison de not-done (contre-indication, refus du patient…). |
vaccineCode | CodeableConcept | 1..1 | Code de la vaccine. CVX (États-Unis), SNOMED CT, ATC, ou code national. |
administeredProduct | CodeableReference | 0..1 | Produit pharmaceutique précis administré (référence à Medication). |
manufacturer | CodeableReference | 0..1 | Fabricant. |
lotNumber | string | 0..1 | Numéro de lot (crucial pour la traçabilité pharmacovigilance). |
expirationDate | date | 0..1 | Date de péremption du lot administré. |
patient | Reference(Patient) | 1..1 | Sujet vacciné (obligatoire). |
encounter | Reference(Encounter) | 0..1 | Visite associée. |
occurrence[x] | dateTime | string | 1..1 | Date d'administration (datetime ou texte si imprécis). |
primarySource | boolean | 0..1 | true si la donnée vient de celui qui a vacciné ; false si recopiée d'un autre dossier. |
location | Reference(Location) | 0..1 | Lieu d'administration (cabinet, pharmacie, école). |
site | CodeableConcept | 0..1 | Site anatomique (LA / RA / LT / RT = bras / cuisse droite/gauche). |
route | CodeableConcept | 0..1 | Voie (IM, SC, intra-dermique, oral). |
doseQuantity | SimpleQuantity | 0..1 | Volume / dose administrée. |
performer | BackboneElement[] | 0..* | Qui a administré (rôle + acteur). |
reaction | BackboneElement[] | 0..* | Réactions immédiates (Observation référencée). |
protocolApplied | BackboneElement[] | 0..* | Série vaccinale, maladie cible, numéro de dose dans la série. |
Codifications vaccin
| Code system | Couverture | Exemple |
|---|---|---|
CVX (http://hl7.org/fhir/sid/cvx) | États-Unis (CDC) | 208 = COVID-19 Pfizer-BioNTech mRNA 30 mcg. |
| SNOMED CT | International | 1119349007 = SARS-CoV-2 mRNA vaccine. |
| ATC | Europe (WHO) | J07BX03 = COVID-19 vaccines. |
| NDC | États-Unis (produit fini) | 59267-1000-3 = code produit Pfizer. |
| CIP | France (produit fini) | Code CIP13 français. |
| EU MAH / vaccine | UE (DCC) | Codes EU/1/20/1528 pour le contexte passeport vaccinal. |
Exemple JSON
Rappel COVID-19 (3e dose) Pfizer-BioNTech administré le 14 mai 2026 à
Patient « example », bras gauche, IM, dose 0,3 mL, lot
EM0477 :
{
"resourceType": "Immunization",
"id": "covid-booster",
"status": "completed",
"vaccineCode": {
"coding": [{
"system": "http://hl7.org/fhir/sid/cvx",
"code": "208",
"display": "COVID-19, mRNA, LNP-S, PF, 30 mcg/0.3 mL dose"
}, {
"system": "http://snomed.info/sct",
"code": "1119349007",
"display": "Severe acute respiratory syndrome coronavirus 2 mRNA vaccine"
}]
},
"administeredProduct": {
"concept": {
"coding": [{
"system": "http://hl7.org/fhir/sid/ndc",
"code": "59267-1000-3",
"display": "Pfizer-BioNTech COVID-19 Vaccine"
}]
}
},
"manufacturer": {
"reference": { "reference": "Organization/pfizer" }
},
"lotNumber": "EM0477",
"expirationDate": "2026-11-30",
"patient": { "reference": "Patient/example" },
"encounter": { "reference": "Encounter/vaccination-visit" },
"occurrenceDateTime": "2026-05-14T14:30:00+01:00",
"primarySource": true,
"location": { "reference": "Location/pharmacy-001" },
"site": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v3-ActSite",
"code": "LA",
"display": "Left arm"
}]
},
"route": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration",
"code": "IM",
"display": "Intramuscular"
}]
},
"doseQuantity": {
"value": 0.3,
"unit": "mL",
"system": "http://unitsofmeasure.org",
"code": "mL"
},
"performer": [{
"function": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v2-0443",
"code": "AP",
"display": "Administering Provider"
}]
},
"actor": { "reference": "Practitioner/nurse-001" }
}],
"protocolApplied": [{
"series": "COVID-19 booster",
"targetDisease": [{
"coding": [{
"system": "http://snomed.info/sct",
"code": "840539006",
"display": "Disease caused by Severe acute respiratory syndrome coronavirus 2"
}]
}],
"doseNumberPositiveInt": 3
}]
} status=completedetprimarySource=true: la donnée est saisie par celui qui a vacciné, source de vérité.vaccineCodedouble-codé CVX (USA) + SNOMED CT (international) pour interop maximum.administeredProductNDC précise la marque exacte.lotNumber EM0477+expirationDatepour pharmacovigilance (en cas de rappel de lot par Pfizer).protocolApplied.doseNumberPositiveInt=3indique qu'il s'agit de la 3e dose de la série.
API REST
GET /Immunization?patient=Patient/example— historique vaccinal complet.GET /Immunization?patient=Patient/example&status=completed&_sort=-date— dernières doses administrées triées par date.GET /Immunization?vaccine-code=208&date=ge2026-01-01— toutes les doses COVID Pfizer depuis le 1er janvier 2026 (registre régional).POST /Immunization— créer après vaccination.GET /Immunization?lot-number=EM0477— recherche par lot (pharmacovigilance).GET /Patient/example/$everything?_type=Immunization,AllergyIntolerance— composite pour visite de vaccination.
Profils nationaux
| Profil | Régulateur | Particularité |
|---|---|---|
| US Core Immunization | HL7 US Realm — ONC EHR | Doit porter vaccineCode CVX, patient, status, occurrence[x], primarySource. |
| IPS Immunization | HL7 + CEN/TC 251 | Pour résumé patient international. |
| FR Core Immunization | ANS | Pour Mon Espace Santé. vaccineCode en SNOMED CT FR. |
| EU Digital Covid Certificate (DCC) | Commission européenne | Profile-light pour passeport vaccinal numérique signé. |
| SMART Health Cards | VCI (États-Unis) | FHIR Bundle signé pour preuve vaccinale. |
| AU Core Immunization | HL7 Australia | Pour AIR (Australian Immunisation Register). |
Pièges courants
- Confusion CVX / NDC — CVX code la vaccine (l'antigène et son contexte général), NDC code le produit pharmaceutique précis (marque + dosage + conditionnement). Toujours porter les deux pour la traçabilité pleine.
- Oubli du
lotNumber— sans numéro de lot, impossible de répondre à un signal de pharmacovigilance ou un rappel de lot. primarySourcemal renseigné — si la dose a été reportée d'un carnet papier, mettrefalse. Sinon, les analyses de qualité de donnée du registre national la classent comme source primaire à tort.protocolAppliedmanquant — pour les vaccins à doses multiples (COVID, HPV, hépatite B), oublierdoseNumberPositiveIntrend impossible le calcul du schéma complet.- Refus codé comme absence — un refus de vaccination doit être codé avec
status=not-done+statusReason, pas par l'absence de ressource Immunization. Sinon, on ne distingue pas « jamais proposé » de « refusé explicitement ». - occurrence en texte libre — éviter
occurrenceStringsauf en cas de date totalement inconnue (rapatriement de carnet papier ancien).
Ressources liées
- ImmunizationRecommendation — recommandations selon calendrier vaccinal.
- ImmunizationEvaluation — évaluation d'une dose par rapport au schéma vaccinal.
- Medication — produit pharmaceutique référencé.
- AllergyIntolerance — contre-indication à vérifier avant.
- Observation — réactions post-vaccinales documentées.
- Patient — sujet vacciné.