Tracabilité hopital : Différence entre versions
(→Application) |
(→Prototype 3 : Evolution du protoype 1) |
||
Ligne 197 : | Ligne 197 : | ||
====Prototype 3 : Evolution du protoype 1==== | ====Prototype 3 : Evolution du protoype 1==== | ||
− | |||
===== Application ===== | ===== Application ===== | ||
- Cahier des charges : <br> | - Cahier des charges : <br> |
Version du 18 mars 2015 à 16:51
Sommaire
- 1 Présentation générale du projet
- 2 Les Datamatrix
- 3 Les Bases de données
- 4 Étapes d'un Prototype (Schéma a faire )
- 5 Prototypes
- 6 Fichiers Rendus
Présentation générale du projet
Objectif du projet
Améliorer la traçabilité des médicaments au CHRU de Lille.
Contexte
Les médicaments qui sont livrés à la pharmacie du CHRU de Lille sont tous répertoriés lors de la livraison. Ainsi, en cas de retrait de lot, il est possible de savoir immédiatement si un des médicament a été stocké à la pharmacie et / ou dispensé. Actuellement, les données sont entrées à la main, avec tous les risques d'erreurs que cela comporte.
Description du projet
Le but de ce projet est de proposer une solution permettant d'automatiser ces différentes tâches. A partir d'un datamatrix présent sur chacune des boîtes, il est possible d'extraire les données utiles (n° CIP du médicament, date de péremption, n° de lot) et de les sauvegarder dans une base de données.
Il faudra aussi écrire une application web permettant d’accéder aux données au travers d'un navigateur internet avec outil de recherche.
Une expérimentation à grande échelle est envisagée en avril ou mai 2015.
Lors d'une alerte de retrait de lot par l'ANSM (Agence Nationale de Sécurité du Médicament), il est possible de recevoir un courriel (avec n° CIP et n° de lot concernés). Il conviendra de traiter automatiquement ce courriel afin de savoir si le lot a été livré à la pharmacie.
Choix techniques : matériel et logiciels
Matériel : Lecteur de datamatrix [simple application sur un smartphone]
--> Solution choisie : utilisation d'une simple webcam (par souci de simplicité de mise en place en milieu hospitalier, et de faible coût)
[ --> 2 webcams Logitech mises à disposition le 4/02/15 ]
[ --> 2 webcams et un hub usb mis à disposition le 18/02/15 ]
Logiciels : Wamp server, Notepad++, PHPmyAdmin, Apache, Emacs, Okular
Langages : C, Java, PHP, HTML, CSS, SQL
Prévisionnel
--> Axe principal choisi pour ce projet : Faire en sorte qu'il puisse être mis en place le plus simplement possible, à moindre coût.
Créations des différentes prototypes :
- Le prototype 1 a été présenté le 25 février à Polytech
- Le prototype 2 n'a pas été présenté car il est avorté
- Le prototype 3 a été présenté le 11 mars 2015 à la pharmacie du CHR
- Le prototype 4 devra être présenté pour les vacances d'avril.Durant ces vacances nous pourrions leur laisser le prototype pour qu'ils puissent le tester
Les Datamatrix
Le datamatrix est un code barre bidirectionnelle. Il est l'évolution du traditionnelle code bares . Il présente l'avantage de contenir plus d'informations. Ces informations sont concentrés sur une matrice. Cette matrice peut être décoder par les appareils équipés d'un appareil photo. Les domaines d'application sont vaste (pharmacie, publicité, suivi de matériel , logistique ...)
Dans notre projet il représente les données nécessaire à effectuer la traçabilité du médicament
Capture du Datamatrix
Afin de pouvoir capturer un datamatrix nous avons choisi d'utiliser une webcam, qui a pour avantage d'être très économique.
Pour cela on lire le flux vidéo de la webcam on a utilisé différent méthode :
- Méthode de Screenschot :
Principe :
Quand l'utilisateur appuie sur le bouton "scanner", l'image se fige et s'enregistre sur l'ordinateur. Pour réaliser cela nous avons fait appel à des fonctions telles que html2canvas ainsi que des tutoriels internet que nous avons adapté pour l'application.
Résultat :
-Méthode avec Motion
- Méthode avec un programme issue de la foxcam
Resultat :
Nous nous sommes donc tourné vers un programme en C issu de la foxcam pour pouvoir pendre une capture. Cette méthode est plus optimale, on obtient une meilleure image et le datamatrix est de meilleure qualité.
Résultat :
Méthode retenu : le programme issue de la foxcam
Note :La capture des datamatrix se révèle impossible avec les webcams embarquées (première limite de notre projet). Nous avons résolu ce problème grâce aux webcams prêtées qui sont de meilleure qualité.
Décodage du Datamatrix
Afin de décoder les Datamatrix nous avons effectués quelques recherches. Le résultat de ces dernières nous ont amené a utiliser l’utilitaire suivant: libdmtx sur http://www.libdmtx.org/
Il nous permet de les décoder sous différentes plateformes.Une fois l'utilitaire installé sur nos ordinateurs nous avons décidé de le tester. Pour cela :
- 1 Prendre une photo contenant un datamtrix
-2 Tapez la commande suivante dans le fichier où se situe la photo: dmtxread –n nom_du_fichier.
-3 Comparer avec le résultat avec le site suivant : http://boy.co.ua/decode.php
Exemple :
Soit le datamatrix suivant :
Le résultat est le suivant : 010340093592455117150900103RLC50715
Dans ces informations nous avons le CIP13, la date et le numéro de lot.Les documentations trouvé sur internet nous ont permis d'identifier ces éléments.Vous trouverez ci-dessous la façon de lire le datamatrix issu d'un médicament :
Entre 01 et 17 nous avons le CIP13 : 3400935924551 (nom du médicament)
Entre le 17 et le 10 on a la date : 150900 soit le : 00/09/2015
Puis entre le 10 et le 91 on a le numéro du lot : 3RLC50715 (attention, le 91 n'est pas toujours présent)
Nous avons créé un script permettant d'obtenir le CIP13, la date et le numéro de lot:
Attention:
Nous avons remarquer que suivant la distance du Datamatrix et la luminosité ambiante, l'application pouvait être défaillante.
Les webcams empruntées règlent partiellement le problème de la luminosité, car la seule contrainte restant est tout simplement de ne pas se trouver à contre-jour (ie face à une fenêtre)
Pour la distance, l'essai de lecture sur une dizaine de médicaments a permis de trouver la distance optimale (qui fonctionne toujours) : entre 6 et 7 cm.
Les Bases de données
Code permettant de créer la base de données
Nous avons pu télécharger sur le site de l'ANSM (www.ansm.sante.fr) les PDF contenant tous les médicaments commercialisés, ainsi que les informations suivantes : CIS, Dénomination de la spécialité, Titulaire de l'AMM, CIP7, CIP13, Nom de la Présentation.
Etant donné qu'il y a 9 PDF de 200 pages chacun, nous avons décidé d'écrire un programme permettant de créer un fichier par spécialité, afin de les incorporer dans notre base de donnée.
Avec Okular nous avons pu convertir ces PDF en fichiers texte relativement exploitables (les applications testées sous Windows se contentent de mettre bout à bout, sans espace, chaque chaine trouvée...). Okular passe à ligne après chaque chaine. Cependant certaines chaines sont groupées ensemble, et lors d'une suite de texte à la ligne, cette deuxième partie se retrouve bien plus bas.
Avancée du code C :
- Création du fichier contenant le CIS : ok
- Création du fichier contenant la Dénomination de la spécialité : pas encore traité
- Création du fichier contenant le Titulaire de l'AMM : en cours (reste le problème des chaines groupées)
- Création du fichier contenant le CIP7 : ok (petit bug à régler)
- Création du fichier contenant le CIP13 : ok
- Création du fichier contenant le Nom de la Présentation : en cours (reste le problème de la seconde partie de phrase manquante)
Base De Données
Une fois les données récupéré on a créer un scrip php qui nous permet de peupler les bases plus facilement.
On a peuplé nos base a partir de la version 2
Peuplement de nos base avec ses évolutions :
Étapes d'un Prototype (Schéma a faire )
Redéfinitions des besoins <----------------------------Présentations
| ^ | | v |
Analyses des bessoins --------------------------------->Développement
Prototypes
Prototype 1 : Application à une webcam
Application
Cahier des charges :
- Cahier des charges initial
Développement :
- Non prise en charges des bases de données
- Capture des Datamatrix qui fonctionne
- On peut réaliser un scan
Presentation de l'application :
scrennshot de la page d'accueil
screenshot de l'application
screenschot d'un scan
Retour des professionnels
Ce premier prototype est très engageant pour eux.
Modifications souhaitées :
- Gérer le niveaux du personnel
- Avoir une saisie manuelle
- Avoir une tracabilité de l'ajout effectué par le personnel
Remarque :
Il est pour eux inutile d'afficher en continu la webcam. Nous avons donc convenu d'afficher une photo du médicament scanné à la place, afin de confirmer à l'utilisateur qu'il correspond à celui qu'il a scanné.
Prototype 2 : Application avec un tunnel d'images
Application
Cahier des charges :
- Cahier des charges initial
- Rajout de plusieurs webcam pour pouvoir scanner un médicament sur un tapis
Développement :
- Moniteur de contrôle avec motion
Nous avons constaté que l’utilitaire motion ne nous satisfait pas pour la capture du datamatrix
Presentation de l'application :
Screenshot du moniteur de contrôle
screenshot du décodage
--> Cette solution a été abandonnée car le prototype ne correspond pas à ce que les opérateurs désirent
Prototype 3 : Evolution du protoype 1
Application
- Cahier des charges :
- Extraction des données du datamatrix
- Gérer le niveaux du personnel
- Avoir une saisie manuelle
- Avoir une tracabilité de l'ajout effectué par le personnel
Développement :
- Intégration des bases de données
- Capture des Datamatrix
- Réalisation d'ajout en mode semi-automatique
- Gestion du personnel
- Authentification unique
- Saisie manuel
- Mise en place d'une traçabilité du personnel et des médicaments
- Identification du cis, cip 13 avec le nom du médicament
Presentation de l'application
Retour des professionnels
Compte rendu de la présentation du prototype 3 au CHRU de Lille :
- Donner la localisation prévue pour le médicament dans le stock
- Imprimer sur une étiquette (post-it) cette localisation, ainsi que le nom du médicament en petit (imprimante d’étiquettes Isiscoder PD41).
- Visualiser le CIP13 et le CIS est inutile pour eux (nous pensons donc à créer un bouton ‘’détails'’. De même pour l’historique et la saisie manuelle.
- 2 niveaux de comptes suffisent, un compte administrateur et un compte pour chaque employé.
- Sur la page du scan, épurer au maximum : Nom, numéro et photo du médicament, date et localisation suffisent.
- Améliorer la rapidité de l’acquisition du Datamatrix au maximum.
- Pouvoir utiliser la webcam comme une douchette pour plus de facilité.
- La création d’un convoyeur ne fait pas l’hunanimité du personnel.
Conclusion :
Satisfaction de l’ensemble du personnel présent pour ce premier prototype qui leur était présenté. Il faut cependant en priorité :
- Améliorer la rapidité de l’acquisition du Datamatrix.
- Créer une douchette avec la webcam.
- Epurer l’écran au maximum et ajouter la localisation.
Prototype 4 :
Presentation de l'application :
Application
Séparation des outils d'affichage et de la partie capture du datamatrix
Retour des professionnels
Fichiers Rendus