Eine generische Softwarebibliothek zur Web-Umsetzung des Datenschutzkonzepts A des TMF e.v.

Ähnliche Dokumente
Up and Down - Projekt mit dem AT90USB162

Datenschutzbibliothek zu Modell A der TMF-Datenschutzkonzepte

BSV Software Support Mobile Portal (SMP) Stand

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Inptools-Handbuch. Steffen Macke

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

ESB - Elektronischer Service Bericht

KURZANLEITUNG CLOUD OBJECT STORAGE

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Guide DynDNS und Portforwarding

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Kommunikations-Management

Verwendung des Terminalservers der MUG

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Leichte-Sprache-Bilder

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Erste Hilfe. «/IE Cache & Cookies» Logout, alte Seiten erscheinen, Erfasstes verschwindet?

Monatstreff für Menschen ab 50 Temporäre Dateien / Browserverlauf löschen / Cookies

Synchronisations- Assistent

ICS-Addin. Benutzerhandbuch. Version: 1.0


Projektarbeit: Roulette Spiel

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

CGM JESAJANET Zuweiserportal Einrichtung des Konfigurationsassistenten und der Benachrichtigungen

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

Speicher in der Cloud

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand:

Leitfaden zur Nutzung des System CryptShare

Microsoft PowerPoint 2013 Folien gemeinsam nutzen

Anleitung über den Umgang mit Schildern

Kurzanleitung zu. von Daniel Jettka

"Ich habe als Vereinsverantwortlicher eine erhalten - was mache ich, um Torwurf.de für meinen Verein einzusetzen?"

Tutorial: Wie nutze ich den Mobile BusinessManager?

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

Nutzung von GiS BasePac 8 im Netzwerk

Verwendung des IDS Backup Systems unter Windows 2000

BEO-Sanktionsprüfung Eine Einführung zum Thema Sanktionsprüfung und eine Übersicht zur BEO-Lösung.

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

DOKUMENTATION VOGELZUCHT 2015 PLUS

estos UCServer Multiline TAPI Driver

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Software Engineering Klassendiagramme Assoziationen

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Registrierung am Elterninformationssysytem: ClaXss Infoline

Einfügen von Bildern innerhalb eines Beitrages

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

FTP-Leitfaden RZ. Benutzerleitfaden

SANDBOXIE konfigurieren

Dominik Stockem Datenschutzbeauftragter Microsoft Deutschland GmbH

Grafstat Checkliste Internetbefragung

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Anlegen eines DLRG Accounts

Die Erstellung eigener Strukturprofile

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Einrichten der Outlook-Synchronisation

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Lizenz Verwaltung. Adami Vista CRM

Daten-Synchronisation zwischen Mozilla Thunderbird (Lightning) / Mozilla Sunbird und dem ZDV Webmailer

Computeria Solothurn

Handbuch Offline-Abgleich

ÖKB Steiermark Schulungsunterlagen

Step by Step Webserver unter Windows Server von Christian Bartl

Datensicherung. Beschreibung der Datensicherung

Skript Pilotphase für Arbeitsgelegenheiten

Inhalt: Ihre persönliche Sedcard... 1 Login... 1 Passwort vergessen... 2 Profildaten bearbeiten... 3

OP-LOG

Wie halte ich Ordnung auf meiner Festplatte?

Die Dateiablage Der Weg zur Dateiablage

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

DOKUMENTATION PASY. Patientendaten verwalten

NetStream Helpdesk-Online. Verwalten und erstellen Sie Ihre eigenen Tickets

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Anleitungen zum KMG- -Konto

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Quick-Guide Web Shop. Kurzanleitung für die Benutzer des Bernd Kraft Webshops

ANYWHERE Zugriff von externen Arbeitsplätzen

icloud nicht neu, aber doch irgendwie anders

News & RSS. Einleitung: Nachrichten er-(veröffentlichen) und bereitstellen Nachrichten erstellen und bereitstellen

Übersicht. Was ist FTP? Übertragungsmodi. Sicherheit. Öffentliche FTP-Server. FTP-Software

