Vous êtes sur la page 1sur 36

Meunier Pierre

Dut Informatique Lille1


stage de fin d'tude 2012

Rapport de stage:
Amlioration d'un module mdical sous systme ERP

tuteur entreprise: Pierre Girard


tuteur au cgep de Sherbrooke: Philippe Leduc
tuteur a l'universit de Lille 1: Patrick Lebegue

soutenance: 11 juin 2012, Cegep de Sherbrooke

Remerciements

Je tiens remercier mon tuteur d'entreprise Pierre Girard , pour m'avoir accompagn et soutenu au
long du stage. Ainsi que mon patron Martin Auger, pour sa disponibilit et sa patience.

Remerciement galement Patrick Lebgue pour son suivi en tant que tuteur de stage, et Jrme
Hennebert, Jean Martinet et Jean-Marie Place pour se charger de ma soutenance de stage alors mme que
cela n'tait pas initialement prvue.
Je souhaite galement exprimer ma reconnaissance tous mes professeurs de l'IUT A, pour
l'excellent enseignement qu'ils nous ont dispenss.
Enfin remerciements Sylvie Breault ,Philippe Leduc et Valrie Buquet, pour avoir organis
l'accueil des tudiants franais Sherbrooke.

Rsum
Ce rapport de stage de fin de DUT informatique prsente le travail que j'ai effectu au cours de mon
stage l'Internationale chez Erp Quebec Inc. Il s'agit d'une trs petite entreprise, proposant des solutions
partir de logiciels de gestion en distribution libre (GPL), et plus particulirement OpenERP, un logiciel ERP
utilis au niveau mondiale.
Mon projet dans cette entreprise fut de reprendre un ancien module mdical d'OpenERP, encore
jamais utilis chez les clients. Ma tche tant de passer ce module de la version 5 la version 6.1.1 et
l'amliorer pour le rendre fonctionnel. Il me fallait donc crer une gestion des vaccins, relier les mdications
dfini plusieurs endroit dans le module, et importer des bases de donnes exporter avec ACCESS. Sans
l'utiliser, car ce n'est pas un programme libre.
Dans ce rapport je prsenterai plus compltement mon entreprise d'accueil, puis les dveloppements
que j'ai raliser avec les langages python, sql et xml. Et je finirai par un bilan technique et humain de ce
stage.

Abstract
This internship report of study end describe the work I did during my internationale intership in
Erp Quebec Inc. It's a very little enterprise who give solutions with free software (GPL) and specially
OpenErp, a ERP software used in the world.
My project in this enterprise was of adapt a old medical module, who wasn't yet used by customers.
My task whose of upgrade this module of the version 5 to the version 6.1.1 and improve it for it become
functionnal. So I had to create a vaccin managing, link the medications defined at many emplacements in the
module, and import databases exported with ACCESS. But without using it, because it isn't a free software
and that my enterprise use only this programs.
In this report I will begin at present more completly my Home Business, and after I will present the
developpements I did with the languages python, sql and xml. To finish I will draw up a bilan, about the
aspects technical and social of this experience.

Table des matires


Rsum.................................................................................................................................................4
Abstract.................................................................................................................................................4
Introduction..........................................................................................................................................7
I. Prsentation de ERP Quebec inc.......................................................................................................8
I.1 Prsentation................................................................................................................................8
I.2 Organisation...............................................................................................................................8
I.3 Historique...................................................................................................................................9
I.4 Partenaires................................................................................................................................10
I.5 Clients.......................................................................................................................................11
II. Missions accomplies .....................................................................................................................12
II.1 Formation................................................................................................................................12
II.2 Analyse....................................................................................................................................12
II.2.1 Les vues...........................................................................................................................12
II.2.2 Les fonctionnalits..........................................................................................................13
II.2.3 Importation des bases de donnes...................................................................................14
II.2.3.1 Importation de la BDPP...........................................................................................14
II.2.3.2 Importation de Cim10..............................................................................................15
II.3 Dveloppement.......................................................................................................................16
II.3.1 Les vues...........................................................................................................................16
II.3.2 Les fonctionnalits..........................................................................................................17
II.3.3 Importation des bases de donnes...................................................................................18
II.3.3.1 Importation de la BDPP...............................................................................................18
II.3.3.1 Importation de la BDPP...........................................................................................18
II.3.3.2 Importation de Cim10..............................................................................................19
II.4 Tests et dbogage....................................................................................................................19
II.5 Conclusion...............................................................................................................................20
III. Bilan technique et humain............................................................................................................21
III.1 Nouvelles comptences..........................................................................................................21
III.2 Relations humaines................................................................................................................21
III.3 Lien avec l'enseignement de l'IUT.........................................................................................22
III.4 volution possible..................................................................................................................22
III.5 Conclusion.............................................................................................................................23
Conclusion:.........................................................................................................................................24
Annexes..............................................................................................................................................25
Analyse..........................................................................................................................................25
Analyse gestion de versions de module....................................................................................25
MCD module health..................................................................................................................26
MLD CIM10.............................................................................................................................27
Relations BDPP.........................................................................................................................28
Autre..............................................................................................................................................28
Jeu de test, liaison mdication-prescription..............................................................................28
Code...............................................................................................................................................29
Code affichage prochain vaccin................................................................................................29
Code recherche parent master...................................................................................................29
Screen.............................................................................................................................................30
Architecture module Health......................................................................................................30
5

Barre recherche patient.............................................................................................................31


Formulaire classification...........................................................................................................31
Formulaire gestion version module...........................................................................................32
Liste et recherche, gestion version de module .........................................................................33
Glossaire.............................................................................................................................................34
Bibliographie:.....................................................................................................................................36

Introduction

