SlideShare a Scribd company logo
1 of 77
Tutorial - Design and
Implementation of Clinical
Databases with openEHR
Pablo Pazos Gutiérrez, Koray Atalag, Luis Marco-
Ruiz, Erik Sundvall, Sérgio Miranda Freire
2
Foundations
• Modern Clinical Databases need to ...
– handle many types of information,
– lost of different data structures,
– be flexible and generic,
– consistent, standardized, future-proof (evolution)
• CDBs are difficult to design!
– design is 10% about storing data, 90% about querying, retieve and using data
• To achieve a good design we need to have:
– deep knowledge of clinical record structures
– apply good practices, standards and support generic requirements
– knowledge about different technologies / solutions
3
Agenda
• Clinical Information Requirements
• Clinical Information Organization
• Database Technologies & Features
• openEHR
– goals, information model, knowledge model, data store &
query, versioning & audit
• openEHR Data Storage Techniques
– Relational + ORM
– Hybrid
• Data Querying
Clinical Information Requirements
Storing & Accessing Data
5
Minimal Information Set (ISO 18308)
• Related to storage: from the user point of view
– Patient history
– Physical examination
– Psychological, social, environmental, family and self care information
– Allergies and other therapeutic precautions
– Preventative and wellness measures such as vaccinations and lifestyle interventions
– Diagnostic tests and therapeutic interventions such as medications and procedures
– Clinical observations, interpretations, decisions and clinical reasoning
– Requests/Orders for further investigations, treatments or discharge
– Problems, diagnoses, issues, conditions, preferences and expectations
– Healthcare plans, health and functional status, and health summaries
– Disclosures and consents
– Suppliers, model and manufacturer of devices (e.g. implants or prostheses)
• Internally we want more generic information elements
– especially on our database designs
6
Several ways of accessing clinical data
• Related to clinical data querying for clinical usage (patient level):
– Chronological (e.g. to sort medical consultations)
– Problem-Oriented (access data by condition or disease)
• Health records are associated to a health problem
• Each problem evolves until it is solved/inactivated if it is not chronic
– By medical specialty (e.g. cardiology)
– By department, sector, unit or service (e.g. emergency, ICU, ...)
– Episode
• One or many contacts / visits on different dates
• May include hospitalizations
• Associated with a health problem (e.g. asthma attack)
– Access to individual documents or data points
• e.g. all the blood pressure measures for a patient
• There is also Public Health and Epidemiology (population level)
– we had a tutorial about that yesterday: “Enabling Clinical Data Reuse with
openEHR Data Warehouse Environments”
7
Infrastructure Requirements
• Related to user experience and quality
– Be aware of the CAP theorem!
• Scalability (grow maintaining service level)
• High availability (% operational time)
• Transactionality (all or nothing)
– Performance (run forest, run!)
– Concurrency (we all want that resource)
– Audit (what, when, who, where, why, ...)
– Encryption (data at rest)
– Version management (history of changes)
– ...
• We want all!
– We might need to use different technologies
8
Agenda
• Clinical Information Requirements
• Clinical Information Organization
• Database Technologies & Features
• openEHR
– goals, information model, knowledge model, data store &
query, versioning & audit
• openEHR Data Storage Techniques
– Relational + ORM
– Hybrid
• Data Querying
9
Clinical Information Organization
Clinical records & information are highly hierarchical
paper based or electronic
10
Clinical Information Organization
Clinical records & information are highly hierarchical
11
Agenda
• Clinical Information Requirements
• Clinical Information Organization
• Database Technologies & Features
• openEHR
– goals, information model, knowledge model, data store &
query, versioning & audit
• openEHR Data Storage Techniques
– Relational + ORM
– Hybrid
• Data Querying
12
DBs for different kinds of usage
• operative / transactional databases (OLTP)
– read/write oriented
– support business processes, small historical data
• querying databases
– read oriented
– read-only data, might be in memory
• document database
– audit, versioning, electronic signature (authenticity, incorruptibility)
• analysis database
– read oriented
– might need ETL
– data linking + data mining + statistical analysis + prediction techniques (trends)
• datawarehouse database
– ETL from many data sources
– batch calculations of indicators over loads of historical data
13
Databases and Data Structures
DBMS Relational XML JSON Key/Value Graph
MySQL native partial in development can be modeled can be modeled
Postgres native complete complete hstore extension hstore extension
Oracle native complete complete NoSQL edition NoSQL edition
SQLServer native complete in development can be modeled can be modeled
eXistDB no native output map map
MongoDB no no native JSON JSON
CouchDB /
Couchbase
no no native JSON JSON
Neo4j can be modeled can be modeled can be modeled can be modeled native
Riak no no store and get native no
Which to choose?
relational, documental, key/value,
graph, object, ..., and which brand?
Consider
many use cases can be met efficiently
by relational databases, but each project is different,
and there is no one-fits-all solution
We are not worried about performance just yet, we’ll focus on
how to design Clinical Databases with openEHR first!
16
First approach
• The choice depends on the context
– use cases, estimated # of operations / # of records, organizational knowledge, ...
• For the operative / transactional DB lets go with a relational database:
– MySQL, Postgres, Oracle, SQLServer, …
– NOT a recommendation: just focusing on one option to understand some
common clinical database design concepts applicable on other technologies.
17
First approach
• Loads of reads? Complex queries and JOINs? Low performance?
– try relational for writes + documental for reads
• Needs ETL: relational => doc (JSON,XML)
– you can denormalize the relational DB, and/or
– use documental capabilities of some RDBs (e.g. Postgres supports XML & JSON)
– made good use of indexes
– analyze query plans (Posrgres / MySQL EXPLAIN query)
• Most systems wont have problems with any of these options
– there is always a way to optimize things!
18
Also, we have transformations between models
• When we need to
– migrate to another technology (e.g. from RDBs to Doc)
– integrate different technologies (hybrid solution)
19
We can: XML (canonical xform) JSON
<data xsi:type="COMPOSITION" archetype_node_id="openEHR-EHR-
COMPOSITION.signos.v1">
<name>
<value>Signos vitales</value>
</name>
<archetype_details>
<archetype_id>
<value>openEHR-EHR-COMPOSITION.signos.v1</value>
</archetype_id>
<template_id>
<value>Signos-Vitales</value>
</template_id>
<rm_version>1.0.2</rm_version>
</archetype_details>
<language>
<terminology_id>
<value>ISO_639-1</value>
</terminology_id>
<code_string>es</code_string>
</language>
<territory>
<terminology_id>
<value>ISO_3166-1</value>
</terminology_id>
<code_string>UY</code_string>
</territory>
<category>
...
</category>
...
</data>
{
"data": {
"@xsi:type": "COMPOSITION",
"@archetype_node_id": "openEHR-EHR-COMPOSITION.signos.v1",
"name": {
"value": "Signos vitales"
},
"archetype_details": {
"archetype_id": {
"value": "openEHR-EHR-COMPOSITION.signos.v1"
},
"template_id": {
"value": "Signos-Vitales"
},
"rm_version": "1.0.2"
},
"language": {
"terminology_id": {
"value": "ISO_639-1"
}
},
"territory": {
"terminology_id": {
"value": "ISO_3166-1"
}
},
"category": {
...
}
}
}
openEHR XML JSON equivalent
20 20
Non-RDB-based approaches?
• XML: BaseX, Sedna, eXist, ...
• JSON: Couchbase, CouchDB, MongoDB, ...
• Often suitable if your client side GUI primarily wants XML or JSON
documents/chunks (avoids conversion needs)
…or if you go all-in-javascript on server+client?
• Auto-translating AQL to hierarchy-friendly query languages (e.g. Xquery, N1QL,
Sparql, SQL++?) is often straightforward.
– Consider using a parser generator.
• XML databases fast for transactional (clinical?), but often slow for population-wide
(epidemiology?) queries.
• Solutions such as Couchbase can be very fast for both, after specific indexing is done
(example on next slide).
• Very little is published regarding graph/network databases (Neo4J etc) and object
databases for openEHR usage.
Please test and publish!
21
Scaling? Size & Performance tests, 4.2M patients
Please note:
•All DBs work fine/fast for ”clinical” patient-specific queries, the graph shows population-queries
•the RDB, here used as source and reference, is an epidemiology-optimised non-openEHR-based
reference that we try to match in end-user speed (not size). The XML/JSON based DB-examples have the
flexibility of openEHR to add new archetypes etc. without manually reworking the DB schema etc, the
RDMBs reference example does not have that flexibility.
21
Source: Yet unpublished results, working title: Comparing the Performance of NoSQL Approaches for Storing and Retrieving Archetype-Based
Electronic Health Record Data. Authors: Sergio M Freire, Douglas Teodoro, Fang Wei-Kleiner, Erik Sundvall, Daniel Karlsson, Patrick Lambrix
More about the test data and some of the setup is already published in http://www.ep.liu.se/ecp/070/009/ecp1270009.pdf
Type Databases
 Size in GB
