Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - jonij

Páginas: [1]
1
Hola buen día, estoy queriendo hacer un programa que simule una clínica en Java, haciendo uso de interfaz gráfica.

He definido algunas clases, como 'Paciente', 'Vacuna', 'Cita' y 'Expediente'.

Necesito que este programa permita las siguientes operaciones:

 - Gestión de pacientes: agregar, editar, mostrar y eliminar pacientes.
 - Gestión de vacunas: agregar vacunas a un paciente, editar vacunas de un paciente, mostrar las vacunas aplicadas de un paciente y eliminar vacunas aplicadas de un paciente.
 - Gestión de citas: crear citas a un paciente, editar citas de un paciente, mostrar las citas de un paciente y eliminar citas de un paciente.
 - Crear un expediente a un paciente: el expediente debe tomar la información del paciente su información (datos de la clase Paciente), sus vacunas, y permitir ingresar su diagnóstico, así como mostrar el expediente de un paciente.

Mi principal desafío radica en cómo relacionar estas clases para que puedan comunicarse entre sí y realizar las operaciones necesarias. Por ejemplo, ¿cómo puedo agregar vacunas a un paciente?, o ¿cómo puedo crearle un expediente a un paciente que tome su información y la de sus vacunas junto con su diagnóstico, y luego que permita ver el expediente del paciente?

Agradecería cualquier orientación que puedan ofrecerme.


Adjunto las clases que he creado hasta el momento.

Clase Paciente:

public class Paciente {

    private String numIdentificacionPaciente;
    private String nombrePaciente;
    private int edadPaciente;
    private String sexoPaciente;
    private double alturaPaciente;
    private double pesoPaciente;
    private String fechaNacPaciente;

    public Paciente() {
    }

    public Paciente(String numIdentificacionPaciente, String nombrePaciente, int edadPaciente, String sexoPaciente, double alturaPaciente, double pesoPaciente, String fechaNacPaciente) {
        this.numIdentificacionPaciente = numIdentificacionPaciente;
        this.nombrePaciente = nombrePaciente;
        this.edadPaciente = edadPaciente;
        this.sexoPaciente = sexoPaciente;
        this.alturaPaciente = alturaPaciente;
        this.pesoPaciente = pesoPaciente;
        this.fechaNacPaciente = fechaNacPaciente;
    }

    public String getNumIdentificacionPaciente() {
        return numIdentificacionPaciente;
    }

    public String getNombrePaciente() {
        return nombrePaciente;
    }

    public int getEdadPaciente() {
        return edadPaciente;
    }

    public String getSexoPaciente() {
        return sexoPaciente;
    }

    public double getAlturaPaciente() {
        return alturaPaciente;
    }

    public double getPesoPaciente() {
        return pesoPaciente;
    }

    public String getFechaNacPaciente() {
        return fechaNacPaciente;
    }

    public void setNumIdentificacionPaciente(String numIdentificacionPaciente) {
        this.numIdentificacionPaciente = numIdentificacionPaciente;
    }

    public void setNombrePaciente(String nombrePaciente) {
        this.nombrePaciente = nombrePaciente;
    }

    public void setEdadPaciente(int edadPaciente) {
        this.edadPaciente = edadPaciente;
    }

    public void setSexoPaciente(String sexoPaciente) {
        this.sexoPaciente = sexoPaciente;
    }

    public void setAlturaPaciente(double alturaPaciente) {
        this.alturaPaciente = alturaPaciente;
    }

    public void setPesoPaciente(double pesoPaciente) {
        this.pesoPaciente = pesoPaciente;
    }

    public void setFechaNacPaciente(String fechaNacPaciente) {
        this.fechaNacPaciente = fechaNacPaciente;
    }

    @Override
    public String toString() {
        return "Paciente{" + "numIdentificacionPaciente=" + numIdentificacionPaciente + ", nombrePaciente=" + nombrePaciente + ", edadPaciente=" + edadPaciente + ", sexoPaciente=" + sexoPaciente + ", alturaPaciente=" + alturaPaciente + ", pesoPaciente=" + pesoPaciente + ", fechaNacPaciente=" + fechaNacPaciente + '}';
    }
   
}


Clase PantallaPaciente:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.HashMap;

public class PantallaPaciente extends JFrame implements ActionListener {

    private JTextField txtNumIdentificacionPaciente;
    private JTextField txtNombrePaciente;
    private JTextField txtEdadPaciente;
    private JTextField txtSexoPaciente;
    private JTextField txtAlturaPaciente;
    private JTextField txtPesoPaciente;
    private JTextField txtFechaNacPaciente;
    private JTextArea txtResultado;
    private HashMap<String, Paciente> pacientes;

