...
Primary Mentor | |
Backup Mentor | TBD |
Assigned to | TBDAman Mishra |
Background
OpenMRS uses a central concept dictionary to define much of the clinical data that are stored. Instead of having a "pulse" attribute hardcoded into a database table, the idea of "pulse" is entered into the concept dictionary and, when a patient's pulse is recorded, an entry is added to the observation table referencing the "pulse" concept within the dictionary. Concepts in the dictionary are categorized (or classified) using Concept Classes. Some of the pre-defined concepts classes include "Test", "Procedure", "Drug", "Diagnosis", "Question", "Anatomy", etc. This list was a rather arbitrary classification scheme created to place concepts into high level "buckets" based on how there going to be used within the system. We've gotten very far using a relatively small number of concept classes and the constraint of each concept being assigned to a single concept class; however, as the number of implementations & distributions of OpenMRS grows, the constraints of concept classes are beginning to cause problemsWe have a number of implementations who would like using PostgreSQL instead of MySQL. There is also another category who have already invested in PostgreSQL servers, where requiring them to install and learn another type of database server would not only be an un necessary waste of their time, but also a wastage of computer resources.
Purpose
The goal of this project is to add PostgreSQL to the list of databases that OpenMRS supports, out of the box.
Required Skills
- Strong Java skills
- Familiarity with Liquibase
- A basic understanding of PostgreSQL
Objectives
- OpenMRS Platform successfully runs on PostgreSQL
- Create a CI build which breaks when liquibase changesets fail to run on PostgresqlPostgreSQL
- Make changes as necessary, to the references application modules to ensure that they run on top of PostgreSQL.
Resources
Jira Legacy server OpenMRS Issues columns key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution serverId 45c5771b-fa4b-3e43-b34a-c19dc45ccc95 key TRUNK-4881 - Documentation Done as a Part of Project - https://openmrs.atlassian.net/wiki/display/docs/OpenMRS+Setup+On+PostgreSQL
- Talk Thread - https://talk.openmrs.org/t/gsoc-2020-openmrs-should-support-postgresql/28755
Project Status
- OpenMRS Platform successfully runs on PostgreSQL - DONE - Task is complete and changes have been tested. Starting from platform 2.4.x we will offer PostgreSQL support.
- Create a CI build which breaks when liquibase changesets fail to run on PostgreSQL - DONE - A Bamboo CI job has been added at https://ci.openmrs.org/browse/TRUNK-MASTER which runs the liquibase changesets against PostgreSQL db.
- Make changes as necessary, to the references application modules to ensure that they run on top of PostgreSQL - DONE - Reference application now supports PostgreSQL. Changes were made in different modules wherever required and testing of application for different features as mentioned here Reference Application 2.10.0 is done.
All the required objectives of the project are complete and tested.