Java - Sistema de diagnostico medico

 
Vista:
sin imagen de perfil
Val: 8
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Sistema de diagnostico medico

Publicado por Rafael (3 intervenciones) el 06/09/2019 23:17:35
Hola, estoy iniciando en el mundo de la programación y quisiera aclarar un par de dudas que tengo con respecto a la creación de un sistema de diagnostico medico. Me explico, necesito realizar un sistema que me permita introducir un texto describiendo una serie de síntomas, por ejemplo: "El paciente presenta una sintomatología donde refiere congestión nasal con altos niveles de mucosa, fiebre intensa, tos con flema abundante, etc ", luego al finalizar el texto, debe haber un botón que al presionarlo arroje un posible diagnostico basándose en lo descrito en anteriormente. Al programar en Java es obvio que para introducir el texto requiero de un JTextArea, pero ¿Como hago para analizar de ese JTextArea los diferente síntomas que se describen? y luego, ¿Como hacer que después de analizado el contenido me arroje un posible resultado, ya que muchos síntomas pueden dar diagnósticos parecidos o incluso iguales (cosa que no quiero).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 1.745
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Sistema de diagnostico medico

Publicado por Kabuto (433 intervenciones) el 07/09/2019 00:59:15
Humm...
Yo diría que aquí necesitas más ayuda por parte de alguien versado en Medicina y no tanto en Programación.

Así a priori, y siendo yo un ignorante..,. se me ocurre que se podría crear una clase, llamada por ejemplo Dolencia, y uno de sus atributos sea una lista (un array de Strings por ejemplo) de los síntomas asociados a dicha Dolencia.
Tendría, entre otros, un método que recibiendo un String que contendría un "síntoma", indique si dicho "síntoma" está asociado o no a esta Dolencia. Esto se haría recorriendo el array de sintomas y comparando con el String recibido.
Algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Dolencia {
 
    private String nombreDolencia;
    private String[] sintomas;
 
    public Dolencia(String nombre, String[] sintomas) {
        nombreDolencia = nombre;
        this.sintomas = sintomas;
    }
 
    public boolean sintomaAsociado(String sintoma) {
        for (String sint: sintomas)
            if (sint.equals(sintoma))
                return true; //El sintoma SÍ está asociado a esta Dolencia.
 
        return false; //Si el bucle no ha retornado true, es que NO está asociado a esta Dolencia.
    }
 
}


Con esta clase, se podría crear objetos Dolencia, cada uno con los síntomas asociados.
Ejemplo inventado:
1
Dolencia dolencia1 = new Dolencia("Resfriado", new String[] {"Mucosidad", "Congestión Nasal", "Dolor de Cabeza"});

Estos objetos Dolencias se deberían declarar en otra clase, llamada GestionDolencias o algo parecido..., donde se agrupen en un ArrayList o similar.

Entonces esta clase gestora, entre otras cosas, podría tener un método que recibiera una serie de Strings con distintos síntomas.
Y recorriendo todas las Dolencias almacenadas, comprobase cuál/es de ellas tiene más síntomas atribuidos que coincidan con los síntomas consultados.
Así este método devolvería la Dolencia con más coincidencias.

Estos Strings serían extraidos del JTextArea. Para hacer esto, se necesitaría un método que tuviera una lista de TODOS los síntomas conocidos por el programa y busque cuáles de ellos están contenidos en el JTextArea.

Esto no es difícil, pero si queda abierto a muchas inexactitudes. Me refiero que si un síntoma es "Congestión Nasal", hay riesgo de que en el JTextArea:
- se escriba mal ortográficamente--> "Conjestion Nasal"
- o se escriba de forma distinta --> "Nariz congestionada"

Esto provocaría que el sistema no fuera capaz de detectar este síntoma, a no se que se amplíe la lista de síntomas con todas las posibles formas de expresar y/o escribir un mismo síntoma.

Quizás, fuera mejor cambiar el JTextArea por un ComboBox, una lista desplegable con todos los síntomas y el usuario elija los que sean aplicables al paciente en cuestión, en lugar de escribirlos en un area de texto.
Es más incómodo para el usuario, pero más eficiente de cara al funcionamiento del programa.

En fin, a grandes rasgos, esto podría ser un boceto de la lógica a seguir.

Pero obviamente se hace necesario conocer previamente las Dolencias posibles y que síntomas están asociados a cada una.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Sistema de diagnostico medico

Publicado por Rafael (3 intervenciones) el 07/09/2019 06:34:24
image Hola, gracias por responderme. He seguido la recomendación que se me ha dado con respecto a poner JCheckBoxes para señalar los síntomas que deseo elegir para el diagnostico, sin embargo no logro atinarle a la lógica para evitar que me aparezca varias veces el JOptionPane ya que al colocar las condiciones como lo pueden observar en la imagen si marco primero la opcion "Tos y Malestar" me aparece un mensaje de ejemplo al cual le puse "Hola1", pero si vuelvo a marcar la opcion "Tos y Malestar mas la opcion Fiebre" me aparece otra vez el mensaje "Hola1" y despues el mensaje "Hola2". ¿Como puedo evitar que me detecte las opciones anteriores?. Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Sistema de diagnostico medico

Publicado por Rafael (3 intervenciones) el 18/09/2019 16:45:44
Como haría para una tabla con JCheckBoxes? y que no me repita las opciones elegidas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 1.820
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Sistema de diagnostico medico

Publicado por Billy Joel (473 intervenciones) el 07/09/2019 01:02:46
Supongo que deberías definir una lista de ante mano los posibles sintomas.
Entonces implementar una lista de checkboxes en tu formulario. Al guardar dependiendo de los valores marcados, tu progra debería poder definir una posible enfermedad y su tratamiento.

Supongo que a los sintomas deberías añadir el nivel de dolor para diferenciar un leve dolor de cabeza con una meninjitis.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar