JAVA programme à écrire ... Gestion Médicale

Fermé
Angelica - 18 mai 2004 à 18:42
 goossens thierry - 28 mai 2007 à 11:21
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
A voir également:

5 réponses

zagor5 Messages postés 187 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 21 octobre 2005 32
20 mai 2004 à 18:03
Pour crypter un mot de passe, je sais pas.

Pour agrandir la fenêtre, ajoute avant
this.setSize(300,300);

remplace les 300 par la taille voulue.
la méthode show();

Sinon, c'est normal que le message "Le patient a été créé" apparaisse tout le temps vu que c'est la première instruction que tu a mises dans actionPerformed(ActionEvent e). Donc ce message apparaît dès que tu cliques sur un bouton.

Plus ça rate, plus on a de chances que ça marche.
2
zagor5 Messages postés 187 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 21 octobre 2005 32
20 mai 2004 à 18:16
Mais essaie de regarder du coté du JPasswordField() pour le mot de passe. Pour plus d'info sur ce composant :
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JPasswordField.html

C'est un composant qui se place dans une frame.

Plus ça rate, plus on a de chances que ça marche.
1
zagor5 Messages postés 187 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 21 octobre 2005 32
18 mai 2004 à 21:04
Et plus précisement, tu as quoi comme problème?
C'est pas facile de comprendre ce que tu as fait avec ton code vu qu'il manque des classes(en tout cas la classe formulaire) pour qu'on puisse au moins essayer de le compiler!

Donc qu'est ce que tu as réussi à faire?
Qu'est ce que tu n'arrives pas à faire?


Plus ça rate, plus on a de chances que ça marche.
0
Bonjour! C'est encore moi au sujet de mon travail d'école.
Je vous envois ici ce que j'ai fait comme programme pour la Gestion Médicale mais il me semble que j'ai mis beaucoup de choses qui soit ne marchent pas ou soit y son inutiles.
Je ne sais pas comment crypter pour faire un mot de passe à vérifier afin que les employés puissent entrer dans le formulaire d'info. Lorsque l'interface sur le formulaire apparaît on ne voit qu'une mini fenêtre que l'on doit agrandir nous même.
Comment fait-on pour que l'on voit directement bien ouvert sans avoir à l'agrandir? Lorsque je rentre un nouvel emlpoyé le même message m'apparaît 'Le patient a été créé' même si je n'ai rien rentrer. C'est quoi mon ou mes erreurs?
Merci de répondre


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 "No. de Maison: " + noMaison + "\n" + "Rue: " + rue + "\n" + "Ville: " + ville + "\n"
+ "Province: " + province + "\n" + "Pays: " + pays + "\n" + "Code Postal: " + codePostal + "\n";
}
}//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;

public Employee() { }

public Employee(int noEmployee, String TypePersonnel, Personne personne)
{
this.noEmployee = noEmployee;
this.TypePersonnel = TypePersonnel;
this.personne = personne;
}

//méthodes GET
public int getNoEmployee() { return noEmployee; }
public String getTypePersonnel() { return TypePersonnel; }
public Personne getPersonne() { return personne; }//
//***public Vector getVector() { return mesEmployee; }

//méthodes SET
public void setNoEmployee(int noEmployee) { this.noEmployee = noEmployee; }
public void setTypePersonnel(String TypePersonnel) { this.TypePersonnel = TypePersonnel; }
public void setPersonne(Personne personne) { this.personne = personne; }//

public String toString() {
return "Numéro de l'employé : " + "\t\t" + noEmployee + "\n"
+ "Type de personnel : " + "\t\t" + TypePersonnel + "\n";
}

//Obtenir la taille d'un enregistrement
public long tailleEnrg(String typePersonnel, Personne personne){
long taille=(4 + typePersonnel.length() + personne.toString().length());
return taille;
}
//Obtenir le numero d'enregistrement
public long numeroEnrg(int leNumero){
int numEnreg = leNumero % 100;
return numEnreg;
}
//Obtenir l'adresse de l'enregistrement
public long adresseEnrg(long numEnreg, long taille){
long adresseEnrg = numEnreg*taille;
return adresseEnrg;
}
}//fin classe {}
-----------------------------------------------------------------------
import java.awt.*; //JTextArea
import java.awt.event.*;
import java.io.*; //lectureFichier
import javax.swing.*;
import java.util.*;
/*
import java.io.IOException;
import javax.swing.JOptionPane;
import java.awt.Font;
*/

