from a developers perspective
About the Presenter:
Jan Dahlke
* Professional Developer bei TAS seit 01.06.2023
* 2020 Wechsel nach Telemedizinischen UI's und dabei FHIR entdeckt
* Mitarbeit an der DentaMileConnect und an TeleMed5000
* vor allem als Client-Developer mit einer internen FHIR Implementation Erfahrungen gesammelt
refresher: Was ist Rest - Representational State Transfer
REST - The mental model
?limit=10 oder ?sort=asc).Von REST zu FHIR-REST
FHIR ist eine REST "Instance"
Kernkomponenten der FHIR Spezifikation
source: http://hl7.org/fhir/
FHIR-Ressourcen: Grundstruktur und Vererbung
Resource:
id, meta.DomainResource:
Resource. Fügt domänenspezifische Elemente hinzu wie text, contained, extension.Spezifische Ressourcen (z.B. Patient, Beobachtung):
DomainResource erben; haben spezifische Strukturen und Elemente.Am Beispiel "Patient" Ressource:
Resource -> DomainResource -> Patient.Erweiterbarkeit:
Profiling:
Exkurs: Basisresourcen, Valuesets and FHIR Types
Besonderheiten von Bundles
das ist nur eine kleine Auswahl
ResourcenAnfrage vs Suche
curl -X GET https://[FHIR-SERVER]/Patient/1234
curl -X GET https://[FHIR-SERVER]/Patient?name=Müller
der Aufbau einer FHIR-Resource
Eine Beispiel: die Resource "Patient"
source: http://hl7.org/fhir/patient.html
Params für den Patienten
Vorteile von Typisierungen in der Client-Entwicklung:
ein Einblick: FHIR-Werkzeuge: Nutzen und Vorteile
Nutzen eines FHIR-Clients (z.B. fhir.js):
myFhirClient.search<Bundle<Patient>>(params: TypedParams)Vorteile der HAPI-FHIR-Server-Implementierung: (free instance: https://hapi.fhir.org/)
Thought Experiment: Bundeseinheitlicher Medikationsplan
working with FHIR-Rest
man braucht:
* vscode https://code.visualstudio.com/download
* das plugin rest-client https://marketplace.visualstudio.com/items?itemName=humao.rest-client
Aufgabe 1: https://gitlab.spree.de/strame-fhir/strame_fhir_curls/-/tree/main/aufgaben
1. create a patient on https://hapi.fhir.org
2. get the patient by id
3. (optional). alter the name of the patient
4. create a practioner
5. find a good field in the patient to apply a "hausarzt" and connect the ressources by using PUT on your patient
6. what are your experiences/ what worked well, what did not work well
Aufgabe2: Getting deeper into the Datamodell
http://hl7.org/fhir/medicationstatement.html
# dive deep in the fields of medication (Codeable Reference)
# describe your thinking on how you would reference a medication and which fields to use for what
# what would be missing here in either or to fulfill "Medikationsplan" ?
persist the results: (what are your findings?)
Bundeseinheitlicher Medikationsplan. 30min!
Aufgabe3 : Betrachte den Plan und finde die Beteiligten FHIR Ressourcen
Aufgabe3: Erzeuge alle notwendigen Ressourcen und setze Referenzen
hier kann man spicken inklusive der Fehler die der Presenter gemacht hat, beachte, wie der Name falsch behandelt wurde
fast eure Erkenntisse zusammen
Optional: Gedankenspiel: TAS FhirServerImplementation
Task:
* Besprecht im Plenum das grobe Ablaufvorgehen, wenn man auf Grundlage einer xml aller Ressourcen eine implementieren wollte analog/konkurrent zu hapi.fhir
* zeige https://github.com/HL7/fhir/tree/master/source, dass hier alle Resourcen in xml beschrieben sind.
* Was kann man damit anstellen als Entwickler/Projektmanager/Architect für MedProdukte?
* sichere ergebnisse auf whiteboard ?
15min!
Schluß:
wir wollen nun vom speziellen zum allgemeinen nochmal durch das Gelernte/Erfahrene gehen und zusammentragen
Client/Consumer:
Wie verhalten sich FHIR Types in GUI Templates?
Braucht man DTOS?
Wie aggregiert man von mehreren Endpunkten:
the good:
*
*
the bad:
*
*
Schluß
Schnittstelle REST:
* how should the implementer know tf?
* is fhir interop here? can interop be ensured here?
the good:
*
*
the bad:
*
*
Schluß
meta, meta: the "birds" view
the good:
*
*
the bad:
*
*