Dear community,
Over the past weeks, several discussions with our software development team have made me more aware of just how strongly clinician- and modeller-centric the openEHR ecosystem is. The openEHR website explicitly states that IT developers are not involved in content development, and when I look back at conference talks and community presentations, most are understandably focused on modelling, clinical use cases and other high-level concepts rather than the engineering side of implementing openEHR-based applications.
This is clearly a strength for clinical acceptance and for the quality of the models themselves. However, I’m increasingly wondering whether the same focus might make things harder for engineers who need to build production systems on top of these models.
A few concrete issues our team has run into:
-
A template may look clean and elegant in Archetype Designer, but the resulting compositions easily become multi-thousand-line JSON objects that are difficult to construct programmatically in a type-safe and maintainable way. Many small differences between CDR implementations of Better and EHRbase do not make the job easier.
-
Web templates and FLAT compositions do help, but FLAT feels like it lives at the edge of the specifications. For example, the contribution endpoint doesn’t appear to support FLAT at all. This creates uncertainty for us: is it safe to rely on FLAT long-term if it’s not uniformly defined across endpoints and implementations?
-
Our tech stack is TypeScript-based. As far as we can tell, many openEHR tools and SDKs that simplify development are Java-centric, leaving us without a clear path toward a well-supported developer experience.
This raises a question for the community: How are teams who are further along in building production-grade openEHR systems handling these challenges?
Are others running into the same kinds of issues, or is there something our engineers are missing in their approach? Would there be interest in opportunities for exchange specifically on a software-engineering level, not just modelling? Our engineers would be very happy if people with more experience in these areas were willing to share their wisdom.
I’d really appreciate hearing how others have navigated this space.