---
{
  "title": "Extension des ressources FHIR",
  "description": "La spécification FHIR comprend de nombreuses ressources qui décrivent diverses données médicales. Parfois, cependant, les ressources de base sont insuffisantes pour décrire les données, et dans ces cas, FHIR fournit les mécanismes suivants pour étendre les ressources de base.",
  "date": "2025-04-11",
  "author": "Ivan Bagrov",
  "reading-time": "4 min",
  "tags": [
    "System Design",
    "FHIR Standard"
  ]
}
---
## Que sont les extensions FHIR?

La spécification FHIR comprend de nombreuses ressources qui décrivent diverses données médicales. Parfois, cependant, les ressources de base sont insuffisantes pour décrire les données, et dans ces cas, FHIR fournit les mécanismes suivants pour étendre les ressources de base.

Une extension FHIR est un mécanisme qui permet d'ajouter des éléments supplémentaires aux **ressources FHIR** au-delà de la spécification de base. Cela est nécessaire pour répondre aux exigences spécifiques de diverses implémentations tout en préservant la simplicité et l'universalité du modèle FHIR de base.

FHIR fournit son propre ensemble d'[extensions](/blog/fhir-profiling-extensions). Par exemple, pour indiquer le lieu de naissance d'un patient, l'extension suivante est proposée :


```javascript
resourceType: Patient
extension:
  - url: http://hl7.org/fhir/StructureDefinition/patient-birthPlace
    valueAddress: 
      city: Springfield
      district: Sangamon 
      state: Illinois
```


FHIR fournit des extensions complètes qui permettent de décrire des objets plus complexes. Par exemple :


```javascript
resourceType: Patient
extension:
  - url: http://hl7.org/fhir/StructureDefinition/geolocation
    extension:
      - url: latitude
        valueDecimal: 39.7817
      - url: longitude
        valueDecimal: -89.6501
```


Les extensions peuvent être spécifiées à la racine d'une ressource, ainsi que sur des types FHIR complexes (HumanName, Address, etc.) et primitifs (string, decimal, code, etc.).

Un exemple illustrant comment spécifier une extension sur un type complexe :


```javascript
resourceType: Patient
name:
  - use: official
    family: Doe
    given:
      - John
    extension:
      - url: http://hl7.org/fhir/StructureDefinition/humanname-assembly-order
    	 valueCode: F
```


Un exemple illustrant comment spécifier une extension sur un type primitif :


```javascript
resourceType: Patient
birthDate: '1985-06-15'
_birthDate:
  extension:
    - url: 'http://hl7.org/fhir/StructureDefinition/patient-birthTime'
      valueDateTime: '1985-06-15T08:30:00-04:00'
```


Si un champ contenant une valeur de type primitif est un tableau et qu'il est nécessaire de spécifier une extension sur un élément particulier de ce tableau :


```javascript
resourceType: Patient
name:
  - use: official
    family: Doe
    given:
      - John
      - Michael
    _given:
      extension:
        - null
        - url: http://hl7.org/fhir/StructureDefinition/humanname-assembly-order
    	    valueCode: F
```


Testez-le sur votre [serveur FHIR local](https://www.health-samurai.io/fhir-server)

Voir aussi : [Extensions FHIR pour la gestion des secrets](/blog/fhir-extensions-as-a-bridge-to-external-secret-management).