sus42k sus420k sus4200k
RDB
MySQL 
reference
0.09 0.43 3.6
XML files   1.38 13.8 137.9
JSON files   0.83 8.3 82.9
XML DB
BaseX 1.2 11.9 -
eXist 3.3 - -
Berkeley 3.8 - -
JSON DB Couchbase 0.21 2.1 21
22
Agenda
• Clinical Information Requirements
• Clinical Information Organization
• Database Technologies & Features
• openEHR
– goals, information model, knowledge model, data store &
query, versioning & audit
• openEHR Data Storage Techniques
– Relational + ORM
– Hybrid
• Data Querying
23
• Open Standard to create really flexible, future-proof (maintainable in the long term
at large scale with low cost), interoperable EHRs.
– Defines an Infostructure!
• Created, maintained, tested, validated and implemented by an international
community of professionals.
• The community provides Modeling Tools and Open Source Reference
Implementations in many technologies (Java, Eiffel, .Net, Ruby, Python).
• Key elements:
– technological independence
– multi-level models, clean and complete
• information, clinical concepts, terminology bindings, querying, services, ...
– formal methodology for knowledge management
– open & free access to specifications
• a-la W3C / IETF (enabled the implementation of the Internet and the Web)
• Please join us!
– openEHR Foundation:
• http://openehr.org/community/mailinglists
– openEHR en español:
• http://openehr.org.es
Information Model
Our Clincal DB Design will be based on this!
25
Information Model
Clinical records & information are highly hierarchical
26
Record Entries
Different types of entries a clinical document can have
Clinical records are highly hierarchical!
27
Data Types (simplified)
28
Demographic Model
Specifying Clinical Records:
Key Points for Clinical Database Design for openEHR data
30
31
Archetypes & ADL
• Represent clinical concepts by constraints over a generic Information Model
– defined in Archetype Definition Language
– globally valid, multi-language
• Important elements for DB design and implementation!
– multi-axial identifier
• openEHR-EHR-OBSERVATION.blood_pressure.v1
– node identifier
• atNNNN
– node path (e.g. path to systolic BP)
• /data[at0001]/events[at0006]/data[at0003]/items[at0004]/value
• archetype id + path
– unique semantic identifier
– will use them in our databases!
• Need archetypes, no problem: http://ckm.openehr.org/
32
Operational Templates (OPT)
• "Big archetypes"
– Combine archetypes to represent clinical documents
– Allows to add more constraints
– Defined in XML
• Use for specific contexts
– one language
– locally valid (organization, federation, national)
• Used by EHR/EMR software directly
– for validating data
– for generating UIs
– for indexing data
– for querying
– …
33
Operational Templates (OPT)
<template_id>
<value>Consulta Médica</value>
</template_id>
<definition>
<rm_type_name>COMPOSITION</rm_type_name>
...
<node_id>at0000</node_id>
<attributes xsi:type="C_SINGLE_ATTRIBUTE">
<rm_attribute_name>category</rm_attribute_name>
...
<children xsi:type="C_COMPLEX_OBJECT">
<rm_type_name>DV_CODED_TEXT</rm_type_name>
...
<attributes xsi:type="C_SINGLE_ATTRIBUTE">
<rm_attribute_name>defining_code</rm_attribute_name>
...
<children xsi:type="C_CODE_PHRASE">
<rm_type_name>CODE_PHRASE</rm_type_name>
...
<terminology_id>
<value>openehr</value>
</terminology_id>
<code_list>433</code_list> -- category = event
</children>
</attributes>
</children>
</attributes>
...
openEHR IM
class
openEHR IM
attribute
34
Information & Metadata
• Link between Archetypes and the Information Model
– Will use those fields in our persistence model
– Are important for queries!
References to
Archetypes
and Templates
(semantic content
definitions)
35
Agenda
• Clinical Information Requirements
• Clinical Information Organization
• Database Technologies & Features
• openEHR
– goals, information model, knowledge model, data store &
query, versioning & audit
• openEHR Data Storage Techniques
– Relational + ORM
– Hybrid
• Data Querying
Clinical Data Storage Design
37
openEHR Data Storage Design
• openEHR doesn't define how to store data
– The IM is not a Persistence Model
– The Persistence Model will depend on requirements and technologies
• Our work is to adapt the IM to our persistence needs
• We can simplify, adapt or use part of it (openEHR is very flexible)
– openEHR doesn't care about how we store data but does care about:
• structural and semantic consistency (defined by archetypes & OPTs)
• processable / accessable / queryable data
• Tips:
– archetype id, path, template id, node id are important for querying
– references can be simplified (OBJECT_REF) (FKs in Relational)
– structured data can be simplified (ej. DV_CODED_TEXT)
– …
38
Object-Relational Mapping (ORM)
• OO system (openEHR IM) & Relational DB => ORM
– OO: class, attribute, attr. type, relationship, inheritance
– Relational: table, column, column type, reference
• Key elements:
1. identity representation
2. data type mapping
3. association mapping (different cardinalities 1..1, 1..N, N..N)
4. inheritance mapping
39
Identity in Object-Oriented Model
• Objects have an identity to:
– differentiate between objects of the same class
– reference those objects
• In the relational model we have Primary Keys
• Solution:
– add an "id" column in each table
– of type "int" or "long" and use it as PK
– FKs reference only PKs "id"
• represents relationships in the OO model
40
Data Type Mapping
MySQL Postgres SQLServer Oracle
Date
date
datetime
date
timestamp
date
datetime2
date
datetime
String
varchar
text
varchar
text
varchar
nvarchar
varchar2
nvarchar2
clob
Boolean bit boolean bit char(1) CHEK IN ('1','0')
Integer integer numeric int number
... ... ... ... ...
Each type we use in the OO model, should be mapped
to a type in the DBMS we chose.
41
Mapping Classes  Tables
42
Mapping Relationships
43
Mapping Inheritance
TIP: on table per class, is
better to use the same
value for "id" for the
columns of the same
instances distributed in
different tables.
Database Schema Examples
Some databases we have designed
for openEHR data, but with
different purposes
45
EHRServer
+ generic data storage
+ focused on querying
+ doesn’t map the whole IM
+ training purposes (for now)
46
+ operational DB
+ for an EMR system
+ pretty normalized
47
Hybrid approach
• Considerations
– Use only if it makes sense!
• for example if it improves querying performance / scalability
– Modern Relational DBMS compete with some NoSQL features:
• support documents
• scale through clusters
• some allow in-memory tables or views
48
Agenda
• Clinical Information Requirements
• Clinical Information Organization
• Database Technologies & Features
• openEHR
– goals, information model, knowledge model, data
store & query, versioning & audit
• openEHR Data Storage Techniques
– Relational + ORM
– Hybrid
• Data Querying
Data Querying
AQL and path-based queries
50
Archetype Query Language
• AQL is like SQL for EHRs
• Archetype ID is "like" a table (type of info we want)
– openEHR-EHR-OBSERVATION.blood_pressure.v1
• Data points identified by paths, "like" "columns (defined by each archetype)
– Systolic BP: /data[at0001]/events[at0006]/data[at0003]/items[at0004]/value
SELECT
obs/data[at0001]/events[at0006]/data[at0003]/items[at0004]/value/magnitude,
obs/data[at0001]/events[at0006]/data[at0003]/items[at0005]/value/magnitude
FROM
EHR [ehr_id/value=$ehrUid] CONTAINS
COMPOSITION [openEHR-EHR-COMPOSITION.encounter.v1] CONTAINS
OBSERVATION obs [openEHR-EHR-OBSERVATION.blood_pressure.v1]
WHERE
obs/data[at0001]/events[at0006]/data[at0003]/items[at0004]/value/magnitude >= 140 OR
obs/data[at0001]/events[at0006]/data[at0003]/items[at0005]/value/magnitude >= 90
Get high BP data
https://openehr.atlassian.net/wiki/display/spec/Archetype+Query+Language+Description
51 51
AQL - Query samples
Marco-Ruiz L, Moner D, Maldonado JA, Kolstrup N, Bellika JG,
Archetype-based data warehouse environment to enable the reuse of
electronic health record data, International Journal of Medical Informatics
(2015), http://dx.doi.org/10.1016/j.ijmedinf.2015.05.016
SELECT o/data/events/data/items[at0078.13]/value AS WhiteCellCount
FROM EHR e
CONTAINS COMPOSITION c [openEHR-EHR-
COMPOSITION.encounter.v1]
CONTAINS OBSERVATION o [openEHR-EHR-
OBSERVATION.lab_test_full_blood_count.v1]
WHERE o/data/events/data/items[at0078.13]/value > 11000000000
AND o/data/events/data/items[at0078.13]/value < 17000000000
TIME WINDOW P1Y/2014-02-12
52 52
AQL - Query samples
Marco-Ruiz L, Moner D, Maldonado JA, Kolstrup N, Bellika JG,
Archetype-based data warehouse environment to enable the reuse of
electronic health record data, International Journal of Medical Informatics
(2015), http://dx.doi.org/10.1016/j.ijmedinf.2015.05.016
SELECT o/data/events/data/items[at0078.13]/value
AS WhiteCellCount
FROM EHR e
CONTAINS COMPOSITION c [openEHR-EHR-
COMPOSITION.encounter.v1]
CONTAINS OBSERVATION o [openEHR-EHR-
OBSERVATION.lab_test_full_blood_count.v1]
WHERE
o/data/events/data/items[at0078.13]/value >
11000000000
AND o/data/events/data/items[at0078.13]/value <
17000000000
TIME WINDOW P1Y/2014-02-12
Infectious diseases tests
monitoring at University
Hospital of North Norway
AQL in action
54
AQL in action
Infectious diseases monitoring at UNN:
• Laboratory tests are extracted from the
LIS in a canonical XML format
• Canonical extracts are transformed into
openEHR compliant extracts
• Extracts are loaded into an openEHR data
warehouse (Think!EHR)
Marco-Ruiz L, Moner D, Maldonado JA, Kolstrup N, Bellika JG,
Archetype-based data warehouse environment to enable the reuse of
electronic health record data, International Journal of Medical Informatics
(2015), http://dx.doi.org/10.1016/j.ijmedinf.2015.05.016
55
Marco-Ruiz L, Moner D, Maldonado JA, Kolstrup N, Bellika JG,
Archetype-based data warehouse environment to enable the reuse of
electronic health record data, International Journal of Medical Informatics
(2015), http://dx.doi.org/10.1016/j.ijmedinf.2015.05.016
56 56
SELECT count(o1/data[at0001]/events[at0002]/data[at0003]/items[at0022]) -- count (patientId)
FROM EHR e
CONTAINS COMPOSITION c
CONTAINS (OBSERVATION o1[openEHR-EHR-OBSERVATION.micro_lab_test.v1])
WHERE (
o1/data[at0001]/events[at0002]/data[at0003]/items[at0010]/items[at0043]/items[at0036]/value = 'Kikhoste'
AND
o1/data[at0001]/events[at0002]/data[at0003]/items[at0010]/items[at0043]/items[at0037]/value='Positiv'
) AND
o1/data[at0001]/events[at0002]/data[at0003]/items[at0024]/value >= '2013-01-04' AND
o1/data[at0001]/events[at0002]/data[at0003]/items[at0024]/value < '2013-01-05'
Marco-Ruiz L, Moner D, Maldonado JA, Kolstrup N, Bellika JG,
Archetype-based data warehouse environment to enable the reuse of electronic health record data, International Journal of Medical Informatics (2015),
http://dx.doi.org/10.1016/j.ijmedinf.2015.05.016
AQL 1:
+ Count positive tests of Pertussis for the day specified in the parameter
AQL in action
57 57
SELECT
count(o1/data[at0001]/events[at0002]/data[at0003]/items[at0022]/value)
FROM EHR e
CONTAINS COMPOSITION c
CONTAINS (
OBSERVATION o1[openEHR-EHR-OBSERVATION.micro_lab_test.v1] AND
OBSERVATION o2[openEHR-EHR-OBSERVATION.micro_lab_test.v1]
)
WHERE (
o1/data[at0001]/events[at0002]/data[at0003]/items[at0010]/items[at0043]/items[at0036]/value =
'Salmonella' AND
o1/data[at0001]/events[at0002]/data[at0003]/items[at0010]/items[at0043]/items[at0037]/value =
'Positiv'
) AND
o1/data[at0001]/events[at0002]/data[at0003]/items[at0020]/value = '1917' AND
o1/data[at0001]/events[at0002]/data[at0003]/items[at0024]/value >= '2013-01-01' AND
o1/data[at0001]/events[at0002]/data[at0003]/items[at0024]/value < '2013-01-15'
Marco-Ruiz L, Moner D, Maldonado JA, Kolstrup N, Bellika JG,
Archetype-based data warehouse environment to enable the reuse of electronic health record data, International Journal of Medical Informatics (2015),
http://dx.doi.org/10.1016/j.ijmedinf.2015.05.016
AQL 2:
+ Count patient ID
+ Salmonella cases in the specified municipality (same as patient just confirmed)
+ In the first 2 weeks of January
AQL in action
EHRServer Queries
Path-based queries in action
https://cabolabs-ehrserver.rhcloud.com/ehr-0.3/query/list
59
EHRServer Query Builder
60
Path-based queries in action
{
"uid": "9c5da334-4b81-4d60-92e2-aa96a722b4ac",
"name": "Documents with high BP",
"format": "xml",
"type": "composition",
"criteriaLogic": "OR",
"criteria": [
{
"archetypeId": "openEHR-EHR-OBSERVATION.blood_pressure.v1",
"path": "/data[at0001]/events[at0006]/data[at0003]/items[at0004]/value",
"conditions": {
"magnitude": { "gt": [ 140 ] },
"units": { "eq": "mm[Hg]" }
}
},
{
"archetypeId": "openEHR-EHR-OBSERVATION.blood_pressure.v1",
"path": "/data[at0001]/events[at0006]/data[at0003]/items[at0005]/value",
"conditions": {
"magnitude": { "gt": [ 90 ] },
"units": { "eq": "mm[Hg]" }
}
}
]
}
Path-based:
+ Get clinical documents (compositions)
+ With high BP
JSON
expression of
EHRServer
queries
61
Path-based queries in action
Results:
+ in XML (or JSON if specified on the query or as a parameter)
+ just the index, no data, get a document using the index or change the query to get the data
<list>
<compositionIndex id="8">
<archetypeId>openEHR-EHR-COMPOSITION.signos.v1</archetypeId>
<category>event</category>
<dataIndexed>true</dataIndexed>
<ehrId>11111111-1111-1111-1111-111111111111</ehrId>
<startTime>2015-08-14 03:06:44.0 EDT</startTime>
<subjectId>11111111-1111-1111-1111-111111111111</subjectId>
<templateId>Signos</templateId>
<uid>e152b2c2-7dbe-44b6-9ec6-2cd698561140</uid>
</compositionIndex>
<compositionIndex id="9">
<archetypeId>openEHR-EHR-COMPOSITION.signos.v1</archetypeId>
<category>event</category>
<dataIndexed>true</dataIndexed>
<ehrId>11111111-1111-1111-1111-111111111111</ehrId>
<startTime>2015-08-14 03:07:06.0 EDT</startTime>
<subjectId>11111111-1111-1111-1111-111111111111</subjectId>
<templateId>Signos</templateId>
<uid>f0a8d192-0f68-4501-8373-f954a47a7385</uid>
</compositionIndex>
...
</list>
62
Path-based queries in action
{
"uid": "70764d85-4e4b-4548-8f71-3a294f35e704",
"name": "Vital Signs",
"format": "json",
"type": "datavalue",
"group": "path",
"projections": [
{
"archetypeId": "openEHR-EHR-OBSERVATION.blood_pressure.v1",
"path": "/data[at0001]/events[at0006]/data[at0003]/items[at0004]/value"
},
{
"archetypeId": "openEHR-EHR-OBSERVATION.blood_pressure.v1",
"path": "/data[at0001]/events[at0006]/data[at0003]/items[at0005]/value"
},
{
"archetypeId": "openEHR-EHR-OBSERVATION.body_temperature.v1",
"path": "/data[at0002]/events[at0003]/data[at0001]/items[at0004]/value"
},
{
"archetypeId": "openEHR-EHR-OBSERVATION.body_weight.v1",
"path": "/data[at0002]/events[at0003]/data[at0001]/items[at0004]/value"
},
{
"archetypeId": "openEHR-EHR-OBSERVATION.pulse.v1",
"path": "/data[at0002]/events[at0003]/data[at0001]/items[at0004]/value"
},
{
"archetypeId": "openEHR-EHR-OBSERVATION.respiration.v1",
"path": "/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value"
}
]
}
Path-based:
+ Get clinical data for all vital signs measures
+ Result in JSON format, grouped by path (type of data)
JSON
expression of
EHRServer
queries
63
GastrOS – Endoscopy Database
http://gastros.codeplex.com
• Open Source openEHR implementation of a commercial DB for academic
research (2011)
• Based on Minimal Standard Terminology for Digestive Endoscopy (MST 2)
• Works with openEHR RM directly
– C# openEHR.NET (Open Source)
– Uses 3 Templates (EGD, Colonopscopy, ERCP)
• Used RDMBS (MS Access and SQLite)
• Uses ORM (Nhibernate) to store XML Compositions
63
64
MST Structure
65
66
Content Model Coverage
67
68
SDE ParserOPT
Reference
Model
Skeleton Instance
(ENTRY types, CLUSTERS)
GUI Form: Widgets+Leaf nodes(ELEMENT)
SDE GUI
Generator
AOM Representation
69
70
A Standards-based Approach to Development of
Clinical Registries -
NZ Gestational Diabetes Registry Pilot
Dr. Koray Atalag MD, PhD, FACHI (National Institute for Health Innovation)
Aleksandar Zivaljevic, PhD candidate (Univ. Of Auckland)
Dr. Carl Eagleton MBChB, FRACP (Counties Manukau District Health Board)
Karen Pickering (Diabetes Projects Trust)
71
GDM Registry Database
• Used OceanEHR Framework
– Academic license from Ocean Informatics
– Simplifies persistence and querying plus more!
– Supports openEHR Demographic IM
– Supports AQL
• Extended MultiPrac App (Source provided on academic license)
– MVC Application (VS 2010 w/ SQL Server)
– Handles user management, basic admin etc.
– Supports reference sets, provider/organisation etc.
71
72
The Dataset
73
Automatic technical conversion – C# Class
74
75
Make your own or reuse existing openEHR persistence?
• Open reusable openEHR persistence & query APIs have been suggested and
are now being formally specified
– Join the REST discussion, openEHR wiki + mailinglists
https://openehr.atlassian.net/wiki/display/spec/openEHR+REST+APIs
– Implementations of openEHR SOAP interfaces exist.
• A SOAP API could be formally specified if there is enough interest
– Other API options?
• New reusable implementations are welcome!
• Before implementing your own persistence, consider:
– Is your main interest storage or clinical application?
– Would AQL be helpful in some of your use-cases?
– In what way will it need to scale?
75
76
Conclusion
• openEHR doesn’t specify how to store openEHR clinical data
– not bound to any technology or modeling technique
• Remember to model data with references to metadata
– archetype id, template id, path, node id
• Use operational templates in software, not archetypes directly
– archetypes are too generic, too many options, not so good for software
• Choosing a technology is on you
– there is no one-fits-all solution
– you might need to mix technologies (hybrid solution)
• Modify the openEHR Information Model
– to create your storage model using the chosen technology
• Design generic query mechanisms based on archetype ids and paths
– go for AQL support if you need it, allows to share queries between openEHR Clinical Data
Storages
• Designing and querying Clinical Databases is hard!
– now you have some pointers on where to start 
Muito Obrigado!
Perguntas?
pablo.pazos@cabolabs.com
@ppazos
github.com/ppazos
koray
@atalagk
erik .sundvall@liu.se
@ErikSundvall
github.com/ErikSundvall
http://www.imt.liu.se/~erisu/
sergio@lampada.uerj.br
luis.marco.ruiz@telemed.no

