OpenMRS OCL Squad Weekly Meetings

Expectations for OpenMRS Dictionary Management Squad Meeting Notes

We use the OpenMRS Wiki - Edit Mode for real time. This means that everyone attending a meeting monitors and contributes to the note taking!

Notes Directory

How to get started with OCL for OpenMRS

Join our team calls! We meet most weeks on Wednesday at 7:30pm IST | 5pm Nairobi | 4pm Cape Town | 2pm UTC | 9am Boston | 6am Seattle

Other Helpful Links

To Address in future meetings

  • Concept Template idea - "Add concept" can be improved to become "Add a lab" - A shortcut to making a certain type of concept. Note that this drives data type, mappings, custom/extra attributes. (Lower technical effort but needs to be requirements-driven - need some examples of concept types with the best practice attributes and rules)
  • Bulk Mapping Workaround brainstorming - Start from this slide
  • Source update notifications - If I'm using a collection that has CIEL concepts that got updated lately, I should be able to address those updates
  • Version management between OCL and OpenMRS (see here, Started 19 Sep 2022)
    • Think through versioning of releases for deployed OpenMRS dictionaries that are managed in OCL
    • Incl. best practices e.g. "Although OCL's dynamic references might be the default, it is not best practice to refer to something which is changing. Most collections used in production should refer to a versioned source."
  • OCL Search Optimization - can’t always find what you’re looking for (Abuse concept, for example) (can be related to scoring/ranking related to “trusted sources” and to “walled garden / public domain” resources) - might be able to mark content as “curated” to make it appear in public searches
    • May also include the display of information when searching e.g. showing more of the concept's model
    • "Walled Garden" approach - having groups of approved, recommended, or otherwise preferred reference vocabularies, dictionaries, and other sources/collections
    • Document bad search results here:
  • Concept/Mapping Modifications (waiting on development on OCL side)
  • Use case for expansions in OpenMRS dictionaries - see this comment (may need some user interviews and walkthroughs from MSF or PIH?)
  • OCL's "Remove Reference" prompt is confusing
  • Management of Drug table and maps to standard medication terminologies (including link to concept table).
    • Jon to reach out to see if PCMT team can join the conversation
  • UUID Management - Within OpenMRS and OCL, when should a UUID (e.g. external IDs) be kept the same vs. when should it change
  • Managing collections - How might we better use collections with MSF and PIH?
  • Fuzzy matching workflow / mapping tool - Start with a long list of concepts, and start a workflow to make mappings and connections with other content - Started 15Aug22 and 24Jan23

Dictionary Management Roadmap

(Full Community Roadmap here)

(tick) Done

Recent Work Completed

(plus) Now

What We're Working on Today

(lightbulb) Next

Next Priorities*

UI adjustment for edit concept

Change UI in Term Browser so that user can easily edit their concept


Fix Existing bugs in Module

Fix existing unclear error message while importing content from DM to OpenMRS

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.


Versioning Workflow design

Designing workflow for creating versions and expansion

Youtube video:


Fix Current bug in Term Browser

Fix the bug of not importing all attributes in TB


Source/Collection Forms + Help Text in TermBrowser

Helping users to better understand how to use OCL features and how to make the best use of sources and collections


 OCL import of PIH Dictionary content

Finish OCL import of PIH dictionary


CIEL Content Validation

Content Validation


Edit Concepts in TermBrowser

Edit answers and set members in term browser


Clear Content Review

Feature to review what is being imported by subscription module in OpenMRS

Unable to locate Jira server for this macro. It may be due to Application Link configuration.



Meeting Notes


Recording: OCL for OpenMRS Squad Call_July 10, 2024


  • Bulk import update from PIH - Going well!
  • OR searching has been implemented in OCL and is working for large-scale cloning
  • MSF Collection update: ticket 1772 still in progress
    • Scenario to test in the future: Starting with a collection that was evaluated using an older version of CIEL - if a user uses Add to Collection from there, the latest CIEL version might be newer and have changes from what the user was viewing. Does the user need to be alerted that things will look different in their collection than what they're seeing since the References are using Latest?

    • Consider a swimlane layout, which starts with the source version and the concepts that are resolved from it

    • Related to latest references: When you're working on the HEAD of a collection, you should be able to link to the HEAD of its linked source.

      • Generally, you can't work in the HEAD of a source or collection unless you're working on this

      • Question: if I don't own the source but I make a collection based on it, can I make a reference to a HEAD version concept? No, it's only allowed if it's a linked source.

      • Note: this is very relevant to the idea of a Concept Dictionary repo type in OCL. It explicitly supports linking your repo to an underlying source (either an existing or a new source).

      • Another example scenario: CIEL has a new concept. If PIH uses a collection but needs the French translation on it, then I still have to clone it and add the French translation on it. (Concept Modification use case)

  • Cancelling OCL Squad call next week in lieu of the OpenMRS Virtual Community meeting


Recording: OCL for OpenMRS Squad Call_July 3, 2024


  • Bulk Import use cases:
    • PIH: Quick concept/mapping creation
    • Nigeria: Bulk import a source prior to a mapping exercise i.e. to see if the concepts exist elsewhere
    • Collection importing: Might be similar to the collection importing exercise
      • If I create a value set for a report I'm running, and I want to link it to OCL to do that, what would it take for me to convert my own value set into OCL (specifically, not an HL7 value set)
      • Could have a level of matching with existing content
      • Andy: Did some TB DAK content work that is related to this. They are creating value sets like this, and there are question/answer pairs as part of it.
        • They create an adhoc group of codes with mappings.
  • MSF Collection cascading question: how to cascade from the context of a collection (i.e. get the mappings from that collection, not from the original source)?


Recording: OCL for OpenMRS Squad Call_June 26, 2024


  • Update from Andy: OMOP/OHDSI: Will make a pseudo-standard CIEL copy in OHDSI, e.g. an extension to SNOMED/RxNorm. Might lead to more help on maintaining CIEL
  • Ellen's bulk import updates: Haven't yet tried out Joe's suggestions yet
  • Bulk-clone: Can OCL add multiple concepts to a source via clone? Ellen needs to add in 250 concepts. It's a long process.
    • Workaround: Can OCL return multiple IDs at once in one search query? E.g. search for ID 3 and 4 using "q=3,4"
  • OCL Chat update:
    • Follow-up ticket:
    • Note that this affects the use of collections as an OpenMRS Dictionary if we use source:id instead of just id in collections
    • IDs need to be controlled by the source owner, not making unique IDs on behalf of collection usage.
  • Note: is currently not taken. OCL needs to get it.


Recording: OCL for OpenMRS Squad Call_June 12, 2024


  • Update: New features released to OCL Online!
    • Add to Collection button now gives an option to transform to extensional (instead of static) references, with the intent of getting rid of versioned resources to help with collection maintenance
    • Add to Collection results screen is better - collapsible sections for failed vs. successful results
    • Overall note: OCL is trying to move away from versioned references. References like "/orgs/CIEL/sources/CIEL/concepts/169157/5597848/" (which points to version "5597848" of concept "169157" from CIEL) will be less common in OCL, in favor of reference like "/orgs/CIEL/sources/CIEL/concepts/169157/" (which points to the latest version of that concept).
      • This would allow you to set up your collection that points to content BUT decide which version of CIEL to resolve it with e.g. "evaluate this collection as if we are using CIEL version 2022-May"
      • It should be a rare occurrence to lock down a concept to a specific CIEL version. You only really need to do that if you want to use a later version of CIEL, but that version updated to concept in a way that doesn't work for you.
    • Scenario: For a report value set, I want to update the entire repository to the latest CIEL, but I do need a specific concept to be tweaked so that...
    • Scenario: A non-report value set, if I don't have the answer in my facility, I might need to exclude the answer to a CIEL question from my value set.
    • We need a change management deep dive. Talking about repo management and customizations is really complicated.
      • Need a typical CIEL question that could be a good moving target for us to work with (COVID variants?)
      • Need a space where we can play through the scenarios (Miro board?)
      • Let's start with a small group that can articulate the scenarios in a way that everyone can follow
  • Ellen: Recap of PIH trip
    • 4 EMR developers in Sierra Leone - did a 5 day workshop with them. Very productive. Discussed OpenMRS data model and PIH EMR configuration.
    • Ellen had to write material to better do hands-on workshops, despite having previous materials.
    • Workshop was well received.
    • Old presentation on concepts was used, then layered in part of OCL. Realized that there aren't great materials on how to add or modify concepts using OCL.
      • Example: Best practices for naming things. One guy created a concept for glasses and made it a Misc concept. Needed explanation for how to be decently specific about concepts like Glasses (which could be drinking glasses or eyeglasses). Naming concepts is an art form.
      • OCL should consider quality checks e.g. for proper casing, two mappings to the same concept set
    • Presentation link:
  • (Not enough time) Brief OCLv3 update from Joe
  • Next week's call may be cancelled due to US Holiday unless others want to keep it