public class Formulaire extends JFrame implements ActionListener
{
ObjectOutputStream laSortie;

String fichierAdm="admin.dat";
String fichierSout="soutien.dat";

final JLabel etiqTypePersonnel, etiqNoEmployee,
etiqNom,
etiqPrenom,
etiqNoMaison, etiqRue, etiqVille, etiqProvince, etiqPays, etiqCodePostal,
etiqDatNais,
etiqSexe,
etiqEtatCivil,
etiqNoTel;

final JTextField champTypePersonnel, champNoEmployee,
champNom,
champPrenom,
champNoMaison, champRue, champVille, champProvince, champPays, champCodePostal,
champDatNais,
champSexe,
champEtatCivil,
champNoTel;

final JButton ajouter, initialiser, supprimer, retourMenuP;

static Vector employees = new Vector();
Adresse adressPers;
Personne personne;
int noEmployee;
int numEmp;
private String noEmp;
String typePers,
nom,
prenom,
noMaison, rue, ville, province, pays, codePostal,
datNais,
sexe,
etatCivil,
noTel;

//int motDePasse;
//String numHouse;

JTextArea sortie = new JTextArea(10,30);
BufferedWriter sortieText;

//constructeur
public Formulaire()
{
super("AJOUT D'UN EMPLOYÉE");
Container c = getContentPane();
c.setLayout(new GridLayout(0, 2, 6, 6));

etiqTypePersonnel = new JLabel("Type de personnel :",SwingConstants.RIGHT);
etiqTypePersonnel.setToolTipText("De quel type de personnel est-il?");
champTypePersonnel = new JTextField();
champTypePersonnel.addActionListener(this);
c.add(etiqTypePersonnel);
c.add(champTypePersonnel);

etiqNom = new JLabel("Nom :",SwingConstants.RIGHT);
etiqNom.setToolTipText("Quel est son nom?");
champNom = new JTextField();
champNom.addActionListener(this);
c.add(etiqNom);
c.add(champNom);

etiqPrenom = new JLabel("Prénom :",SwingConstants.RIGHT);
etiqPrenom.setToolTipText("Quel est son prénom?");
champPrenom = new JTextField();
champPrenom.addActionListener(this);
c.add(etiqPrenom);
c.add(champPrenom);

etiqNoMaison = new JLabel("Numéro de Maison(ou app.) :",SwingConstants.RIGHT);
etiqNoMaison.setToolTipText("Quel est le numéro de Maison (ou app.)?");
champNoMaison = new JTextField();
champNoMaison.addActionListener(this);
c.add(etiqNoMaison);
c.add(champNoMaison);

etiqRue = new JLabel("Rue :",SwingConstants.RIGHT);
etiqRue.setToolTipText("Quel est le nom de la rue?");
champRue = new JTextField();
champRue.addActionListener(this);
c.add(etiqRue);
c.add(champRue);

etiqVille = new JLabel("Ville :",SwingConstants.RIGHT);
etiqVille.setToolTipText("Quel est le nom de la ville?");
champVille = new JTextField();
champVille.addActionListener(this);
c.add(etiqVille);
c.add(champVille);

etiqProvince = new JLabel("Province :",SwingConstants.RIGHT);
etiqProvince.setToolTipText("Quel est le nom de la province?");
champProvince = new JTextField();
champProvince.addActionListener(this);
c.add(etiqProvince);
c.add(champProvince);

etiqPays = new JLabel("Pays :",SwingConstants.RIGHT);
etiqPays.setToolTipText("Quel est le nom du pays?");
champPays = new JTextField();
champPays.addActionListener(this);
c.add(etiqPays);
c.add(champPays);

etiqCodePostal = new JLabel("Code postal :",SwingConstants.RIGHT);
etiqCodePostal.setToolTipText("Quel est son code postal");
champCodePostal = new JTextField();
champCodePostal.addActionListener(this);
c.add(etiqCodePostal);
c.add(champCodePostal);

etiqDatNais = new JLabel("Date de naissance :",SwingConstants.RIGHT);
etiqDatNais.setToolTipText("Quel est sa date de naissance");
champDatNais = new JTextField();
champDatNais.addActionListener(this);
c.add(etiqDatNais);
c.add(champDatNais);

etiqSexe = new JLabel("Type de sexe :",SwingConstants.RIGHT);
etiqSexe.setToolTipText("De quel est sexe est-il (elle)?");
champSexe = new JTextField();
champSexe.addActionListener(this);
c.add(etiqSexe);
c.add(champSexe);

etiqEtatCivil = new JLabel("État civil :",SwingConstants.RIGHT);
etiqEtatCivil.setToolTipText("Quel est son état civil");
champEtatCivil = new JTextField();
champEtatCivil.addActionListener(this);
c.add(etiqEtatCivil);
c.add(champEtatCivil);

etiqNoTel = new JLabel("Téléphone :",SwingConstants.RIGHT);
etiqNoTel.setToolTipText("Quel est son numéro de téléphone");
champNoTel = new JTextField();
c.add(etiqNoTel);
c.add(champNoTel);



//--- NUMÉRO - L'EMPLOYEE immodifiable-----------------------------
etiqNoEmployee = new JLabel("Numéro d'employé:",SwingConstants.RIGHT);
champNoEmployee = new JTextField();
champNoEmployee.setBackground(Color.orange);
champNoEmployee.addActionListener(this);
champNoEmployee.setEditable(false);
noEmp = Integer.toString(employees.size()+1);//private String: noEmp --> vector: employees
noEmployee = employees.size()+1; //int: noEmployee --> vector: employees
champNoEmployee.setText(noEmp); //private String: noEmp est ajouté au Container: c
c.add(etiqNoEmployee);
c.add(champNoEmployee);

ajouter = new JButton("Ajouter l'employé");
ajouter.addActionListener(this);
c.add(ajouter);

initialiser = new JButton("Initialiser");
initialiser.addActionListener(this);
c.add(initialiser);

supprimer = new JButton("Supprimer un employé");
supprimer.addActionListener(this);
c.add(supprimer);

retourMenuP = new JButton("Retour au menu");
retourMenuP.addActionListener(this);
c.add(retourMenuP);

c.setSize(200,200);
c.setLocation(200,200);
show();
}

public void actionPerformed(ActionEvent e)
{
//-------------------------------AJOUTER----------------------------
if(e.getSource() == ajouter)
{
String TypePersonnel = "";
TypePersonnel = champTypePersonnel.getText();

noEmp = Integer.toString(noEmployee); //private String: noEmp == int: noEmployee
noEmp = Integer.toString(employees.size()+1); //private String: noEmp --> vector: employees
noEmployee = employees.size()+1; //int: noEmployee --> vector: employees
champNoEmployee.setText(noEmp); //private String: noEmp est ajouté au Container: c

nom = champNom.getText();
prenom = champPrenom.getText();
noMaison = champNoMaison.getText();
rue = champRue.getText();
ville = champVille.getText();
province = champProvince.getText();
pays = champPays.getText();
codePostal = champCodePostal.getText();
datNais = champDatNais.getText();
sexe = champSexe.getText();
etatCivil = champEtatCivil.getText();
noTel = champNoTel.getText();
//String MOTPASSE = champTypePersonnel.getText();

adressPers = new Adresse(noMaison, rue, ville, province, pays, codePostal);
personne = new Personne(nom, prenom, adressPers, datNais, sexe, etatCivil, noTel); //objet Personne

employees.addElement(new Employee(noEmployee,TypePersonnel,personne));
ecrireFichier(employees);
String texte ="";

for(int i =0;i < employees.size();i++)
{
Employee emp = (Employee)employees.elementAt(i);

texte += emp.toString() + "\n"
+ "Nom du Client : \t\t" + emp.getPersonne().getPrenom() + " "
+ emp.getPersonne().getNom() + "\n"
+ emp.getPersonne().getAdressPers().toString() + "\n"
+ "Date de naissance : \t\t" + emp.getPersonne().getDatNais()+"\n"
+ "Type de sexe : \t\t\t" + emp.getPersonne().getSexe()+"\n"
+ "État civil : \t\t\t" + emp.getPersonne().getEtatCivil()+"\n"
+ "Numéro de téléphone : \t\t" + emp.getPersonne().getNoTel()+"\n" ;

sortie.setText(texte);
}
noEmployee += 1;
noEmp = Integer.toString(noEmployee);

JOptionPane.showMessageDialog(null, sortie, "Information sur l'employé",JOptionPane.PLAIN_MESSAGE);

try{
sortieText.write(texte);
sortieText.newLine();
sortieText.close();
} catch (IOException e2){}

champPays.setText("");
champProvince.setText("");
champVille.setText("");
champPrenom.setText("");
champNom.setText("");
champNoTel.setText("");
champDatNais.setText("");
champSexe.setText("");
champEtatCivil.setText("");
champRue.setText("");
champNoMaison.setText("");
champCodePostal.setText("");
champNoEmployee.setText(noEmp);
champTypePersonnel.setText("");
}
//----------------------------INITIALISER---------------------------
if (e.getSource() == initialiser)
{
champTypePersonnel.setText("");
champNoEmployee.setText(noEmp);
champNom.setText("");
champPrenom.setText("");
champNoMaison.setText("");
champRue.setText("");
champVille.setText("");
champProvince.setText("");
champPays.setText("");
champDatNais.setText("");
champSexe.setText("");
champEtatCivil.setText("");
champNoTel.setText("");
champCodePostal.setText("");
}
//----------------------------SUPPRIMER---------------------------
if(e.getSource() == supprimer)
{
String no = JOptionPane.showInputDialog("Quel est le numéro de l'employée que vous voulez supprimer ?");
numEmp = Integer.parseInt(no);

for(int i =0;i < employees.size();i++) //employees=vector
{
Employee emp = (Employee)employees.elementAt(i);

if(emp.getNoEmployee()== numEmp)
{
employees.removeElementAt(i);
noEmployee -= 1;
noEmp = Integer.toString(noEmployee);
champNoEmployee.setText(noEmp);
}
else
{
JOptionPane.showMessageDialog(null, "Ce numéro d'employé est inexistant!");
}
}//for
}
if(e.getSource() == retourMenuP)
{
GestionMedicale autreGestion= new GestionMedicale();

}
}//actionPerformed

private void ecrireFichier(Object emp)
{
try{
laSortie= new ObjectOutputStream(new FileOutputStream(fichierAdm));
laSortie.writeObject(emp);
laSortie.close();
}
catch(IOException ioe){
System.out.println("Exception du type IO!");
}
}

}//fin classe
--------------------------------------------------------------------
import java.awt.*; //JTextArea
import java.awt.event.*;
import java.io.*; //lectureFichier
import javax.swing.*;
import java.util.*;

