Skip to content

Personal Health Train


Under construction. This documentation is not complete.

Documentation and User Guide for the Personal Health Train (PHT) an open source, container based secure distributed analysis platform. For more information about the PHT team, projects and collaborations you can also visit our website.


Multiple repositories are part of the PHT. These can be roughly separated into central components managed by the PHT Team and hosted by the UKT and local components which are executed either by a user or by participating stations.
All public repositories related to the PHT can be found on our github page, with the major repositories being briefly introduced and categorized in the following sections.

Central Components

Service Repository link
Web UI PHT medDIC/central-ui.git
Train Builder PHT medDIC//train-builder
Train Router PHT medDIC/train-router-py
Train Container Library PHT medDIC/train-container-library

Local Components

Service Repository link
Station PHT medDIC/station
Offline Tool PHT medDIC/pht-offline-tool

Third Party Services

The PHT relies heavily on other great open-source projects. Not only as libraries but also as standalone components of our architecture.



The container registry provided by the Harbor project is the central data/algorithm exchange platform of the PHT. Trains are defined as images which are distributed between the participants private harbor projects.


For securely storing sensitive user or train data as key-value pairs we utilize Vault by Hashicorp as secret storage for our central services.


Apache Airflow

Apache Airflow is open source, community developed platform to programmatically author, schedule and monitor workflows and the primary component of the PHT Station.


To overcome local setup differences between stations, the PHT provides controlled and reliable access to different FHIR Servers. We support the IBM FHIR Server, Blaze and HAPI server. University hospital Tübingen is using the IBM FHIR server.


A user within the central user interface has always to be associated to a station. Each station can independently use different IAMs. We in Tübingen use Keycloak for our user management.


Icons used from flaticon and freepik