Developing the "OCL for OpenMRS" Application

(Allan Guwatudde) #652

Thank you. The team will review the code so that we have it merged come Monday.

(Bruce Makaaru) #653

Hello @ruffjm,

The team will be available tomorrow (Tuesday 26th Feb 2019) at 16:00 - 17:00 EAT for a walkthrough of the OCL application.

Please let us know if that is a convenient enough time for you. Thanks.

cc: @judeatu, @dkayiwa, @shine, @samdiano, @alexkayabula, @darius, @sheriff

(Jessica Ruff) #654

Thank works for me.

(Jonathan Payne) #655

Hi all, I have a conflict tomorrow but I would like to begin to join your weekly calls when possible. Please share a link if you record it.



(Jessica Ruff) #656

Pole Sana!

Are you able to share the code for the bulk upload of concepts via json?


(Bruce Makaaru) #657

Hello @darius, Should we have the Edit & Remove Actions available for Retired Concepts?

“Hyperhidrosis” is an example of a Retired Concept in the screenshot below:

cc: @dkayiwa, @akanter, @judeatu, @alexkayabula, @samdiano, @shine, @sheriff

(collins Ijeomah) #658

Sorry for the late response The recording of the weekly sync, here link to the call.

(Darius Jazayeri) #659

I assume we’re talking about concepts that were created as part of this dictionary, via “Create new concept”.

I don’t have a definite answer to this. My initial thoughts are:

  • When you create a custom concept within a dictionary, it belongs to the dictionary, so “remove” is not an action that makes sense. (Under the hood in OCL there’s no technical relationship between the dictionary’s source and collection, but in our application’s domain model the source belongs to, and is subsidiary to, the dictionary/collection. So you shouldn’t be able to remove it from the dictionary/collection, but leave it in the source.)
  • If a concept has been “used”, you should be allowed to retire it (e.g. a soft delete). If we know that the concept has never been used we could allow it to be (hard) deleted. If the concept is not included in any published version of the dictionary, we can infer it has never been used. Once it’s in a published dictionary version, we have to assume it has been used.
  • I would consider it more intuitive if your’e not allowed to edit a retired concept, though maybe there’s a corner case where this should be allowed. (@akanter do you think we should allow editing retired concepts?)

So, my proposal would be:

  • if it’s a concept we’ve added from another dictionary, the available actions should be: (1) view, (2) remove.
  • otherwise, if it’s a custom concept:
    • if it’s not retired, and is in a released dictionary version, available actions are: (1) edit, (2) retire
    • if it’s not retired, and has never been released, available actions are: (1) edit, (2) delete
    • if it’s retired, the only available action is unretire.

I’m not 100% certain about this, though, so I would suggest not actioning it until we’ve had a chance to discuss (with @akanter also) on Thursday.

(Darius Jazayeri) #660

@paynejd we’d love to have you on the weekly catchups. They’re on Thursdays at 10am Boston time.

(Darius Jazayeri) #661

All I can do is point you to It does mention a bulk upload tool, as well as there being a REST API for creating concepts.

I haven’t used the bulk tool myself; the REST API is powerful, but I don’t personally know of any code samples, you’d need to figure it out from the documentation.

(Bruce Makaaru) #662

Hello @raff, the issue concerning the removal of Concepts from a specific Dictionary has resurfaced.

This is how I tested it out in Postman (with help from the API documentation here):

  1. Get a list of all concepts in Mulago Dictionary:
  1. Copy the Version URL of one of the concepts and provide it in the body of the DELETE route:


	"references": ["/users/admin/sources/d3h7d3e4g6d3e4/concepts/5c1d2556-e255-4eb9-aace-28dfd92ef270/5c59c7e573d37501a50df00b/"]	

NB: Provide an Authorization Token which can be picked from Local Storage

  1. Get the list again. The reference to the concept is still there.

Passing the "url" instead of the “version_url” of the Concept, leads to the same outcome.

cc: @dkayiwa, @darius, @akanter, @judeatu, @alexkayabula, @samdiano, @shine, @sheriff

(collins Ijeomah) #663

Hello, community

This is a reminder of the OCL team sync with Jessica Ruff (Tuesday 16:00 - 17:00 EAT). I will share a link to the call 10minutes before the call. kindly attend if you can make it.

cc: @dkayiwa, @samdiano, @sheriff, @brucemakallan, @judeatu, @c.antwi, @akanter, @darius, @alexkayabula

(Cynthia Antwi) #664

There is documentation review meeting happening at the same time . @dkayiwa and myself are usually on those calls.

Apologies I will not be able to attend.

(collins Ijeomah) #665

Here is the link to the call (OCL team sync with @ruffjm ) .

(collins Ijeomah) #666

Hello community

We had OCL team sync with @ruffjm. For those that missed the call, here is a link to the call.


cc: @darius, @akanter, @dkayiwa, @samdiano, @sheriff, @abulojoshua1, @brucemakallan, @judeatu, @alexkayabula

(Bruce Makaaru) #667

Hello @darius,

The team had a call with @ruffjm in which we did a walkthrough of the OCL application and the following questions/concerns were raised:

  1. While Creating a New Dictionary, the “Short-Code” field (shown in the screenshot below) is a bit confusing for the average user.

  1. While Adding Bulk Concepts, is it possible to select a source not provided in the list of “Other Sources”? For example “LONIC” which is currently not available in our OCL module.

  1. While Adding Bulk Concepts, results from the Quick Search should show more details than just the Concept Name. e.g. Concept Source, Date Updated, …

  1. Lastly, she mentioned that it would be a lot more convenient if there was a way to Create New Concepts in Bulk. e.g. Create more than one Diagnosis Concept at the same time. This is because using a form to create one at a time will take a lot of time.

cc: @dkayiwa, @c.antwi, @akanter, @judeatu, @alexkayabula, @samdiano, @shine, @sheriff

(Rafal Korytkowski) #668

Hi Andela team,

We’d like to deploy your work to a demo server to be able to test against the full CIEL dictionary.

The development version will continue to be deployed to the QA environment with every build. In addition to that you will be able to deploy on demand (through CI) a selected build to the Demo environment.

To make that happen I need you to implement reading an OCL backend URL from a system environment property called OCL_API_HOST, e.g. OCL_API_HOST=

If you have hardcoded in any place, you need to use the BASE_URL system environment property instead, e.g BASE_URL=

Let me know, if such changes are feasible and when you could make them.


@raff, Yes the changes are very feasible and we are going to create a ticket for it on the Jira board as soon as possible.

cc: @dkayiwa @brucemakallan @alexkayabula @shine @samdiano @sheriff

(Jessica Ruff) #670

Should I wait to test until this is complete?

(Daniel Kayiwa) #671

@judeatu should this take more than a day? I expected it to have been done by now.