public class FormulaireMedecin extends JFrame implements ActionListener
{
ObjectOutputStream laSortie;

String fichierMed="medical.dat";

final JLabel etiqTypePersonnel, etiqNoEmployee,
etiqNom,
etiqPrenom,
etiqNoMaison, etiqRue, etiqVille, etiqProvince, etiqPays, etiqCodePostal,
etiqDatNais,
etiqSexe,
etiqEtatCivil,
etiqNoTel,
etiqSpecialite;

final JTextField champTypePersonnel, champNoEmployee,
champNom,
champPrenom,
champNoMaison, champRue, champVille, champProvince, champPays, champCodePostal,
champDatNais,
champSexe,
champEtatCivil,
champNoTel,
champSpecialite;

final JButton ajouter, initialiser, supprimer, retourMenuP;

static Vector employees = new Vector();
Adresse adressPers;
Personne personne;
int noEmployee;
int numEmp;
private String noEmp;
String typePers,
nom,
prenom,
noMaison, rue, ville, province, pays, codePostal,
datNais,
sexe,
etatCivil,
noTel;

//int motDePasse;
//String numHouse;

JTextArea sortie = new JTextArea(10,30);
BufferedWriter sortieText;

//constructeur
public FormulaireMedecin()
{
super("AJOUT D'UN EMPLOYÉE");
Container c = getContentPane();
c.setLayout(new GridLayout(0, 2, 6, 6));

etiqTypePersonnel = new JLabel("Type de personnel :",SwingConstants.RIGHT);
etiqTypePersonnel.setToolTipText("De quel type de personnel est-il?");
champTypePersonnel = new JTextField();
champTypePersonnel.addActionListener(this);
c.add(etiqTypePersonnel);
c.add(champTypePersonnel);

etiqNom = new JLabel("Nom :",SwingConstants.RIGHT);
etiqNom.setToolTipText("Quel est son nom?");
champNom = new JTextField();
champNom.addActionListener(this);
c.add(etiqNom);
c.add(champNom);

etiqPrenom = new JLabel("Prénom :",SwingConstants.RIGHT);
etiqPrenom.setToolTipText("Quel est son prénom?");
champPrenom = new JTextField();
champPrenom.addActionListener(this);
c.add(etiqPrenom);
c.add(champPrenom);

etiqNoMaison = new JLabel("Numéro de Maison(ou app.) :",SwingConstants.RIGHT);
etiqNoMaison.setToolTipText("Quel est le numéro de Maison (ou app.)?");
champNoMaison = new JTextField();
champNoMaison.addActionListener(this);
c.add(etiqNoMaison);
c.add(champNoMaison);

etiqRue = new JLabel("Rue :",SwingConstants.RIGHT);
etiqRue.setToolTipText("Quel est le nom de la rue?");
champRue = new JTextField();
champRue.addActionListener(this);
c.add(etiqRue);
c.add(champRue);

etiqVille = new JLabel("Ville :",SwingConstants.RIGHT);
etiqVille.setToolTipText("Quel est le nom de la ville?");
champVille = new JTextField();
champVille.addActionListener(this);
c.add(etiqVille);
c.add(champVille);

etiqProvince = new JLabel("Province :",SwingConstants.RIGHT);
etiqProvince.setToolTipText("Quel est le nom de la province?");
champProvince = new JTextField();
champProvince.addActionListener(this);
c.add(etiqProvince);
c.add(champProvince);

etiqPays = new JLabel("Pays :",SwingConstants.RIGHT);
etiqPays.setToolTipText("Quel est le nom du pays?");
champPays = new JTextField();
champPays.addActionListener(this);
c.add(etiqPays);
c.add(champPays);

etiqCodePostal = new JLabel("Code postal :",SwingConstants.RIGHT);
etiqCodePostal.setToolTipText("Quel est son code postal?");
champCodePostal = new JTextField();
champCodePostal.addActionListener(this);
c.add(etiqCodePostal);
c.add(champCodePostal);

etiqDatNais = new JLabel("Date de naissance :",SwingConstants.RIGHT);
etiqDatNais.setToolTipText("Quel est sa date de naissance?");
champDatNais = new JTextField();
champDatNais.addActionListener(this);
c.add(etiqDatNais);
c.add(champDatNais);

etiqSexe = new JLabel("Type de sexe :",SwingConstants.RIGHT);
etiqSexe.setToolTipText("De quel est sexe est-il (elle)?");
champSexe = new JTextField();
champSexe.addActionListener(this);
c.add(etiqSexe);
c.add(champSexe);

etiqEtatCivil = new JLabel("État civil :",SwingConstants.RIGHT);
etiqEtatCivil.setToolTipText("Quel est son état civil?");
champEtatCivil = new JTextField();
champEtatCivil.addActionListener(this);
c.add(etiqEtatCivil);
c.add(champEtatCivil);

etiqNoTel = new JLabel("Téléphone :",SwingConstants.RIGHT);
etiqNoTel.setToolTipText("Quel est son numéro de téléphone?");
champNoTel = new JTextField();
c.add(etiqNoTel);
c.add(champNoTel);

etiqSpecialite = new JLabel("Spécialité :",SwingConstants.RIGHT);
etiqSpecialite.setToolTipText("Quel est la spécialité?");
champSpecialite = new JTextField();
c.add(etiqSpecialite);
c.add(champSpecialite);


//--- NUMÉRO - L'EMPLOYEE immodifiable-----------------------------
etiqNoEmployee = new JLabel("Numéro d'employé:",SwingConstants.RIGHT);
champNoEmployee = new JTextField();
champNoEmployee.setBackground(Color.orange);
champNoEmployee.addActionListener(this);
champNoEmployee.setEditable(false);
noEmp = Integer.toString(employees.size()+1);//private String: noEmp --> vector: employees
noEmployee = employees.size()+1; //int: noEmployee --> vector: employees
champNoEmployee.setText(noEmp); //private String: noEmp est ajouté au Container: c
c.add(etiqNoEmployee);
c.add(champNoEmployee);

ajouter = new JButton("Ajouter l'employé");
ajouter.addActionListener(this);
c.add(ajouter);

initialiser = new JButton("Initialiser");
initialiser.addActionListener(this);
c.add(initialiser);

supprimer = new JButton("Supprimer un employé");
supprimer.addActionListener(this);
c.add(supprimer);

retourMenuP = new JButton("Retour au menu");
retourMenuP.addActionListener(this);
c.add(retourMenuP);

c.setSize(200,200);
c.setLocation(200,200);
show();
}


public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null, "Un patient a été ajouté!", " ", JOptionPane.PLAIN_MESSAGE);

