openehr The Reference Model Thomas Beale Sam Heard
1:N openehr Semantic architecture Screen Forms Messages 1:N Reports Templates Data conversion schemas 1:N Archetypes Terminology interface Terminologies 1:N Reference Model Querying What openehr provides ICPC ICDx Snomed CT
Specification Map Archetype Query Language Terminology Subset Syntax RM SM EHR Security EHR Extract Demographic virtual EHR { } { domain patterns{ core{ terminology service Composition demographic service Integration Common Data Structures Data Types EHR service Support (identifiers, terminology access) archetype service Template OM openehr Archetype Profile Archetype OM AM
Reference Model Class model overview
The reference model Structure of one EHR All versioned
Structure of one Composition ENTRYs where the data are
Structure of an EHR Extract
Context Model in openehr data values spatial structure temporal structure clinical statement healthcare event data-entry session Healthcare Events recorded in (1:1) recorded in (1:N) commit to EHR (Contribution) ENTRIES organise by: SECTIONS COMPOSITION organise by: FOLDERs EHR Recording Environment
Time in openehr generally = instant event Real-world activities sample/ measurement/ collection time reporting time observation healthcare event data entry commit openehr record COMPOSITION. OBSERVATION. context.start_time data.origin time-lag recorded in archetyped attribute in OBSERVATION.data if relevant COMPOSITION. VERSION. context.end_time audit.time
Time in openehr radiology imaging report data entry radiologist - assess images commit openehr record OBSERVATION. data.origin COMPOSITION. context.start_time COMPOSITION. context.end_time VERSION. audit.time
Time in openehr nurse obs. (hospital) vital vital vital signs commit signs commit signs 0100 0500 0900 commit openehr record ADMIN_ENTRY move to ward time =... OBSERVATION. data.origin VERSION. audit.time OBSERVATION. data.origin VERSION. audit.time OBSERVATION. data.origin VERSION. audit.time ADMIN_ENTRY discharge time =...
Security Features Separation
Entries the clinical information
Entry types Archetype Query Language Terminology Subset Syntax RM SM EHR Security EHR Extract Demographic virtual EHR { } { domain patterns{ core{ terminology service Composition demographic service Integration Common Data Structures Data Types EHR service Support (identifiers, terminology access) archetype service Template OM openehr Archetype Profile Archetype OM AM
Entry types based on process investigator Investigator agents 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 observations Based on clinical process MedInfo 2007 paper goals (desired observations) evaluation clinical investigator system goals + (desired observations) interventions a) problem-solving metaphor - interventions evaluation f() patient system administrative context patient system observations clinical investigator system administrative context b) control system metaphor
Entry types based on process investigator Investigator agents This process is cyclic & repetitive Clinicians don t always document every step
Leading to an Ontology xxx = observation-related xxx = intervention-related care information recorded information ADMIN_ENTRY admin information cognitive/temporal categories history EVALUATION opinion INSTRUCTION instruction OBSERVATION observation/ observation intervention categories ACTION action assessment proposal investigation request intervention request analytical categories diagnosis risk prognosis scenario goal recommendation
(with a speculative part for Admin) admin information status update task event patient event birth death commence ment completion transfer scheduling admission discharge emergency care referral appointment reservation
Specification Map Archetype Query Language Terminology Subset Syntax RM SM EHR Security EHR Extract Demographic virtual EHR { } { domain patterns{ core{ terminology service Composition demographic service Integration Common Data Structures Data Types EHR service Support (identifiers, terminology access) archetype service Template OM openehr Archetype Profile Archetype OM AM
RM data types & structures data_structures item_structure representation history data_types quantity basic text date_time time_ specification uri multimedia support definitions terminology measurement identification assumed types Boolean Integer String List<T> Real Character Interval<T> Set<T> inbuilt
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
EHR Extract
openehr Extract Model
openehr EHR Extract
Generic EHR Extract
Versioning
Specification Map Archetype Query Language Terminology Subset Syntax RM SM EHR Security EHR Extract Demographic virtual EHR { } { domain patterns{ core{ terminology service Composition demographic service Integration Common Data Structures Data Types EHR service Support (identifiers, terminology access) archetype service Template OM openehr Archetype Profile Archetype OM AM
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 Family History Current medications Problem List Care Plan Contrib 12/4/2003 Contact 12/4/2003 Problem List ++ Contrib 15/4/2003 Test Results 15/4/2003 Contrib 20/4/2003 Contact 20/4/2003 Current Meds ΔΔ Care Plan Δ Contrib 22/4/2003 Correction 22/4/2003 Current Version
Conflicts & Merging One System User A System User B v1 v1a commit? v2 commit v1b v2a commit v3
Synchronisation Problems Sys C v1 v1 Are we getting Duplicates? Sys A v1 v2 v3 Sys B v1 Do we have the latest? Solutions: designated master repository from which to update reliable, global version identification scheme
Distributed conflicts Sys C v1 v2c Sys A v1 v2a This can only happen: 1. where no master designated 2. no update-before-commit 3. 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
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