Bonjour,
Je sais que la categorie ne conviens pas pour ma quesiton. (il serait peut etre judicieux d'ajouter une categorie, programmation python generale).
Je suis toujorsu sur l'implementation du logiciel pour les medecins. Je voudrais avoir vaut conseil par rapport aux stockages des données concernant les differens patient.
Se que je pensais faire, c'etait de stocker lesdonnées (nom, prenom, ect...) dans un fichier "information.data). A l'ajout d'un nouveau patient, je créé un dossier, et je créé le fichier contenant les informations. Ensuite le medecin n'a plus qu'a ajouter les fichier des differentes test effectuer par le patient.
Se que je n'aime pas dans cette solution, c'est que le medecin peut acceder au fichieret donc causer des bug a l'application. L'aventage c'est que ca ne demande pas d'installation de librairie supplementaire et qu'il est tres facile d'ecrire et de lire les fichiers.
mon probleme dans cette implementation, c'est que je ne sais pas coment lié mon repertoire a ma personne. Je voudrais pouvoir créé une listbox avec tout les noms et prenoms des patients deja inscrit, afin qu'il est plus qu'a choisir la personne. et que a chaque personne je lui mette le chemin d'acces a son fichier pour ensuite pouvoir faire une liste de tout les fichiers exploitables.
A niveau code pour l'instant j'ai créé une classe personne. en voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86 # -*- coding: cp1252 -*- class Personne: def __init__(self): self.pathfile = "" self.name = "" self.firstname = "" self.adress = "" self.CP = 0 self.city = "" self.telephone = "" self.birthday = "" self.doctor = "" # accessors def getName(self): return self.name def getFirstname(self): return self.firstname def getAdress(self): return self.adress def getCP(self): return self.CP def getCity(self): return self.city def getTelephone(self): return self.telephone def getBirthday(self): return self.birthday def getDoctor(self): return self.doctor # mutators def setName(self, new_name): self.name = new_name def setFirstname(self, new_firstname): self.firstname = new_firstname def setAdress(self, new_adress): self.adress = new_adress def setCP(self, new_CP): self.CP = new_CP def setCity(self, new_city): self.city = new_city def setTelephone(self, new_telephone): self.telephone = new_telephone def setBirthday(self, new_birthday ): self.birthday = new_birthday def setDoctor(self, new_doctor): self.doctor = new_doctor # permet de mettre a jour les infos de la personne def fctUpdateInfo( self, name, firstname, birthday, adress, cp, city, tel, doctor ): self.setName( name ) self.setFirstname( firstname ) self.setBirthday( birthday ) self.setAdress( adress ) self.setCP( cp ) self.setCity( city ) self.setTelephone( tel ) self.setDoctor( doctor ) # permet d'ecrire le fichier à la creation d'un nouveau patient def fctWriteInformation( self, path ): myfile = open( path, 'w' ) myfile.write( self.getName() + "\n" ) myfile.write( self.getFirstname() + "\n" ) myfile.write( self.getBirthday() + "\n" ) myfile.write( self.getAdress() + "\n" ) myfile.write( self.getCP() + "\n" ) myfile.write( self.getCity() + "\n" ) myfile.write( self.getTelephone() + "\n" ) myfile.write( self.getDoctor() + "\n" ) myfile.close() # permet de lire le fichier d'un patient def fctReadFile(): myfile = open( path, 'r' ) setName( myfile.read() ) setFirstname( myfile.read() ) setBirthday( myfile.read() ) setAdress( myfile.read() ) setCP( myfile.read() ) setCity( myfile.read() ) setTelephone( myfile.read() ) setDoctor( myfile.read() ) myfile.close()
Et voici mon interface graphique pour le moment.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121 # -*- coding: cp1252 -*- from Tkinter import * from Personne import * import tkMessageBox import os import shutil patients = [] def fctMakeList(): return def onAdd(): if( txtName.get() == "" ): tkMessageBox.showwarning("Error", "Give a name" ) return if( txtFirstname.get() == "" ): tkMessageBox.showwarning("Error", "Give a first name" ) return if( txtAdress.get() == "" ): tkMessageBox.showwarning("Error", "Give an adress" ) return if( txtCP.get() == "" ): tkMessageBox.showwarning("Error", "Give a code postal" ) return if( txtCity.get() == "" ): tkMessageBox.showwarning("Error", "Give a city" ) return if( txtTelephone.get() == "" ): tkMessageBox.showwarning("Error", "Give a telephone number" ) return if( txtBirthday.get() == "" ): tkMessageBox.showwarning("Error", "Give a birth day" ) return if( txtDoctor.get() == "" ): tkMessageBox.showwarning("Error", "Give a name of the doctor" ) return # add the personne one_personne = Personne() one_personne.fctUpdateInfo( txtName.get(),txtFirstname.get(),txtBirthday.get(),txtAdress.get(), \ txtCP.get(),txtCity.get(),txtTelephone.get(), txtDoctor.get() ) # create a directory for her one_personne.pathfile = one_personne.getName() index = 1 # test if the direcrty with her name exists while( os.path.isdir( one_personne.pathfile ) ):# renvoit True si path désigne un répertoire existant one_personne.pathfile = one_personne.pathfile + str( index ) index = index + 1 os.makedirs(one_personne.pathfile, mode=0777) # créé tous les repertoires qui existent pas tkMessageBox.showinfo("Information", "The data for are be save in the directory: " + one_personne.pathfile ) # creer un fichier qui va contenir toute les données path = one_personne.pathfile + "/private.data" one_personne.fctWriteInformation( path ) def onDelete(): answer = tkMessageBox.askyesno("Comfirmation", "Are you sure to delete this directory?") if( answer): shutil.rmtree(one_personne.pathfile) # suprrime un repertoire non vide ############################################ # interface graphique ############################################ window = Tk() lName = Label( window, text="Name: " ).grid( row = 0, column = 0, sticky = E) txtName = Entry( window ) txtName.focus() txtName.grid(row = 0, column = 1) lFirstname = Label( window, text="Firstname: " ).grid( row = 0, column = 2, sticky = E) txtFirstname = Entry( window ) txtFirstname.focus() txtFirstname.grid(row = 0, column = 3) lAdress = Label( window, text="Adress: " ).grid( row = 1, column = 0, sticky = E) txtAdress = Entry( window ) txtAdress.focus() txtAdress.grid(row = 1, column = 1) lCP = Label( window, text="Code postal: " ).grid( row = 2, column = 0, sticky = E) txtCP = Entry( window ) txtCP.focus() txtCP.grid(row = 2, column = 1) lCity = Label( window, text="City: " ).grid( row = 2, column = 2, sticky = E) txtCity = Entry( window ) txtCity.focus() txtCity.grid(row = 2, column = 3) lTelephone = Label( window, text="Telephone: " ).grid( row = 3, column = 0, sticky = E) txtTelephone = Entry( window ) txtTelephone.focus() txtTelephone.grid(row = 3, column = 1) lBirthday = Label( window, text="Birth day: ").grid( row = 3, column = 2, sticky = E) txtBirthday = Entry( window ) txtBirthday.focus() txtBirthday.grid( row = 3, column = 3) lDoctor = Label( window, text="Doctor: " ).grid( row = 4, column = 0, sticky = E) txtDoctor = Entry( window ) txtDoctor.focus() txtDoctor.grid(row = 4, column = 1) btnAdd = Button( window, text="Add", command=onAdd ) btnAdd.grid( row = 5, column = 1 ) btnDelete = Button( window, text="Delete", command=onDelete ) btnDelete.grid( row = 5, column = 2 ) btnList = Button( window, text="Make list", command=fctMakeList) btnList.grid( row = 5, column = 2 ) window.mainloop()
Je ne souhaite pas encore transformer mon entry nom en listbox. Je voudrais juste que vous m'aidiez a afficher un messagebox avec la liste des noms des patients et a cote le chemin complet d'acces a son dossier. Pour cela il faut ecrire la fonction "fctMakeList"Une fois que j'ai cela il serra facile d'implementer le reste. Ou peut etre avez vous une toute autre idée d'implementation.
structure du fichier "private.data" pour un nouveau patient:
nom
prenom
date nessance
adresse
CP
ville
telephone
medecin traitent
structure du fichier "private.data" pour un ancien patient:
nom
prenom
date nessance
adresse
CP
ville
telephone
medecin traitent
nom fichier du test
date et jour du test
nom medecin qui a encadrer le test
# commantaire lié au test et aux courbes obtenu
possibilité d'un evantuel traitement (serie d'excercice a faire) #
nom fichier du test
date et jour du test
nom medecin qui a encadrer le test
# commantaire lié au test et aux courbes obtenu
possibilité d'un evantuel traitement (serie d'excercice a faire) #
...
J'espere que c'est claire.
erci de votre aide
Partager