Developing the "OCL for OpenMRS" Application

Yes this totally makes sense. I will be reaching out to @ball and @akanter and engaging them whenever I will be faced with a similar challenge.

Sorry, I didn’t notice your message. I’m planning to fix that this week, most likely tomorrow.

Fixed and deployed to QA for now. I’ll deploy to staging by the end of today.

Simply POST username and password to https://api.qa.openconceptlab.org/users/login/ to get the token.

1 Like

@raff I’m seeing a huge CPU spike in STG

This is CPU on the last 4 hours: 34%20PM

52%20PM

The containers are unhealthy and dying. Is it related at all?

Thanks @cintiadr for keeping an eye on that! It’s not related. I’m rebuilding a search index thus the huge CPU spike. I should be done by tomorrow.

1 Like

Thank you @raff for resolving the login with username/password authentication issue on the Backend(oclapi). @nesh can now be able able to resume working on this ticket OCLOMRS-159 which is about creating a UI to consume that login route. @darius @dkayiwa

Thanks, @raff for the fix. I will now begin working on the OCLOMRS-159 .

Hello community,

As we come to the end of sprint seven, could you please vote for the best date and time for our Demo.

Thank you.

cc @darius @dkayiwa @emmabaye @nesh

Hello,

I’m Muhozi Emery, a software developer at Andela. I will contribute to OCL for OpenMRS, I’ll be doing mostly Javascript/React. I’m glad to join you and looking to work with you.

My username is @muhozi

Thank you.

@muhozi Welcome to :openmrs:, we are glad to have to you :hug:.

1 Like

Did you configure this correctly? I tried to select both dates but failed. Could only choose one of the two.

@dkayiwa I had limited a participant to only vote once. But I have reconfigured the poll, you can now select both dates.

Hi,

I’m Michael Gitau. A software developer(Python and Javascript) at Andela here in Nairobi-Kenya. I’m very excited to join the OpenMRS community and contribute to OCL. Looking forward to work and interact with you.

username @michy

Hello Community,

I need some more clarification on this ticket OCLOMRS-192. The ticket is about copying concepts from another dictionary.

My question: is the user supposed to copy concepts from other dictionaries that he/she owns/created or is are they user supposed to copy concepts from all public dictionaries???

cc @darius @paynejd @burke @akanter @dkayiwa @nesh @emmabaye @muhozi @michy

Hello Community,

I need clarification on the OCLOMRS-173 ticket. From the ticket, I am required to enable a user to specify the answers while creating a Q&A concept. Is there a provision in the backend or the database where these answers are stored? I checked the MVP doc and there was no guide as to how this was supposed to be implemented.

cc @darius @paynejd @burke @akanter @dkayiwa @alexmochu @emmabaye @muhozi @michy

Questions and Answers are both concepts. So for example you could have:

  • “blue” is a concept (datatype=N/A)
  • “favorite color” is a concept (datatype=Coded, possible answers = “blue”, etc)
  • You would have to create “blue” first, in order to be able to add it to “favorite color”.

OpenMRS and OCL model these a bit differently:

  • in OpenMRS, a concept has answers, and the concept_answer SQL table gives a many-to-many mapping from questions to the answers
  • in OCL, there is a mapping between the question and answer concept

For example the traditional OCL UI looks like this:

And behind the scenes here is the Q-and-A mapping from Roof Material to Cement:

{
        "external_id": "2523CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC",
        "retired": false,
        "map_type": "Q-AND-A",
        "source": "CIEL",
        "owner": "CIEL",
        "owner_type": "Organization",
        "from_concept_url": "/orgs/CIEL/sources/CIEL/concepts/1290/",
        "to_concept_url": "/orgs/CIEL/sources/CIEL/concepts/1943/",
        "to_source_url": "/orgs/CIEL/sources/CIEL/",
        "to_concept_code": "1943",
        "to_concept_name": "Cement",
        "url": "/orgs/CIEL/sources/CIEL/mappings/583c6c3e65baaa00076d337a/"
    }

We want our “OCL for OpenMRS” UI to behave like OpenMRS does, in other words, a user of our application should believe that questions have answer like is the case in OpenMRS, even though on the back end the representation is not quite like that.

So, the way to implement this is that mappings of type “Q-AND-A” should get special treatment in our application: they should not be displayed alongside other mappings, but instead displayed as “answers to this question”.

Does this make sense?

(By the way, “set membership” also works just like this, i.e. the OpenMRS and OCL internal representations are different, but we want our app to appear as if it has the OpenMRS behavior, even though it has the OCL back end.)

@darius Please also look into this.

I believe it should be all public, openMRS-qualified dictionaries since the concept has to pass validation.

Andy

I would agree with this interpretation. The OCL platform flattens all of those relationships into a MAPPING. The OpenMRS implementation of that data should transform the OCL data into OpenMRS compliant representation. So transforming the mappings of Q-AND-A to answers and CONCEPT-SET to concept set members. You have to be sure to get the directionality correct (which is the parent and which is the child/member/answer).

Sorry @alexmochu that I missed your earlier message, and thanks for pinging me again!

Actually, we do not want to implement the “copy concepts from another dictionary” link on that screen. I had intended to make a newer mockup without it, but I guess I didn’t get around to it. (This comment talks about why we don’t need it.)

We do want to (in the MVP or soon after) implement the workflow of “Start a new implementation dictionary by making a copy of an existing starter template”. On the create new dictionary screen there would be an option to “start by copying another dictionary” as is shown on that mockup. (The idea here is that if the dictionary you are copying from has 3 of its own concepts + references to 7 CIEL concepts, then a new dictionary that you make as a copy of this would have references to 7 CIEL concepts + references to 3 concepts in the other dictionary. I can go into more detail here if you want.)