DDStorm version 0.1

What is DDStorm?

DDStorm is a python application for brainstorming medical differential diagnosis. It is designed to be modular and easily configurable. It is meant to be used by the medical professionals.

DDStorm is still in development phase and not ready for deployment.


Clone the repository to your computer. Alternatively download the source code zip and extract it.

Run the bash script named start to start the program. Alternatively run python3 within the program directory.

The program has a graphical user interface that can be easily used.

Add symptoms: type the symptom name in the top text entry box and click on the Add button. Alternatively you can click on the Browse Symptoms button to browse through a list of available symptoms and select from there.

The symptoms you add will appear in the left sided panel. Depending on the symptoms you add the list of differential diagnosis will update automatically in the right sided panel.


You can change the program configuration by editing the ddstorm.conf file in the program directory. Available options are-

The directory where default library data is located.
The directory where user created library data is located.
The directory where the index of disease hierarchy is located.
The directory where compiled module files will be saved.
The directory where symptom aliases are located.
Setting this to yes will show a splash screen while starting up the program.
Setting this to on will show status messages in the program main window.
Setting this to yes will delete previous logs every time the program starts.

Editing DDStorm data

DDStorm is designed to be extremely customizable. All data files are in plain text format and can be easily edited to suit the need of the user.

There are three types of files —

Library files
Contains the actual differential diagnosis data
Index files
Contains the hierarchy of diseases
Alias files
Contains disease alias

Library files

Naming conventions:

Library files are named after the symptom. Names should be as concise as possible. But care should be taken to avoid confusion.

Library files are compiled flatly and the directory hierarchy is not preserved. So the files abdominal_pain/generalized.txt and abdominal_pain/localized.txt will result in symptoms named generalized and localized. To avoid such confusion the naming should be abdominal pain, generalized.txt and abdominal pain, localized.txt. The resulting symptoms would be easily searchable in the symptom list. E.g. if you enter abdominal pain in the browse box, it would show abdominal pain, generalized and abdominal pain, localized as available symptoms.

The library files support setting custom priority. The priority can be set by naming the file as symptom.priority_number.txt. For example in files named abdominal pain.50.txt and abdominal pain.120.txt the diagnosis mentioned in the second file will come first (120 has higher priority than 50). If no priority number is mentioned default priority 100 is used.

The file names may contain space, - or _. DDStorm converts - and _ to spaces during execution.

Data structure:

Library files contain a single diagnosis per line. The diagnosis should be as specific as possible. Preferably there should be a corresponding entry in the index files indicating the hierarchy of the condition.

Index files

The index files represent the hierarchy of disease conditions. For example acute peritonitis is a sub-type of peritonitis. Now if symptom A has a differential diagnosis of peritonitis and symptom B has a differential diagnosis of acute peritonitis, their combined differential diagnosis will be the more general one i.e. peritonitis.

The index files can be named anything. But for clarity it should be named according to the disease group it represents. For example an index files of abdominal conditions can be named abdomen.txt.

Data structure

Index files contain one disease condition per line. The sub-type of a disease must be written below it and indented by spaces (not tabs).

For example:

    acute peritonitis

The disease conditions of the same level should have same number of spaces for indentation.

Alias files

The alias files contain the alias of the disease conditions. It's useful when a same disease may be known by multiple names.

Data structure

The alias files should have one disease condition per line. The aliases must be separated with ;.

Modular structure

As the library files are processed flatly, without considering the directory structures, they can be freely organized in directories as needed.

The same conditions in different medical discipline can be kept in separate directories.

For example differential diagnosis of abdominal pain in medicine and surgery can be organized in medical/abdominal pain.txt and surgery/abdominal pain.txt respectively. The program will merge them together during execution.


Copyright © 2015-2018 Dr. Agnibho Mondal
All rights reserved

DDStorm is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.


Agnibho Mondal

Softwares of Agnibho

Copyright © 2013-2018 Dr. Agnibho Mondal