1
1
DDStorm
2
- =======
2
+ == =======
3
3
4
4
What is DDStorm?
5
- -------------------
5
+ ================
6
6
7
7
DDStorm is a python application for brainstorming medical differential
8
- diagnosis.
8
+ diagnosis. It is designed to be modular and easily configurable. It is
9
+ meant to be used by the medical professionals.
9
10
10
11
DDStorm is still in development phase and not ready for deployment.
11
12
13
+ Usage
14
+ =====
15
+
16
+ Clone the repository to your computer. Alternatively download the
17
+ source code zip and extract it.
18
+
19
+ Run the bash script named 'start' to start the program. Alternatively
20
+ run 'python3 __main__.py' within the program directory.
21
+
22
+ The program has a graphical user interface that can be easily
23
+ used.
24
+
25
+ Add symptoms: type the symptom name in the top text entry box and
26
+ click on the <Add> button. Alternatively you can click on the
27
+ <Browse_Symptoms> button to browse through a list of available
28
+ symptoms and select from there.
29
+
30
+ The symptoms you add will appear in the left sided panel. Depending on
31
+ the symptoms you add the list of differential diagnosis will update
32
+ automatically in the right sided panel.
33
+
34
+ Configuration
35
+ =============
36
+
37
+ You can change the program configuration by editing the 'ddstorm.conf'
38
+ file in the program directory. Available options are-
39
+
40
+ library_path - The directory where default library data is located
41
+ custom_path - The directory where user created library data is
42
+ located
43
+ index_path - The directory where the index of disease hierarchy is
44
+ located
45
+ module_path - The directory where compiled module files will be
46
+ saved.
47
+ alias_path - The directory where symptom aliases are located
48
+ splash_screen - Setting this to 'yes' (without quote) will show a
49
+ splash screen while starting up the program
50
+ status_message - Setting this to 'on' (without quote) will show status
51
+ messages in the program main window
52
+ clean_log - Setting this to 'yes' (without quote) will delete
53
+ previous logs every time the program starts.
54
+
55
+ Editing DDStorm data
56
+ ====================
57
+
58
+ DDStorm is designed to be extremely customizable. All data files are
59
+ in plain text format and can be easily edited to suit the need of the
60
+ user.
61
+
62
+ There are three types of files-
63
+
64
+ Library files - Contains the actual differential diagnosis data
65
+ Index files - Contains the hierarchy of diseases
66
+ Alias files - Contains disease alias
67
+
68
+ Library files
69
+ -------------
70
+
71
+ * Naming conventions:
72
+
73
+ Library files are named after the "symptom". Names should be as
74
+ concise as possible. But care should be taken to avoid confusion.
75
+
76
+ Library files are compiled flatly and the directory hierarchy is not
77
+ preserved. So the files 'abdominal_pain/generalized.txt' and
78
+ abdominal_pain/localized.txt' will result in symptoms named
79
+ 'generalized' and 'localized'. To avoid such confusion the naming
80
+ should be 'abdominal pain, generalized.txt' and
81
+ 'abdominal pain, localized.txt'. The resulting symptoms would be
82
+ easily searchable in the symptom list. E.g. if you enter
83
+ 'abdominal pain' in the browse box, it would show 'abdominal pain,
84
+ generalized' and 'abdominal pain, localized' as available symptoms.
85
+
86
+ The library files support setting custom priority. The priority can be
87
+ set by naming the file as <symptom.priority_number.txt>. For example
88
+ in files named 'abdominal pain.50.txt' and 'abdominal pain.120.txt'
89
+ the diagnosis mentioned in the second file will come first (120 has
90
+ higher priority than 50). If no priority number is mentioned default
91
+ priority '100' is used.
92
+
93
+ The file names may contain space, '-' or '_'. DDStorm converts '-' and
94
+ '_' to spaces during execution.
95
+
96
+ * Data structure:
97
+
98
+ Library files contain a single diagnosis per line. The diagnosis
99
+ should be as specific as possible. Preferably there should be a
100
+ corresponding entry in the index files indicating the hierarchy of the
101
+ condition.
102
+
103
+ Index files
104
+ -----------
105
+
106
+ The index files represent the hierarchy of disease conditions. For
107
+ example 'acute peritonitis' is a sub-type of 'peritonitis'. Now if
108
+ symptom 'A' has a differential diagnosis of 'peritonitis' and symptom
109
+ 'B' has a differential diagnosis of 'acute peritonitis', their
110
+ combined differential diagnosis will be the more general one
111
+ i.e. 'peritonitis'.
112
+
113
+ The index files can be named anything. But for clarity it should be
114
+ named according to the disease group it represents. For example an
115
+ index files of abdominal conditions can be named 'abdomen.txt'.
116
+
117
+ * Data structure
118
+
119
+ Index files contain one disease condition per line. The sub-type of a
120
+ disease must be written below it and indented by 'spaces' (not
121
+ tabs).
122
+
123
+ For example:
124
+
125
+ peritonitis
126
+ acute peritonitis
127
+
128
+ The disease conditions of the same level should have same number of
129
+ spaces for indentation.
130
+
131
+ Alias files
132
+ -----------
133
+
134
+ The alias files contain the alias of the disease conditions. It's
135
+ useful when a same disease may be known by multiple names.
136
+
137
+ * Data structure
138
+
139
+ The alias files should have one disease condition per line. The
140
+ aliases must be separated with ';'.
141
+
142
+ Modular structure
143
+ -----------------
144
+
145
+ As the library files are processed flatly, without considering the
146
+ directory structures, they can be freely organized in directories as
147
+ needed.
148
+
149
+ The same conditions in different medical discipline can be
150
+ kept in separate directories.
151
+
152
+ For example differential diagnosis abdominal pain in medicine and
153
+ surgery can be organized in 'medical/abdominal pain.txt' and
154
+ 'surgery/abdominal pain.txt' respectively. The program will merge them
155
+ together during execution.
156
+
12
157
Licensing
13
- ---------
158
+ =========
14
159
15
160
Copyright (c) 2015 Agnibho Mondal
16
161
All rights reserved
@@ -31,7 +176,7 @@ You should have received a copy of the GNU General Public License
31
176
along with DDStorm. If not, see <http://www.gnu.org/licenses/>.
32
177
33
178
Contacts
34
- --------
179
+ ========
35
180
36
181
Agnibho Mondal
37
182
0 commit comments