Dans le cadre de mes tudes, j'ai choisi de faire mon stage de fin d'tude Sherbrooke, au Qubec. Je
me suis vu offrir un poste de programmeur dans une entreprise d'informatique de Gestion, ERP Quebec, et
j'ai dcid d'accepter. J'ai ainsi pu dcouvrir de nouvelles mthodes de travail, et galement une nouvelle
culture, ce qui est toujours stimulant.
Une fois ma formation faite, mon tuteur m'a expliqu mon prochain projet. Celui ci tait de reprendre
un module d' OpenERP , afin de crer une version de test du 1er module mdical sur OpenERP. Mon
module servira de modle de dmonstration, prsenter au professionnelles qui ensuite pourront demander
les modifications voulu. Ce module permettait alors l'ajout des patients et leurs suivi mdical en version
5.1.
Il d'abord fallu passer le module la version 6.0.3 avant de passer aux autres modifications. Les
problmes qui ce sont alors prsent, furent le manque d'ergonomie1 des vues, la gestion des mdicaments
effectuer plusieurs endroits, une gestion des vaccins inexistantes et l'importation de bases de donnes
ACCESS. Cela alors mme que nous n'utilisions pas ACCESS pour notre base de donne, les solutions que
nous proposons aux entreprises tant uniquement des solutions libres.
Pour rsoudre ces problmes, j'aurai recours au langage xml pour crer des vues, au langage python
pour les fonctionnalits et au langage SQL pour la gestion des bases de donnes. Ceux ci tant ceux utilises
par OpenErp. Quand la mthodologie utilise j'utiliserai le dveloppement dirig par les tests. Ce qui me
fera avancer plus lentement, mais m'vitera de perdre du temps aprs le dveloppement corriger les bugs.

Dans une premire partie, je vous prsenterai mon entreprise d'accueil, afin que vous puissiez
comprendre le cadre de ma mission. Puis je parlerai des missions que j'ai accomplie. D'abord la mission que
j'ai effectuer avec l'aide de mon tuteur au cours de ma formation, avant de passer a mon projet proprement
dis, en dtaillant l'analyse, le dveloppement et les tests. Pour finir, je dresserai un bilan technique et humain
qui montrera les diffrentes comptences que j'ai acquises, et leurs liens avec l'enseignement reu l'IUT.

1 Voir glossaire

I. Prsentation de ERP Quebec inc

I.1 Prsentation
Localise dans la rgion de Sherbrooke depuis 2007, ERP Qubec Inc. sest positionne titre de
partenaire privilgi auprs dentreprises et dorganisations par le biais des logiciels de gestion en
distribution libre (GPL) tels que OpenERP, Linux Ubuntu, PostgreSQL et plus.
Les services offerts par ERP Quebec Inc sont la Prparation, la Conception, la Ralisation,
l'Intgration, la Mise en production, le soutien et le service. Dans le cas d'entreprises avec des besoins
spcifiques, non couverts par les centaines de modules d'OpenERP, cette entreprise se charge de les adapter
pour ses clients.
Le principale logiciel utilis par cette entreprise est le systme ERP2, OpenERP. OpenERP est un
des rares logiciels ERP libre. Il fait ses preuves et ce bien qu'il n'existe que depuis 2005. Il avait alors t
crer sous le nom de TinyErp.
OpenERp, c'est ainsi 400 partenaires rparti dans 70 pays, 1500 contributeurs et 180 employs.
Ces modules comprennent la gestion de la relation client, la comptabilit analytique et financire (conforme
pour une douzaine de pays) , la gestion des stocks , la gestion de production , la gestion de projets et des
activits de services,...

I.2 Organisation
Erp Quebec Inc est une entreprise en pleine expansion qui n'est pour l'instant composes que de 3
personnes, et un stagiaire. tant donn la taille rduite de l'entreprise, l'ambiance est conviviale et chacun se
doit d'tre polyvalent dans son domaine d'activit.
Le patron: Martin Auger, le fondateur de OpenErp, qui a travaill pendant plus de 12 ans avant de se
mettre son compte. Bien qu'il occupe la direction de l'entreprise, il est trs polyvalent et
en plus de grer les relations avec les clients, il s'occupe en bonne partie de l'analyse et de la
programmation.
Les programmeurs: Pierre-Luc et Pierre Girard
Stagiaire: Moi, actuellement prsent pour un stage en programmation de 3 mois.

2 Voir le glossaire pour la dfinition de systme ERP

I.3 Historique

Creation de ERP Quebec Inc 2007


M. Martin Auger a travaill pendant plus de 12 ans au sein d'entreprises prives, notamment chez Les
industries C-Mac et Rona. Il a ctoy plusieurs autres secteurs tel que les finances, la comptabilit, les
ventes, les achats, l'ingnierie, la production, la gestion d'inventaire, les ressources humaines et plus encore.
En 2007 il met sur pied l'entreprise ERP Quebec, dont il occupe la direction temps plein, pour mettre son
expertise au service de sa clientle.

Cration du compte Facebook pour ERP Qubec inc. - juillet 2011


ERP Qubec inc. offre ses services toute entreprise qui dsire amliorer ses processus d'affaires et
optimiser la gestion de leurs informations. Ces services sont bass uniquement sur des produits provenant de
l'Open Source tel que OpenERP, Linux Ubuntu, PostgreSQL et plus.

Cration du groupe OpenERP Qubec pour Linkedin - novembre 2011


Information gnral, change, aide et support. Tout ce qui touchent OpenERP est les particularits pour le
Qubec et le Canada.
Palmars des carrires 2012 - fvrier 2012
Martin Roger, le crateur de ERP Qubec inc. dcrit brivement dans une interview 3 sa carrire afin de
promouvoir le domaine de l'informatique de gestion.

Cration du Ple OpenERP Qubec - avril 2012


Afin de rpondre aux besoins des PME qubcoises quant la mise en place dun progiciel de gestion
intgre ERP Qubec , ERP-Entreprise, et Gestion-Ressources ont dcid de sassocier afin de crer un ple
de ressources et de comptences, le Ple OpenERP Qubec. Les trois entreprises situes au Qubec peuvent
accompagner les entreprises tout au long de leurs processus dimplantation d'OpenERP.

3 Cette interview se trouve dans Palmars des carrires 2012 de Septembre diteur.
9

I.4 Partenaires

ERP Entreprises
Situe Saint-Casimir, non loin de Trois-Rivires, ERP-Entreprises est une
firme internationale spcialise dans limplantation des Technologies
dOptimisation des processus de Production et de Gestion Valeur Ajoute.
Ces dernires annes, ERP-Entreprises a, par de multiples interventions
auprs de ses clients, intgr linformatisation des processus en utilisant diffrentes techniques
informatiques.
Gestion Ressources
Forte dune quipe de prs de 10 personnes, Gestion-Ressources situe
Montral accompagne les entreprises dans limplantation, le conseil et la
formation de leurs employs pour des solutions libres professionnelles.
Gestion-Ressources renforce son positionnement dans lindustrie du logiciel
libre en tant identifi comme lun des trois partenaires de la socit OpenERP au Qubec et lunique dans la
grande rgion de Montral.
Groupe Logic Expert
Groupe Logic Expert inc. assiste les entreprises dans la ralisation de leurs
projets en technologie de l'information. l'aide d'une approche personnalise
et d'un partage de connaissances, ils les accompagnent sur l'ensemble du
cycle de vie de leur projets.

