Robert MacLean
14 June 2007
One of the method of diagnosing illnesses and diseases in medicine is differential diagnosis (DDx), which is the method of creating lists of symptoms and cross referencing that with diseases and then testing or eliminating possible diseases from the list. For example:
Patient pX shows symptoms sA and sB. The doctor then draws up a list of all diseases which have sA and sB as symptons as follows:
The doctor then tests for sE which either confirms or eliminates dA and dD and so on until one disease is confirmed to be the cause.
This method has gotten more attention in the last few years thanks to the TV show House, where they use it extensively and it is actually through the House Wikipedia article that I stumbled onto the Wikipedia article on DDx (never say that TV doesn’t enrich). Going through the article references to various studies of how the use of general search engines like Google and specialised search engines on sites like Pubmed are being increasingly used to generate the lists and with greater accuracy as opposed to existing methods such as learning them or building up their own list.
This instantly reminded me of the days gone past when I did technical work and did searches high and low for various problems I encountered, and how the process of determining a problem was very similar. What were lacking were the lists for no other reason that I have never seen any compiled or never tried to compile such a list.
So how do we go about building a list to handle this? Well we need a format which contains this sort of information. Not another format! Actually yes, another lightweight format is needed. See if the point was to provide a list of information I could do that in the way I did the example above, by simply providing a table. But the point is to share this information out, so we need a format that is not only human readable within
reason, but also machine readable.
Before you run off thinking thoughts of irrelevance, think of the way formats like ATOM and RSS allowed content to be syndicated. Now think if you could have a similar tool to your RSS reader, except it allowed you to subscribe to these types of lists? Or think if Google could do a special search bot just for this information and expose it in some funky way? The true power then becomes apparent for all.
So far I have been playing around with the idea for the format and come up with the template below. There is some things which I should borrow from RSS/ATOM which would be good to include, but this is a start. If you have suggestions to the format please email me around them
Disease | Symptons | |||
dA | sA | sB | sE | |
dB | sA | sB | ||
dC | sA | sB | sF | |
dD | sA | sB | sE | sG |
<?xml version="1.0"encoding="utf-8"?>
<ddx>
<cause name="Active Directory Authentication Configured Incorrectly" moreInfo="http://www.sadev.co.za" causeId="{A498231B-C651-4779-9FC8-43044598E795}" extendedSolution="Configure the active directory authentication.">
<symptom description="User can not login on desktop." moreInfo="http://www.sadev.co.za" symptomId="{F1565DE1-6F4A-4734-8BAE-B5E6D9680FEB}"/>
<symptom description="User can not login on desktop." moreInfo="http://www.sadev.co.za" symptomId="{F1565DE1-6F4A-4734-8BAE-B5E6D9680FEB}"/>
<symptom description="User can not login on desktop." moreInfo="http://www.sadev.co.za" symptomId="{F1565DE1-6F4A-4734-8BAE-B5E6D9680FEB}"/>
<symptom description="User can not login on desktop." moreInfo="http://www.sadev.co.za" symptomId="{F1565DE1-6F4A-4734-8BAE-B5E6D9680FEB}"/>
</cause>
<cause name="Active Directory Authentication Configured Incorrectly" moreInfo="http://www.sadev.co.za" causeId="{A498231B-C651-4779-9FC8-43044598E795}" extendedSolution="Configure the active directory authentication.">
<symptom description="User can not login on desktop." moreInfo="http://www.sadev.co.za" symptomId="{F1565DE1-6F4A-4734-8BAE-B5E6D9680FEB}"/>
<symptom description="User can not login on desktop." moreInfo="http://www.sadev.co.za" symptomId="{F1565DE1-6F4A-4734-8BAE-B5E6D9680FEB}"/>
<symptom description="User can not login on desktop." moreInfo="http://www.sadev.co.za" symptomId="{F1565DE1-6F4A-4734-8BAE-B5E6D9680FEB}"/>
<symptom description="User can not login on desktop." moreInfo="http://www.sadev.co.za" symptomId="{F1565DE1-6F4A-4734-8BAE-B5E6D9680FEB}"/>
</cause>
<cause name="Active Directory Authentication Configured Incorrectly" moreInfo="http://www.sadev.co.za" causeId="{A498231B-C651-4779-9FC8-43044598E795}" extendedSolution="Configure the active directory authentication.">
<symptom description="User can not login on desktop." moreInfo="http://www.sadev.co.za" symptomId="{F1565DE1-6F4A-4734-8BAE-B5E6D9680FEB}"/>
<symptom description="User can not login on desktop." moreInfo="http://www.sadev.co.za" symptomId="{F1565DE1-6F4A-4734-8BAE-B5E6D9680FEB}"/>
<symptom description="User can not login on desktop." moreInfo="http://www.sadev.co.za" symptomId="{F1565DE1-6F4A-4734-8BAE-B5E6D9680FEB}"/>
<symptom description="User can not login on desktop." moreInfo="http://www.sadev.co.za" symptomId="{F1565DE1-6F4A-4734-8BAE-B5E6D9680FEB}"/>
</cause>
</ddx>