Software components

From ECHSA Congenital Database
Jump to navigationJump to search

System components

Main Website The main website is written in PHP and uses MySQL as the database. This is not the central ECDB database though, it's only the database that stores the web site's contents. It also stores the so-called "BIG" table, which was the main source of data for online "Golden Standards" reports.

The reports There is a section of reports, which were ported from former Lotus Notes website to PHP. They rely on the <link linkend="bigtable">BIG table.


Data Entry form and new reports

Overview

There is a separate part of the website, that is written in <link linkend="python">Python, and contains:


The Data Entry Form


The new reports


Basic Score Report


Quality of Care Charts


Complications Report



This part of the website uses <ulink url="https://www.eactscongenitaldb.org/db/"> https://www.eactscongenitaldb.org/db/


address. It uses separate session handling, which means, that user has to log in in this section separately. The second logging in is hidden from the user, as the authentication data is stored in the links leading from PHP part to the Python part. The distadvantage of it is that if user logs out of PHP site, the Python part doesn't know about that and user remains logged.



The files This part of the website has it's own directory subtree.


doc -- the documentation directory


html -- this directory is the served over the WWW


sql -- contains the SQL scripts, the database structure and some queries


tools -- contains the tools for doing specific tasks, e.g. importing data from <link linkend="echdd6">echdd6 application.



Report Generator

Report Generator is a tool that is designed to generate sets of reports, basing on the XML report definition file.



Software involved <sect3 id="linux"> GNU/Linux GNU/Linux is used as the operating system on the central database server. GNU/Linux is a free Unix-type operating system originally created by Linus Torvalds with the assistance of developers around the world. Developed under the <ulink url="http://www.gnu.org">GNU General Public License , the source code for Linux is freely available to everyone. Apart from the fact that it's freely distributed, GNU/Linux's functionality, adaptability and robustness, has made it the main alternative for proprietary Unix and Microsoft operating systems. IBM, Hewlett-Packard and other giants of the computing world have embraced GNU/Linux and support its ongoing development. More than a decade after its initial release, GNU/Linux is being adopted worldwide as a server platform primarily. Its use as a home and office desktop operating system is also on the rise.

<sect3 id="postgres"> PostgreSQL PostgreSQL is an object-relational database management system (ORDBMS) based on POSTGRES, Version 4.2, developed at the University of California at Berkeley Computer Science Department. POSTGRES pioneered many concepts that only became available in some commercial database systems much later. PostgreSQL is an open-source descendant of this original Berkeley code. It supports SQL92 and SQL99 and offers many modern features:


complex queries


foreign keys


triggers


views


transactional integrity


multiversion concurrency control


Also, PostgreSQL can be extended by the user in many ways, for example by adding new


data types


functions


operators


aggregate functions


index methods


procedural languages


And because of the liberal license, PostgreSQL can be used, modified, and distributed by everyone free of charge for any purpose, be it private, commercial, or academic.

<sect3 id="python"> Python Python is an interpreted, interactive, object-oriented programming language. It is often compared to Tcl, Perl, Scheme or Java. Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to various windowing systems (X11, Motif, Tk, Mac, MFC). New built-in modules are easily written in C or C++. Python is also usable as an extension language for applications that need a programmable interface. The Python implementation is portable: it runs on many brands of UNIX, on Windows, OS/2, Mac, Amiga, and many other platforms. You can learn more about Python on it's website <ulink url="http://www.python.org"> http://www.python.org


<sect3 id="php"> PHP PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.