Wiki Spaces


Get Help from Others

Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack


Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

OpenMRS does not want to be a vocabulary standard. There is a lot of up-keep involved with managing universal codes used around the world. Instead, every openmrs installation is free to add new concepts, change concepts, etc in their local installation. That installation's concepts will get concept_ids assigned by the database and are probably unique to that installation.

A concept can have any number of mappings to any number of other vocabularies. Other vocabularies are called "concept sources" in openmrs (these would be like LOINC, SNOMED, ICD-9, ICD10, etc). Every concept can define a string for its mapping in any "concept source" defined in the database.

Openmrs ships with some demo data which includes concepts. It is optional to use this set of concepts. These concepts do not come with any mappings defined to any terminology.

Creating a new Concept Source

  1. Go to the Administration screen
  2. Click "Manage Concept Sources"
  3. Click "Add new Concept Source"
  4. Fill in the specific details.

Creating the Mapping

  1. Go to the Concept Dictionary
  2. Go to the edit screen of the concept you want
  3. Scroll down to the "Mappings"
  4. Click "Add Mapping"
  5. Enter the SNOMED code and then choose SNOMED as the source
  6. Click "Save" to save the concept

Receiving HL7 Messages

As of version 1.5, openmrs can receive hl7 ORUR01 messages with mapping codes instead of just internal concept_ids. The hl7_code for the concept_source simply has to be in the hl7 part and the code can be the mapping:

398439443293^WEIGHT (KG)^SNOMED

(Assumes the weight concept has a mapping of "398439443293" to the Snomed "concept source" and that source has the hl7 code of "SNOMED")

Technical Usage

Table Definitions:

To add a concept mapping to a concept using the API:

ConceptSource snomedSource = Context.getConceptService().getConceptSourceByName("SnoMed Source");
ConceptMap mapping = new ConceptMap();
Concept weightConcept = Context.getConceptService().getConcept(5089);

To get a concept by its mapping using the API:

ConceptService service = Context.getConceptService();
Concept c = service.getConceptByMapping("398439443293", "SnoMed Source");


The openmrs concept collaborative uses the mapping tables to facilitate openmrs installations to share data by mapping to each other's concepts. In this case, you would have a concept source named "PIH's Concepts" and then add mappings there.

  • No labels