Composantes
Technologies
Infrastructure basée sur OpenShift
L’ensemble de la plateforme PARADIM est déployée sur une grappe de calcul opérant sur la plateforme-service OpenShift de RedHat. Cette plateforme rend accessible un système d’orchestration d’applications déployées sous la forme de conteneurs.
Elle offre des possibilités de mises à l’échelle et une gestion simplifiée de la réseautique entre les applications. Comme elle est basée sur Kubernetes, PARADIM a des scripts de déploiement qui n’utilisent pas de fonctionnalités qui sont uniques à OpenShift.
Afin de construire les images des conteneurs applicatifs et les déployer sur OpenShift, PARADIM utilise les capacités de déploiement et d’intégration en continu de GitLab.
Stockage des données avec Ceph, PostgreSQL et OpenSearch
Toutes les métadonnées de la plateforme sont entreposées dans des bases de données PostgreSQL. Les fichiers DICOM sont quant à eux entreposés dans une plateforme de stockage objet Ceph, qui utilise une interface compatible avec le système S3 d’Amazon Web Services.
Grâce à ces deux technologies, le volume de données pouvant être entreposées peut être très important, sans devoir changer l’architecture de l’application. De plus, les données ne sont pas captives d’une plateforme en particulier.
La plateforme de recherche OpenSearch est aussi utilisée pour explorer les métadonnées DICOM et produire différents tableaux de bords opérationnels et statistiques.
Orthanc: un PACS libre
La gestion des données DICOM est confiée à Orthanc, un système d’archivage et de transmission d’images (PACS) libre et mature.
C’est Orthtanc qui est responsable de l’entreposage des données DICOM sur la plateforme Ceph et des métadonnées dans une base de données PostgreSQL.
Ce système permet aussi une extension à l’aide de programmes développés dans le langage Python, ce qui permet l’indexation des métadonnées dans la plateforme de recherche OpenSearch, ainsi que le déclenchement de tâches de calcul.
Karnak: une passerelle d’anonymisation
Karnak est une passerelle d’anonymisation qui permet de traiter les images provenant du réseau informatique clinique avant de les envoyer à l’instance d’Orthanc de la plateforme PARADIM.
Kheops: une interface utilisateur accessible
Kheops est une interface utilisateur qui est utilisée conjointement avec un PACS. La version utilisée dans PARADIM a été modifiée pour fonctionner avec Orthanc.
Cette interface inclus aussi des fonctionnalités d’authentification pouvant être utilisée avec des systèmes de gestion des accès d’entreprise basés sur OpenID Connect, tels que Azure Active Directory ou KeyCloak.
Kheops offre aussi une interface sécurisée aux fonctionnalités API d’Orthanc en utilisant le protocole DICOMweb.
Kheops permet la création d’albums composés de plusieurs séries d’images. La gestion des accès est effectuée au niveau de ces albums, qui peuvent alors servir dans le cadre de plusieurs projets différents. Afin de permettre la visualisation des données, Kheops permet l’interface avec une variété d’outils de visualisation tels que OHIF et WSI Viewer en ligne, et 3D Slicer sur le poste de l’utilisateur.
Visualisation avec OHIF Viewer et WSI Viewer
La plateforme PARADIM met à disposition des utilisateurs deux outils de visualisation.
L’outil OHIF VIEWER permet de visualiser les modalités de tomodensitométrie (CT)
ainsi que les rapport structurés (SR).
L’outil WSI Viewer permet d’explorer les images de microscopie pathologiques (Whole-Slide Imaging)
Le répartiteur de tâches
Le répartiteur de tâches est une application développée par notre équipe qui permet d’associer des tâches de calcul à des séries d’images entreposées dans Orthanc. Elle est composée d’une interface graphique ainsi que de deux applications dorsales: une interface API et un exécuteur de tâches qui interface avec la grappe de calcul haute performance.
L’interface API permet de manipuler la base de données MySQL qui entrepose toutes les associations entre les tâches de calcul et les différentes modalités de la norme DICOM utilisées par les équipes de recherche.
Les différentes technologies utilisées
Logiciel | Description | Licence |
OpenShift | Plateforme de déploiement d’applications | Apache License, Version 2.0 |
MySQL | Base de données SQL | GNU General Public License v2.0 |
PostgreSQL | Base de données SQL | PostgreSQL License |
OpenAPI et Swagger | Spécification d’API | MIT License |
Orthanc | Serveur DICOM (PACS) | GNU General Public License v3.0 |
Streamlit | Conception d’application web en Python | Apache License, Version 2.0 |
Karnak | Portail d’importation de fichiers DICOM | Eclipse Public License 2.0 ou Apache License, Version 2.0 |
Kheops | Interface de gestion d’albums de fichiers DICOM et d’authentification | MIT License |
Slurm | Gestionnaire de tâches en lots pour Linux | OpenSSL License |
NVIDIA CUDA | Plateforme de développement d’applications sur GPU | Apache License, Version 2.0 |
OpenSearch | Moteur de recherche et base de données NoSQL orientée documents | Apache License, Version 2.0 |
DICOMweb WSI Viewer | Visualisation d’images WSI (microscopie/pathologie) | Apache License, Version 2.0 |
OHIF Viewers | Visualisation de fichiers DICOM | MIT License |
RabbitMQ | Gestionnaire de files d’attente de messages | Mozilla Public Licence 2.0 ou Apache License, Version 2.0 |
GitLab | Gestionnaire de code source et plateforme d’intégration et de déploiement en continu (CI/CD) | MIT License |
Ceph | Stockage de fichiers compatible AWS S3 | GNU Lesser General Public License, Version 2.1 |
Apptainer/Singularity | Exécution d’applications conteneurisées sans droits administrateur | 3-clause BSD License |