Tracabilité hopital : Différence entre versions

De Wiki d'activités IMA
(Capture du Datamatrix)
Ligne 22 : Ligne 22 :
  
  
===Choix techniques : matériel et logiciel===
+
===Choix techniques : matériel et logiciels===
  
 
Matériel : Lecteur de datamatrix [simple application sur un smartphone]<br>
 
Matériel : Lecteur de datamatrix [simple application sur un smartphone]<br>
 
     --> Solution choisie : utilisation d'une simple webcam (par souci de simplicité de mise en place en milieu hospitalier, et de faible coût)
 
     --> Solution choisie : utilisation d'une simple webcam (par souci de simplicité de mise en place en milieu hospitalier, et de faible coût)
 
[<span style="color: blue;"> --> 2 webcams Logitech mises à disposition le 4/02/15</span> ]<br>
 
[<span style="color: blue;"> --> 2 webcams Logitech mises à disposition le 4/02/15</span> ]<br>
Logiciel : Wamp server, Notepad++, PHPmyAdmin <br>
+
Logiciels : Wamp server, Notepad++, PHPmyAdmin, Apache, Emacs <br>
Langages : Java, PHP, HTML, CSS, SQL <br>
+
Langages : C, Java, PHP, HTML, CSS, SQL <br>
  
 
===Prévisionnel===
 
===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. <br>
  
 
Création de l'application web (connexion par authentification) <br>
 
Création de l'application web (connexion par authentification) <br>
Ligne 36 : Ligne 38 :
 
Mise en place de la lecture des Datamatrix <br>
 
Mise en place de la lecture des Datamatrix <br>
 
Création et insertion des bases de données <br>
 
Création et insertion des bases de données <br>
 +
--> Ecriture d'un code C permettant d'extraire les données des PDF disponibles sur le site de l'ANSM : www.ansm.sante.fr <br>
 
Création d'un outil recherche de médicament <br>
 
Création d'un outil recherche de médicament <br>
 
Mise en place des alertes de retrait de l'ANSM <br>
 
Mise en place des alertes de retrait de l'ANSM <br>
Ligne 47 : Ligne 50 :
 
