Dear community,
I was asked to review a design document for a new OpenMRS module that aims to integrate the WHO ICD-11 Embedded Coding Tool (ECT) into the diagnosis workflow (targeting O3).
The proposed design suggests storing the selected diagnoses in a new custom table outside of the standard OpenMRS data model. While I understand the reasons behind this choice, I’m not entirely sure this is the best direction, as it seems to move away from using concepts.
From my current understanding and research, OpenMRS relies heavily on the Concept Dictionary for coded clinical data. Many core features — such as reporting, cohorts, indicators, dashboards, data quality rules, and interoperability — depend on diagnoses and observations being linked to concepts.
I’m wondering if there might be a better middle ground. One approach I’ve been considering is:
- Creating concepts on demand only for the stem codes (to avoid having to import the full set of ~55k ICD-11 codes).
- Storing the additional rich data coming from the ECT (search criteria, full post-coordinated expression, Foundation URI, etc.) inside an Obs Group.
This would allow the diagnosis to remain connected to a concept while still capturing all the detailed information from the ICD-11 tool.
I would really appreciate your thoughts on the following:
- From your experience, is storing diagnoses in a custom table (instead of using concepts) generally seen as misaligned with how OpenMRS is designed?
- Does on-demand concept creation for stem codes sound like a reasonable approach?
- Has anyone worked on ICD-11 integration before and could share what worked well (or what challenges they faced)?
Thank you very much in advance for any guidance or feedback.
Best regards,