ISAP Kundencenter. Alles. Einfach. Online. Das Handbuch zum neuen ISAP Kundencenter ISAP AG. All rights reserved.

Bedienungsanleitung für den Online-Shop

Nach dem Anmelden sind die Arbeitnehmer beim Finanzamt bekannt und Sie können und müssen sogar die Änderungsliste, z.b. monatlich, abrufen.

Wie erhalte ich meine Beitragsrechnung 2014? EINE SCHRITT-FÜR-SCHRITT ANLEITUNG

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird.

Transkript:

Eine generische Softwarebibliothek zur Web-Umsetzung des Datenschutzkonzepts A des TMF e.v. Institut für Medizinische Informatik und Biomathematik Dipl.-Inf. Martin Lablans Dipl.-Inf. René Brüntrup Prof. Dr. med. Frank Ückert Domagkstraße 11 48149 Münster 1. Zweck und Funktionalität Email: lablans@imfl.de Fon: +49 (0) 251 83-58210 Fax: +49 (0) 251 83-58219 Zentrale Forderung des Datenschutzkonzepts A der Technologie- und Methodenplattform für die vernetzte medizinische Forschung e.v. (TMF) ist die organisatorische und physikalische Trennung der gespeicherten Datenklassen, etwa der identifizierenden (IDAT) und medizinischen (MDAT) Kontextdaten. Deren Zusammenführung soll dabei allein auf dem Rechner des berechtigten Benutzers geschehen, was in heutigen Webbrowsern mit Bordmitteln aufgrund technischer Beschränkungen bzw. Sicherheitsmerkmalen wie etwa der Same-Origin-Policy nicht ohne Weiteres möglich ist. Die vorliegende Softwarebibliothek unterstützt den Entwickler bei der praktischen Umsetzung der Datentrennung und Datenzusammenführung mithilfe der folgenden Funktionalitäten: - Handhabung von temporären Identifikatoren (s) o Erzeugung zufallsgenerierte s für übergebene IDs (zum Beispiel Patienten-IDs) transparente Wiederverwendung bereits erzeugter s Verwaltung und Ablauf der Gültigkeit o Registrierung beim anderen Server o clientseitige Auflösung Verwendung allein von Bordmitteln gängiger Browser ausreichend (JavaScript) Interpretation von HTML-Attributen erlaubt Verwendung bestehender Template-Engines bei minimalem Scripting-Aufwand für Entwickler - Authentifizierung - Kommunikation zwischen den Servern durch gemeinsame Sitzungen (vgl. 3.1) o Transfer beliebiger Nutzdaten zwischen den Servern ohne Einbeziehung oder Kenntnis des Webbrowsers Um den Einstieg in die Entwicklung einer Webapplikation mit Datentrennung zu erleichtern, enthält die Bibliothek außerdem drei einfache Beispielimplementierungen, die verschiedene Ansätze zeigen. Was diese Bibliothek nicht leistet: - Die Nutzung der Bibliothek entbindet nicht von Lektüre und Verständnis des zugrundeliegenden Datenschutzkonzepts 1. - Um der Generik willen ist diese Bibliothek kein vollständiges Applikations-Framework, sondern unterstützt allein bei üblicherweise durch die Datentrennung verursachten Problemstellungen. Insbesondere sind nach wie vor Programmierkenntnisse nötig. 1 vgl. Reng CM, Debold P, Specker C, Pommerening K. Generische Lösungen zum Datenschutz für die Forschungsnetze in der Medizin. Medizinisch Wissenschaftliche Verlagsgesellschaft 2006.