    public PantallaPaciente() {

        pacientes = new HashMap<>();

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(1000, 700);
        setLayout(new BorderLayout());
        setResizable(false);
        setLocationRelativeTo(null);

        JPanel panelFormulario = new JPanel(new GridLayout(5, 6, 10, 10));
        panelFormulario.setBorder(BorderFactory.createEmptyBorder(10, 20, 10, 20));

        JLabel lblNumIdentificacionPaciente = new JLabel("Número de Identificación del Paciente:");
        txtNumIdentificacionPaciente = new JTextField();

        JLabel lblNombrePaciente = new JLabel("Nombre del Paciente:");
        txtNombrePaciente = new JTextField();

 

        JLabel lblEdadPaciente = new JLabel("Edad del Paciente:");
        txtEdadPaciente = new JTextField();

       

        JLabel lblSexoPaciente = new JLabel("Sexo del Paciente:");
        txtSexoPaciente = new JTextField();

   

        JLabel lblAlturaPaciente = new JLabel("Altura del Paciente:");
        txtAlturaPaciente = new JTextField();

        JLabel lblPesoPaciente = new JLabel("Peso del Paciente:");
        txtPesoPaciente = new JTextField();


        JLabel lblFechaNacPaciente = new JLabel("Fecha de Nacimiento:");
        txtFechaNacPaciente = new JTextField();

        panelFormulario.add(lblNumIdentificacionPaciente);
        panelFormulario.add(txtNumIdentificacionPaciente);
        panelFormulario.add(lblNombrePaciente);
        panelFormulario.add(txtNombrePaciente);
        panelFormulario.add(lblEdadPaciente);
        panelFormulario.add(txtEdadPaciente);
        panelFormulario.add(lblSexoPaciente);
        panelFormulario.add(txtSexoPaciente);
        panelFormulario.add(lblAlturaPaciente);
        panelFormulario.add(txtAlturaPaciente);
        panelFormulario.add(lblPesoPaciente);
        panelFormulario.add(txtPesoPaciente);
        panelFormulario.add(lblFechaNacPaciente);
        panelFormulario.add(txtFechaNacPaciente);

        JButton btnAgregarPaciente = new JButton("Agregar");
        btnAgregarPaciente.addActionListener(this);

        JButton btnMostrarPacientes = new JButton("Mostrar");
        btnMostrarPacientes.addActionListener(this);

        JButton btnEditarPacientes = new JButton("Editar");
        btnEditarPacientes.addActionListener(this);

        JButton btnEliminarPaciente = new JButton("Eliminar");
        btnEliminarPaciente.addActionListener(this);

        JButton btnSalir = new JButton("Salir");
        btnSalir.addActionListener(this);

        panelFormulario.add(btnAgregarPaciente);
        panelFormulario.add(btnMostrarPacientes);
        panelFormulario.add(btnEditarPacientes);
        panelFormulario.add(btnEliminarPaciente);
        panelFormulario.add(btnSalir);

        txtResultado = new JTextArea();
        txtResultado.setEditable(false);
        JScrollPane scrollPane = new JScrollPane(txtResultado);
        scrollPane.setPreferredSize(new Dimension(560, 200));

        JPanel panelPrincipal = new JPanel(new BorderLayout());
        panelPrincipal.add(panelFormulario, BorderLayout.NORTH);
        panelPrincipal.add(scrollPane, BorderLayout.CENTER);
        panelPrincipal.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));

        add(panelPrincipal);
        setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("Agregar")) {
            String numIdentificacionPaciente = txtNumIdentificacionPaciente.getText();
            String nombrePaciente = txtNombrePaciente.getText();
            String sexoPaciente = txtSexoPaciente.getText();
            String fechaNacPaciente = txtFechaNacPaciente.getText();
            String alturaPacienteStr = txtAlturaPaciente.getText();
            String pesoPacienteStr = txtPesoPaciente.getText();
            String edadPacienteStr = txtEdadPaciente.getText();

            if (!numIdentificacionPaciente.isEmpty() && !nombrePaciente.isEmpty()
                    && !fechaNacPaciente.isEmpty() && !alturaPacienteStr.isEmpty()
                    && !pesoPacienteStr.isEmpty() && !edadPacienteStr.isEmpty()) {
                try {
                    int edadPaciente = Integer.parseInt(edadPacienteStr);
                    double alturaPaciente = Double.parseDouble(alturaPacienteStr);
                    double pesoPaciente = Double.parseDouble(pesoPacienteStr);
                    Paciente nuevoPaciente = new Paciente(numIdentificacionPaciente, nombrePaciente,
                            edadPaciente, sexoPaciente,
                            alturaPaciente, pesoPaciente,fechaNacPaciente);

                    pacientes.put(numIdentificacionPaciente, nuevoPaciente);
                    txtResultado.setText("El paciente se ha añadido correctamente.");
                } catch (NumberFormatException ex) {
                    txtResultado.setText("Los valores numéricos o las fechas deben ser válidos.");
                }
            } else {
                txtResultado.setText("Por favor ingrese todos los datos requeridos.");
            }
        }
        if (e.getActionCommand().equals("Editar")) {
            String numIdentificacionPaciente = txtNumIdentificacionPaciente.getText();
            if (pacientes.containsKey(numIdentificacionPaciente)) {
                Paciente pacienteExistente = pacientes.get(numIdentificacionPaciente);
                pacienteExistente.setNombrePaciente(txtNombrePaciente.getText());
                pacienteExistente.setEdadPaciente(Integer.parseInt(txtEdadPaciente.getText()));
                pacienteExistente.setSexoPaciente(txtSexoPaciente.getText());
                pacienteExistente.setAlturaPaciente(Double.parseDouble(txtAlturaPaciente.getText()));
                pacienteExistente.setPesoPaciente(Double.parseDouble(txtPesoPaciente.getText()));
                pacienteExistente.setFechaNacPaciente(txtFechaNacPaciente.getText());

                txtResultado.setText("Los datos del paciente han sido actualizados.");
            } else {
                String nombrePaciente = txtNombrePaciente.getText();
                String sexoPaciente = txtSexoPaciente.getText();
                String fechaNacPaciente = txtFechaNacPaciente.getText();
                String alturaPacienteStr = txtAlturaPaciente.getText();
                String pesoPacienteStr = txtPesoPaciente.getText();
                String edadPacienteStr = txtEdadPaciente.getText();

                if (!numIdentificacionPaciente.isEmpty() && !nombrePaciente.isEmpty()
                        && !sexoPaciente.isEmpty() && !fechaNacPaciente.isEmpty()
                        && !alturaPacienteStr.isEmpty() && !pesoPacienteStr.isEmpty()
                        && !edadPacienteStr.isEmpty()) {
                    try {
                        int edadPaciente = Integer.parseInt(edadPacienteStr);
                        double alturaPaciente = Double.parseDouble(alturaPacienteStr);
                        double pesoPaciente = Double.parseDouble(pesoPacienteStr);
                        Paciente nuevoPaciente = new Paciente(numIdentificacionPaciente, nombrePaciente,
                                edadPaciente, sexoPaciente,
                                alturaPaciente, pesoPaciente,fechaNacPaciente);

                        pacientes.put(numIdentificacionPaciente, nuevoPaciente);
                        txtResultado.setText("El paciente se ha añadido correctamente.");
                    } catch (NumberFormatException ex) {
                        txtResultado.setText("Los valores numéricos o las fechas deben ser válidos.");
                    }
                } else {
                    txtResultado.setText("Por favor ingrese todos los datos requeridos.");
                }
            }
        } else if (e.getActionCommand().equals("Mostrar")) {
            txtResultado.setText("");
            if (pacientes.isEmpty()) {
                txtResultado.setText("No hay pacientes registrados.");
            } else {
                for (Paciente paciente : pacientes.values()) {
                    txtResultado.append(paciente.toString() + "\n");
                }
            }
        } else if (e.getActionCommand().equals("Eliminar")) {
            String numIdentificacionPaciente = txtNumIdentificacionPaciente.getText();
            if (pacientes.containsKey(numIdentificacionPaciente)) {
                pacientes.remove(numIdentificacionPaciente);
                txtResultado.setText("El paciente ha sido eliminado correctamente.");
            } else {
                txtResultado.setText("No se encontró un paciente con el número de identificación proporcionado.");
            }
        } else if (e.getActionCommand().equals("Salir")) {
            dispose();
        }
    }
}