//-------------------------------AJOUTER----------------------------
if(e.getSource() == ajouter){
String TypePersonnel = "";
TypePersonnel = champTypePersonnel.getText();

noEmp = Integer.toString(noEmployee); //private String: noEmp == int: noEmployee
noEmp = Integer.toString(employees.size()+1); //private String: noEmp --> vector: employees
noEmployee = employees.size()+1; //int: noEmployee --> vector: employees
champNoEmployee.setText(noEmp); //private String: noEmp est ajouté au Container: c

nom = champNom.getText();
prenom = champPrenom.getText();
noMaison = champNoMaison.getText();
rue = champRue.getText();
ville = champVille.getText();
province = champProvince.getText();
pays = champPays.getText();
codePostal = champCodePostal.getText();
datNais = champDatNais.getText();
sexe = champSexe.getText();
etatCivil = champEtatCivil.getText();
noTel = champNoTel.getText();
//String MOTPASSE = champTypePersonnel.getText();

adressPers = new Adresse(noMaison, rue, ville, province, pays, codePostal);
personne = new Personne(nom, prenom, adressPers, datNais, sexe, etatCivil, noTel); //objet Personne

employees.addElement(new Employee(noEmployee,TypePersonnel,personne));
ecrireFichier(employees);
String texte ="";

for(int i =0;i < employees.size();i++){
Employee emp = (Employee)employees.elementAt(i);

texte += emp.toString() + "\n"
+ "Nom du Médecin: \t\t" + emp.getPersonne().getPrenom() + " "
+ emp.getPersonne().getNom() + "\n"
+ emp.getPersonne().getAdressPers().toString() + "\n"
+ "Date de naissance : \t\t" + emp.getPersonne().getDatNais()+"\n"
+ "Type de sexe : \t\t\t" + emp.getPersonne().getSexe()+"\n"
+ "État civil : \t\t\t" + emp.getPersonne().getEtatCivil()+"\n"
+ "Numéro de téléphone : \t\t" + emp.getPersonne().getNoTel()+"\n"
;
sortie.setText(texte);
}
noEmployee += 1;
noEmp = Integer.toString(noEmployee);

JOptionPane.showMessageDialog(null, sortie, "Information sur l'employé",JOptionPane.PLAIN_MESSAGE);

try{
sortieText.write(texte);
sortieText.newLine();
sortieText.close();
} catch (IOException e2){}

champPays.setText("");
champProvince.setText("");
champVille.setText("");
champPrenom.setText("");
champNom.setText("");
champNoTel.setText("");
champDatNais.setText("");
champSexe.setText("");
champEtatCivil.setText("");
champRue.setText("");
champNoMaison.setText("");
champCodePostal.setText("");
champNoEmployee.setText(noEmp);
champTypePersonnel.setText("");
}
//----------------------------INITIALISER---------------------------
if (e.getSource() == initialiser){
champTypePersonnel.setText("");
champNoEmployee.setText(noEmp);
champNom.setText("");
champPrenom.setText("");
champNoMaison.setText("");
champRue.setText("");
champVille.setText("");
champProvince.setText("");
champPays.setText("");
champDatNais.setText("");
champSexe.setText("");
champEtatCivil.setText("");
champNoTel.setText("");
champCodePostal.setText("");
}
//----------------------------SUPPRIMER---------------------------
if(e.getSource() == supprimer){
String no = JOptionPane.showInputDialog("Quel est le numéro de l'employée que vous voulez supprimer ?");
numEmp = Integer.parseInt(no);

for(int i =0;i < employees.size();i++) //employees=vector
{
Employee emp = (Employee)employees.elementAt(i);

if(emp.getNoEmployee()== numEmp) {
employees.removeElementAt(i);
noEmployee -= 1;
noEmp = Integer.toString(noEmployee);
champNoEmployee.setText(noEmp);
}
else{ JOptionPane.showMessageDialog(null, "Ce numéro d'employé est inexistant!"); }
}//for
}
//-------------------------RETOUR-MENU------------------------------
if(e.getSource() == retourMenuP){
GestionMedicale autreGestion= new GestionMedicale();
}
}//actionPerformed