2. Entstehung und Veröffentlichung Eine erste Web-Umsetzung des TMF-Datenschutzkonzepts A erfolgte im Rahmen des Bildserverprojekts MDPE für den HIT-Studienverbund, gefördert durch die Deutsche Kinderkrebsstiftung. Die hier vorliegende Bibliothek beruht auf einer Weiterentwicklung im Rahmen des Projekts KernPäP zur Dokumentation in der ambulanten pädiatrischen Palliativmedizin, gefördert durch die Alfried-Krupp-von-Bohlen-und-Halbach-Stiftung. Die Veröffentlichung erfolgt in Zusammenarbeit mit der TMF, in deren Arbeitsgruppe Datenschutz auch das zugrundeliegende Datenschutzkonzept erarbeitet wurde. Hinter dieser Bibliothek steht ein Gedanke der freien, gemeinschaftlichen Fortentwicklung. Deshalb erfolgt die Veröffentlichung unter der MIT-Lizenz (für Wortlaut vgl. 6), die u.a. kostenlose Verwendbarkeit auch in kommerziellen Projekten, Nachprüfbarkeit des Programmcodes und Erweiterbarkeit sowie Modifizierbarkeit der Bibliothek durch die Nutzergemeinde gewährleistet. In diesem Sinne wird darum gebeten auch wenn die Lizenz dazu nicht verpflichtet freiwillig: - die Bibliothek als hier vorliegendes Gesamtpaket nicht zum Download bereitzustellen, sondern auf die von der TMF und den Urhebern bereitgestellten Angebote hinzuweisen, - den Autoren Rückmeldung über die Nutzung zu geben, was unabhängig vom konkreten Projekt eine wertvolle Evaluation darstellt und - etwaige entwickelte Korrekturen, Verbesserungen und Erweiterungen in die Bibliothek zurückfließen zu lassen, etwa durch Zusendung von Patches an die ursprünglichen Autoren. 3. Grundlegende Funktionsweise Um einen Überblick über die Funktionalität der Bibliothek zu erhalten, wird in den folgenden beiden Kapital ein einfaches Beispiel verwendet: Es soll eine Applikation entwickelt werden, die es einem Arzt erlaubt sich anzumelden, auf seine Patienten zuzugreifen und zu jedem davon einen medizinischen Datensatz zu speichern. Die Applikation soll gemäß TMF-Datenschutzkonzept A zwei Server verwenden: Der IDAT-Server speichert die Anmeldedaten sowie die identifizierenden Patientendaten und auf dem MDAT-Server werden die medizinischen Informationen abgelegt. Eine Patienten-ID, kurz, wird verwendet um diese Daten zu verknüpfen, also jedem Patienten auf IDAT-Seite seine Patientendaten auf MDAT-Seite zuzuordnen. Außerdem soll der Arzt die Möglichkeit haben, sich eine Liste der Patienten mit den neuesten medizinischen Daten anzeigen zu lassen. Die folgenden beiden Abschnitte erläutern grundlegende Implementierungskonzepte und Abweichungen von der TMF-Beispielimplementierung. Die Abweichungen werden anhand des obigen Beispiels motiviert. Sämtliche Abweichungen wurden von den Autoren innerhalb der TMF-Arbeitsgruppe Datenschutz ausführlich besprochen und befürwortet 2. 3.1 Gemeinsame Sitzung Die vorliegende Bibliothek stellt eine gemeinsame Sitzung zwischen beiden Servern bereit, in der beliebige Schlüssel-Wert-Paare gehalten werden können. Die Datenpaare werden direkt zwischen den Servern, also ohne Einbeziehung des verwendeten Webbrowsers, übertragen. Diese Synchronisation erfolgt automatisch beim Spei- 2 vgl. Protokoll der Sitzung der TMF-Arbeitsgruppe Datenschutz am 8. April 2010. Seite 2 von 7