Clase Vacuna:

public class Vacuna {

    private String numIdentificacionVacuna;
    private String fechaAplicacion;
    private String nombreVacuna;

    public Vacuna() {
    }

    public Vacuna(String numIdentificacionVacuna, String fechaAplicacion, String nombreVacuna) {
        this.numIdentificacionVacuna = numIdentificacionVacuna;
        this.fechaAplicacion = fechaAplicacion;
        this.nombreVacuna = nombreVacuna;
    }

    public String getNumIdentificacionVacuna() {
        return numIdentificacionVacuna;
    }

    public String getFechaAplicacion() {
        return fechaAplicacion;
    }

    public String getNombreVacuna() {
        return nombreVacuna;
    }

    public void setNumIdentificacionVacuna(String numIdentificacionVacuna) {
        this.numIdentificacionVacuna = numIdentificacionVacuna;
    }

    public void setFechaAplicacion(String fechaAplicacion) {
        this.fechaAplicacion = fechaAplicacion;
    }

    public void setNombreVacuna(String nombreVacuna) {
        this.nombreVacuna = nombreVacuna;
    }

   
    @Override
    public String toString() {
        return "Vacuna"
                + "  NumI dentificacion Vacuna: " + numIdentificacionVacuna + "\n"
                + "  Fecha de Aplicacion: " + fechaAplicacion + "\n"
                + "  Nombre Vacuna: " + nombreVacuna + "\n";
    }
}


