---
{
  "title": "Terminology FHIR en deux phases : création et utilisation",
  "description": "Pourquoi la Terminology FHIR se divise en phases de création et d'exécution — systèmes de codes, ensembles de valeurs, dénormalisation d'expansion et rôle d'un serveur FHIR.",
  "date": "2019-04-30",
  "author": "Nikolai Ryzhikov",
  "reading-time": "2 min read",
  "tags": [
    "Terminology",
    "FHIR Standard"
  ],
  "seo-tags": [
    "API",
    "FHIR",
    "Terminology"
  ]
}
---
La [Terminology](/blog/introducing-hybrid-terminology-engine) en santé numérique est un aspect très important et complexe. Une grande partie de l'interopérabilité dépend de la précision avec laquelle vous en**codez** vos données.

La spécification du service de [Terminology](/blog/automate-terminology-translation-with-aidbox-tx-engine) FHIR fait un excellent travail pour offrir aux développeurs une API simple et directe pour le [service de terminologie](https://www.hl7.org/fhir/terminology-service.html).

La gestion de la Terminology est un domaine complexe — vous devez maintenir à jour les systèmes de codes externes, comprendre leur structure interne, et fournir des outils de création, de gestion des versions et de publication.

On peut imaginer une architecture avec un [serveur FHIR](https://www.health-samurai.io/fhir-server) et un service de Terminology séparés. Mais un « bon » [serveur FHIR](https://www.health-samurai.io/fhir-server) dépend fortement de la Terminology — pour la validation, les recherches et les requêtes de subsomption. Implémenter la spécification complète du service de terminologie dans un [serveur FHIR](https://www.health-samurai.io/fhir-server) est une tâche considérable. Utiliser un service de terminologie externe rend votre [serveur FHIR](https://www.health-samurai.io/fhir-server) non autonome. Nous faisons donc face à un compromis :(

> Commencez avec le [serveur FHIR](https://www.health-samurai.io/fhir-server) Aidbox pour le stockage de données, les intégrations, l'analytique en santé et plus encore, ou [faites appel à notre équipe](https://www.health-samurai.io/services) pour soutenir vos besoins en développement logiciel.

### Création vs utilisation

En regardant de plus près la [Terminology FHIR](/articles/state-of-fhir-terminology-2024), vous remarquerez peut-être qu'elle peut être décomposée en deux parties — **création/gestion** et **utilisation**. Pour les **cas de création**, vous avez besoin de CodeSystems à jour, d'outils de conception de ValueSets avec un moteur d'expansion, de gestion des versions, etc. Pour l'**utilisation**, vous travaillerez principalement avec des ValueSets immuables et devrez fournir un filtrage et une recherche efficaces pour la validation.

Pour réduire le couplage entre la Terminology et le [serveur FHIR](https://www.health-samurai.io/fhir-server), nous pouvons séparer les responsabilités de la façon suivante :
- Concevoir les ValueSets dans le service de Terminology et les publier sous forme expansée via une API ou un format d'exportation en bloc
- Charger et utiliser les ValueSets sous une forme optimisée dans les [serveurs FHIR](https://www.health-samurai.io/fhir-server)

Voici les détails techniques de la façon dont nous pouvons procéder.

### La ressource Concept

Dans [Aidbox](https://www.health-samurai.io/fhir-server), nous divisons le CodeSystem en informations d'en-tête et en un ensemble de ressources [Concept](https://app.gitbook.com/@aidbox/s/project/terminology/concept) (pas encore FHIR :) qui ont une structure similaire à l'élément [CodeSystem.concept](https://www.hl7.org/fhir/codesystem-definitions.html#CodeSystem.concept) et au type de données Coding. Cela nous permet de traduire une partie de l'API du service de Terminology en une API FHIR unifiée de type CRUD/recherche sur les ressources Concept.

Nous convertissons les terminologies populaires en un ensemble de ressources Concept, qui peuvent être distribuées sous forme de fichiers ndjson pour une exportation/importation en bloc efficace. Voici un exemple pour LOINC :

> ---
*-* *code: 10000-8* ** *display: R wave duration in lead AVR* ** *names:   - R wave dur L-AVR   - Cardiac   - "Durat"   - "ECG"   ....* ** *property:* ** *loinc:* ** *relatednames2: Cardiac; Durat; ECG; EKG.MEASUREMENTS; ...* ** *method_typ: EKG* ** *classtype: '2'* ** *system: Heart* ** *time_aspct: Pt* ** *common_order_rank: '0'* ** *property: Time* ** *order_obs: Observation* ** *unitsrequired: Y           ....*

### Dénormalisation de l'expansion

Si nous ajoutons à la ressource Concept plusieurs liens vers des ValueSets, nous pouvons dénormaliser toutes les expansions complexes de ValueSets comme ceci :

> *code: 10000-8* *system:* [*http://loinc.org*](http://loinc.org/)***display: R wave duration in lead AVR* *valueSet: -* *reference: ValueSet/LL1162-8 -* *reference: ValueSet/another-vs*

L'ensemble des Concepts avec les ValueSets dénormalisés peut être exporté en ndjson via une sorte d'API d'exportation en bloc, puis téléversé dans le [serveur FHIR](https://www.health-samurai.io/fhir-server).

### Exécution du [serveur FHIR](https://www.health-samurai.io/fhir-server)

La ressource Concept avec des liens vers les ValueSets peut être utilisée dans le [serveur FHIR](https://www.health-samurai.io/fhir-server) pour implémenter les opérations d'utilisation de base — **$expand** avec filtre, **$validate-code** et **$lookup** — par une API de recherche simple sur les Concepts :

> *GET /ValueSet/v1/$expand?_filter=x* ***=>*** *GET /Concept?vs=v1&display=???/ValueSet/v1/$validate-code?system=???code=???* ***=>*** */Concept?vs=v1&system=???code=???*

### Conclusion

Pour simplifier l'utilisation de la Terminology et découpler les [serveurs FHIR](https://www.health-samurai.io/fhir-server) de la terminologie, nous pouvons introduire un nouveau type de ressource Concept, effectuer toute la création de ValueSets dans le service de terminologie, et exporter/importer en bloc les Concepts dénormalisés (expansés) dans les [serveurs FHIR](https://www.health-samurai.io/fhir-server) avec une implémentation beaucoup plus simple des opérations de base.

Vos commentaires sont les bienvenus !

[![Aidbox FHIR Platform Free Trial](image-1.avif)](https://www.health-samurai.io/aidbox)