Liens (jointures)
Généralités
Dans chaque étape des DataBlocks (module GenericsData), un ou plusieurs liens (jointures) peuvent être définis.
Un lien sert à importer automatiquement des colonnes (et leurs lignes) provenant d’autres Entités ou DataBlocks, à condition que ces données répondent à un ou plusieurs critères spécifiés par l’utilisateur.
Par exemple, un lien peut servir à obtenir pour chaque patient d’un DataBlock donné, la liste de ses Actes Médicaux contenus dans la colonne "Actes Médicaux" d’une Entité "Dossiers Patients".
Un tel lien récupère uniquement les lignes de la colonne Actes médicaux de l’Entité dont la valeur dans la colonne IPP (identifiant permanent du patient) figure déjà dans Identifiant Patient du DataBlock :
DataBlock "Entrées/Sorties Patients"
Identifiant Patient | Date Entrée | Date Sortie |
---|---|---|
1001 |
2025-06-01 |
2025-06-10 |
1002 |
2025-06-03 |
2025-06-08 |
1003 |
2025-06-05 |
2025-06-12 |
Principes
La création d’un lien passe par la configuration :
-
d’un bloc de données (Entité ou DataBlock) auquel sera lié son DataBlock,
-
des colonnes du bloc de données qui seront ajoutées au DataBlock courant,
-
du type de jointure utilisé pour la récupération des lignes du bloc de données lié
-
des conditions de récupération de ces lignes liées ensemble par l’opérateur logique "ET".
Les conditions sont formulées à partir d’une colonne du DataBlock courant (ou une constante) et d’une colonne du bloc de données lié (ou une constante) dont les valeurs seront comparées par un opérateur (Egale, Différent, Inférieur, Supérieur…).
Une case à cocher jouxtant les champs de sélection des colonnes d’une condition permet de les transformer en champs de saisie d’une constante, si besoin.
Types de jointures
La définition du type de jointure permet de spécifier la manière dont les données de deux sources seront combinées pour fournir le jeu de données résultant du lien, en fonction de la présence ou non de correspondances entre leurs valeurs.
Les sous-sections suivantes présentent les différents types de jointure disponibles et leur fonctionnement. L’exemple de lien de l’introduction est repris et le résultat du lien présenté en fonction du type de jointure sélectionné par l’utilisateur.
Dans chacun des exemples ci-dessous, toutes les colonnes de l’Entité cible sont récupérées quand c’est possible. Le critère du lien est : Identifiant Patient Egale IPP. Rappel des blocs de données liées :
DataBlock source "Entrées/Sorties Patients"
Identifiant Patient | Date Entrée | Date Sortie |
---|---|---|
1001 |
2025-06-01 |
2025-06-10 |
1002 |
2025-06-03 |
2025-06-08 |
1003 |
2025-06-05 |
2025-06-12 |
Entité "Dossiers Patients"
IPP | Actes Médicaux |
---|---|
1001 |
IRM cérébrale, Bilan sanguin |
1002 |
Scanner thoracique |
1004 |
ECG, Consultation cardiologique |
Jointure de type ANTI
Spécificité : conserve uniquement les lignes du DataBlock source sans correspondance dans l’entité cible.
C’est-à-dire que dans un premier temps, les lignes du DataBlock source qui respectent les critères du lien sont sélectionnées avant d’être évincées du résultat définitif du lien. Aucune colonne ou ligne de la cible n’est jointe.
Résultat après application de ce type de jointure dans le lien exemple
Identifiant Patient | Date Entrée | Date Sortie |
---|---|---|
1003 |
2025-06-05 |
2025-06-12 |
Jointure de type INNER
Spécificité : renvoie uniquement les lignes possédant une correspondance dans les deux jeux de données.
Résultat après application de ce type de jointure dans le lien exemple
Identifiant Patient | Date Entrée | Date Sortie | IPP | Actes Médicaux | Date Dernier Séjour |
---|---|---|---|---|---|
1001 |
2025‑06‑01 |
2025‑06‑10 |
1001 |
IRM cérébrale; Bilan sanguin |
2025‑05‑22 |
1002 |
2025‑06‑03 |
2025‑06‑08 |
1002 |
Scanner thoracique |
2025‑05‑30 |
Jointure de type LEFT
Spécificité : conserve toutes les lignes du DataBlock source. Les colonnes de la cible sont ajoutées lorsque la condition est satisfaite ; sinon, elles restent vides.
Par défaut, les liens s’effectuent avec le type de jointure Left.
Résultat après application de ce type de jointure dans le lien exemple
Identifiant Patient | Date Entrée | Date Sortie | IPP | Actes Médicaux | Date Dernier Séjour |
---|---|---|---|---|---|
1001 |
2025‑06‑01 |
2025‑06‑10 |
1001 |
IRM cérébrale; Bilan sanguin |
2025‑05‑22 |
1002 |
2025‑06‑03 |
2025‑06‑08 |
1002 |
Scanner thoracique |
2025‑05‑30 |
1003 |
2025‑06‑05 |
2025‑06‑12 |
null |
null |
null |
Jointure de type RIGHT
Spécificité : conserve toutes les lignes du bloc de données cible. Les colonnes du DataBlock source sont ajoutées lorsqu’une correspondance existe ; sinon, elles restent vides.
Résultat après application de ce type de jointure dans le lien exemple
Identifiant Patient | Date Entrée | Date Sortie | IPP | Actes Médicaux | Date Dernier Séjour |
---|---|---|---|---|---|
1001 |
2025‑06‑01 |
2025‑06‑10 |
1001 |
IRM cérébrale; Bilan sanguin |
2025‑05‑22 |
1002 |
2025‑06‑03 |
2025‑06‑08 |
1002 |
Scanner thoracique |
2025‑05‑30 |
null |
null |
null |
1004 |
ECG; Consultation cardiologique |
2025‑06‑07 |
Jointure de type OUTER
Spécificité : renvoie l’union des deux jeux de données. Chaque ligne sans correspondance est complétée par des valeurs nulles pour les colonnes manquantes.
Résultat après application de ce type de jointure dans le lien exemple
Identifiant Patient | Date Entrée | Date Sortie | IPP | Actes Médicaux | Date Dernier Séjour |
---|---|---|---|---|---|
1001 |
2025‑06‑01 |
2025‑06‑10 |
1001 |
IRM cérébrale; Bilan sanguin |
2025‑05‑22 |
1002 |
2025‑06‑03 |
2025‑06‑08 |
1002 |
Scanner thoracique |
2025‑05‑30 |
1003 |
2025‑06‑05 |
2025‑06‑12 |
null |
null |
null |
null |
null |
null |
1004 |
ECG; Consultation cardiologique |
2025‑06‑07 |
Jointure de type CROSS
Spécificité : S’applique automatiquement en l’absence de critères. Renvoie le produit cartésien des deux jeux de données. Chaque ligne du DataBlock source est associée à toutes les lignes de l’entité cible, sans condition de correspondance.
Quand il y a un critère et que le type CROSS est choisi par l’utilisateur, c’est le type INNER qui est automatiquement appliqué car CROSS ne concerne que les liens n’ayant pas de critères.ê
Résultat d’une jointure de type CROSS (produit cartésien) dans notre exemple : 3 lignes × 3 lignes = 9 lignes.
Résultat après application de ce type de jointure dans le lien exemple
Identifiant Patient | Date Entrée | Date Sortie | IPP | Actes Médicaux | Date Dernier Séjour |
---|---|---|---|---|---|
1001 |
2025‑06‑01 |
2025‑06‑10 |
1001 |
IRM cérébrale; Bilan sanguin |
2025‑05‑22 |
1001 |
2025‑06‑01 |
2025‑06‑10 |
1002 |
Scanner thoracique |
2025‑05‑30 |
1001 |
2025‑06‑01 |
2025‑06‑10 |
1004 |
ECG; Consultation cardiologique |
2025‑06‑07 |
1002 |
2025‑06‑03 |
2025‑06‑08 |
1001 |
IRM cérébrale; Bilan sanguin |
2025‑05‑22 |
1002 |
2025‑06‑03 |
2025‑06‑08 |
1002 |
Scanner thoracique |
2025‑05‑30 |
1002 |
2025‑06‑03 |
2025‑06‑08 |
1004 |
ECG; Consultation cardiologique |
2025‑06‑07 |
1003 |
2025‑06‑05 |
2025‑06‑12 |
1001 |
IRM cérébrale; Bilan sanguin |
2025‑05‑22 |
1003 |
2025‑06‑05 |
2025‑06‑12 |
1002 |
Scanner thoracique |
2025‑05‑30 |
1003 |
2025‑06‑05 |
2025‑06‑12 |
1004 |
ECG; Consultation cardiologique |
2025‑06‑07 |