Application Bureau DENTEL-GEST 2.0 Beta
L’application DENTEL-GEST dans ça version Beta est publiée avec code source ,vous pouvez trouvez le code complet du projet dans GitHub et plus des vidéos sur notre chaine YouTube.
DENTEL-GEST est une application bureau crée avec Visual Studio comme IDE et SQL Server comme SGBD qui permet la gestion d’un cabinet médicale pour un médecin dentaire.
Elle contient une connexion admin et permet l’enregistrement les patients ,les consultations ,les rendez-vous et la gestion du comptabilité(Caisse).
Base De Données
crée une base de donnée BaseTest et une table Connect avec trois attributs (Id , login , password) avec Id comme clé primaire.
Créer avec SQL SERVER MANAGEMENT les tables ( Patient , Consultation , Agenda , Acte) dans BaseTest.
Créer un diagramme qui permet de relier les différents clés primaires et secondaires.
Interface ADMIN
Créer une simple interface de connexion admin qui s’affiche au premier lieu lors de l’exécution de l’application
private void btConnexion_Click(object sender, EventArgs e) { // si les deux champs sont vides if(textBox1.Text =="" || textBox2.Text=="") { MessageBox.Show("Veuillez entrer vos paramètres du connexion"); } try { var dbfile = Application.StartupPath + "\\BaseTest.mdf"; SqlConnection connection = new SqlConnection(@"Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename="+dbfile+";Integrated Security=True;Connect Timeout =30"); string req = "select * from Connect where login like '" + textBox1.Text.Trim() + "' AND password like '" + textBox2.Text.Trim() + "'"; SqlDataAdapter adapter = new SqlDataAdapter(req, connection); DataTable dt = new DataTable(); adapter.Fill(dt); if(dt.Rows.Count ==1) { Home acl = new Home(); acl.Show(); this.Hide(); } else { MessageBox.Show("Vérifier vos paramètres du connexion"); } }catch(Exception ex) { MessageBox.Show(ex.Message); } }
Interface Principale
Après la création d’interface du connexion on passe à une autre étape ou va créer l’interface principale de l’application qui contient les buttons : Patients – Agenda – Consultations – Caisse – Paramètres
- Patients : permet d’ajouter ,modifier et supprimer un patient avec ses coordonnées enregistrés et affiche dans une GridView la liste des patients situent dans la base.
- Agenda : permet d’enregistrer les dates de rendez-vous .
- Consultations: permet d’enregistrer les consultations et gérer l’ensemble du sciences effectué par un patient on précisons un schéma du dents pour un adulte ou un enfant .
- Caisse: permet d’enregistrer toutes les opérations du paiement ou le reste a payez.
- Paramètres: permet d’enregistrer les actes médicales ou autres options liées au fonctionnement d’application.
Ajout un Timer
public partial class Home : Form { Timer bg = new Timer(); UserControl1 patient = new UserControl1(); UserControl2 agenda = new UserControl2(); UserControl3 consult = new UserControl3(); UserControl4 param = new UserControl4(); public Home() { InitializeComponent(); bg.Tick += (s, e) => { label1.Text = DateTime.Now.ToString(); }; bg.Interval = 500; bg.Start(); } }
Interface Patients:
On va passez à une autre étape du notre projet et nous allons utilisez dans cette partie un contrôle utilisateur afin d’afficher notre contenu dans le mémé Form principale.
Créer un nouveau contrôle utilisateur qui contient des panels , des textBox , des Boutons et une datagridview pour afficher les données sous forme d’un tableau à plusieurs lignes et colonnes. puis ont va tapez le code pour le buttons Enregistrer comme le montrent le code suivant.
private void bt_enregistrer_Click(object sender, EventArgs e) { // Ajout Dans la Base Test var dbfile = Application.StartupPath + "\\BaseTest.mdf"; SqlConnection connection = new SqlConnection(@"Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=" + dbfile + ";Integrated Security=True;Connect Timeout =30"); SqlCommand cmd = new SqlCommand("insert into Patient (Nom_Prenom,Adresse,Telephone,Age,Sexe,Type) Values (@Nom_Prenom,@Adresse,@Telephone,@Age,@Sexe,@Type)"); try { cmd.Connection = connection; cmd.Parameters.AddWithValue("@Nom_Prenom", textBox1.Text); cmd.Parameters.AddWithValue("@Adresse", textBox2.Text); cmd.Parameters.AddWithValue("@Telephone", textBox3.Text); cmd.Parameters.AddWithValue("@Age", textBox4.Text); cmd.Parameters.AddWithValue("@Type", textBox5.Text); if(radioButton1.Checked) { cmd.Parameters.AddWithValue("@Sexe", "Homme"); } else { cmd.Parameters.AddWithValue("@Sexe", "Femme"); } connection.Open(); cmd.ExecuteNonQuery(); MessageBox.Show("Client ajouté avec sucée"); connection.Close(); } catch(Exception ex) { MessageBox.Show(ex.Message); } }
Interface Agenda
L’interface Agenda permet d’enregistrer un nouveau rendez-vous et permet aussi la recherche d’une date sélectionné.
Cliquez sur le Button Nouveau , une nouvelle Fenêtre s’affiche ,ensuite cliquez sur le nom du patient à droite dans la liste patient et remplir la date et l’heure correspondants
Le click sur le Botton Enregistrer permet d’enregistrer les informations dans notre base de donnée
private void btnEnregistrer_Click(object sender, EventArgs e) { // Ajouter les Rendez-Vous a la BaseTest var dbfile = Application.StartupPath + "\\BaseTest.mdf"; SqlConnection connection = new SqlConnection(@"Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=" + dbfile + ";Integrated Security=True;Connect Timeout =30"); SqlCommand cmd = new SqlCommand("insert into Agenda(ID_Patient,Nom_Prenom,Date_Rdv,Heure_Rdv) VALUES (@ID_Patient,@Nom_Prenom,@Date_Rdv,@Heure_Rdv)"); try { cmd.Connection = connection; cmd.Parameters.AddWithValue("@ID_Patient", textBox1.Text); cmd.Parameters.AddWithValue("@Nom_Prenom", textBox2.Text); cmd.Parameters.AddWithValue("@Date_Rdv", dateTimePicker1.Value); cmd.Parameters.AddWithValue("@Heure_Rdv", comboBox1.SelectedItem.ToString()); connection.Open(); cmd.ExecuteNonQuery(); MessageBox.Show("Rendez_Vous enregistré avec succé"); connection.Close(); } catch(Exception ex) { MessageBox.Show(ex.Message); }
Interface Consultation
Dans cette interface en va enregistrer chaque consultation faite par un patient donné ont appuyant sur le Botton Nouveau une autre fenêtre s’affiche.
Remplir les donnée nécessaires puis cliquez sur le Botton Enregistrer
private void btenregistrer_Click(object sender, EventArgs e) { // Enregistrer une consultation dans notre base de donnée string numdent = textBox2.Text; Button bt = (Button)this.panel6.Controls["Dent" + numdent]; Image img = bt.Image; byte[] arr; ImageConverter converter = new ImageConverter(); arr = (byte[])converter.ConvertTo(img, typeof(byte[])); //parametre connexion var dbfile = Application.StartupPath + "\\BaseTest.mdf"; SqlConnection connection = new SqlConnection(@"Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=" + dbfile + ";Integrated Security=True;Connect Timeout =30"); SqlCommand cmd2 = new SqlCommand("insert into Consultation(Nom_Prenom,ID_Patient,Date_consul,Num_Dent,Acte,Img_Acte,Trait,Paye,Reste) VALUES(@Nom_Prenom,@ID_Patient,@Date_consul,@Num_Dent,@Acte,@Img_Acte,@Trait,@Paye,@Reste) "); try { cmd2.Connection = connection; cmd2.Parameters.AddWithValue("@ID_Patient", textBox7.Text); cmd2.Parameters.AddWithValue("@Nom_Prenom", textBox1.Text); cmd2.Parameters.AddWithValue("@Num_Dent", textBox2.Text); cmd2.Parameters.AddWithValue("@Date_Consul", dateTimePicker1.Value); cmd2.Parameters.AddWithValue("@Acte", comboBox1.SelectedItem.ToString()); cmd2.Parameters.AddWithValue("@Img_Acte", arr); cmd2.Parameters.AddWithValue("@Trait", textBox6.Text); cmd2.Parameters.AddWithValue("@Paye", SqlDbType.SmallMoney).Value = Decimal.Parse(textBox4.Text); cmd2.Parameters.AddWithValue("@Reste", SqlDbType.SmallMoney).Value = Decimal.Parse(textBox5.Text); connection.Open(); cmd2.ExecuteNonQuery(); MessageBox.Show("Consultation ajoutée avec sucée"); connection.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } this.Close(); }
Pour chaque patient enregistre dans notre base on peut afficher une fiche patient , alors la une autre fenêtre que s’affiche
Interface Caisse
Dans cette interface elle affiche le total du montants payes et le total de restes à payer pour vos patients
private void Caisse_Load(object sender, EventArgs e) { timer1.Start(); var dbfile = Application.StartupPath + "\\BaseTest.mdf"; SqlConnection connection = new SqlConnection(@"Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=" + dbfile + ";Integrated Security=True;Connect Timeout =30"); SqlCommand cmd2 = new SqlCommand("select SUM(Paye) FROM Consultation ", connection); SqlCommand cmd3 = new SqlCommand("select SUM(Reste) FROM Consultation ", connection); try { connection.Open(); decimal pay = (decimal)cmd2.ExecuteScalar(); label3.Text = pay.ToString(); connection.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } try { connection.Open(); decimal res = (decimal)cmd3.ExecuteScalar(); label4.Text = res.ToString(); connection.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
Interface Paramètres
Dans cette interface pour la version beta , vous pouvez tout simplement ajouter une nouvelle Acte médicale à votre choix
private void btEnregistrer_Click(object sender, EventArgs e) { var dbfile = Application.StartupPath + "\\BaseTest.mdf"; SqlConnection connection = new SqlConnection(@"Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=" + dbfile + ";Integrated Security=True;Connect Timeout =30"); SqlCommand cmd = new SqlCommand("insert into Acte (Nom_Acte,Prix_Acte) VALUES (@Nom_Acte,@Prix_Acte)"); try { cmd.Connection = connection; cmd.Parameters.AddWithValue("@Nom_Acte", textBox1.Text); cmd.Parameters.AddWithValue("@Prix_Acte", textBox2.Text); connection.Open(); cmd.ExecuteNonQuery(); MessageBox.Show("Acte ajouté avec succé"); connection.Close(); } catch(Exception ex) { MessageBox.Show(ex.Message); } }
A ce stade la ont s’arrêtent pour la version Beta de notre application et nous espérons que vous pouvez tout simplement réaliser une application semblable à celui la.
On va Essayez plutôt de l’améliorer plus dans le prochain INCHALLAH
Vous pouvez suivre tous les étapes précédente en pratique dans notre chaine YouTube .
Cette version de l’application DENTEL-GEST est une version Beta , si vous volez récupérez la version PRO n’oubliez pas a nos contactez par émail.