added disease recognizing procedure suggest; created diagnose procedure placeholder; minor fixes
This commit is contained in:
parent
f7a47cec3b
commit
534edfc22d
141
asd.pl
141
asd.pl
@ -1,4 +1,8 @@
|
|||||||
disease('flu',[('pain',['throat']),('runny nose'),('fever',-1),('general weakness'),('cough')],[('pain',['musles'])]).
|
% | ======================= |
|
||||||
|
% | == disease data base == |
|
||||||
|
% | ======================= |
|
||||||
|
|
||||||
|
disease('flu',[('pain',['throat']),('runny nose'),('fever',-1),('general weakness'),('cough')],[('pain',['muscles'])]).
|
||||||
disease('malaria',[('fever',2),('general weakness')],[('pain',['head']),('chills'),('erythrocyte',-1)]).
|
disease('malaria',[('fever',2),('general weakness')],[('pain',['head']),('chills'),('erythrocyte',-1)]).
|
||||||
disease('angina',[('fever',2),('cough'),('general weakness'),('magnifying lymph nodes'),('pain',['throat'])],[('cannot swallow'),('pain',['head']),('chills')]).
|
disease('angina',[('fever',2),('cough'),('general weakness'),('magnifying lymph nodes'),('pain',['throat'])],[('cannot swallow'),('pain',['head']),('chills')]).
|
||||||
disease('diphtheria',[('fever',1),('general weakness'),('dyspnea')],[('Unclear Speech'),('cannot swallow')]).
|
disease('diphtheria',[('fever',1),('general weakness'),('dyspnea')],[('Unclear Speech'),('cannot swallow')]).
|
||||||
@ -7,4 +11,137 @@ disease('plague',[('fever',2),('general weakness'),('magnifying lymph nodes'),('
|
|||||||
disease('haemophilia',[('epistaxis'),('impaired blood clotting'),('spleen enlargement')],[]).
|
disease('haemophilia',[('epistaxis'),('impaired blood clotting'),('spleen enlargement')],[]).
|
||||||
disease('whooping cough',[('fever',1),('pain',['throat']),('paroxysmal cough')],[('conjunctivitis'),('vomiting')]).
|
disease('whooping cough',[('fever',1),('pain',['throat']),('paroxysmal cough')],[('conjunctivitis'),('vomiting')]).
|
||||||
disease('myasthenia',[('excessive fatigue')],[('muscle weakness'),('double vision')]).
|
disease('myasthenia',[('excessive fatigue')],[('muscle weakness'),('double vision')]).
|
||||||
disease('atrial fibrillation',[('dizziness'),('fainting'),('excessive fatigue')],[('cough')]).
|
disease('atrial fibrillation',[('dizziness'),('fainting'),('excessive fatigue')],[('cough')]).
|
||||||
|
|
||||||
|
|
||||||
|
% | ===================== |
|
||||||
|
% | == main procedures == |
|
||||||
|
% | ===================== |
|
||||||
|
|
||||||
|
% temporarily returning true
|
||||||
|
diagnose(Sentence, Answer) :- true.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% | ==================================== |
|
||||||
|
% | == disease recognizing procedures == |
|
||||||
|
% | ==================================== |
|
||||||
|
|
||||||
|
% | = auxiliary procedures = |
|
||||||
|
|
||||||
|
includesAll(_, []) :- true, !.
|
||||||
|
includesAll(List, [Inhd|Intl]) :- member(Inhd, List), includesAll(List, Intl), !.
|
||||||
|
|
||||||
|
includesAny(_, []) :- false, !.
|
||||||
|
includesAny(List, [Inhd|Intl]) :- member(Inhd, List); includesAny(List, Intl), !.
|
||||||
|
|
||||||
|
checkForDiseaseStrong(Symptoms, Disease) :-
|
||||||
|
disease(Disease, ObligatorySymptoms, AdditionalSymptoms),
|
||||||
|
append(ObligatorySymptoms, AdditionalSymptoms, ExpectedSymptoms),
|
||||||
|
includesAll(Symptoms, ObligatorySymptoms),
|
||||||
|
includesAll(ExpectedSymptoms, Symptoms),
|
||||||
|
!.
|
||||||
|
|
||||||
|
checkForDiseaseWeak(Symptoms, Disease) :-
|
||||||
|
disease(Disease, ObligatorySymptoms, AdditionalSymptoms),
|
||||||
|
append(ObligatorySymptoms, AdditionalSymptoms, ExpectedSymptoms),
|
||||||
|
includesAny(Symptoms, ExpectedSymptoms),
|
||||||
|
includesAll(ExpectedSymptoms, Symptoms),
|
||||||
|
!.
|
||||||
|
|
||||||
|
|
||||||
|
% | = suggest procedure = |
|
||||||
|
|
||||||
|
% flu
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseStrong(Symptoms, 'flu'),
|
||||||
|
Answer = "The patients disease is almost certainly flu.".
|
||||||
|
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseWeak(Symptoms, 'flu'),
|
||||||
|
Answer = "The patients disease might be flu.".
|
||||||
|
|
||||||
|
% malaria
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseStrong(Symptoms, 'malaria'),
|
||||||
|
Answer = "The patients disease is almost certainly malaria.".
|
||||||
|
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseWeak(Symptoms, 'malaria'),
|
||||||
|
Answer = "The patients disease might be malaria.".
|
||||||
|
|
||||||
|
% angina
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseStrong(Symptoms, 'angina'),
|
||||||
|
Answer = "The patients disease is almost certainly angina.".
|
||||||
|
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseWeak(Symptoms, 'angina'),
|
||||||
|
Answer = "The patients disease might be angina.".
|
||||||
|
|
||||||
|
% diphtheria
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseStrong(Symptoms, 'diphtheria'),
|
||||||
|
Answer = "The patients disease is almost certainly diphtheria.".
|
||||||
|
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseWeak(Symptoms, 'diphtheria'),
|
||||||
|
Answer = "The patients disease might be diphtheria.".
|
||||||
|
|
||||||
|
% typhoid
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseStrong(Symptoms, 'typhoid'),
|
||||||
|
Answer = "The patients disease is almost certainly typhoid.".
|
||||||
|
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseWeak(Symptoms, 'typhoid'),
|
||||||
|
Answer = "The patients disease might be typhoid.".
|
||||||
|
|
||||||
|
% plague
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseStrong(Symptoms, 'plague'),
|
||||||
|
Answer = "The patients disease is almost certainly plague.".
|
||||||
|
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseWeak(Symptoms, 'plague'),
|
||||||
|
Answer = "The patients disease might be plague.".
|
||||||
|
|
||||||
|
% haemophilia
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseStrong(Symptoms, 'haemophilia'),
|
||||||
|
Answer = "The patients disease is almost certainly haemophilia.".
|
||||||
|
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseWeak(Symptoms, 'haemophilia'),
|
||||||
|
Answer = "The patients disease might be haemophilia.".
|
||||||
|
|
||||||
|
% whooping cough
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseStrong(Symptoms, 'whooping cough'),
|
||||||
|
Answer = "The patients disease is almost certainly whooping cough.".
|
||||||
|
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseWeak(Symptoms, 'whooping cough'),
|
||||||
|
Answer = "The patients disease might be whooping cough.".
|
||||||
|
|
||||||
|
% myasthenia
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseStrong(Symptoms, 'myasthenia'),
|
||||||
|
Answer = "The patients disease is almost certainly myasthenia.".
|
||||||
|
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseWeak(Symptoms, 'myasthenia'),
|
||||||
|
Answer = "The patients disease might be myasthenia.".
|
||||||
|
|
||||||
|
% atrial fibrillation
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseStrong(Symptoms, 'atrial fibrillation'),
|
||||||
|
Answer = "The patients disease is almost certainly atrial fibrillation.".
|
||||||
|
|
||||||
|
suggest(Symptoms, Answer) :-
|
||||||
|
checkForDiseaseWeak(Symptoms, 'atrial fibrillation'),
|
||||||
|
Answer = "The patients disease might be atrial fibrillation.".
|
Loading…
Reference in New Issue
Block a user