Bonjour! Je dois écrire un programme sur une Gestion Médicale pour mon travail d'école et je ne sais plus par quoi continuer. Il sagit de créer plusieurs interfaces graphiques et des méthodes pour la gestion. Je vous envoi ce que j'ai fait jusqu'à date ainsi que l'énoncé du travail. J'ai besoin d'aide URGENT S.V.P!
/*
SYSTÈME DE GESTION MÉDICAL (SGM)
Objectifs :
- Fichiers à accès aléatoire (RandomAccessFile)
- Classe File
- Classe JFileChooser
- Tables index pour gérer des enregistrements de taille
variable à clé non uniforme
- Traitement des exceptions
- Sérialisation
- Polymorphisme
Ce projet consiste à faire l’implantation d’un système de gestion des dossiers médicaux des patients. On fera de façon plus simplifiée la gestion du personnel administratif, médical et de soutien.
Un des critères importants de l’évaluation de ce projet est l’application de façon pertinente de la matière vue en classe et la qualité des interfaces personnes machines (interfaces graphiques). Ici on fournit les grandes lignes pour la gestion du système, vous pouvez ajouter de nouvelles fonctionnalités. Laisser libre cours à votre imagination mais restez toujours dans un cadre réaliste. Les interfaces graphiques compteront pour 50% de la note du projet.
Au départ vous allez afficher en plein écran une interface d’accueil selon votre propre créativité dont voici ce qui y doit figurer obligatoirement. Cette interface restera environ 10 seconds à l’écran.
Interface 1
Ici un logo
S
G M
Une autre interface s’affichera pour faire la gestion administrative, soutien ou médicale.
Interface 2
Logo SGM
Administration Soutien Médical
Code Usager
Mot de passe
Ne doit pas s’afficher à l’écran
En mode administratif on va créer des administrateurs, du personnel de soutien et du personnel médical. Demander pour chacun les informations habituelles (nom, prénom, adresse, date de naissance, sexe, état civil, numéros de téléphone, courriel, etc.). Pour un médecin il faudra également demander sa spécialité (choisir via une liste déroulant). Donner à chacun un mot de passe (à crypter). Chaque type d’employé est conservé dans un fichier propre, soit admin.dat, soutien.dat et médical.dat. Ces trois fichiers seront des fichiers d’objets (notion de sérialisation).
Lorsqu’on choisi Soutien, la seule option à faire sera de créer le dossier d’un patient (sa première visite). La clé d’un patient sera son numéro d’assurance maladie (NAM voir le format de ce code à partir de votre propre carte d’assurance maladie). Ce numéro constituera aussi son numéro de dossier. Demander à l’écran les informations nécessaires pour créer un patient. Ces informations seront NAM, nom, prénom, adresse, date de naissance, sexe, état civil, numéros de téléphone, courriel, etc. Il faut y prévoir un champ pour lui affecter un numéro de médecin (c’est le code usager de celui-ci). Prévoir plus qu’un médecin. Cette interface graphique sera très importante.
Au niveau médical, il faudra demander le code employé en clinique ou hôpital et le mot de passe (différents du premier), ceci constituera un deuxième niveau de sécurité. Le médecin tapera le NAM du patient et une interface graphique apparaîtra. Cette interface est l’interface principale du projet donc y apporter toute l’attention possible. Charger le dossier du patient. Le dossier doit avoir plusieurs fiches nommées visite1, visite2, etc. Dans ces zones le médecin conserve les informations sur la visite du patient. On devrait y trouver au moins les champs: symptômes, diagnostique, remarques, traitement et médecin traitant (son numéro). Dans le champ remarques le médecin écrira ses propres remarques. Prévoir deux flèches (gauche/droite) pour passer d’une fiche à une autre. Un médecin pourra modifier seulement sa propre fiche. Si le patient doit aller faire des analyses, voir un spécialiste, des radiographies, etc. afficher à l’écran un formulaire avec les principales informations du patient, médecin et un champ pour l’écriture du médecin. Avoir un bouton pour imprimer ce formulaire. Prévoir un espace pour la signature du médecin.
Question: Comment conserver les informations des patients (leur dossier)? Utiliser une table d’index dont la clé est NAM. Avoir donc deux fichiers patient.dat et patient.ndx. Cette table index contiendra : clé, adresse de l’enregistrement dans le dossier patient.dat et état (effacé oui/non).
Vous allez créer une table d’index de la forme suivante :
Table_index_patient
Adresse de l’enregistrement La clé (code du cours) Effacé (true/false)
(numéro de l’octet)
*/
//
public class Adresse
{
private String noMaison, rue, ville, province, pays, codePostal;
public Adresse() { }
public Adresse(String noMaison, String rue, String codePostal)
{
this.noMaison= noMaison;
this.rue= rue;
this.codePostal= codePostal;
}
public Adresse(String noMaison, String rue, String ville, String province, String pays, String codePostal)
{
this.noMaison= noMaison;
this.rue = rue;
this.ville= ville;
this.province= province;
this.pays= pays;
this.codePostal= codePostal;
}
//méthodes GET
public String getNoMaison() { return noMaison; }
public String getRue() { return rue; }
public String getVille() { return ville; }
public String getProvince() { return province; }
public String getPays() { return pays; }
public String getCodePostal() { return codePostal; }
//méthodes SET
public void setNoMaison(String noMaison) { this.noMaison= noMaison; }
public void setRue(String rue) { this.rue= rue; }
public void setVille(String ville) { this.ville= ville; }
public void setProvince(String province) {this.province= province; }
public void setPays(String pays) { this.pays= pays; }
public void setCodePostal(String codePostal) { this.codePostal= codePostal; }
public String toString()
{
return "# de Maison: " + noMaison + "Rue: " + rue + "Ville: " + ville + "Province: " + province + "Pays: " + pays + "Code Postal: " + codePostal;
}
}//classe
------------------------------------------------------------------
//import java.util.*;
import javax.swing.*;
public class Employee extends Personne
{
//private Vector mesEmployee = new Vector();
//private Employee unEmployee;
private int noEmployee;
private String TypePersonnel;
private Personne personne;
private Adresse adressPatient;
public Employee() { }
public Employee(int noEmployee,String TypePersonnel,Personne personne,Adresse adressPatient)
{
this.noEmployee = noEmployee;
this.TypePersonnel = TypePersonnel;
this.personne = personne;
this.adressPatient = adressPatient;
}
//méthodes GET
public int getNoEmployee() { return noEmployee; }
public String getTypePersonnel() { return TypePersonnel; }
public Personne getPersonne() { return personne; }
public Adresse getAdressPatient() { return adressPatient; }
//***public Vector getVector() { return mesEmployee; }
//méthodes SET
public void setnoEmployee(int noEmployee) { this.noEmployee = noEmployee; }
public void setTypeDePersonnel(String TypeDePersonnel) { this.TypePersonnel = TypePersonnel; }
//ajouter un patient //à taper
public void AjouterPatient(Formulaire unAjout)
{
JOptionPane.showMessageDialog(null, "Un patient a été ajouté!", " ", JOptionPane.PLAIN_MESSAGE);
}
//supprimer un patient //à taper
public void SupprimerPatient(int noEmployee)
{
JOptionPane.showMessageDialog(null, "Un patient a été supprimé!", " ", JOptionPane.PLAIN_MESSAGE);
}
public String toString() {
return "Numéro du l'employée : " + noEmployee + "\t" + "Type de personnel : " + TypePersonnel;
}
}//fin classe
-----------------------------------------------------------------------
import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import javax.swing.*;
//import java.awt.Font;
public class GestionMedicale extends JFrame implements ActionListener
{
private JTextArea sortie;
private Container panFrame = getContentPane();
private JPanel contenu;
private JMenuItem mQuitter = new JMenuItem("Quitter", KeyEvent.VK_Q);
private JMenuItem mAjouterAdmin = new JMenuItem("Ajouter des adiministrateurs", KeyEvent.VK_A);
private JMenuItem mAjouterSoutien = new JMenuItem("Ajouter du personnel de soutien", KeyEvent.VK_R);
private JMenuItem mAjouterMed = new JMenuItem("Ajouter du personnel médical ", KeyEvent.VK_O);
private JMenuItem mAjouterDossier = new JMenuItem("Créer le dossier d'un client", KeyEvent.VK_C);
private JMenuItem mChargerDossier = new JMenuItem("Charger le dossier d'un patient", KeyEvent.VK_N);
private JMenuItem mFileRead = new JMenuItem("Initialiser le registre a partir d'un fichier");
private JLabel message;
private final String etiquette = "Operation effectuee: ";
public GestionMedicale()
{
setTitle("SYSTÈME DE GESTION MÉDICALE");
setSize(600,500);
setLocation(100,100);
setResizable(false);
sortie = new JTextArea(25, 52);
// Créer la barre de menus et en faire la barre de menus courante
JMenuBar barreMenus = new JMenuBar();
setJMenuBar(barreMenus);
// Créer le menu Fichier et l'ajoute à la barre de menus
JMenu menuFichier = new JMenu("Fichier");
barreMenus.add(menuFichier);
menuFichier.addSeparator();
menuFichier.add(mQuitter);
mQuitter.addActionListener(this);
// Créer le menu Gestion_Etudiant et l'ajoute à la barre de menus
JMenu menuAdmin = new JMenu("Administration");
barreMenus.add(menuAdmin);
menuAdmin.add(mAjouterAdmin);
menuAdmin.add(mAjouterSoutien);
menuAdmin.add(mAjouterMed);
mAjouterAdmin.addActionListener(this);
mAjouterSoutien.addActionListener(this);
mAjouterMed.addActionListener(this);
// Créer le menu Cours et l'ajoute à la barre de menus
JMenu menuSoutien = new JMenu("Soutien");
barreMenus.add(menuSoutien);
menuSoutien.add(mAjouterDossier);
mAjouterDossier.addActionListener(this);
JMenu menuMedical = new JMenu("Médical");
barreMenus.add(menuMedical);
menuMedical.add(mChargerDossier);
mChargerDossier.addActionListener(this);
contenu = new JPanel();
sortie.setEditable(false);
contenu.add(sortie);
panFrame.add("Center", contenu);
setVisible(true);
message = new JLabel(etiquette);
contenu.add("South", message);
validate();
}
/* Méthode qui gère l'écoute des évènements des choix du menu*/
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == mQuitter)
terminer();
else if (e.getSource() == mAjouterAdmin) {
message.setText(etiquette + "ajouter personnel administratif");
ajouterPersAdm();
}
else if (e.getSource() == mAjouterSoutien) {
message.setText(etiquette + "Ajouter personnel de soutien");
ajouterPersSoutien();
}
else if (e.getSource() == mAjouterMed) {
message.setText(etiquette + "Ajouter personnel medical ");
ajouterPersMed();
}
else if (e.getSource() == mAjouterDossier) {
message.setText(etiquette + "Ajouter un dossier client ");
ajouterDossierClient();
}
else if (e.getSource() == mChargerDossier) {
message.setText(etiquette + "Charger le dossier du client");
chargerDossier();
}
}//actionPerfomed
public void terminer() { System.exit(0); }
public void ajouterPersAdm(){
//verifierPasswor();
System.out.println("Dans ajouter personnel adm");
Formulaire formulaire= new Formulaire();
}
public void ajouterPersSoutien(){
//verifierPasswor();
System.out.println("Dans ajouter personnel soutien");
Formulaire formulaire2=new Formulaire();
}
public void ajouterPersMed(){
//verifierPasswor();
System.out.println("Dans ajouter personnel medical");
Formulaire formulaire3=new Formulaire();
}
public void ajouterDossierClient(){
//verifierPasswor();
System.out.println("Dans ajouter dossier client");
Formulaire formulaire4=new Formulaire(); //sinon FormulairePatient = new FormulairePatient();
}
public void chargerDossier(){
//verifierPasswor();
System.out.println("Dans charger le dossier");
}
public static void main(String[] args)
{
final GestionMedicale go = new GestionMedicale();
go.addWindowListener(
new WindowAdapter() {
public void windowClosing( WindowEvent e ) {
go.terminer();
System.exit( 0 );
}
}
);
/*int choix;
final int SystemeDeGestionMedical = 1;
choix = Integer.parseInt(JOptionPane.showInputDialog("Tapez 1 pour avoir accès au système de gestion médical\n\n"));
switch (choix)
{
case SystemeDeGestionMedical :
Formulaire unAjout = new Formulaire();
unAjout.addWindowListener
(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
break;
} */
}//main
}//fin classe
-----------------------------------------------------------------
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
public class MenuPrincipal extends JFrame implements ActionListener
{
private JButton boutonAdministration;
private JButton boutonSoutien;
private JButton boutonMedical;
public MenuPrincipal() throws IOException
{
super("Logo SGM");
Container c=getContentPane();
c.setLayout(new GridLayout(10, 10, 1, 5));
boutonAdministration = new JButton ("Administration");
boutonAdministration.addActionListener(this);
c.add(boutonAdministration);
boutonSoutien = new JButton ("Soutien");
boutonSoutien.addActionListener(this);
c.add(boutonSoutien);
boutonMedical = new JButton ("Médical");
boutonMedical.addActionListener(this);
c.add(boutonMedical);
setSize(350,350);
setLocation(200,200);
show();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == boutonAdministration)
{
System.out.println("Ça marche 1!"); //à taper
}
if (e.getSource() == boutonSoutien)
{
System.out.println("Ça marche 2!"); //à taper
}
if (e.getSource() == boutonMedical)
{
System.out.println("Ça marche 3!"); //à taper
}
}
}//fin classe
-------------------------------------------------------------------
public class Personne
{
private String nom,prenom;
private String datNais;
private String sexe;
private String etatCivil;
private String noTel;
public Personne(){}
public Personne(String nom,String prenom)
{
this.nom = nom;
this.prenom = prenom;
}
public Personne(String noTel)
{
this.noTel = noTel;
}
public Personne(String nom, String prenom, String datNais, String sexe, String etatCivil, String noTel)
{
this.nom =nom;
this.prenom = prenom;
this.datNais = datNais;
this.sexe = sexe;
this.etatCivil = etatCivil;
this.noTel = noTel;
}
//méthodes GET
public String getNom(){return nom;}
public String getPrenom(){return prenom;}
public String getDatNais(){return datNais;}
public String getSexe(){return sexe;}
public String getEtatCivil(){return etatCivil;}
public String getNoTel(){return noTel;}
//méthodes SET
public void setNom(String nom){this.nom = nom;}
public void setPrenom(String prenom){this.prenom = prenom;}
public void setDatNais(String datNais){this.datNais = datNais;}
public void setSexe(String sexe){this.sexe = sexe;}
public void setEtatCivil(String etatCivil){this.etatCivil = etatCivil;}
public void setNoTel(String noTel){this.noTel = noTel;}
public String toString()
{
return "Nom : " + nom + "\t" + "Prénom : " + prenom + "\t" + "État Civil : " + etatCivil + "\t" +
"Sexe : " + sexe + "\t" + "Numéro de téléphone : " + noTel + "\t" + "Date de naissance : " + datNais;
}
}//classe