Projet de Bases de données Gestion de paiements dans une pharmacie.pdf
Télécharger PDFUniversité de Provence Bases de données Licence d’Informatique Projet (21 février 2007) Troisième année A rendre la semaine du 23-27 avril 2007
Projet de Bases de données
Gestion de paiements dans une pharmacie
1. Description de la gestion
On s'intéresse aux paiements de produits achetés dans une pharmacie. Un client est caractérisé par un numéro de client. S'il achète un produit remboursable par la sécurité sociale ou une mutuelle, alors on regarde son nom, son adresse, son numéro d'identification de la sécurité sociale ou son numéro d'adhérent à la mutuelle, le mode de remboursement, s'il en bénéficie, et éventuellement son numéro de téléphone. Le remboursement de la part complémentaire par la mutuelle dépend de sa cotisation. Chaque mutuelle a un nom, et plusieurs centres de gestion ; chaque client a un seul centre local pour les remboursements. Ses droits de la sécurité sociale ou de la mutuelle peuvent être changés d'une année à l'autre, dépendant de son statut ou de sa cotisation.
Sur un produit on voit les informations suivantes : nom de produit, classe pharmaceutique, nom de fabricant, numéro de lot, date d'expiration, et type de remboursement (attribué par la sécurité sociale). Un produit est déterminé par son nom et son numéro de lot. Le pourcentage de remboursement d'un produit dépend de sa classe pharmaceutique. Le prix d'un produit n'est pas fixé, il varie selon les périodes (promotions, augmentation de prix des fabricants, etc.).
L'achat d'un produit remboursable nécessite une ordonnance d'un médecin. Un médecin est représenté par un nom, une adresse, un numéro d'agrément et une spécialité. Sur une ordonnance on voit les informations concernant le médecin et le patient, la date de consultation, et une liste de médicaments avec les prescriptions de traitements. La pharmacie garde une copie de chaque ordonnance à laquelle est attribué un numéro unique. D'après la liste de produits sur l'ordonnance, une préparatrice (ou préparateur) de la pharmacie cherche les produits et établit une facture. Chaque préparateur (ou préparatrice) est représenté(e) par un nom, une adresse et un numéro d'identification. Chaque facture a une liste de produits avec leur quantité. Si une facture a des produits remboursables, alors on distingue la somme à payer par le client lui-même, la somme à rembourser par la sécurité sociale et la somme à rembourser par la mutuelle. Dans ce cas les copies de l'ordonnance et de la facture sont envoyées au centre de gestion de remboursement du client. Un traitement prescrit sur une ordonnance est valable pour un nombre précis de fois, donc une ordonnance peut donner lieu à une ou plusieurs factures. Chaque facture a une date d'achat et un numéro d'identification.
2. Conception
Définir le MCD, le schéma de base de données relationnelle de cette gestion, sous Oracle, en spécifiant les clés primaires, étrangères, et d'autres contraintes d'intégrité utilisant des triggers.
3. Saisie des informations
Programmer une interface Java (console ou applet) en utilisant JDBC pour saisir :
- les informations concernant un nouveau client.
- une ordonnance, une facture.
- de nouveaux prix des produits, de nouveaux taux de remboursements.
- les informations concernant un médecin, un préparateur (ou une préparatrice).
4. Interrogation de la base
Ecrire en SQL d'Oracle les requêtes suivantes.
1. Etant donné le nom d'un client et son adresse, retrouver son no d'identification, ses droits valides concernant la sécurité sociale ou la mutuelle.
2. Considérer une facture courante, donner la date, le nom du préparateur, le nom du client, le nom du médecin, et la somme totale de la facture, les parties remboursables par la sécurité sociale et la mutuelle, la partie à payer par le client.
Donner les détails : les médicaments, leur quantité et le prix unitaire, les pourcentages de remboursement de prix par la sécurité sociale et la mutuelle.
3. Etant donné le numéro d'identification de sécurité sociale d'un client et une période de temps (un trimestre), retrouver :
- Les factures qui ne sont pas remboursées par la sécurité sociale ou la mutuelle ; calculer la somme totale devant être remboursée pour ces factures.
- Pour chaque ordonnance, on s'intéresse au nombre de factures et la somme totale des factures y associées.
- Pour chaque médicament la quantité totale achetée, la répartition de la valeur totale à faire rembourser par la sécurité sociale et la mutuelle, dans l'ordre décroissant de la somme remboursable.
4. Liste de clients avec les sommes totales des médicaments remboursables par la sécurité sociale, par la mutuelle, et non remboursables, dans l'ordre décroissant de la somme remboursable.
Liste de clients qui coûtent les plus chers à la sécurité sociale et les mutuelles.
5. Pour un trimestre et pour chaque médecin donner le nombre d'ordonnances prescrites à chaque client, avec les sommes remboursables par la sécurité sociale et par la mutuelle ; ordonner la liste selon ordre décroissant de la somme remboursable par la sécurité sociale et la mutuelle.
Les noms de médecins qui font rembourser la plus grande somme à la sécurité sociale et aux mutuelles.
6. Pour un trimestre, donner les médicaments vendus avec leur quantité totale et la répartition de la valeur totale vendue : sécurité sociale, la mutuelle, client.
7. Pour un trimestre, liste de préparateurs (ou préparatrices) qui servent le plus grand nombre de clients, et liste de ceux qui encaissent la somme la plus importante.
FAQ
1. Comment définir le MCD pour cette gestion de paiements dans une pharmacie ?
Le MCD (Modèle Conceptuel de Données) doit inclure toutes les entités principales comme les clients, les produits, les médecins, les ordonnances, les factures, les mutuelles, et les préparateurs. Chaque entité doit être liée par des relations appropriées, et les clés primaires et étrangères doivent être clairement définies.
2. Quelles sont les contraintes d'intégrité à utiliser dans ce projet ?
Les contraintes d'intégrité incluent les clés primaires et étrangères, les triggers pour maintenir l'intégrité référentielle, et les contraintes de domaine pour les types de données spécifiques comme les numéros d'identification et les dates.
3. Comment programmer une interface Java pour saisir les informations ?
Utilisez JDBC pour établir une connexion à la base de données Oracle. Créez des formulaires Java pour saisir les informations concernant les clients, les ordonnances, les factures, les prix des produits, les taux de remboursement, et les informations des médecins et préparateurs.