CodeSystem — Le référentiel de codes FHIR
Toute valeur codée FHIR — un sexe, un diagnostic, un médicament — vient d'un CodeSystem. SNOMED CT, LOINC, RxNorm, ATC, ICD-10, codes locaux : tous sont déclarés via cette ressource.
Objet de la ressource
CodeSystem déclare un système de codes : son URL canonique (qui sert d'identifiant universel), sa version, sa sensibilité à la casse, l'éventuelle hiérarchie de concepts, les propriétés qui qualifient chaque code, et la liste explicite ou implicite des concepts.
Trois modes de complétude (content) :
not-present— seule la métadonnée est publiée, les concepts sont externes (typique pour SNOMED).example— un échantillon non exhaustif.fragment— un sous-ensemble explicite (cas des extensions partielles).complete— tous les concepts sont listés (cas des CodeSystem FHIR core).supplement— supplément d'un CodeSystem existant.
Champs clés
| Champ | Type | Cardinalité | Rôle |
|---|---|---|---|
url | uri | 0..1 | URL canonique (= system dans Coding). |
version | string | 0..1 | Version du CodeSystem. |
name | string | 0..1 | Nom machine. |
status | code | 1..1 | État de publication. |
caseSensitive | boolean | 0..1 | Sensibilité à la casse des codes. |
content | code | 1..1 | Complétude (voir ci-dessus). |
count | integer | 0..1 | Nombre total de concepts. |
hierarchyMeaning | code | 0..1 | grouped-by, is-a, part-of, classified-with. |
valueSet | canonical | 0..1 | Le ValueSet correspondant à tous les codes du CS. |
property | BackboneElement[] | 0..* | Définition des propriétés des concepts. |
concept | BackboneElement[] | 0..* | Concepts du CodeSystem. |
concept.code | code | 1..1 | Code du concept. |
concept.display | string | 0..1 | Libellé préféré. |
concept.definition | string | 0..1 | Définition narrative. |
concept.designation | BackboneElement[] | 0..* | Synonymes et traductions. |
concept.property | BackboneElement[] | 0..* | Valeurs des propriétés. |
concept.concept | BackboneElement[] | 0..* | Concepts enfants (hiérarchie). |
Systèmes courants
| Système | URL canonique | Usage |
|---|---|---|
| SNOMED CT | http://snomed.info/sct | Diagnostics, procédures, anatomie. |
| LOINC | http://loinc.org | Examens biologiques, sections de documents. |
| RxNorm | http://www.nlm.nih.gov/research/umls/rxnorm | Médicaments US. |
| ATC | http://www.whocc.no/atc | Classification médicaments WHO. |
| ICD-10 | http://hl7.org/fhir/sid/icd-10 | Diagnostics. |
| ICD-10-CM | http://hl7.org/fhir/sid/icd-10-cm | Diagnostics US. |
| UCUM | http://unitsofmeasure.org | Unités de mesure. |
| HL7 v2 tables | http://terminology.hl7.org/CodeSystem/v2-XXXX | Tables HL7 v2 réutilisées. |
| HL7 v3 ActCode | http://terminology.hl7.org/CodeSystem/v3-ActCode | Codes v3. |
Exemple JSON
Le CodeSystem canonique administrative-gender :
{
"resourceType": "CodeSystem",
"id": "administrative-gender",
"url": "http://hl7.org/fhir/administrative-gender",
"version": "5.0.0",
"name": "AdministrativeGender",
"title": "AdministrativeGender",
"status": "active",
"experimental": false,
"date": "2026-05-14",
"publisher": "HL7 International (FHIR Project)",
"description": "The gender of a person used for administrative purposes.",
"caseSensitive": true,
"valueSet": "http://hl7.org/fhir/ValueSet/administrative-gender",
"content": "complete",
"count": 4,
"concept": [
{ "code": "male", "display": "Male", "definition": "Male." },
{ "code": "female", "display": "Female", "definition": "Female." },
{ "code": "other", "display": "Other", "definition": "Other." },
{ "code": "unknown", "display": "Unknown", "definition": "Unknown." }
]
} Pièges courants
- Confondre
url(system) etid— c'est l'urlqui sert d'identifiant dansCoding.system. - Modifier un CodeSystem sans incrémenter
version— viole la promesse d'expansion reproductible. - Hiérarchie déclarée
is-amais incohérente — un concept enfant doit pouvoir hériter logiquement du parent. - Codes case-insensitive en pratique mais
caseSensitive=true— viole la déclaration et casse les comparaisons côté serveur. - SNOMED CT distribué dans
concept[]— SNOMED est très grand et licencié : utilisercontent=not-presentet un serveur de terminologie externe.
Ressources liées
- ValueSet — sélectionne un sous-ensemble du CodeSystem.
- ConceptMap — mapping inter-systèmes.
- NamingSystem — identifiants alternatifs (OID, URI).
- TerminologyCapabilities — capacités terminologiques du serveur.