Bachelorarbeit Medizininformatik

Slides:



Advertisements
Ähnliche Präsentationen
Objektrelationales Mapping mit JPA
Advertisements

Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
E-Commerce Shop System
Datenbanken Einführung.
Objektorientierte Datenbanken
Systemverwaltung wie es Ihnen gefällt.
Kapitel 4 Datenstrukturen
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Christian A. Kopf Institut für Informatik FU Berlin Episode Recognizer Framework - Rahmenwerk zur Episodenerkennung.
Ruby on Rails im Überblick
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Testing Jonas Bandi Simon Martinelli.
Objektorientierter Entwurf (OOD) Übersicht
Stephan Bury  Pascal Busch  Bita Gerami
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Grundlagen der Sprache
DOM (Document Object Model)
Markplätze für Agenten Seminar Softwareagenten Timo Hoelzel.
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
Information und Technik Nordrhein-Westfalen Single Sign On mit CAS Düsseldorf, Single Sign On für Webanwendungen am Beispiel von CAS.
XDoclet ETIS SS05.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Access 2000 Datenbanken.
Objektorientierte DBMS Klassen und Beziehungen Seminar: Verteilte Datenbanken Manuela Fischer.
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
DVG Klassen und Objekte
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Synchronisation paralleler Transaktionen AIFB SS Konzept der Transaktion 4.2 Konzept der Transaktion (1/4) Eine Transaktion ist ein in sich geschlossener,
Diplomarbeit: Design und prototypische Implementierung eines archetypbasierten EHR Systems Anton Brass Helmholtz Zentrum München IBMI München,
YouTube5 .0 Projektpräsentation
FQTQ ShowCase Prototyp einer Applikation zur Beratungsunterstützung.
Space Based Computing VU SS08
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Herzlich Willkommen… welcome… soyez la bienvenue….
Entwurf und Realisierung einer digitalen Bibliothek zur Verwaltung von Notenhandschriften Dipl.-Ing. Temenushka Ignatova Datenbank- und Informationssysteme,
Präsentation von: Tamara Nadine Elisa
ArcGIS als WPS Server Aktueller Stand der Umsetzung
Minh Bui 14. März 2013 Mobile Visualization in SenseDroid Diplomarbeit Minh Bui, # 1 of 16 Aufgabensteller: Prof. Dr. Andreas Butz Betreuer:
1. Die rekursive Datenstruktur Liste 1.1 Warteschlange (Queue)
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Daniel Gosch & Hannes Stornig
Daniel Gosch & Hannes Stornig. Überblick DICOM Problembeschreibung Fragestellungen Software Prototyp.
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
1.2 Trennung von Struktur und Inhalt
Allgemeines zu Datenbanken
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
Inhaltsverzeichnis: 1. Telefonie mit analog und digital
PRO:CONTROL Ziel des Moduls Arbeitspakete
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
Archiv Def: Siehe Digitales Langzeitarchiv.
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Content Management System
Persistenz: Objekt-Lebensdauer In RDBMS wird Lebensdauer von Werten durch ihren Typ festgelegt: Instanzen von Relationstypen sind persistent, alle anderen.
Vortrag - Diplomarbeiten (HS I)
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
EJB Architektur für große Web - Applikationen Gerald Weber
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
, Claudia Böhm robotron*SAB Anwendungsentwicklung mit dem Java und XML basierten Framework robotron*eXForms Simple Application Builder.
Entwurf, Implementierung und Test eines Java – Web Services als Kommunikationsschnittstelle für Webapplikationen mit Funktionen.
Seminararbeit Release Management von Web-Systemen Minh Tran Lehrstuhl für Software Engineering RWTH Aachen
Comprehensive Information Base (CIB) – ein Prototyp zur semantischen Datenintegration Stefan Arts
© 2012 TravelTainment Einführung in Enterprise JavaBeans Seminarvortrag von Ralf Penners Folie 1 von 34.
Verteilte Anwendungen: J2EE
1. Die rekursive Datenstruktur Liste 1
Datenstrukturen und Softwareentwicklung
 Präsentation transkript:

Bachelorarbeit Medizininformatik Design und prototypmäßige Implementierung von Komponenten zum Datenaustausch von DICOM-Objekten in einem DICOM-Verarbeitungsframework Bachelorarbeit Medizininformatik Daniel Gosch & Hannes Stornig 0660099 0727963

Themen Überblick DICOM Problembeschreibung Fragestellungen Transaktionsmanagement Software Prototyp

Themen Überblick Bachelorarbeit Anforderungsbeschreibung Anforderungen an das System DICOM Problembeschreibung Fragestellungen Transaktionsmanagement Software Prototyp

Bachelorarbeit Detaillierter Überblick über einzelne Probleme und Fragestellungen Lösungsansätze zu konkreten Fällen präsentieren Grundlegende Techniken für ein Framework erarbeitet Kritische Punkte im Entwicklungsprozess

Anforderungsbeschreibung Framework entwickeln Persistent Korrekte Fehlerbehandlung Verarbeitung von DICOM Files Prozesse in Transaktionen gliedern Fehlverhalten -> Rollback Konsistenter Datenstand des Framework

Anforderungen an das System Technische Ansprüche an die Infrastruktur Applikation Server (Glasfish 3.x) Java Development Kit 1.6 Relationale Datenbank Postgres 9.x

Themen DICOM Allgemein Was ist DICOM DICOM File Überblick Problembeschreibung Fragestellungen Transaktionsmanagement Software Prototyp

Allgemein Medizinische Bilder für Diagnostik Art der Bildgebung Organe, Skelett, Muskel, Blutgefäße Verfahren Röntgen Magnet Resonanz Tomographie Positronen Emissions Tomographie

Was ist DICOM Digital Imaging and Communications in Medicine Richtlinien für digitale Medien Standard für medizinische Bilder DICOM regelt unter anderem eine einheitliche Speicherung von Bildern

DICOM File Bild (Röntgen) / Bilderserie (MRT) Liste von Datenelementen Informationen zum Patienten Identifikationsnummer Informationen zur Aufnahme DICOM Standard definiert exakt welche Informationen enthalten sein müssen bzw. welche optional sind Jedes Bild verfügt über die notwendigen Informationen

Themen Problembeschreibung Überblick DICOM Programmiersprache Persistenz / Transaktion Datenstruktur Datenbankanforderungen Performance Fragestellungen Transaktionsmanagement Software Prototyp

Programmiersprache JAVA Enterprise Edition Klassenbibliotheken des Toolkits dcm4che2 Objektorientierte Programmiersprache Eigene Laufzeitumgebung  unabhängig von Rechenarchitektur Funktionalität

Persistenz / Transaktion Java Persistence API (JPA) Speicherung der Daten in eine Datenbank Daten bleiben über die Ausführungszeit des Frameworks erhalten Java Transaction API (JTA) Zugriff auf Daten Gewährleistet vollständige oder keine Übertragung der Daten Rollback im Fehlverhalten Konsistenter Datenstand

Datenstruktur Queue Konstante Reihenfolge Primär FiFo (First in First out) Verfahren Erweiterter Zugriff auf Elemente in der Queue DcmFile add() pool() peek() Queue

Datenbankanforderungen ACID Richtlinien Transaktionen müssen Atomar ganz oder gar nicht Konsistent definierte Integritätsbedingungen (Primärschlüssel / Fremdschlüssel) Isoliert Transaktionen Dauerhaft nach Transaktionsende persistent zur Verfügung stehen

Performance DICOM Files Persistierung in der Datenbank oft >= 100 MB Persistierung in der Datenbank Schlechte Performance Speicherung auf sekundär Datenträger Surrogate (Platzhalterobjekte) in der Datenbank Referenz auf DICOM File Bedarfsfall Informationen nachladen

