|Primary Mentor||Burke Mamlin|
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 problems.
The goal of this project is to provide more flexibility in classifying concepts by allowing concepts to be assigned to more than one class, while providing backwards compatibility so the large body of existing code does not break in the process.