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.


Mensajes - jonij

Páginas: [1]
2
Hola buen día es necesario que se modifique el constructor de Paciente para incluir el expediente?


3
Porque cuando quisiese borrar un paciente también que se borrase su expediente de manera automática.

4
Ok, en este caso me iría por la segunda opción.

5
Hola Kabuto, muchas gracias, tu guía me ha servido de mucha ayuda. En este momento, estoy intentando hacer las clases Cita y PantallaCita para poder agregar citas a un paciente.

Sin embargo, pienso que para Expediente sería diferente. Quiero que un paciente tenga un solo expediente, y, a su vez, un expediente solo pueda estar relacionado con un solo paciente.

Además, necesito tomar los datos del paciente y las vacunas que se le han aplicado; esta información debe estar incluida en el expediente del paciente. ¿Que tan factible es hacer esto?

También me gustaría que la información del expediente de un paciente se pueda mostrar en un JTextArea.

Además, estaba considerando crear un ArrayList de tipo String en la clase Expediente que contenga los medicamentos del paciente.

La clase Expediente:

package modelo;

import java.util.ArrayList;

public class Expediente {

    private String idNumIdentificacioExpediente;
    private String diagnostico;
    private ArrayList<String> medicamentos;

    public Expediente() {
    }

    public Expediente(String idNumIdentificacioExpediente, String diagnostico, ArrayList<String> medicamentos) {
        this.idNumIdentificacioExpediente = idNumIdentificacioExpediente;
        this.diagnostico = diagnostico;
        this.medicamentos = medicamentos;
    }

    public String getIdNumIdentificacioExpediente() {
        return idNumIdentificacioExpediente;
    }

    public String getDiagnostico() {
        return diagnostico;
    }



    public void setIdNumIdentificacioExpediente(String idNumIdentificacioExpediente) {
        this.idNumIdentificacioExpediente = idNumIdentificacioExpediente;
    }

    public void setDiagnostico(String diagnostico) {
        this.diagnostico = diagnostico;
    }


}


6
Buen día, me parece muy bien, para la pantalla vacuna quiero poder agregarle varias vacunas (una a la vez, así como ir agregando los pacientes) a un determinado paciente. Así como también editarlas y eliminarlas.

Luego poder ver las todas las vacunas que tiene aplicadas un determinado paciente.

7
Hola Kabuto, aprecio que te hayas tomado el tiempo para revisar mi código y ofrecer orientación, tienes razón en que el código necesita ser replanteado. Estaré pendiente de cualquier ejemplo o recomendación que puedas proporcionarme mas tarde.

8
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".