Post on 27-Mar-2015
Domain Driven Design and RIM
Introduction
2
RIMResistance is Futile, you Will be Assimilated!
Agenda
RIMBAA ExperiencesDomain Driven Design AppliedFIHR with DDD
3
Agenda
RIMBAA ExperiencesDomain Driven Design AppliedFIHR with DDD
4
Experiences from the field
5
• RIMBAA Challenges– Object Oriented skills not mainstream– Developers’ dependencies on
frameworks – ORM not needed – What !!!– RIM knowledge required– Data Types – I agree!– HL7 2.x perception
Current RIMBAA Project
6
• Fresenius Health Care NA– 2000 Kidney Dialysis Clinics – 200k Active Patients– RIMBAA HIE Platform– Central Patient Administration– Coexist with legacy applications– Project needs to evolve in Agile
environment
Agenda
RIMBAA ExperiencesDomain Driven Design AppliedFIHR with DDD
7
Architecture
8
• Domain Driven Design & RIM– Vital Patterns
• Bounded Context (Universal Domains)• Aggregate Root (R-MIM)• Specification (Constraints, Business Rules)• Event Sourcing (State Storage, Ultimate
Audit)• Command Query Responsibility Segregation
(RIM Isolation)
Bounded Context
9
User Interface
User Interface
View ModelView ModelRIMRIM
RIM EventsRIM Events
Segregation
Commands
Query
EventsEvents AnyAny
Patient Administration
10
Patient TrackingPatient
Tracking
Current State
Current StateR-MIMR-MIM
AmbulatoryEncounterEvent
AmbulatoryEncounterEvent
Segregation
Commands
Query
Changed DataChanged Data 2NF2NF
Agenda
RIMBAA ExperiencesDomain Driven Design AppliedFIHR with DDD
11
Challenges
12
• Restful RIM Resources– CRUD theme– What’s a Resource– Future Proof– Local Extensions– Other Protocols– Deployment schemes
Patient Administration
13
RESTREST
ResourceResourceR-MIMR-MIM
AmbulatoryEncounterEvent
AmbulatoryEncounterEvent
Segregation
Post
Get
Changed DataChanged Data CCDCCD
Patient Administration
14
RESTREST
ResourceResourceR-MIMR-MIM
AmbulatoryEncounterEvent
AmbulatoryEncounterEvent
Post
Get
Changed DataChanged Data
ResourceResource
MessageMessage
15
Patient De-Identify Deployment Example
Command
BIDMC BWH CHB MGH MIT
Segregation
Resource or Views
Firewall Firewall Firewall Firewall Firewall
R-MIM