Linko Solutions
Base Montral, Linko solutions est ne de lassociation de spcialistes
issus du monde des solutions daffaires commerciales (Enterprise Ressource
Planning ERP, Web, e-Commerce Boutique en ligne, e-Marketing). Sa
dmarche est base sur le constat que les PME ont des besoins comparables
aux grandes entreprises en termes dapplication daffaires et que ceux-ci ne peuvent tre satisfaits par les
logiciels commerciaux du march.

Ple OpenERP Qubec


Afin de rpondre aux besoins des PME qubcoises quant la mise en place
dun progiciel de gestion intgre, trois entreprises ; savoir ERP-Entreprise,
ERP Qubec et Gestion-Ressources ; ont dcid de sassocier afin de crer un
ple de ressources et de comptences, le Ple OpenERP Qubec. Les trois
entreprises situes au Qubec accompagne les entreprises tout au long de leur
processus dimplantation OpenERP.

10

I.5 Clients

Excavation Charles Grenier


Depuis 1984, l'entreprise uvre dans le respect de l'environnement
en excavation, nivellement, dblais et remblais de tous genres,
champs d'puration, dcontamination, dmolition de btiment,
cration d'aire cologique et environnememtale et fourniture de
matriaux.

MG Service
Depuis 1979, MG Service a pour mission doffrir lentretien prventif, la vente de
pices et le service durgence pour toutes les marques de surfaceuses glace.
Actuellement compte 12 employes.

Dupray Industrie
Prsent au Canada comme aux Etats-Unis, Dupray
commercialise des solutions de nettoyage cologique. Ainsi,
cette entreprise commercialise des machines planchers
Multiplo, des nettoyeurs haute pression vapeur, des
machines nettoyer les tapis, des nettoyants cologiques et
des savons .

11

II. Missions accomplies


II.1 Formation
Lors de mon arriv l'entreprise, il a bien sur fallu me former, et pour cela il m'a t attribu un
tuteur, Pierre Girard, pour m'apprendre mon nouveau travail. J'ai tout d'abord passer de longues heures pour
installer les logiciels utilises par mon entreprise tels que pgAdmin, OpenErp,.... Puis il m'a t attribuer la
tche de raliser avec l'aide de mon tuteur, un module de gestion de version des modules pour une utilisation
interne.
Tout d'abord, j'ai reu une fiche de synthse 4 concernant l'utilisation d'OpenErp pour me servir de
document de rfrence et l'analyse du module crer 5. Cette analyse contenait donc l'ensemble des tables
raliser pour le module.
C'est par ce point que ma formation commena en apprenant faire le codage en python d'une table,
ce qui fut plutt rapide, les types des champs et leurs noms tant fourni. Vient ensuite la ralisation des vues
en xml du module avec juste l'affiche des champs, l'ajout d"un bouton pour valider une version de module
uniquement si certaine tapes obligatoire ont t vrifi, et l'ajout des champs de recherches. Une fois le
module fonctionnel, j'ai alors du faire la scurit6 du module et sa traduction en anglais au cas ou par la suite
ce module serait utilis par un client. Cette mission ayant t bien analys et raliser avec un programmeur
exprimenter, elle n'a pos aucun problme.
Vous pouvez voir le travail que j'ai effectu, via les screens dans la partie annexes 7.
Au final, j'ai en une semaine raliser avec l'aide de mon tuteur un module fonctionnel. Et je suis fier
d'avoir pu crer un module utile, qui est maintenant utiliser par mon entreprise, aprs toutefois quelques
adaptations du des changements d'analyses.

II.2 Analyse
II.2.1 Les vues
Aprs ma formation, je me suis vu confier un projet raliser cette fois ci seul pour crer un dossier
charger de grer le dossier mdical des patients. Je devais donc reprendre un module 8 crer par mon patron
en 1 semaine ses dbut pour la version 5.0.3, et l'amener la version 6.1.1 pour avoir une version de
dmonstration prsenter d'ventuelles clients. OpenErp n'ayant pour l'instant aucun module mdical, cela
sera pour nous l'occasion d'largir notre clientle.

4 Retrouvez cette fiche http://doc.openerp.com/memento/OpenERP_Technical_Memento_v0.6.4.pdf


5 Cette analyse se trouve en annexe sous le titre "Tables gestion de versions de module"
6 Voir glossaire
7 Ces screens sont rfrenc sous les noms "formulaire gestion version module" et "Liste et recherche, gestion
version de module" en annexe
8 Vous pouvez avoir une ide de la structure du module au moment o on me la confier avec l'annexe
"MCD module health"

12

Au dbut il fallut beaucoup de tests avant que le module puisse s'installer correctement en 6.0.3, la
dernire version stable, ce que je dtaillerai dans une prochaine partie. Mais mme une fois le module
install, il apparut rapidement que le module tait facilement amliorable. Voici en effet pour exemple, la
faon dont sont reprsenter les assurances du patient, lorsque l'on cre ou modifie un patient partir du
formulaire associ.

La 1er chose qui saute au yeux est le faite de voir dans le patient rappeler l'identifiant du patient, que
l'on ne connait d'ailleurs mme pas celui ci tant cre automatiquement par le programme. De mme, pour
cre une assurance personnel le patient doit rappeler qui il est, comme on le voit dans le sous formulaire.
Ma 1er tche fut donc de me charger de l'ergonomie9 des vues avec:
*cration des vue de sous formulaires, et mme sous-sous-sous-sous formulaire pour viter
de rappeler les informations disponible comme id du patient, de la consultation...
*ajout de champs related10 pour les tables reli hors sous-formulaire.
Un champ related11 , est un champ indiquant l'information d'une autre table auquel on est
reli. Par exemple le nom du docteur dans la table consultation, pour la table examen.
*remplacement des 3 champs de 4 chiffres pour le numro d'assurance maladie
par un de 12 chiffres dans le formulaire du patient
*amlioration des vues de recherches

II.2.2 Les fonctionnalits


Ensuite aprs avoir tester le module, j'ai propos au fur et mesure au patron plusieurs amlioration.
Les suivantes furent accepte:
*Faire apparatre dans les mdication du patient, les mdicaments prescrit par les prescriptions.
En effet ceux ci ne sont pas reli, et les prescriptions utilisent pour prescrire des
mdicaments des champs diffrents de mdication !!!
*Afficher pour chaque patient le prochain vaccin faire
*mettre a jour la date de dernire visite des patients lorsque l'on cre une consultation
9 Voir glossaire
10 Voir glossaire
11 Voir glossaire

