Sunday, 21 August 2011

Why OpenMRS?



(Published in 2011)

I have made up my mind to adapt an opensource software as my final MSc project. Then the question was what is the best open-source software that I can use to achieve the goals of my project. I have gone through several available options and finally, I decided to go for OpenMRS. The strategic and personal reasons that made me come to the conclusion are listed below.

OpenMRS is based on Java Enterprise Edition. I have been studying and practising JEE in the recent past and I have very good faith in its capabilities. Java Persistence API is a very useful technology and it is used in openMRS to connect to the database. MySQL, which is commonly used as the database is also very familiar to me.

Modular Based
Grater Popularity
Good Community Support
Robust data Model
Scalability
Expandability
Comply with health standards



Adapting Open Source Vs Build From Scratch


(Published in 2011)

At the onset, I was planning to develop an Electronic Health Record System from scratch. I have been developing medical software for six years and there is one electronic health record system developed by myself that is practised by five general practitioners in Sri Lanka. I have been improving the system design depending on the feedback and I had only to develop cording in Java. When I presented my project proposal in front of my supervisor, they thought that is a project for the lifetime and advised me to customize or develop a module for OpenMRS instead of developing one by myself. I am comparing the methodology of adopting open-source software and developing one from scratch.

Flexibility


The chances that I can build the relevant solution without many compromises is more when I develop it. If I adopt another system, there may be some essential features that is missing and difficult to add on in the already available system whereas there may be several features that need not be there according to system analysis.

For example, when adding details of an encounter, the observations needed to be categorized to categories and subcategories. That feature was missing on OpenMRS. OpenMRS had a feature like Regimens, which was not a system requirement.

Architectural Choices


The choice of selecting what are the technologies I use can be decided by myself when I want to develop the software myself, whereas we have to adhere to the choices of someone else when we adopt open-source software.

OpenMRS uses Hibernate as the JPA implementation library and I prefer to use Eclipse Link which is more efficient. (1,2) Instead of JSP and Spring Framework which are used in OpenMRS and I would love to use JSF, the new front-end framework(3,4) from ORACLE itself.

Smaller Footprint


What the programmer need to code to develop custom made software are limited and hence the resources. The codebase used in already available software generally have more code and hence use more resources.

Learning Curve


The custom made software is developed in familiar technologies and well-practised methodologies. When adopting another one's code, there are new things to learn and will take some additional time to master the coding. In fact, many developers hate to go through someone else's code. When an error is found, debugging is difficult as the code is someone else creation, which is not familiar to the one who is adapting.

Online Support


When a custom made software is developed, the issues arise that need support is related to technologies like Java and MySQL. They have a wider audience and the support available online is huge. There are thousands of sites which host forums to address the issues related to Java. In contrast, the issues arise are more or less related to the software alone. There is mostly one site which allows forums and mailing lists and the support community is very limited.

Why rebuild?


These days it is not that uncommon to find a ready-made software that meets most, if not all, the requirements of the system. In such a situation, it is a fair question to ask why does someone else has to redo the same again. They have addressed the issues like security and no need to waste human resources on building the same over and over again. If the available solution is an open-source, that will also allow adaptation of the system to match to very fine customization needed by the system requirements. If adaptation is done systematically after a good background analysis about all the possible solutions, there can be saving of a significant amount of money and time.

Still Custom


Already available open-source ready-made software can also be considered still as custom made. In fact, someone can make it a custom software.

Quality


Community effort of several volunteers with expertise in different fields like Java or MySQL. The quality of software developed by many can not even be compared with a custom made product by one or a few developers with a limited number of fields.

Budding concepts


The person who is developing a new software may be having some concept that has the potential to modify the future of the industry. Such new concepts are not always applicable when adapting another product. If everyone get used to adapt something already exists, there will be slower development of the industry.

After considering the benefits and risks of each method, finally I decided to select adopting an open-source EHR rather than developing one of my own in developing a system as my MSc project. Up to now I have no regrets.

What problems are addressed in my MSc project?



(Published in 2011)

