die open ehealth integration platform

25
Die Open eHealth Die Open eHealth Integration Platform Integration Platform (IPF) (IPF) Martin Krasser & Christian Ohr | ICW AG

Upload: krasserm

Post on 05-Dec-2014

2.857 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Die Open eHealth Integration Platform

Die Open eHealth Die Open eHealth Integration Platform Integration Platform (IPF) (IPF)

Martin Krasser & Christian Ohr | ICW AG

Page 2: Die Open eHealth Integration Platform

Martin Krasser Position

Software architect and engineer @ ICW

Fokus

Verteilte SystemeAnwendungsintegration, SystemintegrationSicherheit in verteilten Systemen

Open Source Projekte

Open eHealth Integration Platform (Founder) http://gforge.openehealth.org/gf/project/ipf

Apache Camel (Committer) http://camel.apache.org

...

Page 3: Die Open eHealth Integration Platform

Christian Ohr Position

Software architect and engineer @ ICW

Fokus

AnwendungsentwicklungAnwendungsintegrationMitarbeit in eHealth-Standardisierungsgremien

Open Source Projekte

Open eHealth Integration Platform (Committer) http://gforge.openehealth.org/gf/project/ipf

HAPI (Contributor)http://hl7api.sourceforge.net

Page 4: Die Open eHealth Integration Platform

Agenda IPF Grundlagen Anwendungsfälle Healthcare Standards und IPF Beispiel & Demo: IHE Transaktion (ITI-8)

Page 5: Die Open eHealth Integration Platform

Integrationsoptionen

Presentation Layer

Service Layer(Business Logic)

Data Store

Other Applications

Messages,SOA/ROA

IPF

Other Applications

PortalsMashups

Data Store

Other Applications

Shared DBReplication

Page 6: Die Open eHealth Integration Platform

Was ist IPF?• Open Source Java/Groovy Integrations-Framework

für den Healthcare Bereich• Hilft dem Entwickler, Healthcare Standards (HL7, IHE, CDA ...) zu

implementieren

• Fokus auf erweiterbare Healthcare DSLs

• Basiert auf dem Apache Camel Integrations-Framework

• Deployment Optionen: embedded, standalone und distributed

• Integrations-Platform auf OSGi Basis• Dynamisches Laden/Entladen von Integrationsanwendungen

• Development and monitoring tools (IPF Tools Projekt)

• IPF als Eclipse plugin

• Open Source seit Nov. 2008• http://gforge.openehealth.org/gf/project/ipf/

• Letztes Release: IPF 2.0.0

• Apache 2 Lizenz

Page 7: Die Open eHealth Integration Platform

Was ist IPF?• Artikel

• Introduction to the Open eHealth Integration Platform, by Martin Krasser

• http://architects.dzone.com/articles/introduction-open-ehealth

Page 8: Die Open eHealth Integration Platform

Was ist Apache Camel?• Open Source Java Integrations-Framework

• “… framework that focuses on making integration easier and more accessible to developers …”

• “… concrete implementations of all the widely used Enterprise Integration Patterns …”

• “… connectivity to a great variety of transports and APIs …“

• “… easy to use Domain Specific Language (DSL) to wire EIPs and transports together …”

From: Apache Camel: Integration Nirvana, by Jonathan Anstey

http://architects.dzone.com/articles/apache-camel-integration

Page 9: Die Open eHealth Integration Platform

Camel ArchitekturDomain-specific languages (DSL)

Ext

ensi

onpo

ints

ComponentsConnectivity to external systems or resources. More than 70 components!

EndpointsSend/receive messages to/from external systems

ProcessorsTransform, validate, filter, router etc.

RoutesEndpoints connected by processors using DSL

Page 10: Die Open eHealth Integration Platform

http://somewhere.com:8090/subscribers

ICW Developer Conference

Bsp.: Programmieren mit CamelÜberblickEnterprise Integration Patterns (EIPs)

Domänenspezifische Sprache (DSL)

BeispielFilterung von XML Nachrichten über HTTP

HTTPEndpoint(inbound)

HTTPEndpoint

(outbound)

XPathFilter

D D

from("jetty:http://0.0.0.0:8090/subscribers") // inbound HTTP endpoint.filter().xpath("/person[@name='John']") // XPath filter.to("http://somewhere.com:8080/subscribers"); // outbound HTTP endpoint

Camel DSL (Java)

