Differential Diagnosis Lists for IT

One of the methods of diagnosing illnesses and diseases in medicine is differential diagnosis (DDx), which is the method of creating lists of symptoms and cross-referencing them with diseases, 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 that have sA and sB as symptoms, as follows:

DiseaseSymptoms
dAsA
dBsA
dCsA
dDsA

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 gained more attention in recent years thanks to the TV show House, where they use it extensively. It was actually through the House Wikipedia article that I stumbled upon the Wikipedia article on DDx (never say that TV doesn’t enrich our knowledge).

Going through the article, references to various studies of how the use of general search engines like Google and specialized search engines on sites like PubMed are increasingly being used to generate these lists with greater accuracy—compared to traditional methods like memorization or building one’s own list. This instantly reminded me of my days doing technical work, when I searched high and low for solutions to problems I encountered. The process of diagnosing those issues was very similar. What was lacking, for whatever reason, were curated lists—I’ve never seen any compiled, nor have I attempted to create one myself. So how do we go about building such a list?

Well, we need a format that contains this kind of information—not another bloated format, but a lightweight one. While a simple table works for a static example, the goal is to share this data, so we need something both human- and machine-readable. Before dismissing the idea as irrelevant, consider how formats like ATOM and RSS enabled content syndication. Imagine if we could have a tool like an RSS reader, but for these diagnostic lists? Or if Google could deploy a specialized search bot for this data and present it in a unique way? The true power becomes clear.

So far, I’ve been experimenting with a format, borrowing some ideas from RSS/ATOM. Here’s my initial template. If you have suggestions, email me at

<?xml version="1.0" encoding="utf-8"?>
<ddx>
  <cause name="Active Directory Authentication Configured Incorrectly" moreInfo="https://www.sadev.co.za" causeId="{A498231B-C651-4779-9FC8-43044598E795}" extendedSolution="Configure the active directory authentication.">
    <symptom description="User cannot log in on desktop." moreInfo="https://www.sadev.co.za" symptomId="{F1565DE1-6F4A-4734-8BAE-B5E6D9680FEB}" />
  </cause>
  <!-- Duplicates removed; original structure preserved for the first unique entry only -->
</ddx>`