13

Pour pouvoir rajouter ces fonctionnalits il m'a fallut crer des scripts python, et bien videmment
modifier la structure de la base de donn.
Pour grer la mdication des patients correctement, j'ai d'abord penser crer des mdications
partir des prescriptions et leur donner l'identifiant du patient de la prescription. Mais je me suis alors
trouver confronter un problme pineux.
En effet, j'ai voulu raliser cette fonction par le remplissage d'argument automatique dans les sousformulaires , mais je me suis rapidement rendu compte que l'identifiant du patient n'tait pas pass travers
3 sous-formulaires.
Au final, j'ai donc dcid de redfinir la fonction de cration des prescriptions, pour crer en mme
temps une mdication reprenant les mmes informations que celles dj crite. Cela me permet galement
d'viter de surcharger les utilisateurs avec encore plus de sous-formulaire. Mais pour laisser le systme
d'information cohrent, il me faudra galement m'occuper des mises a jour et suppressions pour rpercuter
les changements de l'un sur l'autre.
Quand la gestion des vaccins, il faudra crer un champs dans les vaccins indiquant le temps avant
le prochain vaccin, que je prvois de laisser 0 en cas de vaccin effectuer une fois dans la vie. Quelques
champs ajouts dans le patient pour stocker le prochain vaccin faire, et il ne me reste plus qu'a crer les
fonctions pour remplir ces champs.
Quand la dernire fonctionnalit, il me suffit d'ajouter dans les fonction de cration et criture des
consultations une rcriture du patient associ pour mettre sa date jour, ce qui sera vite fait.

II.2.3 Importation des bases de donnes

II.2.3.1 Importation de la BDPP


Alors que je croyais le module enfin fini de dvelopper et que j'avais fini de le traduire et de faire sa
scurit 12 , Martin m'a appris que je devrais importer une base de donns de mdicament, la BDPP, afin
d'avoir une version plus complte. Et une fois cette importation fini je fut charger de l'importation de la
cim10, une base de pathologies.

Je vais tout d'abord commencer par l'importation de la BDPP. J'ai regarder les fichiers csv a importer
ainsi que le site de rfrence 13 qui contient la structure des tables trop longue pour tre crite ici, et la
description des relations14 .
L'on voit rapidement que le champs drug_code est prsent dans chaque table, or toutes les tables sont
lie au mdicament d'aprs la description des relations peut comprhensible. J'ai donc pense une cl
trangre15 drug_code, qui pour chaque fichier de mdicament rfrence drug_code de la table mdicament.
Mais rapidement cette ide semble bizarre, car a un ingrdient ne correspond pas un unique mdicament, ce
qui serait le cas si on avait une cl trangre. C'est en regardant les fichiers csv que j'ai eu la solution, en effet
ceux ci sont remplis de doublons. Ainsi toutes les informations des ingrdients sont rcrire plusieurs fois
avec des drug_code diffrent.
12 Voir glossaire
13 Le site de rfrence: http://www.hc-sc.gc.ca/dhp-mps/prodpharma/databasdon/dpd_read_me-bdpp_lisez-moi-fra.php
14 Voir l'annexe "Relations BDPP"
15 Voir glossaire

14

Aprs lecture des autres fichiers csv, il apparat donc que toutes les donnes ont t exporter avec des
cls trangre pour les relations, au lieu de tables relations 16 qui permettent de coder des relations plusieursplusieurs. En effet, un ingrdient peut-tre utilis dans plusieurs mdicaments, et un mdicament avoir
plusieurs ingrdients par exemple. Pour viter d'avoir autant de doublons que dans les fichiers csv, je vais
donc changer la structure des tables import pour avoir des tables relations au lieu de cls trangres. Faire le
passage d'une structure a l'autre sera alors le principale travail de mon programme d'importation.

ex codage pour la BDPP:

L'image ci dessus reprsente les liens qui serait crer avec les fichiers suivants.
Medicament.csv: drug_code , brand_name,....
1,aspirine,...
2, remineralisant, ...
ingredient.csv: drug_code, ingredient,....
1, aspartane,...
2,carbonate,....
1,carbonate,....
1,algue,....
II.2.3.2 Importation de Cim10
Lorsque j'ai eu la mission d'importer la base Cim10, Pierre Girard, mon tuteur, avait dj trouv une
base importer et il m'a montrer le schma 17 de la base sous Microsoft Access. Mon tuteur m'a galement
fourni un document de 54 pages dcrivant la structure complte de la base et son fonctionnement sous
AS400.
Aprs l'importation prcdente, je savais qu'il serait facile d'importer les tables "en copie" dans le
systme en reprenant mon ancien assistant et en changeant juste les noms de ce qu'il faut importer. Quand a
la structure des tables j'ai fait peu de changement, la prcdente tant viable.
Les changements sont:
*suppression de la table chapter, en effet l'ordre des chapitres sert lorsque l'on veut afficher la
base de donn sous forme de pdf, ce qui ncessiterai un programme crire.
Comme ce n'est pas notre cas, nous n'en avons pas besoin.
*suppression de la table system, car une table master correspond un libelle systmatique, qui sera
donc stock directement dans la table master.
16 Voir glossaire
17 Voir l'annexe "MLD CIM10"

15

*stockage dans classification(master sur le schema) des attributs contenu dans la table common.
En effet un enregistrement de master correspond 0 ou 1 enregistrement de common. Et
d'aprs le document de rfrence, les champs boolen female, sequela,post... doivent tre
considr false si la table master n'est pas reli une table common. J'ai donc dcid de
reporter tous les attributs directement dans la table master pour ne pas surcharger la base de
donne de tables, ce qui est peu lisible.
*Toujours pour ne pas surcharger le systme de tables, j'ai supprim la table libelle
et remplacer les rfrences cette table par le libell correspondant.
*Enfin, chaque table master contient les champs id1,id2,id3...id7
Ceux ci reprsentent en faite les diffrents niveaux de classification du master.
Le dernier champ non nul reprsente l'id du master courant.
L'avant dernier champ non nul celui du parent du master, si ce champ existe.
L'avant avant dernier non nul reprsente le grand parent.