chern der Sitzungsdaten, sodass beide Rechner immer auf den gleichen, aktuellen Datensatz zugreifen können. Diese Implementierung bietet mehrere Vorteile, die im Folgenden beschrieben werden. Im TMF-Konzept ist die Übertragung einer Berechtigungsliste ( Information über Zugangsrestriktionen ) zusätzlich zu jeder erzeugten vorgesehen. Häufig sind die Berechtigungen aber für viele oder alle Patienten identisch, da sie sich aus der Rolle des Benutzers ergeben. Vor allem aus Leistungsgründen ist es daher ratsam eine mehrfache Übertragung derselben Berechtigungsliste zu vermeiden. Das lässt sich durch das Eintragen der Berechtigungen in die gemeinsame Sitzung einfach erreichen. In den gemeinsamen Sitzungen können durch Eintragen entsprechender Schlüssel-Wert-Paare auch die temporären und zugehörigen echten IDs übertragen werden. Diese haben dann keine separaten Gültigkeitszeiten, sondern behalten ihre Gültigkeit für die gesamte Sitzung. Gegenüber der Fassung des Konzepts aus dem Jahr 2006 ergeben sich daraus wiederum zwei entscheidende Vorteile. Zum einen werden temporäre IDs, soweit einmal erstellt, ohne erneute Übertragung wiederverwendet. Zum anderen wird eine ganze Klasse von Anwendungsfehlern ausgeschlossen, die sich dadurch ergeben können, dass ein Teil der temporären IDs nicht länger gültig ist. Je nach Projekt kann für den Datenschutz allerdings auch relevant sein, dass s durch regelmäßiges Aufrechterhalten der Sitzung prinzipiell beliebig lange haltbar sind. Es obliegt dem Entwickler, Sitzungen gegebenenfalls früher zu schließen. Die Beispielapplikation enthält ein typisches Problem aus der Praxis, bei der eine allgemeine Übertragung der Berechtigungsliste notwendig ist: Zu welchen Patienten liegen die neuesten medizinischen Daten vor?. Streng nach Implementierungsempfehlung müsste für jeden Patienten, der je vom Arzt behandelt wurde, vom IDAT- Server eine erzeugt werden. Dieser Satz an s würde an den Arbeitsplatzrechner übertragen, der unter Angabe des vollständigen -Satzes vom MDAT-Server sein angefordertes Ergebnis erhielte. Mit einer gemeinsamen Sitzung kann der Arbeitsplatzrechner die Anfrage direkt an den MDAT-Server stellen, an dem er über die gemeinsame Sitzung ebenfalls angemeldet ist. Die Informationen über die vom Arzt zugreifbaren Patienten wurden im Rahmen der Rechteliste über die gemeinsame Sitzung zur temporären Haltung an den MDAT- Server übertragen, so dass der Server direkt mit den s der zuletzt behandelten Patienten antworten kann. IDAT-Server IDAT & ADAT Identifizierende Daten Arztdaten (Rollendaten) MDAT-Server & 1. Schritt Authentifizieren und IDAT anfordern 2. Schritt IDAT,, ausliefern IDAT & Benutzer Arbeitsplatzrechner MDAT Medizinische Behandlungsdaten 3. Schritt MDAT anfordern mittels 4. Schritt MDAT ausliefern Abbildung 1: Anlegen und Nutzen einer (nach Beispielimplementierung im TMF-Konzept, Modell A). Als weitere Konsequenz aus der Verwendung einer gemeinsamen Sitzung ergibt sich die Möglichkeit, s nicht nur auf dem IDAT-, sondern auch auf dem MDAT-Server zu erzeugen (vgl. nächster Abschnitt). Seite 3 von 7