Nos recherches sur internet nous ont amené à utiliser la librairie libdmtx (http://www.libdmtx.org/) <br>
 
Nos recherches sur internet nous ont amené à utiliser la librairie libdmtx (http://www.libdmtx.org/) <br>
 
Nous avons également trouvé ce site qui permet de décoder les datamatrix : http://boy.co.ua/decode.php<br>
 
Nous avons également trouvé ce site qui permet de décoder les datamatrix : http://boy.co.ua/decode.php<br>
L'idée serait donc de pouvoir réaliser la même fonctionnalité nous même, pour éviter d'avoir recours à un accès internet. <br>
+
L'idée serait donc de pouvoir réaliser la même fonctionnalité nous même, au cas où cette page internet n'existe plus. <br>
 
<br>
 
<br>
 
Nous avons scanné un datamatrix de médicament. Le résultat donné par le site est le suivant : 010340093592455117150900103RLC50715 <br>
 
Nous avons scanné un datamatrix de médicament. Le résultat donné par le site est le suivant : 010340093592455117150900103RLC50715 <br>
Ligne 59 : Ligne 62 :
 
<br>
 
<br>
  
==Étape du Projet==
+
==Étapes du Projet==
Nous avons découpé notre projet en plusieurs sous partie. Dans chaque sous partie vous trouverez l'avancement des outils qui nous permettrons de réaliser l'application demandé dans le cahier des charges
+
<br>
 
+
Nous avons découpé notre projet en plusieurs sous parties. Dans chaque sous partie vous trouverez l'avancement des outils qui nous permettrons de réaliser l'application demandée dans le cahier des charges.
====Application ====
+
<br>
 +
====Application====
 +
<br>
 
Application web créée (connexion par authentification unique, login + mdp) <br>
 
Application web créée (connexion par authentification unique, login + mdp) <br>
 
Mise en forme commencée <br>
 
Mise en forme commencée <br>
 
Capture et lecture du Datamatrix opérationnelles (problème d'instabilité résolu grâce aux webcams prêtées, dû à leur meilleure qualité)
 
Capture et lecture du Datamatrix opérationnelles (problème d'instabilité résolu grâce aux webcams prêtées, dû à leur meilleure qualité)
 
+
<br>
 
====Capture du Datamatrix====
 
====Capture du Datamatrix====
 +
<br>
 +
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 lit le flux vidéo de la webcam sur une page web. 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.
  
Afin de pouvoir capture un datamatrix nous avons choisi d'utiliser une webcam. Pour cela on lit le flux vidéo de la webcam sur une page web. Quand l'utilisateur appuie sur le boutons scanné l'image se fixe et s'enregistre sur l'ordinateur. Pour réaliser ces fonctions nous avons fait appel à des fonctions tels que html2canvas ainsi que des tutoriels sur la toile qui ont été adapté pour l'application.
+
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 meilleur qualité.  
 
 
La capture des datamatrix se révèlent impossibles avec les webcams embarqués. Nous avons résolu ce problème grâce aux webcam prêtées qui sont de meilleur qualité.  
 
  
 
Script de la fonction de capture:[[File:Capture.zip|1000px|thumb|center]]
 
Script de la fonction de capture:[[File:Capture.zip|1000px|thumb|center]]
 
Capture d'écran du script :
 
Capture d'écran du script :
 
[[File:Capture_dtmx.jpg|1000px|thumb|center]]
 
[[File:Capture_dtmx.jpg|1000px|thumb|center]]
 
+
<br>
 
====Décodage du Datamatrix====
 
====Décodage du Datamatrix====
 
<br>
 
<br>
Le décodage du datamatrix s'effectue avec la librairie libdmtx. Avec d'extraire les informations nécessaires on a créé le script suivant :
+
Le décodage du datamatrix s'effectue avec la librairie libdmtx. Afin d'extraire les informations nécessaires on a créé le script suivant :
  
 
[[File:Décodage.zip|1000px|thumb|center]]
 
[[File:Décodage.zip|1000px|thumb|center]]
  
Il nous permet d'obtenir le Cip13, la date et le numéro de lot. Ci dessous le résultat du script :
+
Il nous permet d'obtenir le CIP13, la date et le numéro de lot. Ci dessous le résultat du script :
 
[[File:Resultat_script.JPG|1000px|thumb|center]]
 
[[File:Resultat_script.JPG|1000px|thumb|center]]
 +
<br>
 
====Base De Données ====
 
====Base De Données ====
 
<br>
 
<br>

Version du 11 février 2015 à 14:57


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 ]
Logiciels : Wamp server, Notepad++, PHPmyAdmin, Apache, Emacs
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éation de l'application web (connexion par authentification)
Mise en forme de l'application web
Mise en place de la lecture des Datamatrix
Création et insertion des bases de données

--> Ecriture d'un code C permettant d'extraire les données des PDF disponibles sur le site de l'ANSM : www.ansm.sante.fr 

Création d'un outil recherche de médicament
Mise en place des alertes de retrait de l'ANSM


Lecture des Datamatrix

Datamatrix lecture.jpg


Nous avons choisi d'utiliser la webcam de l'ordinateur par souci de simplicité pour les opérateurs.
Nos recherches sur internet nous ont amené à utiliser la librairie libdmtx (http://www.libdmtx.org/)
Nous avons également trouvé ce site qui permet de décoder les datamatrix : http://boy.co.ua/decode.php
L'idée serait donc de pouvoir réaliser la même fonctionnalité nous même, au cas où cette page internet n'existe plus.

Nous avons scanné un datamatrix de médicament. Le résultat donné par le site est le suivant : 010340093592455117150900103RLC50715
D'après la documentation technique des datamatrix, ce code s'interprête de la façon suivante :
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)




Étapes du Projet


Nous avons découpé notre projet en plusieurs sous parties. Dans chaque sous partie vous trouverez l'avancement des outils qui nous permettrons de réaliser l'application demandée dans le cahier des charges.

Application


Application web créée (connexion par authentification unique, login + mdp)
Mise en forme commencée
Capture et lecture du Datamatrix opérationnelles (problème d'instabilité résolu grâce aux webcams prêtées, dû à leur meilleure qualité)

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 lit le flux vidéo de la webcam sur une page web. 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.

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 meilleur qualité.

Script de la fonction de capture:

Capture d'écran du script :

Capture dtmx.jpg


Décodage du Datamatrix


Le décodage du datamatrix s'effectue avec la librairie libdmtx. Afin d'extraire les informations nécessaires on a créé le script suivant :

Fichier:Décodage.zip

Il nous permet d'obtenir le CIP13, la date et le numéro de lot. Ci dessous le résultat du script :

Resultat script.JPG


Base De Données


--> Problème à régler : nous n'arrivons pas à transférer des PDF en base de donnée (convertir en .csv par exemple) 


Fichiers Rendus