Skip to content

Files

Latest commit

SuruchiSuruchi
Suruchi
and
Suruchi
Aug 3, 2022
518effb · Aug 3, 2022

History

History
96 lines (72 loc) · 4.9 KB

README.md

File metadata and controls

96 lines (72 loc) · 4.9 KB

OpenMRS Open Concept Lab module

Build StatusCodacy Badge Codacy Badge

The Open Concept Lab module is a module to import concepts to OpenMRS. The concepts from Open Concept Lab and Dictionary Manager can be imported either using a subscription url and unique token or offline from file. The module fetches all the items from the subscription URL updating the existing concepts, and can store subscription URL in global properties.

Development environment

Please make sure you have the following installed:

Next run this command to setup OpenMRS server (just the first time):

$ mvn openmrs-sdk:setup -DserverId=refapp -Ddistro=referenceapplication:2.4
# Note: Pick default values for everything except MySQL username and password

If there are any issues with setting up the server, check out OpenMRS SDK documentation

Deploy OWA module on the server:

$ mvn openmrs-sdk:deploy -DserverId=refapp -DartifactId=owa -Dversion=1.6.3

You also need to deploy webservices.rest module:

$ mvn openmrs-sdk:deploy -DartifactId=webservices.rest -Dversion=2.17-SNAPSHOT -DserverId=refapp

Fork and clone Open Concept Lab module project:

$ mvn openmrs-sdk:clone -DartifactId=openconceptlab
$ cd openmrs-module-openconceptlab

Build and install the module on the server:

$ mvn clean install openmrs-sdk:deploy -DserverId=refapp

You can also configure the server to automatically reload classes and pages from the omod directory:

$ mvn openmrs-sdk:watch -DserverId=refapp

Run the server:

$ mvn openmrs-sdk:run -DserverId=refapp

Once you run the command you need to wait for Jetty Started message, open up a browser and go to:

http://localhost:8080/openmrs

The server can be stopped from the terminal, in which it is running with the Ctrl and C (Ctrl + C) keys combination.

Every time you make changes in code in the api directory, you need to build and install the module and restart the server.

Alternatively you can upload *.omod file via Advanced Administration -> Manage Modules panel. This way you will not have to restart the server.

OCL Module is now available from the Advanced System Administration or at /openmrs/openconceptlab/status.page

Setup Subscription

You need to set up the subscription before using the module (except for 'Import at server startup'). You will need an account on the Open Concept Lab server, which you can create at https://app.openconceptlab.org/#/accounts/signup/ Login and go to your profile page by clicking your username in the page header and copy your API token, which can be found on the bottom left. Now determine the collection URL or source URL you want to subscribe to, create a version and copy the subscription URL Enter URL and token at /openmrs/owa/openconceptlab/index.html#/subscription page and save changes. Click Subscribe and follow the next section then Import from subscription server.

OpenMRS Custom Validation Schema

OCL provides a “custom validation schema” feature for OpenMRS that allows the OCL API to perform extra validation checks on concepts. You might get errors while importing concepts to OpenMRS if it is not validated with validator schema. The OpenMRS concept validator rule includes:

For any concept… 5. Only one fully specified name per locale

  1. Must not have more than one preferred name per locale
  2. All names (except short names) must be unique within the concept
  3. Must not have more than one short name per locale
  4. Short name must not be marked as locale preferred
  5. At least one fully specified name (across all locales)
  6. Valid values for class, data type, name type, and locale
  7. All concepts should have a UUID (currently OCL’s external ID)
  8. Concept UUID should not exceed 38 characters in length
  9. Concept UUID must be unique (ideally universally… but certainly within any source/collection)

For a dictionary…

  1. Fully specified names must be unique across all names (except short names and index terms) in a locale
  2. Multiple concepts cannot share the same preferred name in the same locale
  3. All concepts should have a unique external_id (OpenMRS UUID) not exceeding 38 chars