ewout kramer, furore cim-based crud storage. architectural context cdr service v3v2 ? mepd kn icip...

25
Ewout Kramer, Furore CIM-based CRUD storage

Upload: caroline-ryan

Post on 03-Jan-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

Ewout Kramer, Furore

CIM-based CRUD storage

Page 2: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

Architectural context

CDR

Service

v3 v2

?

MEPD

KN

ICIP

v3-R

v3-R

v2

AORTA v3

Page 3: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

The nasty CS->RP route...

Page 4: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

What we needed

• A generic way to store a Hl7v3 message in a pre-existing database based on RIM....

• It seemed simple, but in januari while discussing it we realized it merited to be a RIMBAA issue...

Page 5: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

Object Trees & Nets

• Message: hierarchical

versus

• Storage: cyclic net

Page 6: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

Example EHR - stored instances

Page 7: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

Example “update” message

Page 8: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

Merge away!

• Maybe not probable but a generic algorithm should handle it

• Still...we “feel” this interaction goes beyond its scope

• RMIMs are not designed to Update/Replace/Delete specific children & attributes

Page 9: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

A generic merger needs...

• To understand intention of the interaction (activate/revise/record)

• Additional hints hidden in prose of implementation manuals/Ballot

• Know mapping to your EHR-model• Update context

Page 10: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

Query Encounter, select

• Act with code “ENC”. With mood EVN.• Which clone in which interaction do you mean?• A_Encounter CMET• A certain template (collection of CIM’s?)

Page 11: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

Domain-Driven Design by Eric Evans

“How do we know where an object made up of other objects begins and ends?”

“In any system with persistent storageof data, there must be a scope for a transaction that changes data and a way of maintaining the consistency of the data”

Scope of queries en updates

Page 12: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

Aggregates

• Define small CIMs with tight/safe scope, context and semantics

• Define enough CIM’s to cover required domains and no more

• Map interactions to “service level” CRUD operations with these CIMs

Page 13: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

Storage model

• Unit of storage– Lock, create, read, update, delete as a whole– CRUD-services

• Only the “root” is public• Explicit references to other data

– Feels like “identifiable” CMET stereotype• Scope of context conduction• Unit of documentation

Page 14: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

Interpret interactions & disassemble!

Encounter

CareProv

Consent

Observation

Ass. Entity

Patient

Location

RelatedPsn

Organization

Person Place

Page 15: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

We might end up with

Page 16: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

Building blocks

• Explicit (CMET) and implicit re-use of structures– Every domain uses implicit picture of a full-fledged

“EHR” DMIM.

• At best, each domain consistently uses this “EHR” DMIM.– Only differ in domain constraints, clonenames

• Reverse-engineer this mega-DMIM, split into more generic “aggregates” which are the building blocks of a CDR.

Page 17: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

E_Person universal

Page 18: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

R_Patient

Page 19: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

Patient Admin DMIM

Lots of overlap with Administrative Registries!

Page 20: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

R_RelatedParty

Page 21: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

E_ProductKind

Page 22: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3
Page 23: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

E_Person – Storage model

Page 24: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3

R_Patient – Storage model

Page 25: Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3