More Related Content

What's hot

Using MLOps to Bring ML to Production/The Promise of MLOps
Using MLOps to Bring ML to Production/The Promise of MLOpsUsing MLOps to Bring ML to Production/The Promise of MLOps
Using MLOps to Bring ML to Production/The Promise of MLOpsWeaveworks
 
MLOps Using MLflow
MLOps Using MLflowMLOps Using MLflow
MLOps Using MLflowDatabricks
 
Importance of ML Reproducibility & Applications with MLfLow
Importance of ML Reproducibility & Applications with MLfLowImportance of ML Reproducibility & Applications with MLfLow
Importance of ML Reproducibility & Applications with MLfLowDatabricks
 
Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...
Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...
Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...DataWorks Summit
 
Architecting Agile Data Applications for Scale
Architecting Agile Data Applications for ScaleArchitecting Agile Data Applications for Scale
Architecting Agile Data Applications for ScaleDatabricks
 
Databricks Overview for MLOps
Databricks Overview for MLOpsDatabricks Overview for MLOps
Databricks Overview for MLOpsDatabricks
 
Data Lake Overview
Data Lake OverviewData Lake Overview
Data Lake OverviewJames Serra
 
Summary introduction to data engineering
Summary introduction to data engineeringSummary introduction to data engineering
Summary introduction to data engineeringNovita Sari
 
Challenges in Building a Data Pipeline
Challenges in Building a Data PipelineChallenges in Building a Data Pipeline
Challenges in Building a Data PipelineManish Kumar
 
Requirements for a Master Data Management (MDM) Solution - Presentation
Requirements for a Master Data Management (MDM) Solution - PresentationRequirements for a Master Data Management (MDM) Solution - Presentation
Requirements for a Master Data Management (MDM) Solution - PresentationVicki McCracken
 
A Journey into Databricks' Pipelines: Journey and Lessons Learned
A Journey into Databricks' Pipelines: Journey and Lessons LearnedA Journey into Databricks' Pipelines: Journey and Lessons Learned
A Journey into Databricks' Pipelines: Journey and Lessons LearnedDatabricks
 
HBase and Hadoop at Adobe
HBase and Hadoop at AdobeHBase and Hadoop at Adobe
HBase and Hadoop at AdobeCosmin Lehene
 
From Data Science to MLOps
From Data Science to MLOpsFrom Data Science to MLOps
From Data Science to MLOpsCarl W. Handlin
 
Pentaho Data Integration Introduction
Pentaho Data Integration IntroductionPentaho Data Integration Introduction
Pentaho Data Integration Introductionmattcasters
 
Data Architecture Best Practices for Advanced Analytics
Data Architecture Best Practices for Advanced AnalyticsData Architecture Best Practices for Advanced Analytics
Data Architecture Best Practices for Advanced AnalyticsDATAVERSITY
 
Observability for Data Pipelines With OpenLineage
Observability for Data Pipelines With OpenLineageObservability for Data Pipelines With OpenLineage
Observability for Data Pipelines With OpenLineageDatabricks
 
Introduction to OpenRefine
Introduction to OpenRefineIntroduction to OpenRefine
Introduction to OpenRefineHeather Myers
 
Data Warehousing Trends, Best Practices, and Future Outlook
Data Warehousing Trends, Best Practices, and Future OutlookData Warehousing Trends, Best Practices, and Future Outlook
Data Warehousing Trends, Best Practices, and Future OutlookJames Serra
 

What's hot (20)

Using MLOps to Bring ML to Production/The Promise of MLOps
Using MLOps to Bring ML to Production/The Promise of MLOpsUsing MLOps to Bring ML to Production/The Promise of MLOps
Using MLOps to Bring ML to Production/The Promise of MLOps
 
MLOps Using MLflow
MLOps Using MLflowMLOps Using MLflow
MLOps Using MLflow
 
Importance of ML Reproducibility & Applications with MLfLow
Importance of ML Reproducibility & Applications with MLfLowImportance of ML Reproducibility & Applications with MLfLow
Importance of ML Reproducibility & Applications with MLfLow
 
Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...
Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...
Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
Architecting Agile Data Applications for Scale
Architecting Agile Data Applications for ScaleArchitecting Agile Data Applications for Scale
Architecting Agile Data Applications for Scale
 
Databricks Overview for MLOps
Databricks Overview for MLOpsDatabricks Overview for MLOps
Databricks Overview for MLOps
 
Data Lake Overview
Data Lake OverviewData Lake Overview
Data Lake Overview
 
Summary introduction to data engineering
Summary introduction to data engineeringSummary introduction to data engineering
Summary introduction to data engineering
 
Challenges in Building a Data Pipeline
Challenges in Building a Data PipelineChallenges in Building a Data Pipeline
Challenges in Building a Data Pipeline
 
Requirements for a Master Data Management (MDM) Solution - Presentation
Requirements for a Master Data Management (MDM) Solution - PresentationRequirements for a Master Data Management (MDM) Solution - Presentation
Requirements for a Master Data Management (MDM) Solution - Presentation
 
A Journey into Databricks' Pipelines: Journey and Lessons Learned
A Journey into Databricks' Pipelines: Journey and Lessons LearnedA Journey into Databricks' Pipelines: Journey and Lessons Learned
A Journey into Databricks' Pipelines: Journey and Lessons Learned
 
HBase and Hadoop at Adobe
HBase and Hadoop at AdobeHBase and Hadoop at Adobe
HBase and Hadoop at Adobe
 
From Data Science to MLOps
From Data Science to MLOpsFrom Data Science to MLOps
From Data Science to MLOps
 
Pentaho Data Integration Introduction
Pentaho Data Integration IntroductionPentaho Data Integration Introduction
Pentaho Data Integration Introduction
 
Data Architecture Best Practices for Advanced Analytics
Data Architecture Best Practices for Advanced AnalyticsData Architecture Best Practices for Advanced Analytics
Data Architecture Best Practices for Advanced Analytics
 
Observability for Data Pipelines With OpenLineage
Observability for Data Pipelines With OpenLineageObservability for Data Pipelines With OpenLineage
Observability for Data Pipelines With OpenLineage
 
Introduction to OpenRefine
Introduction to OpenRefineIntroduction to OpenRefine
Introduction to OpenRefine
 
1 4 intro to archetypes and templates
1 4 intro to archetypes and templates1 4 intro to archetypes and templates
1 4 intro to archetypes and templates
 
Data Warehousing Trends, Best Practices, and Future Outlook
Data Warehousing Trends, Best Practices, and Future OutlookData Warehousing Trends, Best Practices, and Future Outlook
Data Warehousing Trends, Best Practices, and Future Outlook
 

Viewers also liked