Cette structure ne convenant pas pour une visualisation via openErp, j'ai dcider avec mon
tuteur de remplacer ces champs par un unique champ indiquant le parent du master. Cette
tape sera la plus "dlicate" de l'importation, mais nous verrons ca dans la partie
dveloppement.
Jtais galement cense ralise la mises jour de la CIM10, mais les seuls fichiers de mise jours
trouver dans des formats xls se sont rvls trs dur importer cause de multiples cas grer pour une
importation par programme. L'opration tait dj compliquer car les modifications n'tait pas codes table
par table. Elle semblait encore plus dur quand j'ai remarquer des erreurs dans le fichiers (ex: cration de code
au lieu de modification de code existant). Puis elle est apparu totalement impossible lorsque je me suis rendu
compte que dans les fichiers xls apparaissaient des mots barrs que le programme ne pouvait pas voir...
J'ai donc eu l'accord de mon tuteur pour pass un autre module, que je ne dtaillerai pas ici. Mon
module et mon stage n'tant pas encore fini.

II.3 Dveloppement
II.3.1 Les vues
Sous openErp, les vues sont coder en xml. XML signifie eXtensible Markup Language, autrement dit
"Langage de balisage extensible" et est donc un langage balise comme le html. Il est principalement utilis
pour sauvegarder des donns, ici sur les vues. OpenErp dfinissant ses propres fonctions, c'est le seul logiciel
pouvoir afficher les vues que j'ai cre en xml.
La cration de vue gnre en thorie peut d'erreur, hormis parfois des erreurs d'identifiants (nom non
dfini, id non unique...). Le principal travail ici est donc de filtre les informations, d'utiliser les
regroupements, vues de recherches... afin d'obtenir une vue avec la meilleur ergonomie18 possible. En
loccurrence j'ai fais les changements dcrit dans la partie d'analyse, et coder les vues 19 pour la vingtaine de
tables importer.

18 Voir glossaire
19 Pour vous faire une meilleurs ide des vues que j'ai cre je vous invite regarder les annexes "Architecture module
health", "barre recherche patient" et "formulaire classification".

16

Voici un exemple de code xml:


<record model="ir.ui.view" id="view_health_patient_tree">
<field name="name">health.patient.tree</field>
<field name="model">health.patient</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="health.patient">
<field name="file_no"/>
<field name="name"/>
<field name="maiden_name"/> <field name="birth_date"/>
<field name="sex"/>
<field name="health_insurance_exp_date"/> <field name="blood_group"/>
<field name="gardian_id"/> <field name="doctor_id"/>
<field name="family_doc"/> <field name="patient_status"/>
<field name="last_visit"/> <field name="next_visit"/>
<field name="next_vaccin"/> <field name="next_date_vaccin"/>
</tree>
</field>
</record>

Le code ci dessus code la vue suivante, tronqu par manque de place:

II.3.2 Les fonctionnalits

Passons maintenant aux fonctionnalits que j'ai dvelopper. Les classes et les fonctions dans
OpenErp sont cod par le langage orient objet20, qui est galement un langage interprt21, Python. Celui ci
possde une syntaxe ressemblant celle du java ou du C, avec cependant quelques changements dont les
plus important me semble tre la disparition des types des variables et la dfinition des blocs par
l'indentation. L'on trouve galement des fonctionnalits supplmentaire tel que les dictionnaires, les tuples ou
les comprhensions de liste.
Les fonctions python sous OpenErp peuvent tre appel la cration d'un objet, son criture, ou sa
suppression en redfinissant ses fonctions dans OpenErp. Ce que j'ai fais pour coder les fonctionnalits lister
dans la partie d'analyse. Mais les fonctions python peuvent galement tre appeles lappuie d'un bouton, le
changement d'un champs...
La principale difficult pour dvelopper est alors de connatre les fonctions qui nous sont ncessaire.
Pour cela j'ai utilis la fiche de synthse sur OpenErp 22, internet, l'aide de mes collgues... Mais avant tout,
ma principale source d'aide fut le code des autres modules, comme pour la cration de xml d'ailleurs.

20 Voir glossaire
21 Voir glossaire
22 Retrouvez cette fiche http://doc.openerp.com/memento/OpenERP_Technical_Memento_v0.6.4.pdf

17

Voici un exemple de code python affichant un message d'erreur si on veut supprimer une mdication
prescrit par une prescription, sans avoir supprimer cette prescription:

Mais j'ai galement coder des codes plus consquents 23.

II.3.3 Importation des bases de donnes


II.3.3.1 Importation de la BDPP
La 1er importation que j'ai eu faire t comme je l'avais dis l'importation d'une base de donnes de
mdicaments, la BDPP ou Base de donnes sur les produits pharmaceutiques. Comme je l'ai dit dans
l'analyse, il me fallait trouv un moyen d'importer les tables en changeant leurs structure pour viter d'avoir
autant de doublons que la base de donn importe. Cela permettra en effet d'acclerer les requtes que nous
pourrions effectuer.
Les structures de la base de donnes n'ont pas changs hormis l'ajout de tables relations, car pour
rduire le nombre de table j'ai dcider d'importer les tables puis de garder le drug_code meme s'il est non
utile. Cela m'a permis de reprendre les vues de mes tables pour controler le bon fonctionnement de
l'importation avant de lancer un script sql de cration des relations.
J'ai adapter mon script cause d'erreur, entre autre de doublons(drug_id inclu) dans la base de
donns import et des rimportations pour les tests. J'ai finalement raliser un script sql fonctionnel grant
ces erreurs en utilisant le pseudo-code suivant:
1.Ajout dans la table de relation, des relations non-existantes.
2.Creation d'une table pour contenir les doublons de X, et remplissage en fesant correspondre chaque identifiant de
la table X l'identifiant de la ligne identique (hors drug_code) de plus petit identifiant. Ces 2 identifiants
peuvent tre identique.
3.Supression des lignes qui deviendraient identiques l'tape suivante dans la table des relations
4.Remplacement dans la table de relation des identifiants de la table X, par l'identifiant associ par la table de
doublons.
5.Supression dans la table X les doublons, en supprimant dans la table les lignes dont l'identifiant
est diffrent de l'identifiant associ par la table des doublons.

23 Pour avoir une vue d'un code python plus consquent, regardez l'annexe "Code affichage prochain vaccin"
18

II.3.3.2 Importation de Cim10


