About
 

Capabilities: Application provides the following capabilities:

  • Magnolia CMS integration. Application is fully integrated with the Magnolia CMS. This provides a possibility to create a portal around the decision support system. It includes adjusting Magnolia CMS style and content according to the customer requirements, unified security model for CMS and decision support system. As a result all native features of Magnolia CMS (like managing content, security, plugins) have been preserved and new features have been added.
  • User management. Functionality, available for the specific user, depends on the assigned roles (admin, doctors, patients, etc). Application provides a way to register users and provide access based on the users roles.
  • Data management. It includes managing various kinds of information which influences decisions on the prescribing drugs. It includes: genes, drugs, genotypes, fenotypes.
  • Rules management. Rules define a set of conditions(combination of drugs/genes) which should be reported with different levels of severity. Currently about 15 different rules are supported.
  • Patients management. Doctors are able to create patients, fill-in various data like prescribed drugs, patient genes, habits and get information on possible dangerous effects based on this data.
  • Invoice management. When the doctor uses the system – a specific charge is created every time he requests for the decision support. All these charges are accumulated into invoice and later this invoice is provided to the doctors' company.
  • Report generation. Various kinds of data can be exported from the system.
  • Localization. Application was initially designed to support two languages: Spanish and English.

Architecture: The system uses classic three-tier model: client-server-database. This was allowed by heavy use of EJB3.0. As a result the application is very scalable and each tier can be deployed separately.

  • Client tier provides UI to interact with the system. UI of the decision support system is based on GWT, while UI of the portal pages is defined in the the JSP/Freemaker templates.
  • Service tier is based on EJB and provides the core functionality of the decision support system.
  • Data layer is based on JPA and thus is abstracted from the real-world database.
  • Access and rights are controlled on two levels: service calls from UI and EJB calls(by annotations).

Development: Development was done by using standard Java open-source development tools. Project is compiled by Maven with the usage of various plug-ins to control source code quality: FindBugs, PMD, CheckStyle.

JasperReports Maven plug-in is used to precompile report templates.

NetBeans was used an IDE for the project.

Assembla was used as a bug tracking, software development, project management and team collaboration tool. It also provides SVN hosting which was used as a VCS for the project.

JUnit tests were created to ensure that functionality works correctly.

Hudson CI was configured to provide various kind of statistics and provide immediate report in case of the failed build.

Deployment: Production application was configured on the Ubuntu 9.10 server running in Amazon EC2 cloud. This server contains JDK 1.6, PostgreSQL 8.4, Glassfish 2.1.1 installed.

Future: The following features are planned to be added in the future: New rules to determine dangerous combinations of genes and drugs. New reports More close integration with Magnolia CMS Enhancing billing functionality

 
Summary
 

Genes

Name: Genes

Type: Decision Support System for Medicine

Platform: Java EE

Technologies: Java EE 5 (EJB 3.0, JPA, JSP/JSF, Java Mail, JAAS), GWT, Jasper Reports, Glassfish v2, PostgreSQL 8.3, Magnolia CMS, Amazon EC2

Business challenge: Creation of an application that provides assistance to doctors in prescribing medicine with modern AJAX-based interface

 
Tel: +375 17 207 0140
104 Dzerzhinckogo av., 8002
Minsk, 220116
Belarus