En résumé
Un catalogue de données se construit dans l’ordre de ses onglets : la base décrite, les variables et les croisements à compter, le calcul, l’anonymisation, les métadonnées Health-DCAT-AP, puis la publication — une page HTML à télécharger, une archive complète, ou un site déployé depuis git.
Un catalogue se crée depuis la page Catalogue de données de l’entrepôt, avec Nouveau catalogue. Il se règle ensuite onglet par onglet : Aperçu, Configuration, Anonymisation, Health-DCAT-AP et Publier.
1. Choisir la base
Un catalogue décrit une base, choisie à la création puis modifiable dans l’onglet Aperçu.
La base doit avoir un schéma
Sans mapping de schéma, Linkr ne sait pas ce qu’est un patient ni un séjour : il n’y a rien à compter. Voir Schémas.
2. Choisir les variables et les comptages
Dans l’onglet Configuration, le bloc Variables fixe ce selon quoi le catalogue peut être ventilé, et ce que compte chaque cellule. Chaque variable s’active par son interrupteur ; activée, elle a ses propres totaux et déplie ses options.
Les comptages
La ligne Comptages fixe ce que compte chaque cellule. Les Patients sont toujours comptés — des patients distincts : un patient vu sur deux périodes compte une fois dans chacune. On peut y ajouter les Hospitalisations et les Séjours en unité ; avec un concept, une hospitalisation compte quand un enregistrement du concept tombe pendant ce séjour. Les enregistrements — les lignes d’événements — sont comptés dès que la variable concept fait partie d’un croisement.
Chaque comptage ajouté prend du temps et de la mémoire sur un gros entrepôt : ne cochez que ce que les lecteurs du catalogue liront.
Les variables
Période
Le début de l’hospitalisation ou, croisée avec les concepts, la date de l’événement.
Granularité au mois, au trimestre ou à l’année, et Tous les pour des pas plus larges — tous les 5 ans, par exemple.
Tranche d'âge
L’âge à l’hospitalisation ou à l’événement, d’après la date de naissance ou à défaut l’année de naissance.
Des Tranches prédéfinies — 5, 10 ou 20 ans, pédiatrique, clinique — ou vos propres bornes : 18 et 65 donnent moins de 18 ans, 18–64 ans et 65 ans et plus.
Genre
D’après la colonne genre de la table patients, telle que mappée dans le schéma. Sans option.
Service
Le Niveau de service : l’Unité de soins (passages) de chaque passage, ou le Type de visite.
Le Regroupement garde chaque service tel quel (Tous), ne garde que les N plus gros, le reste devenant « Autres services » (Top N), ou réunit des services dans des groupes nommés (Groupes) — le moyen le plus sûr de garder assez de patients par cellule.
Concept
Chaque concept clinique trouvé dans les tables d’événements — mesures, médicaments, diagnostics… La Colonne catégorie et la Colonne sous-catégorie classent la liste des concepts (en OMOP, typiquement le domaine et la classe) : c’est ce qui rend l’inventaire navigable plutôt qu’une liste de dix mille codes.
Compter par regroupe par Catégorie ou Sous-catégorie plutôt que concept par concept, et Concepts croisés ne croise que les N concepts ayant le plus de patients.
3. Choisir les croisements
Un croisement est un tableau qui compte plusieurs variables ensemble — concept × période, service × tranche d’âge… Le bloc Croisements les propose en trois groupes : Une variable, Deux variables — une grille où chaque case croise la variable de sa ligne et celle de sa colonne — et Trois variables.
| Tranche d'âge | Genre | Service | Concept | |
|---|---|---|---|---|
| Période | ||||
| Tranche d'âge | ||||
| Genre | ||||
| Service |
Plus un croisement a de variables, plus ses cellules sont petites, et plus il y en a qui tombent sous le seuil d’anonymisation. Estimer les rendements calcule, pour chaque croisement, la part de cellules non vides qui seraient publiées — en vert au-delà de 90 %, en ambre entre 60 et 90 %, en rouge en dessous. Un croisement dont presque tout serait masqué n’apprend rien à personne, et vaut mieux décoché.
Une variable décochée dans Une variable reste comptée seule pour ordonner ses valeurs, mais n’est pas publiée seule — le genre, par exemple, peut n’être intéressant que croisé avec l’âge.
4. Calculer
Calculer le catalogue parcourt la base et compte, étape par étape — concepts, totaux, classement des services et des concepts, puis chaque croisement. Sur un entrepôt volumineux, c’est long : le calcul continue si vous changez d’onglet, et il est interruptible — Mettre en pause, Reprendre, ou Tout recalculer depuis le début. La configuration est verrouillée tant qu’un calcul est en cours ou en pause.
Le résultat est conservé avec sa date et sa durée. Une fois le catalogue calculé, Recalculer relance le calcul avec la configuration du moment, et Supprimer efface les résultats en gardant la configuration.
Changer de base invalide le calcul
Les comptages décrivent une base précise. Si vous en changez, les résultats existants ne veulent plus rien dire : il faut relancer le calcul.
5. Anonymiser
C’est l’étape qui rend la publication acceptable. Dans l’onglet Anonymisation, on fixe un nombre minimum de patients par cellule : en dessous, la cellule est masquée. Linkr masque aussi les cellules qui permettraient de retrouver une cellule masquée par soustraction, peut perturber légèrement les effectifs publiés, et un audit vérifie que rien ne se déduit des fichiers publiés.
Tout cela est détaillé dans Anonymiser un catalogue.
6. Décrire le jeu de données
L’onglet Health-DCAT-AP rassemble les métadonnées du catalogue : éditeur, contacts, licence, contenu de santé, couverture temporelle, accès. Le compteur de chaque section indique combien de champs obligatoires restent à remplir ; Remplissage auto remplit les champs vides à partir de ce que Linkr sait déjà (nom, description, base…), et Obligatoires seulement masque le reste. La section Généré est construite depuis la base et les résultats calculés — il n’y a rien à y saisir, sauf l’emplacement des fichiers publiés.
Health-DCAT-AP, en deux mots
C’est le vocabulaire européen de description des jeux de données de santé, prévu par le règlement sur l’Espace européen des données de santé. L’utiliser signifie qu’un portail de données peut moissonner votre catalogue et l’afficher à côté d’autres, sans conversion.
Publier
L’onglet Publier montre d’abord un Aperçu de la page telle qu’elle sera publiée. Montrer les valeurs masquées y affiche, pour vous seul, l’effectif que cache chaque cellule masquée — les fichiers téléchargés et déployés ne contiennent jamais ces nombres.
La partie Export propose deux formats, dans la Langue de la page choisie :
Page du catalogue — HTML
Un seul fichier, qui s’ouvre dans n’importe quel navigateur, hors ligne.
Ses données sont dedans, rien d’autre à héberger. Les métadonnées Health-DCAT-AP y sont embarquées en JSON-LD, lisibles par un moteur de recherche ou un portail de données.
Publication complète — ZIP
Tout ce qu’il faut à un site public.
catalog.html, concepts.csv (une ligne par concept), un CSV par croisement dans crossings/ — cellules masquées laissées vides avec leur statut — et metadata.jsonld. La forme à retenir pour alimenter un catalogue institutionnel.
Déployer avec GitLab / GitHub Pages
Plutôt que télécharger, on peut publier la page automatiquement depuis le dépôt git du catalogue. Liez d’abord le catalogue à un dépôt dans l’onglet Versioning (voir Versioning git), choisissez l’Hébergement, puis Activer le déploiement : Linkr ajoute au dépôt les fichiers du site et un fichier de CI qui les déploie à chaque push. L’adresse prévue du site peut servir d’URL au catalogue publié, dans ses métadonnées.
Après un nouveau calcul, Mettre à jour le site publié, puis poussez depuis l’onglet Versioning.
Pour aller plus loin
- Anonymiser un catalogue — seuil, masquage secondaire, perturbation et audit, avant toute publication.
- Catalogue de données — à quoi sert un catalogue, et ce que lit le visiteur de la page publiée.
- Schémas — indispensable pour que le calcul sache quoi compter.
- Versioning git — lier le catalogue à un dépôt, pour le déployer.