I've recently been introduced to OpenEHR and decided to take a look at what underpins it and how myself as a developer should use it. The following is what I have discovered.
What is it?
OpenEHR stands for 'Open Electronic Health Record'. It is an open specification that helps promote interoperability and guide developers with storing, managing, retrieving and exchanging health related data. The goal is to achieve a uniform means of storing health data for various health organisations to more easily share data, grow systems organically and avoid vendor lock-in.
Key components
Reference Model
The reference model is used to provide a high-level abstract view of the concepts and relationships involved with EHRs. It is effectively the structure or blueprint of our EHR.
Here are a few examples of how the reference model can be used:
Clinical data representation: The reference model can be used to represent clinical data in a standardised way, making it easier to exchange and use this data across different EHR systems. For example, a blood pressure measurement could be represented as an instance of the openEHR composition class, which contains sub-classes for things like observations, medications, and procedures.
Workflow management: The reference model can also be used to manage workflows within an EHR system. For example, the openEHR instruction class can be used to define clinical protocols or guidelines that guide the actions of clinicians within the EHR system.
Querying and reporting: The reference model provides a standard query language, called AQL (Archetype Query Language), which can be used to retrieve and analyse EHR data. This can be used to generate reports, track trends, or identify patterns in clinical data.
Archetypes
Archetype models provide a common and reusable pattern for representing clinical data. They can represent data regarding blood pressure, BMI, etc.
Here are a few examples of archetypes:
Blood pressure measurement archetype: This archetype describes the structure and content of a blood pressure measurement, including things like the measurement type (e.g. systolic, diastolic), the units of measurement, and any relevant contextual information (e.g. patient position).
Allergy archetype: This archetype describes the structure and content of an allergy record, including information about the allergen, the type of reaction, and any relevant clinical notes or observations.
Medication order archetype: This archetype describes the structure and content of a medication order, including things like the medication name, dosage, route of administration, and instructions for use.
Templates
The template model allows developers to combine both the reference and archetypes in order to create a customised representation of the clinical context.
An example of a template could be something such as a diabetes assessment template. This template would be based on the Diabetes Management archetype and be customised to meet the needs of the particular clinical workflow or assessment needed. The template might include additional fields or prompts to capture information that is specific to the organisation. This could include lifestyle factors, other illnesses etc.
Advantages
A key advantage of using OpenEHR is the emphasis on separation of concerns. The reference model gives us the structure of our health record, whereas the archetype determines the content within. Because of this separation, we are able to use different archetypes in order to represent different clinical contexts that we need to work with and add new ones to the system as it grows.
Where to start?
I've seen a number of resources that I believe would be good starting points for a developer new to OpenEHR. The ones I intend to look at are the following:
OpenEHR specifications: The OpenEHR specifications describe the various components of the OpenEHR architecture, including the reference model, archetypes, templates, and query language. See: specifications.openehr.org
OpenEHR Clinical Knowledge Manager (CKM): The OpenEHR CKM is an online repository of archetypes and templates that have been developed and validated by the OpenEHR community. Software engineers can use the CKM to search for archetypes and templates that are relevant to their use case, and to download these resources in a standard format that can be integrated into their EHR systems. See: ckm.openehr.org/ckm
OpenEHR Tooling: There are several software tools available that can help software engineers to work with OpenEHR resources, including archetypes, templates, and query language. Examples of these tools include ADL Designer for creating and editing archetypes and templates, and the Ehrscape REST API for interacting with EHR systems that are built using OpenEHR. See:
OpenEHR Community: The OpenEHR community is a global community of health informaticians, clinicians, and software engineers who are committed to promoting the adoption and development of the OpenEHR standard. The community provides a forum for discussion, collaboration, and knowledge sharing, and can be a valuable resource for software engineers who are looking to learn more about OpenEHR and connect with other like-minded professionals. See: discourse.openehr.org
Next Steps
I intend to go through the resources above before attempting to detail how to navigate them effectively. I then plan to create a simple demo project using OpenEHR as the backbone and these tools to speed up development. Keep an eye on future posts to see how it goes! Happy coding.