Andreas Schuler, MSc. – “Naked FHIR”

Textmasterformate durch Klicken bearbeiten
Naked-FHIR
− Zweite Ebene
Code-Generierung
auf Basis von HL7 FHIR
> Dritte Ebene
Andreas
Schuler,
− Vierte
Ebene MSc.
> Fünfte Ebene
HL7 Jahrestagung 2015
18. März 2015
Einführung
Textmasterformate
durch
Klicken bearbeiten
− HL7 FHIR stellt eine Reihe
an Basis-Ressourcen
zur Verfügung
Zweite
Ebene
−− Über
Conformance
Ressource erhalten Clients Conformance Statement
Dritte Ebene
>> beschreibt
angebotene Ressourcen (Profile), Operationen, ValueSets, etc.
− Vierte Ebenean Clients bzw. „Contract“ zwischen Server und Client
> Anforderungen
> Fünfte Ebene
I allow these Operations
…
Always use these ValueSets when talking with me
…
I support the following
Resources
…
Supplied Resources
must conform to one of these Profiles
…
− Wie kann eine komplette Anwendung (Client) aus einem Conformance
Statement generiert werden?
2
Klassische Architektur von Anwendungen
Textmasterformate
durch
bearbeiten
− Domänenobjekte werden
über Klicken
Anwendungslogik
an
− Benutzerschnittstelle
Zweite Ebene
gebunden
> Dritte
Ebene
− Für
automatische
Code-Generierung ungeeignet
− Vierte Ebene
> zusätzliche Information erforderlich, um Abbildung der Fachobjekte
> Fünfte Ebene
(FHIR-Ressourcen) auf Anwendungslogik zu ermöglichen
FHIR Ressourcen
3
[Quelle: nach http://de.wikipedia.org/wiki/Naked_Objects]
Naked Objects Architekturmuster
Textmasterformate
durch
− Benutzerschnittstelle als
direkteKlicken
Abbildungbearbeiten
der Domänenobjekte
− Zweite Ebene
− Benutzerschnittstelle zu 100% aus Definition von Domänenobjekten
> Dritte Ebene
generierbar
− Vierte Ebene
− Metainformation für Generierung erforderlich
> Fünfte Ebene
FHIR Ressourcen
4
[Quelle: nach http://de.wikipedia.org/wiki/Naked_Objects]
Konzept
Textmasterformate
Klicken
bearbeiten
− Abstraktion von Nakeddurch
Objects
Pattern hinsichtlich
der Unterstützung
− beliebiger
Zweite Ebene
FHIR-Ressourcen
> Dritte Ebene
− Automatische
Generierung von Client-Anwendungen anhand der
− Vierte Ebene
Informationen, die über die Ressourcen Conformance, Profile, etc.
> Fünfte Ebene
abgefragt
werden können
> Struktur von Ressourcen (Elemente, Datentypen, Kardinalitäten)
> Operationen auf Ressourcen (Read, Create, Search, etc.)
5
Konzept
Code-Generierungsprozess
Textmasterformate
durch Klicken bearbeiten
1. Retrieve Conformance
− Zweite Ebene
> Abfrage der Ressource Conformance eines FHIR-Servers
> Dritte Ebene
− Vierte
Ebene
GET [base]/metadata {?_format=[mime‐type]}
> Fünfte Ebene
2. Select Supported Profiles
> Auswahl jener Profile, die in der generierten Applikation unterstützt
werden sollen
Application
6
Konzept
Code-Generierungsprozess
Textmasterformate
durch
Klicken bearbeiten
3. Model Transformation
(M2M)
− Zweite Ebene
> Abbildung und Transformation selektierter Profile auf
> Dritte Ebene
ApplicationModel
− Vierte Ebene
− aggregiert gewählte Profile sowie Informationen hinsichtlich
> Fünfte Ebene
Struktur der Zielanwendung
− Stellt abstrakte Repräsentation des Naked Objects Pattern dar
Application
7
Konzept
Code-Generierungsprozess
Textmasterformate
durch Klicken bearbeiten
4. Generate Code (M2C)
− Zweite Ebene
>
>
Erzeugt Quellcode für Zielanwendung aus ApplicationModel
> Dritte Ebene
Templates als Basis für das Mapping der Konzepte aus dem Modell
auf eine Benutzerschnittstelle
− Vierte Ebene
> Fünfte Ebene
Application
8
Konzept
Mapping von FHIR-Ressourcen auf die Benutzerschnittstelle
Textmasterformate
durchund
Klicken
bearbeiten
− Kombination aus Ressource
Operation
bestimmt Aufbau einzelner
− Ansichten
Zweite Ebene
einer Applikation
> Dritte Ebene
− Einzelne
Elemente der Ressource bestimmen Zusammensetzung der
− Vierte Ebene
Benutzerschnittelle
> Fünfte Ebene
− Operation
bestimmt Interaktionsmöglichkeit
− Erzeugen, Bearbeiten, Löschen, etc.
?
9
Konzept
Mapping von FHIR-Ressourcen auf die Benutzerschnittstelle
Textmasterformate
durch Klicken bearbeiten
− Ressource besteht aus Elementen
−
−
−
Zweite
Ebene
>
Elemente
besitzen Typ (Datentyp, Ressource, Element) und Kardinalität
> Dritte Ebene
Datentypen
als kleinste gemeinsame Einheit von Elementen
− Vierte Ebene
Bereitstellen
von Templates für Kombination aus
> Fünfte Ebene
> Datentypen
(Primitive, Complex) und
> anwendbarer Operationen (Read, Search, Create, etc.)
− Benutzerschnittstelle für eine Ressource ergibt sich aus Aggregation
entsprechender Templates
10
[Quelle: http://www.fhir.org]
[Quelle: http://www.fhir.org]
Konzept
Mapping von FHIR-Ressourcen auf die Benutzerschnittstelle
Textmasterformate
Klicken
bearbeiten
− Bsp.: Operation READ indurch
Kombination
mit Ressource
Patient
− Zweite Ebene
> Dritte Ebene
− Vierte Ebene
> Fünfte Ebene
HumanName
+
Operation
[Quelle: http://www.fhir.org]
[Resultat der Generierung (Android)]
11
Beispiel Ressource Patient
Textmasterformate
bearbeiten
− Bsp: Generieren einesdurch
AndroidKlicken
Client für die
Ressource Patient und die
− Operationen
Zweite Ebene READ und SEARCH
> Dritte Ebene
− Vierte Ebene
> Fünfte Ebene
12
Beispiel Ressource Patient
Textmasterformate durch Klicken bearbeiten
Auswahl zu generierender
− Zweite Ebene
Ressourcen
> Dritte Ebene
− Vierte Ebene
> Fünfte Ebene
Auswahl unterstützter Operationen
13
Beispiel Ressource Patient
Textmasterformate
durch Klicken bearbeiten
− Resultat der Code-Generierung
− Zweite Ebene
> Je eine Android Activity für die Suche (SEARCH) und die Anzeige
> Dritte Ebene
(READ) der Ressource Patient
− Vierte Ebene
> Fünfte Ebene
Operation
Operation SEARCH
READ
HumanName
HumanName
Contact
14
Einsatzbereiche
Textmasterformate
durch Klicken
− Rapid Application Development
(RAD) bearbeiten
− Zweite Ebene
> Basis für einfache erste Prototypen als Teil eines iterativ
> Dritte Ebene
inkrementellen Vorgehensmodells
− Vierte Ebene
> Einfache Adaptierungen am erzeugten Quellcode möglich
> Fünfte Ebene
− Aufgrund der Abstraktion weitere Anwendungsbereiche durch
Ergänzung von Templates denkbar
> Bspw.: generieren automatischer Tests
− Prüfen, ob ein FHIR-Server entsprechend dem publizierten
Conformance Statement agiert
15
Status
Textmasterformate
durch Klicken
bearbeiten
− Naked FHIR Prototyp unterstützt
FHIR DSTU1
− Zweite Ebene
> Adaptierung auf aktuellere Versionen durch Bootstraping
> Dritte Ebene
− Vierte Ebene
> Fünfte Ebene
Application
Model
V.2.0
− Problem bei Elementen von Ressourcen ohne Typ
> Bspw.: PatientAnimal
− Vorrangig Unterstützung für REST
− Derzeit nur Templates für Android
− Fehlende Unterstützung für Search-Queries
16
[Quelle: http://www.fhir.org]
Fragen?
Textmasterformate durch Klicken bearbeiten
− Zweite Ebene
> Dritte Ebene
− Vierte Ebene
> Fünfte Ebene
Andreas Schuler, MSc.
Wissenschaftlicher Mitarbeiter
e-Health – Integrierte Versorgung
FH OÖ F&E GmbH
[email protected]
17