Projet Odoo (Gestion d’un cabinet médicale) Réalisé par : Bousrhal Mohammed I.

Projet Odoo (Gestion d’un cabinet médicale) Réalisé par : Bousrhal Mohammed I. Le modèle conceptuel de données Le modèle conceptuel de données de gestion d’un cabinet médicale : Le besoin est le suivant : 1. Le patient prend un rendez-vous qui concerne un médecin. 2. Le médecin examine le patient lors de ma consultation utilisant plusieurs méthodes de diagnostic et lui crée un dossier médical. 3. Lors de la consultation le médecin découvre de symptômes associes probablement à des maladies. 4. Le médecin prescrit une ordonnance contenant des médicaments. 5. Le médecin établit une facture que le client paye. Maintenant on passe à la création du model conceptuel de données et pour s’en faire j’ai suivi les étapes suivantes : 1. Commençant par le premier point qui est : Le patient prend un rendez-vous qui concerne un médecin donné :  On crée L’entité patient avec le ID patient et le nom du patient.  On crée L’entité médecin avec le ID médecin et le nom du médecin.  On crée L’entité RDV avec le ID RDV et le nom du RDV. (RDV : Rendez-vous c’est une entité et pas une association)  On crée la relation prendre qui représente la relation entre le patient et le rendez-vous.  On crée la relation concerner qui représente la relation entre le médecin et le rendez-vous.  On crée l’association consultation avec la date de la consultation et comme associés on aura normalement le médecin et le patient mais comme solution optimisée on peut associer à la consultation justement au RDV et d’après ce dernier on peut savoir le médecin et le patient et cette solution dépend des cardinalités donc après avoir mettre les cardinalités on découvre que le RVD nous amené vers 1 seule patient (cardinalité (1.1)) et à un unique médecin (cardinalité (1.1)) donc on peut adopter cette solution comme solution optimisée. 2.Pour le 2eme point qui est : Le médecin examine le patient lors de ma consultation utilisant plusieurs méthodes de diagnostic et lui crée un dossier médical :  On crée l’entité diagnostic avec le ID diagnostic et le nom diagnostic.  On crée un entité fichier pour le dossier qui contient « compte rendu des analyses, les images... »  On crée la relation possède entre le patient et le fichier. 3.Pour le 3 elme point qui est : Lors de la consultation le médecin découvre de symptômes associes probablement à des maladies :  On crée l’entité maladie avec le ID maladie et le nom maladie.  On crée l’entité symptôme avec le ID symptôme et le nom symptôme qui vont être liées à la consultation.  On crée la relation associer entre l’entité symptôme et maladie. 4.Pour le 4 -ème point qui est : Le médecin prescrit une ordonnance contenant des médicaments.  On crée l’entité ordonnance avec ID ordonnance et nom ordonnance.  On crée l’entité médicament avec ID médicament et nom médicament.  On crée la relation contenir entre l’entité ordonnance et médicament.  On crée une relation directe entre consultation et ordonnance.  On crée une relation directe entre le diagnostic et la consultation.  On procède à mettre les cardinales en posant la question min et max de chaque relation. 5.Pour le dernier point qui concerne la facturation :  On crée un entité facture avec le ID facture et le nom de la facture. Finalement on obtient le modèle conceptuel ci-dessous : II. La création de l’application : Cabinet Médical Bousrhal On a d’abord créé les objets qu’ont déjà des modèles existant sur Odoo, Nous avons créé l’objet Patient en l’associant le modèle contact. Notre formulaire est déjà créé, mais seulement dans notre application on doit montrer que les patients, donc on a ajouté une case à coucher nommée ‘Patient ?’, et on a choisi ‘Basculer’ comme widget. Nous avons aussi créé un filtre nommé ‘Patient’ pour montrer que les patients, le Domaine prend comme propriété ‘Patient ?’, si l’enregistrement contient le Patient comme vrai il s’affichera dans la liste des patients Nous avons créé l’objet Médecin en l’associant le modèle Employé. Quand on clique sur Médecin il va nous faire apparaitre tous les employés, donc on a créé un filtre ‘Médecin’. Le Domaine prend comme propriété Poste occupé, donc si le Poste occupé est ‘Médecin’ comme vrai il s’affichera dans la liste des médecins Et pour le rendez-vous on l’associé au modèle Calendrier de l’événement. Pour les participants des rendez-vous ils vont être les patients et les médecins. On peut paramétrer les options pour savoir combien de fois le patient va venir chez le médecin en cliquant sur le widget Récurrent. Pour ajouter les médecins comme participants on a défini le champs ‘many2one’ dans Détails de l’événements, on choisit Employé comme Propriétés du champ et on a créé un filtre ‘Médecin’. Le Domaine prend comme propriété Poste occupé, donc on va afficher que les ‘Médecin’ et les ‘Patients’ dans les participants. Pour les objets qui n’ont pas des modèles déjà existés sur Odoo, Nous avons les crées à l’aide des Scripts Python. Etant donné qu’Odoo est développé principalement en utilisant le langage Python, il est possible d’utiliser n'importe quel éditeur qui supporte la colorisation syntaxique, comme IDLE, note++, etc. pour le codage et le test des modules Odoo. Dans cet article, nous allons utiliser un éditeur puissant qui est largement utilisé par la communauté des développeurs Odoo qui est Pycharm. Nous avons Créé un dossier ‘odoo-addons’ pour les nouveaux modules. Puis on prend une copie de odoo.conf, et on la copie sur le nouveau dossier pour l’utiliser par la suite. Configuration Python interpreter : log_db_level = warning log_handler = :INFO log_level = info logfile =C:\Users\hp\OneDrive\Desktop\odoo-addons\odoo.log longpolling_port = 8072 max_cron_threads = 2 osv_memory_age_limit = False osv_memory_count_limit = False pg_path = C:\Program Files\Odoo 14.0.20220106\PostgreSQL\bin pidfile = proxy_mode = False reportgz = False screencasts = screenshots = C:\Users\hp\OneDrive\Desktop\odoo-addons\Temp\odoo_tests server_wide_modules = base,web smtp_password = False smtp_port = 25 smtp_server = localhost smtp_ssl = False smtp_user = False syslog = False test_enable = False test_file = test_tags = None transient_age_limit = 1.0 translate_modules = ['all'] unaccent = False upgrade_path = without_demo = False workers = None L’environnement de développement est bien préparé pour Odoo. Les modèles : Quatre fichiers sont principalement nécessaires pour créer un nouveau module (les fichiers .py ou .xml peuvent être exclus en fonction des besoins). Les quatre principaux fichiers sont, * __init__.py * __manifest__.py * model.py * view.xml __init__.py Dans le fichier __init__.py, nous devons importer tous les fichiers python que nous allons utiliser. Supposons que nous ayons un fichier python appelé model.py dans notre module. La première chose que nous devons faire est d'importer model.py dans le fichier __init__.py. __manifest__.py Dans le __manifest__.py, nous devons mentionner le nom du module, le nom de l'auteur, la version, la description, l'entreprise, la catégorie, etc. model.py Dans ce fichier, nous devons concevoir un nouveau modèle pour stocker les valeurs de patient par exemple, que ce soit patient.patient. En créant un nouveau modèle, une table sera générée dans la base de données. Dans le modèle, nous devons déclarer tous les champs que nous allons utiliser dans cette table. view.xml Comme nous avons défini tous les champs nécessaires dans le fichier model.py, nous devons maintenant créer une vue pour cela. Comment l'utilisateur doit-il voir cela, il doit y avoir le champ du nom ? Une telle chose peut être définie dans le fichier view.xml. Maintenant, nous avons créé une table dans la base de données, ici nous devons définir comment elle doit être dans l'interface utilisateur et sous quel menu elle doit être, etc. Dans notre cas, nous allons créer un nouveau menu appelé config et sous config, nous pouvons créer un sous-menu appelé symptôme, diagnostic etc. 1- Diagnostic Le fichier __init__.py import model Le fichier __manifest__.py { 'name': 'Diagnoostic', 'summary': """il contient toutes les diagnostiques des patients""", 'version': '10.0.1.0.0', 'description': """il contient toutes les diagnostiques des patients""", 'author': 'Bousrhal Mohammed', 'company': 'Cabinet Médical Bousrhal', 'category': 'Tools', 'depends': ['base'], 'license': 'AGPL-3', 'data': [ 'view.xml', ], 'demo': [], 'installable': True, 'auto_install': False, } Le fichier model.py from odoo import models, fields class fichiers(models.Model): diag_name = "diag.diag" diagnostic_scann= fields.Binary(string='Photo') Le fichier views.xml <?xml version="1.0" encoding="UTF-8"?> <odoo> <data> <menuitem id="menu_cabinet" name="Cabinet Médical Bousrhal"/> <menuitem id="Cabinet" name="Patient" parent="menu_cabinet" action="action_view_patient"/> </data> </odoo> 2- Fichiers Le fichier __init__.py import model Le fichier __manifest__.py { 'name': 'fichiers', 'summary': """il contient les comptes rendus des analyses ou les images cray etc...""", 'version': '10.0.1.0.0', 'description': """il contient les comptes rendus des analyses ou les images cray etc...""", 'author': 'Bousrhal Mohammed', 'company': 'Cabinet Médical Bousrhal', 'category': 'Tools', 'depends': ['base'], 'license': 'AGPL-3', 'data': [ 'view.xml', ], 'demo': [], 'installable': True, 'auto_install': False, } Le fichier model.py from odoo import models, fields class fichiers(models.Model): doc_name = "doc.doc" name = fields.Char(string='Name', required=True) doc_scan = fields.Binary(string='Photo') Le fichier views.xml <?xml version="1.0" encoding="UTF-8"?> <odoo> <data> <menuitem id="menu_cabinet" name="Cabinet Médical Bousrhal"/> <menuitem id="Cabinet" name="Patient" parent="menu_cabinet" action="action_view_patient"/> </data> </odoo> 3- Ordonnance Le fichier __init__.py import model Le fichier __manifest__.py 'name': 'Ordonnance', 'summary': """il contient les ordonnaces de tous les patients """, uploads/Sante/ bousrhal-mohammed.pdf

  • 29
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Apv 09, 2022
  • Catégorie Health / Santé
  • Langue French
  • Taille du fichier 0.3441MB