Manipulation des fichiers Dicom



L'objectif du projet est de réaliser un logiciel simple permettant à un utilisateur non-informaticien d'effectuer des recherches d'informations ou de modifier celles-ci sur un ou plusieurs fichiers Dicom.


Pour cela, il vous faudra :


- Comprendre comment est constitué le format Dicom (exemple : http://bioinfo.unice.fr/enseignements/GBM/cours/les_fichiers_dicom.pdf)


- Avoir des connaissances dans un langage de programmation (C++ dans notre cas)


- Utiliser une bibliothèque aidant à la manipulation des fichiers Dicom.

Ces bibliothèques vous fournissent des fonctions (ou plus fréquemment des classes si vous programmer en objets) vous facilitant la lecture ou les modifications des données contenues dans les fichiers Dicom.

Il en existe plusieurs en C++. Il faudra en télécharger une et ajouter l' "include" correspondant en entête de votre programme.

Certaines bibliothèque sont simples, d'autres sont beaucoup plus étendues (avec + de possibilités). Vous avez le choix d'utiliser ce que vous voulez (parmi les gratuites), sachant que les fonctions présentes dans les bibliothèques de base devraient déjà être largement suffisantes...

(quelques informations ici : http://www.cabiatl.com/mricro/dicom/index.html ou ici http://www.idoimaging.com/index.shtml)


Quoi faire :


- Vous devrez trouvez sur internet et télécharger plusieurs fichiers Dicom d'exemples (peu importe si ce sont des images scanner, irm, de poumons, de coeur ou autres...). Plusieurs dizaines de ces images seront mises dans un répertoire sur le disque dur.


- Le but est de faire un programme qui donne la possibilité à un utilisateur de présenter facilement l'information contenue dans ces fichiers et éventuellement de la modifier.


* La recherche d'information consistera par exemple à trouver tous les fichiers qui correspondent (i) à un nom d'un patient entré au clavier, (ii) à un ID du patient donné, (iii) à une date de création du fichier, (ii) un intervalle d'ages des patients, etc... (exemple sur ce logiciel http://www.k-pacs.de/img/screens/mainform_b.jpg en haut à droite)

Les résultats présenteront au minimum la liste des fichiers correspondant à ces critères de recherche. Vous êtes libres de faire afficher d'autres types d'informations.


* On souhaite aussi pouvoir modifier certaines données des fichiers eux-mêmes. Par exemple, on doit pouvoir entrer un nouveau nom de patient ou une date qui sera sauvegardée pour un fichier Dicom donné, voire plusieurs fichiers à la fois. Le but étant par exemple d'automatiser certaines procédures. Supposons que les dates de tous les fichiers présents dans votre répertoire soient erronées (les fichiers n'ont pas été enregistrés à la bonne date). On veut pouvoir modifier cette date en un coup, plutôt que modifier un à un tous les fichiers.

La liste des modifications n'est pas exhaustive et vous êtes libres de proposer plusieurs possibilités de modifications.

Noter que vous pouver vérifier les modifications des fichiers dicom que vous avez effectuées en utlisant un logiciel gratuit pour ouvrir et visualiser les informations du fichier Dicom, comme "EzDicom"

Toolkit :


Vous pouvez présenter le logiciel soit sous forme d'interface graphique, soit en ligne de commande.

L'interface graphique (Tk, Qt, WxWindow, Gtk...) sera certes plus conviviale et fonctionnelle, mais vous demandera d'apprendre les bases de programmation pour un toolkit donné.


Fin du projet :


Le projet est à rendre avant le mardi 3 janvier 00h, en envoyant un fichier zip unique (à croce@unice.fr) contenant :

- un rapport présentant votre projet, avec présentation du problème, objectifs et solutions proposées, algorithme récapitulatif , schémas/screenshots et conclusion.

- votre logiciel avec les sources et une version compilée

Si le fichier zip est trop volumineux pour passer par email, pensez à utiliser des sites type megaupload, divshare ou dl.free.fr

Un email par binôme, je vous confirmerai en retour d'email la bonne réception des fichiers.


Bon courage.