Daniel Gosch & Hannes Stornig

Slides:



Advertisements
Ähnliche Präsentationen
Be.as WEB Technologie
Advertisements

Datenbankdesign mit ACCESS.
Datenbanken Einführung.
Objektorientierte Datenbanken
Systemverwaltung wie es Ihnen gefällt.
Attribute Profile.
Kapitel 4 Datenstrukturen
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Objektorientierter Entwurf (OOD) Übersicht
Java: Dynamische Datentypen
Daten bank St. Wiedemann.
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Oberseminar Datenbanken Multimediale Datenbanken Christian Völschow.
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.
Rigi und Web2Rsf vorgestellt von Tobias Weigand. Inhalt Ziel von Web2Rsf und Rigi Vorstellung des Parsers Web2Rsf Vorstellung des Werkzeugs Rigi Analyse.
1 Analyse von Software-statisch- Darmstadt,den Presentation: Sebastian Schikowski Steve Kenfack.
Access 2000 Datenbanken.
Objektorientierte DBMS Klassen und Beziehungen Seminar: Verteilte Datenbanken Manuela Fischer.
Projekt Web Engineering
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
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,
Flache Datenstrukturen in der Operationsdokumentation.
Langzeitarchivierung und Metadaten. NAA Preservation Strategy Link: ml.
Diplomarbeit Thema: Untersuchungen zur Spezifikation und Realisierung von Interoperabilitätskonzepten (hauptsächlich) CORBA-basierter Multiagentensysteme.
Gliederung Litsearch Litsearch+ V.1 Litsearch+ V.2 Freigabe/Versionisierung Litsearch+ Ressourcenverwendung.
Netzwerke Peer-to-Peer-Netz Client-Server Alleinstehende Server
Relationale Datenbankmodelle
... und alles was dazugehört
Space Based Computing VU SS08
Evaluierung des ITU-T.124 Telekonferenzstandards
Herzlich Willkommen… welcome… soyez la bienvenue….
Nestor Workshop im Rahmen der GES 2007 Digitale Langzeitarchivierung und Grid: Gemeinsam sind wir stärker? Anforderungen von eScience und Grid-Technologie.
Vortrag D. Braun, Praktikum. Übersicht Pleopatra API Pleopatra Tools Twitter Demonstration Ausblick.
DTD – Deklaration von Elementen Beschreibt die Einschränkungen des Inhalts eines Elements Syntax: Einziger atomarer Typ: #PCDATA (Parsed Character DATA)
1. Die rekursive Datenstruktur Liste 1.1 Warteschlange (Queue)
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Nicolas Frings Maximilian Bernd Stefan Piernikarcyk
Bachelorarbeit Medizininformatik
Daniel Gosch & Hannes Stornig. Überblick DICOM Problembeschreibung Fragestellungen Software Prototyp.
Claudia Fischer Licensing Marketing Manager Jochen Katz Product Manager – Windows Server Anna Fetzer Product Manager – System Center.
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Überblick über die Datenbankproblematik
Allgemeines zu Datenbanken
Inhaltsverzeichnis: 1. Telefonie mit analog und digital
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
Archiv Def: Siehe Digitales Langzeitarchiv.
Bericht der Gruppe Avatare Universität zu Köln BA Medienkulturwissenschaft/Medieninformatik Historisch-Kulturwissenschaftliche Informationsverarbeitung.
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Mobility Lösungen heute GOOD for Enterprise Tobias Esser GELSEN-NET Kommunikationsgesellschaft mbH Vertrieb Geschäftskunden / Systemgeschäft.
Kamran Awan & Mohammed Soultana
Mind the Gap Die semantische Lücke zwischen Objekten und Relationen.
Mehrbenutzerzugriff auf GIS-Daten
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
->Prinzip ->Systeme ->Peer – to – Peer
Vortrag - Diplomarbeiten (HS I)
RelationentheorieObjektorientierte Datenbanken  AIFB SS C++-ODL (1/6) Erweiterung des deklarativen Teils einer C++-Klasse Datentypen d_String,
EJB Architektur für große Web - Applikationen Gerald Weber
Architekturen und Techniken
Auftragserfassungssystem für Drehmomentaufnehmer Datenbank und Software Dennis Rollesbroich 1.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl.
Anforderungen an die neue Datenstruktur
Verteilte Anwendungen: J2EE
Von Wietlisbach, Lenzin und Winter
Datenstrukturen und Softwareentwicklung
Von Wietlisbach, Lenzin und Winter
 Präsentation transkript:

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

Themen Überblick DICOM Problembeschreibung Fragestellungen Software Prototyp

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

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

Anforderungsbeschreibung Framework entwickeln Persistent Fehlerfrei 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 Überblick DICOM Problembeschreibung Fragestellungen Allgemein Was ist DICOM DICOM File Problembeschreibung Fragestellungen 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 Richtlinien für digitale Medien Standard für medizinische Bilder -> Bilder in einem einheitlichen Format speichern

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 Überblick DICOM Problembeschreibung Fragestellungen Programmiersprache Persistenz Queue Datenbankanforderungen Performance Fragestellungen Software Prototyp

Programmiersprache JAVA Enterprise Edition Funktionalität Klassenbibliotheken des Toolkits dcm4che2 Objektorientierte Programmiersprache GNU Lizenz Eigene Laufzeitumgebung -> verschiedenen Rechenarchitekturen einsetzbar

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

Queue Datenstruktur FiFo (First in First out) Verfahren Erste Datei die in die Queue aufgenommen wird ist auch die erste die diese wieder verläst Konstante Reihenfolge DcmFile add() pool() peek() Queue

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

Performance DICOM Files mehrere 100 MB groß Persistierung in der Datenbank Schlechte Performance Speicherung auf sekundär Datenträger Surrogaten (Platzhalterobjekte) in der Datenbank Referenz auf DICOM File Bedarfsfall Informationen nachladen

Performance Überlegungen: Mehrere Referenzen auf ein DICOM File Ein und dasselbe DICOM File kommt mehrmals vor Großer Speicherbedarf Wenn ein DICOM File in mehreren Queues DcmFile 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 Surrogat Queue 1 Queue 2 Queue 3

Performance Wann darf ein DICOM File gelöscht werden? afterCompletion() Methode des Transaktions-Managers Methodenaufruf nach jeder abgeschlossenen, jedoch noch nicht beendeten Transaktion Überprüfung auf Referenz in der Datenbank auf ein DICOM File Falls NEIN -> Freigabe zur Löschung

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

Data Queue Datenhaltung -> Prinzip einer Queue Umsetzung dieser wird als Data Queue bezeichnet Prototyp -> DcmQueue Data Queue kümmert sich um Datenhaltung und Reihenfolge

Processing Node Managed die Zugriffe auf die Data Queue Repräsentiert Geschäftslogik 2 Arten Producer -> Inputseitig => Erzeugung der Data Queue bzw. Surrogaten Consumer -> Outputseitig => Verwaltung und Löschung der Data Queue bzw. Surrogaten

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 Outputseite und steht immer mit genau einer PN in Verbindung

Verarbeitungsgraph Zwei Typen von PN haben nur eine Input- bzw. eine Outputseite Jene die sich am äußeren Rand des Verarbeitungsgraphen befinden Producer PN können Daten empfangen und in den Verarbeitungsgraphen einfügen Consumer PN können Daten aus dem Verarbeitungsgraphen in ein File System speichern

Verarbeitungsgraph

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 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 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 +pseudoymisieren()

Transaktionsmanagement