From UBC Wiki

Authors: Connie Ho, Alex Huang, Vincent Wong

What is the problem?

Different illnesses may be characterized by certain symptoms. When one starts to feel ill, one may begin to experience such symptoms. We can therefore characterize the possibility of an illness based upon the symptoms a patient experiences. Our project (ProMD) aims to use Prolog to help the patient best determine what illness they may have, given an input of symptoms returning a best possible illness match and solutions to help remedy the first illness listed.

What is the something extra?

Our illness predictor will contain a scale system where a list of possible illnesses is returned in the order of likelihood that the patient has that particular illness. For example, if a patient has all the symptoms for brain cancer, then the illness: brain cancer will be ranked higher on the list of possible illnesses than similar illnesses like an aneurysm.

What did we learn from doing this?

Logic programming is suitable to assess the likelihood that a person has a certain illness based on the degree that their symptoms match the given symptoms of that illness. It is also useful to implement a ranking system like our project does to give the probability of each illness, using calculation of percentages. Prolog suits the mathematical aspect of medical diagnosis well. However, areas where Prolog might find difficulty are where some illnesses have the exact same symptoms or some illnesses require further questions to distinguish from each other like medical history or family history, which cannot be easily quantified on Prolog (ex. How deep in your family tree does this illness appear or Describe the last time you had this illness?). For illnesses which are easily determined purely based on symptoms and don’t require physical and historical medical examination, Prolog could be used to aid in the diagnosis process.