3.2 Rückpfeil Ursprünglich war die Erstellung der s allein auf dem IDAT-Server vorgesehen, der diese dann dem MDAT- Server übermittelt (vgl. Abbildung 1). In bestimmten Fällen kann es jedoch notwendig sein, dass auch der MDAT- Server diese Identifikatoren erzeugt und seinerseits an den IDAT-Server sendet. Das erlaubt eine Rückauflösung identifizierender Daten aus MDAT-Antworten. Betrachtet man erneut obige Fragestellung Zu welchen Patienten liegen die neuesten medizinischen Daten vor?, so erhält man als Antwort vom MDAT-Server Personeninformationen, welche nicht mit tatsächlichen Namen versehen sein können, da sie als identifizierendes Merkmal dort nicht vorliegen. Streng nach Konzept darf der MDAT-Server jedoch auch keine anlegen; das darf nur der IDAT-Server. Dieser müsste also vorab s für sämtliche infrage kommenden Personen erstellen und an MDAT-Server und Browser übermitteln an letzteren sogar mit allen potentiell benötigten identifizierenden Daten. Das ist datenschutztechnisch diskutabel und zudem aufgrund der Datenmengen unpraktikabel. In der vorliegenden Softwarebibliothek ist es auch dem MDAT-Server erlaubt s zu erzeugen. Unter deren Angabe kann der Arbeitsplatzrechner notwendige identifizierende Daten vom IDAT-Server abrufen. So besteht im obigen Beispiel die Antwort vom MDAT-Server aus einer Liste von s, die sich dann über den Rückpfeil auflösen lassen (vgl. Abbildung 2). Dabei wird die Berechtigung weiterhin durch den IDAT-Server geprüft, dem ja die Rechtetabellen vorliegen. Die hat im Rückpfeil also nur identifizierenden Charakter. IDAT-Server IDAT & ADAT Identifizierende Daten Arztdaten (Rollendaten) MDAT-Server & & 0. Schritt Authentifizieren k := 0 Schritt 4k+1 IDAT anfordern Schritt 4k+2 IDAT,, ausliefern IDAT & Benutzer Arbeitsplatzrechner MDAT Medizinische Behandlungsdaten Schritt 4k+3 MDAT anfordern Schritt 4k+4 MDAT,, ausliefern k := k+1 MDAT & Abbildung 2: Die Erstellung von s durch den MDAT-Server erlaubt eine schleifenartige Abfrage beider Server. k zählt den Schleifendurchlauf. 4. Verwendung Im Folgenden wird die Verwendung der Bibliothek anhand einer schrittweisen Implementierung der Beispielapplikation unter zur Nutzung der wichtigsten Funktionen demonstriert. Informationen zu den weiteren Funktionen der Bibliothek und den Demoapplikationen befinden sich in der mitgelieferten Datei README.html. Anmeldung Zunächst muss der Arzt authentifiziert und eine gemeinsame Sitzung aufgebaut werden. Der Browser sendet die Anmeldedaten des Arztes an den IDAT-Server, wo die Authentifizierung stattfindet. Bei korrekten Anmeldedaten wird dort eine Sitzung mit einer eindeutigen ID angelegt und die Rechteliste darin gespeichert. Seite 4 von 7

$sessionid = createuniqueid(); setcookie( idat_session_id, $sessionid); $remotesession = remotesessionfactory->create($sessionid); $remotesession->set( userrights, darf_alles ); $remotesession->save(); Quellcode 1: Anmeldung (IDAT). Nach Authentifizierung wird auf IDAT-Seite eine gemeinsame Session initiiert. Hierzu wird eine neue Session erstellt (Zeilen 1-3), in der beliebige Schlüssel-Wert-Paare gespeichert werden können. Diese Funktion wird in Zeile 4 genutzt, um die Nutzerrechte unter dem Schlüssel userrights in der Session zu speichern. Abschließend wird die Session gespeichert (Zeile 5). Speichern bewirkt hier nicht nur eine lokale Speicherung, sondern automatisch auch einen Abgleich der Sitzung mit dem MDAT-Server. Der Anwender ist damit am IDAT-Server angemeldet und dem MDAT-Server ist die Sitzung bekannt. Um die Anmeldung auch beim MDAT-Server zu vervollständigen, genügt es den Benutzer dort dieser Session zuzuordnen. Dazu wird dem Browser die $sessionid übertragen, der diese an den MDAT-Server übermittelt und auch dort ein Sitzungscookie erhält 3 : $remotesession = remotesessionfactory->load($sessionid); if (!$remotesession $remotesession->get( userrights )!== darf_alles ) return false; setcookie( mdat_session_id, $sessionid); Quellcode 2: Anmeldung (MDAT). Der MDAT-Server erkennt die gemeinsame Sitzung wieder und kann sie dem Benutzer zuordnen. Bei nachfolgenden Anfragen können jetzt sowohl IDAT als auch MDAT die Sitzung anhand des Cookies laden. Beispiel für IDAT: if (!isset($_cookie[ idat_session_id ])) return null; return remotesessionfactory->load($_cookie[ idat_session_id ]); Quellcode 3: Laden der etablierten Sitzung (IDAT; MDAT analog). Erzeugung und Verwendung von s Mithilfe der etablierten Sitzung können nun temporäre IDs (s) erzeugt und verwendet werden. Der angemeldete Arzt wird zunächst eine Liste von Patienten erhalten, die auf dem IDAT-Server wie folgt erstellt werden kann: $patients = getpatients(); foreach ($patients as $patient) { $patient->tempid = $remotesession->gettempid($patient->id); unset($patient->id); } $remotesession->save(); Quellcode 4: Erzeugung von s für s (IDAT). 3 Das zweite Cookie ist erforderlich, da der MDAT-Server anders als bei Inhalten der gemeinsamen Sitzung nicht auf die Cookies des IDAT-Servers zugreifen kann (und andersherum). Um das zu verdeutlichen, werden hier trotz gleichen Inhalts serverspezifische Namen verwendet. Seite 5 von 7

