OCL for OpenMRS User Feedback discussion

Tags: #<Tag:0x00007f0778d3a618> #<Tag:0x00007f0778d3a4d8>

Hello @darius @akanter

We are have noted your feedback and are looking into this

@paulk - Is there a wiki page or a video that can guide me on how to add concepts to a concept set?

Hello @mohitd,

This is still a work in progress. I will notify you as soon as the feature is added

1 Like

Hello @akanter, a fix for this has been applied, can you please confirm that you are no longer experiencing this issue.

I just want to highlight that you need to enable OpenMRS validation on the dictionaries we create through this application. For example this will prevent the dictionary from having two concepts with identical preferred names, which is illegal in OpenMRS.

This example should not be allowed:

Note that this may mean that you get back an error message when trying to create or add a concept (where the concept on its own is valid, but it’s not valid in this dictionary). For MVP we need to ensure we display these error messages. Post-MVP requirements would be to ensure that the flow around getting this error message is good, e.g. you don’t lose state on a form if you submit and get back this kind of error.


  • I created a concept, but it’s not visible on the dictionary concepts screen until I manually refresh. The exact sequence is:

    1. I create the concept
    2. App goes to dictionary concepts screen.
    3. For a split second my new concept is visible at the top of the list
    4. App automatically refreshes the table, and when it finishes my concept is not visible
    5. I do Command-R, the whole page refreshes, and my concept is there.
  • Having the inconsistent capitalization of concept classes means that the concept counts by class on the Dictionary Overview is wrong. (I imported 2 diagnoses and 2 drugs from CIEL, and I created 2 diagnoses and 2 procedures, but it shows as: 2 diagnoses, 2 procedures, 4 other.)

  • I released a version of my dictionary, and that seemed to work well.

  • I noticed some things when inspecting my released version in traditional OCL:

    1. I see that the collection contains references to CIEL concepts, but not to the mappings on those concepts. When you add a CIEL concept, its mappings should also automatically be added to the collection. I would expect this to be done automatically by the back-end, but maybe there’s a flag you need to pass when posting? Please check on this.
    2. I added 4 concepts from CIEL, I created 4, and I edited one of those 4. In our application I see that I have 8 concepts (which is what I expect). But in traditional OCL I see 5 references to custom concepts, not 4.
      • What I think is happening is that when I edit a concept, you create a new concept version of the old concept, and you also create a new concept, and they’re both included in the collection.
      • That’s wrong, when I edit it should create a new version of one concept, and refresh its reference in the collection.
      • Please investigate this (and I can clarify more if you need, but I need to run to a meeting now.)

This issues have been noted. We are going to keep you updated on the progress.

Hello @raff, Concerning the above issue raised by @darius, I suspect it could be an issue with the way filter/sort works in the backend.

This is how I replicated the issue in the backend.

  • Before Adding a CIEL concept :

When searching for a 1268 CIEL concept ID, the results are returned in ascending order i.e 1268, 126800, … as expected

GET: https://api.demo.openconceptlab.org/orgs/CIEL/sources/CIEL/concepts/?q=1268*&limit=10&page=1&verbose=true&includeMappings=1

  • After Adding a CIEL concept :

When searching for a previously added 1268 CIEL concept ID, the results are returned in ascending order but the previously added concept ID appearing at the end of result returned i.e 126800, 126801…1268

GET: https://api.demo.openconceptlab.org/orgs/CIEL/sources/CIEL/concepts/?q=1268*&limit=10&page=1&verbose=true&includeMappings=1

As per the documentation, I don’t seem to find any sortAsc/sortDesc by id option.

Please look into it. Thank you

cc: @dkayiwa @darius

@alexkayabula, it would be ideal if the response to this kind of feedback includes links to JIRA tickets that are created to track the various pieces.

Maybe your team can share these on the Friday catchup?

Thank you @darius Here is the link to the JIRA ticket.


@alexkayabula Thanks for this link.

However I provided lots of feedback from message 18 in this thread (OCL for OpenMRS User Feedback discussion), but I have no idea which of these have been addressed and/or ticketed.

Hello @darius, hope you find this helpful

Addressed/In progress/ Code Review


cc @dkayiwa

Hello Community

We are finalizing changes on the OCL module and it shall soon be available for testing, we will keep you posted

Hello community,

We are glad to announce that OCL V1 is ready for testing. We shall be running the testing phase from 6/17/2019 - 6/26/2019

Please follow this link to test the application.

Key pointers:

  • If you do not have credentials, use the old OCL to sign up, and then be sure to come back to the new OCL, again here.
  • If you are unable to login even after you had signed up, the database may have been reset and you would have to sign up again

A more detailed guide can be found on the wiki, here.

All feedback so far and progress/ resolution on it can be tracked on this wiki.

cc @dkayiwa @akanter @darius @c.antwi @ball @ruffjm @karuhanga @danuluma @paynejd

Awesome to hear!

Registering worked flawlessly for me.

It would be nice if notices (green bars like “Successfully signed in as …”) could be dismissed.

It would help to have tips (e.g., a question mark next to fields or labels) with brief explanations. For example, to help the new user understand difference between source & collection or the uses of various collection types. The tip box on the “Versions” tab is a great example.