private void ecrireFichier(Object emp)
{
try{
laSortie= new ObjectOutputStream(new FileOutputStream(fichierMed));
laSortie.writeObject(emp);
JOptionPane.showMessageDialog(null, "Le fichier a été créé!", " ", JOptionPane.PLAIN_MESSAGE);
laSortie.close();
}
catch(IOException ioe){
System.out.println("Exception du type IO!");
}
}
}//fin classe
---------------------------------------------------------------------------
import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import javax.swing.*;
import javax.swing.JOptionPane;

public class GestionMedicale extends JFrame implements ActionListener
{
private String motDePasse;
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 À partir d'un fichier");

private JLabel message;
private final String etiquette = "Operation effectuée: ";

public GestionMedicale()
{
setTitle("SYSTÈME DE GESTION MÉDICALE");
setSize(300,300);
setLocation(75,200);
setResizable(false);

sortie = new JTextArea(25, 25);

// 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 médical ");
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(){
motDePasse= JOptionPane.showInputDialog(null, "Entrez le mot de passe: ", " ", JOptionPane.PLAIN_MESSAGE);
verifierPassword(motDePasse);
System.out.println("Dans ajouter personnel adm");
Formulaire formulaire= new Formulaire();
}

// méthode pour AJOUTER une personnel de SOUTIEN
public void ajouterPersSoutien(){
motDePasse= JOptionPane.showInputDialog(null, "Entrez le mot de passe: ", " ", JOptionPane.PLAIN_MESSAGE);
verifierPassword(motDePasse);
System.out.println("Dans ajouter personnel soutien");
Formulaire formulaire=new Formulaire();
}

// méthode pour AJOUTER un MÉDECIN
public void ajouterPersMed(){
motDePasse= JOptionPane.showInputDialog(null, "Entrez le mot de passe: ", " ", JOptionPane.PLAIN_MESSAGE);
verifierPassword(motDePasse);
System.out.println("Dans ajouter personnel médical");
FormulaireMedecin formulaire= new FormulaireMedecin();
}

// méthode pour AJOUTER un DOSSIER-CLIENT
public void ajouterDossierClient(){
motDePasse= JOptionPane.showInputDialog(null, "Entrez le mot de passe: ", " ", JOptionPane.PLAIN_MESSAGE);
verifierPassword(motDePasse);
System.out.println("Dans ajouter dossier client");
Formulaire formulaire=new Formulaire(); //sinon FormulairePatient = new FormulairePatient();
}

// méthode pour CHARGER un DOSSIER
public void chargerDossier(){
motDePasse= JOptionPane.showInputDialog(null, "Entrez le mot de passe: ", " ", JOptionPane.PLAIN_MESSAGE);
verifierPassword(motDePasse);
System.out.println("Dans charger le dossier");
}

public void verifierPassword(String motDePasse){
/*
String format= getNom().substring(0,3) + getPrenom().substring(0) +
if(motDePasse == format) {

}*/
}

public static void main(String[] args) throws IOException
{
//ouverture de la 1ere interface
Dimension fullScreen = Toolkit.getDefaultToolkit().getScreenSize();//écran géant

JWindow temporaire = new JWindow();
JPanel tempPanel = (JPanel)temporaire.getContentPane();
tempPanel.setLayout(new GridLayout(1,2,5,5));
tempPanel.add(new JLabel(new ImageIcon("C:\\Documents and Settings\\Claudia\\My Documents\\My Photos\\DESSINS\\logo1.png"), SwingConstants.CENTER));
temporaire.setBounds(0,0,fullScreen.width,fullScreen.height);
temporaire.show();

try {
Thread.sleep(100);
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

//essai
//MenuPrincipal menuP= new MenuPrincipal();

//ouverture de la 2e interface (SGM)
final GestionMedicale go = new GestionMedicale();
go.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
go.terminer();
System.exit(0);
}
}
);//fin interface 2



}//main
}//fin classe
----------------------------------------------------------------
import javax.swing.*;

