I have done a quick mockup of how I think concept mappings should work on the Concept Add/Edit page. Does this make sense?
The screens don’t need to look quite like this, but they should flow like this. (For example if it makes it easier to reuse an existing widget, then it’s fine that after you select CIEL you get a popup instead of a simple autocomplete text field.)
In general, I like to sort the mappings based on SOURCE, not on map type, so would prefer the order of fields in the grid to be:
SOURCE | Map Type | Code | Concept name
We’d need to able to use a grid object that allows sorting by clicking on the column header or similar. Also, SOURCE should be a user-friendly name, not a URL.
I think it is better if the editing/adding object looks like the grid in that the order of fields should follow that order. I also think that we eventually want to be able to lookup reference_concept_name (mapped concept name) based on entered code, so although it can be optional, I like it on the same line). The full code needs to be shown, and if the concept_name is present, it should be shown fully if possible.
In most cases I would just paste in the code since I would have looked up the mapped concept elsewhere, but if we are expecting folks to search in the UI (internal maps), then they are likely going to need to actually specify a search string (source + partial string) and pick from a result list. This would then autopopulate the other fields and still require an Add button.
For existing mappings, I think we need to be able to edit and/or remove. I don’t know what is happening in the background whether a remove is a void/retire or a complete remove. But regardless, it is common to require editing of a map type, or replacing of the code.
I made minor adjustments to your initial mockup on mapping (attached below) and a video (name sample implementation in this JIRA ticket) showing how this would feel like to a user. Kindly take a look at the two (video and mockup) and provide feedback if any.
I believe we had some default behaviors for the relationship or mapping type. When adding an external concept the mapping probably should default to Narrower-than. For internal concepts, are we using this primarily for linking CIEL concepts or are we also using this screen to build out sets and question/answer pairs? If so, then there should be no default for internal maps.
Thanks, @akanter for your feedback on this. I would also like to know whether, by 'no defaults' (for internal mappings), you mean that I should leave the text input field empty for the user to fill out.
At a meta level, as the Andela team, please consider that @ball, @akanter, and anybody writing on this thread is your customer. We need to keep them happy, and we want them to adopt this product as soon as we release it, and keep using it. That means that if they make a comment, you need to respond to it quickly, even if all you can say is “we [can / can’t] reproduce this also; we don’t know exactly what’s going on, but we’ll investigate in the next sprint”.
There’s a Having Trouble With Login link on the login screen. It takes you to OpenMRS Dictionary Manager which mentions getting a token, which is very very out of date. There’s also a video, which I didn’t watch, but is probably old too. Either remove this link, or else replace the content of the help page with something current.
I do not see the login page bug that Andy is experiencing (i.e. I don’t immediately see a “logging in” with no ability to do anything.)
The username and password given in this thread do not work for me. Maybe this server’s database gets regularly reset? (I’m able to create a new account though, although it took >5 minutes to get the confirmation email.)
I click Log out, and the flash message is missing a space.
Create New Dictionary screen:
As mentioned on the call today, reorder the fields when creating a new dictionary, as: name, short code, description, preferred source, owner, visibility, default language, other languages. (MVP)
“Start by copying another dictionary” => this feature isn’t implemented yet is it? If not, then remove this field
This is too big to be a popup. I have to scroll to submit the form in a full-screen browser on a 15" laptop. It should be its own screen. (post-MVP)
General Details → Edit
I edited the dictionary and added some other languages. I click update dictionary. I immediately click Edit again, and the popup does not show my additional languages. If I refresh the page and click edit, I do see them. Clicking around it appears maybe the bug is if I click edit 2 times without refreshing the page, the edit screen doesn’t have the latest info. (MVP)
with an empty dictionary the left side filters just show their headings. But it should say “none” after each of Sources and Class (post-MVP)
change “Sources” to “Source” so it’s consistently pluralized with “Class”
Need to be able to read the whole name. I don’t care exactly how you fix this (wider column, wrapping text, etc), but it’s MVP. This doesn’t work:
No way to view a referenced concept. Quick fix is to add a “View in Traditional OCL” link under Actions. MVP.
No way to see a concept’s ID. It’s probably okay to show this in the source column (e.g. “CIEL - 123”). Another option would be to change the first column to be “Concept” and then have it be ID - Name, like I think we’ve done elsewhere. (MVP)
Add CIEL concepts
As Andy mentioned on the call today, when you first open this, do not trigger an empty search, and do not show any concepts. (There are 60000 concepts, so showing one page is not helpful.)
Name must be fully displayed in the search results. Don’t care what fix you choose (be consistent with the other screen though) but it’s MVP. E.g. this view doesn’t work:
clicking a row in the table should open the preview (post-MVP; and let’s rediscuss before you actually do this)
in the previous example (“pulmonary tuberculosis”) the search results should show the matched name (post-MVP, requires coordination with backend team)
I searched for 1268 (which I actually already added to my dictionary, and the first results are 126800, 126801, … This is bad behavior, but I don’t know which it is:
If something is already in the dictionary, we should still show it in the search results. (Okay to gray it out, or disable the add button.)
Exact match on concept ID should show be the first result. This may be a back-end fix, but if this is the scenario, please create a ticket to track it. Make it an MVP ticket for now, though we could punt it.
Similarly, if you add a Set, it should automatically add its members. (MVP)
(Inverse mappings should not automatically be added, e.g. if I add the answer it should not automatically add the question.)
As mentioned on the call, Create Another Type of Concept needs to have all fields available (MVP)
As mentioned on the call, Create A Set Of Concepts needs to actually let you specify set members (MVP)
For all Create options that let you choose from multiple Class options, the default selection should be blank (i.e. we don’t expect that the first option in the dropdown is usually correct). E.g. Set of concepts, Symptom/Finding,
I did the following series of steps and found a strange bug:
create a Symptom/Finding
Name: “Itchy Nose” in English, preferred in language = true
Clicked add another name
Chose the language French for the other name
Clicked Remove on the second name without entering anything
it took me back to the Dictionary Concepts screen, but did not show my new result.
when I refresh the page, I see a row that’s empty
when I click Edit on that one, it shows the empty Name row (that I removed)
expected behavior: removing a name should really remove it, not just hide it in the UI (MVP)
when I try the same thing with Spanish instead of French, the same bug occurs.
Another bug: when I update it to include an actual name in French, this is displayed on the Dictionary Concepts screen (even though my dictionary’s default language is English). (MVP)
when I try this same thing with Spanish instead of French, this bug did not occur. (I don’t know if that’s random, or because French was listed in Other Languages for my dictionary.)
The Diagnosis and Procedure concepts that I created show their Class with the word starting in lowercase; when I add a CIEL concept, or create another kind of concept, its name starts in uppercase. The value we store here MUST be equal to one of the expected values, so this will probably fail to import into OpenMRS. (MVP)
That’s all I have time for now, will try to pick this up again later.
I note that the demo server is reset daily, so I’m starting over from scratch today.
However when I create a dictionary and click on it, I get a blank screen, and the console has this error:
TypeError: this.props.dictionaryConcepts.filter is not a function
at t.value (DictionaryContainer.jsx:184)
I notice looking at the network tab that no query was ever made for any concepts:
At this point I am stuck and I cannot test any further.
Since I was poking around in the JSON I noticed two things:
you should be setting custom_validation_schema to OpenMRS on the source and dictionary. (I don’t know the exact string value it’s supposed to be set to, check the documentation.)
The back-end has default_locale and supported_locales, and we’re capturing these slightly differently in our UI (default, and additional). The value we save in supported_locales should be default + additional, but you’re just saving additional locales directly there. A correct example would look like this:
supported_locales: en, fr // instead in this example you saved just “fr”
#2 is probably the cause of the bug where one concept is displayed with it’s French name.
Looks like the same problem I was having before. Now I still cannot get in because every time I go to the site I get: ![image|563x575]
I have cleared all my caches in Chrome and tried this on all my browsers.