Diese Präsentation wurde erfolgreich gemeldet.

Die Open eHealth Integration Platform

0

Teilen

Nächste SlideShare
Scala cheatsheet
Scala cheatsheet
Wird geladen in …3
×
1 von 25
1 von 25

Die Open eHealth Integration Platform

0

Teilen

Herunterladen, um offline zu lesen

  1. 1. Martin Krasser & Christian Ohr | ICW AG Die Open eHealth Integration Platform (IPF)
  2. 2. Martin Krasser Position Software architect and engineer @ ICW Fokus Verteilte Systeme Anwendungsintegration, Systemintegration Sicherheit 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 ...
  3. 3. Christian Ohr Position Software architect and engineer @ ICW Fokus Anwendungsentwicklung Anwendungsintegration Mitarbeit in eHealth-Standardisierungsgremien Open Source Projekte Open eHealth Integration Platform (Committer) http://gforge.openehealth.org/gf/project/ipf HAPI (Contributor) http://hl7api.sourceforge.net
  4. 4. Agenda  IPF Grundlagen  Anwendungsfälle  Healthcare Standards und IPF  Beispiel & Demo: IHE Transaktion (ITI-8)
  5. 5. Integrationsoptionen Portals Presentation Mashups Other Layer Applications Messages, Service Layer SOA/ROA Other (Business Logic) Applications IPF Shared DB Data Replication Other Store Applications
  6. 6. 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
  7. 7. Was ist IPF? • Artikel • Introduction to the Open eHealth Integration Platform, by Martin Krasser • http://architects.dzone.com/articles/introduction-open- ehealth
  8. 8. 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
  9. 9. Camel Architektur Domain-specific languages (DSL) Components Connectivity to external systems or resources. More than 70 components! Endpoints Send/receive messages to/from external systems Processors Extension points Transform, validate, filter, router etc. Routes Endpoints connected by processors using DSL
  10. 10. Bsp.: Programmieren mit Camel Überblick Enterprise Integration Patterns (EIPs) Domänenspezifische Sprache (DSL) Beispiel Filterung von XML Nachrichten über HTTP http://somewhere.com:8090/subscribers http://somewhere.com:8080/subscribers D D HTTP XPath HTTP Endpoint Filter Endpoint (inbound) (outbound) Camel DSL (Java) 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 ICW Developer Conference
  11. 11. Anwendungsfall: Krankenhaus  Unterschiedliche Szenarien  Patientenverwaltung  Leistungsanforderung  Medizinische Dokumentation  Medizinische Spezialanwendungen  Heterogene Systemlandschaft  Einsatz vieler unterschiedlicher vernetzter Anwendungen  Ausgeprägte Historie  Standardfall: ereignisgetriebene Kommunikation
  12. 12. eHealth Enterprise Patienten- Management Küche Labor-IS Klinisches Informations- Radiologie-IS system PACS Archiv
  13. 13. Enterprise Departments
  14. 14. Community Integration
  15. 15. Cross-Community Integration
  16. 16. Patienten- Management Küche Labor-IS Klinisches Informations- Radiologie-IS system PACS Archiv
  17. 17. Standards
  18. 18. Patienten-  Register Patient Management – IHE „PIX“ Profile  HL7 v2.3 ADT^A01  MLLP (Socket)  Register Document – IHE „XDS.b“ Profile ?  ebXML Klinisches Informations-  WebService (Soap 1.2) system  HTTP(S)  Audit – IHE „ATNA“ Profile  RFC 3881 Archiv  Syslog  UDP
  19. 19. 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
  20. 20. IPF Camel Erweiterungen • Integrationskomponenten • IHE Profile: XDSa, XDSb, PIX (v2/v3), PDQ (v2/v3), ... IHE Profil (Konzept) IHE IHE Actor 2 Actor 3 Application Layer Actor Interface Actor Interface IHE IHE Transaction 1 Transaction 2 Integration Layer Actor Interface IHE Actor 1 Application Layer Application Component Integration Component Message
  21. 21. 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)
  22. 22. Bsp.: Programmieren mit IPF Überblick Routing DSL Erweiterungen Content DSL (HL7v2) Beispiel Validierung und Filterung von HL7 Nachrichten über HTTP D ? D HTTP HL7 HL7 HTTP Endpoint Validator Filter Endpoint (inbound) (outbound) IPF DSL (Groovy) 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
  23. 23. Bsp: IHE ITI-8 Patientenmanagement HL7 ADT-A01: Patient admission MLLP HL7 IHE ITI-8 msg msg ADT-A08: Patient update ACK, NAK Integration layer ? Patient Service Service layer Klinisches Informationssystem
  24. 24. Bsp: Integration layer HL7 HL7 msg msg MLLP IHE ITI-8 Bean endpoint binding endpoints A01 Transformer ? A08 Transformer HL7 Message Content- HL7 to on error message queue based domain validation router object transformer Mail server user2@localhost
  1. 1. Martin Krasser & Christian Ohr | ICW AG Die Open eHealth Integration Platform (IPF)
  2. 2. Martin Krasser Position Software architect and engineer @ ICW Fokus Verteilte Systeme Anwendungsintegration, Systemintegration Sicherheit 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 ...
  3. 3. Christian Ohr Position Software architect and engineer @ ICW Fokus Anwendungsentwicklung Anwendungsintegration Mitarbeit in eHealth-Standardisierungsgremien Open Source Projekte Open eHealth Integration Platform (Committer) http://gforge.openehealth.org/gf/project/ipf HAPI (Contributor) http://hl7api.sourceforge.net
  4. 4. Agenda  IPF Grundlagen  Anwendungsfälle  Healthcare Standards und IPF  Beispiel & Demo: IHE Transaktion (ITI-8)
  5. 5. Integrationsoptionen Portals Presentation Mashups Other Layer Applications Messages, Service Layer SOA/ROA Other (Business Logic) Applications IPF Shared DB Data Replication Other Store Applications
  6. 6. 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
  7. 7. Was ist IPF? • Artikel • Introduction to the Open eHealth Integration Platform, by Martin Krasser • http://architects.dzone.com/articles/introduction-open- ehealth
  8. 8. 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
  9. 9. Camel Architektur Domain-specific languages (DSL) Components Connectivity to external systems or resources. More than 70 components! Endpoints Send/receive messages to/from external systems Processors Extension points Transform, validate, filter, router etc. Routes Endpoints connected by processors using DSL
  10. 10. Bsp.: Programmieren mit Camel Überblick Enterprise Integration Patterns (EIPs) Domänenspezifische Sprache (DSL) Beispiel Filterung von XML Nachrichten über HTTP http://somewhere.com:8090/subscribers http://somewhere.com:8080/subscribers D D HTTP XPath HTTP Endpoint Filter Endpoint (inbound) (outbound) Camel DSL (Java) 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 ICW Developer Conference
  11. 11. Anwendungsfall: Krankenhaus  Unterschiedliche Szenarien  Patientenverwaltung  Leistungsanforderung  Medizinische Dokumentation  Medizinische Spezialanwendungen  Heterogene Systemlandschaft  Einsatz vieler unterschiedlicher vernetzter Anwendungen  Ausgeprägte Historie  Standardfall: ereignisgetriebene Kommunikation
  12. 12. eHealth Enterprise Patienten- Management Küche Labor-IS Klinisches Informations- Radiologie-IS system PACS Archiv
  13. 13. Enterprise Departments
  14. 14. Community Integration
  15. 15. Cross-Community Integration
  16. 16. Patienten- Management Küche Labor-IS Klinisches Informations- Radiologie-IS system PACS Archiv
  17. 17. Standards
  18. 18. Patienten-  Register Patient Management – IHE „PIX“ Profile  HL7 v2.3 ADT^A01  MLLP (Socket)  Register Document – IHE „XDS.b“ Profile ?  ebXML Klinisches Informations-  WebService (Soap 1.2) system  HTTP(S)  Audit – IHE „ATNA“ Profile  RFC 3881 Archiv  Syslog  UDP
  19. 19. 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
  20. 20. IPF Camel Erweiterungen • Integrationskomponenten • IHE Profile: XDSa, XDSb, PIX (v2/v3), PDQ (v2/v3), ... IHE Profil (Konzept) IHE IHE Actor 2 Actor 3 Application Layer Actor Interface Actor Interface IHE IHE Transaction 1 Transaction 2 Integration Layer Actor Interface IHE Actor 1 Application Layer Application Component Integration Component Message
  21. 21. 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)
  22. 22. Bsp.: Programmieren mit IPF Überblick Routing DSL Erweiterungen Content DSL (HL7v2) Beispiel Validierung und Filterung von HL7 Nachrichten über HTTP D ? D HTTP HL7 HL7 HTTP Endpoint Validator Filter Endpoint (inbound) (outbound) IPF DSL (Groovy) 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
  23. 23. Bsp: IHE ITI-8 Patientenmanagement HL7 ADT-A01: Patient admission MLLP HL7 IHE ITI-8 msg msg ADT-A08: Patient update ACK, NAK Integration layer ? Patient Service Service layer Klinisches Informationssystem
  24. 24. Bsp: Integration layer HL7 HL7 msg msg MLLP IHE ITI-8 Bean endpoint binding endpoints A01 Transformer ? A08 Transformer HL7 Message Content- HL7 to on error message queue based domain validation router object transformer Mail server user2@localhost

Weitere Verwandte Inhalte

Ähnliche Bücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Ähnliche Hörbücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

×