-
Codification de dossiers
Bonjour,
Je réalise une application pour gérer les dossiers médicaux de patients et je cherche une codification adaptée pour chacun d'eux.
Je n'ai jamais eu d’expérience en codification et je souhaite faire un code qui a un pourcentage faible de se répéter...
Quelqu'un aurait-il des suggestions ?
Merci d'avance pour votre aide.
-
Qu'est-ce que tu appelle une codification? Tu veux générer un numéro unique pour une base de données? Il y a déjà des choses prévues pour ça: colonne en auto increment, sequence, etc. Tout dépend de la base de données.
-
c'est exactement ça je veux un numéro unique pour chaque patient ,j'aurai préféré travailler avec l'auto incrémentation mais l’organisme d’accueil m'a exigé de faire un code spécial...:/
-
Normal, il faudrait pas qu'on puisse deviner le numéro d'un autre dossier en regardant son propre numéro de dossier.
Il vaut mieux des approches genre UUID, avec une signature simpliste comme les clés RIB.
-
La classe GUID de java te permet de réaliser cela. Mais ton client risque de raler que le numéro est trop long :aie:
Un alternative raisonnable, ce serait le numéro qui s'incrémente, que tu fais passer ensuite dans une moulinette type md5. Impossible de retrouver le numéro de départ à partir du md5 et donc impossible de deviner un autre numéro. Ca a au moins l'avantage d'être plus court qu'un GUID.
Tout dépend aussi du nombre de dossier. Tu ne va pas appliquer les même algorithmes pour 500 dossier, 50.000 dossiers ou 15 millions de patients ;)
-
merci à vous...
@thelvin j'ai jamais entendu parlé de ce que vous avez dit :/ mais je vais jeter un coup d'oeil sur web peut ça m'en servira.
@tchiz aussi jamais entendu parlé que cette classe peut m'en servir ,et pour l'organisme à qui je réalise l'application reçoit environ 10000 nouveau patient par an,et comme il y a deux types de patients (sportif et non sportif) alors il y a deux table différentes patient et patient sportif alors l'idée de l'auto incrémentation non seulement elle est refusée par l'organisme mais aussi ça m'aide pas du tout ,parce que y'aura des patient qui auront le meme identifiant et moi dans certain fonctionnalité j'ai besoin de tous les patient en meme temps avec des id différents vous voyez de ce que je parle??
-
Il n'y a rien de commun entre tes patients normaux et tes patients sportifs comme champs (genre le nom, prénom, etc.)? Parce que, en général, pour le design, quand on a des spécialisation comme ça, on garde une table commune et on fait une table additionnelle avec ce qui est spécifique au sportif. Ca permet de plus facilement gérer les foreign keys par exemple. Tu peux dire dans un SGBD que le colonne "patient" dans la table Factures pointe vers la table Patient, colonne PatientId. Mais tu ne peut pas dire qu'elle pointe vers Patient ou PatientSportif au choix :aie: Bon, ça c'est du détail, et toi seul est maître des specifications (et le domaine de la médecine a parfois certaines exigences pour séparer des bases de données).
Ensuite, ne confond pas tes clés primaires (pour lesquelles un auto incrément serait bien utile) et un numéro d'identification que l'on donne au patient. Les clés primaires de tes tables ne devraient jamais être exposées aux utilisateurs, c'est de la plomberie interne. L’hôpital veux un identifiant pour retrouver un patient, utilise une colonne spécifique "numeroPatient" (Varchar par exemple) qui n'a rien à voir avec la colonne ID (int) de la table Patient. Au moins, si dans 1 an l'hopital change d'avis sur la numrotation des patients, tu n'aura pas à suer pour refaire toutes tes tables et ton code ;) Et dès que c'est visible, c'est sujet à changement par le client. Enfin, en général, mais là je peux dire une bêtise, un jointure sur un int est plus rapide qu'une jointure sur un Varchar.
-
merci tchize vous m'avez éclairci les choses
cordialement