Die Liste $patients enthält nun s anstatt s und kann daher an den Client übertragen werden. Nach der Auswahl eines Patienten können die medizinischen Daten unter Angabe der vom MDAT-Server abgerufen werden. Auf dem Server wird die wieder zur ursprünglichen aufgelöst: $id = $remotesession->getid($tempid); $patientdata = getpatientdata($id); Quellcode 5: Rückgewinnung der aus einer (MDAT). Holen und Auflösen identifizierender Daten Zuletzt wird eine Übersicht über zuletzt behandelte Patienten implementiert. Diese Anfrage setzt eine Erstellung von s durch den MDAT-Server und Auflösung mithilfe des Rückpfeils zum IDAT-Server voraus (vgl. 3.2). Dazu wird folgende Anfrage an den MDAT-Server gestellt: jquery.getjson(mdaturl + /api/getlatestpatients?physician=abt 0Lc, ); Die Antwort auf diese Anfrage enthält lediglich s und keine identifizierenden Daten, etwa [ 1od 7du, dns jks, m91 pol ] Um diese Daten anzuzeigen, sollen sie nun gegen die tatsächlichen Patientennamen ausgetauscht werden. Um diese häufig wiederkehrende Aufgabe zu vereinfachen, enthält die Bibliothek den sogenannten -Resolver, der bei Aufruf sämtliche DOM-Elemente nach den beiden Attributen data-subject und data-id durchsucht, diese via Nachfrage beim anderen Server auflöst und die Elemente entsprechend mit Daten füllt. Aus den oben erhaltenen Daten kann z.b. folgender HTML-Code erzeugt werden: <span data-subject= patientname data-id= 1od 7du /> <span data-subject= patientname data-id= dns jks /> <span data-subject= patientname data-id= m91 pol /> Alternativ könnte der MDAT-Server natürlich auch direkt diese Ausgabe liefern. Nach dem Einfügen des Codes in die Seite reicht ein einfacher Aufruf des Resolvers, der die s sammelt und in einer einzigen Anfrage an den IDAT-Server zu identifizierenden Daten auflöst. Diese Daten werden dann direkt in die Seite eingetragen: tempidresolver.resolve(); 5. Weiterentwicklung; Berücksichtigung neuer technologischer Entwicklungen Mit ständiger Weiterentwicklung von Browsern, Webservern und anderen beteiligten Werkzeugen muss eine Softwarebibliothek Schritt halten können. Die Bibliothek berücksichtigt zum Zeitpunkt ihrer ersten Veröffentlichung jüngste Entwicklungen. So existiert etwa eine Browserweiche, die transparent für Entwickler und Nutzer Cross-Origin Resource Sharing 4 nutzt, falls der genutzte Browser dies schon zulässt. Aber auch neue Entwicklungen werden durch den modularen und leicht anpassbaren Ansatz begünstigt. 4 vgl. Entwurf des W3C-Konsortiums unter http://www.w3.org/tr/2009/wd-cors-20090317/ Seite 6 von 7

Weitere Entwicklungen werden durch den modularen und leicht anpassbaren Ansatz begünstigt und sind aufgrund des frei verfügbaren Quellcodes sowie der gewählten Lizenz auch durch andere Entwickler als die ursprünglichen Urheber möglich (vgl. 2 und 6). 6. Anhang: MIT-Lizenz Die folgende Lizenz gilt für den im Rahmen dieser Bibliothek ausgelieferten Quellcode. Copyright (c) 2010 René Brüntrup, Martin Lablans, Frank Ückert Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Seite 7 von 7