public class Médecin extends Personne
{
private String specialite;
private Employee medecin;

public Médecin() { }

public Médecin(Employee medecin, String specialite)
{
this.medecin= medecin;
this.specialite= specialite;
}

//méthodes GET
public String getSpecialite() { return specialite; }
public Employee getEmployee() { return medecin; }

//méthodes SET
public void setSpecialite(String specialite) { this.specialite = specialite; }
public void setMedecin(Employee medecin) { this.medecin = medecin; }

public String toString() {
return "INFO-MÉDECIN :\n" + medecin.toString() + "\n"
+ "Spécialité : " + "\t\t" + specialite + "\n";
}

}
--------------------------------------------------------------------

public class Personne
{
private String nom,prenom;
private Adresse adressPers;//
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, Adresse adressPers, String datNais, String sexe, String etatCivil, String noTel)
{ this.nom =nom;
this.prenom = prenom;
this.adressPers = adressPers;//
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 Adresse getAdressPers(){return adressPers;}//
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 setAdressPers(Adresse adressPers){this.adressPers = adressPers;}//
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\n" + "Prénom : " + prenom + "\t\n" +"Adresse : " + adressPers + "\t\n"
+ "Date de naissance : " + datNais + "\t\n" + "Sexe : " + sexe + "\t\n" + "État Civil : " + etatCivil + "\t\n"
+ "Numéro de téléphone : " + noTel + "\n" ;
}
}
-----------------------------------------------------------------------
import java.awt.*; //JTextArea
import java.awt.event.*;
import java.io.*; //lectureFichier
import javax.swing.*;
import java.util.*;