Aprs avoir raliser l'importation de la BDPP, j'ai eu raliser l'importation de la base de pathologie
cim10. Cette importation fut plus rapide, principalement car j'avais dj raliser un assistant d'importation et
sa vue pour la BDPP. En quelques changements, j'ai donc eu un assistant fessant l'importation des bases de la
cim10 en recopiant l'identique les tables. J'ai alors put me concentrer sur la partie sql du code pour grer les
changements de structure et remplir mes nouvelles tables.
J'ai ici du excuter mes requtes sql partir du script python, pour permettre une boucle se chargeant
de trouver le parent mettre a la table master que j'ai redfini 24.
Au final, mme sans difficult majeur pour le codage, la gestion de cration du code d'importation et
le changement de structure sur autant de tables ont rendu l'opration assez longue. A noter que dans les 2
importations, j'ai optimiser les requtes sql avec la cration et la suppression des indexes adquat. En effet,
un index augmente considrablement la vitesse des requtes l'utilisant, mais alourdis les insertions dans les
tables correspondantes...
Au final, pour vous donn une ide de l'efficacit de mes importations voici quelques chiffres:

Base de donnes

Nombres de lignes
imports

Nombre de doublons Changement de


supprims
structure

Temps d'importation

BDD

192772

146408

non

1h 10mn

CIM 10

57479

Oui

1h

II.4 Tests et dbogage


Comme toujours, qui dit programmation dit dbogage. Ma 1er mission tait d'ailleurs de passer le
module health de la version 5.x a la version 6.1.1 Cela a bien sur entrain de nombreux bugs.
Bugs de dpendances: Le module appelle des fonctions qu'il ne peut pas appeler, car les
dpendances n'avait pas t correctement rempli
Bugs de xml: Dans la version prcdente du xml, de nombreuses trangets semblaient permises.
Mais avec la nouvelle version le faite de dfinir 2 fois le mme attribut d'une balise,
de fermer une balise non ouverte... ne passe pas
Bug "logique": Affichages des champs "last_visit" et "next_visite" dans la vue des patients, mais
rien ne permet de les remplir dans le formulaire

24 Vous pouvez trouver ce code en annexe "code recherche parent master"

19

Ensuite afin de tester mon module, j'ai bien videmment remplie la base avec des donnes tests pour
voir si cela provoquer d'ventuelles bug et pouvoirs tester l'ergonomie25 de mes vues de recherches. Cela
gnralement suffi me montrer les bugs corriger. Mais j'ai galement effectuer des tests de boites noires26
et des test de boites blanches27 en crant des jeux de tests28 .

Un des bugs que j'ai trouv fut provoquer car les donnes importer comprenait dans les 2
importations, des doublons aux niveaux des fichiers csv. Ce problme fut rapidement rsolu en supprimant
les doublons du fichier csv, mais j'ai d'abord du cre un script shell que voici pour me sortir ces doublons. Ici
l'exemple pour vrifier si le fichier exclude un doublon sur sa cl primaire (SID, excl, LID) respectivement
en colonne 1, 2 et 4 dans le fichier csv.
cat EXCLUDE.csv|cut -d';' -f1,2,4|sort -u> nodoublon.csv;
cat EXCLUDE.csv|cut -d';' -f1,2,4|sort > doublon.csv;
diff doublon.csv nodoublon.csv

II.5 Conclusion
En conclusion, ce qui devait tre la base une simple mise jour de module m'aura pris finalement 6
semaines, afin de raliser les nouvelles demandes qui sont venu se rajouter au fur et mesure de la
construction.
Mais grce aux modifications de structure que j'avais prvue de faire aprs avoir vu les schma des
MCD du module health et des bases de donnes importer, le dveloppement du projet en python, xml et sql
s'est retrouv grandement facilit. Le dveloppement dirig par les tests m'ayant permis de raliser un travail
viable.
Et au final j'ai put crer la 1er version de module mdical d' OpenErp fonctionnel, et ce fessant voir
une bonne partie des fonctionnalits permises par OpenErp. Ce qui me sera par la suite profitable dans ma
vie professionnelle, OpenERP tant un systme ERP29 mondial, qui est galement trs utilis en France.

25
26
27
28
29

Voir glossaire
Voir glossaire
Voir glossaire
Vous pouvez voir un exemple de jeu de test l'annexe "jeu de test, liaison mdication-prescription"
Voir glossaire

20

III. Bilan technique et humain


III.1 Nouvelles comptences
Au cours de ce stage j'ai acquis de nombreuses comptences techniques. J'ai ainsi appris de
nouveaux langages de programmation comme le xml ou le python, mais ceux ci ressemblait des langages
que j'avais dj appris au niveau du paradigme de programmation. Ainsi le xml utilise la programmation par
balise comme le html, et python utilise la programmation orient objet comme le java. Je n'ai donc pas appris
grand chose de ce cot la, mais plutt une nouvelle syntaxe.
De plus j'ai appris l'utilisation d'outils tels que Pype, pgAdmin ou Meld. Pype tant un
environnement de dveloppement python, pgAdmin un outil de gestion des bases de donnes et Meld un
visionneur de diffrence sur 2 trois fichiers. Autant de fonctionnalits qui peuvent savrer utile.
J'ai bien videmment aussi appris utiliser OpenErp et y ajouter des fonctionnalits. Son
apprentissage est mon avis un atout considrable, car il s'agit d'un systme ERP30 mondialement utilis, y
compris en France o il est trs prsent. Or la gestion est l'un des principale dbouch du DUT informatique
justement nomm "DUT informatique de gestion". Et celle ci ncessitant souvent des logiciels ERP ou
Prologiciel de Gestion Intgr en franais, il y a de grandes chances que je doivent travailler sur un tel
systme. Cette exprience me serait alors grandement profitable.

III.2 Relations humaines

Le faite d'voluer en milieu professionnelle, m'a galement permis de commencer comprendre le


fonctionnement des relations humaine dans ce milieu. Non pas le sens de la hirarchie, celui ci tant rduit
dans une entreprise aussi petite que la ntre. Mais cela m'a appris l'importance du questionnement et de la
comprhension de l'interlocuteur, en entreprise.
Pour exemple, il m'est arriv deux fois que j'essaye de faire un travail que l'on m'avais donn en
ralit impossible ou trop fastidieux. J'avais en effet cru qu'il devait tre possible, car il devait avoir t
analys avant. Mais ce n'tait pas le cas, et j'ai donc perdu un peu de temps avant de m'en rendre compte en
questionnant mon interlocuteur. Ainsi, j'avais t une fois charger de tester des modules financiers, et de faire
un rapport mon patron. Mais ce qu'il ne savait pas, c'est que les liens qu'il m'avait envoy tait des suites de
modules et non des modules. L'un d'eux comprenait ainsi un ensemble de plus de 20 modules.

30 Voir glossaire

21