Recording: OCL for OpenMRS Squad Call_June 5, 2024


  • Collection issue with Ian - resolved by adding concepts from a source directly, rather than adding from the perspective of a collection
  • OCL Module Issues
    • Error messaging has been a challenge - how to interpret, linking to the content, etc. Might start with a Wiki page that documents common errors and how to address them
      • Example metadata issues from Grace: O3-2593 - Metadata Issues 2023 In Progress
    • Source/Dictionary interactions e.g. Iniz followed by subscription module - keeping content robust by containing all content in a single collection, rather than piecemeal imports of content into OpenMRS
      • Initially the subscription module would be to import a single collection. Subscription was supposed to be to a single collection on the server. Now the expectation is that you can define what concepts and metadata you want in your dictionary (whether it's in one or multiple collections), and they're imported by the module.
      • OpenMRS is commonly defining the master dictionary in their OpenMRS instance. PIH is an uncommon example of managing their master dictionary in OCL. It's not just about the technical work of concept dictionary management; OpenMRS needs to make a valid way to do this.
      • Ian: Implementations often do not have a master concept dictionary, which causes a mismatch. PIH uses a well-maintained concept dictionary, whereas everyone else has lots of haphazard stapling together of things. Most implementations don't see a concept as something to be managed by a single entity.
    • Other issue:
  • NHDD discussion
    • Kenya is using their National Health Terminology Service (NHTS) as more of a distribution platform, which might incorporate KenyaEMR's concept dictionary


Recording: OCL for OpenMRS Squad Call_May 22, 2024


  • Issue with Fully Specified Names (MSF + CIEL)
    • Concepts were getting seemingly random IDs. UUIDs and concept names were different, so lots of errors were happening when bringing in concepts.
    • Need to figure out the happy path here.
    • Module should be able to see if existing content is in OpenMRS that would break the import.
    • Is the process being used by MSF incompatible with the concept management approach used by OpenMRS? Is a clean load necessary every time?
    • In the module, it looks to see if the UUID exists, then it looks for a concept with a SAME-AS mapping. When PIH runs this, the oclConcept.getSource()should return their gold code via mapping.
      • If MSF had a SAME-AS 3025, it might have worked out better for them.
      • Without a clear code property for concepts (independent of concept's ID), OpenMRS relies on SAME-AS mappings.
    • Last week, there was a concern that we look at SAME-AS mappings that have their own separate meaning e.g. more than one concept mapped SAME-AS. However, the check only looks for certain SAME-AS mappings i.e. self-maps.
    • This works for PIH because all PIH concepts have a SAME-AS mapping to the official code ("gold" mappings). MSF should make sure that a SAME-AS MSF concept can designate their official code.
    • OCL assumes that the ID is the "code" i.e. the official MSF code.
    • PIH had a related problem for a Mexico implementation when using OCL concepts. Iniz was doing lots of duplication of efforts of bringing concepts in. Spanish translations on diagnoses, for example. They are not in OCL, they're in the Iniz files. Iniz did things like setting mappings. There were a couple of painful points with Mexico where it was not setting SAME-AS mappings where they should have been.
      • Encouraging others to use a single source to manage concepts rather than managing it in Iniz.
      • Did this when concept management was too hard, and it was easier to manage a CSV.
      • Would help to bring the content from Iniz back into OCL, but that wouldn't be easy.
      • Iniz acts as a one-time export. If you add translations into CIEL or PIH, you would regenrate the Iniz file and end up with duplicates.
      • OpenMRS data model doesn't allow drug names to be in multiple locales/languages. Iniz is used to change names to Spanish names instead.
  • PIH Training Prep: Setting up the right OCL environment
    • Goal: Talk about concepts, then go through hands-on training exercises
    • What's the right demo environment? Staging is slower but has more content ready to go e.g. CIEL. Let's use Demo
    • What's the main set of content? PIH, CIEL, ICD-10?, SNOMED-GPS?, LOINC? (Less important to have reference vocabs)
  • Ellen out for the next couple of weeks.


Recording: OCL for OpenMRS Squad Call_May 15, 2024


2024-05-08 - Canceled



  • Group updates/discussion
  • Potential discussion: differentiating "internal" vs "external" mappings (examples: internal might include Q-AND-A, whereas "external" might be Narrower-Than)
  • Collection Management process update?


Recording: OCL for OpenMRS Squad Call_May 1, 2024


  • OCL ticket updates:
    • Transform to Extensional References appears to be working well - more testing and input could be helpful?
    • Error message update: Main improvement will be the information displayed when a name is conflicting incl. concept name, ID, url, etc.
      • Ticket is still in progress and iterating
  • Potential discussion: differentiating "internal" vs "external" mappings (examples: internal might include Q-AND-A, whereas "external" might be Narrower-Than)
  • Ideas:
    • Improved validation in OCL
    • Behaviors with internal vs. external mappings


Recording: OCL for OpenMRS Squad Call_April 24, 2024


  • Good news! PIH countries (all 4) are now all supported by OCL - using source-based content management
  • OpenMRS' ICD-11 Recommendation - based on this Talk post
    • OCL has been asked by WHO to be able to point to ICD-11 concepts via their API, rather than OCL loading and hosting the content in OCL. However, this is a longer term solution and won't help the immediate needs of users who want to use ICD-11
    • OCL could load a current version of ICD-11 just to help people get started?
    • Note: WHO wants to make sure that lookups of ICD-11 content happens in the ICD-11 server and not in other servers.
      • This is similar to the SNOMED/Bahmni issue.
    • But think about when the EHR accesses the content - the EHR doesn't query ICD-11 - it queries the concept locally.
      • Ideally, you can answer questions with a diagnosis, using the concept as a reference terminology rather than an interface terminology. That would be useful to bring that into the OpenMRS model, but there's a lot of thinking that needs to be done to make this work.
    • What is allowed? Mapping to ICD-11? Loading a local copy of ICD-11 into OCL?
      • Andy: "We (CIEL) intend to provide ICD-11 in continuity with the existing OpenMRS concepts"; have been incrementally adding those maps.
      • ICD-11 is different than ICD-10 because you can do post-coordination.
      • If post-coordination isn't needed, you can document and store them.
    • Jon: That isn't well understood in the implementer community. Implementers are reticent to adopt interface terminologies to get to reference terminologies. There are multiple directions to work on this:
      • Education/capacity building: Best practices for use of different reference vocabs and interface terminologies (e.g. the in-progress CIEL blog post)
      • Improving accessibility of ICD-11 for OpenMRS/OCL:
        • Big use case: Loading ICD-11
        • Smaller use case: Mapping to ICD-11 or making ICD-11 value sets
    • OCL will work on integration of ICD-11 service. It's not a quick solution.
      • Having a CSV approach to load into OpenMRS is fine if there's local capacity, but that's not a given.
      • OCL might explore loading ICD-11 if we can get away with it. But that's riskier than what OCL did with ICD-10.
    • Everyone needs mappings to ICD-11. OCL could be a way for people to do that, which is good. It would enable OpenMRS to not have to do anything.
      • SNOMED was dealing with the same thing with Bahmni - querying SNOMED constantly is not real-world usable.
      • At the UI level in the EHR, then you want a code, you search SnowStorm server and copy the code into the dictionary as an adhoc concept ID. It's retrospectively available locally. The map goes not to the SNOMED ID but to the concept ID.
    • Andy: You should use an interface terminology that can query a Snowstorm server, which is the best of both worlds. You get SNOMED locally, but you don't need to maintain the hierarchy and you can "go live" anyway.
      • Not sure what the purpose is of an ICD-11 server.
    • OCL team to explore licensing of ICD-11 and to think about how to deal with the post-coordination thing in OCL
  • Joe - Collection Rework/management update
    • Tickets:
      • New Cascade option - Transform to dynamic references #1824

      • Simple error message fix for adding references to a collection #1825

    • A potential big win: OCL gives a heads up that there will be a validation issue BEFORE the user tries adding content into their collection.
      • Steps that OCL takes:
        • Evaluate the primary reference(s) being added
        • (If selected) Transforms the references into the concepts and mappings being added to the collection
        • Re-evaluates the references in the context of the dictionary (including validation)
    • Fundamental feature that would help: Includign equivalency mapping e.g. SAME-AS into the operation so that OCL can tell
  • Andy - Mapping remove issue? FIXED - Edit/Retire Mapping is just hard to find in OCL 🫠


Recording: OCL for OpenMRS Squad Call_April 17, 2024



Recording: OCL for OpenMRS Squad Call_April 10, 2024


  • Topics from Doreen Bakita?
  • Collection Management Potential fixes: (This is in response to Grace's tickets)
    • Provide a way to transform references without including versions
    • OCL error message specifies with concept name(s) conflict, especially when adding a convenience set dynamic reference.
    • OCL's validation schema for "same name" has a way to reconcile concepts that are connected with same-as mappings
    • Long term: two ways to deal wiht validation
      • Strict validation (which happens in the moment) - OpenMRS wants to stick with this
      • After the fact validation (which someone can review and address later)
  • Collection Management run-through: What things might we be on the lookout as we explore this?
    • Recommended approach for modeling references
    • When it was necessary to re-expand (incl. when did the reference get evaluated, and does it ever get re-evaluated?)
    • The flow of content from my source to my collection
    • Recommended approach for incorporating upstream changes? (It's already clear where we want to be - my collection should be using a particular CIEL version, and I can try to see what it theoretically look like if I updated to a newer CIEL version)


Recording: OCL for OpenMRS Squad Call_April  3, 2024


  • PIH updates: More good news for rollout of PIH dictionary (via sources)! Management of content happens in OCL:
    • Currently up to 74 new concepts that were created directly on OCL, some cloned from CIEL and some created by Ellen (some from scratch and some using Create Similar)
    • Note that the internal self-map issue still comes up. (see last call)
    • Collaboration requirements: Non-manual harvesting of new content e.g. Andy can review the changes to PIH source to see if there are any new or updated concepts that CIEL could use
      • Future: Passive monitoring of cloned/adapted CIEL content that is being used in other repos
      • APHRC group in Nairobi is meeting with MoH and Univ of Nairobi - mid June ish
    • How does PIH source respond to updates from CIEL?
      • Just makes a same-as mapping to the CIEL concept when it's released
      • In the past, if CIEL adds a PIH concept, then it comes with a mapping to that existing PIH concept. Example: Birth weight of previous deliveries (i.e. low, high, or normal). Ellen makes that concept, then CIEL adds it to CIEL plus the SNOMED/ICD-10/whatever mappings, which PIH incorporates
        • Ellen identifies these concepts because Andy alerts Ellen via screenshot that CIEL added PIH's concept.
        • CIEL's mappings are not automatically brought over to PIH for the same-as mapped concepts between PIH and CIEL.
        • Future: We direct someone to OCL to get all the information as opposed to spreadsheets and screenshots.
      • Example: PIH:20052 - Would be great if Andy could look at PIH's concept and add mappings or clone the concept to CIEL. OR PIH should get "suggested additions" based on what CIEL has
  • Repository management: best practices for leveraging CIEL or other content, including:
    • Referencing (or mapping same-as) content from another source e.g. CIEL
    • Versioning of reference-using repositories plus expansions
    • ---
    • Ideas:
      • Clear structuring of "here's what content I intend to be in this repository" (i.e. references)
      • Potential feature in OCL: Smart redesign button for references to suggest better ways to structure your collection
      • Potential feature in OCL: Give a workflow to respond to upstream updates
      • Potential feature in OCL: Source and collection that are tied together, relieving the requirement to "respond" to upstream updates (i.e. a truly combined repo?) since I manage both
      • Write out the "tools" that OCL can provide so that OpenMRS can select a "preferred approach" for building collections/repositories and dealing with changes from underlying content
    • Main focus: Make sure Grace (and others of course) can use collections for their needs, particularly simple use cases like updating a collection with upstream source content.
  • Next time: See if Doreen Bakita has topics in particular


Recording: OCL for OpenMRS Squad Call_Mar 27, 2024


  • Bring up in the future
    • Idea to brainstorm: Make a reference OpenMRS dictionary that implementers can see value in and base their own content off of, including recommendations on how to create dictionaries using source(s) and/or collection(s)
    • CIEL and PIH are making self-maps often - can these be generated automatically? Let's decide an approach here. Normally terminologies don't use self-maps. This is a workaround for how OpenMRS behaves.
  • OCL Ticket updates:
    • Show Export Time in User Interface #1806 - Ellen
  • Question about best practice: What should you do when you put two concepts from two different sources into the same collection but they have the same ID? MSF ran into this last week. OCL didn't resolve the mappings correctly because of it. (Share Lisa's video?)
  • Quick feedback on a feature: A toggle for org/repo admins to control whether a repo shows up in global search
    • Currently the only method to control this is the public_access flag, which also controls permissions; this toggle would separate these out
    • This might be a simple Walled Garden precursor?
    • Big question: who decides what content appears in a user's global search? Is it the repo admin? Is it the user? Is it the OCL community?




  • OCL Ticket updates:
    • Update Comment at bottom of form: #1808
    • Autoscroll on Quick-Add Mapping: #1807
    • Still in progress:
      • Show Export Time in User Interface #1806

      • Repo Version Summary counts are often incorrect #1805

  • Repo Change Log and Diff Features
    • Standard Checksum tracks all changes on a concept, whereas Smart Checksum only tracks changes that actually change the meaning of the concept. The Smart Checksum can be used to generate an automated diff between two concepts and between two versions of a repo (i.e. automated changelog vs. writing it manually)
    • Intent is that OCL generates a file that would eventually show on OCL - if you look at the list of versions for your repo, you can view the changelog between the current and a previous version
    • Ellen: For OpenMRS, I only care about how the mappings relate to concepts. Not just the list of concepts themselves, but what it means for concepts. Showing concepts/mappings together is a good thing.
    • Andy: Seeing what specifically changed is the most useful.
    • Andy: Also I want to be able to incrementally update OCL but get that changelog in summary.
    • Andy: If there are mapping changes, they are going to fall into "major concept updates", right?
      • Jon: Maybe. When we combine this into a view then we can decide that that'll be.
      • Andy: When you build a new concept, you will see new mappings on the new concepts. Everything in the "mappings" section is not necessarily a major concept update because of that. We do need to group them. I would not want to see a list of new mappings without the grouping and context of what concepts those mappings applied to.
      • For retired concepts, there's no place for me to remap retired concepts. In OpenMRS, there's a retired concepts field. Not sure how we can get that remapped.
      • Jon: Is there a map type like "replaced-by" that could be used for that?
      • Andy: We don't do that, we just remove the mappings. We might need Burke to talk about how we might persist that.
  • Best practice related to working with OpenMRS forms that have logged data that are not coded well.
    • Lifecycle of a concept - there are intermediate concepts that fill the gap between unofficial (but in use) concepts vs. official (CIEL) concepts
    • GSOC project? - Work through OpenMRS Forms and get a list of concepts that need to be mapped(?)
  • USAGI Mapping tool
    • Potential process: start with CIEL mapping, then map to reference vocabs later?
    • Note: Usagi requires that mapped vocabs like CIEL need to be in an Athena format, but that's not really CIEL
    • Andy might be able to meet with OHDSI vocabs so that CIEL is a standard for OHDSI. Their concept management can take on CIEL as a management job. Everywhere CIEL is not mapped SAME-AS to a reference vocab, there becomes a new CIEL concept out there.
    • Two options:
      • Get CIEL into Athena properly (which Andy will work towards but will take awhile)
      • Generate an Athena-like output from CIEL and use that as part of Usagi


Recording: OCL for OpenMRS Squad Call_Mar 13, 2024


  • New OCL Module version released thanks to PIH and Mike Seaton
  • MSF - Lab attributes not importing into OpenMRS 9 Lisa to test later
  • Lisa: Bahmni form question
    • Two collections (one for a WC form and one for Trauma) with the same concept but different answers (which is intentional)
    • Note - OpenMRS won't allow import of two collections with the same concept but with different answers
    • Solution: Need to clone the concept with adjusted answers
  • PIH bumps in the road and user feedback (let's connect this to the OCL Roadmap too?)
    • PIH production servers in Mexico have hit a snag but working through it. Snag:
      • A dev didn't think OCL would happen, so they did a lot of concept management via Initializer. That has been problematic working with OCL
      • Example: Mappings to ICD-10 codes for Mexico that conflicted with OCL mappings. Cholera same-as ICD-10 A00.9 was shown as "narrower-than" in Mexico.
      • This problem should be fixed, but there's a concern that if you change things in OCL that you won't realize that it differs from another set of content. It was hard to find the problems to clean up.
      • Helpful OCL roadmap item: Repo comparison?
    • When creating a new version:
      • The summary numbers don't update, and I can't tell if the process is completed or not.
      • Ellen waited an hour or so for the version to complete, but when downloading the export, it didn't have the expected content (problem?)
      • Ticket: Summary numbers are a bug - sometimes OCL just loses that task
      • Export process is denoted by the Processing Flag. Note that "Released" is unrelated to the process that OCL is doing
      • Ticket: Export time should be in the UI
    • SL hematology set 12576
      • Adding a new mapping - the quick-add mapping form shows up at the bottom of the form and is out of sight if there are lots of set members
    • Editing concept - Update comments needs to appear at the bottom next to the Update button
    • When creating a new concept, PIH would like to make a self-map automatically (or at least validate that all my concepts have a self-mapping)
    • Note: When cloning a CIEL concept that has a previous PIH mapping, the new PIH concept will end up with a SAME-AS mapping back to the other ID (test case: CIEL's moderately positive is mapped to PIH:1363(?)
  • Content Proposals - Discussing on OCL's new BA community call tomorrow (Thursday)


Recording: OCL for OpenMRS Squad Call_Mar 6, 2024


  • Reminder: Daylight savings time is coming up for US folks! 10am ET instead of 9am ET!
    • Decision - change calendar event to be anchored to US DST, which means meeting will be one hour earlier for people outside of the US
    • Make sure Ellen gets the invite!
  • Quick Feedback - Create similar copies the autogenerated UUIDs. Should OCL omit those when making a similar concept or mapping? Maybe only when Auto-ID is true?
    • No action needed on Create Similar Concept
    • Bug report on Create Similar Mapping - External ID of the submitted mapping ends up being duplicative
    • Future behavior: When using the Create Similar Concept button, what things should be carried over, and which things need to start fresh?
      • Names/Descriptions:
      • Name/Description UUIDs:
      • Mappings:
      • Custom Attributes:
      • Parent Concept URLs:
      • Concept Class + Datatype:
    • Note: "Cloning" might disappear in the future. The differences between Add vs. Clone is difficult, but you might make a "deep" copy vs a "shallow" copy.


Recording: OCL for OpenMRS Squad Call_Feb 28, 2024


  • PIH Update - Currently upgrading servers into OCL. Except for 1, all of our continuous integration servers are using OCL! (Ellen)
    • Basically, the OCL Module is set up, and dictionary updates are happening. It happens one time and not necessarily frequently. Prod concepts are on OCL Online, and a version has been generated, and that file is in the PIH GitHub, which is used to update all the concepts.
    • No production servers rolled out yet, and Ellen is doing all deployment and testing at the moment.
  • Look at OpenMRS-style OCL export for NMRS
    • Additions:
      • Put ID dependencies on the child row to make sure you keep question/answer pairs linked to each other (and same with Concept Sets)
      • Hyperlink to the original (related to deep linking?)
    • Actions that this enables:
      • Identify concepts that don't have a mapping to CIEL
      • Identify concepts with incorrect CIEL mappings
    • Other note: Some concepts have labels or captions that quickly summarize the question being asked. This might be something that you highlight better.
    • How this ties into concept proposals:
      • Currently, CIEL uses spreadsheets to have conversations about concepts. OCL views could support this same thing.
      • Attach a discussion to a concept and the metadata around the concept e.g. which answers are there and which are not there.
    • If someone has made concepts and wants them included in CIEL, Andy would review their repo and determine if it's good to incorporate in CIEL.
      • Another approach is a user who is working within a repo like CIEL and wants to ask questions
    • OpenMRS has done work with concept proposals? A cleanup function is available so once a concept is codified and mapped, it goes out to OpenMRS instances. Link?
      • This doesn't fix modeling problems, of course. It just lets users go ahead without waiting around.
      • Andy about this: That’s part of it. The other part is where the instance data gets a temporary concept_id and when the final concept is approved, the instance data maps are updated...
  • Concept Proposals / Advanced Permissions?
    • Concept proposal as a topic can be massive. We should break this into small groups/workflows that might be able to be tackled.
      • Small group examples:
        • "Suggest new concept" for a repository when there is a gap (i.e. no concept exists so I request the content curator to make something new)
          • Potential extra: Might include the tracking of "what searches were performed before making this request"?
          • Anytime there is a search screen, having a feedback that says allows people to say they couldn’t find something or the data is wrong would be good.
        • Meta functionality like Discourse - communicating around concepts to suggest something about a concept (change/add attribute, add mapping, etc.)
        • I’ve created a bunch of concepts - can they be reviewed for inclusion in CIEL or other standards? (Probably can be handled in a spreadsheet)
        • Future: I’ve modified a CIEL concept and CIEL should know about it.
      • MSF Use Case:
        • Recently has moved away from CSV and now working in UI. Will have more decisions to make in the UI.
        • Also noting that there is collaboration between MSF and OCs for MSF. Want to be able to communicate decisions that were made.
    • Permissions ideas:
      • Having a flag which could be added to any concept that would make it visible (either to be filtered or even permission) to someone else would also be pretty easy?
  • OCLv3 update: First MVP of what's in and out of scope for v3 will be solidified soon.


Recording: OCL for OpenMRS Squad Call_Feb 21, 2024


  • Collection update for MSF
    • Bugs identified by Lisa and brought to OCL team, which is now being investigated by an OCL developer
    • In particular, some resources lag behind and remain in the collection even after attempting to removing them.
    • Potential fixes: reset the autoexpand-HEAD, or add exclusion references for unnecessary ICD and WHOATC concepts
    • Next step might be test cases - provide some more complex testing scenarios that can really put OCL to the test, using production-quality data - this could be a test case that we as a group sign off on
  • Collection remodeling
    • MSF might want to consider remodeling the collection to clean up the references? We could rebuild this dictionary from scratch using dynamic references.
      • This collection might be able to be modeled using a set of dynamic references.
      • However, this collection does have modifications
      • OCL also needs to update its reference/expansion logic to behave as users would expect, since it often is currently working "as designed" and is less about bugs.
    • Seeing the diffs between two expansions would be important so that we can ensure that unexpected concepts and mappings did not enter the collection without my knowledge
    • Want to be able to see the flow between the intention (i.e. references) and the expansion (i.e. the concepts/mappings returned as a result of the references)
    • Also need to be able to specifically see the modifications that have been made in this collection
  • Random idea: OCL collections might only want to display or pull in names/descriptions that are of a supported language by that collection (i.e. remove "clutter" from displaying additional translations)
  • Another idea: if you have same-as maps to a CIEL concept on your own cloned/modified concept, you might be able to get a notification that CIEL has updated a concept
  • Concept Modifications for OCLv3:
    • Will support the FHIR ValueSet name designation features at OCLv3 launch
    • Likely will not support all the original requirements we wrote (see here)

Not addressed

  • GSoC - Any next steps from this group for now?
  • Potential Group Discussion: Hierarchy and Cascade 
    • What are our main use cases and opportunities for this feature set? E.g. viewing context, reviewing what content I am about to add into my collection, etc.
    • What main info do you need to see when you get a list of cascaded concepts?
    • Apart from mappings and hierarchy, are there any other attributes/ideas you want to interact with? E.g. filter for concept class?
    • What kind of customization might you want to make to the process?


Recording: OCL for OpenMRS Squad Call_Feb 14, 2024


  • Convenience Sets for forms - aiming to adapt content to different projects, including cloning, modifying answers, using Value Sets, etc.
  • Explore value set-based management of questions/answers for forms
    • Options:
      • Managed within OCL:
        • Answers with the question i.e. Relationships/Mappings-based (Q-and-A, Sets, etc.)
        • Answers separate from the question i.e. Value Set (collections, value sets)
      • Managed within OpenMRS form builder via HTML:
        • Anything with a certain concept class can be an answer e.g. any procedure could be used. No need to create a set or answers in the dictionary itself. It's a nice shortcut.
        • Another example: Any diagnosis or symptom might be a possible answer.
    • OCL's common model: Have a concept for each question and answer, and put them all in the same source/collection.
      • FHIR value set model doesn't involve mappings. Instead, a concept for a question is created, and a value set with concepts for answers (with a URI) are tied to the question concept (via Extra attribute, for now).
        • OCL/OpenMRS subscription module would need to recognize the bound value sets and create the answers based on that.
      • FHIR also has constraint language on what answers can be allowed i.e. a binding strength.
    • Bamhni might not have the ability to manage via HTML forms - needs to be managing this via the dictionary (which is in OCL).
      • PIH does diagnosis sets of sets. Certain forms like mental health only uses a single set of diagnoses. These are modeled using convenience sets.
      • PIH uses 2 layers: Sets, then sets of sets, then concepts. Labs, procedures, and diagnosis.
      • Example:
      • HTML forms know that there are multiple levels inside from which you can get answers.
      • This is used for reporting too. Reporting on NCDs, for example, you can look within sets to do that.
      • Bahmni wants to query the terminology server for "all diagnoses that are descendants of x disease". A SNOMED model. PIH is not currently there. CIEL would like to return something like that. You get the CIEL codes, then get the SNOMED codes mapped to those CIEL codes.
      • Classes are like giant convenience sets that were hard coded because they're so common.
        • What about tagging as a way to manage a large list of concepts?
      • Liberia has a specific set of diagnoses and concepts that they are using. The HTML form works with the structure and hierarchy of the format.
    • Idea: Shortcut to make a dynamic mapping via a "reference"? Thats an OpenMRS specific use case
    • What's the difference between creating a Q-and-A and creating a convenience set
  • Not addressed:
    • What situations is it better to model questions/answers using mappings vs. value sets?
      • Diagnosis/symptom list
      • Yes/No/Unknown answers
      • Modified/adapted answer sets


Recording: OCL Squad Call_Feb 7, 2024


  • For next week: Explore value set-based management of questions/answers for forms
  • MSF Collections
    • If we have Q-AND-A in a source and bring it into the collection, we might want to modify the answers for another project. Issue: It gets the original Q-AND-A from the source, but it will bring in answers that we don't want.
    • PIH had a similar issue but maybe not about changing answers. The idea is that the source wants all the possible answers for a question, and the collection excludes specific answers. This is an advantage where you have the source with all the answers with it.
      • PIH Source has variant questions and variant lab sets.
      • Bahmni loads all answers that you have in the dictionary, and it uses a script to modify the answers displayed.
      • When using the collection method, you only need a single source that has all the concepts and then each collection can trim down the answers.
    • PIH uses convenience sets to subset the concepts needed for certain country implementations
    • OCL TermBrowser needs to show the concept's original source AND the referenced collection too


Recording: OCL Squad Call_Jan 31, 2024


  • GSOC brainstorming
    • Intent: 2-month long project on OpenMRS functionality, which would be nice to have e.g. more robust features, new things to incorporate into OCL module
    • Ideally, we involve people like Mike, Ian, Raf, etc. who might have ideas on rough edges of the OCL module in OpenMRS.
    • Idea: change management - the user experience or module functionality
      • Query affected forms?
    • Basics: say what source the concepts come from, what version, etc. OCL could include the summary of the export with the export.
    • Idea: Better bug support for failed imports? example: might link to the OCL concept so there's more seamless integration between the tools
    • Idea: Leverage OCL's checksums in the OCL module in OpenMRS (2 or 3)
    • Make sure to get input from Devs
    • Burke to collate this info into a small GSoC narrative
    • 1 months, 2 month, or 6 month project lengths available. 2-3 month project is common, but be sure to give students time to catch up. Also allow time at end for student to get project across the finish line.
  • PIH Updates
    • Thoroughly tested a couple of country sites, but need to do additional testing, particularly on "non-clean" production level servers
    • Haiti was one of the systems tested (large!), which has lots of forms (50-70), and it worked fine
    • Import process can be painful - requires work. It's a one-off thing. For a week, Ellen froze creating new concepts, but now are creating more concepts in the pipeline. Upgrading the PIH dictionary into OCL might be the next step. Keeping up with form changes is hard.
  • Checksum progress
    • Checksum = autogenerated thing that is tied to OCL resources (concepts, mappings, etc.), which will be really useful for comparing content and finding changes across repo versions. Great for making automatic change logs between CIEL versions, for example.
    • Smart Checksum is an especially cool one that is recalculated only when the concept's meaning has changed. So the changes are not quite as significant.
    • Teaser: Diff between two releases of a source like CIEL.
    • Goals for checksums: Autogenerated change log between two repo versions, and OCL makes smarter version updates when importing concepts (i.e. don't make a new version unless necessary)
      • Secondary goal: validation that content was imported correctly,
    • Tickets to track:
  • Bahmni troubleshooting
    • Still trying to figure out what caused the bug - error log
    • Issue set 1: Retired concepts with duplicate names - 83724AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA79911AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
      • "The first two are retired and shouldn't be participating in validation."
    • Issue set 2: Retired mappings are still being imported(?), and there are "duplicate" mappings between the same concept - 159828, 159456, 159968, 126312
    • Related ticket: OCLOMRS-1108 Only import retired data if necessary
    • Next steps:
      • Ask Bahmni about their validation issues?
      • CIEL: Review how many OCL concepts only have synonyms and have no FSN (for each locale)
      • OCL content: find a best practice for concept translations in alternate locales. For names in other locales that have a synonym but no fully specified name. Do people need to translate the FSN and then add synonyms? Overall, let's see if others attempt to translate to synonyms only for translations, or do you always need a fully specified name for each locale?
        • To review: SNOMED-CT/GPS, OHDSI?, PIH and other OpenMRS dictionaries with non-english locales


Recording: OCL Squad Call_Jan 24, 2024


  • Piumal: Google Summer of Code - Preparing GSOC for OpenMRS. Looking for project ideas.
    • Idea: OCL Module. Mike Seaton at PIH has identified some issues that could be addressed by GSOC
      • Let's look at some things that could be improved - some nice-to-haves. Improve how the workflow works with OpenMRS.
      • Deadline for application is Feb 6 - must have projects in by then
      • Rafal K could be a great mentor for this?
      • Nice for OpenMRS to see the id/name/version of an OCL Export that is currently being used
  • Tendo Martyn: Implementing 2.x, had some concepts missing. Will send a list when ready.
  • Repo Management and Repo types:
    • FHIR Compatibility is usually not the first thought for an OpenMRS Dictionary, but PIH does do some work to make sure things correspond.
    • Non-developer perspective: FHIR is great for moving patient data and knowledge representation e.g. a dictionary. Core functions like lookup, validate, map, etc. have a particular topic, and FHIR views it in a pure way e.g. concepts and mappings aren't attached. When we want to do something practical like pull up a concept and its maps, it's not as practical. The user probably doesn't care how the data are kept, but the backend needs to understand how to respond to it.
    • A cocnept dictionary in FHIR speak would be broken up into lots of value sets for answers, a value set of included CIEL concepts, a source for novel concepts, and a concept map for mappings.
    • DHIS2 added a FHIR wrapper that lets you retrieve option sets as a value set. Similarly, a dictionary probably would have lots of value sets.
    • OpenMRS has a FHIR API that might have some terminology resources around it.
      • Burke: "OpenMRS FHIR IG is currently focused on & driven by clinical needs more than metadata management.

        I don’t see ConceptMap or ValueSet in there yet."


Recording: OCL Squad Call_Jan 17, 2024


  • MSF issues:
    • OpenMRS not able to see answers that are shown on OCL's website. You can see it in the Exports, but it doesn't make it into OCL Iniz. You need to have an external ID on the answer side. You need that external ID. Once you add those, the answers on the mappings, then they appear on OpenMRS.
      • Solution: Use the Auto Assign abilities in the Edit Source menu. Make sure all four of the External ID fields are set to UUID.
    • 404 errors and "0 reference" errors - these are probably related to OCL's indexing needing time to catch up. Better performance is likely needed here.
      • (0 reference errors happening at 9:26am EST in recording)
    • Difference between Exclude Reference vs. Remove Reference
      • Generally, Excluding References is complicated. They can make it hard to troubleshoot.
  • PIH Jira ticket:
  • 1 minute demo for "resetting" a collection expansion (might help with the 0 reference errors)


Recording: OCL Squad Call_Jan 10, 2024


Recording: OCL Squad Call_Jan 3, 2024

  • Displaying retired concepts vs. retired mappings in the Associations section - how to visually distinguish between these two
  • Retired versions still appear in the Version selector in a Source


Recording: OCL Squad Call_Dec 20, 2023


Recording: OCL Squad Call_Dec 13, 2023

  • OpenMRS Burning Needs:
    • Index Term name type not accepted with OpenMRS Validation Schema #1709 - Nearly deployed on Prod

    • Auto-assign UUIDs for concept names and descriptions #1683 - On QA, let's showcase/discuss today - Looks good!

    • Auto-assign sort order #1682 - Starting development

    • Datatype Dropdown - cannot use N/A in my source #1673 - Making final decision on Friday

      • Ellen says it's not urgent since OCL Module converts all None values to N/A anway, so you only really see a difference in OCL.

      • It may be confusing for other people in the future, but it's something we can live with in the moment.
    • Please Delete the fake OpenMRS Org #1678 - Further analysis needed by OCL team

      • Might consider that OCL should become case insensitive for uniqueness of IDs for Org and User names e.g. OpenMRS vs. openmrs
        • Note that the following Orgs in OCL Online would be duplicative in this way: CORE + Core, MOH + MoH, MyOrg + MYORG, OpenMRS + openmrs, TEST + Test + test, testOrg + TestOrg, UGANDAEMR + UgandaEMR
  • Upcoming tests:
    • Add a name to a CIEL concept
    • Change preferred name, short name, concept name
    • Delete concept name/answer/set member/mapping (still problematic)
      • OCL Module needs to know how to handle retired concepts. OpenMRS generally deletes mappings, rather than retiring them. OCL retires them though.
      • Idea: When you import a concept, you should end up with whatever is in the import. You can't delete a concept in OpenMRS, but you can retire it. If you import a concept with two answers that's already in your system with four answers, then ideally you end up with a concept with two answers.
  • Issue that we want to address: Showing the official CIEL more effectively so that people are not trying to map to a copy/unofficial one. Plays into the Walled Garden approach too.
    • Simple fix: Change the org name in the Source search fields (e.g. Quick Add Mapping) to be a darker color and not the light grey

  • Holiday schedule
    • Dec 20: Do not cancel
    • Dec 27: ???
    • Jan 3:  ???


December 6, 2023 OCL Squad Call Recording

  • PIH on OCL: Using sources instead of collections
    • Test case: changing names on Hypertrophy of Bone. Need to use name type "None"
    • Form Improvement: Update comment should be next to the Submit button (and probably should be auto-generated if possible?)
    • Bug with adding index terms:
  • OCL Short and Long term Approaches for fields like Data Type (#1673)
    • Near term workaround: For datatypes, we were showing what's in the dictionary and let people enter that. Do the same thing for Name Type too
    • How this manifests in OCL:
      • Concept form will allow you to put in N/A if you have already used it in the past
      • Concept form allows you to input your own custom value e.g. N/A

Not addressed

  • Proposal: Remove Static References option?
  • "For OMRS Validation Schema, require both from & to concepts in Q-AND-A & CONCEPT-SET are in collection" (Issue #1341) - Is this a burning need?
  • Repo Types

2023-11-29 - Cancelled for OpenMRS Mini Meeting


November 22, 2023 OCL Squad Call Recording

  • Michael B: Convenience Sets for form-based collections, etc. -
    • Scenario: Form 1 has some questions, and Form 2 has the same questions with some different answers.
      • We still need to test that the answers look correctly between OpenMRS forms.
      • How can we handle the two sets of answers depending on the form?
      • Note: Bahmni is more tightly tied to the concept dictionary q-and-a structure than OpenMRS is - Bahmni will show all the answers for the concept
    • Ellen: You can do a couple of convenience sets for answers - one that's yes/no, and one that's yes/no/unknown. We also use a question called Diagnosis, which we use on lots of forms, but the possible answers change depending on the use. For a mental health form, the possible answers are a mental health diganosis convenience set. For surgery, it's a set of diagnoses that are only found during surgery.
    • Want forms to be as reusable as possible and take the work outside of the EMR.
    • Burke: Goal is where collection allows concept customization to say whether or not to include a certain answer. Should aim to reuse concepts, not create new concepts for questions.
    • Michael: We will explore convenience sets and look into whether or not Bahmni can customize the answer set to be used for questions.
  • Squad Showcase upcoming - what do we want to highlight for the OpenMRS community
    • Note: Making it clear that OCL is used for much more than HIV would be great
    • People are interested in OCL, but they're not sure when they can use it or when to jump in. Having a timeline would be good. PIH isn't even sure.
    • Non-HIV use cases:
      • Michael to send example of maternity admission form that is driven by an OCL collection. Same form as used in the DHIS2 integration.
    • Accomplishments:
      • Movement of PIH and MSF towards centralized concept dictionary management within OCL, which facilitates broad distribution to multiple implementations
      • FHIR Core beta has been launched
    • Upcoming initiatives:
      • OCLv3/SMART Dictionary preview
      • NHDD support
      • Even better FHIR implementation


November 15, 2023 OCL Squad Call Recording

  • PIH Work
    • Importing a clean PIH EMR dictionary into OCL, which will wipe out the existing test content.
    • Will start using the Source for PIH distribution instead of collections. Previously, Collections would be a base plus a SL collection to build the SL distribution. Now, will have a single source. The same concepts will get rolled out to every distribution.
      • Reason: Collections have led to too many issues. Want to wait for OCL to clean up that workflow.
      • Issue: Mexico's mappings are slightly different e.g. NARROWER-THAN map in CIEL.
    • Use cases for convenience sets:
      • Make it easier to find related concepts (i.e. using it as a Tag)
      • Group together concepts that would be relevant for a business use e.g. a test has multiple question components
      • As a pseudo-value set e.g. "here are the gender values that I would use in this form".

Not addressed:

  • Proposal: Remove Static References option?
  • "For OMRS Validation Schema, require both from & to concepts in Q-AND-A & CONCEPT-SET are in collection" (Issue #1341) - Is this a burning need?
  • Squad Showcase upcoming - what do we want to highlight for the OpenMRS community
    • Note: Making it clear that OCL is used for much more than HIV would be great


November 8, 2023 OCL Squad Call Recording

  • Time change note: This meeting is anchored to UTC. For EST folks, this meeting now starts at 9am instead of 10am
  • PIH Concept Management Update: Where are we at?
    • Been working through some potential low hanging fruits before OCLv3:
      • (Source-focused) Name and Description UUIDs auto-generate (related to this OCL ticket)
      • (Collection-focused) Refresh button for auto-expansions - force re-expand a collection
      • (Source-focused) Data type alignment?
      • (Collection-focused) Kill off static references?
      • (Source-focused) Auto-sort mappings for a concept (see comments in this OCL ticket)
        • Short-term: Auto-assign Sort weight when creating a mapping in a sorted map type via TermBrowser
        • Long term: Repos get a configuration to say that certain map types (e.g. Concept-Set) should be given a sort value by default
    • Less low-hanging:
      • OCL metadata standardization e.g. Data type
      • Static → dynamic reference process?
      • "Linked collection" i.e. auto-expand a collection when a source version is created
    • Goal: Get to a place where a collection can reliably be updated to the latest and greatest, without needing to do a bunch of versioning and releasing of sources and collections to even see it
      • Short term goal: take collections out of the mix. Manage sources only, and focus on source-based quick wins.
    • PIH collection management - There's a base PIH collection (which is everything that everybody wants). Additionally, there's a package for each country distribution (which are separate and specific to those countries).
      • Previous method: One PIH source with literally every concept, then add those to different collections. That means that there's one collection for the base, then separate collections with separate countries.
      • New (very recent) method: Just do a single source until collections have been improved and are usable. (Danger: We're adding Mexico's insurance companies, lab locations, etc. into Haiti deployments but they're small)

November 1, 2023 OCL Squad Call Recording


October 25, 2023 OCL Squad Call Recording

  • Ellen/PIH testing update:
    • Duplicate mappings still appearing - need some technical troubleshooting here?
    • High level Workflow:
      • Ellen exports the collection
      • Import into GitHub repo
      • Imports into OpenMRS that way
      • Issue: duplicate mappings were apprearing in OpenMRS, even though they didn't really appear in OCL
    • Next steps:
      • Joe and Ellen to meet this afternoon to troubleshoot, hopefully Burke and maybe Mike Seaton can join?
  • Laure: Blockers with Michael and Lisa - Questions and answers live in sources (CIEL, MSF, etc.)
    • Goal: Reuse questions and answers
    • Issue: When bringing questions and answers into a collection, we cannot modify answers. As the owner of a collection, if we bring in a list of facilities, how do we remove answers, modify them, etc.?
    • YouTube link walkthrough:
  • (Later topic) Different levels of content promotion (e.g. walled garden?):
    • Examples: Promoted/verified/curated (AKA Trusted?) ... promoted as example ... non-promoted ... private
    • Would require some sort of Promotion governance/process
    • What might the MVP be for this, and what might future phases include?

October 18, 2023 OCL Squad Call Recording

October 11, 2023 OCL Squad Call Recording


October 4, 2023 OCL Squad Call Recording

Attendees: Burke, Ellen, Michael, Andy, Joe, Jon


September 27, 2023 OCL for OpenMRS Squad

Attendees: Burke, Ellen, Michael, Andy, Joe

  • Ellen's testing feedback:
    • 1) Datatype is "none" not N/A with creating a new concept with the OCL UI;
      • None is not a valid data type for OpenMRS
        • Need a validation schema update?
        • OCL's UI should allow any text as a value?
        • OCL's suggested datatypes should populate all values from the Source summary?
        • OCL's Datatypes source stores the Datatypes as N/A ?
      • OpenMRS Datatypes:
    • 2) Cannot set "FULLY_SPECIFIED" for a new concept with the OCL UI (shows up as "fully-specified");
    • 3) Problem with export of updated version (need better explanation).
    • I also need to chase why we see duplicate mappings when adding a new concept to a deployment.
    • UUIDs on concept names/descriptions
      • Needs further addressing - sometimes, data is collected under a particular name, so we need to know which names are attached to that
      • Also, showing external IDs is generally unnecessary unless the user wants to see that.
  • Michael: Questions on fixing ID generation bug (see ticket
  • Question about adding concepts to the collection again?


September 20, 2023 OCL Squad Call Recording

Attendees: Ellen, Michael, Joe

  • (Next time) None vs. N/A on PIH Source - N/A not appearing in DataType dropdown? Should OCL allow free text entry in the Datatype field?
  • (Next time) Update on "None" name type that OCL is working on removing
  • Shared source for all of MSF:
    • Currently doesn't have a lot for maternity. Is PIH going through the same process?
      • Maternity happened in Haiti and Sierra Leone, so PIH has a decent amount of content, but it doesn't necessarily match the MCOE workflow. Small clinic and deliveries only, no surgery, so there are referrals needed to the nearby hospital.
      • Working through whether to use OpenMRS 2 or 3
    • What does it look like to put together this shared source? Is there a designated "point person"?
      • Really new, started in August. Focusing on governance and how it would work to have different MSFs, different priorities, different content. It translated into a work plan with resourcing, planning, etc. RACI analysis to distribute responsibilities, for example new requests and modifications.
      • More generic - SOPs and guidelines to manage the shared source. What is the available workflow for creating content in a shared vs. local source?
      • Will focus more on content later e.g. maternity-centric content.
      • Goal: Not only have a central source, but also to have pre-made collections e.g. NCD collections that could be directly used in the implementation.
        • Not quite sure if this is form-specific content or not.
        • Reusable forms and reduced work so that implementers are not starting from a blank page.
      • If we built maternity forms, what are the chances that we'll overlap with PIH or others at some point? Would be really nice to be sharing across the community. Community-driven development for content!
        • Ellen: Multiple sites are wanting different things. 70-80% of content is the same, so there is some overlap, but negotiating the balance is so difficult. For example, maternity GPOW(?) being required or present. Some places care a lot about gender-based violence, and some don't care at all. Lots of variation. Certainly depends heavily on the facilities and the type of care being rolled out.
          • Michael: MSF tries to be consistent, but everything is different. Being more prescriptive is ambitious and more to accomodate additional projects and implementations without expending lots of resources. We want to accomodate the users best.
          • Ellen: You could have an Uber collection that has a superset of what everybody needs. It's the data collection piece that becomes challenging.
          • Michael: We have a challenge with translating existing forms, e.g. anesthesia which has vitals, specific observations, etc. that goes to OpenMRS 3, which requires breaking down the form and managing change and information flow.
            • Building metadata is challenging, but it would be helpful to have more examples between implementers. We could show users that there are real world examples. You can still be efficient with patients and give quality care.
    • MSF lightning talk at some point?
  • Bahmni moving toward Carbon, so it'd be good to reuse their work where possible.
  • OCL walkthrough:
    • (Next time) Issue - when you "Create Similar" on a concept, you are able to create a new concept with the same External IDs on the Names and Descriptions. Is that acceptable?


September 13, 2023 OCL Squad Call Recording

  • Content collaboration - having a back and forth conversation around a concept
    • OCL should have a "contact me" location so you can start up a conversation and send them links and stuff.
    • Deep Linking in OCL is another way to use OCL Chat to have discussions about specific concepts
    • This is an ongoing conversation that we should continue to think about over the coming weeks/months.
  • Content auditing quick features


September 6, 2023 OCL Squad Call Recording


August 30, 2023 OCL Squad Call Recording

  • Ellen: PIH Update for Concept Management
    • Tryout out a lot of testing. There's a package that PIH has missed, so needing to add it to a collection. Hit some speed bumps (not OCL related, but PIH pipeline related) but working through it. Getting things into OCL to make it clear, then out of OCL into the deployment pipeline.
    • One concept was not getting imported into OCL, and when looking deeply, there was nothing obvious, but after some cleanup it eventually imported.
    • Importing PIH content involves and SDK instance, then a database export to JSON, then a bulk import from there. Lots of steps. Hopefully we can get to a world where content gets from OCL to OpenMRS, rather than going from OpenMRS to OCL first.
    • Question: Are you doing version releases for your dictionary, or is it something else? Are there multiple sets of updates happening when changes are going on?
      • Ellen: I've been playing around with version stuff. Allergy concepts, for example, aren't adding to my collection. I've used versions to determine the differences once those concepts do get added. Want to quantify the differences. Versioning will be most useful as far as "cutting the gold".
      • Burke: What is the happy path with versioning? Not necessarily with OCL, but overall working with releases and a growing dictionary.
      • Ellen: What's currently happening is fine. In our build environment, we specify what version of the collection we want, and we use that as a snapshot and spin up a server with that system with some stable relase so we can test the whole system, including the concepts. Then we can promote that to a Production system.
      • Burke: So rather than uploading a one or a set of concepts to Production, you do batches of concepts over a longer timeframe.
      • Laure: For MSF, we still have a step where we build the dictionary, but we are working now with the other MSF to set up something where the versioning becomes something we need to think about. What Ellen described is likely what we will do.
      • Ellen: We probably have similar environments. Getting access and updating a server is a project for us. Some servers are running 24 hours and we don't want to mess with it since we have to notify everyone about downtimes. Too often, servers don't have internet and need to be brought somewhere with internet to do updates over the weekend.
      • OpenMRS is used in a very mature way at this point. Previously, we could bring systems up and down all the time, but we don't do that anymore.
      • Andy: Talking about Antony deploying OCL to Kenya, but should Kenya be updated with Iniz? Maybe we should get Kenya into these discussions. Trying to scale out KenyaEMR.
      • Ellen: Would be helpful if we communicated more about what we're doing, in terms of the community at large. When PIH does move down this path, it'd be good for me to write a lengthy blog to describe the process that we're going through.
  • Lisa: We are reflecting how we are handling versioning and documenting and putting together guidelines for MSF to work together in their high level sections.
  • MSF Update for new source - trying to import concepts into OCL
    • Laure: New source is a copy of MSFOCP since MSF is in the early stages of working together. I created a new MSF organization in OCL, and I set up the source.
    • I'm ready to bring down OCL's new concepts, but during the transition phase, I am needing to manage IDs. If you create both concepts in the UI and via bulk import, I want to make sure that I can import concepts via CSV.
    • Overall, it appears the mixture of bulk importing and TermBrowser usage is confusing and not feasible.
    • Started by bulk importing everything, and then when you cloned a CIEL concept, it duplicated the ID. That bug has been fixed.
    • Issue: Not working alone on concepts. Working with an intern, and working with Andy to get concepts updated. If we stop working with CSV, we can't audit the changes that are happening. No good workflows for teamwork.
    • Also CSV is a comfortable way of working, and it works better across multiple people.
    • Note for OCL: this might fit into the checksum ideas a little bit - auditing the changes made in OCL and who made them.


August 23, 2023 OCL Squad Call Recording

  • Drugs, regimens, etc. in relation to terminology
  • Quick Add Mapping to concept external to OCL - Feature update
    • Code-only mapping should be allowed i.e. without a name. Currently, OCL requires a name.
    • Concern: You can't create an inverse mapping in this workflow


August 16, 2023 OCL Squad Call Recording

  • Questions and Answers topic - might need to add mappings manually to make sure everything is mapped correctly when importing into OpenMRS. When importing those mappings, the answers are not actually mapped to the question. Resolutions might be to manually add mappings, and when you release, it should get mapped into OpenMRS down the line.
    • Broader concern: Starting with DHIS2 data elements and trying to standardize from there, rather than starting with CIEL and mapping to DHIS2 data elements
    • Follow-up: MSF/OpenFN Lightning talk?


August 9, 2023 OCL Squad Call Recording

  • Agenda Topics
    • OpenMRS Conference update - how did it go? Is there anything that affects this squad?
    • Confirm Quick Add Mapping's sort by frequency - does this require a change to the UI to show the count of mappings with that map type?
    • FYI - quick bulk import troubleshooting demonstration - let Joe know if you know of common bulk import errors or troubleshooting steps
    • SMART Guidelines and Terminology
  • OpenMRS Conference Update
    • Might have a Squad call about MSF dictionary management in terms of Orgs, Sources, and Collections.
    • Want vocabularies for DMEs (durable medical equipment)
    • Related to terminology: Pushes from Kenya and Nigeria to grow OpenMRS beyond HIV to other chronic diseases, growing as a system not only for OpenMRS but also for labs, ancillary systems, etc.
    • Lightning talk - want a formal spec in OpenMRS community around packaging and vertical solutions that can be popped into OpenMRS Systems AKA bundling. Content is a part of this.
  • SMART Guidelines and Terminology
    • Terminology can be used as part of CQL Measure evaluation to "get the customization outside of the CQL" by leveraging terminology e.g. mappings, value sets, etc.
    • Regenstrief EMR GOPHR has logic rules for calculating indicators, decision support, etc. If data was in a non-matching form, then you write another rule to compute a dependent observation using [insert element here]. The easiest output is additional observations, which can be directly or indirectly inferred.
    • Issue: Accomodating multiple observation models, which forces the author to handle the variability. There should be a happy path where possible, but at the implementation, when you store your return visit date in a different observation, ideally the local implementation to create a rule to do a calculation that appears in the format that the reference model CQL is looking for.


August 2, 2023 OCL Squad Call Recording

  • Attendees (hastily captured)
    • Brian (Intellisoft)
    • Agbons (PATH Nigeria)
    • EGPAF
    • Nyanko-obong Okon
    • Charlie Maere
    • Burke
    • Ellen
    • Polonri ( iTECH Cote d'Ivoire)
    • Andy - PHIS3 Frontend developers
    • Nikwi - CDC Cote d'Ivoire
    • Johnson (PHIS3 Nigeria)
  • Topics
    • Upgrading OpenMRS is Cote d'Ivoire. We have 50000 custom concepts (probably not all in use). Takes 36 minutes to load. We want to transition from this CSV to a start of a national health data dictionary. Want to link those concepts to CIEL and then incorporate that into reports and other workflows. These concepts are a mix of French and English. (Wants to see Tinder for Terms / Concept Matching)
      • Can you query OpenMRS to find out what concepts are being actively used? You can query the old UI to figure out what concepts are easily available - should be easy. It's easier on the OBS table but maybe not as easy for querying reports.
    • Charlie: When we are integrating with systems, I get an example from LIMS, which has their own "terminology". When you interface that with OpenMRS, there's usually another terminology, which is confusing. If someone wants to place an order, the LIMS system has that kind of test defined, but when interfacing with systems, those concepts don't match. You have to hack a way to map the two concepts so the test from LIMS should be common. LIMS is just an example though - OpenMRS plays a role in interfacing with multiple places. How can we create a base mapping of the tool?
      • Standard terminology like LOINC helps to solve this problem. If you solve an HIV test, the EMR orders the system and there's a LOINC code that matches that.
      • Charlie: There are multiple corporations for LIMS, which democratise the way you use labs. A lab team could look at tests that should be there, but if something is missing, then we create a test in the terminology e.g. a unique serology test. That test's mapping isn't always linked with OpenMRS. Common standard tests should align with OpenMRS. How can we deal with this kind of variation.
      • Casey: OpenELIS uses the LOINC code, and even if the test isn't perfectly correct and mapped, you should try to find a matching LOINC code.
      • That process is time consuming. Finding a matching LOINC code is hard - it's really tricky. Could this be well standardized?
      • Ellen: OCL has PIH's concepts, so people can find our library, what labs we use, etc. We should be reusing existing concepts and modifying them for our purposes. We need to be helping each other as a community and not re-inventing the wheel
      • Casey: OpenELIS lab starter set is being put togehter for OpenMRS community.
      • Ellen: PIH built a custom free open module called LabOWA, using a global property for lab categories, and we just change the UUID when we customize the system. For example, Liberia asked to add a urine drug testing lab. In PIH system, it was easy to add a new lab set to the concept dictionary and then all the new lab tests appear. We don't hard code the labs in our forms - instead we use lab sets to create panels and categories.
      • Charlie: I want to say that the way that data owners should be entering the data. A clinician, for example, that wants standardized concepts should not need a technical person to do that. The clinician should be able to interface with something. Labs, for example, could be added by a lab manager. How could we standardize within OpenMRS to allow people to add some of these concepts via the UI and allow us to map these two. USE OCL FOR THIS.
      • Ellen: You can make concepts in OCL, but you might not expect that a clinician can find the LOINC codes. We don't want to put the burden on them though - a terminologist would do that. A new lab test would require someone who can manage that.
      • Andy: It's helpful if there's someone on-site who can be the termionlogy SME. You don't have to know everything about labs, but this terminologist would work with clinicians and clarify with them.
      • Also, much of OCL's search capabilities are based on concept names and mappings. But if you're trying to figure out which tests are mg tests or urine vs. serum. The UI doesn't search that metadata. LOINC coding is REALLY hard. Diagnoses, procedures, questions, etc. are much easier to find in OCL.
    • Ministries have some subject experitse, e.g. one technocrat who understands everything with HIV. But a challenge is looking at the definition, a technical person might interpret it differently than a clinical person. The decisions should go to the technocrat, manage the concepts, and apply it to other clinicians.
      • Burke: You need to pull in expertise up front - if you aren't practicing daily and talking to patients, then someone will understand it differently. But we have definitely separated the OpenMRS Codes from the Concepts. We need to bring experts together and to look at what other people are doing in this space. Someone has probably already tried to solve this problem.
      • Casey: Starting with CIEL, for example, means that concepts are relevant, deduplicated, accurate, etc. It's curated. We don't have duplicate concepts or things that don't hold up over the long run. Starting with a curated set of concepts makes things much easier.


  • From last week:
    • (Joe) Is Nigeria using drugs/supplies in a terminology service?
    • OCL Squad at OpenMRS Unconference?
  • Issue with mappings in OCL - results were available
  • Drug concepts
    • Jon to reach out to Josh from the PCMT team and see if they can join a future call


  • Group Updates:
    • OpenMRS Conference - Might use the Squad Call time to get some new faces and discussions going? It'd be 3pm Nigeria time on Wednesday.
      • Might help to shape OCLv3, share use cases, integration with supply or pharmacy side, etc.
      • Check in with Ellen(?) once unconference schedule is up
    • Searching in OCL improvements - see ticket
    • Question: Should Quick-Add leverage fuzzy matching?
    • Announcement - Deep Dive for Change Management/Requests (scoping and detailed discussion)
  • Search improvements
    • Searching "amphetamine" brings up lots of LOINC concepts that Ellen wasn't really looking for (Walled garden would help here)
      • Should we be able to filter by "source type", where people start with interface terminologies but can instead prefer reference terminologies?
    • Because you can't see the actual map result on the left side, that's difficult for people. Need to display the "matching" map code instead of a ? icon
    • Andy notes in chat:
      • includes in the middle of the word should be returned below those that start with the search term or totally include the search term

      • searching by code should not stem unless they are specifically asked to stem (e.g. searching G12 should not return G12.2 unless the user says to stem)

      • When most people search for a code, they want the code, not where that code might be part of another code

    • Bugs/small changes
      • Might be prettier to use "→" instead of "==>" - maybe use HTML's " &rArr "
      • Shouldn't lowercase the synonym if possible
      • Partial matching on middle of IDs in Quick Add should not happen (happened on Staging) - Use the same searching rules as Global Search in the Quick Add Mapping field
    • Advanced search additions
      • "Stemming" for codes and mappings - code = ID, stemming is off for codes, but on for other text
      • Searching "urine drug" in quotes would be helpful
    • Coming up:
      • Further search optimization in OCL API
      • Better UX/design (OCLv3)
      • Advanced search e.g. search custom attributes (OCLv3)
  • Next week:
    • (Joe) Is Nigeria using drugs/supplies in a terminology service?
    • OCL Squad at OpenMRS Unconference?


  • Showcase Debrief:
    • Brazil concept management - Publishing a Brazil International Patient Summary (IPS) - using OCL dictionaries to translate, establish concept maps and value sets, etc.
  • Another CIEL release coming up
  • Updates:
  • Translation of Extra/Custom attributes: We might want extra attributes to be managed using Codes/value sets in OCL. Standardizing would be helpful, but a ways out.
  • PIH Dictionary Plan:
    • Import (Done by Ellen)
    • Export into a deploy (coming soon)
    • Manage a concept and make sure it gets pushed out to existing servers (coming soon)
    • Ideas to think about:
      • Show the community what it looks like to export content that is managed in OCL
    • Note that there is a lot of testing and iteration and caution to make sure data isn't getting messed up in PIH production servers.
  • Future: Michael might give an MSF/OpenFN lightning talk?


  • To Do: Progress update on external mappings via Quick Add
  • Laure described a bug in OCL Online, documented here:
  • Laure described MSF's current collection creation methods - this might require some development on the OCL side to import collection reference via CSV.


  • Jon - Global Goods Innovator Conference Update
    • 150 participants, mostly representing software global goods supported by Digital Square
    • Community has grown dramatically. OCL and OpenMRS were showcased a lot. There is an assumption that they are used for medical record or terminology work. OCL is now becoming an expectation/assumption.
    • Jon/Grace presented on collaboration between OpenMRS and OCL. Talked through use case for terminology management, OpenMRS bringing in a dictionary from OpenMRS, plus OpenELIS integrating with OCL
    • Most global goods are health worker facing, but OCL's primary use case is with other global goods. A use case for each relevant global good with OCL was started. Can present that in another week or two. ~15 global goods looking to integrate with OCL for an application use case.
    • End point: a PIH dictionary might be able to be also used elsewhere like DHIS2, OpenELIS, etc. to further support data normalization
    • PIH has not necessarily done much with DHIS2 or OpenELIS yet, but does interface with CommCare. Not sure how they do concept management. But there's that one interface in Haiti for pregnant moms. Probably going to expand that in the future. Would like to coordinate the concepts there.
    • OCL might consider how CommCare might integrate with OCL.
  • Ellen: PIH/MSF Progress and Current Priorities
    • Ellen needs some dedicated days to work on this, but may be delayed until July
    • Numeric Attributes is a topic that we haven't really addressed yet. Ideally, you want a concept template that will give you the specific custom attributes that you would want to fill out.
      • Another example: OpenMRS's drug table has known attributes that could be templated.
      • Low-hanging fruit - an early template concept (but that will require UX work)
      • Lower-hanging fruit - Custom Attribute Summary API plus a selector for Custom Attributes field
      • Relevant talk post about age- and gender-specific reference ranges: - note that this is an example of custom attributes getting much more complicated in the future
        • From Chat:
          • If it helps, it appears that LOINC does not address reference ranges for their lab codes due to their complexity:

            Ellen Ball/Partners In Health  to  Everyone 10:53 AM
            As an example...
            Serum creatinine is reported as milligrams of creatinine to a deciliter of blood (mg/dL) or micromoles of creatinine to a liter of blood (micromoles/L). The typical range for serum creatinine is:  For adult men, 0.74 to 1.35 mg/dL (65.4 to 119.3 micromoles/L) For adult women, 0.59 to 1.04 mg/dL (52.2 to 91.9 micromoles/L)

            Burke Mamlin  to  Everyone 10:57 AM
            OpenMRS concepts have to pick a unit. If different units are going to be used for a result, then we’d suggest using two different concepts.

            Andrew Kanter, MD MPH (he/him) 10:58 AM
            That is what I have been doing…


  • Next week: Mapping tool mini-workshop
    • Might consider existing mapping tools to see what's out there: SNOMED Mapping Tool or Usagi
    • MSF: No use case today, but in the future MSF would like to work together as "One MSF" with the other OCs.
      • But MSF is missing OCL Squad call on June 21
    • Things to consider:
      • ICD-11 is post-coordination-based, same with SNOMED? How can we treat these differently than pre-coordinated terminologies?
      • What if we want to align with non-reference vocabs e.g. an NHDD?


  • PIH meeting reflections - Joe and Andy
    • Advanced workflow discussions happening - collaboration workflows, working with CIEL, concept modifications, concept templates e.g. labs or drugs, etc.
    • Iniz is a primary method to load concepts - wanting to diff files and see differences between versions
      • Asking for improved downloads to see what changes between versions of a dictionary
    • Drug mapping issues still occurring - interest in other reference data management functions in OCL. Other reference content seems easier, but drugs and medical supplies are of concern.
      • We wouldn't want to get into details of packaging, for example, but it might make sense to store identifiers like GTIN, UPC code, etc. Malawi is an example that wants an international identifier for a drug
  • MSF - OCL tickets/feedback
    • Auto-assign IDs: need
    • Name Type mandatory issue (see ticket - Name Type no longer required - needs discussion with OCL to make sure we aren't messing up OpenMRS cases further
      • MSF synonyms are not really being used - synonyms don't seem to be getting imported? Burke to check that the OCL module in OpenMRS can import Laure's synonyms.
      • For now, DO NOT USE "NONE" NAME TYPE
      • Another note: there's a discrepancy between OpenMRS's "FULLY_SPECIFIED" name type vs. OCL's "Fully-Specified" name type
    • Most other feedback from Laure's document has been addressed or has tickets)


  • Global Goods Conference - Discuss next week
  • Note that Ellen may be out Wednesday for PIH conference - Squad members may want to listen in on the meeting? Especially on Tuesday. Agenda
  • Notice G1 Global Goods - CIEL could apply to that? Discuss later.
    • Idea: Automation of CIEL's process (updating maps, changing versions, etc.)
    • Idea: Addition of ICD-11 into CIEL
  • Ticket Updates
    • (Deploying soon) - Name Type no longer required
      • Should Synonym be a valid name type?
      • Burke to update the ticket
      • Use of Synonym:
        • You can use it for searching in OCL
        • Synonym is an alias, an alternative name for a concept
    • (Designing) Quick Add Tweak for Manual Mapping#1575
  • Search Weirdness/Ordering
    • Hb (Haemoglobin)
      • 'Hb' should be returning Haemoglobin to the top since it matches a synonym exactly
      • With exact match on, Haemoglbin does not even appear in the list
    • TSQ
      • Appeared in search results because it matched DATIM IDs
    • Sunken eyes
      • Multiple word searching does not always return good results - need concepts that match all words at the top, and then what? Are the search terms optionally returned e.g. "Eyes" results when "Sunken Eyes" results run out?
      • "Eyes sunken"on exact match still returns "Sunken Eyes" results -
    • UX: Two search bars makes it easy to leave CIEL
    • UX: It's easy to outpace the TermBrowser when searching - you enter the Mappings tab, put in a search term, all before it finishes the last query, and then I don't know what I have searched.


  • CIEL Changes - some differences happened - seaching within the CIEL page
    • Andy is testing the configuration page - you need a high level concept/mapping tab, while also having the more specific tabs.
    • New ideas:
      • SNOMED mappings search - find SNOMED mappings specifically
    • Note: OCL is also planning to enable searching concepts via its mappings.
    • Next steps: Andy to work with Joe on configuration ideas and things for CIEL (NOTE: OCL v3 might help with things, and there could be a lot of changes)
  • Searching - what searches do we do and what are we aiming to achieve? (Relevant OCL ticket)
    • Search for CIEL concepts using equivalent SNOMED codes (currently done via Mappings tab)
    • Search for CIEL concepts via their mappings by leveraging text searching? Might be risky.
    • Find a SNOMED concept and then see if CIEL maps to it
    • Other notes:
      • Walled garden - want to restrict to only "trusted" content
      • Highlight why something is a match - show where the search term matches the results
      • Problem with GPS - what will actually map internally to CIEL?
  • Ticket updates:
    • (Deployed) Ordering of Quick Add's Map Type #1577

    • (Deployed) Add Concept -> Refresh Page#1576

    • (Deployed) Ordering of other fields#1584
    • (Designing) Quick Add Tweak for Manual Mapping#1575

      • Question: Adding "new" sources to map to (i.e. OCL doesn't have them right now) - How important is this?
        • Ellen: Pretty rare for us. Burke normally adds in the sources that CIEL maps to.
        • Laure: Same.
        • Burke: Let's table this part for now then. Just add the concepts manually.
    • (QA) Auto-assign ID Enhancement - Ability to switch scheme when editing a source#1549
      • Addition: Add a warning about switching the scheme
  •  PIH/MSF Testing - Can we push content from OCL Staging into a test OpenMRS instance to try it out?
    • PIH already pushed some things out - used PIH dictionary and got it into OCL. Next step: export from OCL and build PIH EMR distribution with it. Should create a working system.
      • Then update a system using the SDK export.
    • Ellen has some testing steps (clone, modify, export, etc.) to build the new system
    • MSF has a Bahmni instance of OpenMRS. Might impact testing, but let's try it out!
    • Goal: OCL is the source of truth for MSF and PIH content.
      • Start wiht a test environment to see OCL content coming in "live" is the first step. Squad will help where needed.
      • Try out day-to-day processes/maintenance using OCL too
  • Features still to do if possible:
    • Numeric values/ranges
    • Cloning:
      • How does ID get assigned for cloned concept? Will clone follow same sequential logic as when you create a new concept? - Outcome: Appears to follow the ID assignment scheme.
    • New Ticket: Name Type should no longer be required #1589


  • Ticket updates:
  • Working through Auto-assigned IDs with MSF (and other issues)
  • BAHMNI update with SNOMED
    • Links:
    • Questions/concerns:
      • What kind of support for FHIR will OpenMRS provide? Will it be a conformant EHR for FHIR terminology services?
    • Approach: Indian govt. is setting us TS for SNOMED at a national level (but having SNOMED as the primary data collection terminology may be challenging). How to support users who don't natively speak SNOMED?
      • Seem to be ignoring CIEL's mappings to SNOMED as an interface terminology. The direct-to-SNOMED approach may be difficult.
    • OCL: If people want to use their own OCL in country, and not OCL Online, how can OCL exist in that ecosystem with other standardized terminology services? Do we specialize on interacting with point of care systems to meet SNOMED's gaps, or do we approach from a data integration and analytics side for reporting, value sets, etc.?
      • Need to figure out how we coexist. If SNOMED pushes national servers from their release centers, then what is OCL's role there?
    • Note: This is not a definitive direction forward for BAHMNI as a whole, this is just a pilot that India is moving forward.
    • To do: Involve Andy in initial discussions about deployment of OCL (local vs. OCL Online)
  • Quick fixes
    • (Maybe?) Create concept in a new (small?) tab or window so you don't lose your context and can make a new concept and immediately map to it
      • Okay for now, no need to fix.
    • Do Suggested Data Types and Concept Classes, supported local, similar to how we did mappings.
  • Long Term Fixes


  • OHIE23 NHDD readout
    • Kenya, Nigeria, Rwanda, Malawi, and many others talked about a need for terminology and terminology services for NHDDs.
    • 80% are using OpenMRS as a key point in their use case
    • Next step: report out a summary of what we heard, including OHIE and Andy's notes. Let's figure out how it will affect this squad.
  • Global property in OCL for concept versions
    • Old method used a global version property. But going forward where you are using collections rather than sources, there are versions of the collection itself and versions of the sources within the collection.
    • Most users of OCL module and Iniz want to know the collection version(?), but Andy would want to know the version of CIEL being used.
      • In the backend, when you expand a collection's references, you can get a list of which repository versions were used to resolve it. It's currently just an array, but it could be an OpenMRS property if there's value.
    • FHIR provenance work being done, might be relevant with regards to how we store this.
    • Bahmni (and others) what version of CIEL was used when being initially loaded?
    • For OpenMRS:
      • If OCL generates an expansion and we have the info about the version of the collection, the expansion version, and the underlying source versions, then why not tag that better in the export or the subscription module?
      • For a value set that has been expanded, and you want to publish that metadata in OCL, we have to generate it on our own. But it should be available for an OpenMRS dictionary.
      • Next step (ticket needed): Make sure this additional metadata (i.e. underlying sources) are part of the collection version export.
  • Ellen and Laure testing with OCL
    1. Adding mappings to a concept
      1. One piece of this - creating a concept and adding mappings are two separate steps. Small win opportunity here: create a concept then immediately open it?
      2. Another piece: How do we create an answer and map it in the correct direction back to its question? OCL pushes us to start with the question and map the answer, but instead you probably want to create an answer and map it back to all its questions
        1. Recommendation: Do you start by creating your answers, then creating your question and map it to your answers
      3. Another piece: The concept must exist if we want to create a mapping to it - if there's a SNOMED code that OCL doesn't have, then we want to make a mapping to it now
        1. Quick win opportunity: Able to map to a concept that hasn't been loaded into OCL using the "Add Mapping" (Quick Add) option on the Concept screen
    2. Dealing with sequential IDs across CSV Import, creating a concept in TB, and cloning a concept
    3. Reordering lists to put the most relevant options at the top
    4. Concept templates (for numeric attributes)
    5. Mandatory fields for names when editing a cloned concept?
  • New attendee! Joseph Bate - Uganda, trying to understand the meetings around the OpenMRS platform
  • Note: Next week, Bahmni is focusing on interoperability and standards. Andy can let us know about their work e.g. pilot with SNOMED API (no OCL)


  • Dictionary Management Collaboration Activity
    • Miro board with gaps, workflows, tips, requirements, etc.
    • Walk through some practical workflows and exercise them with PIH and MSF
    • Outputs:
      • Practical experiences with OCL TermBrowser and getting real concepts from OCL into OpenMRS
      • "Homework" for PIH and MSF to test out
      • Low-hanging fruit developments for OCL to meet these workflows
      • Broader process flow documentation


  • Upcoming Demo? - loading and modeling the MSF dictionary
  • MSF Features:
    • Customizing concepts in collections (i.e. not cloning)
      • Breaking this down:
        • Adding language translations (requires backend functionality)
        • Customizing identifiers (requires backend functionality)
        • Customizing mappings (available but challenging in TermBrowser)
      • We have an approach - customizing references i.e. how FHIR does it. However, FHIR restricts to display name changing only, but we're pushing past that.
      • Goal: Have a main dictionary plus a dictionary per form plus a dictionary per implementation
    • Communicating with CIEL for content review
    • Keeping the sorting on OCL once pulled into OpenMRS
  • Using OCL for Bahmni
  • Proposed: Concept Template idea


  • Malawi MoH - digital health division: Developing terminology services, considering using OCL
    • Connected to Kuunika project? Maybe, related to Luke International
    • Another country taking on OCL, need to think about scaling.
  • OCL at OHIE23 in Malawi - Come see us!
  • Concept ID management and how to create ext mappings from 'empty' sources
    • When cloning, OCL generates an ID. How is this ID generated?
  • Proposed: Concept Template idea


  • Some feature comments:
    • Sort order
    • How to put these features into Collections too
    • ...


  • Cloning Question:
    • How does this interact with CSV? Ideally, everything can be working in TermBrowser.
    • MSF does not use auto-assigned IDs currently, MSF uses CSV editing (the source of truth) and then download a new update for a concept, and only import what's new or updated
      • Updates occur when there is review and feedback - maybe once per month
    • Next step:
      • Bulk import what MSF has into a sandbox/staging environment and test out the changes using the TermBrowser
      • Try doing an update demonstration in a couple of weeks (April 5) - Invite Paul A
  • Upcoming idea: Concept Templates
    • Might be a way to help OpenMRS to quickly create new concepts without having to remember the best practices e.g. concept class, datatype, map types, etc.
  • Transitioning to OCL
    • New feature demos:
      • Mapping sorting, Cloning, Add to Collection dynamically
    • OpenMRS DM
    • How to bring PIH and MSF onto OCL TermBrowser?


  • OpenMRS/OCL Squad Update - coming mid-March


  • Sunsetting OpenMRS DM - Update
    • Announcement blog post:
    • ~180 OpenMRS concept dictionaries being managed with OCL Online! (Some are test concept dictionaries though - not sure how many are actually being used in Production)
    • Next Steps/Action Plan:
      • Dictionary Manager link to redirect to OCL TermBrowser, which displays a pop-up with links to the accouncement and Getting Started blog posts and other resources
      • DM to be removed from Jetstream
      • Suruchi/Joe working on introductory blog post
      • OCL team to update website, App menu, and other places where DM is referenced
      • OCL to enable SSO on all environments.
    • Getting Start Blog post (in progress) -
      • Quick input requested
      • Likely will need a more detailed How To guide in the future, which would build upon topics introduced in this Getting Started guide
  • Sorting Update
    • Requirements
      • Default sort order in OCL: Anything with a sort order, then sort alphabetically by source and code.
      • Assume that you are saving the sort order of all of them, even if one one concept gets moved. Sort everything or nothing.
      • User needs to be able to see when a map-type list is sorted and if there is a concept that has not yet been sorted. OR sort weight need to be automatically applied when a map type is considered "custom sorted".
      • We need to figure out our approach in particular:
        • Heavy-handed sort weight application
        • TermBrowser can indicate when the sorted list is only partially sorted.
    • Notes
      • Some surveys will want to put one particular answer at the top. Is this a valid use case for Sorting? E.g. put Yes at the top, and then the order of the rest does not matter.
      • Laure: Sometimes we want Unknown at the top of the list. And sometimes we want Other at the bottom.
      • OpenMRS Sort rules documented in the OCL GitHub ticket:
    • Other issues noted:
      • Misaligned "Source column"
  • CIEL Release Update - It's released! Yay!


  • Sunsetting OpenMRS DM
    • Previous Plan (from 2022):
      • Wrap up in OCL: Quick-add mappings in Sources (incl. Preferred Sources), sort mappings, Linked Sources(?), Quick-add mappings in Collections(?)
      • Public facing retirement process:
      • Back-end/infrastructure deprecation:
    • Concerns:
      • Dictionary Manager does some things more intuitively than OCL i.e. in the OpenMRS (dictionary) mindset and not in the OCL (source/collection) mindset
      • Nudging users towards collections over sources?
      • People start cloning CIEL content and "diluting" it so that there will need to be big cleanups down the line. But cleanups are generally going to be necessary anyway.
    • Plan:
      • Make a blog post that helps OpenMRS users to Get Started with OCL. Include how to integrate in online and offline (e.g. Iniz) settings, whether to use sources or collections, etc. (Joe and Suruchi)
      • Rafal will automatically redirect DM to the TermBrowser page with resources:
      • Update OCL website pages if needed like the FAQ with YouTube resources (Joe to lead)
  • Measure/indicators and SMART guidelines
    • Is there opportunity for OCL to help make indicators more executable and linking the concepts that people use back into the indicators?
    • Potential opportunity coming up to do some PEPFAR mapping work with SMART guidelines. PEPFAR could manage actual terminology resources to help people generate indicators.
    • Want to connect OpenMRS dictionaries with PEPFAR/WHO guidelines work. Reference terminologies are not always best suited for actual implementers. OCL is straddling the line between reference terminologies vs. implementers.
    • OCL has been aiming to become the common platform to move towards better practices. It's fine for people to make source-based concept dictionaries, because they're at least starting to work in a collaborative environment. By next year, we'll be thinking about sustainability and maintenance of dictionaries. SMART Guidelines should be a part of this process too. Reference and implementable content should live in harmony in a shared space like OCL.


  • Tentative: $clone demo in OCL plus sorting update
    • Question: Should this be released to all users?
  • Dictionary Manager support - retirement plan?


  • Connect with Patrick from SwissTPH about ANC Guidelines
    • OCL mapping tooling is more of a proof of concept
    • Main CQL use cases: Want a care plan (plandefinition in FHIR) in an implementation guide (IG). In our case, it's a quesitonnaire in OpenMRS. PlanDefinition will trigger a list of questionnaire to collect required information for CDSS. Using aplicability condition to start some questionnaire.
    • Workflow:
      • When saving the Questionnaire Response, it runs against StructureMap.
      • The PlanDefinition does NOT create resources. Did not use diagnosis codes because it's a lot of work to interpret diagnostic codes.
      • Can ask CQL to make conclusions - CQL is written with the Excel file in mind
      • The evaluation happens in a valueset, so there is a valueset for every answer. The CQL just checks to see if the valueset has any of the correct answers.
      • CQL won't run on Questionnaire Response, so you have to do some translation first.
    • Challenge: CQL doesn't reference standardized codes, but instead references specific codes from the L2 dictionary. How did Patrick deal with the PlanDefinition and codes?
      • Patrick: We do have codes, but we don't really create resources.
      • EmCare uses OCL to push the conversion. There is a conversion table with the L2. Can then use these for ConceptMaps to be able to convert codes out of ANC's format/codes.
    • Use of OCL:
      • WHO comes with several mappings, but mappings not required to run the app. Changes can happen, but the codes aren't versioned well in the IG. That's where OCL will come in.
      • All WHO codes are pushed into OCL source, and then you could theoretically create value sets.
      • Once you add the mappings, we can start extracting ConceptMap directly. Could even call OCL directly to get the valueset.
      • The codes in the SwissTPH source ( come directly from the L2 data dictionary.
        • Made some code to convert L2 data dictioanry into JSONlines file for import into OCL.
        • Meaning, every row in the WHO ANC data dictionary gets its own row in the OCL import file
      • Mappings are one file per IG. WHO doesn't seem to move toward one WHO CodeSystem. Maybe because they want to push toward ICD?
    • Mapping itself - not really using it. EmCare should make sure there is a reference only once, but that would be a nightmare to maintain. Working with WHO on that to deduplicate labels to have unique codes, and then that shares on OCL and will make a value set.
    • On CQL, if you have an observation, the CQL can look at individual values or values within a valueset. You just need any of those codes in a particular valueset. That would allow for multiple codes to trigger a single CQL logic.
    • Overall, if all hypertension codes are consolidated into a value set, then you can apply that CQL more broadly. But sometimes knowing the patient's pulse or height, then you might have to go through value sets for each concept.
      • That'd make it easier since you don't have to change the CQL and "think" about which code should be used.
    • Does the OCL value set need to be loaded into an implementation? Where does the valueset come from?
      • Currently, there's a script that packages everything in a bundle so that everything can be shared offline. At the time of bundle generation, OCL could do the mappings and create a value set bundle. If your system is live online, then of course you can evaluate a valueset directly from OCL. Then the server can resolve it online.
      • ValueSet is compiled into the rule, and the CQL can run with that.
      • When you write CQL, you have to specify value sets, but code change in tooling could generate valuesets. For now, EmCare is not doing that though.
      • The CQL goes to the EMR and looks for any of the results in this valueset, and the EMR would need to know the valuesets?
        • When you write a CQL library, you write the requirements. You get a FHIR query to execute to get data if the CQL itself is not attached to a FHIR server.
        • For an EMR, you would expose your observation via FHIR, so the CQL engine can retrieve those observations from OpenMRS and then run the CQL itself on that.
        • 1) Get the likely data, then 2) run the code.
    • (Patrick demos of CQL that runs outside of the server)
      • Send payload to CQL evaluator. The CQL has ALL the data on which you would execute the functions.
      • The terminology server will resolve the value set, but the value set might not be hard coded elsewhere.
    • Patrick would be interested in using OCL for FHIR resources for terminology. Wants a tool to be in place that's WHO official instead of managing a spreadsheet.
    • EmCare tried to duplicate how WHO writes their logic for working CQL code. If you are facing ANC challenges, Patrick could collaborate with OpenMRS in the near future.
    • Jon: In order to implement a Smart Guidelines, people will need to adapt the terminology codes in some way. Someone might want to make changes to ANC guidelines and terminology resources. What types of modifications has Patrick needed to make to SMART Guidelines?
      • Patrick: Issue is that it's difficult to take a set of artifacts and localize it. Even for diseases, the check for disease might be based on prevalence. EmCare did localization for Iraq, for example. You might add your own classifications, so there are priority changes with classifications. That's why we aren't using a perfect solution right now.
        • We generate a new IG from what WHO uses, so we're adding a growing decision tree. If you can digitalize that decision tree, then you could do a lot of things easily.
        • Working on CDSS, where the format of the IG might differ. Data collection differs when done elsewhere. The data collection matters. CDSS might not be applicable for all IGs though.
  • Update: Making progress on cloning, hoping to demo next week!


  • Starting next week, We plan to have this meeting on Wednesday at 10am EST. Joe to confirm with Burke.
  • Features to bring PIH and MSF onto OCL
    • Sort weights in OCL - under design, hoping to see progress this week.
    • Cloning: This operation is being exposed in the API, and we should make sure the UI works well.
      • This should work well when you're managing your content via a source, but not as well via a collection
  • Bahmni OpenMRS Implementation: Apart from spreadsheet management, are there other issues with implementation? Specifically with Bahmni. Forms cannot tolerate different answers for a concept. Therefore, you have to create multiple copies of concepts to satisfy the requirements of forms.
    • Laure: Yes, we struggle reusing concepts in the same forms. Bahmni creates their dictionary, creating a concept with a change in the specified name for the form. Meaning, Bahmni is not using MSF dictionary. They're creating a new dictionary each time.
      • They imported CIEL library once, and they have been making individual changes. They're on a more recent update of CIEL, but unsure of how to make updates.
      • Reference ranges are being updated on CIEL, but how do we know that there has been an update? I only know how to delete and readd concepts from a collection.
    • Andy to follow up with Akhil.
  • ANC Guidelines and OpenMRS
    • Patrick from SwissTPH is working with Argusoft(?) on Emcare.
    • WHO Smart IG Tool: - Converts FHIR concepts into OCL concepts? Plus mapping conversion
    • How are we going to be interacting with the DAK? Patrick might be able to help us work through that use case. Grace to reach out and set up
    • Upcoming work for OCL: Define workflow for guideline adaptation. We want to define what it means for an implementer to adapt the guidance and be able to deploy it. OpenMRS as a leading use case for this would be really helpful.
      • Are there early ideas for how a terminology service can support that adaptation? Ideas:
        • Manual mapping support (already supported)
        • People need a way to ask questions, make translation suggestions, etc. It's bothersome to be doing this via the WHO calls, and it can also be less fun to do that via CIEL too. (This harks back to the OCL Github vision).
          • Organizations are going to face challenges of using SMART guidelines while also standardizing their Natioanl Health Data Dictionary. You'll run into the same issues where you cannot propose changes and add your translations.
        • Fuzzy matching of concepts - reconcile and review concept work right from the start. OCL can help reduce the time needed to go line by line on spreadsheet line items. It's also an opportunity to upload their current work into OCL e.g. their current indicators and concept, which OCL can try to find overlaps with other content. Then you can evaluate one-by-one what you want to do with each of these.
          • An intern made a fuzzy matching algorithm for Grace's previous work. Comparison of questions between two sources to find potential matches.
          • People are concerned about ANC reporting for government. OCL can help to manage indicator content. If we could dump that into OCL and do the mapping or connect it with CIEL
          • Andy: Have you seen USAGI? OHDSI uses it in their ETL mapping See bottom of this page:
          • Andy: One concern is whether there should be terminology involvement in this process. Should any implementer be able to do this, or should there be terminology expertise involved?
      • ANC mapping on CIEL concepts - It technically unblocks the ANC work with OpenMRS. However, it was assumed that WHO codes could be a universal mapping to concepts. It is just messier. There will be many many mappings, which can work in the form templates. But having a single mapping would be helpful.
        • That can also be a management problem.
        • There can be a number of implementation barriers to the ANC DAK approach.

2023-01-16 - Cancelled



Agenda Topics:

  • Changing the meeting day/time for 2023 - may do this via Doodle.
    • Try to make this more inviting to other users and how they can contribute to OCL and making it work better for OpenMRS community. Let's put out some feelers first, before making a Doodle poll.
  • Latest CIEL release
    • Release process issues this time: There were extra mappings that were generated, but that should be resolved now.
    • Import/release process is still pretty dependent on Burke.
    • OCL's API will allow sources to be more relaxed. Historically, you couldn't do an import without creating a source first. Now, that restriction may not be as tight now.
    • Need to create a ticket for adjusting how we do sort weights. CIEL's release process may want to take advantage of OCL's new sorting feature that is coming out.
    • Dealing with CIEL's sort weights: There may be content work for Andy to do e.g. put Yes before No on questions.
  • Update on OpenMRS feature requests - Sorting and Cloning (both in progress for development) - Sorting is ready in API (on QA), now implementing an intuitive behavior into TermBrowser, and the first step of cloning in API is underway.
    • Sort notes:
      • Drag and drop sorting may not be intuitive if you are only sorting within a certain type. We want to make it clear to users that they are only sorting within a single map-type e.g. Q-AND-A. Would need a visual cue that you can only sort within that section.
    • Questions to work through:
      • Sorting: Do you imagine yourself “unsorting” a list of answers, set members, etc. that is already sorted?
        • If you unsort a list of Associations, then the sort order will show up in some order in OCL's TermBrowser, AND there may be a different order in the OpenMRS form.
        • Laure: If someone adds an option into this Q-AND-A, will that change the order?
        • Burke: If we have sorted answers, then a new entry would default to either the beginning or the end of the Associations list. If we have sort values for some entries but not all, then there may need to be some visual cue to tell a user that the list is only partially sorted.
        • Lauren: What is the sort order assignment behavior?
          • For OpenMRS, you should only have one value of each sort number e.g. you cannot have two items that are sorted as "1".
          • No default number is assigned by OCL right now - it only matters what order the sort weight values are, not the scale i.e. 1 vs. 1000.
      • Sorting: Is there a risk of a partially sorted list? How would you like to manage that?
        • Burke: There will be cases where some answers will have sort weights, and some won't. We may just want OCL to be ready for that so that you can also see if there even is a sort order applied. Then, if you can see that the list is sorted but one concept doesn't have a sort weight, you may want a little exclamation point to say you should address something.
        • Laure: We don't want anything too heavy on the UI. A little icon should be fine to show when an Association is not sorted.
        • Lauren: Want a notification either as a symbol or infotext to see if the entire Q-AND-A answer is sorted, and whether each one has a sort value or not. That way wae can assign a new primary diagnosis and make sure we have a value.
        • Burke: OCL should also create a sort order for everything once a single concept has been sorted.
        • No one wants partially sorted lists, it seems.
        • Andy: In OpenMRS, even if you don't assign an order, then the UI will give it an order.
        • Andy may give a sort order to CIEL concepts once this is moving forward.
      • Cloning: If you try to clone a concept set but already have one of its questions in your source, should OCL do anything else with that question (e.g. clone the answers or mappings for that question)? Our understanding: "If I have created a custom concept, that means I will take full responsibility for it, including its answers and mappings."
        • Andy: The question is whether the target of the clone exists, and is it really the same concept as the original concept to be cloned.
          • We may run into a slippery slope - if we have something that seems to be the same (but may not really be the same), then we just stop. Maybe we need to be able to identify differences between the SAME-AS CIEL concept vs. the CIEL concept itself.
          • This is probably "Clone 2.0".
        • This aims to not change existing concepts in your source.
        • When building your dictionary, you should really go right to left, so that OCL will "stop" when it encounters existing concepts.
        • Laure: This behavior makes sense. But if I start cloning this way, and OCL "stops" because you already have something similar, then we may want a notification in the process e.g. a "confirm that this is the same".
          • Note: we are only considering concepts the same if they have a SAME-AS mapping between them. No other inferences are made.
        • Andy: What is the ID of the clone? Does it get the SAME-AS mapping only?
    • The sort weight attribute needs to be considered in OpenMRS processes e.g. Dictionary Manager(?) (i.e. transition Extra sort attribute to OCL's new core sort attribute) and CIEL import process



Agenda Topics:

Wrapping up the year - Jobs to be done



Agenda Topics:

2023 Roadmap Discussion

  • Retrospective of 2022 - Highlights!
  • Feedback from 2022
    • OpenMRS-specific features were established, but there were times where it was difficult to get those workflows into OCL. We have had to make things more "generic" and broadly applicable to other projects/user groups. How can we speed up the enhancements that are needed for groups like PIH or other OpenMRS-specific groups?
  • Goals for 2023, incl. OCL-specific goals and OpenMRS Community goals
    • Necessary Features for full transition to OCL:
      • Concept cloning by fixing cascade to respect SAME-AS mappings and introduce cloning workflow
      • Sorting of answers & set members
    • Additional features we hope to see in 2023:
      • Improvements in search & workflow based on real-world use of OCL to manage dictionary 
      • Introduce OpenMRS "dictionary type" (or equivalent mechanism) so OCL can apply additional business rules (e.g., which map types are appropriate vs. inappropriate based on concept data type)
    • Increase OpenMRS-specific dev resources (to help move forward OpenMRS-specific goals)
    • Better ownership/momentum on OpenMRS' workflow for dictionary management (i.e., shared vision of what OpenMRS needs from OCL + its OCL module to support dictionary management and person(s) to own/drive us to that vision)
      • Understanding change management - understanding the link between national- and organizational-level dictionaries.
    • Transition people fully to OCL - Get tools in a place that users can fully transition away from Dictionary Manager
      • Gap: Harder for OpenMRS community to engage with OCL development e.g. contribute code. How might we make it easier for newer users to contribute to OCL's tools (or other initiatives)?
      • Open the community to more than requirements gathering - what about development?
        • How can we engage/leverage OHRI efforts on their concept needs?
        • Can we leverage GSoC 2023?
      • PIH + MSF using OCL and subscribing to dictionaries by end of 2023
      • (Stretchy) CIEL management in OCL - would need bulk managing features. First step would be to enable management of dictionaries on a smaller scale.
    • Idea: OpenMRS Starter Sets - An easier (or at least more scalable) way to do this is to make a module to manage OCL content. E.g. "We made a new module for vaccine management that we'll make available. 
    • Engineering support (i.e. an "owner") for a basic version of the full dictionary publication and subscription workflow i.e. the interface between OCL and the Subscription Module
      • Rafal works with both OCL and OpenMRS - is it possible that he could help with that? Maybe mentor someone if not owning it himself.
    • Feedback loop - transparent process and easy outcome tracing for ideas and discussions (use case for promotion?)
      • Sharing more links - point to specific content, feature changes, etc. Make discussion and feedback much easier.
      • Retain links and discussions over the long term (even if we don't have a formal platform/process for discussion about content)
    • "Year of Action":
      • Functionality for smoothly managing content (bulk import, customization of concepts, etc.)
  • Feature request:



Agenda Topics:

2023 Roadmap Discussion

  • Retrospective of 2022 - Highlights!
    • Feature enhancements and UX enhancements
    • Broader discussions - community use cases, broader workflows for OpenMRS and OCL tools working together
    • Content accomplishments
      • PIH dictionary into OCL
      • CIEL import improved, migrated from OpenMRS 1.6 to OpenMRS 2.4, now using OpenMRS validation schema
    • Joint proposal for shelf-readiness between OpenMRS and OCL
    • CIEL dictionary updates
    • Events and networking for both communities - GDHF, Shiriki, OHIE TS Implementer Series, OHIE23, AeHIN, RECAINSA, EAC
    • Country-level work - Kenya, Ethiopia
    • Laure and MSF + PIH participation: Lots of great feedback from real-world use and testing!
      • MSF: Internal restructuring, internal workflows for managing the MSF dictionary. Went through one full workflow of dictionary management.
    • Suruchi - Community guidance and user representation to help guide OCL tool development
      • Capacity building in general
  • Feedback from 2022
    • OpenMRS-specific features were established, but there were times where it was difficult to get those workflows into OCL. We have had to make things more "generic" and broadly applicable to other projects/user groups. How can we speed up the enhancements that are needed for groups like PIH or other OpenMRS-specific groups?
  • Goals for 2023, incl. OCL-specific goals and OpenMRS Community goals
    • Necessary Features for full transition to OCL:
      • Concept cloning by fixing cascade to respect SAME-AS mappings and introduce cloning workflow
      • Sorting of answers & set members
    • Additional features we hope to see in 2023:
      • Improvements in search & workflow based on real-world use of OCL to manage dictionary 
      • Introduce OpenMRS "dictionary type" (or equivalent mechanism) so OCL can apply additional business rules (e.g., which map types are appropriate vs. inappropriate based on concept data type)
    • Increase OpenMRS-specific dev resources (to help move forward OpenMRS-specific goals)
    • Better ownership/momentum on OpenMRS' workflow for dictionary management (i.e., shared vision of what OpenMRS needs from OCL + its OCL module to support dictionary management and person(s) to own/drive us to that vision)
      • Understanding change management - understanding the link between national- and organizational-level dictionaries.
    • Transition people fully to OCL - Get tools in a place that users can fully transition away from Dictionary Manager
      • Gap: Harder for OpenMRS community to engage with OCL development e.g. contribute code. How might we make it easier for newer users to contribute to OCL's tools (or other initiatives)?
      • Open the community to more than requirements gathering - what about development?
        • How can we engage/leverage OHRI efforts on their concept needs?
        • Can we leverage GSoC 2023?
      • PIH + MSF using OCL and subscribing to dictionaries by end of 2023
      • (Stretchy) CIEL management in OCL - would need bulk managing features. First step would be to enable management of dictionaries on a smaller scale.
    • Idea: OpenMRS Starter Sets - An easier (or at least more scalable) way to do this is to make a module to manage OCL content. E.g. "We made a new module for vaccine management that we'll make available. 
    • Engineering support (i.e. an "owner") for a basic version of the full dictionary publication and subscription workflow i.e. the interface between OCL and the Subscription Module
      • Rafal works with both OCL and OpenMRS - is it possible that he could help with that? Maybe mentor someone if not owning it himself.
    • Feedback loop - transparent process and easy outcome tracing for ideas and discussions (use case for promotion?)
      • Sharing more links - point to specific content, feature changes, etc. Make discussion and feedback much easier.
      • Retain links and discussions over the long term (even if we don't have a formal platform/process for discussion about content)
    • "Year of Action":
      • Functionality for smoothly managing content (bulk import, customization of concepts, etc.)
  • Feature request:
    • "deep linking"



Agenda Topics:

  • MSF Discussion continued - Demonstration of static vs. dynamic collection management in OCL
  • Meeting time: 9am works but might be a smaller squad - might need to change time starting in January



Agenda Topics:

  • OpenMRS Cascade
    • Feedback
  • MSF-OCL use case cont.
    • How is MSF's use case for managing concepts via spreadsheets? Is that approach helpful?
      • Spreadsheet management is hard.
      • It's hard to know which concepts are "in progress" vs. "ready to go". For other software, there is a workflow for the "reviser" and the "reviewer". Maybe OCL needs tags for "in progress"?
      • Concept Version History section - how is this supposed to work?
      • Question 1: Maintaining a spreadsheet as the "gold spreadsheet"
      • Question 2: What is needed in the TermBrowser to get away from the spreadsheet maintenance workflow that MSF uses?
        • This is a use case that shapes OCL's upcoming Smart Dictionaries initative. Let's compile requirements and get that together.
    • CSV vs. JSON for MSF?
      • JSON has 100% of OCL's functionality, unlike CSV. We could potentially improve the CSV import process.
      • Specific CSV issues:
        • CSV Import is not getting sort_weight attribute on the mapping
    • Should we use Staging to test content and push content to production when ready/validated?
      • If it makes sense. We are working on the process of content synchronization between Staging and Production environments.
      • There are limitations in cleaning concepts and mappings inside of a source right now.



Agenda Topics:

  • MSF-OCL use case
    • Use case: Find standards like CIEL, centralize the content in MSFOCP Source, and import into OpenMRS
      • Starts by asking stakeholders about what their data collection needs are, using an excel template.
      • All concepts are created and updated in MSFOCP source in OCL, using a CSV template
    • Pain points in OCL:
      • Search capabilities in TermBrowser like searching by synonym, by attributes, etc.
        • Should also show my preferred sources first
      • Cannot use the bulk importer to retire mappings via CSV, import collections via CSV, use sort_order, or use other attributes like "precise/ranges"
      • CSV file management between Laure and Lauren - OCL needs to have ways to collaborate across users e.g. suggest concepts
      • Adding references: failed reference additions are at the bottom, so it's a long scroll down to see those
      • (See recording at 10:42am EDT) Answer concept itself was important, but the question concept itself was not added
      • Cannot customize list of answers for a Q/A mapping
      • Cannot use the synonym as the display name for question concepts
      • Cannot customize the display name
      • Cannot use concepts multiple times within a single form
      • Not clear how to make a reference dynamic. What are the implications of using a dynamic reference?
      • No changelog betwen versions
      • Sometimes cannot remove a concept from a collection
    • Suggestions for MSF:



Agenda Topics:

  • Quick-add Mappings
    • Feedback has mostly been recorded in Maze survey:
    • Feedback:
      • Suggestion: Change name of mapping types e.g. instead of "Add Q-AND-A mapping", you can call it "Add Answer mapping"
        • Approach: Include an informal name for map types. We will want a technical approach to do this though.
        • This may be separate from the Quick-Add mappings work? May fit into another design initiative
      • Suggestion: Use different workflows for internal vs. external mappings (similar to how Dictionary Manager does it)
        • Concern: If I want to add an answer, I am looking for an answer that I already know of. When I search for the term, the results list is very important. I cannot easily screw this up or select something that is of bad quality. But I should still be able to quickly select it.
          • Specifically, I should not pick the wrong term from the wrong source. I should be able to see the concept's id, synonyms, class/datatype.
        • Approach: For this early version, you can just see the id and concept name and the concept class. In the future, a concept preview may be needed (which could be a part of the design system)? Or there is a better search feature when adding a quick-adding a concept?
      • Suggestion: Move the Source and Name columns to the left, so we should not highlight the Code
      • Maze itself: Wasn't sure when it was recording or what it was doing. I wanted to record the audio, not the screen. I didn't see an indication that it's doing anything. Also, a preview of how much time it would take would be good and what to generally be on the lookout for (Burke thought it would be deeper and more time consuming, for example). Generally, clarity on the number of pages, being able to go back and forth on which screen I'm at. Also, I sometimes just want to see the mockups again.
      • Question: If I manage content via CSV import files, how will that interact with the Quick-Add mappings that we do via TermBrowser? I currently cannot download the source as a CSV that I could manage and reimport later. If I do work in the UI, then I miss the changes in the CSV.
    • Primary goal for this work - reduce the number of steps required to add a mapping to a concept.
      • Secondary needs: Seeing enough of the concept details to know if you're selecting the right one.
  • OCL planning for Q4 2022:
    • Suggestion: Concept Suggestion for new users when they have a list of new concepts
    • Suggestion: Change management in the collection - Over time, when sources change e.g. a new version of CIEL comes out, then the user should be alerted that things have changed and be given a way to address them
      • The issue is a moving target - when I create a collection, it needs to be attached to a versioned code to a source. It should never automatically change. The process of updating mappings or fetching a new CIEL version needs to be a very controlled process. People need to stay aware of exactly what changes happen. This can be a part of the collection management workflow as a whole.



Agenda Topics:

  • CIEL release process update
    • Burke has been working out bugs on OCL Staging. Main issue: Bug when you import mappings that considered retired mappings as duplicates. This has been fixed and deployed to Production, so CIEL just needs a little more testing and loading.
    • Monthly release cycle: Try to keep up with this
    • Updates are mainly to keep up with KenyaEMR concepts, Oncology concepts e.g. chemotherapy reagents, and ANC where needed
  • ANC Intro, led by Suruchi
    • Pre-eclampsia concepts for the ANC guidelines. Need this data element from WHO that needs to be added with the concepts in CIEL. This means that you won't need to edit the concepts. It would be helpful for the ANC users to have mappings to CIEL concepts.
    • (Suruchi shares spreadsheet for WHO ANC) Some Google sheet issues led to asynchronization, but Andy will send the actual Excel file with his changes.
    • Context:
      • ANC DAK project from WHO. Implement ANC into OpenMRS using the available FHIR resources, including concept IDs assigned by the ANC DAK.
      • Suruchi has started putting concepts into OCL. But when putting WHO ids into OCL and making a dictionary with CIEL...
      • Challenge: some resources in ANC guidelines go outside of SAME-AS mappings. The only way that an app developer could create an interoperable tool would be to use custom CIEL-like concepts. Instead, maybe the concepts get into CIEL directly.
      • Sometimes the CIEL mappings were incorrect in the guidelines.
      • Previous modules - CIEL would add mappings as IDs e.g. MDRTB(?). However, this is not a sustainable model going forward. Could add them as custom mappings in the collection. OCL can be the linker between WHO IDs and CIEL IDs in the future.
      • But some concepts are still missing from CIEL itself.
    • WHO ANC has algorithms as FHIR resources. Example: When the "repeat blood pressure is over distolic of 90", there is a challenge with cardinality e.g. the number of times something can/should be recorded in EHR. In CIEL, there should be a single blood pressure concept, which can be recorded twice or more.
      • Decision support should then know that it was not the first reading.
      • Overall, it's more than terminology here. There's also a challenge with the guidelines and FHIR artifacts themselves.
    • (Burke shows a program with prettier indents from the ANC DAK) Link:
      • No one records repeat bp. They just remeasure the same bp.
      • Query language itself is really hard to read. Clem McDonald had a query langauge that was prettier to read.
    • As we move from raw terminology on CIEL side, and down from metadata on the MER/DATIM side. In the middle, there is an intersection. Creating another set of reusable artifacts e.g. to count blood pressures could be very useful.
    • In CIEL, there is an array that captures all vitals. That might help app developers as a reusable concept set. Does it make sense to have a "construct" to link together a list of vitals e.g. group bp by date with a sequence. Maybe the last two values in a 24 hours period?
      • You need to have a date time assigned to a result. FHIR's Observation resource has this, so OpenMRS does not really need that construct. There is an Obs time (including the recorded time and the actual observation time.
    • Indicators (see spreadsheet linked below)
      • How to go from observations to indicators? What are the data elements used to assume the indicator's questions?
      • Example: AND.IND.2 - there is not a single concept for iron supplements. Multiple drugs have iron and folate (IFA).
    • Next steps:
      • It might be better to have CIEL concepts with direct mappings to WHO ANC ids.
      • Approach going forward: OCL collection can consist of the appropraite CIEL concepts and the custom mappings from ANC ids to CIEL
    • End goals:



Agenda Topics:

  • Queuing up future discussions:
    • MSF on Oct 24? Kris to confirm with Laure
    • Suruchi - ANC on Oct. 17?
  • OpenMRS Collections being built:
    • PIH does something similar to this using convenience sets. Are collections the better way to manage/organize?
    • PIH is managing within the PIH realm, but in the future, you might want to gather a set of CIEL concepts for COVID or concepts from AMPATH or whatever.
    • For some of OpenMRS collections, this is driving parts of OpenMRS 3. Seeing these beyond one implementation will be useful.
    • To discuss: when to use a set vs. when to use a collection. What will make sense for PIH and for others?
      • Example: Oncology in PIH EMR. Users would love to use OpenMRS to see what it would look like. But the concepts needed for this would all be in a collection. It would be easier to share a collection for this type of things.
      • Use case: Functionally, concepts in OpenMRS are a set of concepts that are referred to. "These all belong in this category". But collections can take CIEL conditions very easily. Collections can be more automated, and convenience sets can be more manual. Collections can also be version contolled more easily than convenience sets(?). A standard collection of concepts (e.g. allergens) could also be owned by multiple stakeholders but used/adapted by the implementers.
      • Convenience sets mayb be better when you are managing your own stuff, but collections might be better for collaborating/sharing with others.
    • This might be a good demonstration video in the future - best practices with collections. This could be a Squad exercise. Start with a comparison of OCL features between convenience sets vs. collections.
  • FYI: CIEL release coming up but delayed by some technical issues. CIEL is now working in a new environment that should enhance CIEL releases.
  • "Remove Reference" prompt in OCL
    • When removing a single concept, you are given the choice to either remove the reference or to exclude the individual concept from your collection.
    • The prompt itself should show exactly what would be removed, and it should be clear why the concept is there e.g. what reference(s) resulted in this concept.
      • Might want to include the "plain English" version of the reference in this prompt?
    • "References" section when selecting a concept is not really helpful. It should be clear that this section is showing "why this concept is in my collection".
    • Also want to understand who might have added a concept in there if there is a collaborative collection.



Agenda Topics:

  • ANC DAK Discussion
    • Andy has mapping throughout the DAK where he would either map to a concept or create a new concept.
    • Suruchi's Process: Go through ANC DAKs, then create concepts in URL and map them to their respective CIEL concepts. For example, a CIEL hypertension concept would have a respective ANC DAK concept.
    • Do we need the mappings between CIEL and ANC DAK?
      • Andy: I didn't attach an element ID to CIEL since they are not standard. Those element IDs might just be for internal use.
      • Suruchi: The IDs come from WHO spreadsheet, and the IDs describe the concept that link back to the CIEL component.
    • Next step: Understand the use case better so that we can later get into the OCL-oriented approach.
  • OCL Feature Development Priorities - Confirm the plan with the Squad
    • Note about sort weight: You can add sort weights of 2.5 if you want to go between concept 2 and 3. It's incredibly painful though.
    • Bug: Numeric extra attribute not appearing - OCL needs to respect numeric data in Extra attributes like sort_weight. When viewing and when editing in the TermBrowser, making sure that the numeric attribute stays numeric is important.
    • Potential workaround - make some quick tooling for sorting answers since it's currently painful. "Put in your concept ID, then sort your concepts, then the API will fix it up for you".
    • Prioritizing things differently. Adding answers, changing locales, etc. are highest priority.
    • Potential ask: When you enter a sort order, validate that there is not another concept with the same sort order. This should be part of the long term approach.
    • In the future, we will probably want to make it so you can give different sort orders in a collection versus a source. This will be part of the larger concept/mapping customization work.
      • This will require that the workflow is worked out so that you know whether you are changing the concept's sort weight itself or just in a single collection. Probably will want to visually show which things are customized and what you are editing when doing things in a collection.
    • MSF Priorities not yet discussed on call:
      • Retire mapping via CSV - In progress (ticket: 1354)
      • Bulk-add Concepts to a collection via ID (already in priority list, currently slated sometime after round 2)



Agenda Topics:

  • (If updated) - Quick-add mapping form validation (if Paul is available)
  • Defining the plan for deprecating the OpenMRS Dictionary Manager
    • Current state: Quick-add mockups being revised to be simpler and to be quickly developed in Source context - will include approach for Preferred Sources
    • Plan:
      • Wrap up in OCL: Quick-add mappings in Sources (incl. Preferred Sources), sort mappings, Linked Sources(?), Quick-add mappings in Collections(?)
      • Public facing retirement process:
      • Back-end/infrastructure deprecation:
    • Discussion Questions:
      • Should we allow concept cloning in OCL in the near future? If so, how do we do it to encourage best practices?
      • Concept Modification: Is it a necessary feature for organizations to move to OCL?
      • Cascade approach: OCL only goes down a level, whereas DM goes down multiple levels. Also, what mappings do and don't get cascaded?


Priority list to move from DM to OCL

  • Quick add mappings
  • Sort mappings
  • OpenMRS-style Cascade
Bulk import a list of IDs from a single source
  • CSV bulk import format for references in a collection

Cloning is also  a needed feature

Good to have both concept modification and cloning-MSF



Agenda Topics:

  • Squad Call Structure
  • Collection Version Management between OCL and OpenMRS
  • Ethiopia
  • CIEL Admin Server Update
  • Andy announcement


  • Squad Call Structure:
    • We sometimes go down rabbit holes. Let's use more timeboxing for topics.
    • May sometimes need technical support if Slack is not adequate. Also want a space for what we want to see in OCL.
    • Weekly update from OCL team for OpenMRS users - these updates will motivate OpenMRS users and also align the community (e.g. basic editing in OCL)
  • Collection Version Management between OCL and OpenMRS (stop by :50)
    • Once updates are published in cloud, then you just subscribe. You don't want to manage concepts/mappings locally in OpenMRS.
    • You want to be able to push an update down to servers when you publish changes to a dictionary. How might we push these out to implementations?
    • PIH might not want to use this "pushing" strategy.
      • People currently use Iniz, which hands off to OCL module. If you use CSV, then Iniz will create it, but if you export a collection, then you hand it off to the OCL module.
      • The community currently uses Iniz to run upfront on the server. Whether you have 5 or 5000 servers, you configure and then use Iniz to deploy the same build on all servers.
      • We should be guiding what we think OCL module should do.
    • Bahmni Darius model: A central collection with local adaptations by country might get updated, and we will need to identify what is the latest published version of a collection and compare my own state to that to see differences.
      • Content will get pushed out, and generally people will need to make the updates in the OpenMRS server.
    • Separate the process of file export and the process of notification of updates.
    • Someone who is managing OpenMRS instances and is managing content in OCL, then there is probably a golden OpenMRS server that gets the OCL content, and then the content is tested and verified. After that, you might want to push that version of the dictionary to Production (and consequently the other OpenMRS servers).
    • What should it look like to verify the changes to a dictionary and make sure it works well in OpenMRS?
      • Data might come into OpenMRS via testing as an administrator, or you might push it out to many servers.
      • PIH process in use:
        • Unstable and stable releases. Unstable = bleeding edge, which can be tested locally or on test servers. Once released, then it's stable. Stable releases are infrequent. This aligns with OCL's "released" flag.
          • A version can be unflagged, released (intended for public use), and retired. These are not mutually exclusive so it can remain released even if retired. These are currently for information only. FHIR has additional states that are useful.
          • Can you automate things based on these flags? Some people may use these differently.
          • Unstable could be whatever is there in OCL (presumably as long as the version was saved in OCL).
      • If you flag something as "released", and the subscription module brings it down, then the timing of release in important. You might want to update OpenMRS resources to be ready for that.
    • Levels of change management - at the implementation itself vs. up higher.
      • Andy: As a publisher, I want to know which versions are in use, or knowing how many organizations are subscribed to a dictionary.
      • Knowing about local customizations on the server is important for pushing out content.
    • We need to figure out where we are verifying that the OCL content is kosher for OpenMRS. Example: a colleague added a Spanish translations where the fully specified name conflicted with another concept and ended up breaking what was there.
      • Ideally, OCL should be taking care of the majority of this up front, but a validation check on the OpenMRS side might also be good. This is especially important if you are bringing in changes from another dictionary.
    • Laure: Currently trying to figure out the workflow within MSF. Should be able to provide more feedback soon
  • Ethiopia OHRI work: CIEL release upcoming for content gaps.
    • Choices were made that don't follow best practices. There is historical precedent though. We may want to think about the migration process as people move to shared content. We don't just want direct mapping, but also modeling. Some conversion e.g. Yes/No answers to codified answers.
      • Example: If asking how long a person was on a therapy, with coded answers for x months, discontinued, etc., you split that up to two questions.
      • We want to help people migrate better or else there can be a lot of non-standard and non-interoperable later.
    • Constraint: they are migrating from an existing system and want to represent that data in OpenMRS.
    • Overall, want to help people address modeling problems when moving dictionaries and systems.
    • Upcoming CIEL release:
      • Focuses on oncology, so lots of new content being added in for cancer therapeutics.
  • As of Oct. 1, Andy will step away from CMO role and instead be more of a strategic advisor. This includes more time with OpenMRS, OCL, OHDSI, and other open source tools. Yay!
  • CIEL Admin update: getting Andy onto a more recent OpenMRS version while waiting for OCL.
    • Burke has been working on a server in the OpenMRS infrastructure. Some issues with deployment, but Ian and Rafal have sorted it out.
    • There is now a CIEL Admin server, which is OpenMRS Refapp 2.4. This is the same server as Demo and other things. Soon this week, there should be a server.
  • Note: there is OpenMRS content being moved into OHDSI. It's an old version though. This might be a common issue with old versions.



Agenda Topics:

  • Feedback: New OCL source/collection forms


  • Form feedback links:
    • - go to your profile or organization to create a new source and a new collection
    • Planning to deploy to Production within a couple of weeks - have all feedback in by Thursday Sep. 15th! Submit via Slack or email.
  • Quick Add mappings
    • BM: If trying to add an answer to a concept, is this how you'd do it? We want to make it intuitive, and we want to see what answers are already there for a concept.
    • JP: We can kind of see the greyed out Associations section, but we want to be able to see the context of what answers we already have.
    • BM: When adding an answer, we want to search for the answer first. It will help to see the Associations section when trying to add one.
    • Will help to see the Associations section as we are adding new associations
    • Might want to enable searching of concepts via the Concept field, which will start doing quick searching using your preferred sources? That could autofill the source field.
    • EB: Sorting is still an issue - sort-weight is something that will be needed for PIH in Production. Sort weight is a part of the mapping itself. You are only setting the weight of that individual mapping, not to the questions/answers individually.
      • So far, no real technical approach is clear. Maybe FHIR has a thought on this? Is it an extension? Or should this stay an Extra attribute?
      • JP: FHIR does not understand sort weight, but there is a way for servers to respect sort weight if it's available.
      • This is something that needs to be designed - should it be a core attribute vs. an extra attribute?
      • BM: When mapping to ICD, sort weight does not matter. It only matters with Q-AND-A mappings in OpenMRS or with set members.
      • Ellen can provide examples. This is essential with how PIH rolls out a code.
      • Next step: Plan out a UX for sorting associations in OCL
    • When creating a new concept that will now be an association:
      • You don't always know that answer when you're wanting to create it. Ideally, if you need to create a concept, you want a check that there is an existing concept that is very similar. This is a workflow issue.
      • If you're creating, then ideally the concept ID will get autoassigned.
      • Potentially better approach: Have a "Create concept" form that has been improved to allow mapping addition. This new form would be more streamlined and could more easily be incorporated into a "Quick Add → Create concept" menu
      • EB: This new Quick Add mapping is a good shortcut. Maybe we can quickly add the concept here, and then go back and edit it later when it's more complex?
      • JP: If we have a newly streamlined Add Concept form, then that is helpful. But it would need to be usable within a collection. Maybe the opportunity it to tackle everything at once? A single edit/add concept form with new capabilities e.g. working from within a collection or trying to create an association at the same time. Some additional components in the Add Concept form could allow you to work on all of this at the same time.
      • BM: For the first pass, do this workflow - when looking at Associations like Answers, be able to click a Plus sign, search for an answer, select it, then add that association. (I.e. the existing concept → Associations workflow)
        • Utilizing Preferred sources is nice to have
        • Creating concepts is nice to have (but seems to complicate the mockups) - Could instead provide a quick link to a new concept creation form in the future
    • New idea for consideration in the future:
      • OCL Projects: Provides a way for a templated project type e.g. an OpenMRS dictionary. This would augment forms, provide validation, etc. to help facilitate improved UIs based on the specific project.



Agenda Topics:


  • Sunny working to edit concepts, adding answers



Agenda Topics:

  • Follow-up from last week: OCL Search Optimization
  • Later topics:
    • Quick-add mappings (need mockups first)


  • Search optimization - Want to get some actionable items for this
    • Example: Laure is building a concept dictionary. She clicks "I want to add an answer", types CIEL as the source to search the answer - should the search be looking both in CIEL source or also in other CIEL-adjacent sources e.g. PIH dictionary. The question is about where to start pulling in concepts from.
      • First, would like to search my own source, and CIEL. MSF only uses CIEL concepts and MSF concepts. If others create a nice concept, then it would be recreated to be an MSF concept.
      • Might have created a concept a long time ago, and would like those concepts to show in the search results.
    • Two approaches: OCL-driven results, plus the "walled garden"
      • Walled Garden: How do we determine that someone else's content is or is not relevant to the search results?
    • Concept customization: If something has clearly been customized, then should it be excluded from a search? If a customization is non-breaking, then you might want to see it.
    • PIH: The current approach is to recreate concepts in the PIH dictionary using CIEL, but in the future PIH will be using CIEL concepts. CIEL might be the truth, and we ideally don't want breaking changes. But if someone added a coded answer "Cough" insead of an N/A answer that is meant to be a shortcut, then that suits what the form needs
      • Would want to see CIEL first, but it's also possible that PIH has a concept that comes before CIEL. Would want to see both when searching. Would start searching by name and then see possible matches from MSF and CIEL.
    • Default in source field: Looking for the preferred source or collection.
    • Technical implementation:
      • "Preferred source/collection" = the default option for a collection when adding association.
      • "Walled garden" = users, orgs, etc. that inform each other about an ordered list of preferred sources. This will be an important use case for national/regional dictionaries that might have different preferences.
      • These need to interact to create a smart list of sources to pull from and to help OCL be smarter about which concepts are returned when searching.
    • Note: When you are working within a dictionary/collection, you want to first start searching for concepts that also exist in that collection you are working in. Followed by other results within the organization, followed by CIEL. Then maybe followed by other sources (i.e. broaden search)?
      • It would also help to make sure you are not duplicating an existing concept.
    • When searching for a specific concept, what immediate context is needed? Mappings? Collection Membership?
      • Ellen: Always need to see the class - test, procedure, diagnosis, plus datatype. That determines what that concept is about.
      • Laure: Mappings and descriptions too. Note: I prework things before the collection. I will already know what answer I want to add as an answer before I start editing in OCL. I will probably know the ID (plus class/datatype) beforehand and will want to check it.
      • Burke: Seeing a preview of the concept would help
  • Action items:
    • Continue search results discussion specifically for Q&A and Set creation (29 Aug 2022) - follow up with consolidated requirements documentation?
    • (Unrelated) Paul - Send out mockups for Quick Add Mappings on Slack once completed (asynchronous task before/after labor day)
    • Joe - Reminder of a list of feedback needed on OpenMRS Slack
  • Announcements:
    • Joe will be out for next week's meeting (i.e. 8/29)
    • 05 September is Labor Day weekend, many US participants will be missing.

2022-08-15 (Revitalizing this page!)


Agenda Topics:

  • Joe: Volunteers needed for quick review of slides for upcoming collection video for OCL
  • Paul: OCL mockup discussion
  • Suruchi: Discuss present Roadmap


  • Drug table in CIEL: Is OCL designed to host this drug table? Not at the moment. If Andy switches over to OCL, however, what would happen to this drug table? TBD.
  • Paul to send out mockups on #ocl channel on Slack later - please give feedback!
  • Joe to send out slides for basics of OCL collections - will ask for feedback and volunteers.
  • Roadmap:
    • UI Adjustment for Edit Concept: Want to make the concept interactions in the Actions menu more apparent and clear. May also want to move options for source/collection management?
    • CIEL Content Validation:
      • This is related to getting CIEL into a newer version of OpenMRS, or working to get this content into OCL. If someone starts to grab concepts that break the OpenMRS validation rules, then they'll end up breaking their dictionaries. Need to get the CIEL content valid.
      • Could move to a later OpenMRS version, but that might not be as easy as it should. Need to make sure the CIEL release process can also work in version 1.11 (currently in 1.6).
    • PIH Dictionary Import: Effectively done - would be assisted by UI changes but could start being done in OCL
  • Other topics:
    • Bulk concept searching: Two different ways of thinking - quick add by ID using comma separated list, or mass-searching of a list of concepts using CIEL or another source. Focusing more on the latter, which is like a mapping tool.
      • What happens if candidates are not good? Then we've facilitated bad mapping. We will want to iterate on how this would work.
      • Should we start talking through a single concept? I.e. a workflow.
        • Often starting with a simple list of concepts, not including a description but might include a similar ICD/LOINC code.
        • Want to choose a search source(s) (perhaps global search, one or more of CIEL, ICD, LOINC, maybe other use cases/orgs? etc.)
      • This is limited by OCL's search capabilities by field, or the combination of field searching. We might want to start improving the technical limitations first. We only do full text searching at the moment. That will not be enough.
        • Also might want the walled garden implemented - preferred sources, collections, and other organizations. When related to searches, this constrains the search to "stuff that they should be seeing".
        • This can be separated from the technical capability of searching a specific set of groups, organizations, etc. This may allow the user to restrict to certain sources, but also to prioritize which sources show up when searching.
      • ORHI might be a good use case for concepts that are not currently mapped. Majority of concepts are not created properly e.g. Misc instead of Question, no mappings, etc.
      • HAPPY PATH: Start with a single source like CIEL and get into the ideas of searching concepts and making sure users are seeing the appropriate information to make an informed decision.







Recap from last week: 

  • 2 and 4 are most often used by CIEL 
  • If cloning were available, how would it make these workflows easier?
  • Use case 4 is most common, until we have case 2 
  • Mappings usually SAME-AS
  • Use case 4: Have to map them later on
  • Current plan allows us to limit breaking vs non-breaking changes
  • Maybe experimenting with combo of SAME-AS and CLONED-FROM would help us unblock while experimenting with operations we want to support
  • If cloned from" becomes new mapping - dictates datatype - datatype would break
  • we might benefit from a sort of "Same-as +" mapping, that not only says these concepts are the same but also "subscribes" you to updates when the mapped code changes.

Final testing question before we deploy expansions to OCL production:

Issue discovered that references in new release are not getting a version (see how refs on left have no version; refs on right in production do have a version). Would non-versioned reference be a problem? When does the DM interact with references - does this break anything? They'll be ready to deploy in a few days; would like a green light from DM folks to know they won't be breaking things


tl;dr: Auto-generation of UUID is main need for PIH, plus ability to add mapping in OCL

Best practice is not to re-create the concept 

If it's easier to do cloning in the meantime, that may make sense. (Since cloning already exists, it's just done manually.)

Create concept using OMRS: 

Looked at 2 examples: (1) Changing Answers on a concept user owns, vs (2) changing answers on a concept user originally copied directly from CIEL (defacto a CIEL-owned concept)

(1): Adding answers to PIH concept Thoughts

(2): Adding answers to CIEL concept Wakefulness

This CIEL concept was already used in PIH Production. Wanted to add answer option "Unconscious". 

At time of import: Any manually-created CIEL concepts were auto-assigned to CIEL as the owner, but side effect was that Ellen can no longer edit those. 

So, what would Ellen do? She can actually just use HFE to specify the answers; answer doesn't have to be specified 

 (3) Existing answer is NOT wanted

Should get notification to consider applying update based on a Same-As Mapping

  • Can she add Mappings?

If you update a Source with a mapping, would the Collections with that concept also be updated?

  • Right now: Sometimes yes, sometimes no. This is a workflow that needs to be clear
  • Eg. Updating a concept in the Source Head → should update the concept in the Collection Head
  • What if a pull request/update from head could be done from the lowest level, no? From a collection? Then If you have a view with all impacted collections, you could cherry pick/bulk select the ones you want to update for those updated concepts - if the concept wasn’t customized = active link with source head (like CIEL)


  • OCL Bulk Import feature - Discussion
    • Antony Ojwang working on getting their OpenMRS dictionary into OCL with the hope of managing within OCL
    • We talked about building on process PIH is currently working through
  • Finalization on technical requirement on Customization (OCL Mappings)
  • OCL Copy Content feature - Discussion


  • Demonstration of OCL platform changes, including creating a collection through the Term Browser 


  • Plan for testing content due to OCL updates? (Expansion testing on staging)


  • Dictionary Manager tests passing against OCL Dev stack
  • Roadmap Discussion
  • UI and Workflow comparison OCL Term Browser and Dictionary Manager


  • OCL team to present Roadmap on Feb 3


  • User Persona and User Interview Presentation
  • Sprint Planning and Board review together - we’ll cover all the issues and prioritize them for the next sprint.Log in - OpenMRS Issues


  1. Welcome Chanuka Wijayakoon, former GSOC student interested in contributing to frontend
  2. Peter Ricketts & team from 
  3. sprint board review with developers focusing the work progress. I have started a new sprint but as there was just few UI change in this sprint I don't think it's necessary to release now. But, let's make release after having some major feature like cloning.
  4. OCL team update/demo:  I, Hadijah and Ian had joined the call yesterday. They have made change in reference and expansion but it won't affect the API now. Also they have collection of collection feature which is somehow like a bulk import with the help of reference URL in OCL term browser. Fields we don't have. 
  5. Implications of new Collection of Collections: can ask ocl to evaluate your references. e.g. you've built a dictionary, uses old v of CIEL. Now you have control over how CIEL is evaluating it. Approval and review process for diff check of newer versions. 
  6. Any query you can run in OCL can now be used as a reference. "Add all concepts from CIEL that match this criteria" (e.g. malaria; or "give me everything from this dictionary like all of CIEL" or "add everything from my linked source into my dictionary." or "Combine these dictionaries" or "I want to get the next version of CIEL". OCL is releasing into production end of the year. TODO: Mini design session next week for what our priorities and value-add for users are. 


  • "Can I use the DM as a Terminology Service? Setting up and HIE in HAPI FHIR for SHR, but data is coming with concept ids, would like to transform concept IDs into text. Want to call something externally to do a lookup. What can we use for that?" → API call "here's this ID" and get back info about that concept Sending Obs via FHIR to SHR. Then bunch of data in SHR you can't make sense of. So want to get own concepts into OCL - bulk import process
    • SQL dump then script to turn SQL dump into JSON file. 
  • Manual concept creation process rough. Creating concepts locally or import from CIEL. Hoping to make better. 
  • End result goal is Iniz.
  • TODO: Follow up with Stephen

Interest in UgandaEMR

Peter Ricketts from Open Solutions for Health (OS4H)

  • All health facilities connecte to a national data centre via a national fiber network. So a national medical record because reliable connectivity to most health centres. 
  • Team already created a dictionary using the Dictionary Mgr and subscribed to it in an OpenMRS instance
  • some questions
  • Had been unable to get OpenMRS providers to set up on Reg Desk function 24/7. Tried to implement without that, so getting  tons of duplicate. Most people come overnight because they can get free healthcare, bypass front desk. Meanwhile, in small practices, increasing demand for systems. 
  • Know they need a Terminology Service to support HIE stuff. This is how they heard about OCL. Tasked intern over the summer with figuring out OCL and writing user manual. 
  • Want to be able to manage multiple instances of OMRS dictionaries and have ONE source of truth, so that when setting up interop services, already have standardized dictionary that would allow for easier implementation and connection. Then, ONE shared health record for patients - hub and spoke architecture. (Currently working with govt to create legislation on what info should be shared). Idea is that once data is shared through SHR, you have access based on credentials (e.g. based on active license). 
  • Natiuonal Electronic Immunization Registry in Govt being implemented in DHIS2 (Can use CSV import to get codes into it)
  • Can start dictionaries from scratch
  • Were trying to do as much as possible from CIEL; trying to code ECHO report had to switch from CIEL to LOINC. (Interface vs Reference terminology)
  • They'd love to have translated version of CIEL that they manage, so they can change the short names, but then have own custom version of CIEL. (But need to do Cardiologist role out by end of month.)
  • Have OS4H master dictionary, they pull stuff out of that
  • Search by Short Name (e.g. search for LVESD here
  • How to reuse?
  • Need video: How to import using spreadsheet
  • Connect Petter with Andy
  • e.g. how do we go from an echo form to making a form and mapping ti to correct concepts

  1. OHIE terminology session:
  2. Point staging to 

I will go through the recording after I am back and I will cover persona in next call.


  • Update on MSF tagged issues
  • Discuss issues that need backend support
  • Update on QA automation work & how others can see the results clearly in the dashboard
  • Tagging Feature



  • @Ian Bacher - update or demo on Cloning progress (OCLOMRS-1007)
    • Two new issues discovered:
      1. We need a workflow to convert at concept from a reference to another source into a clone, in which case any references to it (as an answer or set member) within the dictionary would need to be updated to point to the concept in the dictionary's source.
      2. We need to evaluate the extent to which we need to worry about references to a concept when cloning (e.g., if we clone a new CIEL concept, do we need to scan the dictionary for references to that concept and update them? Burke thinks not, since any answer or set member references to the concept implies the concept must already be in the dictionary – even if just a reference to CIEL – so the workflow above would apply)
  • @Ken Omondi - update or demo on OCL Module bug fix progress
  • @Hadijah - update on QA automation work & how others can see the results in the dashboard
  • Michael - CSV upload working for synonyms?
    • If name type is left empty, then synonym works
    • From decision last week, we need a ticket to refactor Dictionary Manager so it stops implying that "SYNONYM" is a name type. ( Unable to locate Jira server for this macro. It may be due to Application Link configuration. )
  • Tagging Feature
  • Unified OCL and Dictionary Manager Experience



Synonym discussion

  • Synonym: Label not being applied at import → causes errors. No value being stored in backend for Synonym. For now: MSF can remove name value "Synonym" in CSV for import. OCL change: Need to agree on business rules. 
    • Currently: assumes default is Synonym; tech debt big to address. All names are synonyms unless otherwise specified. 
    • Interim fix proposal: Make synonym grey in DM UI so user doesn't think of it as the same kind of name type
  • Joe or John: OCL Backend update on CSV upload issues
  • General update on MSF bugs in Dictionary Manager


Agenda :

  • Sprint Board review together - we’ll cover the key themes we’re focusing on right now, and devs will give updates on their ongoing work Log in - OpenMRS Issues
  • Discuss: MSF blockers and updates
  • Grace demo issues
  • Discuss: Priorities for next sprint


Attendees: Burke, Suruchi, Grace, Juliet, Amoko, Andy, Ellen, Hadijah, Irene, Jonathan P, Mwariri, Wamathaga

Agenda :

  • Sprint Board review together - we’ll cover the key themes we’re focusing on right now, and devs will give updates on their ongoing work Log in - OpenMRS Issues
  • Documentation Update
  • Discuss: Implementer’s Priorities
    • PIH working toward getting working dictionary in OCL
    • OHRI facing bugs
    • KenyaEMR (per Andy) working through content
      • Will need to be able to clone & customize until full customization is supported by OCL and Dictionary Manager
  • Grace demo issues
  • What’s next for customization? (Name customization) 
  • Onboarding steps - 


Agenda :

  • Sprint Board review together - we’ll cover the key themes we’re focusing on right now, and devs will give updates on their ongoing work Log in - OpenMRS Issues
  • July Release - Dictionary Manager 1.4.0 released 
  • Q/A Dashboard QA Test Processes at OpenMRS - Google Slides
  • OHRI Team issues
    • Cannot map to some sources unless logged in as a different user

    • Custom concepts that are coded but the answers are not displayed

    • Some existing custom concepts are not listed on search but can be viewed with a link

    • On importing to OpenMRS some answers are being dropped

  • MSF Team issues
  • Grace demo issues
  • What’s next for customization? (Name customization) - Burke to push for API to be ready for next sprint. For now prioritizing cloning capability. 
  • Re. "Why does the Dictionary Manager product need to be a separate product from the OCL TermBrowser GUI?" What is the data model preventing us from merging with the OCL TermBrowser product?


Attendees: Juliet, Hadijah, Ndacyayi, Suruchi, Amoko, Grace, Mwariri, Jon, Burke

  • Board Review
    • Have been working on unit testing over past sprint
    • Will be ready for sprint planning soon
  • Implementer Updates
    • UCSF has been setting up a dictionary using Dictionary Manager for Care and Treatment
  • PIH's approach to defining codes
    • At one point, add PIH mappings to all concepts to represent PIH canonical code.
    • Lately have not been adding PIH mappings to CIEL concepts (concepts with existing CIEL mapping)
    • Ellen will update PIH dictionary to make sure every concept has a PIH SAME-AS mapping which will define the concept's official "gold" concept code (ID)
      • "Internal ID from a golden dictionary", or "external mappings vs internal"
        • Burke: Just like we treat Q-AND-A mappings as answers and CONCEPT-SET mappings as answers, we could treat a SAME-AS mapping to the current source as a special mapping that represents the official ID (code) – i.e., don't show this mapping as a "mapping" in UI, ensure it matches the concept's ID, and create the mapping if it doesn't exist. Within OCL (which is always the "gold" version of a dictionary), this mapping would always match the concept's ID.
      • This should be "select a code" rather than concept:
  • PIH update
    • Uploaded PIH dictionary. Nearly completely successful. 
  • Proposed use case for customizing a concept: Adding an answer to a CIEL (example here):
    • Add CIEL Received HIV test result (164848) to dictionary. This should cascade to include question and its three answers:
      • Yes (1065)
      • No (1066)
      • Unknown (1067)
    • Add CIEL Procedure not performed (160414) as an answer.
    • Add reference to CIEL 160414 to collection
      • Add Q-AND-A mapping from CIEL 164848 to CIEL 160414 to dictionary’s source
      • Add reference to mapping to collection
    • Dictionary should now contain CIEL’s “Received HIV test result” question with 4 answers. While all concepts (question & answers) are CIEL concepts, it should be clear “Procedure not performed” was added (since mapping belongs to user).


Attendees: Grace, Ian, Michael, Joe, Suruchi, Jon


Attendees: Hadijah, Grace P, Grace B, Suruchi, Ian, Andy, Juliet, Ivan, Jonathan Payne, Daud, Irene, Daniel

Customization mvp Unblocked! Fix for will be on OCL QA server today - so any mapping edits will be reflected in user's concept/collection

Reviewed Roadmap and sprint plan

Reviewed UAT testing Updates & designs for subscription update workflow/diff check in OCL Module: 

Big increase in demand for CIEL. But, not many people in the organizations explicitly owning the concepts/spreadsheets; Andy noticing big time gaps in questions → responses. Eventually once organizations ramp up their concept manager role(s) then a tool to compare the spreadsheet with CIEL would be essential.

Andy pointed out that Search Terms is missing / needed in the UI and the Subscription Module



  • OCLOMRS-967 (Adding concepts from a collection) currently blocked
    • Either
      1. Copy references from collection to user's collection
      2. Workaround: copy reference to original source to user's collection
  • Suruchi walking through diff check design
  • Dictionary import updates
    • PIH import - Burke working on script to sort out 
  • Customization
    • Currently, editing looks only at sources
  • Need an API method to cascade concepts EXCEPT ones with specific map type
    • When adding a new concept to a collection with cascading, OCL platform will skip concepts that are already in the collection.
    • We want to also exclude concepts for which there exists a SAME-AS mapping; however, OCL platform doesn't inherently know the meaning of any specific mapping type, so we will need to include it in a new API feature – e.g., cascade=sourcemappings&excludeIfMappingExists=SAME-AS – which would not only skip concepts that already exist in the collection but also skip any concepts for which a SAME-AS mapping to the concept already exists in the collection. In other words, a collection is considered to already contain the concept if it either has (1) a reference to the concept or (2) a reference to a SAME-AS mapping to the concept.


Attendees: Suruchi, Juliet, Joe, Michaël, Hadijah, Burke, Patrick, Ellen, Andy

Regrets: Ian, Grace, Jon

  • Discussed customization work
    • Agreed concept editor should run against collection URL – i.e., when editing a customized concept, you are not editing the concept within any specific source; rather,  you are editing a concept derived from multiple sources.
      • How will the OCL API help us?
        • We will be able to request a concept from the collection and receive the "calculated" result (concept with customizations applied)
        • Will we be able to post changes directly to the collection concept the same way we would for a concept in a source (will the OCL API figure out what needs to be done)? Or will the client need to work directly with references in the collection? We assume the latter.
        • TODO: Need to walk through proposed API modifications with OCL team to document API conversation of customizing a concept. Could use concrete example: many patients are living in local schools, so you want to add school (CIEL 159928) as an answer to House type (CIEL 163577):
          • Add CIEL 163577 "House type" to your dictionary (cascades concepts & mappings into your collection)
          • Add CIEL 159928 "school" as an answer (add mapping to your source, add reference to new mapping into collection)
    • In the near term, we could add a feature to clone the CIEL concept
      • Concepts in collection from another source would have option to "clone locally"
      • Cloning would copy concept and mappings into our source and add a "SAME-AS" mapping to the original source concept
      • Ideally, we would enumerate "breaking changes" and alert the user if the concept has any SAME-AS mapping to another source.


Attendees: Suruchi, Grace P, Burke, Andy, Jonathan Payne, Daniel, Ellen, Grace, Hadijah, Joe Amlung, Juliet, Steven Wanyee

  • OCL onboarding updates: 
    • PIH: Burke working on upload; some concepts went missing so OCL team hunting for reason
    • KenyaEMR: 1/4 of the way through. Now reviewing ++ custom concepts that have been created. 
    • OHRI: Next step unclear - there was a need to review a spreadsheet of custom concepts? Grace to follow up. 
  • Sprint Board review together - we’ll cover the key themes we’re focusing on right now, and devs will give updates on their ongoing work
  • Demo of early Concept Customization work by Suruchi. 
  • Automated testing E2E update
  • Name: the OpenMRS Dictionary Manager?
    • Kenya about to pass eHealth Act that uses the term "Health Data Dictionary"


Attendees: Suruchi, Andy, Grace, Burke, Jon, Ellen, Hadijah, Juliet, Michael, Steven Wanyee, Ian

  • June Sprint Planning done. 
  • Formal decision about renaming OCL for OpenMRS
    • The "OpenMRS Concept Manager"? Would this be clear enough that this is specifically designed for OpenMRS? 
    • Steven noticing MoH folks using "Health Data Dictionary" wording. → "Dictionary Manager"?
  • Sprint Board review together - we’ll cover the key themes we’re focusing on right now, and devs will give updates on their ongoing work
  • Trusted Content Flag - Discussion
  • Talk through Concept Customization plan with OCL team
    • Adding Answers and Mappings is work in-scope this sprint
    • OCL team is working on Collection of Collections this sprint - they will demo to squad in a few weeks. May trigger some new ways of thinking about Original Customization idea.
      • Then updates are based on "Same-As" mappings.
  • Content Migration Updates
    • PIH: Uploading to OCL Staging this week! 
    • KEMR: Content review in progress w/ Andy
    • BandaGo is also potentially switching over
    • UCSF/OHRI: 


Attendees: Andy, Burke, Hadijah, Ian, Grace, Jonathan, Juliet, Michael, Suruchi

  • Sprint Board review together - we’ll cover the key themes we’re focusing on right now, and devs will give updates on their ongoing work
    • Identified there are 2 Reconciliation Workflows user needs to go through:
      • 1) Putting together a Collection of Collections: An "order basket" or "bundle" of dictionaries I want. There may be overlap of concepts that need to be reconciled (which one do you want?)
      • 2) Reconciling
    • Roadmap discussion:
      • Multi-subscription workflow: Loading multiple dictionaries but there's overlap between concepts, who are slightly different
  • KEMR migration process: 
    • Work ongoing in Google Sheet with Andy/Antony
    • Import process heavily relies on mappings to ciel
    • Want to be able to map CIEL concepts to KEMR concepts, where semantically similar but wording used quite different
    • Concept ids: would be nice to i.d. when CIEL ID of 1011; Organization ID 1011 → be able to recognize this. Decide if identical or if 
  • Discuss on Trusted Content Flags
  • Roadmap discussion and priorities for next sprint
  • Talk through Concept Customization plan with OCL team
    • Backend timelines:
      • End of June - Collection of Collections
      • End of July - Concept Customization


Update KenyaEMR priorities & CIEL priorities

Dev Updates/Demos/Dev Experience/Questions

Update from Andy & Antony re KEMR concept work 

Update on PIH content migration to OCL production

Review the workflow for implementers to start using OCL

Roadmap discussion

Talk through Concept Customization plan with OCL team

If time: Getting Started Workflow for Orgs with Existing concepts



Regrets: Ellen

Sprint Board review together - we’ll cover the key themes we’re focusing on right now, and devs will give updates on their ongoing work 1

Concept Customization update and next steps - Technical progress ongoing. OCL team working on this, meeting regularly over last week. Breaking down how FHIR & interrelated work fits into this. Today: finished the last category of OCL changes (e.g., FHIR-related work, dynamic collections, versioning changes), now defining requirements for each one in this document

Trajectory update & Takeaways from Shiriki webinar yesterday

  • Countries are interested in using OCL for OpenMRS (5 of 6 specifically mention this is in their plan!)
  • Will need migration path to working in OCL
  • Each country has a central body managing concepts, which means how centralized concept changes are propagated will be an important feature.
  • Maturity Model targeting policy level (Ministries of Health), but idea could be useful for OpenMRS community.

Urgent needs related to the CDC demo on Tuesday next week

PIH OCL Migration

  • Ellen & Mark (PIH) working with Burke & Jon working on Migrating to OCL: PIH Use Case which involves (1) exporting concept tables from OpenMRS using mysqldump, (2) converting the SQL to an OCL import using ocl_omrs tooling, (3) uploading the import file into OCL.


Attendees: Ian, Burke, Jonathan, Suruchi, Grace P, Andy, Ellen, Hadijah, Juliet, Naman, Ojwang, Daniel

Regrets: Irene

  • Sprint Board review together - cover the key themes we’re focusing on right now, and devs give updates on their ongoing work

Information Sharing with Antony Ojwang from KenyaEMR

KenyaEMR using CIEL until 2017, then added a few local concepts. Since then not able to keep up with new releases of CIEL. They support implementing partners who also do their own forms and need answer for "what concept do I use" right away so creating temporary custom concepts helped them respond to customer demand quickly.  But using local concepts proved to be very difficult - because originally created as placeholder concepts; not going through best practices of terminology creation. E.g. created but without mappings. But didn't end up with CIEL alternatives to them so kept creating new ones, couldn't get them into CIEL due to resource constraints at CIEL (100 concepts okay to work through with Andy esp. in Office Hours, but 500+ there needs to be some funded support for CIEL team time.). Means they haven't benefited from new CIEL concepts, and even if they want to use a concept that is already in CIEL, they can't take advantage of that b/c dictionary not in sync w/ CIEL dictionary. Have to spend time trying to create the concepts. Wondering if they can still benefit from OCL Client. Not a lot of focus on trying to cherry pick; instead, goal is to switch out their custom concepts to CIEL in a big bulk effort. 

What do you hope to gain from CIEL? 

  • Speed of updates: E.g. developing emr for covid - there were quick updates to the CIEL dictionary. They introduce a variable and the following day you could have a concept added to the dictionary.
  • Terminology Expertise: They your tech team can focus on the tech stuff, and let the terminology management be handled by experts. 
    • Terminology Team? Who would own it at the organization still a little unclear, want it to be clinical people. Build up some internal expertise so concepts are used and created properly. Might be owned by a central MoH team and then used by the implementers. 
  • Interoperability They see requirements to exchange data w/ other systems, so would be good to use dictionary that has proper mappings to other dictionaries.
  • Reduce unnecessary work on duplicated concepts: Want to be sure that when you create a concept, there's none like it already.

New Problem Identified: Want a continuous way of consuming the changes from CIEL. 

Problem Identified: Going back to clinicians: Need it to be easy to go back to clinicians and ask questions. 

Problem Identified: value of good concept management practices (beyond the tool) is not clear for distributed teams/customers. PIH: Sites say "we have 500 concepts we need, we don't want to wait for you". Ellen Suggestion: Could there be a simple explanation to bring people on board to principles of effective concept management? 

All of CIEL? Not always good to have all concepts, because difficult for Clinicians to handle, and performance. On other hand, Implementers would like to know they have all the concepts they need without worrying they've forgotten something. 

  • Next steps for Antony/KEMR team:
    • Will review new concepts with Andy. He will then guide them on next steps. 
    • Ultimate goal: existing concepts imported into OCL so it can be managed there. 
  • Office Hours
  • Using OCLOMRS

  • User Feedback and their ideas on OCL for OpenMRS client application
  • Concept Customization update and next steps
  • Discussion: Roadmap


  • Sprint Board review together -
  • All agreed on release to Production asap (smile)  
  • Unable to locate Jira server for this macro. It may be due to Application Link configuration. id'd as critical; Juliet to pick up
  • May sprint planning: Monday


  • Sprint Board review together -
    • API2-related bug fixes done
    • Iniz Validator?
    • Columns ticket
  • MSF Impact of API2: Andy & Burke following up on MSF mapping for 16 references
  • Iniz support update
  • Blocker: Concept Customization data model -Further Discussion on Next Steps
    • Use Case Document:
    • Expanding on what's technically needed by OCL/ Plan for work that needs to be done in OCL platform to enable this / what changes are needed in API itself
      • Name modifications could be tackled sooner - b/c fhir has a model for what this looks like
    • Would be useful to have PIH dictionary in OCLClient to support OHRI work
      • Todo: Grace to confirm if OHRI team would like to see this
      • Todo: Ellen & Jon following up about getting PIH dictionary for HIV, TB, into OCLOMRS. Would load into staging server first and validate. 
    • Next Steps
      • Grace & jon: Book time w/ OCL team + engineers about concept modification
      • Grace, Jon, Burke: Summarize the technical 
      • Lab sets for different countries e.g. Sierra Leone
  • Discussion: Backlog Ticket(if time allows)


  • Updates:
    • Welcome to our new fellows, Hadijah (mentor) and Juliet (fellow)!
    • Sprint Planning on Monday
    • Daily standups
    • API2 launched over weekend; all our environments now use API2
      • MSF Impact: Andy & Burke following up on MSF mapping for 16 references - answer within next few days whether something to be concerned about. Give MSF the link to v1 production. They'll follow up with MSF about this. 
      • CIEL-related bug: Name needs to be resolved, and ID should be visible (e.g., "NAME (ID)" or ID showing concept code in a separate column) – ticket OCLOMRS-976
          (example: 1421)
      • CIEL mapping appears missing ("I have 3 in OMRS by only 2 mappings here"): May want to show CIEL mapping (to itself) - reason it doesn't show here is because you're looking at the source's original concept, so the reference is inherent. 
        • (Grace file ticket) Add column for CIEL and reference to CIEL in the concept 
  • New practice - Sprint Board review together: First 10 mins - Review April sprint board. Suruchi to lead after. Highlight focus, then review peoples' work status.
  • Blocker: Concept Customization data model - what are the next steps? What do we need from the OCL team?
    • Would be introducing Fx that's not standards-based. OK for name-related changes but deviant everywhere else. 
    • Alternative: Code System Supplements

2021-03-31: Iniz & API2 switch

Attendees: Grace, Burke, Ian, Suruchi, Andy, Daniel, Ellen, Hadijah, Irene, Jonathan, Naman

  • No call next week - OMRS Community Meeting instead!
  • Important things to book
    • Sprint Retrospective & Sprint Planning meetings: TODO: Book for Tuesday next week 9am EDT
    • Standups - Daily Check-ins, Blocker checks - Ian, Suruchi, Hadijah to propose? Short daily post in #ocl-client-dev. E.g. what issue you're working on today? Any blockers? at 9am EDT. Todo: Trial over the next week (smile) Ian to set up
  • Iniz
    • Issue in OCL Module: The way it's set up, it needs a subscription or it will create an error when it tries to save concepts
    • Work-around ideas voiced by Burke
  • API2 switch: Team QA plan

2021-03-24: 1.0 Release debrief, Iniz & Sprint Update

Attendees: Suruchi, Michael, Naman, Hadijah, Juliet, Grace, Tendo, Ellen

Debrief on 1.0 Release

  • Kudos to Suruchi, Hadijah, Ian for bug fixes already. Low-impact so no rollback required.
  • Having more people involved in final qa: more eyes, we'll catch more (smile)  (1 week announcement before release - ask others to try out staging)
  • Checklist looked okay, passed - need to update based on what we learned
  • Checklist should clarify the must-haves that must be checked before each release (e.g. anything that could result in a bad change to an org's content, permissions)
    • Suruchi to go through checklist and update
    • Suruchi doing User Guide updates
  • Jira features should highlight what somethings must not do, e.g. "this feature should not allow you to edit others' organizations"

Iniz update

  • Goal: Have Iniz use OCL.  Progress with code but not working completely; Suruchi and Ian progressing. When user loads Iniz file, OCL concepts used & loaded.
  • Time target: Iniz able to understand OCL by end of the month
  • Updates on the #openmrs-initializer channel

March Sprint

  • Reviewed board


  • coming next week, blocker is CIEL content migration
  • API2 environment testing passing! (smile) 


  • Mentor & Fellow interviews, deliberating


  • Grace & Ellen confirmed that we need to add Reference Range adjustments to the requested non-breaking changes options list. TODO: Grace confirm that this could be in-scope and handled by our proposed model.
  • Will OCL be able to support changes needed/help us, starting in April? (Thinking we'd like this in our April sprint as our next major focus)
  • Is data model approved? TODO: Grace f/u with attendees via email

2021-03-18:Discussion on how to move forward with both Iniz and OCL4OMRS

Suruchi, Ian, Mike S, Mark, Grace

2021-03-16: Squad Call, v1.0 Release done!


Attendees: Burke, Naman, Hadijah, Suruchi, Grace, Andy, Ian, Daniel

  • Released to Staging yesterday → Suruchi testing Staging → Released v1.0 to Prod today together (smile) 
    • Idea: Display version # somewhere in webapp
    • Talk post with summary of Release Notes coming shortly (Suruchi) 
  • Dev demos and updates
    • Ordering Options & Sort Weight: Naman working on ability to order things (e.g. Answers) in the OCLOMRS UI  
    • Why is PIH, MSFOCP, not available in production?
      • Pending OCL data migration. CIEL will be loaded into new envi this week; if goes smoothly, they'll open that server up to the squad to make sure it's working as expected with the migrated data
      • i.e. Test Migration data before move to API2.
      • PIH one not migrating - was on staging only because was incomplete. Technically ready but no value for PIH yet.
      • The error with the MSFOCP source in current production is caused because the source is private in prod IIRC. → Fixed (smile) But still blank.
        • Confirm Public Dictionaries list is not showing Private Dictionaries
        • Ideally we alert the user when there's a workflow problem like a Public Dictionary where the Source has been marked Private 
    • CIEL not available when making a custom concept?
  • March Sprint started, review scope
  • Review unclear backlog items
  • API2 update
  • ICD communication to stakeholders
  • Update on Plan for Customization:
    • Data model discussion re. Customizing Concepts that we had with Bryn Rhodes & Andy on Friday: What were the next steps that came out of that discussion? Did Bryn give a thumbs-up overall to our data model? Can we proceed with the dev work for this or do we need to rethink it?
  • Roadmap review: 

2021-03-10 Squad Call


  • New version of CIEL coming soon. How do organizations update?
    • PIH: Ellen's workflow: Publishes on MDS server for all to be able to see. No process to update existing concepts. Useful things and problematic things - e.g. if we updated a dictionary but not our PAC system, or Lab tests. Changes to codes causes a lot of QA/action domino effect
    • MSF: Use existing version for existing content. 
  • TODO: Follow up on whether - PIH needs support/dif check
  • PIH Source currently empty in production - historical mappings blocker OCL faced
  • OHRI Updates: Monday, Wednesday presentations
    • If site has existing concepts, can import your mainline/existing content using OCL API directly. MSF has figured out how to do this. 
    • TODO: Check w/ Mekom: was apparently also working on a script to export all the concepts you have in your implementation, and transport all your concepts into an OCL CSV format.
    • "No migration scripts"  → Will this make it easier to do upgrades? Don’t have to map the concepts? (Dan
  • Technical Updates
    • QA2 is down → (was restored later by Rafal)
  • TODO:  Plan for call next week (PST/EST → PDT/EDT)

2021-03-08 Follow up on ceasing support for CIEL Legacy Mappings 

Attendees: Jon, Andy, Ian, Suruchi, Grace


This is not a recurring change that will happen; exceptionally rare

Due to moving to a production ready environment that's ready for scale. Includes making CIEL as clean as possible. 

Next steps for MSF & OCL

  • OCL will create a Dif and will handle the legacy mappings for them. 
  • They'll create an audit report for MSF that will show them what changed (if anything). 
  • Should know this week what the impact would be. 
  • If any changes: No production impact. If they wanted to set up another server, it's possible the ICD10 maps for a certain concept would not match what they had in a prior version. 



Attendees: Ian, Jonathan, Suruchi, Andy, Daniel, Ellen, Hadijah, Irene, Juliet, Michael, Naman, Settimba, Tendo, Grace P


  • Release of staging to production is blocked by orgs bug
  • We'll re-make staging again after the fix gets in (Ian following up on fix)
  • Suruchi to do the testing in staging after QA has been pushed

API2 change-over

  • Likely change over in 1.5 weeks. Could change over sooner
  • Finding # of concepts: Suruchi working on this (OCLOMRS-923) to use new API
  • Bulk import error: CORS error - had been pointing to the wrong server (because of AWS server switch)

Clarified: We are not planning to drop the Subscription Module! It's a strategic priority to continue to support this. 

Regarding the load of CIEL into OCL v2.0:

  • Decided not to migrate over old CIEL data from 1.0, but instead load a new version into 2.0.
    • E.g. latest version of CIEL, like v2021-01-29.
    • Why? Dirty - very old concepts. Contained mistakes, broken links. User would still see retired concepts but without history (would be current version of CIEL). 30 versions published since 2016. 
      • Only affects mappings. No impact to CIEL concepts available.
      • Mappings are going to disappear. Because there's no "retired" flag for maps, only delete when cleaning up. 
      • What if someone was 
      • Subscription Module: If you were subscribed to older version of CIEL, it will look through OCL for any changes to that version - and it won't be able to find that version. 
        • → If they're subscribed to a prior version of CIEL, and they wanted to use the Subscription Module, they'd have to upgrade the version (i.e. __) 
          • OCL Could produce a report of what's happened/changed/mapping rows that have disappeared. Could include references that couldn't be migrated because the resource is missing.
          • Andy & OCL Team would also create mappings so that there would still be an appropriate concept mapped. 
            • Needs to be clear: What the impact is on existing implementations. e.g. Implementers would need 6-12mo notice on major change to workflow.
            • How to test: Need a copy of Bangladesh dictionary in QA; point that to newest version of CIEL; check nothing breaks
    • Impact?
      • Impact on MSF Bangladesh dictionary? 
        • The concepts will still be in the latest version of CIEL. May be flagged as Retired.
      • There won't be SNOMED NP any more. But in OMRS, there's no way to say which relationship is preferred. May need to build out the OMRS concept representation more. Should we improve the OMRS Concept representation? Yes! Question is how to support legacy.
        • (e.g. ability to indicate preferred Mapping - sometimes really matters which is the primary code and which is the secondary code.)
        • Why?
        • E.g. OpenMRS handling retired mappings
        • TODO: Task: Upgrade OMRS Concept tables: e.g. Add retired field, retired mapping, to OMRS Concept datatable - need design call w/ Burke & Andy to i.d. other things that should be done.
      • ICD10 codes dropped?
  • Need to ensure the sources for mappings are correct. There are several problems with the way it is done now.
    • Only SNOMED NP?
  • Any time to redo or retest the CIEL import script? Andy putting together a document which outlines what he thinks the translations should be from CIEL 1.6.6 to OCL.
    • Concern this impacts the subscription module

Copy Dictionary Feature


  • Follow up call - booked for Monday, 5pm UTC
  • Using MSF Bangladesh dictionary as real-world test case
  • Need a test environment with the new version of CIEL



Attendees: Andy, Ian, Daniel, Ellen, Irene, Juliet, Joseph, Michael, Naman, Suruchi, Tendo, Grace

FYI: Save the Date: Quarterly Virtual Community Meeting: 17th Mar to 18th Mar 2021 Lightning talks Squad showcase(each squad will have 5 mins). Implementer showcase( each implementer will have 5 mins). Strategy forum. 

  • API2 testing work: Update
    • 3 main issues: Unable to Edit (Fixed now), total # of concepts not showing up, bulk concept import not possible in new API
    • TODO: Andy Follow up with Burke and Jon to clarify data migration strategy
  • How to tell if CIEL is up to date? 
    • Confirmed: Head is always the latest version on OCL b/c Andy doesn't make his changes on OCL. I.e. we're not searching the true CIEL Head (people shouldn't be able to add things that aren't yet published)
  • Update: Copy Dictionary work
    • Addressing ability for user to totally copy a dictionary so they don't have to start from scratch
    • Want to be able to rename the dictionary
    • Suruchi and Hadijah pair programming
    • Preference is to copy the latest version rather than head (avoid enabling 
  • Release Manager: Suruchi
    • Works with others to decide when release is ready, pushes through release pipeline, communicates the release and what was updated
    • To complete QA in staging; hoping to release this week
    • Release Summary: Organization tab moved below Profile Tab Organization: View page, List, Create, and edit with field validation, delete Page reload on Create and edit Organization detail page with Organization details, Members , Sources and Dictionary List or User’s Organization in User profile Page Concept Names are grouped by language and sorted alphabetically Concept title in header without formatting
    • ?includeRetired
  • Retired Concepts
    • Unable to locate Jira server for this macro. It may be due to Application Link configuration.  : Hide retired concepts (put at bottom of filters)
      • Problem: Backend returning "true" for "include retired" even when the request is false
      • There are use cases where users need to be able to see retired concepts
      • TODO: Change ticket to "Include retired" and "Include added concepts". Put at bottom. Default is these are excluded 
    • Code for Added concepts:  Unable to locate Jira server for this macro. It may be due to Application Link configuration.   - How to handle isn't clear; 
      • ?addToDictionary=/users/admin/collections/tst1/          
      • perhaps similar challenge to /concepts/?page=1&limit=10 - e.g. 2 requests: 1 to get all the concepts that exist in that dictionary, and all the concepts in all dictionary, and remove all the concepts that are referenced in our dictionary.

        • Impact on performance: OCL API very slow to return whole thing
        • Could be opportunity to improve search efficiency
        • Naman and Ian to follow up
  • Unable to locate Jira server for this macro. It may be due to Application Link configuration.  Ian to review
    • Ensure it's pulling the specific version of the concept we're on

Other topics if time:

  • GSOC Projects?
    • Could we help Andy/CIEL with some work, such as scrips to fix All-Caps issues?
  • Clarify plan to include ICD-10+, SNOMED in our Sources?



Attendees: Andy, Burke, Daniel, Ellen, Grace, Ian, Irene, Juliet, Laure, Michael, Suruchi, Tendo

  • Iniz vs Subscription Module conversation on Wednesday
  • OCL API2 update coming in next 2 weeks
    • Suruchi & Grace hosting QA Session together on Thursday, 2pm UTC at
    • Goal: Test both API2 and the new features ready for release
    • Plan to test API2:
      • Go through QA document
      • Try to break it (tongue) 
    • Plan to switch over to API2:
      • Pointing to the right API: API1 will have support for a while, but we'll need to change url to match the new host location; we'll change over once API2 is live
      • Data Migration: TODO: Need to set up time to review how data in v1 → v2; implications of v1 changes not being synced to v2
      • No material impact to worry about for CIEL
  • Customization Update
    • Data model discussion with OCL team on Monday; wrapping up and breaking down next steps on Monday next week
  • Summary of Export: OCL API for Exporting only supports as low as Sources, still working on dictionaries & concepts-level info. We tried fetching whole dictionaries via different API call and returned so much JSON we couldn't even get the file to open. Fields Iniz CSV requires either have multiple different API calls or none at all. 
    • The only APIs we can access for now: 
    • Main need is to re-use work:
      • Copy a dictionary to build on top of that work in a new dictionary
      • Create a recommended source - any collection could become a searchable source
    • TODO: Check Zip file import option from Subscription Module
    • TODO: Burke to check w/ Jon on timeline for supporting head export; get his thoughts on copying a collection


Attendees: Burke, Andy, Daniel, Ellen, Grace Nakiguli, Ian, Juliet, Michael, Suruchi, Tendo, Grace Potma, Hadijah


  • Updates: Open to all. Export functionality planning updates.
    • Clarify plan to unblock customization needs with FHIR terminology - Burke share knowledge (smile)
      • Suruchi joining the Tuesday OCL Dev calls with the OCL team to get to know them and hear how FHIR is used.  
        • Customization: Take references to CIEL concepts –> make non breaking changes, have those applied and continue to work with it as if it's the CIEL term. 
        • OCL wants to represent this customization workflow with FHIR. But, FHIR not totally designed for terminology management and curation. So question is how to model
          •  Key Value pairs would be natural spot to put this additional information
          • Not adding extra details to a concept, but could be an extension (additional properties) to a reference. Jon seems to have idea of how this could be carried out.
          • Need to be able to address presence or absence of mappings in addition to properties added to, or removed from, a concept or mapping.
          • Shifted from FHIR first to "How do we represent in OCL"
          • TODO: Call w/ Jon, Burke, Suruchi, Ian, Grace, and possibly a technical team member from OCL to kick off the collaborative FHIR modeling work to unblock customization
            • Task is to understand how Jon imagines this will be applied in OCL already, build on that
            • Seems like we'll need to use a FHIR Extension
              • But, FHIR is a transport standard not a management tool. Therefore, it is mostly likely to transfer a flattened, customized concept and not carry the differences as structured elements.
              • CIEL concerned that CIEL references to modified concepts not get confused with the original. 
              • Perhaps propagate a link to the custom OCL concept (flattened with changes) but retain a provenance link to the original CIEL concept with a modified flag (and that the only think added to FHIR is the provenance link with the modified flag)
            • Read up on: 
    • Export Fx update & unblock requirements:  
  • Plan for Subscription Module - are we introducing too much complexity with Iniz?
    • By using Iniz to fulfill offline-related gaps, aren't we duplicating what the users need to manage concepts? Does add complexity.  
    • Internet at PIH sites: Either non-existent or spotty. 
    • Michael: Can we create a serialized version of the API call from Subscription and store it locally and have the subscription module read it from there instead of online? Why is that different from Iniz.
    • Burke: Iniz vs Subscription model: not solving same problem. Iniz: Initial deployment. Subscription: 
    • Grace TODO: Use case call w/ Michael, Ellen, Dimitri
  • OHRI Project Requirements: 
    • OHRI = OMRS HIV Reference Instance. PEPFAR funded project. Going to bring more attention to concept management requirements.
    • TODO: Burke to coordinate bringing OHRI representatives to next squad call to share what they need
  • TODO: Completing January release: Join Grace tomorrow, Feb 11 at 2pm UTC:
    • We'll review QA tasks together
  • Divvy-up our immediate QA plan
    • For Release: Need to share work for manual QA of current OCLOMRS Staging environment
    • For the API2 upgrade: Need to share work for manual QA of API2 qa environment 
  • Look at Roadmap. Confirm next sprint priorities. Missing: Diff Checks. 

Reference to concepts or to mappings - example below shows adding the changed content 'foo: bar'.

    "references": [
            "expression": "/orgs/CIEL/sources/CIEL/concepts/165647/5e7b9791bc59190001937cf5/",
            "reference_type": "concepts",
			"extras": {
				"foo": "bar"
			"names": [
            "expression": "/orgs/CIEL/sources/CIEL/mappings/583c695a65baaa00076d2968/1/",
            "reference_type": "mappings"




Attendees: Suruchi, Burke, Ian, Jonathan Payne, Andy, Daniel, Ellen, Hadijah, Irene, Juliet, Joseph, Laure, Michael, Naman, Tendo


Attendees: Burke, Jonathan Payne, Andy, Daniel, Ellen, Hadijah, Ian, Irene N, Juliet, Joseph K, Michael, Naman, Suruchi, Tendo, Grace

  • OCL Team Demo: OCL Web2
    • dif view - how does this compare to what you're imagining for before vs after customization? Before vs after a concept update?
    • Shared user stories: - Non-breaking changes for localization purposes + where to store those customizations; - Import/export for dictionaries/collections; - Comparisons/version management; - Filters and UI in general.
    • Have representative join public OCL call - dev calls on Tuesday 8am EST; Architecture calls Friday 8am EST - share priority user stories at the moment
    • Checklist of what's in scope for OCL vs what things need to be owned by OpenMRS
  • OCL API v2 - Use API2 for next production release? How "imminent" is the switch-over for OCL? 
    • OCL Team tentatively aiming for ~ end of Feb
    • Most calls are backwards compatible


Attendees: Grace, Suruchi, Burke, Michael, Andy, Ellen, Ian, Juliet, Tendo

  • End User Feedback on Export/Import workflow (@suruchi to lead)
  • Update on real-ish use case for OCL client: MFE Demo Distribution, experience thus far. (Need customization for sure. VIRAL LOAD vs Viral Load in UI display, also need to adjust the ranges → getting into "source of truth" issues.)
    • Test ranges vary by lab facility, by gender, age, ethnicity; different ranges depending on units - more complex than we should probably be trying to perfectly handle in dictionary. But OMRS doesn't have a place to store these values right now. Could persist values from the lab as part of the observation - but it's not being stored/handled as part of the OMRS model. 
      • Ellen recommends getting this information from the Lab Information System, not OMRS, so that it's in one place and don't have to maintain in both 
    • Should we be filing issues in OCL team's GitHub Issue Tracker rather than on #ocl? 
  • Update on plan to connect with Open Concept Lab team this friday: Demo
    • We in squad agree that joining dev forces would be ideal

2021-01-13: Customization Wireframes Walkthrough & Feedback

Attendees: Burke, Burke, Andy, Daniel, Ellen, Hadijah, Ian, Laure, Michael, Suruchi (Welcome Naman!)

  • OCL Team updates: API2 progress ongoing. QA environment is up with API2; staging environment this week. Burke has been working with Sonny to test out the client amidst the infra changes, and to make sure there aren't any API changes that will prevent client from running. Specific qa2 client testing not needed just yet. Surface level, big blocker checks ongoing.
  • CIEL: Content released for vaccination; OCL team will likely need to do another release at end of January.
    • Andy to start regular "office hour" for anyone in community who wants help w/ terminology
  • Client
    • Organization Management: Work update & demo by Hadijah; clarify questions that have arisen.
      • Stay consistent with "Company" vs "Organization" terminology used by OCL. Since optional, can mark optional here.
      • Rename "Collections" to be "Dictionaries" in the Organizations details page. Ideally Sources and Dictionary options would be links so I could click them and go there. 
    • Automated Frontend Tests: Update (Suruchi)
      • Login cypress test working 
      • Next tests in progress is Concepts tests and Create or 
    • Customization Workflow: Designs review (based on part 1 of the user stories/requirements document); any high-level updates from Burke on FHIR modelling
    • Sort Order requirements for Answers and Sets

2021-01-06: Reviewing January Sprint progress & plan, and confirming Customization User Stories 


Customization User Stories/Requirements document:
Attendees: Andy, Burke, Grace, Hadijah, Michael, Ivan, Suruchi, Tendo 

  • Hear about how the January Sprint is going (goal is a release at end of January, to release Org Management features and recent bug fixes)
    • Sprint Board: 
    • Hadijah working on view details workflow and UI, and edit organization this week.
    • Juliet working on organizing names alphabetically
    • Suruchi to work on making members editable
    • No content updates to Bangladesh since sept
      • Did have to go through deploying a new version right before launch and that worked well
      • Content updates required when:
        • Changing symptoms/treatments (e.g. with COVID)
        • New features or treatment programs
  • Learn about the Cypress test review work @suruchi did over the holiday break 
  • Confirm documentation to send to OCL team about Concept Customization, and discuss how to move forward with wireframes
    • Public Concepts Updates:
      • PIH, MSF Currently not following updates at all other than conversations directly w/ CIEL team. Sometimes a fix is needed really quickly - updating a name, adding a mapping; to push out new content immediately into the field - you'd do this to your own dictionary immediately. (So being able to manually make the updates / changes yourself. Sometimes need to change later an as-is CIEL concept, after having already pulled it in to your dictionary.)
      • Being able to add or auto-add new translations, new mappings, could be of value.
      • Changes used to be uncommon. Lots of changes related to COVID right now. ICD-11 move is on horizon: adding new ICD-11 maps. 
  • Briefly review the recent clean-up work done in our Jira; having another backlog cleaning session this week on Thursday at 5:30pm EAT

Links shared:

2019 Meeting Notes