domain driven design and rim. introduction 1 rimresistance is futile, you will be assimilated!

15
Domain Driven Design and RIM

Upload: angelina-orr

Post on 27-Mar-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Domain Driven Design and RIM. Introduction 1 RIMResistance is Futile, you Will be Assimilated!

Domain Driven Design and RIM

Page 2: Domain Driven Design and RIM. Introduction 1 RIMResistance is Futile, you Will be Assimilated!

Introduction

2

RIMResistance is Futile, you Will be Assimilated!

Page 3: Domain Driven Design and RIM. Introduction 1 RIMResistance is Futile, you Will be Assimilated!

Agenda

RIMBAA ExperiencesDomain Driven Design AppliedFIHR with DDD

3

Page 4: Domain Driven Design and RIM. Introduction 1 RIMResistance is Futile, you Will be Assimilated!

Agenda

RIMBAA ExperiencesDomain Driven Design AppliedFIHR with DDD

4

Page 5: Domain Driven Design and RIM. Introduction 1 RIMResistance is Futile, you Will be Assimilated!

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

Page 6: Domain Driven Design and RIM. Introduction 1 RIMResistance is Futile, you Will be Assimilated!

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

Page 7: Domain Driven Design and RIM. Introduction 1 RIMResistance is Futile, you Will be Assimilated!

Agenda

RIMBAA ExperiencesDomain Driven Design AppliedFIHR with DDD

7

Page 8: Domain Driven Design and RIM. Introduction 1 RIMResistance is Futile, you Will be Assimilated!

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)

Page 9: Domain Driven Design and RIM. Introduction 1 RIMResistance is Futile, you Will be Assimilated!

Bounded Context

9

User Interface

User Interface

View ModelView ModelRIMRIM

RIM EventsRIM Events

Segregation

Commands

Query

EventsEvents AnyAny

Page 10: Domain Driven Design and RIM. Introduction 1 RIMResistance is Futile, you Will be Assimilated!

Patient Administration

10

Patient TrackingPatient

Tracking

Current State

Current StateR-MIMR-MIM

AmbulatoryEncounterEvent

AmbulatoryEncounterEvent

Segregation

Commands

Query

Changed DataChanged Data 2NF2NF

Page 11: Domain Driven Design and RIM. Introduction 1 RIMResistance is Futile, you Will be Assimilated!

Agenda

RIMBAA ExperiencesDomain Driven Design AppliedFIHR with DDD

11

Page 12: Domain Driven Design and RIM. Introduction 1 RIMResistance is Futile, you Will be Assimilated!

Challenges

12

• Restful RIM Resources– CRUD theme– What’s a Resource– Future Proof– Local Extensions– Other Protocols– Deployment schemes

Page 13: Domain Driven Design and RIM. Introduction 1 RIMResistance is Futile, you Will be Assimilated!

Patient Administration

13

RESTREST

ResourceResourceR-MIMR-MIM

AmbulatoryEncounterEvent

AmbulatoryEncounterEvent

Segregation

Post

Get

Changed DataChanged Data CCDCCD

Page 14: Domain Driven Design and RIM. Introduction 1 RIMResistance is Futile, you Will be Assimilated!

Patient Administration

14

RESTREST

ResourceResourceR-MIMR-MIM

AmbulatoryEncounterEvent

AmbulatoryEncounterEvent

Post

Get

Changed DataChanged Data

ResourceResource

MessageMessage

Page 15: Domain Driven Design and RIM. Introduction 1 RIMResistance is Futile, you Will be Assimilated!

15

Patient De-Identify Deployment Example

Command

BIDMC BWH CHB MGH MIT

Segregation

Resource or Views

Firewall Firewall Firewall Firewall Firewall

R-MIM