public class EnregistrementEmployee //extends JFrame implements ActionListener, Serializable
{
private int compteur;

private String nomFichier= "employee.ndx";

private LigneIndex unEnrg;
private Employee unEmployee;
private File fic = new File("employee.dat");
private FileOutputStream fos;
private ObjectOutputStream oos;
private ObjectInputStream ois;
private RandomAccessFile sortie;
private Vector Table_Index_Patient;

char unEtat;
int numero;
String typePers;
Personne pers;
long num, adrEnrg, taille;
String no = "";

//private JTextArea jtaVoir = new JTextArea(20,30);

public EnregistrementEmployee(int numero){
this.numero= numero;
fic = new File("employee.dat");
Table_Index_Patient = new Vector(1000);
try{
sortie = new RandomAccessFile(fic, "rw");
}catch(IOException ioException){}
}//constructeur à param. int no

public EnregistrementEmployee(){/*Formulaire fiche= new Formulaire(); ... */}

public void ajouterEnregistrement(/* ... */){
unEmployee = new Employee(numero, typePers, pers);

taille = unEmployee.tailleEnrg(no, pers);
num = unEmployee.numeroEnrg(numero);
adrEnrg = unEmployee.adresseEnrg(num, taille);

unEnrg = new LigneIndex(taille, adrEnrg, numero, false);
ajouterDansFichier(ajouterDansTabIndex(unEnrg));
try{
ajouterDansRAF(unEmployee);
}catch(IOException io){}
}

public void ajouterDansRAF(Employee unEmp)throws IOException {
sortie.seek(sortie.length());
compteur += 1;
//...
try{
sortie.writeInt(unEmp.getNoEmployee());
sortie.writeUTF(unEmp.getTypePersonnel());
sortie.writeUTF(unEmp.getNom());
sortie.writeUTF(unEmp.getPrenom());
sortie.writeUTF(unEmp.getAdressPers().getNoMaison());
sortie.writeUTF(unEmp.getAdressPers().getRue());
sortie.writeUTF(unEmp.getAdressPers().getVille());
sortie.writeUTF(unEmp.getAdressPers().getProvince());
sortie.writeUTF(unEmp.getAdressPers().getPays());
sortie.writeUTF(unEmp.getDatNais());
sortie.writeUTF(unEmp.getSexe());
sortie.writeUTF(unEmp.getEtatCivil());
sortie.writeUTF(unEmp.getNoTel());
}catch(IOException io){}
}//ajouterDansRAF

public void ajouterDansFichier(Vector vect){
try{
fos= new FileOutputStream(nomFichier);
oos= new ObjectOutputStream(oos);
oos.writeObject(vect);
oos.close();
}catch(IOException io){}
}//ajouterDansFichier

public Vector ajouterDansTabIndex(LigneIndex employee){
if(Table_Index_Patient.size() == 0){
Table_Index_Patient.addElement(employee);
/* ... */
}
else{
int indice = 0;
while( indice < Table_Index_Patient.size() ){
LigneIndex unAutreEtudiant;
unAutreEtudiant = (LigneIndex) Table_Index_Patient.elementAt( indice );
if(unAutreEtudiant.getNumEmp() < employee.getNumEmp()){
Table_Index_Patient.insertElementAt(employee, indice+1 );
//jtaVoir.append("a ete ajoute en ordre apres");
}
if(unAutreEtudiant.getNumEmp() > employee.getNumEmp()){
for(int pos = Table_Index_Patient.size(); pos >= indice; pos--){
unAutreEtudiant = (LigneIndex) Table_Index_Patient.elementAt( pos );
Table_Index_Patient.insertElementAt( unAutreEtudiant, pos+1 );
Table_Index_Patient.insertElementAt( employee, indice );
//jtaVoir.append("a ete ajoute selon ordre avant");
}
}
} //fin du while
}
return Table_Index_Patient;
}//ajouterDansTabIndex

public boolean existe(int numero){
boolean existe = false;
try{
ois = new ObjectInputStream(new FileInputStream(nomFichier));
Table_Index_Patient = (Vector) ois.readObject();
for (int i=0; i<Table_Index_Patient.size(); i++){
unEnrg = (LigneIndex) Table_Index_Patient.elementAt(i);
if (unEnrg.getNumEmp() == numero)
existe = true;
}
}catch (IOException io){}
catch(ClassNotFoundException classe){}
return existe;
}//existe

public Employee rechercher(int numero){
unEmployee = new Employee();
int debut = 0;
try{
ois = new ObjectInputStream(new FileInputStream(nomFichier));
Table_Index_Patient = (Vector) ois.readObject();
for (int i = 0; i < Table_Index_Patient.size(); i++){
unEnrg = (LigneIndex) Table_Index_Patient.elementAt(i);
if (unEnrg.getNumEmp() == numero){
try{
sortie.seek(debut);
for (int position = 0; position < compteur; position++){
numero = sortie.readInt();
//age = sortie.readInt();
//n = sortie.readUTF();
//s = sortie.readUTF();
//moy = sortie.readFloat();
//unEmployee = new Employee(numero, age, n, s, moy);
}
}catch (EOFException e){}
}//if
}
}catch (IOException io){}
catch(ClassNotFoundException classe){}
return unEmployee;
}//rechercher

public void effacerEmployee(int num){
String message = "";
unEmployee = new Employee();
int debut = 0;
try{
ois = new ObjectInputStream(new FileInputStream(nomFichier));
Table_Index_Patient = (Vector) ois.readObject();
for(int i=0; i<Table_Index_Patient.size(); i++){
unEnrg = (LigneIndex) Table_Index_Patient.elementAt( i );
if(unEnrg.getNumEmp() == num){
Table_Index_Patient.removeElementAt(i);
message = "L'etudiant : " + num + " a ete efface.";
//System.out.println(Table_Index_Patient.size());
}
else
message = "L'etudiant n'a pas ete trouve dans les donnees.";
}//for
}catch (IOException io){}
catch(ClassNotFoundException classe){}
JOptionPane.showMessageDialog(null,message);
}//effacerEmployee

public boolean afficherVecteur(){
boolean marche = false;
Vector vect_out = new Vector();
LigneIndex uneLigneIndex = new LigneIndex();
try{
ois = new ObjectInputStream(new FileInputStream( nomFichier ));
vect_out = (Vector) ois.readObject();
if (vect_out.size() != 0){
for(int i = 0; i < vect_out.size(); i++){
uneLigneIndex = (LigneIndex) vect_out.elementAt(i);
//System.out.println(uneLigneIndex.getNoEmployee());
}
marche = true;
}//if
}catch(IOException ioExc){ System.exit(0); }
catch(ClassNotFoundException classeNoTrouvee){ System.exit(0); }
return marche;
}//afficherVecteur
}//fin classe {}
---------------------------------------------------------
import java.io.*;
import java.util.*;

