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í:
Con esta clase, se podría crear objetos Dolencia, cada uno con los síntomas asociados.
Ejemplo inventado:
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.