ediverse Explorer la plateforme

À la une PEPPOL BIS Billing 3.0 L’obligation européenne d’e-invoicing arrive : France sept 2026, Belgique janv 2026, Allemagne 2025.

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

ChampTypeCardinalitéRôle
urluri0..1URL canonique (= system dans Coding).
versionstring0..1Version du CodeSystem.
namestring0..1Nom machine.
statuscode1..1État de publication.
caseSensitiveboolean0..1Sensibilité à la casse des codes.
contentcode1..1Complétude (voir ci-dessus).
countinteger0..1Nombre total de concepts.
hierarchyMeaningcode0..1grouped-by, is-a, part-of, classified-with.
valueSetcanonical0..1Le ValueSet correspondant à tous les codes du CS.
propertyBackboneElement[]0..*Définition des propriétés des concepts.
conceptBackboneElement[]0..*Concepts du CodeSystem.
concept.codecode1..1Code du concept.
concept.displaystring0..1Libellé préféré.
concept.definitionstring0..1Définition narrative.
concept.designationBackboneElement[]0..*Synonymes et traductions.
concept.propertyBackboneElement[]0..*Valeurs des propriétés.
concept.conceptBackboneElement[]0..*Concepts enfants (hiérarchie).

Systèmes courants

SystèmeURL canoniqueUsage
SNOMED CThttp://snomed.info/sctDiagnostics, procédures, anatomie.
LOINChttp://loinc.orgExamens biologiques, sections de documents.
RxNormhttp://www.nlm.nih.gov/research/umls/rxnormMédicaments US.
ATChttp://www.whocc.no/atcClassification médicaments WHO.
ICD-10http://hl7.org/fhir/sid/icd-10Diagnostics.
ICD-10-CMhttp://hl7.org/fhir/sid/icd-10-cmDiagnostics US.
UCUMhttp://unitsofmeasure.orgUnités de mesure.
HL7 v2 tableshttp://terminology.hl7.org/CodeSystem/v2-XXXXTables HL7 v2 réutilisées.
HL7 v3 ActCodehttp://terminology.hl7.org/CodeSystem/v3-ActCodeCodes v3.

Exemple JSON

Le CodeSystem canonique administrative-gender :

json codesystem-administrative-gender.json
{
  "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) et id — c'est l'url qui sert d'identifiant dans Coding.system.
  • Modifier un CodeSystem sans incrémenter version — viole la promesse d'expansion reproductible.
  • Hiérarchie déclarée is-a mais 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é : utiliser content=not-present et 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.