ediverse Explorer la plateforme

À la une PEPPOL BIS Billing 3.0 L’obligation européenne d’e-invoicing arrive : France sept 2026, Belgique janv 2026, Allemagne 2025.

Library — Encapsule la logique partagée

Une mesure de qualité, un score de risque, un règles cliniques d'aide à la décision : Library contient leur logique CQL ou modèle, prête à être référencée par Measure, PlanDefinition et ActivityDefinition.

Objet de la ressource

Library est l'unité réutilisable de la chaîne FHIR Clinical Reasoning. Elle encapsule :

  • Du code CQL (Clinical Quality Language) — typiquement la logique d'évaluation d'une Measure.
  • Un modèle de données consommé par d'autres ressources (StructureDefinition packagées).
  • Des ensembles de règles pour CDS Hooks.
  • Un template IG de l'IG Publisher (cas plus rare).

Le code source CQL est inclus en base64 dans content[], accompagné de la version compilée ELM (XML ou JSON).

Champs clés

ChampTypeCardinalitéRôle
urluri0..1URL canonique.
versionstring0..1Version.
namestring0..1Nom machine.
statuscode1..1État de publication.
typeCodeableConcept1..1Obligatoire. logic-library | model-definition | asset-collection | module-definition.
subject[x]CodeableConcept | Reference0..1Type de sujet (Patient typiquement).
relatedArtifactRelatedArtifact[]0..*Dépendances (depends-on, documentation, justification…).
parameterParameterDefinition[]0..*Paramètres in/out.
dataRequirementDataRequirement[]0..*Ressources FHIR requises pour l'exécution.
contentAttachment[]0..*Code source & compilé.
content.contentTypecode1..1text/cql, application/elm+xml, application/elm+json.
content.database64Binary0..1Contenu inline.

Exemple JSON

Library de logique CQL pour le suivi du diabète T2, dépendant de FHIRHelpers et SNOMED :

json library-diabetes-management.json
{
  "resourceType": "Library",
  "id": "diabetes-management",
  "url": "http://example.org/Library/diabetes-management",
  "version": "1.0.0",
  "name": "DiabetesManagementLogic",
  "title": "Diabetes Management CQL Library",
  "status": "active",
  "experimental": false,
  "type": {
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/library-type",
      "code": "logic-library"
    }]
  },
  "date": "2026-05-14",
  "publisher": "Example Org",
  "description": "Logique CQL pour le suivi diabète type 2 (HbA1c, score de Framingham, alertes).",
  "subjectCodeableConcept": {
    "coding": [{
      "system": "http://hl7.org/fhir/resource-types",
      "code": "Patient"
    }]
  },
  "relatedArtifact": [{
    "type": "depends-on",
    "resource": "http://hl7.org/fhir/uv/cql/Library/FHIRHelpers|4.0.013"
  }, {
    "type": "depends-on",
    "resource": "http://hl7.org/fhir/uv/cql/CodeSystem/snomed-ct"
  }],
  "parameter": [{
    "name": "Patient",
    "use": "in",
    "min": 1,
    "max": "1",
    "type": "Patient"
  }, {
    "name": "HbA1cAlert",
    "use": "out",
    "min": 0,
    "max": "1",
    "type": "boolean"
  }],
  "dataRequirement": [{
    "type": "Observation",
    "profile": ["http://hl7.org/fhir/StructureDefinition/Observation"],
    "codeFilter": [{
      "path": "code",
      "valueSet": "http://hl7.org/fhir/ValueSet/observation-laboratory"
    }]
  }],
  "content": [{
    "contentType": "text/cql",
    "data": "bGlicmFyeSBEaWFiZXRlc01hbmFnZW1lbnQgdmVyc2lvbiAnMS4wLjAnCnVzaW5nIEZISVIgdmVyc2lvbiAnNS4wLjAnCi8vIFNpbXBsaWZpZWQuLi4="
  }]
}

Pièges courants

  • CQL seul sans ELM compilé — la plupart des moteurs d'exécution attendent ELM. Toujours fournir les deux.
  • dataRequirement manquant — sans le pre-fetch, l'évaluation CQL doit lancer N queries impromptues, dégradant la performance.
  • Version CQL non précisée — CQL 1.5 vs 1.4 vs 2.0 : compatibilité d'évaluation différente.
  • Dépendances cycliques — deux Library qui se dépendent mutuellement via relatedArtifact[type=depends-on] bloquent le résolveur.
  • Library de plus de 100 ko inline — préférer une URL externe et mettre en cache plutôt que de gonfler le payload FHIR.

Ressources liées

  • Measure — référence Library pour l'évaluation de mesure de qualité.
  • PlanDefinition, ActivityDefinition — autres consommateurs de Library.
  • MeasureReport — sortie de l'évaluation d'une Measure.
  • ImplementationGuide — package des Library.