III.3 Lien avec l'enseignement de l'IUT


Au cours de ce stage, j'ai bien videmment eu l'occasion de mettre en pratique et de consolider mes
connaissances sur le sql, l'analyse, les mthodes de tests...
J'ai galement dcouvert plusieurs langages, que ce soit avec l'aide de mes collgues, ou en
regardant le code d'autre modules. Et cela m'a appris ce qui est mon avis le plus important en entreprise, le
faite d'apprendre apprendre. Qualit particulirement importante pour un jeune sans exprience, surtout en
informatique qui est un domaine en perptuel changement. Comptence que j'avais dj commencer
apprendre l'IUT, lorsque nous devions nous servir de documentation pour crire nos code. Cela tait par
exemple le cas en java avec la javadoc, ou en rseau avec le site de rfrence w3c.
Le faite d'appliquer les principes suivants dans un milieu professionnelle, et de voir de mauvais
exemples lors de l'importation de base de donne ou dans certain code qui m'ont servis d'exemples, m'a
galement fait comprendre l'importance des standards de programmation et de la documentation. Principes
que nos professeurs ont essays de nous faire comprendre ds l'IUT, mais dont nous n'avions pas encore pus
remarquer la justesse.
Pour finir, viennent les comptences relationnelles, que nos professeurs de communication ont
commencer nous enseigner. Comptences que j'ai commencer apprendre comme dit au prcdent
paragraphe. Mais que j'ai encore besoin de dvelopper, en particulier si je compte voluer vers certains
postes comme chef de projet ou vendeur technico-commercial.

III.4 volution possible

Ce stage m'aura au final permis de confirmer m'a passion pour le mtier de programmation. Je pense
ainsi pour l'instant faire un mtier de programmeur polyvalent, car cela me donne l'impression d'avoir
participer une ralisation concrt. Ce qui je pense ne serait pas le cas, avec des mtiers comme analyste
programmeur ou chef de projet qui ne doivent pas forcment savoir coder et ne connaissent donc pas les
difficults du "terrain".
Mais il me reste beaucoup de choses apprendre, que je sois au cours des tudes que je vais faire ou
de mes prochains stage. Il n'est donc pas impossible que plus tard je change d'ide, et que je m'oriente vers
un projet professionnelle plus ambitieux.
D'ailleurs afin d'avoir une meilleur vues des possibilits qui s'ouvrent moi je compte bien essayer
de faire un stage dans de plus grandes entreprise, franaise cette fois. Et galement travailler dans d'autres
domaine, celui que j'aimerai le plus voir tant celui des jeux vido.
Ce que j'aurai surement l'occasion de faire, car je compte raliser un master IVI (Image Vision
Interaction) Lille1. Ceci me permettra de voir les bases de l'imagerie numrique, la ralit augment, la
gestion de l'interaction... autant de savoirs utile dans les jeux vidos, mais que je pourrai galement utiliser
dans d'autres domaines.

22

III.5 Conclusion
Au cours de mon stage j'aurais put ainsi apprendre l'utilisation de nombreux outils et de nouvelles
comptences, d'autant qu'tant donn le peu d'effectif de l'entreprise chacun se devait d'tre polyvalent.
J'ai ainsi appris par exemple reprendre le code d'autres programmeurs, grer des bases de donnes, m' autoformer ou mme raliser une communication efficace.
Cela m'aura galement permis de dcouvrir le domaine de l'informatique de gestion, principale
dbouch aprs un DUT informatique. Mais ce qui me semble galement le plus important, cela m'aura
permis de dcouvrir la structure particulire des trs petites entreprises qui on un dynamisme et une
convivialit que je ne pense pas retrouver ailleurs.

23

Conclusion:

Au final les changements du MCD du module health en fonction des bases de donnes importer et
des fonctionnalits apporter m'aura permis d'en optimiser plus facilement la gestion des mdications et des
vaccins. Ainsi que de fournir aux utilisateurs un ensemble de donne tendu pour les maladies et les
mdicaments.
Ce stage m'aura de plus permis d'appliquer et de dvelopper mes comptences, aussi bien technique
que relationnelle, et de voir l'ensemble des opration ncessaire un dveloppement. J'ai ainsi appris par
exemple reprendre le code d'autres programmeurs, grer des bases de donnes, m' auto-former ou mme
raliser une communication efficace.
J'ai ainsi eu la chance de dcouvrir le domaine de l'informatique de gestion, dans les trs petites
entreprises. Ce que je compte bien comparer avec d'autres entreprises, pour pouvoir mieux apprhender les
spcificits des entreprises qubcoises, ainsi que celles de diffrents secteurs.
De plus cela m'aura permis de fournir le 1er module mdical d' OpenERP. Il ne reste maintenant plus
qu'a voir si ce qui l'origine un logiciel de gestion sera mme de conqurir le domaine mdical, et
pourquoi pas d'autres secteurs dans le futur.

24

