openEHR The Reference Model Thomas Beale Sam Heard
openEHR Semantic architecture Screen Forms 1:N Messages 1:N Reports Templates 1:N Terminology interface Data conversion schemas Terminologies Archetypes Snomed CT ICDx ICPC 1:N Querying What openEHR provides Reference Model
Specification Map Archetype Query Language Terminology Subset Syntax
Reference Model – Class model overview
The reference model – Structure of one EHR All versioned
Structure of one Composition ENTRYs – where the data are
Context Model in openEHR
Time in openEHR
Time in openEHR
Time in openEHR
Security Features Separation
Entries – the clinical information
Entry types Archetype Query Language Terminology Subset Syntax
Entry types based on process Investigator agents investigator This process is cyclic & repetitive Clinicians don’t always document every step
History of Solutions GeHR Australia – early version of Entry types based on information categories in philosophy + problem-solving
History of Solutions – Danish G-EPJ
History of Solutions - Samba
History of Solutions – Act-based Includes RICHE HL7v3 RIM Many others Problems Everything is an act – good for tracking business process steps, but not natural to physicians Hard to model typical clinical recordings
Our approach – ‘Clinical Investigator’ Based on clinical process MedInfo 2007 paper
Entry types based on process Investigator agents investigator This process is cyclic & repetitive Clinicians don’t always document every step
Leading to an Ontology ADMIN_ENTRY EVALUATION INSTRUCTION OBSERVATION ACTION EVALUATION INSTRUCTION ADMIN_ENTRY
(with a speculative part for Admin)
Specification Map Archetype Query Language Terminology Subset Syntax
RM data types & structures
data_structures
data_structures.item_structure
item_structure.representation
data_structures.history
History – Basic Structure
History - Variations
History – Storing Device Data Efficiently 14,400 x 1 second samples from device 5 x Events in openEHR History
Math Functions
Glucose Tolerance Test
Versioning
Specification Map Archetype Query Language Terminology Subset Syntax
Basis of versioning (similarly to CVS, Subversion etc…) We use the Composition as the unit of change (like a file in Subversion) Folder structure also versioned We use the Contribution as the unit of committal (like a change-set) Pre-commit check ensures that the current state of Compositions & Folder structure unchanged since check-out
Versioning Current Version Family History Current medications Problem List Care Plan Contact 12/4/2003 Problem List ++ Contrib 12/4/2003 Test Results 15/4/2003 Contrib 15/4/2003 Contact 20/4/2003 Current Meds ΔΔ Care Plan Δ Contrib 20/4/2003 Correction 22/4/2003 Contrib 22/4/2003 Current Version
Conflicts & Merging – One System User A System User B v1 v1a v1b commit v2 commit? v2a merge v3 commit
Synchronisation Problems Sys C Sys A v1 v2 v3 Sys B Solutions: designated master repository from which to update reliable, global version identification scheme v1 v1 v1 Are we getting Duplicates? Do we have the latest?
Distributed conflicts This can only happen: where no master designated no update-before-commit patient presents in both places i.e. ad hoc situation, e.g. patient sick while on holiday Solution: One of the systems will be the Patient’s ‘home’ system Sys C Sys A v1 v1 v2a v2c
Why is the openEHR RM useful? Because it was developed with clinical input OGTT example It provides a solid ontological basis for the next levels: Archetypes Templates GUI, messages etc