The data collected from patients, although classified as genealogical, demographic, phenotypic or sequential, are actually components of what we can extract from the same living being. (9) The necessity to have them all in a single platform is still to be addressed. (10) There is a huge list of genealogical websites that collect and display the family history details, but almost all lack the ability to add clinical or laboratory details. There are some good web services, mainly EHR systems and LIS, which handles clinical and laboratory details, but hard to find one that incorporates genealogical details and sequential data. (11)

The sites that cater to the general public, mainly genealogical sites, usually do not facilitate clinicians or scientists to add details. (12)The sites, those can be categorized as EHR and LIS, do not allow the participation of the patients as users. (13) (14) The sites that maintain clinical databases may not always provide highly useful data for researches due to confidentiality issues. A significant proportion of the general public may be willing to reveal their data anonymously to researchers, but they don’t get a chance to take control of the destiny of data originated from them.

Deliverables of my MSc project


(Published in 2011)


  • Project Proposal
  • Project Management Plan
  • Project Schedule
  • Software Requirements Specification
  • Software Design Description
  • Implementation Model: Code and System
  • Module to be incorporated for the OpenMRS
  • Software Quality Assurance Plan
  • User Manual

My MSc Project


(Published in 2011)

I am Dr M H B Ariyaratne. I am a trainee for MSc (Biomedical Informatics) at Postgraduate Institute of Medicine, University of Colombo, Sri Lanka. This blog was mainly developed as a self-assessment tool for me on the progress of my project. This will help my supervisors and examiners to have an evaluation of my work. This blog will also help the internet users to get some details related to health informatics, bioinformatics, software development and general facts on medicine and IT.

Title:

Development and Implementation of a module for OpenMRS to address the unmet needs of the Geneticists.

Supervisors:

Prof. Vajira D. W. Dissanayake
Dr. (Mrs.) Nilakshi Samaranayake

Objectives:

The general objective of my project is to introduce the concept of a platform where there is interactive participation and collaboration of general public, genealogists, geneticists, clinicians and researchers to store, retrieve and analyze personal, demographic, genealogical, clinical, laboratory and sequential data.
My specific objective is to develop a module for OpenMRS, which will add the above capabilities to the existing open-source platform.

Methodology

I will create an OpenMRS ID and sign up for the developer and implementer mailing lists. I will also start using the OpenMRS Community RSS Feed.
Then I will configure the Eclipse environment which will be used as the IDE. Then I will start creating my first OpenMRS module. I can click “Request Code Review” and a core developer will get me some feedback.
The development of the project is planned to follow the Spiral modal of software design. At the onset system requirements are defined in as much detail as possible after interviewing geneticists, clinicians, genealogists and the general public. A preliminary design is created initially which is a scale-down system which represents an approximation of the characteristics of the final product. The first prototype will be evaluated to identify the strengths, weaknesses and risks, where the feedback will be used to build the next prototype. The same process will be repeated as necessary until a thoroughly evaluated and tested final system is developed. Afterwords routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime.
The final product will be a module that can be included in the OpenMRS core modules. Client tire and application tire will be mainly developed using Java Enterprise Edition. JavaScript, CSS, and Ajax will also be utilized in developing client tire architecture. The data tire is built on my-SQL which will be connected to application tire through Hibernation technology all of which are the standards for OpenMRS.

Deliverables


  • Project Proposal
  • Project Management Plan
  • Project Schedule
  • Software Requirements Specification
  • Software Design Description
  • Implementation Model: Code and System
  • Module to be incorporated for the OpenMRS
  • Software Quality Assurance Plan
  • User Manual


What is the Role of Genetics in Clinical Medicine?


(Published in 2011)
Genetic maker tests for individuals are currently available at affordable prices. With the rapid decline in sequencing cost, an exponential increase in the availability of complete personal genomes is expected in the near future. As modern clinicians are becoming more interested in the genetic contribution of disorders of their concern, the availability of genetic data on the desktop will be very informative. (8)

What is genealogy?


(Published in 2011)
Usage of family trees has been there for centuries, mainly for the purpose of tracing the ancestry. Family trees, fortified with the clinical details are commonly used to represent or recognize repetitive patterns of behaviour of phenotypes that punctuate relationships are commonly described as pedigrees or genogram. When the information technology was applied to almost every field imaginable, several software and websites were developed to cater for these genealogical requirements.