http://somewhere.com:8080/subscribers

Page 11: Die Open eHealth Integration Platform

Anwendungsfall: Krankenhaus Unterschiedliche Szenarien

Patientenverwaltung Leistungsanforderung Medizinische Dokumentation Medizinische Spezialanwendungen

Heterogene Systemlandschaft Einsatz vieler unterschiedlicher vernetzter

Anwendungen Ausgeprägte Historie Standardfall: ereignisgetriebene Kommunikation

Page 12: Die Open eHealth Integration Platform

Patienten- Management

KlinischesInformations-

system

Küche

Labor-IS

Radiologie-IS

PACS

Archiv

eHealth Enterprise

Page 13: Die Open eHealth Integration Platform

Enterprise Departments

Page 14: Die Open eHealth Integration Platform

Community Integration

Page 15: Die Open eHealth Integration Platform

Cross-Community Integration

Page 16: Die Open eHealth Integration Platform

Patienten- Management

KlinischesInformations-

system

Küche

Labor-IS

Radiologie-IS

PACS

Archiv

Page 17: Die Open eHealth Integration Platform

Standards

Page 18: Die Open eHealth Integration Platform
Page 19: Die Open eHealth Integration Platform

Patienten- Management

KlinischesInformations-

system

Archiv

Register Patient– IHE „PIX“ Profile

HL7 v2.3 ADT^A01 MLLP (Socket)

Register Document– IHE „XDS.b“ Profile

ebXML WebService (Soap 1.2) HTTP(S)

Audit– IHE „ATNA“ Profile

RFC 3881 Syslog UDP

?

Page 20: Die Open eHealth Integration Platform

Wie kann IPF dabei helfen?• Unterstützung bei funktionaler Integration

über Standards• Datenaustausch (z.B. HL7, CDA)• Transportprotokolle (z.B. MLLP, HTTP,

WebServices)

• Kapselung kompletter Standard-Stacks• IHE IT-Infrastructure (ITI)• HITSP

Page 21: Die Open eHealth Integration Platform

IPF Camel Erweiterungen• Integrationskomponenten

• IHE Profile: XDSa, XDSb, PIX (v2/v3), PDQ (v2/v3), ...

IHEActor 1

IHEActor 2

Actor Interface

Actor Interface

IHEActor 3

Actor Interface

IHETransaction 1

IHETransaction 2

Application Layer

Integration Layer

Application Layer

Message

Application Component

Integration Component

IHE Profil (Konzept)

Page 22: Die Open eHealth Integration Platform

IPF Camel Erweiterungen• Content DSL

• HL7v2 DSL

• CDA/CCD DSL

• Routing (Camel) DSL Erweiterungen

• HL7/CDA Validierung ...

• Schematron Validierung ...

• Groovy closure support

• ...

• DSL Erweiterungsmechanismus auf Groovy Basis• Zur Definition neuer DSL Elemente (z.B. für projekt-spezifische DSLs)

Page 23: Die Open eHealth Integration Platform

Bsp.: Programmieren mit IPFÜberblickRouting DSL Erweiterungen

Content DSL (HL7v2)

BeispielValidierung und Filterung von HL7 Nachrichten über HTTP

?

HTTPEndpoint(inbound)

HTTPEndpoint

(outbound)

HL7Filter

D D

HL7Validator

from('jetty:http://0.0.0.0:8090/admissions') // inbound HTTP endpoint.unmarshal().ghl7() // HL7 parser.validate().ghl7() // HL7 validator.filter {it.in.body.PID[8].value == 'F'} // HL7 filter using HL7 DSL.to('http://localhost:8080/admissions') // outbound HTTP endpoint

IPF DSL (Groovy)

Page 24: Die Open eHealth Integration Platform

Bsp: IHE ITI-8Patientenmanagement

Klinisches Informationssystem

?Integration layer

Service layer

MLLP HL7 msg

HL7 msg

ADT-A01: Patient admissionADT-A08: Patient updateACK, NAK

IHE ITI-8

Patient Service

Page 25: Die Open eHealth Integration Platform

Bsp: Integration layer

?

IHE ITI-8 endpoint

HL7 msg

HL7 msg

Message queue

MLLP

HL7 message validation

Content-based router

HL7 to domain object transformer

Bean binding

endpoints

A01 Transformer

A08 Transformer

Mail server

on error

user2@localhost