Sistema experto en diagnóstico médico basado en síntomas de los pacientes
Objetivos
1. Desarrollo respecto a un "SE Médico
basado en síntomas, Enfermedades, Medicamentos y
Médicos".2. Tener una base de conocimientos el cual un
paciente dado los síntomas que posee, pueda ser
detectado que tipo(s) de enfermedad(es) pueda tener y los
medicamentos que este debe tomar para su mejora así
como también los médicos que pueden
tratarlo.
Enunciado del
problema
Realizar un SISTEMA EXPERTO MÉDICO cuyas
reglas de síntomas y enfermedades se dan a
continuación:Declarar un conjunto de síntomas y
enfermedades que existen.Un Paciente llega e indica los síntomas que
tiene.El sistema experto debe reconocer que tipo de
enfermedad dicha persona pueda tener además de
ofrecerle medicamentos para su mejora y los doctores el
cuales le pueden tratar.
Diagrama General
Código
Fuente
%%declaraciones de enfermedades
enfermedad(gripe).
enfermedad(rubeola).
enfermedad(malaria).
enfermedad(hepatitis).
enfermedad(tuberculosis).
enfermedad(anemia).
%enfermode(manuel,gripe).
%tienesintoma(alicia,cansancio).
%declaraciones de síntomas,
según enfermedad
%podemos hacer consultas por
ejemplo
%mostrar una enfermedad y sus síntomas o las
enfermedades y síntomas
%determinar un síntoma a que
enfermedad(es) pertecene
sintomade(tos, gripe). %la tos es
síntoma de gripe
sintomade(cansancio, gripe). %el cansancio es
síntoma de gripe
sintomade(fiebre, gripe). %la fiebre es
síntoma de gripe
sintomade(dolorcabeza, gripe). %dolor de cabeza es
síntoma de gripe
sintomade(nauseas, hepatitis). %las nauseas son
síntoma de hepatitis
sintomade(diarrea, hepatitis). %la diarrea es
síntoma de hepatitis
sintomade(ictericia, hepatitis). %la ictericia es
síntoma de hepatitis
sintomade(cansancio, anemia). %cansancio es
síntoma de anemia
sintomade(apatia, anemia). %apatía
es síntoma de anemia
sintomade(nausea, anemia). %las nauseas son
síntomas de anemia
sintomade(tos, tuberculosis). %la tos es síntoma
de la tuberculosis
sintomade(cansancio, tuberculosis). %el cansancio es
síntoma de tuberculosis
sintomade(fiebre, tuberculosis). %la fiebre es
síntoma de la tuberculosis
sintomade(escalofrios, tuberculosis). %los
escalofríos es síntoma de tuberculosis
sintomade(escalofrios, malaria). %los escalofríos
son síntomas de la malaria
sintomade(fiebre , malaria). %la fiebre es
síntoma de malaria
sintomade(diarrea , malaria). %la diarrea es
síntoma de malaria
sintomade(ictericia, malaria). %la ictericia es
síntoma de malaria
sintomade(fiebre, rubeola). %la fiebre es síntoma
de rubéola
sintomade(jaqueca, rubeola). %la jaqueca es
síntoma de rubéola
sintomade(secrecion, rubeola). %la secreción es
síntoma de rubeola
% Reglas para determinar que probabilidad una persona
puede tener una
% enfermedad X dado n
síntomas
% %La función buscar busca las
enfermedades que contengan como mínimo los síntomas
%suministrados
% % primer parámetro (lista de
enfermedades)
% % segundo parámetro
(Enfermedad)
% %tercer parámetro cantidad de
ocurrencias
% %(a decir verdad tendría que ser
la misma cantidad que el arreglo entregado)
buscar([], E , 0).
buscar(X , E , 1) :- sintomade(X,
E).
buscar([X|Xs] , E , P) :- enfermedad(E) ,
buscar(X , E , S1) , buscar(Xs , E ,S2) , P is S1 +
S2.
%%función que devuelve la cantidad
de síntomas totales de la enfermedad
seleccionada
cantSint(E , C) :- findall(X , sintoma(X,
E) , L) , length(L , R), C is R.
%%Esta función es parecida a la de buscar con la
excepción que en el ultimo argumento te entrega
%% el (porcentaje de probabilidad de la
enfermedad)
diagnostico([X|Xs] , E , K) :- buscar([X|Xs] , E , P) ,
cantSint(E , T) , K is P * 100 / T.
%———————————————————————————————————————
%hasta alli llegamos en el primer informe,
pero ahora añadiremos mas capacidad a nuestro
SE.
%———————————————————————————————————————
%declaraciones de los hechos para determinar medicina de
una enfermedad
%que medicamento debo tomar dependiendo la
enfermedad
Página siguiente |