Annexes
Analyse
Analyse gestion de versions de module
Module: erpquebec_module
Description: Ce module nous permettra de faire une gestion simple de nos versions de modules dvelopps
l'interne.
Tables mettre en place:
1 erpq_module (table matre des modules)
2 erpq_module_rev (table des rvisions)
3 erpq_module_rev_backup (table pour grer nos sauvegardes)
3 erpq_openerp_version (grer les versions de OpenERP)
Tables et champs:
1. erpq_openerp_version (contient toutes les versions de OpenERP)
1. version (type char)
2. date_of_release (date de relche)
2. erpq_module (table matre pour les modules)
1. name (nom du module)
2. description (description du module)
3. origin (description de l'origine de la demande - problmatique.)
4. erpq_module_rev_ids (one2many sur erpq_module_rev)
3. erpq_module_rev (Table pour les rvisions)
1. erpq_module_id (many2one sur erpq_module)
2. revision (champ caractre)
3. objectif (champ caractre)
4. project_id (many2one sur project)
5. depend (champ caractre , on y inscrit les dpendances)
6. revision_date (date de rservation)
7. release_date (date de relche)
8. programmer_user_id (many2one sur res_users, usager faisant la rvision)
9. unit_test_user_id (many2one sur res_users, usager faisant les tests)
10. openerp_version_ids (identifie les versions sur lequel le module a t test)
11. obsolete (champ bollean indiquant que cette version n'est plus ou pas utilisable)
12. customer_ids (one2many sur res_partner, indique les clients o est install le module)
13. check_module_desc (champ boolen, indique si la description du module a t vrifi.)
14. check_security (champ boolen, indique si la scurit t vrifie)
15. check_translation (champ boolen, indique si la traduction t vrifie)
16. check_print_comment (champ boolen, indique qu'il n'y a plus de message de dbogage)
17. state (champ de type slection; en dveloppement, en test, approuv...)
18. erpq_module_rev_bk_ids (one2many sur erpq_module_rev_bk)
4. erpq_module_rev_backup (Contient les sauvegarde journalire)
1. erpq_module_rev_id (many2one sur erpq_module_rev)
2. date (date du jour)
3. file_name (nom du fichier attach, de type char)
4. file_data (donnes du fichier, de type binaire)

25

MCD module health

26

MLD CIM10

27

Relations BDPP

Autre

Jeu de test, liaison mdication-prescription


Vrifier que la cration d'une prescription, une mdication associ avec les bons champs soit cre
Vrifier que la suppression d'une prescription, sa mdication associ soit supprim
Vrifier que supprimer un mdicament sans prescription associ soit autoris
Vrifier que supprimer un mdicament li une prescription affiche un message d'erreur EXPLICITE
Pour les classes mdication et prescriptions:
-Vrifiez que en cas de rcriture de l'un des objets, les champs commun avec l'autre soient changer
-Vrifiez que l'utilisateur peut changer des champs non commun aux deux sans que tout bug
Vrifier que si on change l'identifiant du patient d'une mdication li une prescription un message d'erreur
s'affiche
Vrifier que si on change l'identifiant du patient d'une mdication reli aucune prescription le changement
soit pris en compte

28

Code
Code affichage prochain vaccin

Code recherche parent master


Code permettant l'insertion de la table master de cim10, dans ma redfinition de cette table. La table
redfini comporte un champ parent, au lieu de 7 champs d'identifiants, un par niveau (indique le master pour
le chapitre associ, le sous-bloc, la catgorie...).
La table tmp_classification correspond ici la table master, avec son libelle de rajouter. La table
master tait avant reli son libell via la table system. Voir MLD CIM10 en annexe.

29

Screen

Architecture module Health

30

Barre recherche patient

Formulaire classification

31

Formulaire gestion
version module

32

Liste et recherche, gestion version de module

33

Glossaire
Champ related:
Un champ related, est un champ indiquant l'information d'une autre table auquel on est reli. Par
exemple le nom du docteur dans la table consultation, pour la table examen.
Cl trangre:
En modlisation, une cl trangre est un champ d'une table qui fait rfrence l'identifiant d'une
autre table. Cela permet de coder des relations un-plusieurs. Par exemple si chaque mdicament n'est
fabriqu que par une seul compagnie, il suffit de rajouter dans les mdicaments une cl trangre qui fait
rfrence la compagnie fabriquant le mdicament.
Ergonomie:
L'ergonomie est l'tude scientifique des relations entre l'homme et ses outils de travail milieux...
et l'application de ses connaissances la cration de systmes qui puissent tre utiliss avec le maximum de
confort, de scurit et d'efficacit par le plus grand nombre .
On trouve par exemple en ergonomie la "rgle des trois clics" que j'ai utilis. Cette rgle dit que
l'utilisateur doit pouvoir acceder n'importe qu'elle information en trois clic maximums, pour pouvoir
rapidement trouv l'information qu'il cherche sans tre frustr.
Langage interprt:
Un langage interprt n'est pas excut directement par la machine, mais par un autre programme
appel interprte. Au contraire, un programme crit en langage compil est traduit en code binaire et est
lisibles par la machine.
Un programme interpret peut fonctionner sur tous les systmes d'exploitation ayant l'interprte, la
o un executable ne peut s'executer que sur un unique systme d'exploitation. Au final, les langages compils
sont plus rapides, mais ncessitent une compilation par systme d'exploitation.
Langage orient objet:
Les langages orients objets sont des langages permettant de dfinir des "objets" par un ensemble
d'attributs et de fonctions. La communication entre les objets via leurs relations permet de raliser les
fonctionnalits attendues, de rsoudre le ou les problmes.
Scurit:
La ralisation d'une politique de scurit sous OpenErp, passe par la cration de groupes
d'utilisateurs tels que Chef comptable ou employ comptable et la dfinition du droit de ces groupes
d'utilisateur sur les tables, les vues... du module. Les diffrents droits des utilisateurs sont la lecture,
l'criture,la cration et la suppression.

34

Systme ERP:
ERP est un sigle anglais qui signifie Enterprise Resources Planning, soit "planification des
ressources de l'entreprise". Il dsigne les applications informatiques permettant aux entreprises de grer la
totalit de leur activits, et d'optimiser l'ensemble de leurs ressources. L'quivalent francais du sigle ERP, est
PGI pour Prologiciel de Gestion Intgr.
Table relation:
Jappelle ici table relation, une table contenant les relations entre deux autres tables ont plus. Pour
cela, elle stocke pour chaque association les identifiants de chacune des tables relis et d'ventuelles
informations relative cette association.
Test de boite blanche:
Les tests de boites blanches dsignent le fait le construire les tests d'un programme en s'aidant de son
code. Le principe est de faire des tests qui vont passer par chaque ligne du code pour vrifier qu'elle est
valide.
Test de boite noire:
Les tests de boites noires dsignent le fait de construire les test d'un programme sans connatre son
code. Souvent ceux ci sont crer avant l'criture du programme pour ne pas tre influenc par la faon dont
on a cris le code. Les tests de boites noirs reposent la notion de "catgories" qui considre que plusieurs
donnes d'entres devraient tre soumis aux mmes traitements.
Ex: Si on calcule le cout de l'essence d'un parcours en fonction du nombre de kilomtres parcouru,
toutes les entrs ngatives doivent renvoyer une erreur. Les entres ngatives font donc parti
de la mme catgorie.

35

Bibliographie:

www.erpquebec.com: site officiel de l'entreprise Erp Quebec Inc


www.openerp.com : site officiel du logiciel OpenErp
http://doc.openerp.com/memento/OpenERP_Technical_Memento_v0.6.4.pdf :
fiche de synthse concernant l'utilisation de OpenErp
http://www.hc-sc.gc.ca/dhp-mps/prodpharma/databasdon/dpd_read_me-bdpp_lisez-moi-fra.php:
site expliquant la structure de la BDPP, la base de donnes de mdicaments que j'ai importer.
http://www.med.univ-rennes1.fr/noment/cim10:
site permettant de visualiser la base de pathologie cim10, que j'ai import

36

Vous aimerez peut-être aussi