Trying to enter a locale was harder than expected, since choices weren’t filtered (only highlighted) and highlighting can be out of the visible list of choices. For example, I came to the Default Locale field, started typing english, and the choice list showed the first dozen locales alphabetically, none of which were English [en].

Are fields supposed to be validated? I could type “asdfadsf” for a locale and move to the next field without any problem. I would expect the field to be highlighted as invalid when I leave it.

FYI – In the past we sent people to a page that had the app to be reviewed on the left and an etherpad (i.e., a notes.openmrs.org page) on the right (two iframes with a resizable vertical split pane). That it made it very easy for rapid collaborative feedback. :slight_smile:

1 Like

Hey @burke,

Thanks for this. I’m worried you might have run through the older OCL application though and not the one under testing, here.

Also this is great, we’ll definitely look into it.

Ah. This is an important item to note when asking people to test. The e-mail confirmation for registration contains a link in the form https://demo.openconceptlab.org/accounts/confirm-email/..., which took me (and will certainly take others) into the older OCL interface. Be sure people know not to test OCL after confirming their email (which is using the older OCL); rather, come back to your message and follow the link to the new version after they’ve confirmed their email.

1 Like

The new site looks much better. So, far, seems to be behaving mostly as expected. Some initial feedback (mostly little things):

  • Paging through list of concepts is cumbersome and made worse when the paging links change position on the screen while paging. Keyboard shortcut support would help.
  • Table sorting (by clicking column headers) appears to just sort each page of data being displayed. I’m not sure what it means to sort by “Action”. :slight_smile: Maybe it would be better to have sorting options separate from the table (i.e., a “sort by” selector)
  • Button styling feels weird. If I hover over a button, it stops looking like a button (e.g., action buttons)
  • I expected a “clear all” link for Datatypes and Classes (if I’ve checked 5-6 of them, don’t make me manually uncheck all of them to remove filters)

Overall, it seems to be behaving well. Nicely done!

Thanks @burke, we’ll be looking at each of these. The message has also been updated to address the earlier confusion and to include a wiki where you can track your feedback.

Assorted feedback, from my initial testing:


  • Create dictionary
    • gives two options for Preferred Source (CIEL, PIH) but I think the application only really supports CIEL, right? So, remove the PIH option.
    • there’s an option for “Start by copying another dictionary”, but it doesn’t work right. (I tried to copy a dictionary that has 13 concepts, and the resulting dictionary only has 10 concepts.) Please hide this feature for MVP release, and create a ticket about making it work right later.
  • Dictionary Overview
    • The “By class” breakdown isn’t working right. It shows “Diagnosis: 0” when I have a lot of diagnoses. Fix this if it’s quick (e.g. if it’s just a question of changing “diagnosis” to “Diagnosis” in a query) but if it’s going to take a lot of work, just remove this breakdown for the MVP release.
  • Concepts -> Create Custom
    • I try to create a concept with two names in English, the first one has type=Fully Specified, the second has type=Synonym. I get “An error occurred when creating a concept. Invalid name type” for the one that’s a synonym. (Possibly OpenMRS calls this “synonym” but OCL backend calls this nametype=null.)


  • Dictionary Overview -> General Details
    • shows “public access: view”. This should instead be “visibility: public”. (I.e. it should be formatted for display the same way that the create screen does it.)
    • should also show the languages. (Can combine default language and other languages to one line for display.)
  • Dictionary Overview -> Actions
    • disable the Release button if there are zero concepts in the dictionary
  • Concepts -> Add from CIEL
    • If I add a concept, it does automatically add Answers and Set Members. This is good. But the flash message should also tell the user that this happened. E.g. “Added ANTENATAL VISIT REASON, and 2 concepts that it depends on.” (maybe even give the names of the extra concepts added).
    • If the user manually removes a concept that was added for being a dependency, I think this will break the import. (E.g. I added ANTENATAL VISIT REASON but then I remove PLANNING PREGNANCY.) We should block the user from removing any concept that’s a dependency of others. (I suspect this is a bit tricky, so marking it post-MVP.)
  • Concepts -> Bulk Add
    • why does the textarea have a loading spinner the first time I open this page?
    • this page needs to block you from navigating away while it’s doing the bulk add (otherwise in-progress work gets lost). Even better is to have some sort of progress report about what’s going on.
    • I added “1, 2, 3, 4, 5”. It told me that 5 and 3 were invalid (good), but then it told me “15 concepts added”, even though it actually only added 3 concepts. Same thing happened with concepts 6,7,8,9,10, there were also two invalid yet it said it was adding 15 concepts.
  • Concepts -> Create Custom
    • language dropdowns for Name and Description should only include supported languages.
    • should have better defaults for name type and preferred-in-language when you add a second name. (i.e. you’re only allowed one fully-specified, and one preferred-in-language, so if the first row has those, the second row should default to Synonym and No)
  • Concepts -> Edit
    • when editing, since OpenMRS UUID and OCL ID are not editable, make them take less space, and get rid of the help text.

Hey @darius,

Picking up on the name types issue, it seems that both Synonym and Search Term have this issue. Looking at the CIEL concepts, I believe Synonym should be Designated Synonym. Not sure what the equivalent for Search Term is. null works as well.

Also found Designated Preferred Name and Full Form of Descriptor.