Direkt zum Inhalt

How to add SAP HANA to WebAPI

Wie man SAP HANA zu WebAPI hinzufügt

Die OHDSI-WebAPI ist eine Anwendung mit verschiedenen RESTful Services, über die Sie auf eine oder mehrere Datenbanken zugreifen können, um Daten des OMOP Common Data Model (CDM) abzufragen. Entwickelt wird die WebAPI von „Observational Health Data Sciences and Informatics“ (OHDSI) – einem interdisziplinären Gemeinschaftsprojekt, das die Analyse von großflächigen Gesundheitsdaten ermöglicht.

Die WebAPI ist ein extrem umfangreiches Thema. Sie bietet viele Funktionen für beobachtende Patientendaten, die den Rahmen dieses Blogs sprengen würden. Der Fokus dieses Artikels liegt vielmehr darauf, die WebAPI zu sezieren und zu zeigen, wie sie mit verschiedenen CDM-Datenbanken kommuniziert. Außerdem erklären wir, wie Sie die SAP HANA-Datenbank zur Liste der bestehenden Datenbanken hinzufügen.

Die Schritte im Überblick:

1. Den Datenbanktreiber als Abhängigkeit (Dependency) zur WebAPI hinzufügen.

2. Die WebAPI-Abhängigkeitsbibliothek ArachneCommons um einen Eintrag für die neue Datenbank erweitern.

3. Die neuen Muster (Patterns) an die SqlRender-Bibliothek anhängen.

4. Die modifizierten Abhängigkeiten kompilieren (Build) und in ein öffentliches oder privates Repository pushen.

5. Das Quell-Repository von SqlRender und ArachneCommons in der WebAPI aktualisieren.

Die WebAPI unterstützt derzeit Postgres, Oracle, Redshift, Impala, SQL Server PDW und BigQuery. Es handelt sich um eine Spring-Boot-Java-Anwendung mit einer eigenen, dedizierten Datenbank. Diese dedizierte Datenbank wird verwendet, um Konfigurationen und Verbindungsinformationen der CDM-Datenbanken zu speichern, was wiederum die Verbindung zu den einzelnen Datenbanken ermöglicht.

CDM databases

Da es sich um eine Spring-Boot-Anwendung handelt, enthält die pom.xml alle Abhängigkeiten, die die WebAPI benötigt. Neben den Abhängigkeiten für das Spring-Framework gehören dazu auch die JDBC-Treiber aller oben genannten Datenbanken. Um sicherzustellen, dass jeder Datenbanktreiber ordnungsgemäß geladen wird, ruft die WebAPI das Klassenobjekt des entsprechenden Treibers ab und überprüft es. Die Liste der erforderlichen Treiber ist als Teil der Klasse DataAccessConfig fest im Code hinterlegt.

Schritt 1:
Fügen Sie die HANA-Treiberbibliothek zur Liste der Abhängigkeiten in der pom.xml hinzu und tragen Sie den Namen des Klassenobjekts in die Treiberliste der Klasse DataAccessConfig ein.

An dieser Stelle müssen zwei weitere Abhängigkeiten der WebAPI erwähnt werden: ArachneCommons und SqlRender.

Drivers list in the DataAccessConfig class

ArachneCommons ist eine Bibliothek mit gemeinsamen Komponenten, die projektübergreifend in der OHDSI-Community genutzt werden. Sie enthält das Enum-Objekt DBMSType, in dem die Namen und Labels der unterstützten Datenbanken hinterlegt sind. Wenn Sie der WebAPI eine neue Datenbank hinzufügen möchten, ist ein Eintrag in diesem Enum-Objekt erforderlich.

Schritt 2:
Fügen Sie HDB("Hana", "hana") im DBMSType-Enum hinzu.

SqlRender wiederum ist eine Bibliothek, die SQL-Abfragen aus dem Microsoft-SQL-Dialekt in andere Dialekte übersetzen kann. Die von dieser Bibliothek unterstützten Dialekte entsprechen genau den Datenbanken, die im DBMSType-Objekt in ArachneCommons hinterlegt sind.

Funktionell bietet SqlRender ein einfaches Markup zum Schreiben von SQL-Abfragen. Es kann dieses Markup rendern, um ein Äquivalent an ausführbarem SQL im gewünschten Dialekt zu erzeugen. Das Geheimnis dieser Übersetzung basiert auf verschiedenen Mustern, die in der Datei replacementPatterns.csv definiert sind. Daher müssen wir die notwendigen Muster für die neue Datenbank replizieren.

Schritt 3:
Fügen Sie die Muster im Format hana,<Ausgangsmuster>,<Zielmuster> hinzu.

Die oben genannten Änderungen sind nun über die WebAPI, ArachneCommons und SqlRender verteilt. Damit sie reibungslos zusammenarbeiten, müssen wir jedoch noch einen Schritt weitergehen. Da ArachneCommons und SqlRender Abhängigkeiten der WebAPI sind, werden diese Bibliotheken standardmäßig aus dem öffentlichen Nexus-Repository von OHDSI geladen. In unserem Fall benötigen wir jedoch ein eigenes privates oder öffentliches Repository, um die modifizierten JAR-Dateien zu speichern.

Schritt 4:
Bauen (Build) Sie die modifizierten Versionen von ArachneCommons und SqlRender und pushen Sie diese in ein öffentliches oder privates Maven-Repository.

Schritt 5:
Passen Sie in der pom.xml der WebAPI die Bezugsquellen (Sources) für SqlRender und ArachneCommons an.

Die Inhalte dieses Artikels geben den aktuellen wissenschaftlichen Stand zum Zeitpunkt der Veröffentlichung wieder und wurden nach bestem Wissen und Gewissen verfasst. Dennoch kann der Artikel keine medizinische Beratung und Diagnose ersetzen. Bei Fragen wenden Sie sich an Ihren Allgemeinarzt.

Ursprünglich veröffentlicht am
Data4Life

Digitale Lösungen für eine gesündere Welt