Towards the Implementation of an openEHR-based Open Source EHR Platform (a vi...
Towards the Implementation of an openEHR-based Open Source EHR Platform (a vi...Towards the Implementation of an openEHR-based Open Source EHR Platform (a vi...
Towards the Implementation of an openEHR-based Open Source EHR Platform (a vi...Pablo Pazos
 
openEHR Developers Workshop at #MedInfo2015
openEHR Developers Workshop at #MedInfo2015openEHR Developers Workshop at #MedInfo2015
openEHR Developers Workshop at #MedInfo2015Pablo Pazos
 
Aleksandar Zivaljevic - Annotation of clinical datasets using openEHR Archety...
Aleksandar Zivaljevic - Annotation of clinical datasets using openEHR Archety...Aleksandar Zivaljevic - Annotation of clinical datasets using openEHR Archety...
Aleksandar Zivaljevic - Annotation of clinical datasets using openEHR Archety...Health Informatics New Zealand
 
Class 1: Email Marketing Certification course: Email Marketing and Your Business
Class 1: Email Marketing Certification course: Email Marketing and Your BusinessClass 1: Email Marketing Certification course: Email Marketing and Your Business
Class 1: Email Marketing Certification course: Email Marketing and Your BusinessHubSpot
 
What is Inbound Recruiting?
What is Inbound Recruiting?What is Inbound Recruiting?
What is Inbound Recruiting?HubSpot
 
Capital Hill Cashgate Scandal : Best of London Fashion Week 2016
Capital Hill Cashgate Scandal : Best of London Fashion Week 2016Capital Hill Cashgate Scandal : Best of London Fashion Week 2016
Capital Hill Cashgate Scandal : Best of London Fashion Week 2016Joseph Jacob Esther
 
openEHR: aspectos de interoperabilidad y mantenibilidad
openEHR: aspectos de interoperabilidad y mantenibilidadopenEHR: aspectos de interoperabilidad y mantenibilidad
openEHR: aspectos de interoperabilidad y mantenibilidadPablo Pazos
 
Enabling Clinical Data Reuse with openEHR Data Warehouse Environments
Enabling Clinical Data Reuse with openEHR Data Warehouse EnvironmentsEnabling Clinical Data Reuse with openEHR Data Warehouse Environments
Enabling Clinical Data Reuse with openEHR Data Warehouse EnvironmentsLuis Marco Ruiz
 
Bonheur au Travail : Outils et Bonnes Pratiques
Bonheur au Travail : Outils et Bonnes PratiquesBonheur au Travail : Outils et Bonnes Pratiques
Bonheur au Travail : Outils et Bonnes PratiquesHR SCOPE
 
Infographic: Medicare Marketing: Direct Mail: Still The #1 Influencer For Tho...
Infographic: Medicare Marketing: Direct Mail: Still The #1 Influencer For Tho...Infographic: Medicare Marketing: Direct Mail: Still The #1 Influencer For Tho...
Infographic: Medicare Marketing: Direct Mail: Still The #1 Influencer For Tho...Scott Levine
 
How to Earn the Attention of Today's Buyer
How to Earn the Attention of Today's BuyerHow to Earn the Attention of Today's Buyer
How to Earn the Attention of Today's BuyerHubSpot
 
25 Discovery Call Questions
25 Discovery Call Questions25 Discovery Call Questions
25 Discovery Call QuestionsHubSpot
 
Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...
Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...
Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...HubSpot
 
Behind the Scenes: Launching HubSpot Tokyo
Behind the Scenes: Launching HubSpot TokyoBehind the Scenes: Launching HubSpot Tokyo
Behind the Scenes: Launching HubSpot TokyoHubSpot
 
HubSpot Diversity Data 2016
HubSpot Diversity Data 2016HubSpot Diversity Data 2016
HubSpot Diversity Data 2016HubSpot
 
Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...
Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...
Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...HubSpot
 
3 Proven Sales Email Templates Used by Successful Companies
3 Proven Sales Email Templates Used by Successful Companies3 Proven Sales Email Templates Used by Successful Companies
3 Proven Sales Email Templates Used by Successful CompaniesHubSpot
 
Add the Women Back: Wikipedia Edit-a-Thon
Add the Women Back: Wikipedia Edit-a-ThonAdd the Women Back: Wikipedia Edit-a-Thon
Add the Women Back: Wikipedia Edit-a-ThonHubSpot
 
Presentacion InfoLac 2014 - generacion de interfaz de usuario para sistemas d...
Presentacion InfoLac 2014 - generacion de interfaz de usuario para sistemas d...Presentacion InfoLac 2014 - generacion de interfaz de usuario para sistemas d...
Presentacion InfoLac 2014 - generacion de interfaz de usuario para sistemas d...Pablo Pazos
 
openEHR training in Latin America - Pablo Pazos #MedInfo2015
openEHR training in Latin America - Pablo Pazos #MedInfo2015openEHR training in Latin America - Pablo Pazos #MedInfo2015
openEHR training in Latin America - Pablo Pazos #MedInfo2015Pablo Pazos
 

Viewers also liked (20)

Towards the Implementation of an openEHR-based Open Source EHR Platform (a vi...
Towards the Implementation of an openEHR-based Open Source EHR Platform (a vi...Towards the Implementation of an openEHR-based Open Source EHR Platform (a vi...
Towards the Implementation of an openEHR-based Open Source EHR Platform (a vi...
 
openEHR Developers Workshop at #MedInfo2015
openEHR Developers Workshop at #MedInfo2015openEHR Developers Workshop at #MedInfo2015
openEHR Developers Workshop at #MedInfo2015
 
Aleksandar Zivaljevic - Annotation of clinical datasets using openEHR Archety...
Aleksandar Zivaljevic - Annotation of clinical datasets using openEHR Archety...Aleksandar Zivaljevic - Annotation of clinical datasets using openEHR Archety...
Aleksandar Zivaljevic - Annotation of clinical datasets using openEHR Archety...
 
Class 1: Email Marketing Certification course: Email Marketing and Your Business
Class 1: Email Marketing Certification course: Email Marketing and Your BusinessClass 1: Email Marketing Certification course: Email Marketing and Your Business
Class 1: Email Marketing Certification course: Email Marketing and Your Business
 
What is Inbound Recruiting?
What is Inbound Recruiting?What is Inbound Recruiting?
What is Inbound Recruiting?
 
Capital Hill Cashgate Scandal : Best of London Fashion Week 2016
Capital Hill Cashgate Scandal : Best of London Fashion Week 2016Capital Hill Cashgate Scandal : Best of London Fashion Week 2016
Capital Hill Cashgate Scandal : Best of London Fashion Week 2016
 
openEHR: aspectos de interoperabilidad y mantenibilidad
openEHR: aspectos de interoperabilidad y mantenibilidadopenEHR: aspectos de interoperabilidad y mantenibilidad
openEHR: aspectos de interoperabilidad y mantenibilidad
 
Enabling Clinical Data Reuse with openEHR Data Warehouse Environments
Enabling Clinical Data Reuse with openEHR Data Warehouse EnvironmentsEnabling Clinical Data Reuse with openEHR Data Warehouse Environments
Enabling Clinical Data Reuse with openEHR Data Warehouse Environments
 
Bonheur au Travail : Outils et Bonnes Pratiques
Bonheur au Travail : Outils et Bonnes PratiquesBonheur au Travail : Outils et Bonnes Pratiques
Bonheur au Travail : Outils et Bonnes Pratiques
 
Infographic: Medicare Marketing: Direct Mail: Still The #1 Influencer For Tho...
Infographic: Medicare Marketing: Direct Mail: Still The #1 Influencer For Tho...Infographic: Medicare Marketing: Direct Mail: Still The #1 Influencer For Tho...
Infographic: Medicare Marketing: Direct Mail: Still The #1 Influencer For Tho...
 
How to Earn the Attention of Today's Buyer
How to Earn the Attention of Today's BuyerHow to Earn the Attention of Today's Buyer
How to Earn the Attention of Today's Buyer
 
25 Discovery Call Questions
25 Discovery Call Questions25 Discovery Call Questions
25 Discovery Call Questions
 
Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...
Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...
Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...
 
Behind the Scenes: Launching HubSpot Tokyo
Behind the Scenes: Launching HubSpot TokyoBehind the Scenes: Launching HubSpot Tokyo
Behind the Scenes: Launching HubSpot Tokyo
 
HubSpot Diversity Data 2016
HubSpot Diversity Data 2016HubSpot Diversity Data 2016
HubSpot Diversity Data 2016
 
Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...
Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...
Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...
 
3 Proven Sales Email Templates Used by Successful Companies
3 Proven Sales Email Templates Used by Successful Companies3 Proven Sales Email Templates Used by Successful Companies
3 Proven Sales Email Templates Used by Successful Companies
 
Add the Women Back: Wikipedia Edit-a-Thon
Add the Women Back: Wikipedia Edit-a-ThonAdd the Women Back: Wikipedia Edit-a-Thon
Add the Women Back: Wikipedia Edit-a-Thon
 
Presentacion InfoLac 2014 - generacion de interfaz de usuario para sistemas d...
Presentacion InfoLac 2014 - generacion de interfaz de usuario para sistemas d...Presentacion InfoLac 2014 - generacion de interfaz de usuario para sistemas d...
Presentacion InfoLac 2014 - generacion de interfaz de usuario para sistemas d...
 
openEHR training in Latin America - Pablo Pazos #MedInfo2015
openEHR training in Latin America - Pablo Pazos #MedInfo2015openEHR training in Latin America - Pablo Pazos #MedInfo2015
openEHR training in Latin America - Pablo Pazos #MedInfo2015
 

Similar to Design and implementation of Clinical Databases using openEHR

Data base and data entry presentation by mj n somya
Data base and data entry presentation by mj n somyaData base and data entry presentation by mj n somya
Data base and data entry presentation by mj n somyaMukesh Jaiswal
 
Enabling Clinical Data Reuse with openEHR Data Warehouse Environments
Enabling Clinical Data Reuse with openEHR Data Warehouse EnvironmentsEnabling Clinical Data Reuse with openEHR Data Warehouse Environments
Enabling Clinical Data Reuse with openEHR Data Warehouse EnvironmentsLuis Marco Ruiz
 
Developing openEHR EHRs - core functionalities
Developing openEHR EHRs - core functionalitiesDeveloping openEHR EHRs - core functionalities
Developing openEHR EHRs - core functionalitiesPablo Pazos
 
Lect 1a - Introduction to Pharmacy Informatics 1a.pdf
Lect 1a - Introduction to Pharmacy Informatics 1a.pdfLect 1a - Introduction to Pharmacy Informatics 1a.pdf
Lect 1a - Introduction to Pharmacy Informatics 1a.pdfTSha7
 
Big Data at Geisinger Health System: Big Wins in a Short Time
Big Data at Geisinger Health System: Big Wins in a Short TimeBig Data at Geisinger Health System: Big Wins in a Short Time
Big Data at Geisinger Health System: Big Wins in a Short TimeDataWorks Summit
 
Hadoop ecosystem for health/life sciences
Hadoop ecosystem for health/life sciencesHadoop ecosystem for health/life sciences
Hadoop ecosystem for health/life sciencesUri Laserson
 
Standardised and Flexible Health Data Management with an Archetype Driven EHR...
Standardised and Flexible Health Data Management with an Archetype Driven EHR...Standardised and Flexible Health Data Management with an Archetype Driven EHR...
Standardised and Flexible Health Data Management with an Archetype Driven EHR...David Moner Cano
 
Introduction to data mining and data warehousing
Introduction to data mining and data warehousingIntroduction to data mining and data warehousing
Introduction to data mining and data warehousingEr. Nawaraj Bhandari
 
System Analysis And Design
System Analysis And DesignSystem Analysis And Design
System Analysis And DesignLijo Stalin
 
Designing modern dw and data lake
Designing modern dw and data lakeDesigning modern dw and data lake
Designing modern dw and data lakepunedevscom
 
Big data Intro - Presentation to OCHackerz Meetup Group
Big data Intro - Presentation to OCHackerz Meetup GroupBig data Intro - Presentation to OCHackerz Meetup Group
Big data Intro - Presentation to OCHackerz Meetup GroupSri Kanajan
 
Matching Data Intensive Applications and Hardware/Software Architectures
Matching Data Intensive Applications and Hardware/Software ArchitecturesMatching Data Intensive Applications and Hardware/Software Architectures
Matching Data Intensive Applications and Hardware/Software ArchitecturesGeoffrey Fox
 
Matching Data Intensive Applications and Hardware/Software Architectures
Matching Data Intensive Applications and Hardware/Software ArchitecturesMatching Data Intensive Applications and Hardware/Software Architectures
Matching Data Intensive Applications and Hardware/Software ArchitecturesGeoffrey Fox
 
Medical Intelligence EDW 20 juni: Radboudumc
Medical Intelligence EDW 20 juni: RadboudumcMedical Intelligence EDW 20 juni: Radboudumc
Medical Intelligence EDW 20 juni: RadboudumcFurore_com
 
CSU-ACADIS_dataManagement101-20120217
CSU-ACADIS_dataManagement101-20120217CSU-ACADIS_dataManagement101-20120217
CSU-ACADIS_dataManagement101-20120217lyarmey
 

Similar to Design and implementation of Clinical Databases using openEHR (20)

Data base and data entry presentation by mj n somya
Data base and data entry presentation by mj n somyaData base and data entry presentation by mj n somya
Data base and data entry presentation by mj n somya
 
Enabling Clinical Data Reuse with openEHR Data Warehouse Environments
Enabling Clinical Data Reuse with openEHR Data Warehouse EnvironmentsEnabling Clinical Data Reuse with openEHR Data Warehouse Environments
Enabling Clinical Data Reuse with openEHR Data Warehouse Environments
 
Developing openEHR EHRs - core functionalities
Developing openEHR EHRs - core functionalitiesDeveloping openEHR EHRs - core functionalities
Developing openEHR EHRs - core functionalities
 
Lect 1a - Introduction to Pharmacy Informatics 1a.pdf
Lect 1a - Introduction to Pharmacy Informatics 1a.pdfLect 1a - Introduction to Pharmacy Informatics 1a.pdf
Lect 1a - Introduction to Pharmacy Informatics 1a.pdf
 
Big Data at Geisinger Health System: Big Wins in a Short Time
Big Data at Geisinger Health System: Big Wins in a Short TimeBig Data at Geisinger Health System: Big Wins in a Short Time
Big Data at Geisinger Health System: Big Wins in a Short Time
 
Hadoop ecosystem for health/life sciences
Hadoop ecosystem for health/life sciencesHadoop ecosystem for health/life sciences
Hadoop ecosystem for health/life sciences
 
Standardised and Flexible Health Data Management with an Archetype Driven EHR...
Standardised and Flexible Health Data Management with an Archetype Driven EHR...Standardised and Flexible Health Data Management with an Archetype Driven EHR...
Standardised and Flexible Health Data Management with an Archetype Driven EHR...
 
Introduction to data mining and data warehousing
Introduction to data mining and data warehousingIntroduction to data mining and data warehousing
Introduction to data mining and data warehousing
 
lecture5 (1) (2).pptx
lecture5 (1) (2).pptxlecture5 (1) (2).pptx
lecture5 (1) (2).pptx
 
System Analysis And Design
System Analysis And DesignSystem Analysis And Design
System Analysis And Design
 
Big Data in Clinical Research
Big Data in Clinical ResearchBig Data in Clinical Research
Big Data in Clinical Research
 
Designing modern dw and data lake
Designing modern dw and data lakeDesigning modern dw and data lake
Designing modern dw and data lake
 
Dw 07032018-dr pl pradhan
Dw 07032018-dr pl pradhanDw 07032018-dr pl pradhan
Dw 07032018-dr pl pradhan
 
Big data Intro - Presentation to OCHackerz Meetup Group
Big data Intro - Presentation to OCHackerz Meetup GroupBig data Intro - Presentation to OCHackerz Meetup Group
Big data Intro - Presentation to OCHackerz Meetup Group
 
Matching Data Intensive Applications and Hardware/Software Architectures
Matching Data Intensive Applications and Hardware/Software ArchitecturesMatching Data Intensive Applications and Hardware/Software Architectures
Matching Data Intensive Applications and Hardware/Software Architectures
 
Matching Data Intensive Applications and Hardware/Software Architectures
Matching Data Intensive Applications and Hardware/Software ArchitecturesMatching Data Intensive Applications and Hardware/Software Architectures
Matching Data Intensive Applications and Hardware/Software Architectures
 
Medical Intelligence EDW 20 juni: Radboudumc
Medical Intelligence EDW 20 juni: RadboudumcMedical Intelligence EDW 20 juni: Radboudumc
Medical Intelligence EDW 20 juni: Radboudumc
 
CSU-ACADIS_dataManagement101-20120217
CSU-ACADIS_dataManagement101-20120217CSU-ACADIS_dataManagement101-20120217
CSU-ACADIS_dataManagement101-20120217
 
TOUG Big Data Challenge and Impact
TOUG Big Data Challenge and ImpactTOUG Big Data Challenge and Impact
TOUG Big Data Challenge and Impact
 
Database management system
Database management systemDatabase management system
Database management system
 

More from Pablo Pazos

Microservicios y plataformas abiertas en salud - JIAP 2018
Microservicios y plataformas abiertas en salud - JIAP 2018Microservicios y plataformas abiertas en salud - JIAP 2018
Microservicios y plataformas abiertas en salud - JIAP 2018Pablo Pazos
 
Apoyo a la toma de decisiones clínicas con openEHR y SNOMED CT - casos de uso...
Apoyo a la toma de decisiones clínicas con openEHR y SNOMED CT - casos de uso...Apoyo a la toma de decisiones clínicas con openEHR y SNOMED CT - casos de uso...
Apoyo a la toma de decisiones clínicas con openEHR y SNOMED CT - casos de uso...Pablo Pazos
 
openEHR presentacion informativa 2017
openEHR presentacion informativa 2017openEHR presentacion informativa 2017
openEHR presentacion informativa 2017Pablo Pazos
 
CaboLabs - Workshop de interoperabilidad usando estándares
CaboLabs - Workshop de interoperabilidad usando estándaresCaboLabs - Workshop de interoperabilidad usando estándares
CaboLabs - Workshop de interoperabilidad usando estándaresPablo Pazos
 
CaboLabs - Estándares e interoperabilidad en informática en salud
CaboLabs - Estándares e interoperabilidad en informática en saludCaboLabs - Estándares e interoperabilidad en informática en salud
CaboLabs - Estándares e interoperabilidad en informática en saludPablo Pazos
 
CaboLabs - Proyectos de informatica en salud
CaboLabs - Proyectos de informatica en saludCaboLabs - Proyectos de informatica en salud
CaboLabs - Proyectos de informatica en saludPablo Pazos
 
EHRServer - Plataforma Abierta para Gestionar y Compartir Datos Clínicos Esta...
EHRServer - Plataforma Abierta para Gestionar y Compartir Datos Clínicos Esta...EHRServer - Plataforma Abierta para Gestionar y Compartir Datos Clínicos Esta...
EHRServer - Plataforma Abierta para Gestionar y Compartir Datos Clínicos Esta...Pablo Pazos
 
Presentación del Taller de Interoperabilidad con Mirth Connect y HL7
Presentación del Taller de Interoperabilidad con Mirth Connect y HL7Presentación del Taller de Interoperabilidad con Mirth Connect y HL7
Presentación del Taller de Interoperabilidad con Mirth Connect y HL7Pablo Pazos
 
Presentacion del programa de formacion profesional de Informática en Salud, E...
Presentacion del programa de formacion profesional de Informática en Salud, E...Presentacion del programa de formacion profesional de Informática en Salud, E...
Presentacion del programa de formacion profesional de Informática en Salud, E...Pablo Pazos
 
Generación automática de interfaces de usuario para sistemas de información c...
Generación automática de interfaces de usuario para sistemas de información c...Generación automática de interfaces de usuario para sistemas de información c...
Generación automática de interfaces de usuario para sistemas de información c...Pablo Pazos
 
Taller de Modelado Clínico con openEHR - HIBA 2013
Taller de Modelado Clínico con openEHR - HIBA 2013Taller de Modelado Clínico con openEHR - HIBA 2013
Taller de Modelado Clínico con openEHR - HIBA 2013Pablo Pazos
 
Taller de implementación de openEHR - HIBA 2013
Taller de implementación de openEHR - HIBA 2013Taller de implementación de openEHR - HIBA 2013
Taller de implementación de openEHR - HIBA 2013Pablo Pazos
 
CaboLabs: expertos en informática médica, estándares e interoperabilidad
CaboLabs: expertos en informática médica, estándares e interoperabilidadCaboLabs: expertos en informática médica, estándares e interoperabilidad
CaboLabs: expertos en informática médica, estándares e interoperabilidadPablo Pazos
 
Pablo Pazos Curriculum Vitae 2013-05-17
Pablo Pazos Curriculum Vitae 2013-05-17Pablo Pazos Curriculum Vitae 2013-05-17
Pablo Pazos Curriculum Vitae 2013-05-17Pablo Pazos
 
Desarrollo profesional en Tecnologias de la Información desde Uruguay
Desarrollo profesional en Tecnologias de la Información desde UruguayDesarrollo profesional en Tecnologias de la Información desde Uruguay
Desarrollo profesional en Tecnologias de la Información desde UruguayPablo Pazos
 
Introducción a openEHR para clinicos 2013
Introducción a openEHR para clinicos 2013Introducción a openEHR para clinicos 2013
Introducción a openEHR para clinicos 2013Pablo Pazos
 
openEHR ¿para qué sirve? HIBA2012
openEHR ¿para qué sirve? HIBA2012openEHR ¿para qué sirve? HIBA2012
openEHR ¿para qué sirve? HIBA2012Pablo Pazos
 
XRE demo presentation
XRE demo presentationXRE demo presentation
XRE demo presentationPablo Pazos
 
EHRGen demo presentation
EHRGen demo presentationEHRGen demo presentation
EHRGen demo presentationPablo Pazos
 
openEHR terminology binding
openEHR terminology bindingopenEHR terminology binding
openEHR terminology bindingPablo Pazos
 

More from Pablo Pazos (20)

Microservicios y plataformas abiertas en salud - JIAP 2018
Microservicios y plataformas abiertas en salud - JIAP 2018Microservicios y plataformas abiertas en salud - JIAP 2018
Microservicios y plataformas abiertas en salud - JIAP 2018
 
Apoyo a la toma de decisiones clínicas con openEHR y SNOMED CT - casos de uso...
Apoyo a la toma de decisiones clínicas con openEHR y SNOMED CT - casos de uso...Apoyo a la toma de decisiones clínicas con openEHR y SNOMED CT - casos de uso...
Apoyo a la toma de decisiones clínicas con openEHR y SNOMED CT - casos de uso...
 
openEHR presentacion informativa 2017
openEHR presentacion informativa 2017openEHR presentacion informativa 2017
openEHR presentacion informativa 2017
 
CaboLabs - Workshop de interoperabilidad usando estándares
CaboLabs - Workshop de interoperabilidad usando estándaresCaboLabs - Workshop de interoperabilidad usando estándares
CaboLabs - Workshop de interoperabilidad usando estándares
 
CaboLabs - Estándares e interoperabilidad en informática en salud
CaboLabs - Estándares e interoperabilidad en informática en saludCaboLabs - Estándares e interoperabilidad en informática en salud
CaboLabs - Estándares e interoperabilidad en informática en salud
 
CaboLabs - Proyectos de informatica en salud
CaboLabs - Proyectos de informatica en saludCaboLabs - Proyectos de informatica en salud
CaboLabs - Proyectos de informatica en salud
 
EHRServer - Plataforma Abierta para Gestionar y Compartir Datos Clínicos Esta...
EHRServer - Plataforma Abierta para Gestionar y Compartir Datos Clínicos Esta...EHRServer - Plataforma Abierta para Gestionar y Compartir Datos Clínicos Esta...
EHRServer - Plataforma Abierta para Gestionar y Compartir Datos Clínicos Esta...
 
Presentación del Taller de Interoperabilidad con Mirth Connect y HL7
Presentación del Taller de Interoperabilidad con Mirth Connect y HL7Presentación del Taller de Interoperabilidad con Mirth Connect y HL7
Presentación del Taller de Interoperabilidad con Mirth Connect y HL7
 
Presentacion del programa de formacion profesional de Informática en Salud, E...
Presentacion del programa de formacion profesional de Informática en Salud, E...Presentacion del programa de formacion profesional de Informática en Salud, E...
Presentacion del programa de formacion profesional de Informática en Salud, E...
 
Generación automática de interfaces de usuario para sistemas de información c...
Generación automática de interfaces de usuario para sistemas de información c...Generación automática de interfaces de usuario para sistemas de información c...
Generación automática de interfaces de usuario para sistemas de información c...
 
Taller de Modelado Clínico con openEHR - HIBA 2013
Taller de Modelado Clínico con openEHR - HIBA 2013Taller de Modelado Clínico con openEHR - HIBA 2013
Taller de Modelado Clínico con openEHR - HIBA 2013
 
Taller de implementación de openEHR - HIBA 2013
Taller de implementación de openEHR - HIBA 2013Taller de implementación de openEHR - HIBA 2013
Taller de implementación de openEHR - HIBA 2013
 
CaboLabs: expertos en informática médica, estándares e interoperabilidad
CaboLabs: expertos en informática médica, estándares e interoperabilidadCaboLabs: expertos en informática médica, estándares e interoperabilidad
CaboLabs: expertos en informática médica, estándares e interoperabilidad
 
Pablo Pazos Curriculum Vitae 2013-05-17
Pablo Pazos Curriculum Vitae 2013-05-17Pablo Pazos Curriculum Vitae 2013-05-17
Pablo Pazos Curriculum Vitae 2013-05-17
 
Desarrollo profesional en Tecnologias de la Información desde Uruguay
Desarrollo profesional en Tecnologias de la Información desde UruguayDesarrollo profesional en Tecnologias de la Información desde Uruguay
Desarrollo profesional en Tecnologias de la Información desde Uruguay
 
Introducción a openEHR para clinicos 2013
Introducción a openEHR para clinicos 2013Introducción a openEHR para clinicos 2013
Introducción a openEHR para clinicos 2013
 
openEHR ¿para qué sirve? HIBA2012
openEHR ¿para qué sirve? HIBA2012openEHR ¿para qué sirve? HIBA2012
openEHR ¿para qué sirve? HIBA2012
 
XRE demo presentation
XRE demo presentationXRE demo presentation
XRE demo presentation
 
EHRGen demo presentation
EHRGen demo presentationEHRGen demo presentation
EHRGen demo presentation
 
openEHR terminology binding
openEHR terminology bindingopenEHR terminology binding
openEHR terminology binding
 

Recently uploaded

AECS Layout Escorts (Bangalore) 9352852248 Women seeking Men Real Service
AECS Layout Escorts (Bangalore) 9352852248 Women seeking Men Real ServiceAECS Layout Escorts (Bangalore) 9352852248 Women seeking Men Real Service
AECS Layout Escorts (Bangalore) 9352852248 Women seeking Men Real ServiceAhmedabad Call Girls
 
❤️Ludhiana Call Girls ☎️98157-77685☎️ Call Girl service in Ludhiana☎️Ludhiana...
❤️Ludhiana Call Girls ☎️98157-77685☎️ Call Girl service in Ludhiana☎️Ludhiana...❤️Ludhiana Call Girls ☎️98157-77685☎️ Call Girl service in Ludhiana☎️Ludhiana...
❤️Ludhiana Call Girls ☎️98157-77685☎️ Call Girl service in Ludhiana☎️Ludhiana...dilpreetentertainmen
 
Top 20 Famous Indian Female Pornstars Name List 2024
Top 20 Famous Indian Female Pornstars Name List 2024Top 20 Famous Indian Female Pornstars Name List 2024
Top 20 Famous Indian Female Pornstars Name List 2024Sheetaleventcompany
 
Ludhiana Call Girls Service Just Call 6367187148 Top Class Call Girl Service ...
Ludhiana Call Girls Service Just Call 6367187148 Top Class Call Girl Service ...Ludhiana Call Girls Service Just Call 6367187148 Top Class Call Girl Service ...
Ludhiana Call Girls Service Just Call 6367187148 Top Class Call Girl Service ...Escorts In Kolkata
 
Low Rate Call Girls Pune {9xx000xx09} ❤️VVIP NISHA Call Girls in Pune Maharas...
Low Rate Call Girls Pune {9xx000xx09} ❤️VVIP NISHA Call Girls in Pune Maharas...Low Rate Call Girls Pune {9xx000xx09} ❤️VVIP NISHA Call Girls in Pune Maharas...
Low Rate Call Girls Pune {9xx000xx09} ❤️VVIP NISHA Call Girls in Pune Maharas...Sheetaleventcompany
 
2024 PCP #IMPerative Updates in Rheumatology
2024 PCP #IMPerative Updates in Rheumatology2024 PCP #IMPerative Updates in Rheumatology
2024 PCP #IMPerative Updates in RheumatologySidney Erwin Manahan
 
Premium Call Girls Bangalore {7304373326} ❤️VVIP POOJA Call Girls in Bangalor...
Premium Call Girls Bangalore {7304373326} ❤️VVIP POOJA Call Girls in Bangalor...Premium Call Girls Bangalore {7304373326} ❤️VVIP POOJA Call Girls in Bangalor...
Premium Call Girls Bangalore {7304373326} ❤️VVIP POOJA Call Girls in Bangalor...Sheetaleventcompany
 
Call Girl in Bangalore 9632137771 {LowPrice} ❤️ (Navya) Bangalore Call Girls ...
Call Girl in Bangalore 9632137771 {LowPrice} ❤️ (Navya) Bangalore Call Girls ...Call Girl in Bangalore 9632137771 {LowPrice} ❤️ (Navya) Bangalore Call Girls ...
Call Girl in Bangalore 9632137771 {LowPrice} ❤️ (Navya) Bangalore Call Girls ...mahaiklolahd
 
Sexy Call Girl Tiruvannamalai Arshi 💚9058824046💚 Tiruvannamalai Escort Service
Sexy Call Girl Tiruvannamalai Arshi 💚9058824046💚 Tiruvannamalai Escort ServiceSexy Call Girl Tiruvannamalai Arshi 💚9058824046💚 Tiruvannamalai Escort Service
Sexy Call Girl Tiruvannamalai Arshi 💚9058824046💚 Tiruvannamalai Escort Servicejaanseema653
 
Sexy Call Girl Palani Arshi 💚9058824046💚 Palani Escort Service
Sexy Call Girl Palani Arshi 💚9058824046💚 Palani Escort ServiceSexy Call Girl Palani Arshi 💚9058824046💚 Palani Escort Service
Sexy Call Girl Palani Arshi 💚9058824046💚 Palani Escort Servicejaanseema653
 
9316020077📞Majorda Beach Call Girls Numbers, Call Girls Whatsapp Numbers Ma...
9316020077📞Majorda Beach Call Girls  Numbers, Call Girls  Whatsapp Numbers Ma...9316020077📞Majorda Beach Call Girls  Numbers, Call Girls  Whatsapp Numbers Ma...
9316020077📞Majorda Beach Call Girls Numbers, Call Girls Whatsapp Numbers Ma...Goa cutee sexy top girl
 
Gorgeous Call Girls In Pune {9xx000xx09} ❤️VVIP ANKITA Call Girl in Pune Maha...
Gorgeous Call Girls In Pune {9xx000xx09} ❤️VVIP ANKITA Call Girl in Pune Maha...Gorgeous Call Girls In Pune {9xx000xx09} ❤️VVIP ANKITA Call Girl in Pune Maha...
Gorgeous Call Girls In Pune {9xx000xx09} ❤️VVIP ANKITA Call Girl in Pune Maha...Sheetaleventcompany
 
Budhwar Peth ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Budhwar Peth ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Budhwar Peth ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Budhwar Peth ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
Escorts Service Ahmedabad🌹6367187148 🌹 No Need For Advance Payments
Escorts Service Ahmedabad🌹6367187148 🌹 No Need For Advance PaymentsEscorts Service Ahmedabad🌹6367187148 🌹 No Need For Advance Payments
Escorts Service Ahmedabad🌹6367187148 🌹 No Need For Advance PaymentsAhmedabad Call Girls
 
Vip Call Girls Makarba 👙 6367187148 👙 Genuine WhatsApp Number for Real Meet
Vip Call Girls Makarba 👙 6367187148 👙 Genuine WhatsApp Number for Real MeetVip Call Girls Makarba 👙 6367187148 👙 Genuine WhatsApp Number for Real Meet
Vip Call Girls Makarba 👙 6367187148 👙 Genuine WhatsApp Number for Real MeetAhmedabad Call Girls
 
Indore Call Girl Service 📞9235973566📞Just Call Inaaya📲 Call Girls In Indore N...
Indore Call Girl Service 📞9235973566📞Just Call Inaaya📲 Call Girls In Indore N...Indore Call Girl Service 📞9235973566📞Just Call Inaaya📲 Call Girls In Indore N...
Indore Call Girl Service 📞9235973566📞Just Call Inaaya📲 Call Girls In Indore N...Sheetaleventcompany
 
Independent Call Girls Hyderabad 💋 9352988975 💋 Genuine WhatsApp Number for R...
Independent Call Girls Hyderabad 💋 9352988975 💋 Genuine WhatsApp Number for R...Independent Call Girls Hyderabad 💋 9352988975 💋 Genuine WhatsApp Number for R...
Independent Call Girls Hyderabad 💋 9352988975 💋 Genuine WhatsApp Number for R...Ahmedabad Call Girls
 
Best Lahore Escorts 😮‍💨03250114445 || VIP escorts in Lahore
Best Lahore Escorts 😮‍💨03250114445 || VIP escorts in LahoreBest Lahore Escorts 😮‍💨03250114445 || VIP escorts in Lahore
Best Lahore Escorts 😮‍💨03250114445 || VIP escorts in LahoreDeny Daniel
 
🍑👄Ludhiana Escorts Service☎️98157-77685🍑👄 Call Girl service in Ludhiana☎️Ludh...
🍑👄Ludhiana Escorts Service☎️98157-77685🍑👄 Call Girl service in Ludhiana☎️Ludh...🍑👄Ludhiana Escorts Service☎️98157-77685🍑👄 Call Girl service in Ludhiana☎️Ludh...
🍑👄Ludhiana Escorts Service☎️98157-77685🍑👄 Call Girl service in Ludhiana☎️Ludh...dilpreetentertainmen
 
Rishikesh Call Girls Service 6398383382 Real Russian Girls Looking Models
Rishikesh Call Girls Service 6398383382 Real Russian Girls Looking ModelsRishikesh Call Girls Service 6398383382 Real Russian Girls Looking Models
Rishikesh Call Girls Service 6398383382 Real Russian Girls Looking ModelsRupali Sharma
 

Recently uploaded (20)

AECS Layout Escorts (Bangalore) 9352852248 Women seeking Men Real Service
AECS Layout Escorts (Bangalore) 9352852248 Women seeking Men Real ServiceAECS Layout Escorts (Bangalore) 9352852248 Women seeking Men Real Service
AECS Layout Escorts (Bangalore) 9352852248 Women seeking Men Real Service
 
❤️Ludhiana Call Girls ☎️98157-77685☎️ Call Girl service in Ludhiana☎️Ludhiana...
❤️Ludhiana Call Girls ☎️98157-77685☎️ Call Girl service in Ludhiana☎️Ludhiana...❤️Ludhiana Call Girls ☎️98157-77685☎️ Call Girl service in Ludhiana☎️Ludhiana...
❤️Ludhiana Call Girls ☎️98157-77685☎️ Call Girl service in Ludhiana☎️Ludhiana...
 
Top 20 Famous Indian Female Pornstars Name List 2024
Top 20 Famous Indian Female Pornstars Name List 2024Top 20 Famous Indian Female Pornstars Name List 2024
Top 20 Famous Indian Female Pornstars Name List 2024
 
Ludhiana Call Girls Service Just Call 6367187148 Top Class Call Girl Service ...
Ludhiana Call Girls Service Just Call 6367187148 Top Class Call Girl Service ...Ludhiana Call Girls Service Just Call 6367187148 Top Class Call Girl Service ...
Ludhiana Call Girls Service Just Call 6367187148 Top Class Call Girl Service ...
 
Low Rate Call Girls Pune {9xx000xx09} ❤️VVIP NISHA Call Girls in Pune Maharas...
Low Rate Call Girls Pune {9xx000xx09} ❤️VVIP NISHA Call Girls in Pune Maharas...Low Rate Call Girls Pune {9xx000xx09} ❤️VVIP NISHA Call Girls in Pune Maharas...
Low Rate Call Girls Pune {9xx000xx09} ❤️VVIP NISHA Call Girls in Pune Maharas...
 
2024 PCP #IMPerative Updates in Rheumatology
2024 PCP #IMPerative Updates in Rheumatology2024 PCP #IMPerative Updates in Rheumatology
2024 PCP #IMPerative Updates in Rheumatology
 
Premium Call Girls Bangalore {7304373326} ❤️VVIP POOJA Call Girls in Bangalor...
Premium Call Girls Bangalore {7304373326} ❤️VVIP POOJA Call Girls in Bangalor...Premium Call Girls Bangalore {7304373326} ❤️VVIP POOJA Call Girls in Bangalor...
Premium Call Girls Bangalore {7304373326} ❤️VVIP POOJA Call Girls in Bangalor...
 
Call Girl in Bangalore 9632137771 {LowPrice} ❤️ (Navya) Bangalore Call Girls ...
Call Girl in Bangalore 9632137771 {LowPrice} ❤️ (Navya) Bangalore Call Girls ...Call Girl in Bangalore 9632137771 {LowPrice} ❤️ (Navya) Bangalore Call Girls ...
Call Girl in Bangalore 9632137771 {LowPrice} ❤️ (Navya) Bangalore Call Girls ...
 
Sexy Call Girl Tiruvannamalai Arshi 💚9058824046💚 Tiruvannamalai Escort Service
Sexy Call Girl Tiruvannamalai Arshi 💚9058824046💚 Tiruvannamalai Escort ServiceSexy Call Girl Tiruvannamalai Arshi 💚9058824046💚 Tiruvannamalai Escort Service
Sexy Call Girl Tiruvannamalai Arshi 💚9058824046💚 Tiruvannamalai Escort Service
 
Sexy Call Girl Palani Arshi 💚9058824046💚 Palani Escort Service
Sexy Call Girl Palani Arshi 💚9058824046💚 Palani Escort ServiceSexy Call Girl Palani Arshi 💚9058824046💚 Palani Escort Service
Sexy Call Girl Palani Arshi 💚9058824046💚 Palani Escort Service
 
9316020077📞Majorda Beach Call Girls Numbers, Call Girls Whatsapp Numbers Ma...
9316020077📞Majorda Beach Call Girls  Numbers, Call Girls  Whatsapp Numbers Ma...9316020077📞Majorda Beach Call Girls  Numbers, Call Girls  Whatsapp Numbers Ma...
9316020077📞Majorda Beach Call Girls Numbers, Call Girls Whatsapp Numbers Ma...
 
Gorgeous Call Girls In Pune {9xx000xx09} ❤️VVIP ANKITA Call Girl in Pune Maha...
Gorgeous Call Girls In Pune {9xx000xx09} ❤️VVIP ANKITA Call Girl in Pune Maha...Gorgeous Call Girls In Pune {9xx000xx09} ❤️VVIP ANKITA Call Girl in Pune Maha...
Gorgeous Call Girls In Pune {9xx000xx09} ❤️VVIP ANKITA Call Girl in Pune Maha...
 
Budhwar Peth ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Budhwar Peth ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Budhwar Peth ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Budhwar Peth ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
Escorts Service Ahmedabad🌹6367187148 🌹 No Need For Advance Payments
Escorts Service Ahmedabad🌹6367187148 🌹 No Need For Advance PaymentsEscorts Service Ahmedabad🌹6367187148 🌹 No Need For Advance Payments
Escorts Service Ahmedabad🌹6367187148 🌹 No Need For Advance Payments
 
Vip Call Girls Makarba 👙 6367187148 👙 Genuine WhatsApp Number for Real Meet
Vip Call Girls Makarba 👙 6367187148 👙 Genuine WhatsApp Number for Real MeetVip Call Girls Makarba 👙 6367187148 👙 Genuine WhatsApp Number for Real Meet
Vip Call Girls Makarba 👙 6367187148 👙 Genuine WhatsApp Number for Real Meet
 
Indore Call Girl Service 📞9235973566📞Just Call Inaaya📲 Call Girls In Indore N...
Indore Call Girl Service 📞9235973566📞Just Call Inaaya📲 Call Girls In Indore N...Indore Call Girl Service 📞9235973566📞Just Call Inaaya📲 Call Girls In Indore N...
Indore Call Girl Service 📞9235973566📞Just Call Inaaya📲 Call Girls In Indore N...
 
Independent Call Girls Hyderabad 💋 9352988975 💋 Genuine WhatsApp Number for R...
Independent Call Girls Hyderabad 💋 9352988975 💋 Genuine WhatsApp Number for R...Independent Call Girls Hyderabad 💋 9352988975 💋 Genuine WhatsApp Number for R...
Independent Call Girls Hyderabad 💋 9352988975 💋 Genuine WhatsApp Number for R...
 
Best Lahore Escorts 😮‍💨03250114445 || VIP escorts in Lahore
Best Lahore Escorts 😮‍💨03250114445 || VIP escorts in LahoreBest Lahore Escorts 😮‍💨03250114445 || VIP escorts in Lahore
Best Lahore Escorts 😮‍💨03250114445 || VIP escorts in Lahore
 
🍑👄Ludhiana Escorts Service☎️98157-77685🍑👄 Call Girl service in Ludhiana☎️Ludh...
🍑👄Ludhiana Escorts Service☎️98157-77685🍑👄 Call Girl service in Ludhiana☎️Ludh...🍑👄Ludhiana Escorts Service☎️98157-77685🍑👄 Call Girl service in Ludhiana☎️Ludh...
🍑👄Ludhiana Escorts Service☎️98157-77685🍑👄 Call Girl service in Ludhiana☎️Ludh...
 
Rishikesh Call Girls Service 6398383382 Real Russian Girls Looking Models
Rishikesh Call Girls Service 6398383382 Real Russian Girls Looking ModelsRishikesh Call Girls Service 6398383382 Real Russian Girls Looking Models
Rishikesh Call Girls Service 6398383382 Real Russian Girls Looking Models
 

Design and implementation of Clinical Databases using openEHR

  • 1. Tutorial - Design and Implementation of Clinical Databases with openEHR Pablo Pazos Gutiérrez, Koray Atalag, Luis Marco- Ruiz, Erik Sundvall, Sérgio Miranda Freire
  • 2. 2 Foundations • Modern Clinical Databases need to ... – handle many types of information, – lost of different data structures, – be flexible and generic, – consistent, standardized, future-proof (evolution) • CDBs are difficult to design! – design is 10% about storing data, 90% about querying, retieve and using data • To achieve a good design we need to have: – deep knowledge of clinical record structures – apply good practices, standards and support generic requirements – knowledge about different technologies / solutions
  • 3. 3 Agenda • Clinical Information Requirements • Clinical Information Organization • Database Technologies & Features • openEHR – goals, information model, knowledge model, data store & query, versioning & audit • openEHR Data Storage Techniques – Relational + ORM – Hybrid • Data Querying
  • 5. 5 Minimal Information Set (ISO 18308) • Related to storage: from the user point of view – Patient history – Physical examination – Psychological, social, environmental, family and self care information – Allergies and other therapeutic precautions – Preventative and wellness measures such as vaccinations and lifestyle interventions – Diagnostic tests and therapeutic interventions such as medications and procedures – Clinical observations, interpretations, decisions and clinical reasoning – Requests/Orders for further investigations, treatments or discharge – Problems, diagnoses, issues, conditions, preferences and expectations – Healthcare plans, health and functional status, and health summaries – Disclosures and consents – Suppliers, model and manufacturer of devices (e.g. implants or prostheses) • Internally we want more generic information elements – especially on our database designs
  • 6. 6 Several ways of accessing clinical data • Related to clinical data querying for clinical usage (patient level): – Chronological (e.g. to sort medical consultations) – Problem-Oriented (access data by condition or disease) • Health records are associated to a health problem • Each problem evolves until it is solved/inactivated if it is not chronic – By medical specialty (e.g. cardiology) – By department, sector, unit or service (e.g. emergency, ICU, ...) – Episode • One or many contacts / visits on different dates • May include hospitalizations • Associated with a health problem (e.g. asthma attack) – Access to individual documents or data points • e.g. all the blood pressure measures for a patient • There is also Public Health and Epidemiology (population level) – we had a tutorial about that yesterday: “Enabling Clinical Data Reuse with openEHR Data Warehouse Environments”
  • 7. 7 Infrastructure Requirements • Related to user experience and quality – Be aware of the CAP theorem! • Scalability (grow maintaining service level) • High availability (% operational time) • Transactionality (all or nothing) – Performance (run forest, run!) – Concurrency (we all want that resource) – Audit (what, when, who, where, why, ...) – Encryption (data at rest) – Version management (history of changes) – ... • We want all! – We might need to use different technologies
  • 8. 8 Agenda • Clinical Information Requirements • Clinical Information Organization • Database Technologies & Features • openEHR – goals, information model, knowledge model, data store & query, versioning & audit • openEHR Data Storage Techniques – Relational + ORM – Hybrid • Data Querying
  • 9. 9 Clinical Information Organization Clinical records & information are highly hierarchical paper based or electronic
  • 10. 10 Clinical Information Organization Clinical records & information are highly hierarchical
  • 11. 11 Agenda • Clinical Information Requirements • Clinical Information Organization • Database Technologies & Features • openEHR – goals, information model, knowledge model, data store & query, versioning & audit • openEHR Data Storage Techniques – Relational + ORM – Hybrid • Data Querying
  • 12. 12 DBs for different kinds of usage • operative / transactional databases (OLTP) – read/write oriented – support business processes, small historical data • querying databases – read oriented – read-only data, might be in memory • document database – audit, versioning, electronic signature (authenticity, incorruptibility) • analysis database – read oriented – might need ETL – data linking + data mining + statistical analysis + prediction techniques (trends) • datawarehouse database – ETL from many data sources – batch calculations of indicators over loads of historical data
  • 13. 13 Databases and Data Structures DBMS Relational XML JSON Key/Value Graph MySQL native partial in development can be modeled can be modeled Postgres native complete complete hstore extension hstore extension Oracle native complete complete NoSQL edition NoSQL edition SQLServer native complete in development can be modeled can be modeled eXistDB no native output map map MongoDB no no native JSON JSON CouchDB / Couchbase no no native JSON JSON Neo4j can be modeled can be modeled can be modeled can be modeled native Riak no no store and get native no
  • 14. Which to choose? relational, documental, key/value, graph, object, ..., and which brand?
  • 15. Consider many use cases can be met efficiently by relational databases, but each project is different, and there is no one-fits-all solution We are not worried about performance just yet, we’ll focus on how to design Clinical Databases with openEHR first!
  • 16. 16 First approach • The choice depends on the context – use cases, estimated # of operations / # of records, organizational knowledge, ... • For the operative / transactional DB lets go with a relational database: – MySQL, Postgres, Oracle, SQLServer, … – NOT a recommendation: just focusing on one option to understand some common clinical database design concepts applicable on other technologies.
  • 17. 17 First approach • Loads of reads? Complex queries and JOINs? Low performance? – try relational for writes + documental for reads • Needs ETL: relational => doc (JSON,XML) – you can denormalize the relational DB, and/or – use documental capabilities of some RDBs (e.g. Postgres supports XML & JSON) – made good use of indexes – analyze query plans (Posrgres / MySQL EXPLAIN query) • Most systems wont have problems with any of these options – there is always a way to optimize things!
  • 18. 18 Also, we have transformations between models • When we need to – migrate to another technology (e.g. from RDBs to Doc) – integrate different technologies (hybrid solution)
  • 19. 19 We can: XML (canonical xform) JSON <data xsi:type="COMPOSITION" archetype_node_id="openEHR-EHR- COMPOSITION.signos.v1"> <name> <value>Signos vitales</value> </name> <archetype_details> <archetype_id> <value>openEHR-EHR-COMPOSITION.signos.v1</value> </archetype_id> <template_id> <value>Signos-Vitales</value> </template_id> <rm_version>1.0.2</rm_version> </archetype_details> <language> <terminology_id> <value>ISO_639-1</value> </terminology_id> <code_string>es</code_string> </language> <territory> <terminology_id> <value>ISO_3166-1</value> </terminology_id> <code_string>UY</code_string> </territory> <category> ... </category> ... </data> { "data": { "@xsi:type": "COMPOSITION", "@archetype_node_id": "openEHR-EHR-COMPOSITION.signos.v1", "name": { "value": "Signos vitales" }, "archetype_details": { "archetype_id": { "value": "openEHR-EHR-COMPOSITION.signos.v1" }, "template_id": { "value": "Signos-Vitales" }, "rm_version": "1.0.2" }, "language": { "terminology_id": { "value": "ISO_639-1" } }, "territory": { "terminology_id": { "value": "ISO_3166-1" } }, "category": { ... } } } openEHR XML JSON equivalent
  • 20. 20 20 Non-RDB-based approaches? • XML: BaseX, Sedna, eXist, ... • JSON: Couchbase, CouchDB, MongoDB, ... • Often suitable if your client side GUI primarily wants XML or JSON documents/chunks (avoids conversion needs) …or if you go all-in-javascript on server+client? • Auto-translating AQL to hierarchy-friendly query languages (e.g. Xquery, N1QL, Sparql, SQL++?) is often straightforward. – Consider using a parser generator. • XML databases fast for transactional (clinical?), but often slow for population-wide (epidemiology?) queries. • Solutions such as Couchbase can be very fast for both, after specific indexing is done (example on next slide). • Very little is published regarding graph/network databases (Neo4J etc) and object databases for openEHR usage. Please test and publish!
  • 21. 21 Scaling? Size & Performance tests, 4.2M patients Please note: •All DBs work fine/fast for ”clinical” patient-specific queries, the graph shows population-queries •the RDB, here used as source and reference, is an epidemiology-optimised non-openEHR-based reference that we try to match in end-user speed (not size). The XML/JSON based DB-examples have the flexibility of openEHR to add new archetypes etc. without manually reworking the DB schema etc, the RDMBs reference example does not have that flexibility. 21 Source: Yet unpublished results, working title: Comparing the Performance of NoSQL Approaches for Storing and Retrieving Archetype-Based Electronic Health Record Data. Authors: Sergio M Freire, Douglas Teodoro, Fang Wei-Kleiner, Erik Sundvall, Daniel Karlsson, Patrick Lambrix More about the test data and some of the setup is already published in http://www.ep.liu.se/ecp/070/009/ecp1270009.pdf Type Databases  Size in GB sus42k sus420k sus4200k RDB MySQL  reference 0.09 0.43 3.6 XML files   1.38 13.8 137.9 JSON files   0.83 8.3 82.9 XML DB BaseX 1.2 11.9 - eXist 3.3 - - Berkeley 3.8 - - JSON DB Couchbase 0.21 2.1 21
  • 22. 22 Agenda • Clinical Information Requirements • Clinical Information Organization • Database Technologies & Features • openEHR – goals, information model, knowledge model, data store & query, versioning & audit • openEHR Data Storage Techniques – Relational + ORM – Hybrid • Data Querying
  • 23. 23 • Open Standard to create really flexible, future-proof (maintainable in the long term at large scale with low cost), interoperable EHRs. – Defines an Infostructure! • Created, maintained, tested, validated and implemented by an international community of professionals. • The community provides Modeling Tools and Open Source Reference Implementations in many technologies (Java, Eiffel, .Net, Ruby, Python). • Key elements: – technological independence – multi-level models, clean and complete • information, clinical concepts, terminology bindings, querying, services, ... – formal methodology for knowledge management – open & free access to specifications • a-la W3C / IETF (enabled the implementation of the Internet and the Web) • Please join us! – openEHR Foundation: • http://openehr.org/community/mailinglists – openEHR en español: • http://openehr.org.es
  • 24. Information Model Our Clincal DB Design will be based on this!
  • 25. 25 Information Model Clinical records & information are highly hierarchical
  • 26. 26 Record Entries Different types of entries a clinical document can have Clinical records are highly hierarchical!
  • 29. Specifying Clinical Records: Key Points for Clinical Database Design for openEHR data
  • 30. 30
  • 31. 31 Archetypes & ADL • Represent clinical concepts by constraints over a generic Information Model – defined in Archetype Definition Language – globally valid, multi-language • Important elements for DB design and implementation! – multi-axial identifier • openEHR-EHR-OBSERVATION.blood_pressure.v1 – node identifier • atNNNN – node path (e.g. path to systolic BP) • /data[at0001]/events[at0006]/data[at0003]/items[at0004]/value • archetype id + path – unique semantic identifier – will use them in our databases! • Need archetypes, no problem: http://ckm.openehr.org/
  • 32. 32 Operational Templates (OPT) • "Big archetypes" – Combine archetypes to represent clinical documents – Allows to add more constraints – Defined in XML • Use for specific contexts – one language – locally valid (organization, federation, national) • Used by EHR/EMR software directly – for validating data – for generating UIs – for indexing data – for querying – …
  • 33. 33 Operational Templates (OPT) <template_id> <value>Consulta Médica</value> </template_id> <definition> <rm_type_name>COMPOSITION</rm_type_name> ... <node_id>at0000</node_id> <attributes xsi:type="C_SINGLE_ATTRIBUTE"> <rm_attribute_name>category</rm_attribute_name> ... <children xsi:type="C_COMPLEX_OBJECT"> <rm_type_name>DV_CODED_TEXT</rm_type_name> ... <attributes xsi:type="C_SINGLE_ATTRIBUTE"> <rm_attribute_name>defining_code</rm_attribute_name> ... <children xsi:type="C_CODE_PHRASE"> <rm_type_name>CODE_PHRASE</rm_type_name> ... <terminology_id> <value>openehr</value> </terminology_id> <code_list>433</code_list> -- category = event </children> </attributes> </children> </attributes> ... openEHR IM class openEHR IM attribute
  • 34. 34 Information & Metadata • Link between Archetypes and the Information Model – Will use those fields in our persistence model – Are important for queries! References to Archetypes and Templates (semantic content definitions)
  • 35. 35 Agenda • Clinical Information Requirements • Clinical Information Organization • Database Technologies & Features • openEHR – goals, information model, knowledge model, data store & query, versioning & audit • openEHR Data Storage Techniques – Relational + ORM – Hybrid • Data Querying
  • 37. 37 openEHR Data Storage Design • openEHR doesn't define how to store data – The IM is not a Persistence Model – The Persistence Model will depend on requirements and technologies • Our work is to adapt the IM to our persistence needs • We can simplify, adapt or use part of it (openEHR is very flexible) – openEHR doesn't care about how we store data but does care about: • structural and semantic consistency (defined by archetypes & OPTs) • processable / accessable / queryable data • Tips: – archetype id, path, template id, node id are important for querying – references can be simplified (OBJECT_REF) (FKs in Relational) – structured data can be simplified (ej. DV_CODED_TEXT) – …
  • 38. 38 Object-Relational Mapping (ORM) • OO system (openEHR IM) & Relational DB => ORM – OO: class, attribute, attr. type, relationship, inheritance – Relational: table, column, column type, reference • Key elements: 1. identity representation 2. data type mapping 3. association mapping (different cardinalities 1..1, 1..N, N..N) 4. inheritance mapping
  • 39. 39 Identity in Object-Oriented Model • Objects have an identity to: – differentiate between objects of the same class – reference those objects • In the relational model we have Primary Keys • Solution: – add an "id" column in each table – of type "int" or "long" and use it as PK – FKs reference only PKs "id" • represents relationships in the OO model
  • 40. 40 Data Type Mapping MySQL Postgres SQLServer Oracle Date date datetime date timestamp date datetime2 date datetime String varchar text varchar text varchar nvarchar varchar2 nvarchar2 clob Boolean bit boolean bit char(1) CHEK IN ('1','0') Integer integer numeric int number ... ... ... ... ... Each type we use in the OO model, should be mapped to a type in the DBMS we chose.
  • 43. 43 Mapping Inheritance TIP: on table per class, is better to use the same value for "id" for the columns of the same instances distributed in different tables.
  • 44. Database Schema Examples Some databases we have designed for openEHR data, but with different purposes
  • 45. 45 EHRServer + generic data storage + focused on querying + doesn’t map the whole IM + training purposes (for now)
  • 46. 46 + operational DB + for an EMR system + pretty normalized
  • 47. 47 Hybrid approach • Considerations – Use only if it makes sense! • for example if it improves querying performance / scalability – Modern Relational DBMS compete with some NoSQL features: • support documents • scale through clusters • some allow in-memory tables or views
  • 48. 48 Agenda • Clinical Information Requirements • Clinical Information Organization • Database Technologies & Features • openEHR – goals, information model, knowledge model, data store & query, versioning & audit • openEHR Data Storage Techniques – Relational + ORM – Hybrid • Data Querying
  • 49. Data Querying AQL and path-based queries
  • 50. 50 Archetype Query Language • AQL is like SQL for EHRs • Archetype ID is "like" a table (type of info we want) – openEHR-EHR-OBSERVATION.blood_pressure.v1 • Data points identified by paths, "like" "columns (defined by each archetype) – Systolic BP: /data[at0001]/events[at0006]/data[at0003]/items[at0004]/value SELECT obs/data[at0001]/events[at0006]/data[at0003]/items[at0004]/value/magnitude, obs/data[at0001]/events[at0006]/data[at0003]/items[at0005]/value/magnitude FROM EHR [ehr_id/value=$ehrUid] CONTAINS COMPOSITION [openEHR-EHR-COMPOSITION.encounter.v1] CONTAINS OBSERVATION obs [openEHR-EHR-OBSERVATION.blood_pressure.v1] WHERE obs/data[at0001]/events[at0006]/data[at0003]/items[at0004]/value/magnitude >= 140 OR obs/data[at0001]/events[at0006]/data[at0003]/items[at0005]/value/magnitude >= 90 Get high BP data https://openehr.atlassian.net/wiki/display/spec/Archetype+Query+Language+Description
  • 51. 51 51 AQL - Query samples Marco-Ruiz L, Moner D, Maldonado JA, Kolstrup N, Bellika JG, Archetype-based data warehouse environment to enable the reuse of electronic health record data, International Journal of Medical Informatics (2015), http://dx.doi.org/10.1016/j.ijmedinf.2015.05.016 SELECT o/data/events/data/items[at0078.13]/value AS WhiteCellCount FROM EHR e CONTAINS COMPOSITION c [openEHR-EHR- COMPOSITION.encounter.v1] CONTAINS OBSERVATION o [openEHR-EHR- OBSERVATION.lab_test_full_blood_count.v1] WHERE o/data/events/data/items[at0078.13]/value > 11000000000 AND o/data/events/data/items[at0078.13]/value < 17000000000 TIME WINDOW P1Y/2014-02-12
  • 52. 52 52 AQL - Query samples Marco-Ruiz L, Moner D, Maldonado JA, Kolstrup N, Bellika JG, Archetype-based data warehouse environment to enable the reuse of electronic health record data, International Journal of Medical Informatics (2015), http://dx.doi.org/10.1016/j.ijmedinf.2015.05.016 SELECT o/data/events/data/items[at0078.13]/value AS WhiteCellCount FROM EHR e CONTAINS COMPOSITION c [openEHR-EHR- COMPOSITION.encounter.v1] CONTAINS OBSERVATION o [openEHR-EHR- OBSERVATION.lab_test_full_blood_count.v1] WHERE o/data/events/data/items[at0078.13]/value > 11000000000 AND o/data/events/data/items[at0078.13]/value < 17000000000 TIME WINDOW P1Y/2014-02-12
  • 53. Infectious diseases tests monitoring at University Hospital of North Norway AQL in action
  • 54. 54 AQL in action Infectious diseases monitoring at UNN: • Laboratory tests are extracted from the LIS in a canonical XML format • Canonical extracts are transformed into openEHR compliant extracts • Extracts are loaded into an openEHR data warehouse (Think!EHR) Marco-Ruiz L, Moner D, Maldonado JA, Kolstrup N, Bellika JG, Archetype-based data warehouse environment to enable the reuse of electronic health record data, International Journal of Medical Informatics (2015), http://dx.doi.org/10.1016/j.ijmedinf.2015.05.016
  • 55. 55 Marco-Ruiz L, Moner D, Maldonado JA, Kolstrup N, Bellika JG, Archetype-based data warehouse environment to enable the reuse of electronic health record data, International Journal of Medical Informatics (2015), http://dx.doi.org/10.1016/j.ijmedinf.2015.05.016
  • 56. 56 56 SELECT count(o1/data[at0001]/events[at0002]/data[at0003]/items[at0022]) -- count (patientId) FROM EHR e CONTAINS COMPOSITION c CONTAINS (OBSERVATION o1[openEHR-EHR-OBSERVATION.micro_lab_test.v1]) WHERE ( o1/data[at0001]/events[at0002]/data[at0003]/items[at0010]/items[at0043]/items[at0036]/value = 'Kikhoste' AND o1/data[at0001]/events[at0002]/data[at0003]/items[at0010]/items[at0043]/items[at0037]/value='Positiv' ) AND o1/data[at0001]/events[at0002]/data[at0003]/items[at0024]/value >= '2013-01-04' AND o1/data[at0001]/events[at0002]/data[at0003]/items[at0024]/value < '2013-01-05' Marco-Ruiz L, Moner D, Maldonado JA, Kolstrup N, Bellika JG, Archetype-based data warehouse environment to enable the reuse of electronic health record data, International Journal of Medical Informatics (2015), http://dx.doi.org/10.1016/j.ijmedinf.2015.05.016 AQL 1: + Count positive tests of Pertussis for the day specified in the parameter AQL in action
  • 57. 57 57 SELECT count(o1/data[at0001]/events[at0002]/data[at0003]/items[at0022]/value) FROM EHR e CONTAINS COMPOSITION c CONTAINS ( OBSERVATION o1[openEHR-EHR-OBSERVATION.micro_lab_test.v1] AND OBSERVATION o2[openEHR-EHR-OBSERVATION.micro_lab_test.v1] ) WHERE ( o1/data[at0001]/events[at0002]/data[at0003]/items[at0010]/items[at0043]/items[at0036]/value = 'Salmonella' AND o1/data[at0001]/events[at0002]/data[at0003]/items[at0010]/items[at0043]/items[at0037]/value = 'Positiv' ) AND o1/data[at0001]/events[at0002]/data[at0003]/items[at0020]/value = '1917' AND o1/data[at0001]/events[at0002]/data[at0003]/items[at0024]/value >= '2013-01-01' AND o1/data[at0001]/events[at0002]/data[at0003]/items[at0024]/value < '2013-01-15' Marco-Ruiz L, Moner D, Maldonado JA, Kolstrup N, Bellika JG, Archetype-based data warehouse environment to enable the reuse of electronic health record data, International Journal of Medical Informatics (2015), http://dx.doi.org/10.1016/j.ijmedinf.2015.05.016 AQL 2: + Count patient ID + Salmonella cases in the specified municipality (same as patient just confirmed) + In the first 2 weeks of January AQL in action
  • 58. EHRServer Queries Path-based queries in action https://cabolabs-ehrserver.rhcloud.com/ehr-0.3/query/list
  • 60. 60 Path-based queries in action { "uid": "9c5da334-4b81-4d60-92e2-aa96a722b4ac", "name": "Documents with high BP", "format": "xml", "type": "composition", "criteriaLogic": "OR", "criteria": [ { "archetypeId": "openEHR-EHR-OBSERVATION.blood_pressure.v1", "path": "/data[at0001]/events[at0006]/data[at0003]/items[at0004]/value", "conditions": { "magnitude": { "gt": [ 140 ] }, "units": { "eq": "mm[Hg]" } } }, { "archetypeId": "openEHR-EHR-OBSERVATION.blood_pressure.v1", "path": "/data[at0001]/events[at0006]/data[at0003]/items[at0005]/value", "conditions": { "magnitude": { "gt": [ 90 ] }, "units": { "eq": "mm[Hg]" } } } ] } Path-based: + Get clinical documents (compositions) + With high BP JSON expression of EHRServer queries
  • 61. 61 Path-based queries in action Results: + in XML (or JSON if specified on the query or as a parameter) + just the index, no data, get a document using the index or change the query to get the data <list> <compositionIndex id="8"> <archetypeId>openEHR-EHR-COMPOSITION.signos.v1</archetypeId> <category>event</category> <dataIndexed>true</dataIndexed> <ehrId>11111111-1111-1111-1111-111111111111</ehrId> <startTime>2015-08-14 03:06:44.0 EDT</startTime> <subjectId>11111111-1111-1111-1111-111111111111</subjectId> <templateId>Signos</templateId> <uid>e152b2c2-7dbe-44b6-9ec6-2cd698561140</uid> </compositionIndex> <compositionIndex id="9"> <archetypeId>openEHR-EHR-COMPOSITION.signos.v1</archetypeId> <category>event</category> <dataIndexed>true</dataIndexed> <ehrId>11111111-1111-1111-1111-111111111111</ehrId> <startTime>2015-08-14 03:07:06.0 EDT</startTime> <subjectId>11111111-1111-1111-1111-111111111111</subjectId> <templateId>Signos</templateId> <uid>f0a8d192-0f68-4501-8373-f954a47a7385</uid> </compositionIndex> ... </list>
  • 62. 62 Path-based queries in action { "uid": "70764d85-4e4b-4548-8f71-3a294f35e704", "name": "Vital Signs", "format": "json", "type": "datavalue", "group": "path", "projections": [ { "archetypeId": "openEHR-EHR-OBSERVATION.blood_pressure.v1", "path": "/data[at0001]/events[at0006]/data[at0003]/items[at0004]/value" }, { "archetypeId": "openEHR-EHR-OBSERVATION.blood_pressure.v1", "path": "/data[at0001]/events[at0006]/data[at0003]/items[at0005]/value" }, { "archetypeId": "openEHR-EHR-OBSERVATION.body_temperature.v1", "path": "/data[at0002]/events[at0003]/data[at0001]/items[at0004]/value" }, { "archetypeId": "openEHR-EHR-OBSERVATION.body_weight.v1", "path": "/data[at0002]/events[at0003]/data[at0001]/items[at0004]/value" }, { "archetypeId": "openEHR-EHR-OBSERVATION.pulse.v1", "path": "/data[at0002]/events[at0003]/data[at0001]/items[at0004]/value" }, { "archetypeId": "openEHR-EHR-OBSERVATION.respiration.v1", "path": "/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value" } ] } Path-based: + Get clinical data for all vital signs measures + Result in JSON format, grouped by path (type of data) JSON expression of EHRServer queries
  • 63. 63 GastrOS – Endoscopy Database http://gastros.codeplex.com • Open Source openEHR implementation of a commercial DB for academic research (2011) • Based on Minimal Standard Terminology for Digestive Endoscopy (MST 2) • Works with openEHR RM directly – C# openEHR.NET (Open Source) – Uses 3 Templates (EGD, Colonopscopy, ERCP) • Used RDMBS (MS Access and SQLite) • Uses ORM (Nhibernate) to store XML Compositions 63
  • 65. 65
  • 67. 67
  • 68. 68 SDE ParserOPT Reference Model Skeleton Instance (ENTRY types, CLUSTERS) GUI Form: Widgets+Leaf nodes(ELEMENT) SDE GUI Generator AOM Representation
  • 69. 69
  • 70. 70 A Standards-based Approach to Development of Clinical Registries - NZ Gestational Diabetes Registry Pilot Dr. Koray Atalag MD, PhD, FACHI (National Institute for Health Innovation) Aleksandar Zivaljevic, PhD candidate (Univ. Of Auckland) Dr. Carl Eagleton MBChB, FRACP (Counties Manukau District Health Board) Karen Pickering (Diabetes Projects Trust)
  • 71. 71 GDM Registry Database • Used OceanEHR Framework – Academic license from Ocean Informatics – Simplifies persistence and querying plus more! – Supports openEHR Demographic IM – Supports AQL • Extended MultiPrac App (Source provided on academic license) – MVC Application (VS 2010 w/ SQL Server) – Handles user management, basic admin etc. – Supports reference sets, provider/organisation etc. 71
  • 74. 74
  • 75. 75 Make your own or reuse existing openEHR persistence? • Open reusable openEHR persistence & query APIs have been suggested and are now being formally specified – Join the REST discussion, openEHR wiki + mailinglists https://openehr.atlassian.net/wiki/display/spec/openEHR+REST+APIs – Implementations of openEHR SOAP interfaces exist. • A SOAP API could be formally specified if there is enough interest – Other API options? • New reusable implementations are welcome! • Before implementing your own persistence, consider: – Is your main interest storage or clinical application? – Would AQL be helpful in some of your use-cases? – In what way will it need to scale? 75
  • 76. 76 Conclusion • openEHR doesn’t specify how to store openEHR clinical data – not bound to any technology or modeling technique • Remember to model data with references to metadata – archetype id, template id, path, node id • Use operational templates in software, not archetypes directly – archetypes are too generic, too many options, not so good for software • Choosing a technology is on you – there is no one-fits-all solution – you might need to mix technologies (hybrid solution) • Modify the openEHR Information Model – to create your storage model using the chosen technology • Design generic query mechanisms based on archetype ids and paths – go for AQL support if you need it, allows to share queries between openEHR Clinical Data Storages • Designing and querying Clinical Databases is hard! – now you have some pointers on where to start 

Editor's Notes

  1. types of information: clinical, demographic, administrative, financial, accounting, ... good design: we will try to share knowledge on the 3 areas mentioned.
  2. General ideas of the information we need to store and the most common ways to query it.
  3. What information we need to store, from the point of view of the end user. The message here is we’ll need a generic and flexible solution to store that information and other information that appears in the future without changing the whole database schema/structure (A.K.A future proof database)
  4. The most common ways of querying clinical data and documents, it is also related on the way the information is organized in real life and in the persistence model.
  5. What we need to provide to the end user We want all of these! and we might need to mix different technologies to be close to a one-fits-all solution, but adapted to our own context/requirements, since there is no such thing for all the contexts, CAP is why we don’t have such thing. Transactionality: Atomicity on transactions
  6. on paper we can&amp;apos;t include the same document in two folders. tree structure of folders to organize documents....
  7. secciones son titulares se pueden anidar entradas agrupan campos tree structure inside documents, organize entries in sections and fields in entries
  8. procesamiento: calculos que pueden darse a nivel de la base de datos, dentro de las consultas o como stored procedures OLTP&amp;gt; online transaction processing http://datawarehouse4u.info/OLTP-vs-OLAP.html
  9. This is just to give an idea of the options, not a strict comparison. Entity/Actribute/Value column not included. Mayn brands not included. http://neo4j.com/docs/stable/tutorial-comparing-models.html didnt added object databases, I dont know enough... https://en.wikipedia.org/wiki/InterSystems_Cach%C3%A9 http://www.objectdb.com/ https://en.wikipedia.org/wiki/Db4o
  10. We are not suggesting RM is better, we are trying to move forward choosing one, and come avoid that discussion. Lots of JOINS: this is true if we are querying all the data together, of course it depends on the design and implementation of each system, but most queries will not query lots of tables together, and optimizations can be done.
  11. The goal of this slide is to make attendees to focus just on one or two technological options, and introduce the topic of ORM. We are NOT suggesting, or saying that one technology is better than another.
  12. The goal of this slide is to make attendees to focus just on one or two technological options, and introduce the topic of ORM. We are NOT suggesting, or saying that one technology is better than another.
  13. MODEL BASED TRANSFORMATIONS vs. 1-to-1 model ad-hoc transformations. Las transformaciones son importantes para mover datos entre distintas DBs, Sistemas, y para proveer servicios. It is very probable we have an OO model because we use an OO programming language. Mas adelante veremos ORM
  14. so if we use a JSON DB we can transform it to XML and give that to the application and viceversa.
  15. IMPORTANT: put the DvCodedText hierarchy in the whiteboard, we&amp;apos;ll use it in the slide with the EHRServer database design.
  16. openEHR process to define clinical records el modelo de información tiene observation, evaluatio, instruction y action, no tiene BP, heart rate, diagnosis, medication prescription, etc.
  17. https://raw.githubusercontent.com/ppazos/cabolabs-ehrserver/master/opts/Encuentro.opt archetypes and templates are putting pieces together from the IM to represent a full clinical document, it&amp;apos;s like lego...
  18. mostrar donde esta path, archetype id, node id, etc. FIXME: relacion COMPO-EVENT CONTEXT
  19. recordar &amp;quot;independencia tecnológica&amp;quot;
  20. https://en.wikipedia.org/wiki/List_of_object-relational_mapping_software
  21. If you are creating a DBMS independent solution, consider the type correspondences between different DBMS, some tools already do that, like Grails ORM.
  22. Because of &amp;quot;identity&amp;quot;, one attribute will be &amp;quot;id&amp;quot;.
  23. one-to-one (bidirectional) can be embeded many-to-one (unidirectional) many-to-one with self reference (person-person relationship) many-to-many JOIN table one-to-many (bidirectional) backlink (at the DB level is the same as many-to-one unidirectional)
  24. MySQL - Query-Oriented Database, that&amp;apos;s why we use &amp;quot;indexes&amp;quot;. IMPORTANT: reference the DvCodedText hierarchy in the whiteboard (from slide 25).
  25. SQLServer - Operational / Transactional DB
  26. Just introducing the AQL concept.
  27. The example represents an AQL query over the archetype openEHREHR-OBSERVATION lab _test _full _blood _count.v1 taken from the International Clinical Knowledge Manager [41] to retrieve all the tests of full blood count indicating a moderate leukocytosis. Following the openEHR RM class hierarchy, the query selects for the EHR identified as 1ADC27 any encounter composition that contains a full blood count test observation. The condition of the where clause constraints to values in white cell count between 11 × 10^9 and 17 × 10^9 . The TIME WINDOW section is indicating that the fetched values should be restricted to the period of 1 year (P1Y) before 2014-02-12 (ISO-8601)
  28. The example represents an AQL query over the archetype openEHREHR-OBSERVATION lab _test _full _blood _count.v1 taken from the International Clinical Knowledge Manager [41] to retrieve all the tests of full blood count indicating a moderate leukocytosis. Following the openEHR RM class hierarchy, the query selects for the EHR identified as 1ADC27 any encounter composition that contains a full blood count test observation. The condition of the where clause constraints to values in white cell count between 11 × 10^9 and 17 × 10^9 . The TIME WINDOW section is indicating that the fetched values should be restricted to the period of 1 year (P1Y) before 2014-02-12 (ISO-8601)
  29. get full clinical documents or data points choose semantic identifiers to define criteria or projections for criteria, define the logic operator save and execute! test UI or from the REST API