Clase PantallaVacuna:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class PantallaVacuna extends JFrame implements ActionListener {
    private JTextField txtNumIdentificacionPaciente;
    private JTextField txtNumIdentificacionVacuna;
    private JTextField txtFechaAplicacion;
    private JTextField txtNombreVacuna;
    private JTextArea txtResultado;

    public PantallaVacuna() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(800, 500);
        setLayout(new BorderLayout());
        setResizable(false);
        setLocationRelativeTo(null);

        JPanel panelFormulario = new JPanel(new GridLayout(4, 2, 10, 10));
        panelFormulario.setBorder(BorderFactory.createEmptyBorder(10, 20, 10, 20));

        JLabel lblNumIdentificacionPaciente = new JLabel("Número de Identificación del Paciente:");
        txtNumIdentificacionPaciente = new JTextField();

        JLabel lblNumIdentificacionVacuna = new JLabel("Número de Identificación de la Vacuna:");
        txtNumIdentificacionVacuna = new JTextField();

        JLabel lblFechaAplicacion = new JLabel("Fecha de Aplicación:");
        txtFechaAplicacion = new JTextField();

        JLabel lblNombreVacuna = new JLabel("Nombre de la Vacuna:");
        txtNombreVacuna = new JTextField();

       

        panelFormulario.add(lblNumIdentificacionPaciente);
        panelFormulario.add(txtNumIdentificacionPaciente);
        panelFormulario.add(lblNumIdentificacionVacuna);
        panelFormulario.add(txtNumIdentificacionVacuna);
        panelFormulario.add(lblFechaAplicacion);
        panelFormulario.add(txtFechaAplicacion);
        panelFormulario.add(lblNombreVacuna);
        panelFormulario.add(txtNombreVacuna);
     
        JButton btnAgregarVacuna = new JButton("Agregar Vacuna");
        btnAgregarVacuna.addActionListener(this);

        JButton btnMostrarVacunas = new JButton("Mostrar Vacunas");
        btnMostrarVacunas.addActionListener(this);

        JButton btnEliminarVacuna = new JButton("Eliminar Vacuna");
        btnEliminarVacuna.addActionListener(this);

        JButton btnSalir = new JButton("Salir");
        btnSalir.addActionListener(this);

        panelFormulario.add(btnAgregarVacuna);
        panelFormulario.add(btnMostrarVacunas);
        panelFormulario.add(btnEliminarVacuna);
        panelFormulario.add(btnSalir);

        txtResultado = new JTextArea();
        txtResultado.setEditable(false);
        JScrollPane scrollPane = new JScrollPane(txtResultado);
        scrollPane.setPreferredSize(new Dimension(560, 200));

        JPanel panelPrincipal = new JPanel(new BorderLayout());
        panelPrincipal.add(panelFormulario, BorderLayout.NORTH);
        panelPrincipal.add(scrollPane, BorderLayout.CENTER);
        panelPrincipal.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));

        add(panelPrincipal);
        setVisible(true);
    }

   

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("Agregar Vacuna")) {
           
            String numIdentificacionPaciente = txtNumIdentificacionPaciente.getText();
            String numIdentificacionVacuna = txtNumIdentificacionVacuna.getText();
            String fechaAplicacion = txtFechaAplicacion.getText();
            String nombreVacuna = txtNombreVacuna.getText();
       
           
        } else if (e.getActionCommand().equals("Mostrar Vacunas")) {
           
            String numIdentificacionPaciente = txtNumIdentificacionPaciente.getText();
           
        } else if (e.getActionCommand().equals("Eliminar Vacuna")) {
           
            String numIdentificacionPaciente = txtNumIdentificacionPaciente.getText();
            String numIdentificacionVacuna = txtNumIdentificacionVacuna.getText();

        } else if (e.getActionCommand().equals("Salir")) {
            dispose();
        }
    }
}



Clase Cita:

public class Cita {

    private String numIdentificacionCita;
    private String fecha;
    private String hora;

}

Clase Expediente:

public class Expediente {

    private String numIdentificacionExpediente;
    private String diagnostico;

}


Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".