[rules-users] Data Modeling for medical expert system

Bruno Freudensprung bruno.freudensprung at temis.com
Tue Nov 8 12:46:45 EST 2011


Hi Dirk,

Good to see that I am not the only one fighting with that question :-).
I guess the general answer is: it depends on how large your "enums" 
might grow.

For instance if your application is eventually supposed to help 
diagnosing (say) all MeSH diseases based on all MeSH symptoms, then an 
approach where every symptom and disease is a Java class is not an 
option; this would lead to so many classes that I doubt Drools user 
interface will handle that, or will be useful anyway (drop-down lists 
with thousands of items).

The opposite approach consists in creating a few "root" Java classes 
like (say) Disease and Symptom and to store the MeSH hierarchy into a 
"name" attribute.
The obvious drawback of the approach is that when your end-users will 
have to write the rules, they will be left with problems like:

when
     Symptom(name == "well... what's the name of this MeSH category??")
then
     Disease(name == "hmmm... can't remember the exact name of the 
disease as normalized in MeSH...")
end

I've posted a message on this topic (subject: Thoughts about rule 
authoring) and Michael Anstis kindly suggested a technical answer. I am 
afraid it did not fit my needs, but it could fit yours :-).

For the moment I have no solution (like an intermediate approach) to my 
problem: I am stuck with approach #2.
I have the impression that my problem requires a very tight integration 
between my database (MeSH) and the Drools suggestion engine.

If you have another approach, I would love to know it ;-).

Best regards,

Bruno.

Le 08/11/2011 17:43, Dirk Conzelmann a écrit :
>   Hi everybody,
>
>   I am using Drools as a part of my Bachelor Thesis.
>   My job is to build an expert system for medical diagnoses.
>
>   My Question:
>   Is there a best practice known in modeling a variable
>   list of questions and answers in Drools?
>
>
>   Up to now I modeled the list of questions implementing
>   Java Classes and Enums for each question/answer pair.
>
>   But to be able to change those options easyly I need
>   a higher abstraction level than simple Java Classes and Enums.
>
>
>   Could someone show me an example how to implement this?
>
>
>   I hope I have explained my question understandable :)
>
>




More information about the rules-users mailing list