Performance Überlegungen: Ein und dasselbe DICOM File kommt mehrmals vor Mehrere Referenzen auf ein DICOM File Großer Speicherbedarf Wenn DICOM File in mehreren Queues DcmFile ID 0112 Surrogat Queue 1 Queue 2 Queue 3

Performance Lösung: Nur beim ersten Mal ins Filesystem schreiben Surrogat bekommen beim Kopieren in eine weitere Queue nur mehr eine Referenz auf das DICOM File DcmFile ID 0112 Surrogat ID 0112 Queue 1 Queue 2 Surrogat Queue 3

Performance Wann darf ein DICOM File gelöscht werden? DcmFile ID 0112 Surrogat ID 0112 Queue 1 Queue 2 Surrogat Queue 3

Performance Wann auf Löschen überprüfen? Transaktions-Manager bietet: afterCompletion() Methode Aufruf nach jeder abgeschlossenen, jedoch noch nicht beendeten Transaktion Überprüfung ob Referenz in der Datenbank auf ein DICOM File Falls NEIN -> Freigabe zur Löschung

Themen Fragestellungen Überblick DICOM Problembeschreibung Data Queue (DQ) Processing Node (PN) Beziehungen zwischen PN und DQ Verarbeitungsgraph Helper Processing Node Transaktionsmanagement Software Prototyp

Data Queue (DQ) Datenhaltung  Prinzip einer Queue Umsetzung dieser wird als Data Queue bezeichnet Prototyp  DcmQueue Data Queue kümmert sich um Datenhaltung und Reihenfolge

Processing Node (PN) PN nutzt DQ um DICOM Objekte auszutauschen Verarbeitungselement des Framework das DICOM Images verarbeitet 2 Rollen Producer  Inputseitig => Weitergabe der Ergebnisse Consumer  Outputseitig => DICOM Objekte die zur Bearbeitung anstehen zuzugreifen

Beziehungen zwischen PN und DQ Verschiedene Möglichkeiten Nutzen für unser Framework im Mittelpunkt 4 Fälle Vorteile Nachteile

Beziehungen zwischen PN und DQ Processing Node Fall 1 Kardinalität 1 zu 0 PN steht mit keiner DQ in Verbindung -> nicht möglich Objekte an die DQ zu senden 1 Input Data Queue Output 1 Processing Node

Beziehungen zwischen PN und DQ Processing Node Fall 2 Kardinalität 1 zu 1 Jede PN ist genau mit einer DQ verbunden Jede DQ ist genau mit einer PN verbunden Kommunikation zwischen PN und DQ möglich -> komplexes Verhalten nicht möglich 1 1 Input Data Queue Output 1 1 Processing Node

Beziehungen zwischen PN und DQ Processing Node Fall 3 Kardinalität 0…n zu 0…n Jede PN steht mit beliebig vielen DQ in Verbindung Jede DQ steht mit beliebig vielen PN in Verbindung Komplexe Kommunikation möglich -> kann jedoch schnell unübersichtlich Ausmaß annehmen => komplexe Verfahren zur Datenbewältigung 0…n 0…n Input Data Queue Output 0…n 0…n Processing Node

Beziehungen zwischen PN und DQ Processing Node Fall 4 Kardinalität 1 zu 0…n Jede PN kann mit beliebig vielen DQ in Verbindung stehen Jede DQ jedoch nur mit einer PN Ausreichende Kommunikation zwischen PN und DQ -> Verhinderung zu komplexer Strukturen 1 0…n Input Data Queue Output 0…n 1 Processing Node

Verarbeitungsgraph Anzahl der DQ welche durch PN repräsentiert werden hängt von der Art der PN ab Normalfall PN hat ein oder mehrere Input und Output DQ‘s PN ist für den Datenfluss zwischen den einzelnen DQ verantwortlich Jede DQ hat dabei eine genau definierte Input- als auch Output-Seite und steht immer mit genau einer PN in Verbindung

