Composition — Document clinique FHIR
L'équivalent FHIR du document clinique CDA : lettre de sortie, IPS (International Patient Summary), compte-rendu opératoire, ordonnance électronique. Composition est la racine logique de tout document FHIR.
Objet de la ressource
Composition représente des informations relatives aux soins, assemblées en un paquet logique unique avec attestation clinique. C'est l'équivalent FHIR du « document » au sens HL7 CDA : un ensemble cohérent et signé de données publié à un instant T, opposable juridiquement.
Une Composition doit toujours être enveloppée dans un Bundle de type
document pour l'échange : c'est le Bundle qui contient
physiquement la Composition (toujours en première position) plus toutes les
ressources référencées par la Composition (Patient, AllergyIntolerance, Condition…).
Cette enveloppe garantit l'atomicité documentaire : tout ce que cite la
Composition est dans le même Bundle.
L'IG International Patient Summary (IPS) publié par HL7 et CEN/TC 251 utilise Composition comme racine. Idem pour les profils nationaux français (CR-Hospi de l'ANS), américains (US Core Discharge Summary), allemand (MIO), britannique (NHS Care Connect).
Champs clés
| Champ | Type | Cardinalité | Rôle |
|---|---|---|---|
url | uri | 0..1 | URL canonique de la Composition (rare en pratique). |
identifier | Identifier[] | 0..* | Identifiants externes du document (numéro de CR, UUID…). |
version | string | 0..1 | Version du document. |
status | code | 1..1 | Obligatoire. État du document. Modifier. |
type | CodeableConcept | 1..1 | Obligatoire. Type de document (code LOINC). |
category | CodeableConcept[] | 0..* | Catégories du document. |
subject | Reference(any)[] | 0..* | Sujet(s) du document — typiquement le Patient. |
encounter | Reference(Encounter) | 0..1 | Encounter dans lequel le document a été produit. |
date | dateTime | 1..1 | Obligatoire. Datetime de publication. |
useContext | UsageContext[] | 0..* | Contexte d'usage (population cible, paramètres). |
author | Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)[] | 1..* | Obligatoire. Auteur(s) du document. |
title | string | 1..1 | Obligatoire. Titre lisible utilisateur. |
attester | BackboneElement[] | 0..* | Attestation(s) clinique(s) — qui valide juridiquement le document. |
custodian | Reference(Organization) | 0..1 | Organisation responsable de la conservation du document. |
relatesTo | BackboneElement[] | 0..* | Liens vers d'autres documents (remplacement, complément, appendice). |
event | BackboneElement[] | 0..* | Événement(s) documentés. |
section | BackboneElement[] | 0..* | Sections du document (allergies, médication, problèmes…), récursives via section.section. |
Statuts du document
Le code status est obligatoire et porte le cycle de vie documentaire
(binding Required) :
| Code | Sens |
|---|---|
registered | Enregistré mais non encore validé. |
partial | Partiellement complet. |
preliminary | Préliminaire — révision possible. |
final | Définitif — validé, opposable. |
amended | Amendé après validation. |
corrected | Corrigé (erreur antérieure). |
appended | Complété par ajout. |
cancelled | Annulé. |
entered-in-error | Saisie erronée. |
deprecated | Obsolète (remplacé). |
unknown | Statut inconnu. |
Exemple JSON
Composition de type IPS (Patient Summary, LOINC 60591-5) pour Peter Chalmers, avec trois sections : allergies, médication active, problèmes actifs. Document final attesté juridiquement par l'auteur.
{
"resourceType": "Composition",
"id": "example",
"identifier": [{
"system": "urn:ietf:rfc:3986",
"value": "urn:uuid:1a2b3c4d-5e6f-7890-abcd-ef1234567890"
}],
"status": "final",
"type": {
"coding": [{
"system": "http://loinc.org",
"code": "60591-5",
"display": "Patient summary Document"
}]
},
"category": [{
"coding": [{
"system": "http://loinc.org",
"code": "11369-6",
"display": "History of Immunization Narrative"
}]
}],
"subject": [{ "reference": "Patient/example", "display": "Peter Chalmers" }],
"encounter": { "reference": "Encounter/example" },
"date": "2026-05-14T15:30:00+02:00",
"author": [
{ "reference": "Practitioner/example", "display": "Dr Adam Careful" }
],
"title": "International Patient Summary — Peter Chalmers",
"attester": [{
"mode": {
"coding": [{
"system": "http://hl7.org/fhir/composition-attestation-mode",
"code": "legal",
"display": "Legal"
}]
},
"time": "2026-05-14T15:30:00+02:00",
"party": { "reference": "Practitioner/example" }
}],
"custodian": { "reference": "Organization/hosp01" },
"section": [{
"title": "Allergies et intolérances",
"code": {
"coding": [{
"system": "http://loinc.org",
"code": "48765-2",
"display": "Allergies and adverse reactions Document"
}]
},
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p>Pénicilline — réaction cutanée modérée, 2019.</p></div>"
},
"entry": [{ "reference": "AllergyIntolerance/example" }]
}, {
"title": "Médication actuelle",
"code": {
"coding": [{
"system": "http://loinc.org",
"code": "10160-0",
"display": "History of Medication use Narrative"
}]
},
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p>Metformine 1000 mg, 2 prises par jour.</p></div>"
},
"entry": [{ "reference": "MedicationStatement/example" }]
}, {
"title": "Problèmes actifs",
"code": {
"coding": [{
"system": "http://loinc.org",
"code": "11450-4",
"display": "Problem list - Reported"
}]
},
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p>Diabète de type 2, diagnostiqué en mai 2026.</p></div>"
},
"entry": [{ "reference": "Condition/example-diabetes" }]
}]
} À noter dans cet exemple :
status=final+attester[mode=legal]= document opposable juridiquement.- Le
typeLOINC 60591-5 désigne précisément un Patient Summary IPS. - Chaque
sectionporte un titre, un code LOINC, untext.div(XHTML lisible humain) et desentry[]qui pointent vers les ressources structurées sous-jacentes. - Le
text.divde chaque section doit refléter fidèlement le contenu desentry: c'est la règle d'attestation par narrative — ce que l'attestant a vu et signé.
Bundle de type document
Pour échanger une Composition, on l'enveloppe dans un Bundle :
{
"resourceType": "Bundle",
"type": "document",
"identifier": { "system": "urn:ietf:rfc:3986", "value": "urn:uuid:..." },
"timestamp": "2026-05-14T15:30:00+02:00",
"entry": [
{ "fullUrl": "...", "resource": { "resourceType": "Composition", ... } } ,
{ "fullUrl": "...", "resource": { "resourceType": "Patient", ... } } ,
{ "fullUrl": "...", "resource": { "resourceType": "AllergyIntolerance", ... } } ,
{ "fullUrl": "...", "resource": { "resourceType": "MedicationStatement", ... } } ,
{ "fullUrl": "...", "resource": { "resourceType": "Condition", ... } }
]
} Trois règles d'or du Bundle document :
- La Composition est obligatoirement la première entry (Bundle.entry[0].resource).
- Toutes les ressources référencées par la Composition (Patient, AllergyIntolerance…) doivent être dans le Bundle, par
fullUrl. - Le Bundle peut être signé (XML-DSig ou JWS) pour garantir l'intégrité documentaire.
Voir aussi la page Bundle.
Pièges courants
status,type,date,author,titlemanquants — tous obligatoires (cardinalité1..*). Sans eux, le document est rejeté.- Composition envoyée hors Bundle — techniquement la ressource existe seule, mais pour l'échange documentaire, l'IG IPS et la plupart des profils exigent l'enveloppe Bundle
document. text.divmanquant ou ne reflétant pas l'entry— la narrative est l'élément attesté. Si elle ne correspond pas aux entries structurées, le document est juridiquement incohérent.- Pas d'
attestersur un documentfinal— pour les usages médico-légaux, au moins une attestationmode=legalouprofessionalest attendue. - Référence à des ressources hors Bundle — toute Reference doit être résoluble dans le Bundle. Une référence externe absolue (ex :
https://server/Patient/123) brise l'atomicité documentaire. - Sections vides — IPS impose que certaines sections (Allergies, Medication, Problems) soient présentes, et qu'à défaut de contenu, elles portent un texte explicite (« Pas d'allergies connues »). Vide silencieux interdit.
- Plusieurs versions sans
relatesTo— une Composition amendée (status=amended) doit pointer vers la version précédente viarelatesTo.targetReference(code=replaces).
Ressources liées
- Bundle — enveloppe documentaire obligatoire pour l'échange (
type=document). - Patient — sujet typique référencé par
subject. - Practitioner, PractitionerRole, Organization — auteurs et custodien.
- AllergyIntolerance, MedicationStatement, Condition, Observation, Procedure, Immunization — ressources typiquement incluses dans les sections IPS.
- DocumentReference — index documentaire, peut référencer une Composition via
content.attachment.url. - Encounter — contexte de production du document.
Voir aussi : l'index FHIR R5.