ObservationDefinition — Définition catalogue d'une observation
Le pendant logique de SpecimenDefinition côté analyte. Décrit le catalogue d'une mesure de laboratoire ou clinique : code LOINC, unité de résultat, intervalles de référence, méthode d'analyse, plateforme analytique requise.
Objet de la ressource
Pour qu'un test de laboratoire soit reproductible, son catalogue doit porter l'ensemble des règles métier : code LOINC (ou local), unité de résultat (UCUM), intervalles de référence (qui dépendent de l'âge, du sexe, du contexte clinique), méthode analytique (Hexokinase pour la glycémie, GOD-PAP, ELISA, LC-MS…), plateforme analytique. ObservationDefinition est le porteur FHIR de cette spécification.
Là où Observation est une mesure réelle datée sur un patient,
ObservationDefinition est le catalogue catalogue. ServiceRequest référence
ObservationDefinition pour commander un test, et Observation cite
ObservationDefinition pour signaler quelle définition a été appliquée.
Champs clés
| Champ | Type | Cardinalité | Rôle |
|---|---|---|---|
url | uri | 0..1 | URL canonique. |
identifier | Identifier[] | 0..* | Identifiant métier (numéro catalogue). |
version | string | 0..1 | Version sémantique. |
status | code | 1..1 | draft, active, retired, unknown. |
permittedDataType | code[] | 0..* | Types permis (Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, Period, dateTime). |
code | CodeableConcept | 1..1 | Code LOINC ou local. |
category | CodeableConcept[] | 0..* | Catégorie (laboratory, vital-signs, imaging…). |
preferredReportName | string | 0..1 | Nom préféré dans le compte-rendu. |
specimen | Reference(SpecimenDefinition)[] | 0..* | Prélèvement requis. |
device | Reference(DeviceDefinition)[] | 0..* | Plateforme analytique. |
method | CodeableConcept | 0..1 | Méthode d'analyse. |
quantitativeDetails | BackboneElement | 0..1 | Détails quantitatifs (unité, précision décimale). |
qualifiedValue | BackboneElement[] | 0..* | Intervalles de référence et seuils. |
component | BackboneElement[] | 0..* | Sous-composants (pour les profils, NFS, ionogramme). |
Exemple JSON
Glycémie à jeun, LOINC 1558-6, méthode Hexokinase, intervalle normal adulte 70-99 mg/dL, seuil diabète ≥ 126 mg/dL :
{
"resourceType": "ObservationDefinition",
"id": "glucose-fasting",
"url": "https://example.lab.org/ObservationDefinition/glucose-fasting",
"identifier": [{ "system": "http://lab.example.org/catalog", "value": "GLU-F-001" }],
"version": "2.0",
"title": "Plasma fasting glucose",
"status": "active",
"experimental": false,
"publisher": "Acme Reference Lab",
"permittedDataType": ["Quantity"],
"code": {
"coding": [{
"system": "http://loinc.org",
"code": "1558-6",
"display": "Fasting glucose [Mass/volume] in Serum or Plasma"
}]
},
"category": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/observation-category",
"code": "laboratory"
}]
}],
"preferredReportName": "Glycémie à jeun",
"specimen": [{ "reference": "SpecimenDefinition/serum-tube-gold" }],
"device": [{ "reference": "DeviceDefinition/chemistry-analyzer-x" }],
"method": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "359789004",
"display": "Hexokinase method"
}]
},
"quantitativeDetails": {
"unit": {
"coding": [{
"system": "http://unitsofmeasure.org",
"code": "mg/dL"
}]
},
"decimalPrecision": 0
},
"qualifiedValue": [{
"context": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/referencerange-meaning",
"code": "normal"
}]
},
"appliesTo": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/age-range",
"code": "adult"
}]
}],
"range": {
"low": { "value": 70, "unit": "mg/dL" },
"high": { "value": 99, "unit": "mg/dL" }
},
"condition": "Adult, fasting"
}, {
"context": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/referencerange-meaning",
"code": "high"
}]
},
"range": {
"low": { "value": 126, "unit": "mg/dL" }
},
"condition": "Adult, fasting — diabetes diagnostic threshold"
}]
} Usages typiques
- LOINC ordering catalog : catalogue de prescription électronique de laboratoire.
- Pré-analytique structuré : lié à SpecimenDefinition pour décrire le tube + l'analyte.
- Interpretation automatique : l'EHR applique automatiquement le statut H/L/N à partir des intervalles.
- Études cliniques : protocole qui exige une méthode spécifique (Hexokinase vs GOD-PAP donnent des résultats différents).
- Réconciliation multi-labos : aligner les unités et méthodes entre laboratoires d'un même réseau.
Pièges courants
- Unité absente ou non UCUM : « mg% » n'est pas UCUM. Toujours utiliser
mg/dLoummol/L. - Range sans contexte : l'intervalle adulte ne s'applique pas aux enfants. Toujours qualifier
appliesTo. - Méthode oubliée : pour les analytes à fortes variabilités inter-méthodes (TSH, troponine),
methodest critique. - Confusion ObservationDefinition / Observation : ObservationDefinition est un modèle réutilisable, Observation est une mesure datée.
- Decimal precision absente : une glycémie en mg/dL n'a pas de sens à 4 décimales. Préciser
decimalPrecision.
Ressources liées
- Observation — mesure réelle.
- SpecimenDefinition — prélèvement requis.
- ServiceRequest — demande d'examen.
- ActivityDefinition, PlanDefinition — protocole multi-tests.
- DiagnosticReport — compte-rendu rassemblant les Observations.
Voir aussi : Observation — la mesure réelle et SpecimenDefinition — le prélèvement requis.