ConceptMap — Mapping entre terminologies
Le pont entre deux univers de codes. ICD-10 vers SNOMED CT, LOINC vers CCAM, RxNorm vers ATC, NDC vers EAN : ConceptMap est la table de translation.
Objet de la ressource
ConceptMap est la table de mapping entre deux référentiels de codes : deux CodeSystem, deux ValueSet, ou des combinaisons. Elle est utilisée pour traduire un code d'un système A vers son équivalent (ou son équivalent approché) dans un système B.
Les serveurs terminologiques (Snowstorm, HAPI Terminology, Ontoserver, Fhir-Term) exposent
typiquement l'opération $translate qui consomme un ConceptMap.
Champs clés
| Champ | Type | Cardinalité | Rôle |
|---|---|---|---|
url | uri | 0..1 | URL canonique. |
identifier | Identifier[] | 0..* | Identifiants métier. |
version | string | 0..1 | Version. |
name | string | 0..1 | Nom technique. |
title | string | 0..1 | Titre humain. |
status | code | 1..1 | draft | active | retired | unknown. |
sourceScopeUri | sourceScopeCanonical | uri | canonical | 0..1 | Source du mapping (ValueSet, CodeSystem). |
targetScopeUri | targetScopeCanonical | uri | canonical | 0..1 | Cible du mapping. |
group | BackboneElement[] | 0..* | Groupes de mappings (par paire source/target). |
group.element | BackboneElement[] | 0..* | Source d'un mapping (code + target). |
group.element.target | BackboneElement[] | 0..* | Cible avec relationship (equivalent | source-is-narrower-than-target | source-is-broader-than-target | related-to | not-related-to). |
group.unmapped | BackboneElement | 0..1 | Stratégie pour les codes non mappés (fixed, other-map). |
property | BackboneElement[] | 0..* | Propriétés ad-hoc. |
Exemple JSON
{
"resourceType": "ConceptMap",
"id": "icd10-to-snomedct",
"url": "http://example.org/ConceptMap/icd10-to-snomedct",
"version": "5.0.0",
"name": "Icd10ToSnomedCT",
"title": "ICD-10 to SNOMED CT mapping",
"status": "active",
"experimental": false,
"date": "2026-05-15",
"publisher": "HL7 International (Terminology Authority)",
"sourceScopeUri": "http://hl7.org/fhir/ValueSet/icd-10",
"targetScopeUri": "http://hl7.org/fhir/ValueSet/snomedct-all",
"group": [{
"source": "http://hl7.org/fhir/sid/icd-10",
"target": "http://snomed.info/sct",
"element": [{
"code": "I48.0",
"display": "Paroxysmal atrial fibrillation",
"target": [{
"code": "440059007",
"display": "Paroxysmal atrial fibrillation",
"relationship": "equivalent"
}]
}]
}]
} Opération $translate
GET /ConceptMap/$translate?url=…&system=…&code=…- Retourne un
Parametersavec la liste des matches et leurrelationship. - Permet aussi de qualifier le contexte :
targetSystem,reverse.
Pièges courants
- Relation absente — par défaut, beaucoup d'outils interprètent comme equivalent, ce qui est faux.
- Mapping unidirectionnel — un mapping ICD-10 → SNOMED CT n'est PAS l'inverse de SNOMED CT → ICD-10.
- Unmapped absent — comment se comporter face à un code source inconnu ?