Verarbeitungsgraph Zwei Typen von PN haben nur eine Input- bzw. eine Output-Seite Jene die sich am äußeren Rand des Verarbeitungsgraphen befinden Import PN bringen externe DICOM Daten zur Verarbeitung in den Verarbeitungsgraphen ein Export PN ermöglichen den Export von DICOM Daten aus dem Verarbeitungsgraphen z.B. als File in ein File System

Verarbeitungsgraph

Helper Processing Node (HPN) Spezieller Typ einer PN Strategie Menge von PN -> eine Bestimmte Aufgabe übernehmen Zur Verteilung von Information Zur Vereinigung von Datenströmen

Helper Processing Node Verteilung / Sharing Objekte einer DQ werden durch die HPN auf mehrere DQ`s verteilt Data Queue Helper Processing Node Data Queue 1 Data Queue 3 Data Queue 2

Helper Processing Node Vereinigung / Merging Objekte unterschiedlicher DQ`s werden durch die HPN auf eine DQ zusammengefasst Data Queue 1 Data Queue 3 Data Queue 2 Helper Processing Node Data Queue

Helper Processing Node Aufteilung / Splitting Ein Objekt wird durch die HPN an unterschiedliche DQ‘s gesendet und unterschiedlich verarbeitet Bsp.: ein Objekt wird anonymisiert und pseudonymisiert Data Queue Helper Processing Node Data Queue Data Queue Processing Node +anonymisieren() Processing Node +pseudonymisieren()

Themen Transaktionsmanagement Überblick DICOM Problembeschreibung Fragestellungen Transaktionsmanagement Container Managed Transaction Verhalten des Containers Rollback Software Prototyp

Transaktionsmanagement Container Managed Transaction (CMT) EJB Container verwaltet automatisch Transaktionen innerhalb einer EJB Klasse oder Methode Entscheidet selbstständig ohne explizite Deklaration Keine Nested Transactions Transaktionskontext Durch EJB Container bestimmt

Verhalten des Containers Container steuert Transaktionen weitgehend selbst Mittels Callback auf Verhalten des Container Einfluss nehmen @afterBeginn @beforeCompletion @afterCompletion

Rollback Im Falle eines Fehlers Möglichkeiten zur Auslösung eines Rollback System Exception vorgemerkte Exceptions Methode setRollbackOnly() ermöglicht Jederzeit konsistenter Datenstand

Themen Software Prototyp Überblick DICOM Problembeschreibung Fragestellungen Software Prototyp Interface DcmQueueProducerServiceRemote Interface DcmQueueConsumerServiceRemote Sequenzdiagramm

Software Prototyp Prototyp des Frameworks namens „DcmSPL“ Prototyp bietet Möglichkeit Warteschlange (Queue) erstellen DICOM Dummy Files an das Framework zu übergeben Persistierung der DICOM Dummy Files ins File System Übergibt Queue eine Referenz auf das DICOM Dummy File Bearbeitungsknoten können modular implementiert werden

Interface DcmQueueProducerServiceRemote Inputseitig Methoden zur Erzeugung und Befüllung der DcmQueue creatDcmQueue() removeDcmQueue() addDcmFile() findDcmQueue()

Interface DcmQueueConsumerServiceRemote Outputseitig Methoden zur Verwaltung der DcmQueue findDcmQueue() removeDcmQueue() removeDcmFile() findDcmFile() peekDcmFile() poolDcmFile()

Sequenzdiagramm Erzeugung einer neuen dcmQueue Client greift mittels Producer Remote Interface auf dcmQueueService zu dcmQueueService erzeugt neue dcmQueue Entity Manager persistiert diese in die Datenbank

Sequenzdiagramm

Resümee Komplexität der Java EE Umgebung wurde völlig unterschätzt Genauer Betrachtung Voraussetzungen um Arbeit zum Erfolg zu führen Bibliotheken von Java EE optimale Lösung für unsere Arbeit

Ausblick Nächste Schritte: Einbindung von Dcm4che2 Konkrete Implementierung der abstrakten Processing Nodes Implementierung der Helper Processing Nodes

Vielen dank für ihre Aufmerksamkeit