Software architecture

The interface module: This module is designed for user interaction. Depending on user inputs, this module controls the remaining modules. Starting with main forum, this module encompasses six other sub-modules, one of which contains 3 further sub-modules. that will be activated depending on the functions or analysis selected by the user.
The input/output module: This module controls retrieval, conversion and storage of data used and generated by the program. Even though EDF is a standart file format used by all PSG devices, annotations and montage parameters used by each brand may differ. This can cause program malfunction. To overcome this situation a sub-program is built into this module to recognize channels automatically. First it checks for channel names to get a match. Next, it looks at signal features like sampling ratio, filter values, etc. The channel detection routine is tested on seven different devices and successfully identified channels. Examples are shown in documentation. 
The system objects module: The system object module is the engine of the whole system performing all the functions needed for analysis and output display.  It is not directly accessible by the user, and the module can access services from those objects through the objects public interface at the background. There are four sub-modules in the system object module:
(i) Data objects sub-module performs data storage and manipulation functions.
(ii) Analysis objects sub-module is responsible for executing analysis methods obtained from algorithm module.
(iii) Visualization objects sub-module is used for the graphical presentation of data and study results
(iv) Parallel objects sub-module synchronises parallel processing routines when it is possible like calculation of different signal channels simultaneously or simultaneous drawing of charts of these channels.
The algorithm module: This module contains the submodules that stores and executes all mathematical functions in the program. These are divided to submodules statistics, digital signal processing and machine learning; three main categories of the functions provided by the program. Each sub module contains a number of different mathematical functions and new functions are being added as the program is further developed with continuing studies. Still if an algorithm needed by the user is missing, it can be added as a dynamic link library (DLL) file. The program contains five machine learning methods. To add further functionality in machine learning an interface connection to WEKA software is provided. WEKA is an open-source data-mining software, used for machine learning and it provides a wide selection of machine learning algorithms as it is designed solely for this purpose. Here WEKA connection is optional and it can be used for use of other machine learning methods that are available in WEKA repository. With this connection enabled, the user will have access to all classification methods provided by WEKA
Structure of the MySQL Database
When a new database is created for a new study five tables (edffile, xmlanotation, edfsignalparam, annotation, pattern) are created automatically by the program. Extra tables are created depending on the selected analysis methods, as each method differs in terms of their data requirements.
The online help was made with Dr.Explain