Du PACS au fichier Excel en 30 secondes
Comment un petit script Python va chercher nom, prénom, date de naissance et latéralité directement dans les fichiers DICOM du PACS et les écrit dans un Excel !
- DICOM
- OCT
- Python
- Automatisation
- Cabinet
Qu'est-ce que je résous ?
Remplir un fichier Excel en allant chercher sur les OCTs du PACS nom, prénom, date de naissance ? C'est fini !! Je vais t'expliquer comment j'ai construit le script, et toutes les notions sous-jacentes super intéressantes pour ton utilisation quotidienne de l'OCT !! Aujourd'hui, j'ai écrit un petit script prêt à la compilation qui va chercher nom, prénom, date de naissance et autres infos utiles liées à l'examen d'imagerie, et qui va directement les écrire dans un Sheets Excel !! Donc les transcriptions manuelles des heures durant, avec un risque d'erreur, c'est fini !!
Bon, commençons par un peu de contexte. Tu ouvres ton logiciel préféré de visualisation d'OCT. Tu vois ton image s'afficher, avec en haut à gauche le nom, prénom, sexe, date de naissance de ton patient. Et la date de réalisation du cliché, la latéralité de l'œil, parfois. T'es-tu déjà demandé si ce que tu voyais, c'est un fichier JPEG/JPG/PNG (des formats images que tu connais) ? En tout cas, la réponse est non ! Ce n'est pas une image que tu peux ouvrir avec ta visionneuse photos sur ton PC perso ! C'est un fichier de type DICOM, noté .dcm (ou .dicom parfois). Mais pourquoi avoir choisi un fichier DICOM alors que ce sont des images, les OCT, après tout ??
(En très bref) C'est quoi, DICOM ?
Très bonne question ! Je comptais écrire une petite review introductive sur le DICOM, n'hésite pas si ça t'intéresse ! Plusieurs raisons à ce choix :
-
Il fallait un protocole de communication entre les ordis et les machines d'imageries de l'hôpital qui soit cohérent, et commun à tous, pour pouvoir s'échanger les images ; à la fois sur le plan de la communication réseau et sur le plan du fichier en lui-même.
-
Et en effet, c'est là que le DICOM trouve son intérêt majeur : si tu regardes un fond d'œil, une OCT ou autre sans aucune info sur ton patient, sur la date du cliché, ou même la latéralité (OD ou OG), tu ne peux pas vraiment interpréter n'est-ce pas ? Eh bien c'est pour faciliter et fiabiliser les transmissions de données que le DICOM a été inventé : ton PACS ne transmet pas 2 colis (image et métadonnées liées à l'image) mais un seul et même colis (image + métadonnées – PatientName, DateOfBirth, Laterality ..) pour éviter toute perte, modifications ou autres !!!
Donc un fichier DICOM c'est un fichier avec deux grandes parties globalement : les attributs (Tags) liés au contexte de l'OCT, et les pixels qui constituent l'OCT elle-même !!

Comment ça marche, de façon générale ?
Maintenant, revenons-en à notre affaire. Marie a été chargée par sa chef de rentrer les noms, prénoms, date de naissance, et œil droit ou gauche (OD ou OG) dans un fichier Excel, pour un dossier de 30 OCT. C'est relou, ça va bien lui prendre une heure … Mais heureusement, elle a un petit script Python pour cela ! Voilà comment il fonctionne :
-
Il va chercher les métadonnées dont on a parlé juste au-dessus, il sélectionne celles qui l'intéressent à savoir : nom, prénom, sexe, âge, date de naissance, ID de patient, date de réalisation de l'OCT, OD ou OG, modèle de la machine utilisée.
-
Il va ensuite ranger ces données dans un fichier CSV (un format de stockage des données sous forme de tableau)
-
Enfin, il va transformer ce fichier .csv en fichier .xlsx pour que Marie puisse le lire avec Excel !!
Résultat : Marie obtient son Excel en trente secondes, avec 0 erreur, un script simple et elle a économisé 5h cette semaine qu'elle a pu mettre à profit autrement ! Et maintenant, si tu veux VRAIMENT mettre les mains dans le moteur, n'hésite pas à jeter un coup d'œil à la documentation !
Outils de ce numéro
- PYTélécharger
oct_extract.py
Documentation technique
Pour aller plus loin que l'article.