I am using Neo4j graph database to store medical symptoms and diseases . the purpose behind that is give recommendation of diseases a person can have from the symptoms the user has entered into the system. Right now I have stored various symptoms as follows .
It is a very basic graph structure , from which I am retrieving the disease by matching patterns through cypher query such as intersection of causes by Fever , Headache and Flu. What I want to achieve is to build a complex structure involving location and age factor and etc and write various algorithms to retrieve the most connected node by efficiently traversing. I am unable to find such complex structures into internet, So any suggestions would be appreciated. Even though It is not much coding like of question , please give some suggestions as it is just a college project ,and I have to go further in this.
Here is one simple model that can answer complex queries.
Have 3 types of nodes:
Once you build this with patient's data, you will have a sufficiently complex graph to do the following:
Since it is a college project, you can first try with some mock data. This method should be perfect mixture between effectiveness and simplicity.
Maybe you should rethink your model. IMHO, you have not separated symptoms, illness and maybe exams.
Give a look to the Neo4J labels
(:symptom)-[BELONGS]->(:symptomGroup)-[MAY_INDICATE]->(:illNess) (:exam)-[VERIFIES]->(:illNess)
You have to group symptoms
As it is a college project and maybe you are not a doctor, you are not expected to build a 'cure it all' system.
Handle the case where the solution is not found.
I shouldn't write that but I know that brilliant ppl working @ Vidal (French medical publisher) have published a graphgist on that topic recently.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With