%% Rule-based risk factors

riskfactors :-
	fact(symptoom(X)), (X = koorts ; symptoom(koorts, X)),
	(ask('Bent U de afgelopen 4 jaar in de tropen geweest', YesNo)
	;
	ask('Bent U in de tropen door een mug gebeten', YesNo)),
	(YesNo = [ja] ->
		writeln('waarschijnlijk malaria'),
		assert(fact(symptoom(malariarisico)))
		; writeln('waarschijnlijk geen malaria')).

riskfactors :-
	fact(symptoom(diarree)),
	ask('Heeft U wellicht verontreinigd water gedronken', YesNo),
	(YesNo = [ja] ->
		writeln('waarschijnlijk een darminfectie'),
		assert(fact(symptoom(besmetwater)))
		; writeln('waarschijnlijk geen darminfectie')).

riskfactors :-
	fact(symptoom(diarree)),
	ask('Heeft U in de tropen in een rivier of meer gezommen', YesNo),
	(YesNo = [ja] ->
		writeln('waarschijnlijk een balharziaworm infectie'),
		assert(fact(symptoom(gezwommen)))
		; writeln('waarschijnlijk geen balharziaworm infectie')).

riskfactors :-
	fact(symptoom(X)), concat_atom(List, ' ', X), member(geslachtsorganen, List),
	(ask('Heeft U wisselende seksuele contacten', YesNo)
	;
	ask('Heeft U onveilige gemeenschap gehad', YesNo)),
	(YesNo = [ja] ->
		writeln('waarschijnlijk een SOA'),
		assert(fact(symptoom(soa)))
		; writeln('waarschijnlijk geen SOA')).

%catch-all:
riskfactors.