FHIR Chat · Facaden Skalierungs-Problem · german/mi-initiative

Stream: german/mi-initiative

Topic: Facaden Skalierungs-Problem


view this post on Zulip Georg Fette (Nov 25 2020 at 08:14):

Ich habe eine Frage die konkret zum aktuellen Projectathon der MII aber auch auf die allgemeine Verwendung von FHIR-Search abzielt:
Wir planen an unserem Standort eine FHIR Facade zu bauen, die direkt auf den Datenbanken der verschiedenen Primärsystemen aufsetzt. Im Projectathon ist eine der Queries die ausgeführt werden soll eine Abfrage von Observations mit einem bestimmten code (GET [base]/Patient?_has:Observation:patient:code=94500-6&_summary=count). Da die Query auf allgemein auf Observation aufsetzt müssen dafür alle Systeme angezapft werden, die potenziell Observations zurück geben und die Ergebnisse nach dem Code filtern. In der Projetathon-Search ist mit dem Code ein Covid-Test gemeint, der bei uns aus der Virologie stammt. In dieser Datenbank sind nur vergleichsweise wenige Daten enthalten, so dass man annehmen könnte, dass das Ergebnis schnell berechnet werden könnte. Das Labor-System liefert jedoch ebenfalls Observations die Codes haben. Dieses System hat 1000x mehr Daten die durch die Facade ebenfalls alle abgefragt werden müssen, um sie auf den Covid-Code zu überprüfen (und sie dann doch alle zu verwerfen). Wie baut man eine Facade die nicht diesen Skalierungs-Flaw hat ?

view this post on Zulip Georg Fette (Nov 25 2020 at 08:16):

als Behelfslösung, könnte man natürlich für jedes Projekt einen eigenen FHIR-Server aufsetzen, der immer nur die Daten für das jeweilige Projekt liefert, aber ich hätte gerne eine Lösung mit einem FHIR-Server für den kompletten Standort

view this post on Zulip Frank Oemig (Nov 25 2020 at 08:49):

Das Problem wird dadurch verursacht, dass man hier eine semantische Fragestellung syntaktisch lösen möchte. Um das aufzulösen müsste die Information mitgeliefert werden. Das könnte man über die Angabe des Profils machen, das dem zugrunde liegt, da der Code alleine nicht ausreicht. Alternativ probiert man es erst mit dem Code, den man dann zum Mappen auf die anfragenden Systeme benutzt.

view this post on Zulip Georg Fette (Nov 25 2020 at 08:58):

Ich habe die Diskussion auch nochmal in Englisch im implementers-Thread gestellt.
Gibt es denn bereits irgendwo (sei es experimentell oder in einem kommerziellen Produkt) eine Lösung für solches "Query Routing" in FHIR Facaden, dass eine Query erst analysiert wird und dann je nach "Capability Statements" der verschiedenen Subsysteme nur diejenigen Systeme angefragt werden, die auch in Frage kommen ?

view this post on Zulip Alexander Zautke (Nov 25 2020 at 21:19):

In Vonk kann man mittels der integrierten Plugin Pipeline einzelnen Services triggern. Man könnte somit einen Dienst bauen, der auf den oben genannten Code horcht. Der Service könnte dann die Facade ansprechen. Siehe https://docs.fire.ly/vonk/reference/programming_api/interactionhandling.html. Beispiele für die Facaden-Implementierung gibt es dort auch.

view this post on Zulip Alexander Zautke (Nov 25 2020 at 21:22):

Ohne einen Datenbank-Index auf den entsprechenden Elementen der Quellsystem zu haben, wird das ganze jedoch sehr mühselig.


Last updated: Apr 12 2022 at 19:14 UTC