public class LigneIndex implements Serializable
{
private long tailleEnregistrement, adresseEnreg;
private int numEtudiant;
private char etat;

public LigneIndex(){ this(0, 0, 0, false); }//constructeur sans para.

public LigneIndex(long laTaille, long adr, int leNum, boolean unEtat){ //constructeur avec para.
setAll(laTaille, adr, leNum, unEtat);
}

public void setAll(long laTaille, long adr, int leNum, boolean unEtat){
setTaille(laTaille);
setAdrEnrg(adr);
setNumEtud(leNum);
setEtat(unEtat);
}

public void setTaille(long laTaille){ tailleEnregistrement = laTaille;}
public void setAdrEnrg(long adr) { adresseEnreg = adr;}
public void setNumEtud(int leNumero){ numEtudiant = leNumero;}
public void setEtat(boolean unEtat) {
if (unEtat == true)
etat = 'o';
else if (unEtat == false)
etat = 'n';
else System.out.println("Mauvais choix");
}

public long getTaille() { return tailleEnregistrement; }
public long getAdresse(){ return adresseEnreg; }
public int getNumEmp() { return numEtudiant; }
public char getEtat() { return etat; }

}//fin classe
-------------------------------------------------------------------

L'énoncé est le suivant:
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é
(numéro de l'octet) (true/false)
0
Yop,

juste un détail sur JPasswordField : il ne crypte en aucune façon le mot de passe. Il ne fait que masquer l'affichage. Si tu veux le crypter pour le stocker quelque part, sert toi de MD5 comme algorithme.

++

Nico
0
zagor5 Messages postés 187 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 21 octobre 2005 32
21 mai 2004 à 11:56
C'est vrai, mais j'avais repris la donnée "le mot de passe ne doit pas s'afficher à l'écran". Et pour ça, le JPasswordField devrait marcher.

Plus ça rate, plus on a de chances que ça marche.
0
Tout à fait d'accord avec toi. C'était juste une précision pour la personne concernée pour qu'elle ne s'imagine pas des choses ;-)

Nico
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour les ami(e)s,

Je doit faire un programme java qui implemente une interface graphique, celle-ci doit gérer les rendez-vous des patients pour 3 medecins spécialistes différents sur une période de deux semaines.

Les rendez-vous doivent tenir compte des disponiblitées horaires des medecins, de l'urgence du patient et ses préférences pour le rendez-vous.
Par exemple un patient qui ne précise pas un rendz-vous, le programme doit être capable de lui affecter un rendez-vous selon la grille horaire déjà établie sous forme d'un JTable qui affiche les calendriers horaires de chaque medecin.
Le programme doit gérer aussi les rendez-vous annulé..., càd, supprimer un rendez-vous dans la grille horaire et l'afficher de nouveau

Bref, j'aimerai avoir, s'il vous plait, des idées qui peuvent m'aider à se lancer dans la programmation du code.

Merci d'avance pour vos précieux conseils
0
goossens thierry
28 mai 2007 à 11:21
N'oublies pas les contrôles des codes de prestations de soins données. Pour des codes à 6 chiffres, en belgique, c'est Modulo7; pour les codes bancaires c'est Modulo97. Attention aux patients en tiers-payant ( ticket modérateur ).
J'espère t'avoir aidé.
Pourrais-tu me contacter, j'ai aussi des questions. D'avance merci.
goossens.thierry@gmail.com
0